create-nextjs-cms 0.5.56 → 0.5.58

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 (337) hide show
  1. package/package.json +4 -4
  2. package/templates/default/CHANGELOG.md +140 -140
  3. package/templates/default/_gitignore +1 -0
  4. package/templates/default/app/(rootLayout)/admins/page.tsx +7 -2
  5. package/templates/default/app/(rootLayout)/advanced/page.tsx +8 -2
  6. package/templates/default/app/(rootLayout)/browse/[section]/[page]/page.tsx +17 -3
  7. package/templates/default/app/(rootLayout)/categorized/[section]/page.tsx +9 -1
  8. package/templates/default/app/(rootLayout)/dashboard-new/page.tsx +7 -0
  9. package/templates/default/app/(rootLayout)/edit/[section]/[itemId]/page.tsx +11 -1
  10. package/templates/default/app/(rootLayout)/layout.tsx +8 -1
  11. package/templates/default/app/(rootLayout)/new/[section]/page.tsx +9 -1
  12. package/templates/default/app/(rootLayout)/section/[section]/page.tsx +10 -1
  13. package/templates/default/app/(rootLayout)/settings/page.tsx +7 -1
  14. package/templates/default/app/api/trpc/[trpc]/route.ts +1 -1
  15. package/templates/default/app/api/video/route.ts +1 -1
  16. package/templates/default/app/layout.tsx +1 -1
  17. package/templates/default/app/providers.tsx +4 -4
  18. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/LICENSE +191 -0
  19. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/README.md +118 -0
  20. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/install/build.js +38 -0
  21. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/install/check.js +14 -0
  22. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/channel.js +177 -0
  23. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/colour.js +195 -0
  24. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/composite.js +212 -0
  25. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/constructor.js +499 -0
  26. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/index.d.ts +1971 -0
  27. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/index.js +16 -0
  28. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/input.js +809 -0
  29. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/is.js +143 -0
  30. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/libvips.js +207 -0
  31. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/operation.js +1016 -0
  32. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/output.js +1666 -0
  33. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/resize.js +595 -0
  34. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/sharp.js +121 -0
  35. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/lib/utility.js +291 -0
  36. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/package.json +202 -0
  37. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/binding.gyp +298 -0
  38. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/common.cc +1130 -0
  39. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/common.h +402 -0
  40. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/metadata.cc +346 -0
  41. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/metadata.h +90 -0
  42. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/operations.cc +499 -0
  43. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/operations.h +137 -0
  44. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/pipeline.cc +1814 -0
  45. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/pipeline.h +408 -0
  46. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/sharp.cc +43 -0
  47. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/stats.cc +186 -0
  48. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/stats.h +62 -0
  49. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/utilities.cc +288 -0
  50. package/templates/default/apps/cms/node_modules/next/node_modules/_tmp_40516_de1b9f7e36eccb968b79dbd2b8c388ea/src/utilities.h +22 -0
  51. package/templates/default/components/BrowsePage.tsx +4 -4
  52. package/templates/default/components/DashboardNewPage.tsx +252 -0
  53. package/templates/default/components/LogPage.tsx +2 -3
  54. package/templates/default/components/SettingsPage.tsx +1 -1
  55. package/templates/default/components/form/Form.tsx +5 -5
  56. package/templates/default/components/form/helpers/util.ts +5 -5
  57. package/templates/default/dynamic-schemas/schema.ts +381 -381
  58. package/templates/default/next-env.d.ts +1 -1
  59. package/templates/default/next.config.ts +24 -0
  60. package/templates/default/package.json +23 -17
  61. package/templates/default/{middleware.ts → proxy.ts} +3 -4
  62. package/templates/default/test/prize.section.ts +58 -0
  63. package/templates/default/tsconfig.json +6 -3
  64. package/templates/default/app/api/placeholder/route.ts +0 -7
  65. package/templates/default/components/form/helpers/_section-hot-reload.js +0 -11
  66. package/templates/default/public/tinymce/CHANGELOG.md +0 -3940
  67. package/templates/default/public/tinymce/README.md +0 -77
  68. package/templates/default/public/tinymce/bower.json +0 -27
  69. package/templates/default/public/tinymce/composer.json +0 -52
  70. package/templates/default/public/tinymce/icons/default/icons.js +0 -239
  71. package/templates/default/public/tinymce/icons/default/icons.min.js +0 -1
  72. package/templates/default/public/tinymce/icons/default/index.js +0 -7
  73. package/templates/default/public/tinymce/license.md +0 -9
  74. package/templates/default/public/tinymce/models/dom/index.js +0 -7
  75. package/templates/default/public/tinymce/models/dom/model.js +0 -8980
  76. package/templates/default/public/tinymce/models/dom/model.min.js +0 -1
  77. package/templates/default/public/tinymce/notices.txt +0 -21
  78. package/templates/default/public/tinymce/package.json +0 -32
  79. package/templates/default/public/tinymce/plugins/accordion/index.js +0 -7
  80. package/templates/default/public/tinymce/plugins/accordion/plugin.js +0 -1373
  81. package/templates/default/public/tinymce/plugins/accordion/plugin.min.js +0 -1
  82. package/templates/default/public/tinymce/plugins/advlist/index.js +0 -7
  83. package/templates/default/public/tinymce/plugins/advlist/plugin.js +0 -473
  84. package/templates/default/public/tinymce/plugins/advlist/plugin.min.js +0 -1
  85. package/templates/default/public/tinymce/plugins/anchor/index.js +0 -7
  86. package/templates/default/public/tinymce/plugins/anchor/plugin.js +0 -237
  87. package/templates/default/public/tinymce/plugins/anchor/plugin.min.js +0 -1
  88. package/templates/default/public/tinymce/plugins/autolink/index.js +0 -7
  89. package/templates/default/public/tinymce/plugins/autolink/plugin.js +0 -315
  90. package/templates/default/public/tinymce/plugins/autolink/plugin.min.js +0 -1
  91. package/templates/default/public/tinymce/plugins/autoresize/index.js +0 -7
  92. package/templates/default/public/tinymce/plugins/autoresize/plugin.js +0 -221
  93. package/templates/default/public/tinymce/plugins/autoresize/plugin.min.js +0 -1
  94. package/templates/default/public/tinymce/plugins/autosave/index.js +0 -7
  95. package/templates/default/public/tinymce/plugins/autosave/plugin.js +0 -249
  96. package/templates/default/public/tinymce/plugins/autosave/plugin.min.js +0 -1
  97. package/templates/default/public/tinymce/plugins/charmap/index.js +0 -7
  98. package/templates/default/public/tinymce/plugins/charmap/plugin.js +0 -997
  99. package/templates/default/public/tinymce/plugins/charmap/plugin.min.js +0 -1
  100. package/templates/default/public/tinymce/plugins/code/index.js +0 -7
  101. package/templates/default/public/tinymce/plugins/code/plugin.js +0 -98
  102. package/templates/default/public/tinymce/plugins/code/plugin.min.js +0 -1
  103. package/templates/default/public/tinymce/plugins/codesample/index.js +0 -7
  104. package/templates/default/public/tinymce/plugins/codesample/plugin.js +0 -3655
  105. package/templates/default/public/tinymce/plugins/codesample/plugin.min.js +0 -9
  106. package/templates/default/public/tinymce/plugins/directionality/index.js +0 -7
  107. package/templates/default/public/tinymce/plugins/directionality/plugin.js +0 -634
  108. package/templates/default/public/tinymce/plugins/directionality/plugin.min.js +0 -1
  109. package/templates/default/public/tinymce/plugins/emoticons/index.js +0 -7
  110. package/templates/default/public/tinymce/plugins/emoticons/js/emojiimages.js +0 -1
  111. package/templates/default/public/tinymce/plugins/emoticons/js/emojiimages.min.js +0 -1
  112. package/templates/default/public/tinymce/plugins/emoticons/js/emojis.js +0 -1
  113. package/templates/default/public/tinymce/plugins/emoticons/js/emojis.min.js +0 -1
  114. package/templates/default/public/tinymce/plugins/emoticons/plugin.js +0 -809
  115. package/templates/default/public/tinymce/plugins/emoticons/plugin.min.js +0 -1
  116. package/templates/default/public/tinymce/plugins/fullscreen/index.js +0 -7
  117. package/templates/default/public/tinymce/plugins/fullscreen/plugin.js +0 -1607
  118. package/templates/default/public/tinymce/plugins/fullscreen/plugin.min.js +0 -1
  119. package/templates/default/public/tinymce/plugins/help/index.js +0 -7
  120. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/ar.js +0 -93
  121. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/bg-BG.js +0 -93
  122. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +0 -93
  123. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/ca.js +0 -93
  124. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/cs.js +0 -93
  125. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/da.js +0 -93
  126. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/de.js +0 -93
  127. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/el.js +0 -93
  128. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/en.js +0 -93
  129. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/es.js +0 -93
  130. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/eu.js +0 -93
  131. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/fa.js +0 -93
  132. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/fi.js +0 -93
  133. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/fr-FR.js +0 -93
  134. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +0 -93
  135. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/he-IL.js +0 -93
  136. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/he_IL.js +0 -93
  137. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/hi.js +0 -93
  138. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/hr.js +0 -93
  139. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/hu-HU.js +0 -93
  140. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +0 -93
  141. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/id.js +0 -93
  142. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/it.js +0 -93
  143. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/ja.js +0 -93
  144. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/kk.js +0 -93
  145. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/ko-KR.js +0 -93
  146. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +0 -93
  147. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/ms.js +0 -93
  148. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/nb-NO.js +0 -93
  149. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +0 -93
  150. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/nl.js +0 -93
  151. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/pl.js +0 -93
  152. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/pt-BR.js +0 -93
  153. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/pt-PT.js +0 -93
  154. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +0 -93
  155. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +0 -93
  156. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/ro.js +0 -93
  157. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/ru.js +0 -93
  158. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/sk.js +0 -93
  159. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/sl-SI.js +0 -93
  160. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +0 -93
  161. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/sv-SE.js +0 -93
  162. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +0 -93
  163. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/th-TH.js +0 -93
  164. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/th_TH.js +0 -93
  165. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/tr.js +0 -93
  166. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/uk.js +0 -93
  167. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/vi.js +0 -93
  168. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/zh-CN.js +0 -87
  169. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/zh-TW.js +0 -93
  170. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +0 -87
  171. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +0 -93
  172. package/templates/default/public/tinymce/plugins/help/plugin.js +0 -826
  173. package/templates/default/public/tinymce/plugins/help/plugin.min.js +0 -1
  174. package/templates/default/public/tinymce/plugins/image/index.js +0 -7
  175. package/templates/default/public/tinymce/plugins/image/plugin.js +0 -1691
  176. package/templates/default/public/tinymce/plugins/image/plugin.min.js +0 -1
  177. package/templates/default/public/tinymce/plugins/importcss/index.js +0 -7
  178. package/templates/default/public/tinymce/plugins/importcss/plugin.js +0 -401
  179. package/templates/default/public/tinymce/plugins/importcss/plugin.min.js +0 -1
  180. package/templates/default/public/tinymce/plugins/insertdatetime/index.js +0 -7
  181. package/templates/default/public/tinymce/plugins/insertdatetime/plugin.js +0 -187
  182. package/templates/default/public/tinymce/plugins/insertdatetime/plugin.min.js +0 -1
  183. package/templates/default/public/tinymce/plugins/link/index.js +0 -7
  184. package/templates/default/public/tinymce/plugins/link/plugin.js +0 -1709
  185. package/templates/default/public/tinymce/plugins/link/plugin.min.js +0 -1
  186. package/templates/default/public/tinymce/plugins/lists/index.js +0 -7
  187. package/templates/default/public/tinymce/plugins/lists/plugin.js +0 -602
  188. package/templates/default/public/tinymce/plugins/lists/plugin.min.js +0 -1
  189. package/templates/default/public/tinymce/plugins/media/index.js +0 -7
  190. package/templates/default/public/tinymce/plugins/media/plugin.js +0 -1442
  191. package/templates/default/public/tinymce/plugins/media/plugin.min.js +0 -1
  192. package/templates/default/public/tinymce/plugins/nonbreaking/index.js +0 -7
  193. package/templates/default/public/tinymce/plugins/nonbreaking/plugin.js +0 -128
  194. package/templates/default/public/tinymce/plugins/nonbreaking/plugin.min.js +0 -1
  195. package/templates/default/public/tinymce/plugins/pagebreak/index.js +0 -7
  196. package/templates/default/public/tinymce/plugins/pagebreak/plugin.js +0 -123
  197. package/templates/default/public/tinymce/plugins/pagebreak/plugin.min.js +0 -1
  198. package/templates/default/public/tinymce/plugins/preview/index.js +0 -7
  199. package/templates/default/public/tinymce/plugins/preview/plugin.js +0 -843
  200. package/templates/default/public/tinymce/plugins/preview/plugin.min.js +0 -1
  201. package/templates/default/public/tinymce/plugins/quickbars/index.js +0 -7
  202. package/templates/default/public/tinymce/plugins/quickbars/plugin.js +0 -654
  203. package/templates/default/public/tinymce/plugins/quickbars/plugin.min.js +0 -1
  204. package/templates/default/public/tinymce/plugins/save/index.js +0 -7
  205. package/templates/default/public/tinymce/plugins/save/plugin.js +0 -136
  206. package/templates/default/public/tinymce/plugins/save/plugin.min.js +0 -1
  207. package/templates/default/public/tinymce/plugins/searchreplace/index.js +0 -7
  208. package/templates/default/public/tinymce/plugins/searchreplace/plugin.js +0 -1367
  209. package/templates/default/public/tinymce/plugins/searchreplace/plugin.min.js +0 -1
  210. package/templates/default/public/tinymce/plugins/table/index.js +0 -7
  211. package/templates/default/public/tinymce/plugins/table/plugin.js +0 -4008
  212. package/templates/default/public/tinymce/plugins/table/plugin.min.js +0 -1
  213. package/templates/default/public/tinymce/plugins/visualblocks/index.js +0 -7
  214. package/templates/default/public/tinymce/plugins/visualblocks/plugin.js +0 -106
  215. package/templates/default/public/tinymce/plugins/visualblocks/plugin.min.js +0 -1
  216. package/templates/default/public/tinymce/plugins/visualchars/index.js +0 -7
  217. package/templates/default/public/tinymce/plugins/visualchars/plugin.js +0 -808
  218. package/templates/default/public/tinymce/plugins/visualchars/plugin.min.js +0 -1
  219. package/templates/default/public/tinymce/plugins/wordcount/index.js +0 -7
  220. package/templates/default/public/tinymce/plugins/wordcount/plugin.js +0 -480
  221. package/templates/default/public/tinymce/plugins/wordcount/plugin.min.js +0 -1
  222. package/templates/default/public/tinymce/skins/content/dark/content.css +0 -75
  223. package/templates/default/public/tinymce/skins/content/dark/content.js +0 -10
  224. package/templates/default/public/tinymce/skins/content/dark/content.min.css +0 -10
  225. package/templates/default/public/tinymce/skins/content/dark/content.min.ts +0 -3
  226. package/templates/default/public/tinymce/skins/content/dark/content.ts +0 -3
  227. package/templates/default/public/tinymce/skins/content/default/content.css +0 -70
  228. package/templates/default/public/tinymce/skins/content/default/content.js +0 -10
  229. package/templates/default/public/tinymce/skins/content/default/content.min.css +0 -10
  230. package/templates/default/public/tinymce/skins/content/default/content.min.ts +0 -3
  231. package/templates/default/public/tinymce/skins/content/default/content.ts +0 -3
  232. package/templates/default/public/tinymce/skins/content/document/content.css +0 -75
  233. package/templates/default/public/tinymce/skins/content/document/content.js +0 -10
  234. package/templates/default/public/tinymce/skins/content/document/content.min.css +0 -10
  235. package/templates/default/public/tinymce/skins/content/document/content.min.ts +0 -3
  236. package/templates/default/public/tinymce/skins/content/document/content.ts +0 -3
  237. package/templates/default/public/tinymce/skins/content/tinymce-5/content.css +0 -70
  238. package/templates/default/public/tinymce/skins/content/tinymce-5/content.js +0 -10
  239. package/templates/default/public/tinymce/skins/content/tinymce-5/content.min.css +0 -10
  240. package/templates/default/public/tinymce/skins/content/tinymce-5/content.min.ts +0 -3
  241. package/templates/default/public/tinymce/skins/content/tinymce-5/content.ts +0 -3
  242. package/templates/default/public/tinymce/skins/content/tinymce-5-dark/content.css +0 -75
  243. package/templates/default/public/tinymce/skins/content/tinymce-5-dark/content.js +0 -10
  244. package/templates/default/public/tinymce/skins/content/tinymce-5-dark/content.min.css +0 -10
  245. package/templates/default/public/tinymce/skins/content/tinymce-5-dark/content.min.ts +0 -3
  246. package/templates/default/public/tinymce/skins/content/tinymce-5-dark/content.ts +0 -3
  247. package/templates/default/public/tinymce/skins/content/writer/content.css +0 -71
  248. package/templates/default/public/tinymce/skins/content/writer/content.js +0 -10
  249. package/templates/default/public/tinymce/skins/content/writer/content.min.css +0 -10
  250. package/templates/default/public/tinymce/skins/content/writer/content.min.ts +0 -3
  251. package/templates/default/public/tinymce/skins/content/writer/content.ts +0 -3
  252. package/templates/default/public/tinymce/skins/ui/oxide/content.css +0 -1037
  253. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.css +0 -1031
  254. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.js +0 -10
  255. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.min.css +0 -10
  256. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.min.ts +0 -116
  257. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.ts +0 -116
  258. package/templates/default/public/tinymce/skins/ui/oxide/content.js +0 -10
  259. package/templates/default/public/tinymce/skins/ui/oxide/content.min.css +0 -10
  260. package/templates/default/public/tinymce/skins/ui/oxide/content.min.ts +0 -116
  261. package/templates/default/public/tinymce/skins/ui/oxide/content.ts +0 -116
  262. package/templates/default/public/tinymce/skins/ui/oxide/skin.css +0 -5615
  263. package/templates/default/public/tinymce/skins/ui/oxide/skin.js +0 -1
  264. package/templates/default/public/tinymce/skins/ui/oxide/skin.min.css +0 -1
  265. package/templates/default/public/tinymce/skins/ui/oxide/skin.min.ts +0 -507
  266. package/templates/default/public/tinymce/skins/ui/oxide/skin.shadowdom.css +0 -30
  267. package/templates/default/public/tinymce/skins/ui/oxide/skin.shadowdom.js +0 -1
  268. package/templates/default/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css +0 -1
  269. package/templates/default/public/tinymce/skins/ui/oxide/skin.shadowdom.min.ts +0 -9
  270. package/templates/default/public/tinymce/skins/ui/oxide/skin.shadowdom.ts +0 -9
  271. package/templates/default/public/tinymce/skins/ui/oxide/skin.ts +0 -507
  272. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.css +0 -1025
  273. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.css +0 -1031
  274. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.js +0 -10
  275. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.min.css +0 -10
  276. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.min.ts +0 -116
  277. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.ts +0 -116
  278. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.js +0 -10
  279. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.min.css +0 -10
  280. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.min.ts +0 -116
  281. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.ts +0 -116
  282. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.css +0 -5618
  283. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.js +0 -1
  284. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.min.css +0 -1
  285. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.min.ts +0 -507
  286. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +0 -30
  287. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +0 -1
  288. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +0 -1
  289. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.ts +0 -9
  290. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.ts +0 -9
  291. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.ts +0 -507
  292. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.css +0 -1037
  293. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.css +0 -1031
  294. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.js +0 -10
  295. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.min.css +0 -10
  296. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.min.ts +0 -116
  297. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.ts +0 -116
  298. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.js +0 -10
  299. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.min.css +0 -10
  300. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.min.ts +0 -116
  301. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.ts +0 -116
  302. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.css +0 -5734
  303. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.js +0 -1
  304. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.min.css +0 -1
  305. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.min.ts +0 -508
  306. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.shadowdom.css +0 -30
  307. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +0 -1
  308. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +0 -1
  309. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.ts +0 -9
  310. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.shadowdom.ts +0 -9
  311. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.ts +0 -508
  312. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.css +0 -1025
  313. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.css +0 -1031
  314. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.js +0 -10
  315. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +0 -10
  316. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.min.ts +0 -116
  317. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.ts +0 -116
  318. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.js +0 -10
  319. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.min.css +0 -10
  320. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.min.ts +0 -116
  321. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.ts +0 -116
  322. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.css +0 -5734
  323. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.js +0 -1
  324. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.min.css +0 -1
  325. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.min.ts +0 -508
  326. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css +0 -30
  327. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +0 -1
  328. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +0 -1
  329. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.ts +0 -9
  330. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.ts +0 -9
  331. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.ts +0 -508
  332. package/templates/default/public/tinymce/themes/silver/index.js +0 -7
  333. package/templates/default/public/tinymce/themes/silver/theme.js +0 -34748
  334. package/templates/default/public/tinymce/themes/silver/theme.min.js +0 -1
  335. package/templates/default/public/tinymce/tinymce.d.ts +0 -3413
  336. package/templates/default/public/tinymce/tinymce.js +0 -41518
  337. package/templates/default/public/tinymce/tinymce.min.js +0 -10
