groove-dev 0.26.39 → 0.27.0

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 (914) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/CLAUDE.md +24 -19
  3. package/node_modules/@groove-dev/cli/package.json +1 -1
  4. package/node_modules/@groove-dev/daemon/integrations-registry.json +548 -0
  5. package/node_modules/@groove-dev/daemon/package.json +1 -1
  6. package/node_modules/@groove-dev/daemon/src/api.js +172 -4
  7. package/node_modules/@groove-dev/daemon/src/classifier.js +20 -1
  8. package/node_modules/@groove-dev/daemon/src/firstrun.js +14 -1
  9. package/node_modules/@groove-dev/daemon/src/gateways/manager.js +2 -2
  10. package/node_modules/@groove-dev/daemon/src/index.js +3 -1
  11. package/node_modules/@groove-dev/daemon/src/introducer.js +56 -5
  12. package/node_modules/@groove-dev/daemon/src/journalist.js +43 -1
  13. package/node_modules/@groove-dev/daemon/src/lockmanager.js +60 -0
  14. package/node_modules/@groove-dev/daemon/src/mcp-manager.js +2 -1
  15. package/node_modules/@groove-dev/daemon/src/memory.js +370 -0
  16. package/node_modules/@groove-dev/daemon/src/pm.js +1 -1
  17. package/node_modules/@groove-dev/daemon/src/process.js +20 -1
  18. package/node_modules/@groove-dev/daemon/src/rotator.js +155 -5
  19. package/node_modules/@groove-dev/daemon/src/router.js +43 -0
  20. package/node_modules/@groove-dev/daemon/src/tokentracker.js +62 -8
  21. package/node_modules/@groove-dev/daemon/src/validate.js +0 -13
  22. package/node_modules/@groove-dev/daemon/test/lockmanager.test.js +64 -0
  23. package/node_modules/@groove-dev/daemon/test/memory.test.js +252 -0
  24. package/node_modules/@groove-dev/daemon/test/rotator.test.js +108 -0
  25. package/node_modules/@groove-dev/daemon/test/router.test.js +64 -0
  26. package/node_modules/@groove-dev/daemon/test/tokentracker.test.js +78 -0
  27. package/node_modules/@groove-dev/gui/dist/assets/index-DjORRpF0.css +1 -0
  28. package/node_modules/@groove-dev/gui/dist/assets/index-eCrVowF0.js +652 -0
  29. package/node_modules/@groove-dev/gui/dist/index.html +2 -2
  30. package/node_modules/@groove-dev/gui/package.json +1 -4
  31. package/node_modules/@groove-dev/gui/src/components/agents/spawn-wizard.jsx +18 -0
  32. package/node_modules/@groove-dev/gui/src/components/dashboard/cache-ring.jsx +6 -2
  33. package/node_modules/@groove-dev/gui/src/components/dashboard/intel-panel.jsx +251 -8
  34. package/node_modules/@groove-dev/gui/src/components/dashboard/team-burn-panel.jsx +55 -0
  35. package/node_modules/@groove-dev/gui/src/components/marketplace/marketplace-card.jsx +22 -4
  36. package/node_modules/@groove-dev/gui/src/lib/format.js +0 -6
  37. package/node_modules/@groove-dev/gui/src/lib/hooks/use-dashboard.js +18 -1
  38. package/node_modules/@groove-dev/gui/src/stores/groove.js +0 -2
  39. package/node_modules/@groove-dev/gui/src/views/dashboard.jsx +9 -2
  40. package/node_modules/@groove-dev/gui/src/views/marketplace.jsx +103 -77
  41. package/package.json +2 -8
  42. package/packages/cli/package.json +1 -1
  43. package/packages/daemon/integrations-registry.json +548 -0
  44. package/packages/daemon/package.json +1 -1
  45. package/packages/daemon/src/api.js +172 -4
  46. package/packages/daemon/src/classifier.js +20 -1
  47. package/packages/daemon/src/firstrun.js +14 -1
  48. package/packages/daemon/src/gateways/manager.js +2 -2
  49. package/packages/daemon/src/index.js +3 -1
  50. package/packages/daemon/src/introducer.js +56 -5
  51. package/packages/daemon/src/journalist.js +43 -1
  52. package/packages/daemon/src/lockmanager.js +60 -0
  53. package/packages/daemon/src/mcp-manager.js +2 -1
  54. package/packages/daemon/src/memory.js +370 -0
  55. package/packages/daemon/src/pm.js +1 -1
  56. package/packages/daemon/src/process.js +20 -1
  57. package/packages/daemon/src/rotator.js +155 -5
  58. package/packages/daemon/src/router.js +43 -0
  59. package/packages/daemon/src/tokentracker.js +62 -8
  60. package/packages/daemon/src/validate.js +0 -13
  61. package/packages/gui/dist/assets/index-DjORRpF0.css +1 -0
  62. package/packages/gui/dist/assets/index-eCrVowF0.js +652 -0
  63. package/packages/gui/dist/index.html +2 -2
  64. package/packages/gui/package.json +1 -4
  65. package/packages/gui/src/components/agents/spawn-wizard.jsx +18 -0
  66. package/packages/gui/src/components/dashboard/cache-ring.jsx +6 -2
  67. package/packages/gui/src/components/dashboard/intel-panel.jsx +251 -8
  68. package/packages/gui/src/components/dashboard/team-burn-panel.jsx +55 -0
  69. package/packages/gui/src/components/marketplace/marketplace-card.jsx +22 -4
  70. package/packages/gui/src/lib/format.js +0 -6
  71. package/packages/gui/src/lib/hooks/use-dashboard.js +18 -1
  72. package/packages/gui/src/stores/groove.js +0 -2
  73. package/packages/gui/src/views/dashboard.jsx +9 -2
  74. package/packages/gui/src/views/marketplace.jsx +103 -77
  75. package/docs-manager/DOCS-WORKFLOW.md +0 -176
  76. package/node_modules/@groove-dev/gui/dist/assets/index-BkY43sei.css +0 -1
  77. package/node_modules/@groove-dev/gui/dist/assets/index-DmKZLrXU.js +0 -652
  78. package/node_modules/@groove-dev/gui/dist/groove-logo-short.png +0 -0
  79. package/node_modules/@groove-dev/gui/dist/groove-logo.png +0 -0
  80. package/node_modules/@groove-dev/gui/public/groove-logo-short.png +0 -0
  81. package/node_modules/@groove-dev/gui/public/groove-logo.png +0 -0
  82. package/node_modules/@groove-dev/gui/src/components/ui/dropdown-menu.jsx +0 -60
  83. package/node_modules/@groove-dev/gui/src/lib/hooks/use-media-query.js +0 -18
  84. package/node_modules/@radix-ui/react-dropdown-menu/LICENSE +0 -21
  85. package/node_modules/@radix-ui/react-dropdown-menu/README.md +0 -3
  86. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.d.mts +0 -97
  87. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.d.ts +0 -97
  88. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +0 -337
  89. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.js.map +0 -7
  90. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs +0 -305
  91. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs.map +0 -7
  92. package/node_modules/@radix-ui/react-dropdown-menu/package.json +0 -75
  93. package/node_modules/@radix-ui/react-popover/LICENSE +0 -21
  94. package/node_modules/@radix-ui/react-popover/README.md +0 -3
  95. package/node_modules/@radix-ui/react-popover/dist/index.d.mts +0 -85
  96. package/node_modules/@radix-ui/react-popover/dist/index.d.ts +0 -85
  97. package/node_modules/@radix-ui/react-popover/dist/index.js +0 -352
  98. package/node_modules/@radix-ui/react-popover/dist/index.js.map +0 -7
  99. package/node_modules/@radix-ui/react-popover/dist/index.mjs +0 -320
  100. package/node_modules/@radix-ui/react-popover/dist/index.mjs.map +0 -7
  101. package/node_modules/@radix-ui/react-popover/package.json +0 -82
  102. package/node_modules/@radix-ui/react-separator/LICENSE +0 -21
  103. package/node_modules/@radix-ui/react-separator/README.md +0 -3
  104. package/node_modules/@radix-ui/react-separator/dist/index.d.mts +0 -21
  105. package/node_modules/@radix-ui/react-separator/dist/index.d.ts +0 -21
  106. package/node_modules/@radix-ui/react-separator/dist/index.js +0 -65
  107. package/node_modules/@radix-ui/react-separator/dist/index.js.map +0 -7
  108. package/node_modules/@radix-ui/react-separator/dist/index.mjs +0 -32
  109. package/node_modules/@radix-ui/react-separator/dist/index.mjs.map +0 -7
  110. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/LICENSE +0 -21
  111. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/README.md +0 -3
  112. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.d.mts +0 -52
  113. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.d.ts +0 -52
  114. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.js +0 -80
  115. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -7
  116. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs +0 -47
  117. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +0 -7
  118. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/package.json +0 -69
  119. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/LICENSE +0 -21
  120. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/README.md +0 -3
  121. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.d.mts +0 -22
  122. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.d.ts +0 -22
  123. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.js +0 -152
  124. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -7
  125. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.mjs +0 -119
  126. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.mjs.map +0 -7
  127. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/package.json +0 -64
  128. package/node_modules/@radix-ui/react-separator/package.json +0 -69
  129. package/packages/gui/dist/assets/index-BkY43sei.css +0 -1
  130. package/packages/gui/dist/assets/index-DmKZLrXU.js +0 -652
  131. package/packages/gui/dist/groove-logo-short.png +0 -0
  132. package/packages/gui/dist/groove-logo.png +0 -0
  133. package/packages/gui/public/groove-logo-short.png +0 -0
  134. package/packages/gui/public/groove-logo.png +0 -0
  135. package/packages/gui/src/components/ui/dropdown-menu.jsx +0 -60
  136. package/packages/gui/src/lib/hooks/use-media-query.js +0 -18
  137. package/slides/convert-slides.js +0 -1120
  138. package/slides/deck.pptx +0 -0
  139. package/slides/index.html +0 -825
  140. package/slides/node_modules/.package-lock.json +0 -527
  141. package/slides/node_modules/@types/node/LICENSE +0 -21
  142. package/slides/node_modules/@types/node/README.md +0 -15
  143. package/slides/node_modules/@types/node/assert/strict.d.ts +0 -111
  144. package/slides/node_modules/@types/node/assert.d.ts +0 -1078
  145. package/slides/node_modules/@types/node/async_hooks.d.ts +0 -603
  146. package/slides/node_modules/@types/node/buffer.buffer.d.ts +0 -472
  147. package/slides/node_modules/@types/node/buffer.d.ts +0 -1934
  148. package/slides/node_modules/@types/node/child_process.d.ts +0 -1476
  149. package/slides/node_modules/@types/node/cluster.d.ts +0 -578
  150. package/slides/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
  151. package/slides/node_modules/@types/node/compatibility/index.d.ts +0 -9
  152. package/slides/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  153. package/slides/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
  154. package/slides/node_modules/@types/node/console.d.ts +0 -452
  155. package/slides/node_modules/@types/node/constants.d.ts +0 -21
  156. package/slides/node_modules/@types/node/crypto.d.ts +0 -4545
  157. package/slides/node_modules/@types/node/dgram.d.ts +0 -600
  158. package/slides/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
  159. package/slides/node_modules/@types/node/dns/promises.d.ts +0 -503
  160. package/slides/node_modules/@types/node/dns.d.ts +0 -923
  161. package/slides/node_modules/@types/node/domain.d.ts +0 -170
  162. package/slides/node_modules/@types/node/events.d.ts +0 -976
  163. package/slides/node_modules/@types/node/fs/promises.d.ts +0 -1295
  164. package/slides/node_modules/@types/node/fs.d.ts +0 -4461
  165. package/slides/node_modules/@types/node/globals.d.ts +0 -172
  166. package/slides/node_modules/@types/node/globals.typedarray.d.ts +0 -38
  167. package/slides/node_modules/@types/node/http.d.ts +0 -2089
  168. package/slides/node_modules/@types/node/http2.d.ts +0 -2644
  169. package/slides/node_modules/@types/node/https.d.ts +0 -579
  170. package/slides/node_modules/@types/node/index.d.ts +0 -97
  171. package/slides/node_modules/@types/node/inspector.d.ts +0 -253
  172. package/slides/node_modules/@types/node/inspector.generated.d.ts +0 -4052
  173. package/slides/node_modules/@types/node/module.d.ts +0 -891
  174. package/slides/node_modules/@types/node/net.d.ts +0 -1076
  175. package/slides/node_modules/@types/node/os.d.ts +0 -506
  176. package/slides/node_modules/@types/node/package.json +0 -145
  177. package/slides/node_modules/@types/node/path.d.ts +0 -200
  178. package/slides/node_modules/@types/node/perf_hooks.d.ts +0 -968
  179. package/slides/node_modules/@types/node/process.d.ts +0 -2084
  180. package/slides/node_modules/@types/node/punycode.d.ts +0 -117
  181. package/slides/node_modules/@types/node/querystring.d.ts +0 -152
  182. package/slides/node_modules/@types/node/readline/promises.d.ts +0 -161
  183. package/slides/node_modules/@types/node/readline.d.ts +0 -594
  184. package/slides/node_modules/@types/node/repl.d.ts +0 -428
  185. package/slides/node_modules/@types/node/sea.d.ts +0 -153
  186. package/slides/node_modules/@types/node/sqlite.d.ts +0 -721
  187. package/slides/node_modules/@types/node/stream/consumers.d.ts +0 -38
  188. package/slides/node_modules/@types/node/stream/promises.d.ts +0 -90
  189. package/slides/node_modules/@types/node/stream/web.d.ts +0 -622
  190. package/slides/node_modules/@types/node/stream.d.ts +0 -1687
  191. package/slides/node_modules/@types/node/string_decoder.d.ts +0 -67
  192. package/slides/node_modules/@types/node/test.d.ts +0 -2163
  193. package/slides/node_modules/@types/node/timers/promises.d.ts +0 -108
  194. package/slides/node_modules/@types/node/timers.d.ts +0 -287
  195. package/slides/node_modules/@types/node/tls.d.ts +0 -1319
  196. package/slides/node_modules/@types/node/trace_events.d.ts +0 -197
  197. package/slides/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -468
  198. package/slides/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -34
  199. package/slides/node_modules/@types/node/ts5.6/index.d.ts +0 -97
  200. package/slides/node_modules/@types/node/tty.d.ts +0 -208
  201. package/slides/node_modules/@types/node/url.d.ts +0 -984
  202. package/slides/node_modules/@types/node/util.d.ts +0 -2606
  203. package/slides/node_modules/@types/node/v8.d.ts +0 -920
  204. package/slides/node_modules/@types/node/vm.d.ts +0 -1000
  205. package/slides/node_modules/@types/node/wasi.d.ts +0 -181
  206. package/slides/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  207. package/slides/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  208. package/slides/node_modules/@types/node/web-globals/events.d.ts +0 -97
  209. package/slides/node_modules/@types/node/web-globals/fetch.d.ts +0 -55
  210. package/slides/node_modules/@types/node/web-globals/navigator.d.ts +0 -22
  211. package/slides/node_modules/@types/node/web-globals/storage.d.ts +0 -24
  212. package/slides/node_modules/@types/node/worker_threads.d.ts +0 -784
  213. package/slides/node_modules/@types/node/zlib.d.ts +0 -747
  214. package/slides/node_modules/base64-js/LICENSE +0 -21
  215. package/slides/node_modules/base64-js/README.md +0 -34
  216. package/slides/node_modules/base64-js/base64js.min.js +0 -1
  217. package/slides/node_modules/base64-js/index.d.ts +0 -3
  218. package/slides/node_modules/base64-js/index.js +0 -150
  219. package/slides/node_modules/base64-js/package.json +0 -47
  220. package/slides/node_modules/bl/.travis.yml +0 -17
  221. package/slides/node_modules/bl/BufferList.js +0 -396
  222. package/slides/node_modules/bl/LICENSE.md +0 -13
  223. package/slides/node_modules/bl/README.md +0 -247
  224. package/slides/node_modules/bl/bl.js +0 -84
  225. package/slides/node_modules/bl/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  226. package/slides/node_modules/bl/node_modules/readable-stream/GOVERNANCE.md +0 -136
  227. package/slides/node_modules/bl/node_modules/readable-stream/LICENSE +0 -47
  228. package/slides/node_modules/bl/node_modules/readable-stream/README.md +0 -106
  229. package/slides/node_modules/bl/node_modules/readable-stream/errors-browser.js +0 -127
  230. package/slides/node_modules/bl/node_modules/readable-stream/errors.js +0 -116
  231. package/slides/node_modules/bl/node_modules/readable-stream/experimentalWarning.js +0 -17
  232. package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  233. package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  234. package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  235. package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  236. package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  237. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  238. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  239. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  240. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  241. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  242. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  243. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  244. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  245. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  246. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  247. package/slides/node_modules/bl/node_modules/readable-stream/package.json +0 -68
  248. package/slides/node_modules/bl/node_modules/readable-stream/readable-browser.js +0 -9
  249. package/slides/node_modules/bl/node_modules/readable-stream/readable.js +0 -16
  250. package/slides/node_modules/bl/package.json +0 -37
  251. package/slides/node_modules/bl/test/convert.js +0 -21
  252. package/slides/node_modules/bl/test/indexOf.js +0 -492
  253. package/slides/node_modules/bl/test/isBufferList.js +0 -32
  254. package/slides/node_modules/bl/test/test.js +0 -869
  255. package/slides/node_modules/buffer/AUTHORS.md +0 -70
  256. package/slides/node_modules/buffer/LICENSE +0 -21
  257. package/slides/node_modules/buffer/README.md +0 -410
  258. package/slides/node_modules/buffer/index.d.ts +0 -186
  259. package/slides/node_modules/buffer/index.js +0 -1817
  260. package/slides/node_modules/buffer/package.json +0 -96
  261. package/slides/node_modules/canvas/Readme.md +0 -657
  262. package/slides/node_modules/canvas/binding.gyp +0 -229
  263. package/slides/node_modules/canvas/browser.js +0 -31
  264. package/slides/node_modules/canvas/build/Makefile +0 -347
  265. package/slides/node_modules/canvas/build/Release/canvas.node +0 -0
  266. package/slides/node_modules/canvas/build/Release/libX11.6.dylib +0 -0
  267. package/slides/node_modules/canvas/build/Release/libXau.6.dylib +0 -0
  268. package/slides/node_modules/canvas/build/Release/libXdmcp.6.dylib +0 -0
  269. package/slides/node_modules/canvas/build/Release/libXext.6.dylib +0 -0
  270. package/slides/node_modules/canvas/build/Release/libXrender.1.dylib +0 -0
  271. package/slides/node_modules/canvas/build/Release/libcairo-gobject.2.dylib +0 -0
  272. package/slides/node_modules/canvas/build/Release/libcairo.2.dylib +0 -0
  273. package/slides/node_modules/canvas/build/Release/libdatrie.1.dylib +0 -0
  274. package/slides/node_modules/canvas/build/Release/libfontconfig.1.dylib +0 -0
  275. package/slides/node_modules/canvas/build/Release/libfreetype.6.dylib +0 -0
  276. package/slides/node_modules/canvas/build/Release/libfribidi.0.dylib +0 -0
  277. package/slides/node_modules/canvas/build/Release/libgdk_pixbuf-2.0.0.dylib +0 -0
  278. package/slides/node_modules/canvas/build/Release/libgif.7.2.0.dylib +0 -0
  279. package/slides/node_modules/canvas/build/Release/libgio-2.0.0.dylib +0 -0
  280. package/slides/node_modules/canvas/build/Release/libglib-2.0.0.dylib +0 -0
  281. package/slides/node_modules/canvas/build/Release/libgmodule-2.0.0.dylib +0 -0
  282. package/slides/node_modules/canvas/build/Release/libgobject-2.0.0.dylib +0 -0
  283. package/slides/node_modules/canvas/build/Release/libgraphite2.3.2.1.dylib +0 -0
  284. package/slides/node_modules/canvas/build/Release/libharfbuzz.0.dylib +0 -0
  285. package/slides/node_modules/canvas/build/Release/libintl.8.dylib +0 -0
  286. package/slides/node_modules/canvas/build/Release/libjpeg.8.3.2.dylib +0 -0
  287. package/slides/node_modules/canvas/build/Release/libpango-1.0.0.dylib +0 -0
  288. package/slides/node_modules/canvas/build/Release/libpangocairo-1.0.0.dylib +0 -0
  289. package/slides/node_modules/canvas/build/Release/libpangoft2-1.0.0.dylib +0 -0
  290. package/slides/node_modules/canvas/build/Release/libpcre2-8.0.dylib +0 -0
  291. package/slides/node_modules/canvas/build/Release/libpixman-1.0.dylib +0 -0
  292. package/slides/node_modules/canvas/build/Release/libpng16.16.dylib +0 -0
  293. package/slides/node_modules/canvas/build/Release/librsvg-2.2.dylib +0 -0
  294. package/slides/node_modules/canvas/build/Release/libthai.0.dylib +0 -0
  295. package/slides/node_modules/canvas/build/Release/libxcb-render.0.0.0.dylib +0 -0
  296. package/slides/node_modules/canvas/build/Release/libxcb-shm.0.0.0.dylib +0 -0
  297. package/slides/node_modules/canvas/build/Release/libxcb.1.1.0.dylib +0 -0
  298. package/slides/node_modules/canvas/build/binding.Makefile +0 -6
  299. package/slides/node_modules/canvas/build/canvas.target.mk +0 -299
  300. package/slides/node_modules/canvas/build/gyp-mac-tool +0 -766
  301. package/slides/node_modules/canvas/index.d.ts +0 -507
  302. package/slides/node_modules/canvas/index.js +0 -94
  303. package/slides/node_modules/canvas/lib/DOMMatrix.js +0 -678
  304. package/slides/node_modules/canvas/lib/bindings.js +0 -43
  305. package/slides/node_modules/canvas/lib/canvas.js +0 -113
  306. package/slides/node_modules/canvas/lib/context2d.js +0 -11
  307. package/slides/node_modules/canvas/lib/image.js +0 -97
  308. package/slides/node_modules/canvas/lib/jpegstream.js +0 -41
  309. package/slides/node_modules/canvas/lib/pattern.js +0 -15
  310. package/slides/node_modules/canvas/lib/pdfstream.js +0 -35
  311. package/slides/node_modules/canvas/lib/pngstream.js +0 -42
  312. package/slides/node_modules/canvas/package.json +0 -71
  313. package/slides/node_modules/canvas/src/Backends.h +0 -9
  314. package/slides/node_modules/canvas/src/Canvas.cc +0 -1026
  315. package/slides/node_modules/canvas/src/Canvas.h +0 -128
  316. package/slides/node_modules/canvas/src/CanvasError.h +0 -37
  317. package/slides/node_modules/canvas/src/CanvasGradient.cc +0 -113
  318. package/slides/node_modules/canvas/src/CanvasGradient.h +0 -20
  319. package/slides/node_modules/canvas/src/CanvasPattern.cc +0 -129
  320. package/slides/node_modules/canvas/src/CanvasPattern.h +0 -33
  321. package/slides/node_modules/canvas/src/CanvasRenderingContext2d.cc +0 -3527
  322. package/slides/node_modules/canvas/src/CanvasRenderingContext2d.h +0 -238
  323. package/slides/node_modules/canvas/src/CharData.h +0 -233
  324. package/slides/node_modules/canvas/src/FontParser.cc +0 -605
  325. package/slides/node_modules/canvas/src/FontParser.h +0 -115
  326. package/slides/node_modules/canvas/src/Image.cc +0 -1719
  327. package/slides/node_modules/canvas/src/Image.h +0 -146
  328. package/slides/node_modules/canvas/src/ImageData.cc +0 -138
  329. package/slides/node_modules/canvas/src/ImageData.h +0 -26
  330. package/slides/node_modules/canvas/src/InstanceData.h +0 -12
  331. package/slides/node_modules/canvas/src/JPEGStream.h +0 -157
  332. package/slides/node_modules/canvas/src/PNG.h +0 -292
  333. package/slides/node_modules/canvas/src/Point.h +0 -11
  334. package/slides/node_modules/canvas/src/Util.h +0 -9
  335. package/slides/node_modules/canvas/src/bmp/BMPParser.cc +0 -459
  336. package/slides/node_modules/canvas/src/bmp/BMPParser.h +0 -60
  337. package/slides/node_modules/canvas/src/bmp/LICENSE.md +0 -24
  338. package/slides/node_modules/canvas/src/closure.cc +0 -52
  339. package/slides/node_modules/canvas/src/closure.h +0 -98
  340. package/slides/node_modules/canvas/src/color.cc +0 -796
  341. package/slides/node_modules/canvas/src/color.h +0 -30
  342. package/slides/node_modules/canvas/src/dll_visibility.h +0 -20
  343. package/slides/node_modules/canvas/src/init.cc +0 -114
  344. package/slides/node_modules/canvas/src/register_font.cc +0 -352
  345. package/slides/node_modules/canvas/src/register_font.h +0 -7
  346. package/slides/node_modules/canvas/util/has_lib.js +0 -119
  347. package/slides/node_modules/canvas/util/win_jpeg_lookup.js +0 -21
  348. package/slides/node_modules/chownr/LICENSE +0 -15
  349. package/slides/node_modules/chownr/README.md +0 -3
  350. package/slides/node_modules/chownr/chownr.js +0 -167
  351. package/slides/node_modules/chownr/package.json +0 -29
  352. package/slides/node_modules/core-util-is/LICENSE +0 -19
  353. package/slides/node_modules/core-util-is/README.md +0 -3
  354. package/slides/node_modules/core-util-is/lib/util.js +0 -107
  355. package/slides/node_modules/core-util-is/package.json +0 -38
  356. package/slides/node_modules/decompress-response/index.d.ts +0 -22
  357. package/slides/node_modules/decompress-response/index.js +0 -58
  358. package/slides/node_modules/decompress-response/license +0 -9
  359. package/slides/node_modules/decompress-response/package.json +0 -56
  360. package/slides/node_modules/decompress-response/readme.md +0 -48
  361. package/slides/node_modules/deep-extend/CHANGELOG.md +0 -46
  362. package/slides/node_modules/deep-extend/LICENSE +0 -20
  363. package/slides/node_modules/deep-extend/README.md +0 -91
  364. package/slides/node_modules/deep-extend/index.js +0 -1
  365. package/slides/node_modules/deep-extend/lib/deep-extend.js +0 -150
  366. package/slides/node_modules/deep-extend/package.json +0 -62
  367. package/slides/node_modules/detect-libc/LICENSE +0 -201
  368. package/slides/node_modules/detect-libc/README.md +0 -163
  369. package/slides/node_modules/detect-libc/index.d.ts +0 -14
  370. package/slides/node_modules/detect-libc/lib/detect-libc.js +0 -313
  371. package/slides/node_modules/detect-libc/lib/elf.js +0 -39
  372. package/slides/node_modules/detect-libc/lib/filesystem.js +0 -51
  373. package/slides/node_modules/detect-libc/lib/process.js +0 -24
  374. package/slides/node_modules/detect-libc/package.json +0 -44
  375. package/slides/node_modules/end-of-stream/LICENSE +0 -21
  376. package/slides/node_modules/end-of-stream/README.md +0 -54
  377. package/slides/node_modules/end-of-stream/index.js +0 -96
  378. package/slides/node_modules/end-of-stream/package.json +0 -37
  379. package/slides/node_modules/expand-template/.travis.yml +0 -6
  380. package/slides/node_modules/expand-template/LICENSE +0 -21
  381. package/slides/node_modules/expand-template/README.md +0 -43
  382. package/slides/node_modules/expand-template/index.js +0 -26
  383. package/slides/node_modules/expand-template/package.json +0 -29
  384. package/slides/node_modules/expand-template/test.js +0 -67
  385. package/slides/node_modules/fs-constants/LICENSE +0 -21
  386. package/slides/node_modules/fs-constants/README.md +0 -26
  387. package/slides/node_modules/fs-constants/browser.js +0 -1
  388. package/slides/node_modules/fs-constants/index.js +0 -1
  389. package/slides/node_modules/fs-constants/package.json +0 -19
  390. package/slides/node_modules/github-from-package/.travis.yml +0 -4
  391. package/slides/node_modules/github-from-package/LICENSE +0 -18
  392. package/slides/node_modules/github-from-package/example/package.json +0 -8
  393. package/slides/node_modules/github-from-package/example/url.js +0 -3
  394. package/slides/node_modules/github-from-package/index.js +0 -17
  395. package/slides/node_modules/github-from-package/package.json +0 -30
  396. package/slides/node_modules/github-from-package/readme.markdown +0 -53
  397. package/slides/node_modules/github-from-package/test/a.json +0 -8
  398. package/slides/node_modules/github-from-package/test/b.json +0 -5
  399. package/slides/node_modules/github-from-package/test/c.json +0 -5
  400. package/slides/node_modules/github-from-package/test/d.json +0 -7
  401. package/slides/node_modules/github-from-package/test/e.json +0 -5
  402. package/slides/node_modules/github-from-package/test/url.js +0 -19
  403. package/slides/node_modules/https/package.json +0 -15
  404. package/slides/node_modules/ieee754/LICENSE +0 -11
  405. package/slides/node_modules/ieee754/README.md +0 -51
  406. package/slides/node_modules/ieee754/index.d.ts +0 -10
  407. package/slides/node_modules/ieee754/index.js +0 -85
  408. package/slides/node_modules/ieee754/package.json +0 -52
  409. package/slides/node_modules/image-size/LICENSE +0 -9
  410. package/slides/node_modules/image-size/Readme.md +0 -184
  411. package/slides/node_modules/image-size/bin/image-size.js +0 -53
  412. package/slides/node_modules/image-size/dist/detector.d.ts +0 -2
  413. package/slides/node_modules/image-size/dist/detector.js +0 -30
  414. package/slides/node_modules/image-size/dist/index.d.ts +0 -10
  415. package/slides/node_modules/image-size/dist/index.js +0 -129
  416. package/slides/node_modules/image-size/dist/types/bmp.d.ts +0 -2
  417. package/slides/node_modules/image-size/dist/types/bmp.js +0 -11
  418. package/slides/node_modules/image-size/dist/types/cur.d.ts +0 -2
  419. package/slides/node_modules/image-size/dist/types/cur.js +0 -17
  420. package/slides/node_modules/image-size/dist/types/dds.d.ts +0 -2
  421. package/slides/node_modules/image-size/dist/types/dds.js +0 -11
  422. package/slides/node_modules/image-size/dist/types/gif.d.ts +0 -2
  423. package/slides/node_modules/image-size/dist/types/gif.js +0 -12
  424. package/slides/node_modules/image-size/dist/types/heif.d.ts +0 -2
  425. package/slides/node_modules/image-size/dist/types/heif.js +0 -40
  426. package/slides/node_modules/image-size/dist/types/icns.d.ts +0 -2
  427. package/slides/node_modules/image-size/dist/types/icns.js +0 -101
  428. package/slides/node_modules/image-size/dist/types/ico.d.ts +0 -2
  429. package/slides/node_modules/image-size/dist/types/ico.js +0 -68
  430. package/slides/node_modules/image-size/dist/types/index.d.ts +0 -23
  431. package/slides/node_modules/image-size/dist/types/index.js +0 -46
  432. package/slides/node_modules/image-size/dist/types/interface.d.ts +0 -13
  433. package/slides/node_modules/image-size/dist/types/interface.js +0 -2
  434. package/slides/node_modules/image-size/dist/types/j2c.d.ts +0 -2
  435. package/slides/node_modules/image-size/dist/types/j2c.js +0 -12
  436. package/slides/node_modules/image-size/dist/types/jp2.d.ts +0 -2
  437. package/slides/node_modules/image-size/dist/types/jp2.js +0 -27
  438. package/slides/node_modules/image-size/dist/types/jpg.d.ts +0 -2
  439. package/slides/node_modules/image-size/dist/types/jpg.js +0 -123
  440. package/slides/node_modules/image-size/dist/types/jxl-stream.d.ts +0 -2
  441. package/slides/node_modules/image-size/dist/types/jxl-stream.js +0 -45
  442. package/slides/node_modules/image-size/dist/types/jxl.d.ts +0 -2
  443. package/slides/node_modules/image-size/dist/types/jxl.js +0 -59
  444. package/slides/node_modules/image-size/dist/types/ktx.d.ts +0 -2
  445. package/slides/node_modules/image-size/dist/types/ktx.js +0 -19
  446. package/slides/node_modules/image-size/dist/types/png.d.ts +0 -2
  447. package/slides/node_modules/image-size/dist/types/png.js +0 -35
  448. package/slides/node_modules/image-size/dist/types/pnm.d.ts +0 -2
  449. package/slides/node_modules/image-size/dist/types/pnm.js +0 -72
  450. package/slides/node_modules/image-size/dist/types/psd.d.ts +0 -2
  451. package/slides/node_modules/image-size/dist/types/psd.js +0 -11
  452. package/slides/node_modules/image-size/dist/types/svg.d.ts +0 -2
  453. package/slides/node_modules/image-size/dist/types/svg.js +0 -90
  454. package/slides/node_modules/image-size/dist/types/tga.d.ts +0 -2
  455. package/slides/node_modules/image-size/dist/types/tga.js +0 -15
  456. package/slides/node_modules/image-size/dist/types/tiff.d.ts +0 -2
  457. package/slides/node_modules/image-size/dist/types/tiff.js +0 -95
  458. package/slides/node_modules/image-size/dist/types/utils.d.ts +0 -15
  459. package/slides/node_modules/image-size/dist/types/utils.js +0 -75
  460. package/slides/node_modules/image-size/dist/types/webp.d.ts +0 -2
  461. package/slides/node_modules/image-size/dist/types/webp.js +0 -60
  462. package/slides/node_modules/image-size/dist/utils/bit-reader.d.ts +0 -10
  463. package/slides/node_modules/image-size/dist/utils/bit-reader.js +0 -44
  464. package/slides/node_modules/image-size/package.json +0 -81
  465. package/slides/node_modules/immediate/LICENSE.txt +0 -20
  466. package/slides/node_modules/immediate/README.md +0 -93
  467. package/slides/node_modules/immediate/dist/immediate.js +0 -75
  468. package/slides/node_modules/immediate/dist/immediate.min.js +0 -1
  469. package/slides/node_modules/immediate/lib/browser.js +0 -69
  470. package/slides/node_modules/immediate/lib/index.js +0 -73
  471. package/slides/node_modules/immediate/package.json +0 -42
  472. package/slides/node_modules/inherits/LICENSE +0 -16
  473. package/slides/node_modules/inherits/README.md +0 -42
  474. package/slides/node_modules/inherits/inherits.js +0 -9
  475. package/slides/node_modules/inherits/inherits_browser.js +0 -27
  476. package/slides/node_modules/inherits/package.json +0 -29
  477. package/slides/node_modules/ini/LICENSE +0 -15
  478. package/slides/node_modules/ini/README.md +0 -102
  479. package/slides/node_modules/ini/ini.js +0 -206
  480. package/slides/node_modules/ini/package.json +0 -33
  481. package/slides/node_modules/isarray/.travis.yml +0 -4
  482. package/slides/node_modules/isarray/Makefile +0 -6
  483. package/slides/node_modules/isarray/README.md +0 -60
  484. package/slides/node_modules/isarray/component.json +0 -19
  485. package/slides/node_modules/isarray/index.js +0 -5
  486. package/slides/node_modules/isarray/package.json +0 -45
  487. package/slides/node_modules/isarray/test.js +0 -20
  488. package/slides/node_modules/jszip/.codeclimate.yml +0 -16
  489. package/slides/node_modules/jszip/.editorconfig +0 -8
  490. package/slides/node_modules/jszip/.eslintrc.js +0 -43
  491. package/slides/node_modules/jszip/.github/workflows/pr.yaml +0 -58
  492. package/slides/node_modules/jszip/.jekyll-metadata +0 -0
  493. package/slides/node_modules/jszip/.travis.yml +0 -17
  494. package/slides/node_modules/jszip/CHANGES.md +0 -204
  495. package/slides/node_modules/jszip/LICENSE.markdown +0 -651
  496. package/slides/node_modules/jszip/README.markdown +0 -33
  497. package/slides/node_modules/jszip/deps.js +0 -37
  498. package/slides/node_modules/jszip/dist/jszip.js +0 -11577
  499. package/slides/node_modules/jszip/dist/jszip.min.js +0 -13
  500. package/slides/node_modules/jszip/graph.svg +0 -601
  501. package/slides/node_modules/jszip/index.d.ts +0 -330
  502. package/slides/node_modules/jszip/lib/base64.js +0 -106
  503. package/slides/node_modules/jszip/lib/compressedObject.js +0 -74
  504. package/slides/node_modules/jszip/lib/compressions.js +0 -14
  505. package/slides/node_modules/jszip/lib/crc32.js +0 -77
  506. package/slides/node_modules/jszip/lib/defaults.js +0 -11
  507. package/slides/node_modules/jszip/lib/external.js +0 -18
  508. package/slides/node_modules/jszip/lib/flate.js +0 -85
  509. package/slides/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -539
  510. package/slides/node_modules/jszip/lib/generate/index.js +0 -57
  511. package/slides/node_modules/jszip/lib/index.js +0 -55
  512. package/slides/node_modules/jszip/lib/license_header.js +0 -11
  513. package/slides/node_modules/jszip/lib/load.js +0 -88
  514. package/slides/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
  515. package/slides/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
  516. package/slides/node_modules/jszip/lib/nodejsUtils.js +0 -57
  517. package/slides/node_modules/jszip/lib/object.js +0 -384
  518. package/slides/node_modules/jszip/lib/readable-stream-browser.js +0 -10
  519. package/slides/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
  520. package/slides/node_modules/jszip/lib/reader/DataReader.js +0 -116
  521. package/slides/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
  522. package/slides/node_modules/jszip/lib/reader/StringReader.js +0 -38
  523. package/slides/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
  524. package/slides/node_modules/jszip/lib/reader/readerFor.js +0 -28
  525. package/slides/node_modules/jszip/lib/signature.js +0 -7
  526. package/slides/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
  527. package/slides/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
  528. package/slides/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
  529. package/slides/node_modules/jszip/lib/stream/DataWorker.js +0 -116
  530. package/slides/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
  531. package/slides/node_modules/jszip/lib/stream/StreamHelper.js +0 -214
  532. package/slides/node_modules/jszip/lib/support.js +0 -38
  533. package/slides/node_modules/jszip/lib/utf8.js +0 -275
  534. package/slides/node_modules/jszip/lib/utils.js +0 -501
  535. package/slides/node_modules/jszip/lib/zipEntries.js +0 -261
  536. package/slides/node_modules/jszip/lib/zipEntry.js +0 -293
  537. package/slides/node_modules/jszip/lib/zipObject.js +0 -133
  538. package/slides/node_modules/jszip/package.json +0 -67
  539. package/slides/node_modules/jszip/sponsors.md +0 -21
  540. package/slides/node_modules/jszip/tsconfig.json +0 -101
  541. package/slides/node_modules/jszip/vendor/FileSaver.js +0 -247
  542. package/slides/node_modules/lie/README.md +0 -62
  543. package/slides/node_modules/lie/dist/lie.js +0 -350
  544. package/slides/node_modules/lie/dist/lie.min.js +0 -1
  545. package/slides/node_modules/lie/dist/lie.polyfill.js +0 -358
  546. package/slides/node_modules/lie/dist/lie.polyfill.min.js +0 -1
  547. package/slides/node_modules/lie/lib/browser.js +0 -273
  548. package/slides/node_modules/lie/lib/index.js +0 -298
  549. package/slides/node_modules/lie/license.md +0 -7
  550. package/slides/node_modules/lie/lie.d.ts +0 -244
  551. package/slides/node_modules/lie/package.json +0 -69
  552. package/slides/node_modules/lie/polyfill.js +0 -4
  553. package/slides/node_modules/mimic-response/index.d.ts +0 -17
  554. package/slides/node_modules/mimic-response/index.js +0 -77
  555. package/slides/node_modules/mimic-response/license +0 -9
  556. package/slides/node_modules/mimic-response/package.json +0 -42
  557. package/slides/node_modules/mimic-response/readme.md +0 -78
  558. package/slides/node_modules/minimist/.eslintrc +0 -29
  559. package/slides/node_modules/minimist/.github/FUNDING.yml +0 -12
  560. package/slides/node_modules/minimist/.nycrc +0 -14
  561. package/slides/node_modules/minimist/CHANGELOG.md +0 -298
  562. package/slides/node_modules/minimist/LICENSE +0 -18
  563. package/slides/node_modules/minimist/README.md +0 -121
  564. package/slides/node_modules/minimist/example/parse.js +0 -4
  565. package/slides/node_modules/minimist/index.js +0 -263
  566. package/slides/node_modules/minimist/package.json +0 -75
  567. package/slides/node_modules/minimist/test/all_bool.js +0 -34
  568. package/slides/node_modules/minimist/test/bool.js +0 -177
  569. package/slides/node_modules/minimist/test/dash.js +0 -43
  570. package/slides/node_modules/minimist/test/default_bool.js +0 -37
  571. package/slides/node_modules/minimist/test/dotted.js +0 -24
  572. package/slides/node_modules/minimist/test/kv_short.js +0 -32
  573. package/slides/node_modules/minimist/test/long.js +0 -33
  574. package/slides/node_modules/minimist/test/num.js +0 -38
  575. package/slides/node_modules/minimist/test/parse.js +0 -209
  576. package/slides/node_modules/minimist/test/parse_modified.js +0 -11
  577. package/slides/node_modules/minimist/test/proto.js +0 -64
  578. package/slides/node_modules/minimist/test/short.js +0 -69
  579. package/slides/node_modules/minimist/test/stop_early.js +0 -17
  580. package/slides/node_modules/minimist/test/unknown.js +0 -104
  581. package/slides/node_modules/minimist/test/whitespace.js +0 -10
  582. package/slides/node_modules/mkdirp-classic/LICENSE +0 -21
  583. package/slides/node_modules/mkdirp-classic/README.md +0 -18
  584. package/slides/node_modules/mkdirp-classic/index.js +0 -98
  585. package/slides/node_modules/mkdirp-classic/package.json +0 -18
  586. package/slides/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +0 -31
  587. package/slides/node_modules/napi-build-utils/LICENSE +0 -21
  588. package/slides/node_modules/napi-build-utils/README.md +0 -52
  589. package/slides/node_modules/napi-build-utils/index.js +0 -214
  590. package/slides/node_modules/napi-build-utils/index.md +0 -0
  591. package/slides/node_modules/napi-build-utils/package.json +0 -42
  592. package/slides/node_modules/node-abi/LICENSE +0 -21
  593. package/slides/node_modules/node-abi/README.md +0 -54
  594. package/slides/node_modules/node-abi/abi_registry.json +0 -439
  595. package/slides/node_modules/node-abi/index.js +0 -179
  596. package/slides/node_modules/node-abi/package.json +0 -45
  597. package/slides/node_modules/node-addon-api/LICENSE.md +0 -9
  598. package/slides/node_modules/node-addon-api/README.md +0 -319
  599. package/slides/node_modules/node-addon-api/common.gypi +0 -20
  600. package/slides/node_modules/node-addon-api/except.gypi +0 -25
  601. package/slides/node_modules/node-addon-api/index.js +0 -12
  602. package/slides/node_modules/node-addon-api/napi-inl.deprecated.h +0 -186
  603. package/slides/node_modules/node-addon-api/napi-inl.h +0 -6607
  604. package/slides/node_modules/node-addon-api/napi.h +0 -3201
  605. package/slides/node_modules/node-addon-api/node_addon_api.gyp +0 -32
  606. package/slides/node_modules/node-addon-api/node_api.gyp +0 -9
  607. package/slides/node_modules/node-addon-api/noexcept.gypi +0 -26
  608. package/slides/node_modules/node-addon-api/nothing.c +0 -0
  609. package/slides/node_modules/node-addon-api/package-support.json +0 -21
  610. package/slides/node_modules/node-addon-api/package.json +0 -480
  611. package/slides/node_modules/node-addon-api/tools/README.md +0 -73
  612. package/slides/node_modules/node-addon-api/tools/check-napi.js +0 -99
  613. package/slides/node_modules/node-addon-api/tools/clang-format.js +0 -71
  614. package/slides/node_modules/node-addon-api/tools/conversion.js +0 -301
  615. package/slides/node_modules/node-addon-api/tools/eslint-format.js +0 -79
  616. package/slides/node_modules/once/LICENSE +0 -15
  617. package/slides/node_modules/once/README.md +0 -79
  618. package/slides/node_modules/once/once.js +0 -42
  619. package/slides/node_modules/once/package.json +0 -33
  620. package/slides/node_modules/pako/CHANGELOG.md +0 -164
  621. package/slides/node_modules/pako/LICENSE +0 -21
  622. package/slides/node_modules/pako/README.md +0 -191
  623. package/slides/node_modules/pako/dist/pako.js +0 -6818
  624. package/slides/node_modules/pako/dist/pako.min.js +0 -1
  625. package/slides/node_modules/pako/dist/pako_deflate.js +0 -3997
  626. package/slides/node_modules/pako/dist/pako_deflate.min.js +0 -1
  627. package/slides/node_modules/pako/dist/pako_inflate.js +0 -3300
  628. package/slides/node_modules/pako/dist/pako_inflate.min.js +0 -1
  629. package/slides/node_modules/pako/index.js +0 -14
  630. package/slides/node_modules/pako/lib/deflate.js +0 -400
  631. package/slides/node_modules/pako/lib/inflate.js +0 -423
  632. package/slides/node_modules/pako/lib/utils/common.js +0 -105
  633. package/slides/node_modules/pako/lib/utils/strings.js +0 -187
  634. package/slides/node_modules/pako/lib/zlib/README +0 -59
  635. package/slides/node_modules/pako/lib/zlib/adler32.js +0 -51
  636. package/slides/node_modules/pako/lib/zlib/constants.js +0 -68
  637. package/slides/node_modules/pako/lib/zlib/crc32.js +0 -59
  638. package/slides/node_modules/pako/lib/zlib/deflate.js +0 -1874
  639. package/slides/node_modules/pako/lib/zlib/gzheader.js +0 -58
  640. package/slides/node_modules/pako/lib/zlib/inffast.js +0 -345
  641. package/slides/node_modules/pako/lib/zlib/inflate.js +0 -1556
  642. package/slides/node_modules/pako/lib/zlib/inftrees.js +0 -343
  643. package/slides/node_modules/pako/lib/zlib/messages.js +0 -32
  644. package/slides/node_modules/pako/lib/zlib/trees.js +0 -1222
  645. package/slides/node_modules/pako/lib/zlib/zstream.js +0 -47
  646. package/slides/node_modules/pako/package.json +0 -44
  647. package/slides/node_modules/pptxgenjs/LICENSE +0 -21
  648. package/slides/node_modules/pptxgenjs/README.md +0 -224
  649. package/slides/node_modules/pptxgenjs/dist/pptxgen.bundle.js +0 -96
  650. package/slides/node_modules/pptxgenjs/dist/pptxgen.bundle.js.map +0 -1
  651. package/slides/node_modules/pptxgenjs/dist/pptxgen.cjs.js +0 -7370
  652. package/slides/node_modules/pptxgenjs/dist/pptxgen.es.js +0 -7368
  653. package/slides/node_modules/pptxgenjs/dist/pptxgen.min.js +0 -96
  654. package/slides/node_modules/pptxgenjs/dist/pptxgen.min.js.map +0 -1
  655. package/slides/node_modules/pptxgenjs/package.json +0 -96
  656. package/slides/node_modules/pptxgenjs/types/index.d.ts +0 -2679
  657. package/slides/node_modules/prebuild-install/CHANGELOG.md +0 -131
  658. package/slides/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
  659. package/slides/node_modules/prebuild-install/LICENSE +0 -21
  660. package/slides/node_modules/prebuild-install/README.md +0 -163
  661. package/slides/node_modules/prebuild-install/asset.js +0 -44
  662. package/slides/node_modules/prebuild-install/bin.js +0 -78
  663. package/slides/node_modules/prebuild-install/download.js +0 -142
  664. package/slides/node_modules/prebuild-install/error.js +0 -14
  665. package/slides/node_modules/prebuild-install/help.txt +0 -16
  666. package/slides/node_modules/prebuild-install/index.js +0 -1
  667. package/slides/node_modules/prebuild-install/log.js +0 -33
  668. package/slides/node_modules/prebuild-install/package.json +0 -67
  669. package/slides/node_modules/prebuild-install/proxy.js +0 -35
  670. package/slides/node_modules/prebuild-install/rc.js +0 -64
  671. package/slides/node_modules/prebuild-install/util.js +0 -143
  672. package/slides/node_modules/process-nextick-args/index.js +0 -45
  673. package/slides/node_modules/process-nextick-args/license.md +0 -19
  674. package/slides/node_modules/process-nextick-args/package.json +0 -25
  675. package/slides/node_modules/process-nextick-args/readme.md +0 -18
  676. package/slides/node_modules/pump/.github/FUNDING.yml +0 -2
  677. package/slides/node_modules/pump/.travis.yml +0 -5
  678. package/slides/node_modules/pump/LICENSE +0 -21
  679. package/slides/node_modules/pump/README.md +0 -74
  680. package/slides/node_modules/pump/SECURITY.md +0 -5
  681. package/slides/node_modules/pump/empty.js +0 -1
  682. package/slides/node_modules/pump/index.js +0 -86
  683. package/slides/node_modules/pump/package.json +0 -30
  684. package/slides/node_modules/pump/test-browser.js +0 -66
  685. package/slides/node_modules/pump/test-node.js +0 -53
  686. package/slides/node_modules/queue/LICENSE +0 -8
  687. package/slides/node_modules/queue/index.d.ts +0 -173
  688. package/slides/node_modules/queue/index.js +0 -195
  689. package/slides/node_modules/queue/package.json +0 -43
  690. package/slides/node_modules/queue/readme.md +0 -221
  691. package/slides/node_modules/rc/LICENSE.APACHE2 +0 -15
  692. package/slides/node_modules/rc/LICENSE.BSD +0 -26
  693. package/slides/node_modules/rc/LICENSE.MIT +0 -24
  694. package/slides/node_modules/rc/README.md +0 -227
  695. package/slides/node_modules/rc/browser.js +0 -7
  696. package/slides/node_modules/rc/cli.js +0 -4
  697. package/slides/node_modules/rc/index.js +0 -53
  698. package/slides/node_modules/rc/lib/utils.js +0 -104
  699. package/slides/node_modules/rc/package.json +0 -29
  700. package/slides/node_modules/rc/test/ini.js +0 -16
  701. package/slides/node_modules/rc/test/nested-env-vars.js +0 -50
  702. package/slides/node_modules/rc/test/test.js +0 -59
  703. package/slides/node_modules/readable-stream/.travis.yml +0 -34
  704. package/slides/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  705. package/slides/node_modules/readable-stream/GOVERNANCE.md +0 -136
  706. package/slides/node_modules/readable-stream/LICENSE +0 -47
  707. package/slides/node_modules/readable-stream/README.md +0 -58
  708. package/slides/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  709. package/slides/node_modules/readable-stream/duplex-browser.js +0 -1
  710. package/slides/node_modules/readable-stream/duplex.js +0 -1
  711. package/slides/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  712. package/slides/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  713. package/slides/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  714. package/slides/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  715. package/slides/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  716. package/slides/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  717. package/slides/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  718. package/slides/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  719. package/slides/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  720. package/slides/node_modules/readable-stream/package.json +0 -52
  721. package/slides/node_modules/readable-stream/passthrough.js +0 -1
  722. package/slides/node_modules/readable-stream/readable-browser.js +0 -7
  723. package/slides/node_modules/readable-stream/readable.js +0 -19
  724. package/slides/node_modules/readable-stream/transform.js +0 -1
  725. package/slides/node_modules/readable-stream/writable-browser.js +0 -1
  726. package/slides/node_modules/readable-stream/writable.js +0 -8
  727. package/slides/node_modules/safe-buffer/LICENSE +0 -21
  728. package/slides/node_modules/safe-buffer/README.md +0 -584
  729. package/slides/node_modules/safe-buffer/index.d.ts +0 -187
  730. package/slides/node_modules/safe-buffer/index.js +0 -62
  731. package/slides/node_modules/safe-buffer/package.json +0 -37
  732. package/slides/node_modules/semver/LICENSE +0 -15
  733. package/slides/node_modules/semver/README.md +0 -665
  734. package/slides/node_modules/semver/bin/semver.js +0 -191
  735. package/slides/node_modules/semver/classes/comparator.js +0 -143
  736. package/slides/node_modules/semver/classes/index.js +0 -7
  737. package/slides/node_modules/semver/classes/range.js +0 -557
  738. package/slides/node_modules/semver/classes/semver.js +0 -333
  739. package/slides/node_modules/semver/functions/clean.js +0 -8
  740. package/slides/node_modules/semver/functions/cmp.js +0 -54
  741. package/slides/node_modules/semver/functions/coerce.js +0 -62
  742. package/slides/node_modules/semver/functions/compare-build.js +0 -9
  743. package/slides/node_modules/semver/functions/compare-loose.js +0 -5
  744. package/slides/node_modules/semver/functions/compare.js +0 -7
  745. package/slides/node_modules/semver/functions/diff.js +0 -60
  746. package/slides/node_modules/semver/functions/eq.js +0 -5
  747. package/slides/node_modules/semver/functions/gt.js +0 -5
  748. package/slides/node_modules/semver/functions/gte.js +0 -5
  749. package/slides/node_modules/semver/functions/inc.js +0 -21
  750. package/slides/node_modules/semver/functions/lt.js +0 -5
  751. package/slides/node_modules/semver/functions/lte.js +0 -5
  752. package/slides/node_modules/semver/functions/major.js +0 -5
  753. package/slides/node_modules/semver/functions/minor.js +0 -5
  754. package/slides/node_modules/semver/functions/neq.js +0 -5
  755. package/slides/node_modules/semver/functions/parse.js +0 -18
  756. package/slides/node_modules/semver/functions/patch.js +0 -5
  757. package/slides/node_modules/semver/functions/prerelease.js +0 -8
  758. package/slides/node_modules/semver/functions/rcompare.js +0 -5
  759. package/slides/node_modules/semver/functions/rsort.js +0 -5
  760. package/slides/node_modules/semver/functions/satisfies.js +0 -12
  761. package/slides/node_modules/semver/functions/sort.js +0 -5
  762. package/slides/node_modules/semver/functions/valid.js +0 -8
  763. package/slides/node_modules/semver/index.js +0 -91
  764. package/slides/node_modules/semver/internal/constants.js +0 -37
  765. package/slides/node_modules/semver/internal/debug.js +0 -11
  766. package/slides/node_modules/semver/internal/identifiers.js +0 -29
  767. package/slides/node_modules/semver/internal/lrucache.js +0 -42
  768. package/slides/node_modules/semver/internal/parse-options.js +0 -17
  769. package/slides/node_modules/semver/internal/re.js +0 -223
  770. package/slides/node_modules/semver/package.json +0 -78
  771. package/slides/node_modules/semver/preload.js +0 -4
  772. package/slides/node_modules/semver/range.bnf +0 -16
  773. package/slides/node_modules/semver/ranges/gtr.js +0 -6
  774. package/slides/node_modules/semver/ranges/intersects.js +0 -9
  775. package/slides/node_modules/semver/ranges/ltr.js +0 -6
  776. package/slides/node_modules/semver/ranges/max-satisfying.js +0 -27
  777. package/slides/node_modules/semver/ranges/min-satisfying.js +0 -26
  778. package/slides/node_modules/semver/ranges/min-version.js +0 -63
  779. package/slides/node_modules/semver/ranges/outside.js +0 -82
  780. package/slides/node_modules/semver/ranges/simplify.js +0 -49
  781. package/slides/node_modules/semver/ranges/subset.js +0 -249
  782. package/slides/node_modules/semver/ranges/to-comparators.js +0 -10
  783. package/slides/node_modules/semver/ranges/valid.js +0 -13
  784. package/slides/node_modules/setimmediate/LICENSE.txt +0 -20
  785. package/slides/node_modules/setimmediate/package.json +0 -30
  786. package/slides/node_modules/setimmediate/setImmediate.js +0 -186
  787. package/slides/node_modules/simple-concat/.travis.yml +0 -3
  788. package/slides/node_modules/simple-concat/LICENSE +0 -20
  789. package/slides/node_modules/simple-concat/README.md +0 -44
  790. package/slides/node_modules/simple-concat/index.js +0 -15
  791. package/slides/node_modules/simple-concat/package.json +0 -47
  792. package/slides/node_modules/simple-concat/test/basic.js +0 -41
  793. package/slides/node_modules/simple-get/.github/dependabot.yml +0 -15
  794. package/slides/node_modules/simple-get/.github/workflows/ci.yml +0 -23
  795. package/slides/node_modules/simple-get/LICENSE +0 -20
  796. package/slides/node_modules/simple-get/README.md +0 -333
  797. package/slides/node_modules/simple-get/index.js +0 -108
  798. package/slides/node_modules/simple-get/package.json +0 -67
  799. package/slides/node_modules/string_decoder/.travis.yml +0 -50
  800. package/slides/node_modules/string_decoder/LICENSE +0 -48
  801. package/slides/node_modules/string_decoder/README.md +0 -47
  802. package/slides/node_modules/string_decoder/lib/string_decoder.js +0 -296
  803. package/slides/node_modules/string_decoder/package.json +0 -31
  804. package/slides/node_modules/strip-json-comments/index.js +0 -70
  805. package/slides/node_modules/strip-json-comments/license +0 -21
  806. package/slides/node_modules/strip-json-comments/package.json +0 -42
  807. package/slides/node_modules/strip-json-comments/readme.md +0 -64
  808. package/slides/node_modules/tar-fs/.travis.yml +0 -6
  809. package/slides/node_modules/tar-fs/LICENSE +0 -21
  810. package/slides/node_modules/tar-fs/README.md +0 -165
  811. package/slides/node_modules/tar-fs/index.js +0 -363
  812. package/slides/node_modules/tar-fs/package.json +0 -41
  813. package/slides/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
  814. package/slides/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
  815. package/slides/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  816. package/slides/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  817. package/slides/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  818. package/slides/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  819. package/slides/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  820. package/slides/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  821. package/slides/node_modules/tar-fs/test/fixtures/e/file +0 -0
  822. package/slides/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  823. package/slides/node_modules/tar-fs/test/index.js +0 -346
  824. package/slides/node_modules/tar-stream/LICENSE +0 -21
  825. package/slides/node_modules/tar-stream/README.md +0 -168
  826. package/slides/node_modules/tar-stream/extract.js +0 -257
  827. package/slides/node_modules/tar-stream/headers.js +0 -295
  828. package/slides/node_modules/tar-stream/index.js +0 -2
  829. package/slides/node_modules/tar-stream/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  830. package/slides/node_modules/tar-stream/node_modules/readable-stream/GOVERNANCE.md +0 -136
  831. package/slides/node_modules/tar-stream/node_modules/readable-stream/LICENSE +0 -47
  832. package/slides/node_modules/tar-stream/node_modules/readable-stream/README.md +0 -106
  833. package/slides/node_modules/tar-stream/node_modules/readable-stream/errors-browser.js +0 -127
  834. package/slides/node_modules/tar-stream/node_modules/readable-stream/errors.js +0 -116
  835. package/slides/node_modules/tar-stream/node_modules/readable-stream/experimentalWarning.js +0 -17
  836. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  837. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  838. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  839. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  840. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  841. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  842. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  843. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  844. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  845. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  846. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  847. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  848. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  849. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  850. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  851. package/slides/node_modules/tar-stream/node_modules/readable-stream/package.json +0 -68
  852. package/slides/node_modules/tar-stream/node_modules/readable-stream/readable-browser.js +0 -9
  853. package/slides/node_modules/tar-stream/node_modules/readable-stream/readable.js +0 -16
  854. package/slides/node_modules/tar-stream/pack.js +0 -255
  855. package/slides/node_modules/tar-stream/package.json +0 -58
  856. package/slides/node_modules/tar-stream/sandbox.js +0 -11
  857. package/slides/node_modules/tunnel-agent/LICENSE +0 -55
  858. package/slides/node_modules/tunnel-agent/README.md +0 -4
  859. package/slides/node_modules/tunnel-agent/index.js +0 -244
  860. package/slides/node_modules/tunnel-agent/package.json +0 -22
  861. package/slides/node_modules/undici-types/LICENSE +0 -21
  862. package/slides/node_modules/undici-types/README.md +0 -6
  863. package/slides/node_modules/undici-types/agent.d.ts +0 -31
  864. package/slides/node_modules/undici-types/api.d.ts +0 -43
  865. package/slides/node_modules/undici-types/balanced-pool.d.ts +0 -29
  866. package/slides/node_modules/undici-types/cache.d.ts +0 -36
  867. package/slides/node_modules/undici-types/client.d.ts +0 -108
  868. package/slides/node_modules/undici-types/connector.d.ts +0 -34
  869. package/slides/node_modules/undici-types/content-type.d.ts +0 -21
  870. package/slides/node_modules/undici-types/cookies.d.ts +0 -28
  871. package/slides/node_modules/undici-types/diagnostics-channel.d.ts +0 -66
  872. package/slides/node_modules/undici-types/dispatcher.d.ts +0 -256
  873. package/slides/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -21
  874. package/slides/node_modules/undici-types/errors.d.ts +0 -149
  875. package/slides/node_modules/undici-types/eventsource.d.ts +0 -61
  876. package/slides/node_modules/undici-types/fetch.d.ts +0 -209
  877. package/slides/node_modules/undici-types/file.d.ts +0 -39
  878. package/slides/node_modules/undici-types/filereader.d.ts +0 -54
  879. package/slides/node_modules/undici-types/formdata.d.ts +0 -108
  880. package/slides/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  881. package/slides/node_modules/undici-types/global-origin.d.ts +0 -7
  882. package/slides/node_modules/undici-types/handlers.d.ts +0 -15
  883. package/slides/node_modules/undici-types/header.d.ts +0 -4
  884. package/slides/node_modules/undici-types/index.d.ts +0 -71
  885. package/slides/node_modules/undici-types/interceptors.d.ts +0 -17
  886. package/slides/node_modules/undici-types/mock-agent.d.ts +0 -50
  887. package/slides/node_modules/undici-types/mock-client.d.ts +0 -25
  888. package/slides/node_modules/undici-types/mock-errors.d.ts +0 -12
  889. package/slides/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  890. package/slides/node_modules/undici-types/mock-pool.d.ts +0 -25
  891. package/slides/node_modules/undici-types/package.json +0 -55
  892. package/slides/node_modules/undici-types/patch.d.ts +0 -33
  893. package/slides/node_modules/undici-types/pool-stats.d.ts +0 -19
  894. package/slides/node_modules/undici-types/pool.d.ts +0 -39
  895. package/slides/node_modules/undici-types/proxy-agent.d.ts +0 -28
  896. package/slides/node_modules/undici-types/readable.d.ts +0 -65
  897. package/slides/node_modules/undici-types/retry-agent.d.ts +0 -8
  898. package/slides/node_modules/undici-types/retry-handler.d.ts +0 -116
  899. package/slides/node_modules/undici-types/util.d.ts +0 -18
  900. package/slides/node_modules/undici-types/webidl.d.ts +0 -228
  901. package/slides/node_modules/undici-types/websocket.d.ts +0 -150
  902. package/slides/node_modules/util-deprecate/History.md +0 -16
  903. package/slides/node_modules/util-deprecate/LICENSE +0 -24
  904. package/slides/node_modules/util-deprecate/README.md +0 -53
  905. package/slides/node_modules/util-deprecate/browser.js +0 -67
  906. package/slides/node_modules/util-deprecate/node.js +0 -6
  907. package/slides/node_modules/util-deprecate/package.json +0 -27
  908. package/slides/node_modules/wrappy/LICENSE +0 -15
  909. package/slides/node_modules/wrappy/README.md +0 -36
  910. package/slides/node_modules/wrappy/package.json +0 -29
  911. package/slides/node_modules/wrappy/wrappy.js +0 -33
  912. package/slides/package-lock.json +0 -536
  913. package/slides/package.json +0 -16
  914. package/slides/slides.json +0 -238
