@design-edito/tools 0.1.65 → 0.1.68

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 (239) hide show
  1. package/agnostic/arrays/index.js +7 -7
  2. package/agnostic/arrays/random-pick/index.js +4 -4
  3. package/agnostic/colors/index.js +8 -8
  4. package/agnostic/css/index.js +13 -13
  5. package/agnostic/css/styles-set/index.js +4 -4
  6. package/agnostic/html/hyper-json/cast/index.js +2 -2
  7. package/agnostic/html/hyper-json/index.js +3 -3
  8. package/agnostic/html/hyper-json/smart-tags/coalesced/add/index.js +2 -2
  9. package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +2 -2
  10. package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.js +2 -2
  11. package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +2 -2
  12. package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +2 -2
  13. package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +2 -2
  14. package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.js +2 -2
  15. package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +2 -2
  16. package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.js +2 -2
  17. package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +2 -2
  18. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.js +2 -2
  19. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +2 -2
  20. package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +2 -2
  21. package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +2 -2
  22. package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.js +2 -2
  23. package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.js +2 -2
  24. package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.js +2 -2
  25. package/agnostic/html/hyper-json/smart-tags/coalesced/negate/index.js +2 -2
  26. package/agnostic/html/hyper-json/smart-tags/coalesced/notrailing/index.js +2 -2
  27. package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.js +2 -2
  28. package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.js +2 -2
  29. package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +2 -2
  30. package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +2 -2
  31. package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.js +2 -2
  32. package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +2 -2
  33. package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.js +2 -2
  34. package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +2 -2
  35. package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +2 -2
  36. package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +2 -2
  37. package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +2 -2
  38. package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +2 -2
  39. package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +2 -2
  40. package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +2 -2
  41. package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +2 -2
  42. package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +2 -2
  43. package/agnostic/html/hyper-json/smart-tags/coalesced/split/index.js +2 -2
  44. package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +2 -2
  45. package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.js +2 -2
  46. package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.js +2 -2
  47. package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.js +2 -2
  48. package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +2 -2
  49. package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.js +2 -2
  50. package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.js +2 -2
  51. package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.js +2 -2
  52. package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.js +2 -2
  53. package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.js +2 -2
  54. package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.js +2 -2
  55. package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.js +2 -2
  56. package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.js +2 -2
  57. package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +2 -2
  58. package/agnostic/html/hyper-json/smart-tags/isolated/boolean/index.js +2 -2
  59. package/agnostic/html/hyper-json/smart-tags/isolated/element/index.js +2 -2
  60. package/agnostic/html/hyper-json/smart-tags/isolated/get/index.js +2 -2
  61. package/agnostic/html/hyper-json/smart-tags/isolated/global/index.js +2 -2
  62. package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +2 -2
  63. package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +2 -2
  64. package/agnostic/html/hyper-json/smart-tags/isolated/number/index.js +2 -2
  65. package/agnostic/html/hyper-json/smart-tags/isolated/record/index.js +2 -2
  66. package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +2 -2
  67. package/agnostic/html/hyper-json/smart-tags/isolated/string/index.js +2 -2
  68. package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +2 -2
  69. package/agnostic/html/hyper-json/tree/index.js +2 -2
  70. package/agnostic/html/hyper-json/utils/index.js +2 -2
  71. package/agnostic/html/index.js +14 -14
  72. package/agnostic/html/sanitize/index.js +4 -4
  73. package/agnostic/html/selector-to-element/index.js +4 -4
  74. package/agnostic/html/string-to-nodes/index.js +5 -5
  75. package/agnostic/misc/crossenv/index.js +2 -2
  76. package/agnostic/misc/index.js +27 -27
  77. package/agnostic/misc/logs/index.js +2 -2
  78. package/agnostic/misc/lorem-ipsum/index.js +11 -11
  79. package/agnostic/numbers/index.js +7 -7
  80. package/agnostic/objects/index.js +6 -6
  81. package/agnostic/optim/index.js +3 -3
  82. package/agnostic/strings/index.js +6 -6
  83. package/agnostic/time/index.js +3 -3
  84. package/chunks/chunk-236C4IHT.js +98 -0
  85. package/chunks/chunk-2HU2AWWJ.js +35 -0
  86. package/chunks/chunk-2KT7AKRW.js +17 -0
  87. package/chunks/chunk-3CZNTEF7.js +151 -0
  88. package/chunks/chunk-3UM5CZA5.js +18 -0
  89. package/chunks/chunk-4ARTWFW5.js +164 -0
  90. package/chunks/chunk-4PJWXOLA.js +16 -0
  91. package/chunks/chunk-4QHGUANF.js +19 -0
  92. package/chunks/chunk-65YZMVWZ.js +35 -0
  93. package/chunks/chunk-662SOZWA.js +19 -0
  94. package/chunks/chunk-6EIF24H5.js +35 -0
  95. package/chunks/chunk-6IZ5HUJJ.js +21 -0
  96. package/chunks/chunk-6Z6GDMOR.js +28 -0
  97. package/chunks/chunk-72NLUT3X.js +29 -0
  98. package/chunks/chunk-72U4TDEB.js +127 -0
  99. package/chunks/chunk-7OK5NZTY.js +18 -0
  100. package/chunks/chunk-7YW5HL6N.js +168 -0
  101. package/chunks/chunk-7Z7CKAOH.js +98 -0
  102. package/chunks/chunk-B4XUXE7E.js +18 -0
  103. package/chunks/chunk-BGZ5OVVN.js +20 -0
  104. package/chunks/chunk-BZHH4R64.js +20 -0
  105. package/chunks/chunk-C3ZKLONL.js +21 -0
  106. package/chunks/chunk-C4Q4PC53.js +63 -0
  107. package/chunks/chunk-C7SRAQMW.js +29 -0
  108. package/chunks/chunk-CHA42BGS.js +48 -0
  109. package/chunks/chunk-CM6AHRTS.js +16 -0
  110. package/chunks/chunk-CQEDNACN.js +28 -0
  111. package/chunks/chunk-D33KC6NN.js +18 -0
  112. package/chunks/chunk-D47ZPEUU.js +22 -0
  113. package/chunks/chunk-E3GK7YZ7.js +65 -0
  114. package/chunks/chunk-E4FJHD5R.js +67 -0
  115. package/chunks/chunk-E6HDM2M4.js +191 -0
  116. package/chunks/chunk-FCLAFRIW.js +177 -0
  117. package/chunks/chunk-FHHXI6WC.js +31 -0
  118. package/chunks/chunk-FRP47Y6H.js +2456 -0
  119. package/chunks/chunk-G2M3VECP.js +20 -0
  120. package/chunks/chunk-G3HAKMUB.js +79 -0
  121. package/chunks/chunk-GE7DNPF6.js +63 -0
  122. package/chunks/chunk-GGT2PUZH.js +21 -0
  123. package/chunks/chunk-GOTTGEXI.js +23 -0
  124. package/chunks/chunk-HALUZA2X.js +16 -0
  125. package/chunks/chunk-HFIE4SBE.js +16 -0
  126. package/chunks/chunk-IYV3EEYX.js +20 -0
  127. package/chunks/chunk-J35QFU6O.js +21 -0
  128. package/chunks/chunk-JQRLQUMJ.js +16 -0
  129. package/chunks/chunk-JR76DLSV.js +151 -0
  130. package/chunks/chunk-JX45LILQ.js +164 -0
  131. package/chunks/chunk-KL6EJPC3.js +35 -0
  132. package/chunks/chunk-KN23H4CI.js +20 -0
  133. package/chunks/chunk-LH6Z6NJY.js +191 -0
  134. package/chunks/chunk-LNSDOGTR.js +63 -0
  135. package/chunks/chunk-LSOHLSF5.js +32 -0
  136. package/chunks/chunk-MFK63FMI.js +31 -0
  137. package/chunks/chunk-MKHTR43Q.js +231 -0
  138. package/chunks/chunk-MTT7TVR3.js +127 -0
  139. package/chunks/chunk-MW3KNVTG.js +29 -0
  140. package/chunks/chunk-MXGGOCLX.js +56 -0
  141. package/chunks/chunk-NA7PT2KE.js +21 -0
  142. package/chunks/chunk-NAP2XNYN.js +23 -0
  143. package/chunks/chunk-NFIEXASV.js +164 -0
  144. package/chunks/chunk-P2H6PV4O.js +26 -0
  145. package/chunks/chunk-P5OGBBGM.js +37 -0
  146. package/chunks/chunk-PENYZ6S7.js +31 -0
  147. package/chunks/chunk-PSP2DKDH.js +151 -0
  148. package/chunks/chunk-Q2ZS3QNB.js +151 -0
  149. package/chunks/chunk-RCWLMVSZ.js +164 -0
  150. package/chunks/chunk-RDQJSWRC.js +127 -0
  151. package/chunks/chunk-SAFV7TBT.js +31 -0
  152. package/chunks/chunk-SJLH36CH.js +26 -0
  153. package/chunks/chunk-SLCGLOYM.js +37 -0
  154. package/chunks/chunk-SUWMOLXI.js +191 -0
  155. package/chunks/chunk-SY65O2JU.js +98 -0
  156. package/chunks/chunk-T2T5BYTW.js +18 -0
  157. package/chunks/chunk-T6IC7JVI.js +37 -0
  158. package/chunks/chunk-TP6V6CBV.js +177 -0
  159. package/chunks/chunk-U3L3X27Q.js +177 -0
  160. package/chunks/chunk-U5WEI3QA.js +18 -0
  161. package/chunks/chunk-U7R6TPHR.js +15 -0
  162. package/chunks/chunk-UERX6XGZ.js +21 -0
  163. package/chunks/chunk-UFKH5WD2.js +21 -0
  164. package/chunks/chunk-UNHNZAVP.js +18 -0
  165. package/chunks/chunk-UODICVLG.js +173 -0
  166. package/chunks/chunk-UUU6DWRQ.js +79 -0
  167. package/chunks/chunk-VDT6ODFV.js +20 -0
  168. package/chunks/chunk-VHPX7UA3.js +177 -0
  169. package/chunks/chunk-VQUF2TSY.js +191 -0
  170. package/chunks/chunk-VR5JHUKK.js +32 -0
  171. package/chunks/chunk-VSBRIQPH.js +48 -0
  172. package/chunks/chunk-W6JPRXQ4.js +16 -0
  173. package/chunks/chunk-WC2LQPQP.js +26 -0
  174. package/chunks/chunk-WH5V6GK7.js +56 -0
  175. package/chunks/chunk-WIJBRYJ6.js +20 -0
  176. package/chunks/chunk-WP7L5ZFP.js +173 -0
  177. package/chunks/chunk-WR64YJNW.js +20 -0
  178. package/chunks/chunk-WRRA3BN4.js +31 -0
  179. package/chunks/chunk-WTILPGGX.js +69 -0
  180. package/chunks/chunk-X244JGZD.js +69 -0
  181. package/chunks/chunk-X34YXAEL.js +31 -0
  182. package/chunks/chunk-X5HMM3LD.js +35 -0
  183. package/chunks/chunk-X6WCMUOP.js +18 -0
  184. package/chunks/chunk-XB3ZOIHH.js +2456 -0
  185. package/chunks/chunk-XJ23DJY4.js +173 -0
  186. package/chunks/chunk-XQMUFSLU.js +16 -0
  187. package/chunks/chunk-XTOAQTLP.js +98 -0
  188. package/chunks/chunk-Y7YEYHRZ.js +69 -0
  189. package/chunks/chunk-YCSC7QNV.js +30 -0
  190. package/chunks/chunk-YE67BQQN.js +4072 -0
  191. package/chunks/chunk-YEYXAV23.js +16 -0
  192. package/chunks/chunk-YLJBKSLO.js +56 -0
  193. package/chunks/chunk-YMRGCRQ4.js +48 -0
  194. package/chunks/chunk-Z2CU55CF.js +20 -0
  195. package/chunks/chunk-Z4PVE6SR.js +21 -0
  196. package/chunks/chunk-ZMMNN3QA.js +16 -0
  197. package/chunks/chunk-ZNPRJEP5.js +28 -0
  198. package/chunks/chunk-ZQ7ZC7TZ.js +56 -0
  199. package/chunks/chunk-ZVBMPJLH.js +48 -0
  200. package/node/@google-cloud/index.js +8 -8
  201. package/node/@google-cloud/storage/bucket/index.js +4 -4
  202. package/node/@google-cloud/storage/file/index.js +12 -12
  203. package/node/@google-cloud/storage/index.js +8 -8
  204. package/node/cloud-storage/index.js +7 -7
  205. package/node/cloud-storage/operations/download/index.js +3 -3
  206. package/node/cloud-storage/operations/index.js +7 -7
  207. package/node/cloud-storage/operations/upload/index.js +3 -3
  208. package/node/encryption/index.js +3 -3
  209. package/node/files/index.js +3 -3
  210. package/node/images/index.js +32 -32
  211. package/node/images/prepare/index.js +32 -32
  212. package/node/images/transform/_utils/color-schema/index.js +2 -2
  213. package/node/images/transform/_utils/positions/index.js +2 -2
  214. package/node/images/transform/blur/index.js +2 -2
  215. package/node/images/transform/brighten/index.js +2 -2
  216. package/node/images/transform/compose/index.js +4 -4
  217. package/node/images/transform/extend/index.js +3 -3
  218. package/node/images/transform/extract/index.js +2 -2
  219. package/node/images/transform/flatten/index.js +3 -3
  220. package/node/images/transform/flip/index.js +2 -2
  221. package/node/images/transform/flop/index.js +2 -2
  222. package/node/images/transform/frame/backgrounds/create-line-background/index.js +2 -2
  223. package/node/images/transform/frame/backgrounds/create-tile-background/index.js +2 -2
  224. package/node/images/transform/frame/index.js +6 -6
  225. package/node/images/transform/hue-rotate/index.js +2 -2
  226. package/node/images/transform/index.js +31 -31
  227. package/node/images/transform/lighten/index.js +2 -2
  228. package/node/images/transform/lineate-levels/index.js +2 -2
  229. package/node/images/transform/modulate/index.js +2 -2
  230. package/node/images/transform/normalize/index.js +2 -2
  231. package/node/images/transform/operations/_utils/frame/backgrounds/create-line-background/index.js +2 -2
  232. package/node/images/transform/operations/_utils/frame/backgrounds/create-tile-background/index.js +2 -2
  233. package/node/images/transform/operations/_utils/frame/create-color-palette/index.js +3 -3
  234. package/node/images/transform/operations/_utils/frame/index.js +7 -7
  235. package/node/images/transform/resize/index.js +3 -3
  236. package/node/images/transform/rotate/index.js +2 -2
  237. package/node/images/transform/saturate/index.js +2 -2
  238. package/node/images/transform/scale/index.js +3 -3
  239. package/package.json +11 -12