@@ -0,0 +1,408 @@
1
+ /*!
2
+ Copyright 2013 Lovell Fuller and others.
3
+ SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ #ifndef SRC_PIPELINE_H_
7
+ #define SRC_PIPELINE_H_
8
+
9
+ #include <memory>
10
+ #include <string>
11
+ #include <unordered_map>
12
+ #include <vector>
13
+
14
+ #include <napi.h>
15
+ #include <vips/vips8>
16
+
17
+ #include "./common.h"
18
+
19
+ Napi::Value pipeline(const Napi::CallbackInfo& info);
20
+
21
+ struct Composite {
22
+ sharp::InputDescriptor *input;
23
+ VipsBlendMode mode;
24
+ int gravity;
25
+ int left;
26
+ int top;
27
+ bool hasOffset;
28
+ bool tile;
29
+ bool premultiplied;
30
+
31
+ Composite():
32
+ input(nullptr),
33
+ mode(VIPS_BLEND_MODE_OVER),
34
+ gravity(0),
35
+ left(0),
36
+ top(0),
37
+ hasOffset(false),
38
+ tile(false),
39
+ premultiplied(false) {}
40
+ };
41
+
42
+ struct PipelineBaton {
43
+ sharp::InputDescriptor *input;
44
+ std::vector<sharp::InputDescriptor *> join;
45
+ std::string formatOut;
46
+ std::string fileOut;
47
+ void *bufferOut;
48
+ size_t bufferOutLength;
49
+ int pageHeightOut;
50
+ int pagesOut;
51
+ std::vector<Composite *> composite;
52
+ std::vector<sharp::InputDescriptor *> joinChannelIn;
53
+ int topOffsetPre;
54
+ int leftOffsetPre;
55
+ int widthPre;
56
+ int heightPre;
57
+ int topOffsetPost;
58
+ int leftOffsetPost;
59
+ int widthPost;
60
+ int heightPost;
61
+ int width;
62
+ int height;
63
+ int channels;
64
+ VipsKernel kernel;
65
+ sharp::Canvas canvas;
66
+ int position;
67
+ std::vector<double> resizeBackground;
68
+ bool hasCropOffset;
69
+ int cropOffsetLeft;
70
+ int cropOffsetTop;
71
+ bool hasAttentionCenter;
72
+ int attentionX;
73
+ int attentionY;
74
+ bool premultiplied;
75
+ bool tileCentre;
76
+ bool fastShrinkOnLoad;
77
+ std::vector<double> tint;
78
+ bool flatten;
79
+ std::vector<double> flattenBackground;
80
+ bool unflatten;
81
+ bool negate;
82
+ bool negateAlpha;
83
+ double blurSigma;
84
+ VipsPrecision precision;
85
+ double minAmpl;
86
+ double brightness;
87
+ double saturation;
88
+ int hue;
89
+ double lightness;
90
+ int medianSize;
91
+ double sharpenSigma;
92
+ double sharpenM1;
93
+ double sharpenM2;
94
+ double sharpenX1;
95
+ double sharpenY2;
96
+ double sharpenY3;
97
+ int threshold;
98
+ bool thresholdGrayscale;
99
+ std::vector<double> trimBackground;
100
+ double trimThreshold;
101
+ bool trimLineArt;
102
+ int trimOffsetLeft;
103
+ int trimOffsetTop;
104
+ std::vector<double> linearA;
105
+ std::vector<double> linearB;
106
+ int dilateWidth;
107
+ int erodeWidth;
108
+ double gamma;
109
+ double gammaOut;
110
+ bool greyscale;
111
+ bool normalise;
112
+ int normaliseLower;
113
+ int normaliseUpper;
114
+ int claheWidth;
115
+ int claheHeight;
116
+ int claheMaxSlope;
117
+ int angle;
118
+ double rotationAngle;
119
+ std::vector<double> rotationBackground;
120
+ bool rotateBefore;
121
+ bool orientBefore;
122
+ bool flip;
123
+ bool flop;
124
+ int extendTop;
125
+ int extendBottom;
126
+ int extendLeft;
127
+ int extendRight;
128
+ std::vector<double> extendBackground;
129
+ VipsExtend extendWith;
130
+ bool withoutEnlargement;
131
+ bool withoutReduction;
132
+ std::vector<double> affineMatrix;
133
+ std::vector<double> affineBackground;
134
+ double affineIdx;
135
+ double affineIdy;
136
+ double affineOdx;
137
+ double affineOdy;
138
+ std::string affineInterpolator;
139
+ int jpegQuality;
140
+ bool jpegProgressive;
141
+ std::string jpegChromaSubsampling;
142
+ bool jpegTrellisQuantisation;
143
+ int jpegQuantisationTable;
144
+ bool jpegOvershootDeringing;
145
+ bool jpegOptimiseScans;
146
+ bool jpegOptimiseCoding;
147
+ bool pngProgressive;
148
+ int pngCompressionLevel;
149
+ bool pngAdaptiveFiltering;
150
+ bool pngPalette;
151
+ int pngQuality;
152
+ int pngEffort;
153
+ int pngBitdepth;
154
+ double pngDither;
155
+ int jp2Quality;
156
+ bool jp2Lossless;
157
+ int jp2TileHeight;
158
+ int jp2TileWidth;
159
+ std::string jp2ChromaSubsampling;
160
+ int webpQuality;
161
+ int webpAlphaQuality;
162
+ bool webpNearLossless;
163
+ bool webpLossless;
164
+ bool webpSmartSubsample;
165
+ bool webpSmartDeblock;
166
+ VipsForeignWebpPreset webpPreset;
167
+ int webpEffort;
168
+ bool webpMinSize;
169
+ bool webpMixed;
170
+ int gifBitdepth;
171
+ int gifEffort;
172
+ double gifDither;
173
+ double gifInterFrameMaxError;
174
+ double gifInterPaletteMaxError;
175
+ bool gifKeepDuplicateFrames;
176
+ bool gifReuse;
177
+ bool gifProgressive;
178
+ int tiffQuality;
179
+ VipsForeignTiffCompression tiffCompression;
180
+ bool tiffBigtiff;
181
+ VipsForeignTiffPredictor tiffPredictor;
182
+ bool tiffPyramid;
183
+ int tiffBitdepth;
184
+ bool tiffMiniswhite;
185
+ bool tiffTile;
186
+ int tiffTileHeight;
187
+ int tiffTileWidth;
188
+ double tiffXres;
189
+ double tiffYres;
190
+ VipsForeignTiffResunit tiffResolutionUnit;
191
+ int heifQuality;
192
+ VipsForeignHeifCompression heifCompression;
193
+ int heifEffort;
194
+ std::string heifChromaSubsampling;
195
+ bool heifLossless;
196
+ int heifBitdepth;
197
+ double jxlDistance;
198
+ int jxlDecodingTier;
199
+ int jxlEffort;
200
+ bool jxlLossless;
201
+ VipsBandFormat rawDepth;
202
+ std::string err;
203
+ bool errUseWarning;
204
+ int keepMetadata;
205
+ int withMetadataOrientation;
206
+ double withMetadataDensity;
207
+ std::string withIccProfile;
208
+ std::unordered_map<std::string, std::string> withExif;
209
+ bool withExifMerge;
210
+ std::string withXmp;
211
+ int timeoutSeconds;
212
+ std::vector<double> convKernel;
213
+ int convKernelWidth;
214
+ int convKernelHeight;
215
+ double convKernelScale;
216
+ double convKernelOffset;
217
+ sharp::InputDescriptor *boolean;
218
+ VipsOperationBoolean booleanOp;
219
+ VipsOperationBoolean bandBoolOp;
220
+ int extractChannel;
221
+ bool removeAlpha;
222
+ double ensureAlpha;
223
+ VipsInterpretation colourspacePipeline;
224
+ VipsInterpretation colourspace;
225
+ std::vector<int> delay;
226
+ int loop;
227
+ int tileSize;
228
+ int tileOverlap;
229
+ VipsForeignDzContainer tileContainer;
230
+ VipsForeignDzLayout tileLayout;
231
+ std::string tileFormat;
232
+ int tileAngle;
233
+ std::vector<double> tileBackground;
234
+ int tileSkipBlanks;
235
+ VipsForeignDzDepth tileDepth;
236
+ std::string tileId;
237
+ std::string tileBasename;
238
+ std::vector<double> recombMatrix;
239
+
240
+ PipelineBaton():
241
+ input(nullptr),
242
+ bufferOutLength(0),
243
+ pageHeightOut(0),
244
+ pagesOut(0),
245
+ topOffsetPre(-1),
246
+ topOffsetPost(-1),
247
+ channels(0),
248
+ kernel(VIPS_KERNEL_LANCZOS3),
249
+ canvas(sharp::Canvas::CROP),
250
+ position(0),
251
+ resizeBackground{ 0.0, 0.0, 0.0, 255.0 },
252
+ hasCropOffset(false),
253
+ cropOffsetLeft(0),
254
+ cropOffsetTop(0),
255
+ hasAttentionCenter(false),
256
+ attentionX(0),
257
+ attentionY(0),
258
+ premultiplied(false),
259
+ tint{ -1.0, 0.0, 0.0, 0.0 },
260
+ flatten(false),
261
+ flattenBackground{ 0.0, 0.0, 0.0 },
262
+ unflatten(false),
263
+ negate(false),
264
+ negateAlpha(true),
265
+ blurSigma(0.0),
266
+ brightness(1.0),
267
+ saturation(1.0),
268
+ hue(0),
269
+ lightness(0),
270
+ medianSize(0),
271
+ sharpenSigma(0.0),
272
+ sharpenM1(1.0),
273
+ sharpenM2(2.0),
274
+ sharpenX1(2.0),
275
+ sharpenY2(10.0),
276
+ sharpenY3(20.0),
277
+ threshold(0),
278
+ thresholdGrayscale(true),
279
+ trimBackground{},
280
+ trimThreshold(-1.0),
281
+ trimLineArt(false),
282
+ trimOffsetLeft(0),
283
+ trimOffsetTop(0),
284
+ linearA{},
285
+ linearB{},
286
+ dilateWidth(0),
287
+ erodeWidth(0),
288
+ gamma(0.0),
289
+ greyscale(false),
290
+ normalise(false),
291
+ normaliseLower(1),
292
+ normaliseUpper(99),
293
+ claheWidth(0),
294
+ claheHeight(0),
295
+ claheMaxSlope(3),
296
+ angle(0),
297
+ rotationAngle(0.0),
298
+ rotationBackground{ 0.0, 0.0, 0.0, 255.0 },
299
+ flip(false),
300
+ flop(false),
301
+ extendTop(0),
302
+ extendBottom(0),
303
+ extendLeft(0),
304
+ extendRight(0),
305
+ extendBackground{ 0.0, 0.0, 0.0, 255.0 },
306
+ extendWith(VIPS_EXTEND_BACKGROUND),
307
+ withoutEnlargement(false),
308
+ withoutReduction(false),
309
+ affineMatrix{ 1.0, 0.0, 0.0, 1.0 },
310
+ affineBackground{ 0.0, 0.0, 0.0, 255.0 },
311
+ affineIdx(0),
312
+ affineIdy(0),
313
+ affineOdx(0),
314
+ affineOdy(0),
315
+ affineInterpolator("bicubic"),
316
+ jpegQuality(80),
317
+ jpegProgressive(false),
318
+ jpegChromaSubsampling("4:2:0"),
319
+ jpegTrellisQuantisation(false),
320
+ jpegQuantisationTable(0),
321
+ jpegOvershootDeringing(false),
322
+ jpegOptimiseScans(false),
323
+ jpegOptimiseCoding(true),
324
+ pngProgressive(false),
325
+ pngCompressionLevel(6),
326
+ pngAdaptiveFiltering(false),
327
+ pngPalette(false),
328
+ pngQuality(100),
329
+ pngEffort(7),
330
+ pngBitdepth(8),
331
+ pngDither(1.0),
332
+ jp2Quality(80),
333
+ jp2Lossless(false),
334
+ jp2TileHeight(512),
335
+ jp2TileWidth(512),
336
+ jp2ChromaSubsampling("4:4:4"),
337
+ webpQuality(80),
338
+ webpAlphaQuality(100),
339
+ webpNearLossless(false),
340
+ webpLossless(false),
341
+ webpSmartSubsample(false),
342
+ webpSmartDeblock(false),
343
+ webpPreset(VIPS_FOREIGN_WEBP_PRESET_DEFAULT),
344
+ webpEffort(4),
345
+ webpMinSize(false),
346
+ webpMixed(false),
347
+ gifBitdepth(8),
348
+ gifEffort(7),
349
+ gifDither(1.0),
350
+ gifInterFrameMaxError(0.0),
351
+ gifInterPaletteMaxError(3.0),
352
+ gifKeepDuplicateFrames(false),
353
+ gifReuse(true),
354
+ gifProgressive(false),
355
+ tiffQuality(80),
356
+ tiffCompression(VIPS_FOREIGN_TIFF_COMPRESSION_JPEG),
357
+ tiffBigtiff(false),
358
+ tiffPredictor(VIPS_FOREIGN_TIFF_PREDICTOR_HORIZONTAL),
359
+ tiffPyramid(false),
360
+ tiffBitdepth(8),
361
+ tiffMiniswhite(false),
362
+ tiffTile(false),
363
+ tiffTileHeight(256),
364
+ tiffTileWidth(256),
365
+ tiffXres(1.0),
366
+ tiffYres(1.0),
367
+ tiffResolutionUnit(VIPS_FOREIGN_TIFF_RESUNIT_INCH),
368
+ heifQuality(50),
369
+ heifCompression(VIPS_FOREIGN_HEIF_COMPRESSION_AV1),
370
+ heifEffort(4),
371
+ heifChromaSubsampling("4:4:4"),
372
+ heifLossless(false),
373
+ heifBitdepth(8),
374
+ jxlDistance(1.0),
375
+ jxlDecodingTier(0),
376
+ jxlEffort(7),
377
+ jxlLossless(false),
378
+ rawDepth(VIPS_FORMAT_UCHAR),
379
+ errUseWarning(false),
380
+ keepMetadata(0),
381
+ withMetadataOrientation(-1),
382
+ withMetadataDensity(0.0),
383
+ withExifMerge(true),
384
+ timeoutSeconds(0),
385
+ convKernelWidth(0),
386
+ convKernelHeight(0),
387
+ convKernelScale(0.0),
388
+ convKernelOffset(0.0),
389
+ boolean(nullptr),
390
+ booleanOp(VIPS_OPERATION_BOOLEAN_LAST),
391
+ bandBoolOp(VIPS_OPERATION_BOOLEAN_LAST),
392
+ extractChannel(-1),
393
+ removeAlpha(false),
394
+ ensureAlpha(-1.0),
395
+ colourspacePipeline(VIPS_INTERPRETATION_LAST),
396
+ colourspace(VIPS_INTERPRETATION_LAST),
397
+ loop(-1),
398
+ tileSize(256),
399
+ tileOverlap(0),
400
+ tileContainer(VIPS_FOREIGN_DZ_CONTAINER_FS),
401
+ tileLayout(VIPS_FOREIGN_DZ_LAYOUT_DZ),
402
+ tileAngle(0),
403
+ tileBackground{ 255.0, 255.0, 255.0, 255.0 },
404
+ tileSkipBlanks(-1),
405
+ tileDepth(VIPS_FOREIGN_DZ_DEPTH_LAST) {}
406
+ };
407
+
408
+ #endif // SRC_PIPELINE_H_
@@ -0,0 +1,43 @@
1
+ /*!
2
+ Copyright 2013 Lovell Fuller and others.
3
+ SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ #include <mutex>
7
+
8
+ #include <napi.h>
9
+ #include <vips/vips8>
10
+
11
+ #include "./common.h"
12
+ #include "./metadata.h"
13
+ #include "./pipeline.h"
14
+ #include "./stats.h"
15
+ #include "./utilities.h"
16
+
17
+ Napi::Object init(Napi::Env env, Napi::Object exports) {
18
+ static std::once_flag sharp_vips_init_once;
19
+ std::call_once(sharp_vips_init_once, []() {
20
+ vips_init("sharp");
21
+ });
22
+
23
+ g_log_set_handler("VIPS", static_cast<GLogLevelFlags>(G_LOG_LEVEL_WARNING),
24
+ static_cast<GLogFunc>(sharp::VipsWarningCallback), nullptr);
25
+
26
+ // Methods available to JavaScript
27
+ exports.Set("metadata", Napi::Function::New(env, metadata));
28
+ exports.Set("pipeline", Napi::Function::New(env, pipeline));
29
+ exports.Set("cache", Napi::Function::New(env, cache));
30
+ exports.Set("concurrency", Napi::Function::New(env, concurrency));
31
+ exports.Set("counters", Napi::Function::New(env, counters));
32
+ exports.Set("simd", Napi::Function::New(env, simd));
33
+ exports.Set("libvipsVersion", Napi::Function::New(env, libvipsVersion));
34
+ exports.Set("format", Napi::Function::New(env, format));
35
+ exports.Set("block", Napi::Function::New(env, block));
36
+ exports.Set("_maxColourDistance", Napi::Function::New(env, _maxColourDistance));
37
+ exports.Set("_isUsingJemalloc", Napi::Function::New(env, _isUsingJemalloc));
38
+ exports.Set("_isUsingX64V2", Napi::Function::New(env, _isUsingX64V2));
39
+ exports.Set("stats", Napi::Function::New(env, stats));
40
+ return exports;
41
+ }
42
+
43
+ NODE_API_MODULE(sharp, init)
@@ -0,0 +1,186 @@
1
+ /*!
2
+ Copyright 2013 Lovell Fuller and others.
3
+ SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ #include <iostream>
7
+ #include <numeric>
8
+ #include <string>
9
+ #include <vector>
10
+
11
+ #include <napi.h>
12
+ #include <vips/vips8>
13
+
14
+ #include "./common.h"
15
+ #include "./stats.h"
16
+
17
+ class StatsWorker : public Napi::AsyncWorker {
18
+ public:
19
+ StatsWorker(Napi::Function callback, StatsBaton *baton, Napi::Function debuglog) :
20
+ Napi::AsyncWorker(callback), baton(baton), debuglog(Napi::Persistent(debuglog)) {}
21
+ ~StatsWorker() {}
22
+
23
+ const int STAT_MIN_INDEX = 0;
24
+ const int STAT_MAX_INDEX = 1;
25
+ const int STAT_SUM_INDEX = 2;
26
+ const int STAT_SQ_SUM_INDEX = 3;
27
+ const int STAT_MEAN_INDEX = 4;
28
+ const int STAT_STDEV_INDEX = 5;
29
+ const int STAT_MINX_INDEX = 6;
30
+ const int STAT_MINY_INDEX = 7;
31
+ const int STAT_MAXX_INDEX = 8;
32
+ const int STAT_MAXY_INDEX = 9;
33
+
34
+ void Execute() {
35
+ // Decrement queued task counter
36
+ sharp::counterQueue--;
37
+
38
+ vips::VImage image;
39
+ sharp::ImageType imageType = sharp::ImageType::UNKNOWN;
40
+ try {
41
+ std::tie(image, imageType) = OpenInput(baton->input);
42
+ } catch (vips::VError const &err) {
43
+ (baton->err).append(err.what());
44
+ }
45
+ if (imageType != sharp::ImageType::UNKNOWN) {
46
+ try {
47
+ vips::VImage stats = image.stats();
48
+ int const bands = image.bands();
49
+ for (int b = 1; b <= bands; b++) {
50
+ ChannelStats cStats(
51
+ static_cast<int>(stats.getpoint(STAT_MIN_INDEX, b).front()),
52
+ static_cast<int>(stats.getpoint(STAT_MAX_INDEX, b).front()),
53
+ stats.getpoint(STAT_SUM_INDEX, b).front(),
54
+ stats.getpoint(STAT_SQ_SUM_INDEX, b).front(),
55
+ stats.getpoint(STAT_MEAN_INDEX, b).front(),
56
+ stats.getpoint(STAT_STDEV_INDEX, b).front(),
57
+ static_cast<int>(stats.getpoint(STAT_MINX_INDEX, b).front()),
58
+ static_cast<int>(stats.getpoint(STAT_MINY_INDEX, b).front()),
59
+ static_cast<int>(stats.getpoint(STAT_MAXX_INDEX, b).front()),
60
+ static_cast<int>(stats.getpoint(STAT_MAXY_INDEX, b).front()));
61
+ baton->channelStats.push_back(cStats);
62
+ }
63
+ // Image is not opaque when alpha layer is present and contains a non-mamixa value
64
+ if (image.has_alpha()) {
65
+ double const minAlpha = static_cast<double>(stats.getpoint(STAT_MIN_INDEX, bands).front());
66
+ if (minAlpha != vips_interpretation_max_alpha(image.interpretation())) {
67
+ baton->isOpaque = false;
68
+ }
69
+ }
70
+ // Convert to greyscale
71
+ vips::VImage greyscale = image.colourspace(VIPS_INTERPRETATION_B_W)[0];
72
+ // Estimate entropy via histogram of greyscale value frequency
73
+ baton->entropy = std::abs(greyscale.hist_find().hist_entropy());
74
+ // Estimate sharpness via standard deviation of greyscale laplacian
75
+ if (image.width() > 1 || image.height() > 1) {
76
+ VImage laplacian = VImage::new_matrixv(3, 3,
77
+ 0.0, 1.0, 0.0,
78
+ 1.0, -4.0, 1.0,
79
+ 0.0, 1.0, 0.0);
80
+ laplacian.set("scale", 9.0);
81
+ baton->sharpness = greyscale.conv(laplacian).deviate();
82
+ }
83
+ // Most dominant sRGB colour via 4096-bin 3D histogram
84
+ vips::VImage hist = sharp::RemoveAlpha(image)
85
+ .colourspace(VIPS_INTERPRETATION_sRGB)
86
+ .hist_find_ndim(VImage::option()->set("bins", 16));
87
+ std::complex<double> maxpos = hist.maxpos();
88
+ int const dx = static_cast<int>(std::real(maxpos));
89
+ int const dy = static_cast<int>(std::imag(maxpos));
90
+ std::vector<double> pel = hist(dx, dy);
91
+ int const dz = std::distance(pel.begin(), std::find(pel.begin(), pel.end(), hist.max()));
92
+ baton->dominantRed = dx * 16 + 8;
93
+ baton->dominantGreen = dy * 16 + 8;
94
+ baton->dominantBlue = dz * 16 + 8;
95
+ } catch (vips::VError const &err) {
96
+ (baton->err).append(err.what());
97
+ }
98
+ }
99
+
100
+ // Clean up
101
+ vips_error_clear();
102
+ vips_thread_shutdown();
103
+ }
104
+
105
+ void OnOK() {
106
+ Napi::Env env = Env();
107
+ Napi::HandleScope scope(env);
108
+
109
+ // Handle warnings
110
+ std::string warning = sharp::VipsWarningPop();
111
+ while (!warning.empty()) {
112
+ debuglog.Call(Receiver().Value(), { Napi::String::New(env, warning) });
113
+ warning = sharp::VipsWarningPop();
114
+ }
115
+
116
+ if (baton->err.empty()) {
117
+ // Stats Object
118
+ Napi::Object info = Napi::Object::New(env);
119
+ Napi::Array channels = Napi::Array::New(env);
120
+
121
+ std::vector<ChannelStats>::iterator it;
122
+ int i = 0;
123
+ for (it = baton->channelStats.begin(); it < baton->channelStats.end(); it++, i++) {
124
+ Napi::Object channelStat = Napi::Object::New(env);
125
+ channelStat.Set("min", it->min);
126
+ channelStat.Set("max", it->max);
127
+ channelStat.Set("sum", it->sum);
128
+ channelStat.Set("squaresSum", it->squaresSum);
129
+ channelStat.Set("mean", it->mean);
130
+ channelStat.Set("stdev", it->stdev);
131
+ channelStat.Set("minX", it->minX);
132
+ channelStat.Set("minY", it->minY);
133
+ channelStat.Set("maxX", it->maxX);
134
+ channelStat.Set("maxY", it->maxY);
135
+ channels.Set(i, channelStat);
136
+ }
137
+
138
+ info.Set("channels", channels);
139
+ info.Set("isOpaque", baton->isOpaque);
140
+ info.Set("entropy", baton->entropy);
141
+ info.Set("sharpness", baton->sharpness);
142
+ Napi::Object dominant = Napi::Object::New(env);
143
+ dominant.Set("r", baton->dominantRed);
144
+ dominant.Set("g", baton->dominantGreen);
145
+ dominant.Set("b", baton->dominantBlue);
146
+ info.Set("dominant", dominant);
147
+ Callback().Call(Receiver().Value(), { env.Null(), info });
148
+ } else {
149
+ Callback().Call(Receiver().Value(), { Napi::Error::New(env, sharp::TrimEnd(baton->err)).Value() });
150
+ }
151
+
152
+ delete baton->input;
153
+ delete baton;
154
+ }
155
+
156
+ private:
157
+ StatsBaton* baton;
158
+ Napi::FunctionReference debuglog;
159
+ };
160
+
161
+ /*
162
+ stats(options, callback)
163
+ */
164
+ Napi::Value stats(const Napi::CallbackInfo& info) {
165
+ // V8 objects are converted to non-V8 types held in the baton struct
166
+ StatsBaton *baton = new StatsBaton;
167
+ Napi::Object options = info[size_t(0)].As<Napi::Object>();
168
+
169
+ // Input
170
+ baton->input = sharp::CreateInputDescriptor(options.Get("input").As<Napi::Object>());
171
+ baton->input->access = VIPS_ACCESS_RANDOM;
172
+
173
+ // Function to notify of libvips warnings
174
+ Napi::Function debuglog = options.Get("debuglog").As<Napi::Function>();
175
+
176
+ // Join queue for worker thread
177
+ Napi::Function callback = info[size_t(1)].As<Napi::Function>();
178
+ StatsWorker *worker = new StatsWorker(callback, baton, debuglog);
179
+ worker->Receiver().Set("options", options);
180
+ worker->Queue();
181
+
182
+ // Increment queued task counter
183
+ sharp::counterQueue++;
184
+
185
+ return info.Env().Undefined();
186
+ }
@@ -0,0 +1,62 @@
1
+ /*!
2
+ Copyright 2013 Lovell Fuller and others.
3
+ SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ #ifndef SRC_STATS_H_
7
+ #define SRC_STATS_H_
8
+
9
+ #include <string>
10
+ #include <vector>
11
+ #include <napi.h>
12
+
13
+ #include "./common.h"
14
+
15
+ struct ChannelStats {
16
+ // stats per channel
17
+ int min;
18
+ int max;
19
+ double sum;
20
+ double squaresSum;
21
+ double mean;
22
+ double stdev;
23
+ int minX;
24
+ int minY;
25
+ int maxX;
26
+ int maxY;
27
+
28
+ ChannelStats(int minVal, int maxVal, double sumVal, double squaresSumVal,
29
+ double meanVal, double stdevVal, int minXVal, int minYVal, int maxXVal, int maxYVal):
30
+ min(minVal), max(maxVal), sum(sumVal), squaresSum(squaresSumVal), // NOLINT(build/include_what_you_use)
31
+ mean(meanVal), stdev(stdevVal), minX(minXVal), minY(minYVal), maxX(maxXVal), maxY(maxYVal) {}
32
+ };
33
+
34
+ struct StatsBaton {
35
+ // Input
36
+ sharp::InputDescriptor *input;
37
+
38
+ // Output
39
+ std::vector<ChannelStats> channelStats;
40
+ bool isOpaque;
41
+ double entropy;
42
+ double sharpness;
43
+ int dominantRed;
44
+ int dominantGreen;
45
+ int dominantBlue;
46
+
47
+ std::string err;
48
+
49
+ StatsBaton():
50
+ input(nullptr),
51
+ isOpaque(true),
52
+ entropy(0.0),
53
+ sharpness(0.0),
54
+ dominantRed(0),
55
+ dominantGreen(0),
56
+ dominantBlue(0)
57
+ {}
58
+ };
59
+
60
+ Napi::Value stats(const Napi::CallbackInfo& info);
61
+
62
+ #endif // SRC_STATS_H_