@@ -1,657 +0,0 @@
1
- # node-canvas
2
-
3
- ![Test](https://github.com/Automattic/node-canvas/workflows/Test/badge.svg)
4
- [![NPM version](https://badge.fury.io/js/canvas.svg)](http://badge.fury.io/js/canvas)
5
-
6
- node-canvas is a [Cairo](http://cairographics.org/)-backed Canvas implementation for [Node.js](http://nodejs.org).
7
-
8
- ## Installation
9
-
10
- ```bash
11
- $ npm install canvas
12
- ```
13
-
14
- By default, pre-built binaries will be downloaded if you're on one of the following platforms:
15
- - macOS x86/64
16
- - macOS aarch64 (aka Apple silicon)
17
- - Linux x86/64 (glibc only)
18
- - Windows x86/64
19
-
20
- If you want to build from source, use `npm install --build-from-source` and see the **Compiling** section below.
21
-
22
- The minimum version of Node.js required is **18.12.0**.
23
-
24
- ### Compiling
25
-
26
- If you don't have a supported OS or processor architecture, or you use `--build-from-source`, the module will be compiled on your system. This requires several dependencies, including Cairo and Pango.
27
-
28
- For detailed installation information, see the [wiki](https://github.com/Automattic/node-canvas/wiki/_pages). One-line installation instructions for common OSes are below. Note that libgif/giflib, librsvg and libjpeg are optional and only required if you need GIF, SVG and JPEG support, respectively. Cairo v1.10.0 or later is required.
29
-
30
- OS | Command
31
- ----- | -----
32
- macOS | Using [Homebrew](https://brew.sh/):<br/>`brew install pkg-config cairo pango libpng jpeg giflib librsvg pixman python-setuptools`
33
- Ubuntu | `sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev`
34
- Fedora | `sudo yum install gcc-c++ cairo-devel pango-devel libjpeg-turbo-devel giflib-devel`
35
- Solaris | `pkgin install cairo pango pkg-config xproto renderproto kbproto xextproto`
36
- OpenBSD | `doas pkg_add cairo pango png jpeg giflib`
37
- Windows | See the [wiki](https://github.com/Automattic/node-canvas/wiki/Installation:-Windows)
38
- Others | See the [wiki](https://github.com/Automattic/node-canvas/wiki)
39
-
40
- **Mac OS X v10.11+:** If you have recently updated to Mac OS X v10.11+ and are experiencing trouble when compiling, run the following command: `xcode-select --install`. Read more about the problem [on Stack Overflow](http://stackoverflow.com/a/32929012/148072).
41
- If you have xcode 10.0 or higher installed, in order to build from source you need NPM 6.4.1 or higher.
42
-
43
- ## Quick Example
44
-
45
- ```javascript
46
- const { createCanvas, loadImage } = require('canvas')
47
- const canvas = createCanvas(200, 200)
48
- const ctx = canvas.getContext('2d')
49
-
50
- // Write "Awesome!"
51
- ctx.font = '30px Impact'
52
- ctx.rotate(0.1)
53
- ctx.fillText('Awesome!', 50, 100)
54
-
55
- // Draw line under text
56
- var text = ctx.measureText('Awesome!')
57
- ctx.strokeStyle = 'rgba(0,0,0,0.5)'
58
- ctx.beginPath()
59
- ctx.lineTo(50, 102)
60
- ctx.lineTo(50 + text.width, 102)
61
- ctx.stroke()
62
-
63
- // Draw cat with lime helmet
64
- loadImage('examples/images/lime-cat.jpg').then((image) => {
65
- ctx.drawImage(image, 50, 0, 70, 70)
66
-
67
- console.log('<img src="' + canvas.toDataURL() + '" />')
68
- })
69
- ```
70
-
71
- ## Upgrading from 1.x to 2.x
72
-
73
- See the [changelog](https://github.com/Automattic/node-canvas/blob/master/CHANGELOG.md) for a guide to upgrading from 1.x to 2.x.
74
-
75
- For version 1.x documentation, see [the v1.x branch](https://github.com/Automattic/node-canvas/tree/v1.x).
76
-
77
- ## Documentation
78
-
79
- This project is an implementation of the Web Canvas API and implements that API as closely as possible. For API documentation, please visit [Mozilla Web Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API). (See [Compatibility Status](https://github.com/Automattic/node-canvas/wiki/Compatibility-Status) for the current API compliance.) All utility methods and non-standard APIs are documented below.
80
-
81
- ### Utility methods
82
-
83
- * [createCanvas()](#createcanvas)
84
- * [createImageData()](#createimagedata)
85
- * [loadImage()](#loadimage)
86
- * [registerFont()](#registerfont)
87
- * [deregisterAllFonts()](#deregisterAllFonts)
88
-
89
-
90
- ### Non-standard APIs
91
-
92
- * [Image#src](#imagesrc)
93
- * [Image#dataMode](#imagedatamode)
94
- * [Canvas#toBuffer()](#canvastobuffer)
95
- * [Canvas#createPNGStream()](#canvascreatepngstream)
96
- * [Canvas#createJPEGStream()](#canvascreatejpegstream)
97
- * [Canvas#createPDFStream()](#canvascreatepdfstream)
98
- * [Canvas#toDataURL()](#canvastodataurl)
99
- * [CanvasRenderingContext2D#patternQuality](#canvasrenderingcontext2dpatternquality)
100
- * [CanvasRenderingContext2D#quality](#canvasrenderingcontext2dquality)
101
- * [CanvasRenderingContext2D#textDrawingMode](#canvasrenderingcontext2dtextdrawingmode)
102
- * [CanvasRenderingContext2D#globalCompositeOperation = 'saturate'](#canvasrenderingcontext2dglobalcompositeoperation--saturate)
103
- * [CanvasRenderingContext2D#antialias](#canvasrenderingcontext2dantialias)
104
-
105
- ### createCanvas()
106
-
107
- > ```ts
108
- > createCanvas(width: number, height: number, type?: 'PDF'|'SVG') => Canvas
109
- > ```
110
-
111
- Creates a Canvas instance. This method works in both Node.js and Web browsers, where there is no Canvas constructor. (See `browser.js` for the implementation that runs in browsers.)
112
-
113
- ```js
114
- const { createCanvas } = require('canvas')
115
- const mycanvas = createCanvas(200, 200)
116
- const myPDFcanvas = createCanvas(600, 800, 'pdf') // see "PDF Support" section
117
- ```
118
-
119
- ### createImageData()
120
-
121
- > ```ts
122
- > createImageData(width: number, height: number) => ImageData
123
- > createImageData(data: Uint8ClampedArray, width: number, height?: number) => ImageData
124
- > // for alternative pixel formats:
125
- > createImageData(data: Uint16Array, width: number, height?: number) => ImageData
126
- > ```
127
-
128
- Creates an ImageData instance. This method works in both Node.js and Web browsers.
129
-
130
- ```js
131
- const { createImageData } = require('canvas')
132
- const width = 20, height = 20
133
- const arraySize = width * height * 4
134
- const mydata = createImageData(new Uint8ClampedArray(arraySize), width)
135
- ```
136
-
137
- ### loadImage()
138
-
139
- > ```ts
140
- > loadImage() => Promise<Image>
141
- > ```
142
-
143
- Convenience method for loading images. This method works in both Node.js and Web browsers.
144
-
145
- ```js
146
- const { loadImage } = require('canvas')
147
- const myimg = loadImage('http://server.com/image.png')
148
-
149
- myimg.then(() => {
150
- // do something with image
151
- }).catch(err => {
152
- console.log('oh no!', err)
153
- })
154
-
155
- // or with async/await:
156
- const myimg = await loadImage('http://server.com/image.png')
157
- // do something with image
158
- ```
159
-
160
- ### registerFont()
161
-
162
- > ```ts
163
- > registerFont(path: string, { family: string, weight?: string, style?: string }) => void
164
- > ```
165
-
166
- To use a font file that is not installed as a system font, use `registerFont()` to register the font with Canvas.
167
-
168
- ```js
169
- const { registerFont, createCanvas } = require('canvas')
170
- registerFont('comicsans.ttf', { family: 'Comic Sans' })
171
-
172
- const canvas = createCanvas(500, 500)
173
- const ctx = canvas.getContext('2d')
174
-
175
- ctx.font = '12px "Comic Sans"'
176
- ctx.fillText('Everyone hates this font :(', 250, 10)
177
- ```
178
-
179
- The second argument is an object with properties that resemble the CSS properties that are specified in `@font-face` rules. You must specify at least `family`. `weight`, and `style` are optional and default to `'normal'`.
180
-
181
- ### deregisterAllFonts()
182
-
183
- > ```ts
184
- > deregisterAllFonts() => void
185
- > ```
186
-
187
- Use `deregisterAllFonts` to unregister all fonts that have been previously registered. This method is useful when you want to remove all registered fonts, such as when using the canvas in tests
188
-
189
- ```ts
190
- const { registerFont, createCanvas, deregisterAllFonts } = require('canvas')
191
-
192
- describe('text rendering', () => {
193
- afterEach(() => {
194
- deregisterAllFonts();
195
- })
196
- it('should render text with Comic Sans', () => {
197
- registerFont('comicsans.ttf', { family: 'Comic Sans' })
198
-
199
- const canvas = createCanvas(500, 500)
200
- const ctx = canvas.getContext('2d')
201
-
202
- ctx.font = '12px "Comic Sans"'
203
- ctx.fillText('Everyone loves this font :)', 250, 10)
204
-
205
- // assertScreenshot()
206
- })
207
- })
208
- ```
209
-
210
- ### Image#src
211
-
212
- > ```ts
213
- > img.src: string|Buffer
214
- > ```
215
-
216
- As in browsers, `img.src` can be set to a `data:` URI or a remote URL. In addition, node-canvas allows setting `src` to a local file path or `Buffer` instance.
217
-
218
- ```javascript
219
- const { Image } = require('canvas')
220
-
221
- // From a buffer:
222
- fs.readFile('images/squid.png', (err, squid) => {
223
- if (err) throw err
224
- const img = new Image()
225
- img.onload = () => ctx.drawImage(img, 0, 0)
226
- img.onerror = err => { throw err }
227
- img.src = squid
228
- })
229
-
230
- // From a local file path:
231
- const img = new Image()
232
- img.onload = () => ctx.drawImage(img, 0, 0)
233
- img.onerror = err => { throw err }
234
- img.src = 'images/squid.png'
235
-
236
- // From a remote URL:
237
- img.src = 'http://picsum.photos/200/300'
238
- // ... as above
239
-
240
- // From a `data:` URI:
241
- img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=='
242
- // ... as above
243
- ```
244
-
245
- *Note: In some cases, `img.src=` is currently synchronous. However, you should always use `img.onload` and `img.onerror`, as we intend to make `img.src=` always asynchronous as it is in browsers. See https://github.com/Automattic/node-canvas/issues/1007.*
246
-
247
- ### Image#dataMode
248
-
249
- > ```ts
250
- > img.dataMode: number
251
- > ```
252
-
253
- Applies to JPEG images drawn to PDF canvases only.
254
-
255
- Setting `img.dataMode = Image.MODE_MIME` or `Image.MODE_MIME|Image.MODE_IMAGE` enables MIME data tracking of images. When MIME data is tracked, PDF canvases can embed JPEGs directly into the output, rather than re-encoding into PNG. This can drastically reduce filesize and speed up rendering.
256
-
257
- ```javascript
258
- const { Image, createCanvas } = require('canvas')
259
- const canvas = createCanvas(w, h, 'pdf')
260
- const img = new Image()
261
- img.dataMode = Image.MODE_IMAGE // Only image data tracked
262
- img.dataMode = Image.MODE_MIME // Only mime data tracked
263
- img.dataMode = Image.MODE_MIME | Image.MODE_IMAGE // Both are tracked
264
- ```
265
-
266
- If working with a non-PDF canvas, image data *must* be tracked; otherwise the output will be junk.
267
-
268
- Enabling mime data tracking has no benefits (only a slow down) unless you are generating a PDF.
269
-
270
- ### Canvas#toBuffer()
271
-
272
- > ```ts
273
- > canvas.toBuffer((err: Error|null, result: Buffer) => void, mimeType?: string, config?: any) => void
274
- > canvas.toBuffer(mimeType?: string, config?: any) => Buffer
275
- > ```
276
-
277
- Creates a [`Buffer`](https://nodejs.org/api/buffer.html) object representing the image contained in the canvas.
278
-
279
- * **callback** If provided, the buffer will be provided in the callback instead of being returned by the function. Invoked with an error as the first argument if encoding failed, or the resulting buffer as the second argument if it succeeded. Not supported for mimeType `raw` or for PDF or SVG canvases.
280
- * **mimeType** A string indicating the image format. Valid options are `image/png`, `image/jpeg` (if node-canvas was built with JPEG support), `raw` (unencoded data in BGRA order on little-endian (most) systems, ARGB on big-endian systems; top-to-bottom), `application/pdf` (for PDF canvases) and `image/svg+xml` (for SVG canvases). Defaults to `image/png` for image canvases, or the corresponding type for PDF or SVG canvas.
281
- * **config**
282
- * For `image/jpeg`, an object specifying the quality (0 to 1), if progressive compression should be used and/or if chroma subsampling should be used: `{quality: 0.75, progressive: false, chromaSubsampling: true}`. All properties are optional.
283
-
284
- * For `image/png`, an object specifying the ZLIB compression level (between 0 and 9), the compression filter(s), the palette (indexed PNGs only), the the background palette index (indexed PNGs only) and/or the resolution (ppi): `{compressionLevel: 6, filters: canvas.PNG_ALL_FILTERS, palette: undefined, backgroundIndex: 0, resolution: undefined}`. All properties are optional.
285
-
286
- Note that the PNG format encodes the resolution in pixels per meter, so if you specify `96`, the file will encode 3780 ppm (~96.01 ppi). The resolution is undefined by default to match common browser behavior.
287
-
288
- * For `application/pdf`, an object specifying optional document metadata: `{title: string, author: string, subject: string, keywords: string, creator: string, creationDate: Date, modDate: Date}`. All properties are optional and default to `undefined`, except for `creationDate`, which defaults to the current date. *Adding metadata requires Cairo 1.16.0 or later.*
289
-
290
- For a description of these properties, see page 550 of [PDF 32000-1:2008](https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf).
291
-
292
- Note that there is no standard separator for `keywords`. A space is recommended because it is in common use by other applications, and Cairo will enclose the list of keywords in quotes if a comma or semicolon is used.
293
-
294
- **Return value**
295
-
296
- If no callback is provided, a [`Buffer`](https://nodejs.org/api/buffer.html). If a callback is provided, none.
297
-
298
- #### Examples
299
-
300
- ```js
301
- // Default: buf contains a PNG-encoded image
302
- const buf = canvas.toBuffer()
303
-
304
- // PNG-encoded, zlib compression level 3 for faster compression but bigger files, no filtering
305
- const buf2 = canvas.toBuffer('image/png', { compressionLevel: 3, filters: canvas.PNG_FILTER_NONE })
306
-
307
- // JPEG-encoded, 50% quality
308
- const buf3 = canvas.toBuffer('image/jpeg', { quality: 0.5 })
309
-
310
- // Asynchronous PNG
311
- canvas.toBuffer((err, buf) => {
312
- if (err) throw err // encoding failed
313
- // buf is PNG-encoded image
314
- })
315
-
316
- canvas.toBuffer((err, buf) => {
317
- if (err) throw err // encoding failed
318
- // buf is JPEG-encoded image at 95% quality
319
- }, 'image/jpeg', { quality: 0.95 })
320
-
321
- // BGRA pixel values, native-endian
322
- const buf4 = canvas.toBuffer('raw')
323
- const { stride, width } = canvas
324
- // In memory, this is `canvas.height * canvas.stride` bytes long.
325
- // The top row of pixels, in BGRA order on little-endian hardware,
326
- // left-to-right, is:
327
- const topPixelsBGRALeftToRight = buf4.slice(0, width * 4)
328
- // And the third row is:
329
- const row3 = buf4.slice(2 * stride, 2 * stride + width * 4)
330
-
331
- // SVG and PDF canvases
332
- const myCanvas = createCanvas(w, h, 'pdf')
333
- myCanvas.toBuffer() // returns a buffer containing a PDF-encoded canvas
334
- // With optional metadata:
335
- myCanvas.toBuffer('application/pdf', {
336
- title: 'my picture',
337
- keywords: 'node.js demo cairo',
338
- creationDate: new Date()
339
- })
340
- ```
341
-
342
- ### Canvas#createPNGStream()
343
-
344
- > ```ts
345
- > canvas.createPNGStream(config?: any) => ReadableStream
346
- > ```
347
-
348
- Creates a [`ReadableStream`](https://nodejs.org/api/stream.html#stream_class_stream_readable) that emits PNG-encoded data.
349
-
350
- * `config` An object specifying the ZLIB compression level (between 0 and 9), the compression filter(s), the palette (indexed PNGs only) and/or the background palette index (indexed PNGs only): `{compressionLevel: 6, filters: canvas.PNG_ALL_FILTERS, palette: undefined, backgroundIndex: 0, resolution: undefined}`. All properties are optional.
351
-
352
- #### Examples
353
-
354
- ```javascript
355
- const fs = require('fs')
356
- const out = fs.createWriteStream(__dirname + '/test.png')
357
- const stream = canvas.createPNGStream()
358
- stream.pipe(out)
359
- out.on('finish', () => console.log('The PNG file was created.'))
360
- ```
361
-
362
- To encode indexed PNGs from canvases with `pixelFormat: 'A8'` or `'A1'`, provide an options object:
363
-
364
- ```js
365
- const palette = new Uint8ClampedArray([
366
- //r g b a
367
- 0, 50, 50, 255, // index 1
368
- 10, 90, 90, 255, // index 2
369
- 127, 127, 255, 255
370
- // ...
371
- ])
372
- canvas.createPNGStream({
373
- palette: palette,
374
- backgroundIndex: 0 // optional, defaults to 0
375
- })
376
- ```
377
-
378
- ### Canvas#createJPEGStream()
379
-
380
- > ```ts
381
- > canvas.createJPEGStream(config?: any) => ReadableStream
382
- > ```
383
-
384
- Creates a [`ReadableStream`](https://nodejs.org/api/stream.html#stream_class_stream_readable) that emits JPEG-encoded data.
385
-
386
- *Note: At the moment, `createJPEGStream()` is synchronous under the hood. That is, it runs in the main thread, not in the libuv threadpool.*
387
-
388
- * `config` an object specifying the quality (0 to 1), if progressive compression should be used and/or if chroma subsampling should be used: `{quality: 0.75, progressive: false, chromaSubsampling: true}`. All properties are optional.
389
-
390
- #### Examples
391
-
392
- ```javascript
393
- const fs = require('fs')
394
- const out = fs.createWriteStream(__dirname + '/test.jpeg')
395
- const stream = canvas.createJPEGStream()
396
- stream.pipe(out)
397
- out.on('finish', () => console.log('The JPEG file was created.'))
398
-
399
- // Disable 2x2 chromaSubsampling for deeper colors and use a higher quality
400
- const stream = canvas.createJPEGStream({
401
- quality: 0.95,
402
- chromaSubsampling: false
403
- })
404
- ```
405
-
406
- ### Canvas#createPDFStream()
407
-
408
- > ```ts
409
- > canvas.createPDFStream(config?: any) => ReadableStream
410
- > ```
411
-
412
- * `config` an object specifying optional document metadata: `{title: string, author: string, subject: string, keywords: string, creator: string, creationDate: Date, modDate: Date}`. See `toBuffer()` for more information. *Adding metadata requires Cairo 1.16.0 or later.*
413
-
414
- Applies to PDF canvases only. Creates a [`ReadableStream`](https://nodejs.org/api/stream.html#stream_class_stream_readable) that emits the encoded PDF. `canvas.toBuffer()` also produces an encoded PDF, but `createPDFStream()` can be used to reduce memory usage.
415
-
416
- ### Canvas#toDataURL()
417
-
418
- This is a standard API, but several non-standard calls are supported. The full list of supported calls is:
419
-
420
- ```js
421
- dataUrl = canvas.toDataURL() // defaults to PNG
422
- dataUrl = canvas.toDataURL('image/png')
423
- dataUrl = canvas.toDataURL('image/jpeg')
424
- dataUrl = canvas.toDataURL('image/jpeg', quality) // quality from 0 to 1
425
- canvas.toDataURL((err, png) => { }) // defaults to PNG
426
- canvas.toDataURL('image/png', (err, png) => { })
427
- canvas.toDataURL('image/jpeg', (err, jpeg) => { }) // sync JPEG is not supported
428
- canvas.toDataURL('image/jpeg', {...opts}, (err, jpeg) => { }) // see Canvas#createJPEGStream for valid options
429
- canvas.toDataURL('image/jpeg', quality, (err, jpeg) => { }) // spec-following; quality from 0 to 1
430
- ```
431
-
432
- ### CanvasRenderingContext2D#patternQuality
433
-
434
- > ```ts
435
- > context.patternQuality: 'fast'|'good'|'best'|'nearest'|'bilinear'
436
- > ```
437
-
438
- Defaults to `'good'`. Affects pattern (gradient, image, etc.) rendering quality.
439
-
440
- ### CanvasRenderingContext2D#quality
441
-
442
- > ```ts
443
- > context.quality: 'fast'|'good'|'best'|'nearest'|'bilinear'
444
- > ```
445
-
446
- Defaults to `'good'`. Like `patternQuality`, but applies to transformations affecting more than just patterns.
447
-
448
- ### CanvasRenderingContext2D#textDrawingMode
449
-
450
- > ```ts
451
- > context.textDrawingMode: 'path'|'glyph'
452
- > ```
453
-
454
- Defaults to `'path'`. The effect depends on the canvas type:
455
-
456
- * **Standard (image)** `glyph` and `path` both result in rasterized text. Glyph mode is faster than `path`, but may result in lower-quality text, especially when rotated or translated.
457
-
458
- * **PDF** `glyph` will embed text instead of paths into the PDF. This is faster to encode, faster to open with PDF viewers, yields a smaller file size and makes the text selectable. The subset of the font needed to render the glyphs will be embedded in the PDF. This is usually the mode you want to use with PDF canvases.
459
-
460
- * **SVG** `glyph` does *not* cause `<text>` elements to be produced as one might expect ([cairo bug](https://gitlab.freedesktop.org/cairo/cairo/issues/253)). Rather, `glyph` will create a `<defs>` section with a `<symbol>` for each glyph, then those glyphs be reused via `<use>` elements. `path` mode creates a `<path>` element for each text string. `glyph` mode is faster and yields a smaller file size.
461
-
462
- In `glyph` mode, `ctx.strokeText()` and `ctx.fillText()` behave the same (aside from using the stroke and fill style, respectively).
463
-
464
- This property is tracked as part of the canvas state in save/restore.
465
-
466
- ### CanvasRenderingContext2D#globalCompositeOperation = 'saturate'
467
-
468
- In addition to all of the standard global composite operations defined by the Canvas specification, the ['saturate'](https://www.cairographics.org/operators/#saturate) operation is also available.
469
-
470
- ### CanvasRenderingContext2D#antialias
471
-
472
- > ```ts
473
- > context.antialias: 'default'|'none'|'gray'|'subpixel'
474
- > ```
475
-
476
- Sets the anti-aliasing mode.
477
-
478
- ## PDF Output Support
479
-
480
- node-canvas can create PDF documents instead of images. The canvas type must be set when creating the canvas as follows:
481
-
482
- ```js
483
- const canvas = createCanvas(200, 500, 'pdf')
484
- ```
485
-
486
- An additional method `.addPage()` is then available to create multiple page PDFs:
487
-
488
- ```js
489
- // On first page
490
- ctx.font = '22px Helvetica'
491
- ctx.fillText('Hello World', 50, 80)
492
-
493
- ctx.addPage()
494
- // Now on second page
495
- ctx.font = '22px Helvetica'
496
- ctx.fillText('Hello World 2', 50, 80)
497
-
498
- canvas.toBuffer() // returns a PDF file
499
- canvas.createPDFStream() // returns a ReadableStream that emits a PDF
500
- // With optional document metadata (requires Cairo 1.16.0):
501
- canvas.toBuffer('application/pdf', {
502
- title: 'my picture',
503
- keywords: 'node.js demo cairo',
504
- creationDate: new Date()
505
- })
506
- ```
507
-
508
- It is also possible to create pages with different sizes by passing `width` and `height` to the `.addPage()` method:
509
-
510
- ```js
511
- ctx.font = '22px Helvetica'
512
- ctx.fillText('Hello World', 50, 80)
513
- ctx.addPage(400, 800)
514
-
515
- ctx.fillText('Hello World 2', 50, 80)
516
- ```
517
-
518
- It is possible to add hyperlinks using `.beginTag()` and `.endTag()`:
519
-
520
- ```js
521
- ctx.beginTag('Link', "uri='https://google.com'")
522
- ctx.font = '22px Helvetica'
523
- ctx.fillText('Hello World', 50, 80)
524
- ctx.endTag('Link')
525
- ```
526
-
527
- Or with a defined rectangle:
528
-
529
- ```js
530
- ctx.beginTag('Link', "uri='https://google.com' rect=[50 80 100 20]")
531
- ctx.endTag('Link')
532
- ```
533
-
534
- Note that the syntax for attributes is unique to Cairo. See [cairo_tag_begin](https://www.cairographics.org/manual/cairo-Tags-and-Links.html#cairo-tag-begin) for the full documentation.
535
-
536
- You can create areas on the canvas using the "cairo.dest" tag, and then link to them using the "Link" tag with the `dest=` attribute. You can also define PDF structure for accessibility by using tag names like "P", "H1", and "TABLE". The standard tags are defined in §14.8.4 of the [PDF 1.7](https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf) specification.
537
-
538
- See also:
539
-
540
- * [Image#dataMode](#imagedatamode) for embedding JPEGs in PDFs
541
- * [Canvas#createPDFStream()](#canvascreatepdfstream) for creating PDF streams
542
- * [CanvasRenderingContext2D#textDrawingMode](#canvasrenderingcontext2dtextdrawingmode)
543
- for embedding text instead of paths
544
-
545
- ## SVG Output Support
546
-
547
- node-canvas can create SVG documents instead of images. The canvas type must be set when creating the canvas as follows:
548
-
549
- ```js
550
- const canvas = createCanvas(200, 500, 'svg')
551
- // Use the normal primitives.
552
- fs.writeFileSync('out.svg', canvas.toBuffer())
553
- ```
554
-
555
- ## SVG Image Support
556
-
557
- If librsvg is available when node-canvas is installed, node-canvas can render SVG images to your canvas context. This currently works by rasterizing the SVG image (i.e. drawing an SVG image to an SVG canvas will not preserve the SVG data).
558
-
559
- ```js
560
- const img = new Image()
561
- img.onload = () => ctx.drawImage(img, 0, 0)
562
- img.onerror = err => { throw err }
563
- img.src = './example.svg'
564
- ```
565
-
566
- ## Image pixel formats (experimental)
567
-
568
- node-canvas has experimental support for additional pixel formats, roughly following the [Canvas color space proposal](https://github.com/WICG/canvas-color-space/blob/master/CanvasColorSpaceProposal.md).
569
-
570
- ```js
571
- const canvas = createCanvas(200, 200)
572
- const ctx = canvas.getContext('2d', { pixelFormat: 'A8' })
573
- ```
574
-
575
- By default, canvases are created in the `RGBA32` format, which corresponds to the native HTML Canvas behavior. Each pixel is 32 bits. The JavaScript APIs that involve pixel data (`getImageData`, `putImageData`) store the colors in the order {red, green, blue, alpha} without alpha pre-multiplication. (The C++ API stores the colors in the order {alpha, red, green, blue} in native-[endian](https://en.wikipedia.org/wiki/Endianness) ordering, with alpha pre-multiplication.)
576
-
577
- These additional pixel formats have experimental support:
578
-
579
- * `RGB24` Like `RGBA32`, but the 8 alpha bits are always opaque. This format is always used if the `alpha` context attribute is set to false (i.e. `canvas.getContext('2d', {alpha: false})`). This format can be faster than `RGBA32` because transparency does not need to be calculated.
580
- * `A8` Each pixel is 8 bits. This format can either be used for creating grayscale images (treating each byte as an alpha value), or for creating indexed PNGs (treating each byte as a palette index) (see [the example using alpha values with `fillStyle`](examples/indexed-png-alpha.js) and [the example using `imageData`](examples/indexed-png-image-data.js)).
581
- * `RGB16_565` Each pixel is 16 bits, with red in the upper 5 bits, green in the middle 6 bits, and blue in the lower 5 bits, in native platform endianness. Some hardware devices and frame buffers use this format. Note that PNG does not support this format; when creating a PNG, the image will be converted to 24-bit RGB. This format is thus suboptimal for generating PNGs. `ImageData` instances for this mode use a `Uint16Array` instead of a `Uint8ClampedArray`.
582
- * `A1` Each pixel is 1 bit, and pixels are packed together into 32-bit quantities. The ordering of the bits matches the endianness of the
583
- platform: on a little-endian machine, the first pixel is the least-significant bit. This format can be used for creating single-color images. *Support for this format is incomplete, see note below.*
584
- * `RGB30` Each pixel is 30 bits, with red in the upper 10, green in the middle 10, and blue in the lower 10. (Requires Cairo 1.12 or later.) *Support for this format is incomplete, see note below.*
585
-
586
- Notes and caveats:
587
-
588
- * Using a non-default format can affect the behavior of APIs that involve pixel data:
589
-
590
- * `context2d.createImageData` The size of the array returned depends on the number of bit per pixel for the underlying image data format, per the above descriptions.
591
- * `context2d.getImageData` The format of the array returned depends on the underlying image mode, per the above descriptions. Be aware of platform endianness, which can be determined using node.js's [`os.endianness()`](https://nodejs.org/api/os.html#os_os_endianness)
592
- function.
593
- * `context2d.putImageData` As above.
594
-
595
- * `A1` and `RGB30` do not yet support `getImageData` or `putImageData`. Have a use case and/or opinion on working with these formats? Open an issue and let us know! (See #935.)
596
-
597
- * `A1`, `A8`, `RGB30` and `RGB16_565` with shadow blurs may crash or not render properly.
598
-
599
- * The `ImageData(width, height)` and `ImageData(Uint8ClampedArray, width)` constructors assume 4 bytes per pixel. To create an `ImageData` instance with a different number of bytes per pixel, use `new ImageData(new Uint8ClampedArray(size), width, height)` or `new ImageData(new Uint16ClampedArray(size), width, height)`.
600
-
601
- ## Testing
602
-
603
- First make sure you've built the latest version. Get all the deps you need (see [compiling](#compiling) above), and run:
604
-
605
- ```
606
- npm install --build-from-source
607
- ```
608
-
609
- For visual tests: `npm run test-server` and point your browser to http://localhost:4000.
610
-
611
- For unit tests: `npm run test`.
612
-
613
- ## Benchmarks
614
-
615
- Benchmarks live in the `benchmarks` directory.
616
-
617
- ## Examples
618
-
619
- Examples line in the `examples` directory. Most produce a png image of the same name, and others such as *live-clock.js* launch an HTTP server to be viewed in the browser.
620
-
621
- ## Original Authors
622
-
623
- - TJ Holowaychuk ([tj](http://github.com/tj))
624
- - Nathan Rajlich ([TooTallNate](http://github.com/TooTallNate))
625
- - Rod Vagg ([rvagg](http://github.com/rvagg))
626
- - Juriy Zaytsev ([kangax](http://github.com/kangax))
627
-
628
- ## License
629
-
630
- ### node-canvas
631
-
632
- (The MIT License)
633
-
634
- Copyright (c) 2010 LearnBoost, and contributors &lt;dev@learnboost.com&gt;
635
-
636
- Copyright (c) 2014 Automattic, Inc and contributors &lt;dev@automattic.com&gt;
637
-
638
- Permission is hereby granted, free of charge, to any person obtaining a copy of
639
- this software and associated documentation files (the 'Software'), to deal in
640
- the Software without restriction, including without limitation the rights to
641
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
642
- the Software, and to permit persons to whom the Software is furnished to do so,
643
- subject to the following conditions:
644
-
645
- The above copyright notice and this permission notice shall be included in all
646
- copies or substantial portions of the Software.
647
-
648
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
649
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
650
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
651
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
652
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
653
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
654
-
655
- ### BMP parser
656
-
657
- See [license](src/bmp/LICENSE.md)