@@ -0,0 +1,29 @@
1
+ import {
2
+ register
3
+ } from "./chunk-WC2LQPQP.js";
4
+
5
+ // src/agnostic/arrays/random-pick/index.ts
6
+ function randomPick(arr, exclude = []) {
7
+ const filteredArr = [...arr].filter((elt) => !exclude.includes(elt));
8
+ const length = filteredArr.length;
9
+ if (length === 0) throw register.getError("impossible-to-pick-in-array" /* IMPOSSIBLE_TO_PICK_IN_ARRAY */, arr);
10
+ const pos = Math.floor(Math.random() * length);
11
+ const found = filteredArr[pos];
12
+ return found;
13
+ }
14
+ function randomPickMany(howMuch, arr, exclude = []) {
15
+ const grindedArr = [...arr];
16
+ const pickedSelection = [];
17
+ for (let i = 0; i < howMuch; i++) {
18
+ const picked = randomPick(grindedArr, exclude);
19
+ const indexOfPicked = grindedArr.indexOf(picked);
20
+ grindedArr.splice(indexOfPicked, 1);
21
+ pickedSelection.push(picked);
22
+ }
23
+ return pickedSelection;
24
+ }
25
+
26
+ export {
27
+ randomPick,
28
+ randomPickMany
29
+ };
@@ -0,0 +1,56 @@
1
+ import {
2
+ exists_exports
3
+ } from "./chunk-TXGV4KJD.js";
4
+ import {
5
+ get_permissions_exports
6
+ } from "./chunk-GXICX4F6.js";
7
+ import {
8
+ generate_signed_url_exports
9
+ } from "./chunk-OPU4CANL.js";
10
+ import {
11
+ revoke_signed_urls_exports
12
+ } from "./chunk-P5OGBBGM.js";
13
+ import {
14
+ erase_exports
15
+ } from "./chunk-7BCQCDGQ.js";
16
+ import {
17
+ move_exports
18
+ } from "./chunk-T55QIYYV.js";
19
+ import {
20
+ get_metadata_exports
21
+ } from "./chunk-KFMYB672.js";
22
+ import {
23
+ update_metadata_exports
24
+ } from "./chunk-YW5ASSIQ.js";
25
+ import {
26
+ copy_exports
27
+ } from "./chunk-SZQHLC4K.js";
28
+ import {
29
+ upload_exports
30
+ } from "./chunk-7FJKDVBE.js";
31
+ import {
32
+ download_exports
33
+ } from "./chunk-IARWH6LC.js";
34
+ import {
35
+ __export
36
+ } from "./chunk-NZLE2WMY.js";
37
+
38
+ // src/node/@google-cloud/storage/file/index.ts
39
+ var file_exports = {};
40
+ __export(file_exports, {
41
+ Copy: () => copy_exports,
42
+ Download: () => download_exports,
43
+ Erase: () => erase_exports,
44
+ Exists: () => exists_exports,
45
+ GenerateSignedUrl: () => generate_signed_url_exports,
46
+ GetMetaData: () => get_metadata_exports,
47
+ GetPermissions: () => get_permissions_exports,
48
+ Move: () => move_exports,
49
+ RevokeSignedUrls: () => revoke_signed_urls_exports,
50
+ UpdateMetadata: () => update_metadata_exports,
51
+ Upload: () => upload_exports
52
+ });
53
+
54
+ export {
55
+ file_exports
56
+ };
@@ -0,0 +1,21 @@
1
+ import {
2
+ esm_default
3
+ } from "./chunk-YE67BQQN.js";
4
+ import {
5
+ OperationNames
6
+ } from "./chunk-MOVLLUDL.js";
7
+
8
+ // src/node/images/transform/extract/index.ts
9
+ var extractSchema = esm_default.object({
10
+ name: esm_default.literal(OperationNames.Extract),
11
+ params: esm_default.object({
12
+ width: esm_default.number(),
13
+ height: esm_default.number(),
14
+ left: esm_default.number(),
15
+ top: esm_default.number()
16
+ })
17
+ });
18
+
19
+ export {
20
+ extractSchema
21
+ };
@@ -0,0 +1,23 @@
1
+ import {
2
+ colorSchema
3
+ } from "./chunk-U7R6TPHR.js";
4
+ import {
5
+ OperationNames
6
+ } from "./chunk-MOVLLUDL.js";
7
+ import {
8
+ esm_default
9
+ } from "./chunk-YE67BQQN.js";
10
+
11
+ // src/node/images/transform/scale/index.ts
12
+ var scaleSchema = esm_default.object({
13
+ name: esm_default.literal(OperationNames.Scale),
14
+ params: esm_default.object({
15
+ xRatio: esm_default.optional(esm_default.number().min(0).max(1)),
16
+ yRatio: esm_default.optional(esm_default.number().min(0).max(1)),
17
+ background: colorSchema
18
+ })
19
+ });
20
+
21
+ export {
22
+ scaleSchema
23
+ };
@@ -0,0 +1,164 @@
1
+ import {
2
+ createColorPalette
3
+ } from "./chunk-236C4IHT.js";
4
+ import {
5
+ createLineBackground
6
+ } from "./chunk-GCHQD7MH.js";
7
+ import {
8
+ createTileBackground
9
+ } from "./chunk-CP454IJD.js";
10
+ import {
11
+ getRelativePxPositionsInWrapperFor
12
+ } from "./chunk-OCM3RLO6.js";
13
+ import {
14
+ clamp
15
+ } from "./chunk-OSAXBA7G.js";
16
+
17
+ // src/node/images/transform/operations/_utils/frame/index.ts
18
+ import sharp from "sharp";
19
+ async function frame(imageSharp, params) {
20
+ const imageMetadata = await imageSharp.metadata();
21
+ const imageDimensions = {
22
+ widthPx: imageMetadata.width ?? 0,
23
+ heightPx: imageMetadata.height ?? 0
24
+ };
25
+ const scaledImage = scaleImageToFrame(
26
+ imageSharp,
27
+ imageDimensions,
28
+ params.dimensions,
29
+ params.imageScale
30
+ );
31
+ imageSharp = scaledImage.sharpInstance;
32
+ imageDimensions.widthPx = scaledImage.widthPx;
33
+ imageDimensions.heightPx = scaledImage.heightPx;
34
+ const defaultBackgroundColorCreate = getDefaultBackgroundColor(params.background);
35
+ const imagePositions = getRelativePxPositionsInWrapperFor(imageDimensions, params.dimensions, params.positions);
36
+ const backgroundOverlays = await getBackgroundOverlays(
37
+ {
38
+ sharp: imageSharp,
39
+ dimensions: imageDimensions
40
+ },
41
+ params.background,
42
+ params.dimensions,
43
+ {
44
+ x: imagePositions.x,
45
+ y: imagePositions.y,
46
+ w: imageDimensions.widthPx,
47
+ h: imageDimensions.heightPx
48
+ }
49
+ );
50
+ const composition = [
51
+ ...backgroundOverlays,
52
+ {
53
+ input: await imageSharp.toFormat("png").png({ quality: 100 }).toBuffer(),
54
+ /* Make sure we work with the best quality of our file */
55
+ left: imagePositions.x,
56
+ top: imagePositions.y
57
+ }
58
+ ];
59
+ const frameSharpInstance = sharp({
60
+ create: {
61
+ background: defaultBackgroundColorCreate,
62
+ width: params.dimensions.widthPx,
63
+ height: params.dimensions.heightPx,
64
+ channels: 4
65
+ }
66
+ }).ensureAlpha(0).composite(composition).png({ quality: 100 });
67
+ return frameSharpInstance;
68
+ }
69
+ var scaleImageToFrame = (imageSharp, imageDimensions, frameDimensions, imageScale) => {
70
+ const scale = {
71
+ xRatio: 1,
72
+ yRatio: 1
73
+ };
74
+ const frameZoneDimensions = {
75
+ widthPx: frameDimensions.widthPx,
76
+ heightPx: frameDimensions.heightPx
77
+ };
78
+ if (imageScale) {
79
+ frameZoneDimensions.widthPx = frameDimensions.widthPx * (imageScale.xRatio || 1);
80
+ frameZoneDimensions.heightPx = frameDimensions.heightPx * (imageScale.yRatio || 1);
81
+ }
82
+ const containedRatiosPercents = getContainedRatios(
83
+ imageDimensions.widthPx,
84
+ imageDimensions.heightPx,
85
+ frameZoneDimensions.widthPx,
86
+ frameZoneDimensions.heightPx
87
+ );
88
+ if (imageScale || !imageScale && imageDimensions.widthPx < frameDimensions.widthPx && imageDimensions.heightPx < frameDimensions.heightPx) {
89
+ scale.xRatio = containedRatiosPercents.xPercent;
90
+ scale.yRatio = containedRatiosPercents.yPercent;
91
+ }
92
+ if (scale.xRatio !== 1 || scale.yRatio !== 1) {
93
+ imageDimensions.widthPx = clamp(Math.round(imageDimensions.widthPx * scale.xRatio), 0, frameDimensions.widthPx);
94
+ imageDimensions.heightPx = clamp(Math.round(imageDimensions.heightPx * scale.yRatio), 0, frameDimensions.heightPx);
95
+ imageSharp = imageSharp.resize({
96
+ width: imageDimensions.widthPx,
97
+ height: imageDimensions.heightPx,
98
+ fit: sharp.fit.inside,
99
+ position: "center",
100
+ fastShrinkOnLoad: false
101
+ });
102
+ }
103
+ return {
104
+ sharpInstance: imageSharp,
105
+ widthPx: imageDimensions.widthPx,
106
+ heightPx: imageDimensions.heightPx
107
+ };
108
+ };
109
+ var getDefaultBackgroundColor = (background) => {
110
+ if (background && (typeof background === "object" && "r" in background)) {
111
+ return {
112
+ r: background.r || 255,
113
+ g: background.g || 255,
114
+ b: background.b || 255,
115
+ alpha: background.alpha || 0
116
+ };
117
+ }
118
+ return { r: 255, g: 255, b: 255, alpha: 0 };
119
+ };
120
+ var getBackgroundOverlays = (imageInput, background, dimensions, imageCoordinates) => {
121
+ const backgroundOverlays = [];
122
+ return new Promise(async (resolve, reject) => {
123
+ if (!background || typeof background !== "object" || typeof background === "object" && !("type" in background)) {
124
+ resolve(backgroundOverlays);
125
+ return;
126
+ }
127
+ const imageBuffer = await imageInput.sharp.raw().toBuffer();
128
+ const nbImageChannels = (await imageInput.sharp.metadata()).channels || 3;
129
+ const colorPalette = createColorPalette(
130
+ {
131
+ buffer: imageBuffer,
132
+ nbChannels: nbImageChannels,
133
+ dimensions: imageInput.dimensions
134
+ },
135
+ background.colorPalette
136
+ );
137
+ switch (background.type) {
138
+ case "line":
139
+ return resolve(createLineBackground(background, dimensions, colorPalette));
140
+ case "tile":
141
+ return resolve(createTileBackground(background, dimensions, imageCoordinates, colorPalette));
142
+ default:
143
+ resolve(backgroundOverlays);
144
+ }
145
+ reject(new Error("Unknown background type"));
146
+ });
147
+ };
148
+ function getContainedRatios(widthPx, heightPx, wrapperWidthPx, wrapperHeightPx, withoutReduction) {
149
+ if (withoutReduction && widthPx <= wrapperWidthPx && heightPx <= wrapperHeightPx) {
150
+ return { xPercent: 100, yPercent: 100 };
151
+ }
152
+ const wrapperRatio = wrapperWidthPx / wrapperHeightPx;
153
+ const imgRatio = widthPx / heightPx;
154
+ const containRatio = clamp(imgRatio > wrapperRatio ? wrapperWidthPx / widthPx : wrapperHeightPx / heightPx, 0, 100);
155
+ return {
156
+ xPercent: containRatio,
157
+ yPercent: containRatio
158
+ };
159
+ }
160
+
161
+ export {
162
+ frame,
163
+ getContainedRatios
164
+ };
@@ -0,0 +1,26 @@
1
+ import {
2
+ Crossenv
3
+ } from "./chunk-FR5H2OCV.js";
4
+ import {
5
+ Errors
6
+ } from "./chunk-2KT7AKRW.js";
7
+
8
+ // src/shared/errors/index.ts
9
+ var register = Errors.Register.from({
10
+ ["no-window-document-on-runtime" /* NO_DOCUMENT */]: {
11
+ message: `Runtime '${Crossenv.detectRuntime()}' does not provide a Document object, cannot complete.`,
12
+ detailsMaker: () => void 0
13
+ },
14
+ ["no-window-document-on-runtime-please-provide" /* NO_DOCUMENT_PLEASE_PROVIDE */]: {
15
+ message: `Please provide a Document object since none are found on runtime '${Crossenv.detectRuntime()}'`,
16
+ detailsMaker: (tips) => tips
17
+ },
18
+ ["impossible-to-pick-in-array" /* IMPOSSIBLE_TO_PICK_IN_ARRAY */]: {
19
+ message: "Impossible to pick",
20
+ detailsMaker: (array) => array.length === 0 ? "Array cannot be empty" : "Too many exclusions"
21
+ }
22
+ });
23
+
24
+ export {
25
+ register
26
+ };
@@ -0,0 +1,37 @@
1
+ import {
2
+ erase
3
+ } from "./chunk-7BCQCDGQ.js";
4
+ import {
5
+ upload
6
+ } from "./chunk-7FJKDVBE.js";
7
+ import {
8
+ download
9
+ } from "./chunk-IARWH6LC.js";
10
+ import {
11
+ Outcome
12
+ } from "./chunk-JMU5PDBD.js";
13
+ import {
14
+ __export
15
+ } from "./chunk-NZLE2WMY.js";
16
+
17
+ // src/node/@google-cloud/storage/file/revoke-signed-urls/index.ts
18
+ var revoke_signed_urls_exports = {};
19
+ __export(revoke_signed_urls_exports, {
20
+ revokeSignedUrls: () => revokeSignedUrls
21
+ });
22
+ async function revokeSignedUrls(sourcePath, bucket, options) {
23
+ const { downloadOptions, eraseOptions, uploadOptions } = options ?? {};
24
+ const downloadAttempt = await download(sourcePath, bucket, downloadOptions);
25
+ if (!downloadAttempt.success) return downloadAttempt;
26
+ const deletionAttempt = await erase(sourcePath, bucket, eraseOptions);
27
+ if (!deletionAttempt.success) return deletionAttempt;
28
+ const downloaded = downloadAttempt.payload;
29
+ const reuploadAttempt = await upload(downloaded, sourcePath, bucket, uploadOptions);
30
+ if (!reuploadAttempt.success) return reuploadAttempt;
31
+ return Outcome.makeSuccess(true);
32
+ }
33
+
34
+ export {
35
+ revokeSignedUrls,
36
+ revoke_signed_urls_exports
37
+ };
@@ -0,0 +1,31 @@
1
+ import {
2
+ shuffle
3
+ } from "./chunk-VJJIYJMY.js";
4
+ import {
5
+ findDuplicates
6
+ } from "./chunk-YS6WMSWC.js";
7
+ import {
8
+ isArrayOf
9
+ } from "./chunk-6RGDWX4A.js";
10
+ import {
11
+ make
12
+ } from "./chunk-RLAZR3NL.js";
13
+ import {
14
+ randomPick,
15
+ randomPickMany
16
+ } from "./chunk-C7SRAQMW.js";
17
+
18
+ // src/agnostic/arrays/index.tsx
19
+ var Arrays;
20
+ ((Arrays2) => {
21
+ Arrays2.findDuplicates = findDuplicates;
22
+ Arrays2.isArrayOf = isArrayOf;
23
+ Arrays2.make = make;
24
+ Arrays2.randomPick = randomPick;
25
+ Arrays2.randomPickMany = randomPickMany;
26
+ Arrays2.shuffle = shuffle;
27
+ })(Arrays || (Arrays = {}));
28
+
29
+ export {
30
+ Arrays
31
+ };
@@ -0,0 +1,151 @@
1
+ import {
2
+ formatImage
3
+ } from "./chunk-SJFY537W.js";
4
+ import {
5
+ transform
6
+ } from "./chunk-FCLAFRIW.js";
7
+ import {
8
+ __export
9
+ } from "./chunk-NZLE2WMY.js";
10
+
11
+ // src/node/images/prepare/index.ts
12
+ var prepare_exports = {};
13
+ __export(prepare_exports, {
14
+ MAX_NB_OUTPUTS: () => MAX_NB_OUTPUTS,
15
+ OUTPUT_ZIP_FOLDER: () => OUTPUT_ZIP_FOLDER,
16
+ exportZipBuffer: () => exportZipBuffer,
17
+ prepareImage: () => prepareImage
18
+ });
19
+ import sharp from "sharp";
20
+ import { Writable } from "node:stream";
21
+ import archiver from "archiver";
22
+ var MAX_NB_OUTPUTS = 50;
23
+ var OUTPUT_ZIP_FOLDER = "./output-zips";
24
+ async function prepareImage(imageBuffer, customOptions) {
25
+ const sharpImage = sharp(imageBuffer);
26
+ const sharpImageMetadata = await sharpImage.metadata();
27
+ const imageBufferMetadata = {
28
+ width: sharpImageMetadata.width ?? 0,
29
+ height: sharpImageMetadata.height ?? 0,
30
+ format: sharpImageMetadata.format || "png"
31
+ };
32
+ const options = getOptions(imageBufferMetadata, customOptions);
33
+ const nbOutputs = options.qualities.length * (options.ratios.length + 1) * (options.widths.length + 1) * (options.heights.length + 1);
34
+ if (nbOutputs > MAX_NB_OUTPUTS) throw Error("Nb output exceeds supported max nb output");
35
+ let transformedBuffer = imageBuffer;
36
+ try {
37
+ transformedBuffer = await transform(imageBuffer, options.inputOperations, options.checkValidOperations);
38
+ } catch (e) {
39
+ console.log("Images:Prepare:Transform:Buffer:Error", { e });
40
+ }
41
+ const transformedBufferMetadata = await sharp(transformedBuffer).metadata();
42
+ const exportsBuffers = [
43
+ {
44
+ buffer: imageBuffer,
45
+ name: generateFileName({
46
+ ...imageBufferMetadata,
47
+ quality: 100,
48
+ suffix: "original",
49
+ prefix: options.name
50
+ })
51
+ },
52
+ {
53
+ buffer: transformedBuffer,
54
+ name: generateFileName({
55
+ width: transformedBufferMetadata.width || 0,
56
+ height: transformedBufferMetadata.height || 0,
57
+ format: transformedBufferMetadata.format || "png",
58
+ quality: 100,
59
+ suffix: "transformed-unresized",
60
+ prefix: options.name
61
+ })
62
+ }
63
+ ];
64
+ for (const width of options.widths) {
65
+ for (const height of options.heights) {
66
+ for (const quality of options.qualities) {
67
+ for (const format of options.formats) {
68
+ const exportBuffer = await formatImage(transformedBuffer, {
69
+ format,
70
+ quality,
71
+ width,
72
+ height
73
+ });
74
+ exportsBuffers.push({
75
+ buffer: exportBuffer,
76
+ name: generateFileName({
77
+ width,
78
+ height,
79
+ quality,
80
+ format,
81
+ prefix: options.name
82
+ })
83
+ });
84
+ }
85
+ }
86
+ }
87
+ }
88
+ console.log("Images:Transform:Export:ZIP", generateZipName(options.name));
89
+ const zipBuffer = exportZipBuffer(exportsBuffers, generateZipName(options.name));
90
+ return zipBuffer;
91
+ }
92
+ function exportZipBuffer(zipSources, zipDirectoryName) {
93
+ return new Promise(async (resolve) => {
94
+ const archive = archiver("zip", { zlib: { level: 9 } });
95
+ if (zipDirectoryName) {
96
+ archive.directory(zipDirectoryName + "/", false);
97
+ }
98
+ zipSources.forEach((zipSource) => {
99
+ const fileName = zipDirectoryName ? `${zipDirectoryName}/${zipSource.name}` : zipSource.name;
100
+ archive.append(zipSource.buffer, { name: fileName });
101
+ });
102
+ const chunks = [];
103
+ const writable = new Writable();
104
+ writable._write = (chunk, _enc, callback) => {
105
+ chunks.push(chunk);
106
+ callback();
107
+ };
108
+ archive.pipe(writable);
109
+ await archive.finalize();
110
+ const bufferZip = Buffer.concat(chunks);
111
+ resolve(bufferZip);
112
+ });
113
+ }
114
+ function getOptions(imageBufferMetadata, options) {
115
+ return {
116
+ center: [0.5, 0.5],
117
+ qualities: [100],
118
+ inputOperations: [],
119
+ ...options,
120
+ checkValidOperations: options?.checkValidOperations ?? false,
121
+ name: options?.name ?? "",
122
+ formats: [imageBufferMetadata.format, ...options?.formats ? options.formats : []],
123
+ ratios: [...options?.ratios ? options.ratios : []],
124
+ widths: [imageBufferMetadata.width, ...options?.widths ? options.widths : []],
125
+ heights: [imageBufferMetadata.height, ...options?.heights ? options.heights : []]
126
+ };
127
+ }
128
+ function generateZipName(name = "") {
129
+ const date = /* @__PURE__ */ new Date();
130
+ return `${name}_image-exports_${date.toLocaleDateString()}_${date.toLocaleTimeString()}_${date.getTime()}`.replace(/\/|:/g, "-").replace(/ /g, "").trim();
131
+ }
132
+ function generateFileName({
133
+ width,
134
+ height,
135
+ quality,
136
+ format,
137
+ suffix,
138
+ prefix
139
+ }) {
140
+ prefix = prefix ? `${prefix}_` : "image-formats_";
141
+ suffix = `${suffix ? `_${suffix}` : ""}.${format}`;
142
+ return `${prefix}${width}x${height}_Q${quality}${suffix}`;
143
+ }
144
+
145
+ export {
146
+ MAX_NB_OUTPUTS,
147
+ OUTPUT_ZIP_FOLDER,
148
+ prepareImage,
149
+ exportZipBuffer,
150
+ prepare_exports
151
+ };
@@ -0,0 +1,151 @@
1
+ import {
2
+ formatImage
3
+ } from "./chunk-SJFY537W.js";
4
+ import {
5
+ transform
6
+ } from "./chunk-U3L3X27Q.js";
7
+ import {
8
+ __export
9
+ } from "./chunk-NZLE2WMY.js";
10
+
11
+ // src/node/images/prepare/index.ts
12
+ var prepare_exports = {};
13
+ __export(prepare_exports, {
14
+ MAX_NB_OUTPUTS: () => MAX_NB_OUTPUTS,
15
+ OUTPUT_ZIP_FOLDER: () => OUTPUT_ZIP_FOLDER,
16
+ exportZipBuffer: () => exportZipBuffer,
17
+ prepareImage: () => prepareImage
18
+ });
19
+ import sharp from "sharp";
20
+ import { Writable } from "node:stream";
21
+ import archiver from "archiver";
22
+ var MAX_NB_OUTPUTS = 50;
23
+ var OUTPUT_ZIP_FOLDER = "./output-zips";
24
+ async function prepareImage(imageBuffer, customOptions) {
25
+ const sharpImage = sharp(imageBuffer);
26
+ const sharpImageMetadata = await sharpImage.metadata();
27
+ const imageBufferMetadata = {
28
+ width: sharpImageMetadata.width ?? 0,
29
+ height: sharpImageMetadata.height ?? 0,
30
+ format: sharpImageMetadata.format || "png"
31
+ };
32
+ const options = getOptions(imageBufferMetadata, customOptions);
33
+ const nbOutputs = options.qualities.length * (options.ratios.length + 1) * (options.widths.length + 1) * (options.heights.length + 1);
34
+ if (nbOutputs > MAX_NB_OUTPUTS) throw Error("Nb output exceeds supported max nb output");
35
+ let transformedBuffer = imageBuffer;
36
+ try {
37
+ transformedBuffer = await transform(imageBuffer, options.inputOperations, options.checkValidOperations);
38
+ } catch (e) {
39
+ console.log("Images:Prepare:Transform:Buffer:Error", { e });
40
+ }
41
+ const transformedBufferMetadata = await sharp(transformedBuffer).metadata();
42
+ const exportsBuffers = [
43
+ {
44
+ buffer: imageBuffer,
45
+ name: generateFileName({
46
+ ...imageBufferMetadata,
47
+ quality: 100,
48
+ suffix: "original",
49
+ prefix: options.name
50
+ })
51
+ },
52
+ {
53
+ buffer: transformedBuffer,
54
+ name: generateFileName({
55
+ width: transformedBufferMetadata.width || 0,
56
+ height: transformedBufferMetadata.height || 0,
57
+ format: transformedBufferMetadata.format || "png",
58
+ quality: 100,
59
+ suffix: "transformed-unresized",
60
+ prefix: options.name
61
+ })
62
+ }
63
+ ];
64
+ for (const width of options.widths) {
65
+ for (const height of options.heights) {
66
+ for (const quality of options.qualities) {
67
+ for (const format of options.formats) {
68
+ const exportBuffer = await formatImage(transformedBuffer, {
69
+ format,
70
+ quality,
71
+ width,
72
+ height
73
+ });
74
+ exportsBuffers.push({
75
+ buffer: exportBuffer,
76
+ name: generateFileName({
77
+ width,
78
+ height,
79
+ quality,
80
+ format,
81
+ prefix: options.name
82
+ })
83
+ });
84
+ }
85
+ }
86
+ }
87
+ }
88
+ console.log("Images:Transform:Export:ZIP", generateZipName(options.name));
89
+ const zipBuffer = exportZipBuffer(exportsBuffers, generateZipName(options.name));
90
+ return zipBuffer;
91
+ }
92
+ function exportZipBuffer(zipSources, zipDirectoryName) {
93
+ return new Promise(async (resolve) => {
94
+ const archive = archiver("zip", { zlib: { level: 9 } });
95
+ if (zipDirectoryName) {
96
+ archive.directory(zipDirectoryName + "/", false);
97
+ }
98
+ zipSources.forEach((zipSource) => {
99
+ const fileName = zipDirectoryName ? `${zipDirectoryName}/${zipSource.name}` : zipSource.name;
100
+ archive.append(zipSource.buffer, { name: fileName });
101
+ });
102
+ const chunks = [];
103
+ const writable = new Writable();
104
+ writable._write = (chunk, _enc, callback) => {
105
+ chunks.push(chunk);
106
+ callback();
107
+ };
108
+ archive.pipe(writable);
109
+ await archive.finalize();
110
+ const bufferZip = Buffer.concat(chunks);
111
+ resolve(bufferZip);
112
+ });
113
+ }
114
+ function getOptions(imageBufferMetadata, options) {
115
+ return {
116
+ center: [0.5, 0.5],
117
+ qualities: [100],
118
+ inputOperations: [],
119
+ ...options,
120
+ checkValidOperations: options?.checkValidOperations ?? false,
121
+ name: options?.name ?? "",
122
+ formats: [imageBufferMetadata.format, ...options?.formats ? options.formats : []],
123
+ ratios: [...options?.ratios ? options.ratios : []],
124
+ widths: [imageBufferMetadata.width, ...options?.widths ? options.widths : []],
125
+ heights: [imageBufferMetadata.height, ...options?.heights ? options.heights : []]
126
+ };
127
+ }
128
+ function generateZipName(name = "") {
129
+ const date = /* @__PURE__ */ new Date();
130
+ return `${name}_image-exports_${date.toLocaleDateString()}_${date.toLocaleTimeString()}_${date.getTime()}`.replace(/\/|:/g, "-").replace(/ /g, "").trim();
131
+ }
132
+ function generateFileName({
133
+ width,
134
+ height,
135
+ quality,
136
+ format,
137
+ suffix,
138
+ prefix
139
+ }) {
140
+ prefix = prefix ? `${prefix}_` : "image-formats_";
141
+ suffix = `${suffix ? `_${suffix}` : ""}.${format}`;
142
+ return `${prefix}${width}x${height}_Q${quality}${suffix}`;
143
+ }
144
+
145
+ export {
146
+ MAX_NB_OUTPUTS,
147
+ OUTPUT_ZIP_FOLDER,
148
+ prepareImage,
149
+ exportZipBuffer,
150
+ prepare_exports
151
+ };