@design-edito/tools 0.1.68 → 0.1.69

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 (137) 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 +10 -10
  4. package/agnostic/colors/lighten-color/index.js +2 -2
  5. package/agnostic/colors/saturate-color/index.js +2 -2
  6. package/agnostic/css/index.js +10 -10
  7. package/agnostic/css/styles-set/index.js +4 -4
  8. package/agnostic/html/hyper-json/cast/index.js +3 -3
  9. package/agnostic/html/hyper-json/index.js +4 -4
  10. package/agnostic/html/hyper-json/smart-tags/coalesced/add/index.js +3 -3
  11. package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +3 -3
  12. package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.js +3 -3
  13. package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +3 -3
  14. package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +3 -3
  15. package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +3 -3
  16. package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.js +3 -3
  17. package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +3 -3
  18. package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.js +3 -3
  19. package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +3 -3
  20. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.js +3 -3
  21. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +3 -3
  22. package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +3 -3
  23. package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +3 -3
  24. package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.js +3 -3
  25. package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.js +3 -3
  26. package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.js +3 -3
  27. package/agnostic/html/hyper-json/smart-tags/coalesced/negate/index.js +3 -3
  28. package/agnostic/html/hyper-json/smart-tags/coalesced/notrailing/index.js +3 -3
  29. package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.js +3 -3
  30. package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.js +3 -3
  31. package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +3 -3
  32. package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +3 -3
  33. package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.js +3 -3
  34. package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +3 -3
  35. package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.js +3 -3
  36. package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +3 -3
  37. package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +3 -3
  38. package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +3 -3
  39. package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +3 -3
  40. package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +3 -3
  41. package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +3 -3
  42. package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +3 -3
  43. package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +3 -3
  44. package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +3 -3
  45. package/agnostic/html/hyper-json/smart-tags/coalesced/split/index.js +3 -3
  46. package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +3 -3
  47. package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.js +3 -3
  48. package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.js +3 -3
  49. package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.js +3 -3
  50. package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +3 -3
  51. package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.js +3 -3
  52. package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.js +3 -3
  53. package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.js +3 -3
  54. package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.js +3 -3
  55. package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.js +3 -3
  56. package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.js +3 -3
  57. package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.js +3 -3
  58. package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.js +3 -3
  59. package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +3 -3
  60. package/agnostic/html/hyper-json/smart-tags/isolated/boolean/index.js +3 -3
  61. package/agnostic/html/hyper-json/smart-tags/isolated/element/index.js +3 -3
  62. package/agnostic/html/hyper-json/smart-tags/isolated/get/index.js +3 -3
  63. package/agnostic/html/hyper-json/smart-tags/isolated/global/index.js +3 -3
  64. package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +3 -3
  65. package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +3 -3
  66. package/agnostic/html/hyper-json/smart-tags/isolated/number/index.js +3 -3
  67. package/agnostic/html/hyper-json/smart-tags/isolated/record/index.js +3 -3
  68. package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +3 -3
  69. package/agnostic/html/hyper-json/smart-tags/isolated/string/index.js +3 -3
  70. package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +3 -3
  71. package/agnostic/html/hyper-json/tree/index.js +3 -3
  72. package/agnostic/html/hyper-json/utils/index.js +3 -3
  73. package/agnostic/html/index.js +15 -15
  74. package/agnostic/html/sanitize/index.js +4 -4
  75. package/agnostic/html/selector-to-element/index.js +4 -4
  76. package/agnostic/html/string-to-nodes/index.js +5 -5
  77. package/agnostic/misc/crossenv/index.js +2 -2
  78. package/agnostic/misc/index.js +25 -25
  79. package/agnostic/misc/logs/index.js +2 -2
  80. package/agnostic/misc/lorem-ipsum/index.js +11 -11
  81. package/agnostic/numbers/index.js +3 -3
  82. package/agnostic/objects/index.js +6 -6
  83. package/agnostic/strings/index.js +5 -5
  84. package/agnostic/time/index.js +5 -5
  85. package/chunks/chunk-2M5P5V6U.js +56 -0
  86. package/chunks/chunk-4Y5XR6WC.js +2456 -0
  87. package/chunks/chunk-5B7VSD44.js +37 -0
  88. package/chunks/chunk-5OBHNGEH.js +20 -0
  89. package/chunks/chunk-6ZBDBWLW.js +164 -0
  90. package/chunks/chunk-7JUKBN7P.js +54 -0
  91. package/chunks/chunk-7U5NS3AR.js +151 -0
  92. package/chunks/chunk-A6OSVHIK.js +20 -0
  93. package/chunks/chunk-BPBWY4OT.js +191 -0
  94. package/chunks/chunk-ECGOI4MT.js +20 -0
  95. package/chunks/chunk-FFNIZRZU.js +31 -0
  96. package/chunks/chunk-GD6Y5QJV.js +98 -0
  97. package/chunks/chunk-GVS2ZPGJ.js +2456 -0
  98. package/chunks/chunk-HFH6DXXC.js +2456 -0
  99. package/chunks/chunk-HV2AHV5R.js +164 -0
  100. package/chunks/chunk-IXM6DCIE.js +151 -0
  101. package/chunks/chunk-JBUM5Q5C.js +48 -0
  102. package/chunks/chunk-JJ7PBKSG.js +37 -0
  103. package/chunks/chunk-K66UXFDQ.js +63 -0
  104. package/chunks/chunk-KBCULP7X.js +177 -0
  105. package/chunks/chunk-KC76PUJY.js +48 -0
  106. package/chunks/chunk-QHQPS7EU.js +31 -0
  107. package/chunks/chunk-REN2I723.js +98 -0
  108. package/chunks/chunk-RQECU6DI.js +56 -0
  109. package/chunks/chunk-SARTUWB5.js +20 -0
  110. package/chunks/chunk-SDFTYOAK.js +20 -0
  111. package/chunks/chunk-TDOBYMTK.js +56 -0
  112. package/chunks/chunk-TPMYILTC.js +191 -0
  113. package/chunks/chunk-U4UHXVMV.js +37 -0
  114. package/chunks/chunk-UZPXYAJR.js +177 -0
  115. package/chunks/chunk-VLC7LRED.js +191 -0
  116. package/chunks/chunk-XEMFIV2W.js +177 -0
  117. package/chunks/chunk-Y5GGIBPI.js +31 -0
  118. package/chunks/chunk-ZVZAGTIT.js +151 -0
  119. package/node/@express/@multer/index.d.ts +6 -1
  120. package/node/@express/@multer/index.js +2 -1
  121. package/node/@express/index.js +2 -1
  122. package/node/@google-cloud/index.js +5 -5
  123. package/node/@google-cloud/storage/file/index.js +9 -9
  124. package/node/@google-cloud/storage/index.js +5 -5
  125. package/node/cloud-storage/index.js +1 -1
  126. package/node/cloud-storage/operations/index.js +1 -1
  127. package/node/files/index.js +3 -3
  128. package/node/ftps/file/index.js +4 -4
  129. package/node/ftps/index.js +2 -2
  130. package/node/images/index.js +22 -22
  131. package/node/images/prepare/index.js +22 -22
  132. package/node/images/transform/index.js +21 -21
  133. package/node/images/transform/operations/_utils/frame/backgrounds/create-line-background/index.js +4 -4
  134. package/node/images/transform/operations/_utils/frame/backgrounds/create-tile-background/index.js +2 -2
  135. package/node/images/transform/operations/_utils/frame/create-color-palette/index.js +5 -5
  136. package/node/images/transform/operations/_utils/frame/index.js +9 -9
  137. package/package.json +1 -1
@@ -0,0 +1,191 @@
1
+ import {
2
+ Random
3
+ } from "./chunk-S32K7POB.js";
4
+ import {
5
+ Arrays
6
+ } from "./chunk-Y5GGIBPI.js";
7
+
8
+ // src/agnostic/misc/lorem-ipsum/index.ts
9
+ var LoremIpsum;
10
+ ((LoremIpsum2) => {
11
+ LoremIpsum2.words = [
12
+ "a",
13
+ "ac",
14
+ "accumsan",
15
+ "adipiscing",
16
+ "aenean",
17
+ "aliquam",
18
+ "aliquet",
19
+ "amet",
20
+ "ante",
21
+ "arcu",
22
+ "at",
23
+ "auctor",
24
+ "augue",
25
+ "bibendum",
26
+ "blandit",
27
+ "condimentum",
28
+ "consectetur",
29
+ "consequat",
30
+ "convallis",
31
+ "cras",
32
+ "curabitur",
33
+ "cursus",
34
+ "dapibus",
35
+ "diam",
36
+ "dictum",
37
+ "dictumst",
38
+ "dignissim",
39
+ "dolor",
40
+ "donec",
41
+ "dui",
42
+ "duis",
43
+ "efficitur",
44
+ "egestas",
45
+ "eget",
46
+ "eleifend",
47
+ "elementum",
48
+ "elit",
49
+ "enim",
50
+ "erat",
51
+ "eros",
52
+ "est",
53
+ "et",
54
+ "eu",
55
+ "euismod",
56
+ "ex",
57
+ "facilisis",
58
+ "faucibus",
59
+ "felis",
60
+ "feugiat",
61
+ "finibus",
62
+ "fringilla",
63
+ "fusce",
64
+ "gravida",
65
+ "habitasse",
66
+ "hac",
67
+ "hendrerit",
68
+ "iaculis",
69
+ "id",
70
+ "imperdiet",
71
+ "in",
72
+ "integer",
73
+ "interdum",
74
+ "ipsum",
75
+ "justo",
76
+ "lacinia",
77
+ "lacus",
78
+ "laoreet",
79
+ "lectus",
80
+ "leo",
81
+ "libero",
82
+ "ligula",
83
+ "lobortis",
84
+ "lorem",
85
+ "luctus",
86
+ "maecenas",
87
+ "magna",
88
+ "malesuada",
89
+ "massa",
90
+ "mattis",
91
+ "mauris",
92
+ "maximus",
93
+ "metus",
94
+ "mi",
95
+ "molestie",
96
+ "mollis",
97
+ "morbi",
98
+ "nam",
99
+ "nec",
100
+ "neque",
101
+ "nibh",
102
+ "nisi",
103
+ "nisl",
104
+ "non",
105
+ "nulla",
106
+ "nullam",
107
+ "nunc",
108
+ "odio",
109
+ "orci",
110
+ "ornare",
111
+ "pellentesque",
112
+ "pharetra",
113
+ "phasellus",
114
+ "placerat",
115
+ "platea",
116
+ "porta",
117
+ "porttitor",
118
+ "posuere",
119
+ "praesent",
120
+ "pulvinar",
121
+ "purus",
122
+ "quam",
123
+ "quis",
124
+ "quisque",
125
+ "risus",
126
+ "rutrum",
127
+ "sagittis",
128
+ "sapien",
129
+ "sed",
130
+ "sem",
131
+ "semper",
132
+ "sit",
133
+ "sodales",
134
+ "sollicitudin",
135
+ "suscipit",
136
+ "suspendisse",
137
+ "tellus",
138
+ "tempor",
139
+ "tempus",
140
+ "tincidunt",
141
+ "tortor",
142
+ "tristique",
143
+ "turpis",
144
+ "ultrices",
145
+ "ultricies",
146
+ "urna",
147
+ "ut",
148
+ "vehicula",
149
+ "vel",
150
+ "velit",
151
+ "venenatis",
152
+ "vestibulum",
153
+ "vitae",
154
+ "vivamus",
155
+ "viverra",
156
+ "volutpat",
157
+ "vulputate"
158
+ ];
159
+ LoremIpsum2.generateSentence = (wordCount) => {
160
+ const resultArr = [];
161
+ let currentWordCound = wordCount;
162
+ for (let i = 0; i < currentWordCound; i++) {
163
+ const picked = Arrays.randomPick(LoremIpsum2.words);
164
+ if (typeof picked === "string") resultArr.push(picked);
165
+ else {
166
+ currentWordCound += 1;
167
+ }
168
+ }
169
+ const [firstWord, ...otherWords] = resultArr;
170
+ if (firstWord === void 0) return "";
171
+ const capFirstLetter = firstWord?.charAt(0).toUpperCase();
172
+ const restOfFirstWord = firstWord?.slice(1);
173
+ const sentence = [
174
+ `${capFirstLetter}${restOfFirstWord}`,
175
+ ...otherWords
176
+ ].join(" ");
177
+ return `${sentence}.`;
178
+ };
179
+ LoremIpsum2.generateSentences = (sentencesCount, maxSentenceLength = 12, minSentenceLength = 4) => {
180
+ const sentences = [];
181
+ for (let i = 0; i < sentencesCount; i++) {
182
+ const length = Random.randomInt(maxSentenceLength, minSentenceLength) ?? 8;
183
+ sentences.push((0, LoremIpsum2.generateSentence)(length));
184
+ }
185
+ return sentences;
186
+ };
187
+ })(LoremIpsum || (LoremIpsum = {}));
188
+
189
+ export {
190
+ LoremIpsum
191
+ };
@@ -0,0 +1,177 @@
1
+ import {
2
+ frame
3
+ } from "./chunk-6ZBDBWLW.js";
4
+ import {
5
+ frameSchema
6
+ } from "./chunk-WTILPGGX.js";
7
+ import {
8
+ compose
9
+ } from "./chunk-AWVQJNGX.js";
10
+ import {
11
+ scale
12
+ } from "./chunk-JRYI4VBX.js";
13
+ import {
14
+ flopSchema
15
+ } from "./chunk-UNHNZAVP.js";
16
+ import {
17
+ lineateLevelsSchema
18
+ } from "./chunk-6EIF24H5.js";
19
+ import {
20
+ resizeSchema
21
+ } from "./chunk-LSOHLSF5.js";
22
+ import {
23
+ scaleSchema
24
+ } from "./chunk-NAP2XNYN.js";
25
+ import {
26
+ saturateSchema
27
+ } from "./chunk-ZMMNN3QA.js";
28
+ import {
29
+ rotateSchema
30
+ } from "./chunk-D33KC6NN.js";
31
+ import {
32
+ brightenSchema
33
+ } from "./chunk-CM6AHRTS.js";
34
+ import {
35
+ extractSchema
36
+ } from "./chunk-C3ZKLONL.js";
37
+ import {
38
+ flipSchema
39
+ } from "./chunk-T2T5BYTW.js";
40
+ import {
41
+ flattenSchema
42
+ } from "./chunk-Z4PVE6SR.js";
43
+ import {
44
+ modulateSchema
45
+ } from "./chunk-6IZ5HUJJ.js";
46
+ import {
47
+ hueRotateSchema
48
+ } from "./chunk-YEYXAV23.js";
49
+ import {
50
+ normalizeSchema
51
+ } from "./chunk-662SOZWA.js";
52
+ import {
53
+ lightenSchema
54
+ } from "./chunk-W6JPRXQ4.js";
55
+ import {
56
+ composeSchema
57
+ } from "./chunk-G3HAKMUB.js";
58
+ import {
59
+ extendSchema
60
+ } from "./chunk-WRRA3BN4.js";
61
+ import {
62
+ blurSchema
63
+ } from "./chunk-3UM5CZA5.js";
64
+ import {
65
+ OperationNames
66
+ } from "./chunk-MOVLLUDL.js";
67
+ import {
68
+ esm_default
69
+ } from "./chunk-YE67BQQN.js";
70
+ import {
71
+ Outcome
72
+ } from "./chunk-JMU5PDBD.js";
73
+ import {
74
+ unknownToString
75
+ } from "./chunk-FENXVJYO.js";
76
+ import {
77
+ __export
78
+ } from "./chunk-NZLE2WMY.js";
79
+
80
+ // src/node/images/transform/index.ts
81
+ var transform_exports = {};
82
+ __export(transform_exports, {
83
+ apply: () => apply,
84
+ isOperation: () => isOperation,
85
+ transform: () => transform
86
+ });
87
+ import sharp from "sharp";
88
+ var operationSchema = esm_default.union([
89
+ // areaComposeSchema,
90
+ blurSchema,
91
+ brightenSchema,
92
+ composeSchema,
93
+ extendSchema,
94
+ extractSchema,
95
+ flattenSchema,
96
+ flipSchema,
97
+ flopSchema,
98
+ frameSchema,
99
+ hueRotateSchema,
100
+ lightenSchema,
101
+ lineateLevelsSchema,
102
+ modulateSchema,
103
+ normalizeSchema,
104
+ resizeSchema,
105
+ rotateSchema,
106
+ saturateSchema,
107
+ scaleSchema
108
+ ]);
109
+ function isOperation(operation) {
110
+ try {
111
+ return Outcome.makeSuccess(operationSchema.parse(operation));
112
+ } catch (err) {
113
+ return Outcome.makeFailure(unknownToString(err));
114
+ }
115
+ }
116
+ async function transform(imageBuffer, operations, checkValidOperations) {
117
+ let sharpInstance = sharp(imageBuffer);
118
+ const needsValidation = checkValidOperations ?? false;
119
+ for (const operation of operations) {
120
+ const _isOperation = isOperation(operation);
121
+ if (!needsValidation || _isOperation.success) {
122
+ console.log("Images:Transform:Operation:Start", operation.name);
123
+ sharpInstance = await apply(sharpInstance, operation);
124
+ console.log("Images:Transform:Operation:Done", operation.name);
125
+ }
126
+ }
127
+ return sharpInstance.toBuffer();
128
+ }
129
+ async function apply(sharpInstance, operation) {
130
+ switch (operation.name) {
131
+ case OperationNames.Blur:
132
+ return sharpInstance.blur(operation.params.sigma);
133
+ case OperationNames.Brighten:
134
+ return sharpInstance.blur(operation.params);
135
+ case OperationNames.Compose:
136
+ return compose(sharpInstance, operation.params);
137
+ case OperationNames.Extend:
138
+ return sharpInstance.extend(operation.params);
139
+ case OperationNames.Extract:
140
+ return sharpInstance.extract(operation.params);
141
+ case OperationNames.Flip:
142
+ return sharpInstance.flip(operation.params.flip);
143
+ case OperationNames.Flop:
144
+ return sharpInstance.flop(operation.params.flop);
145
+ case OperationNames.Frame:
146
+ return frame(sharpInstance, operation.params);
147
+ case OperationNames.Flatten:
148
+ return sharpInstance.flatten(operation.params);
149
+ case OperationNames.HueRotate:
150
+ return sharpInstance.modulate({ hue: operation.params });
151
+ case OperationNames.Lighten:
152
+ return sharpInstance.modulate({ lightness: operation.params });
153
+ case OperationNames.LineateLevels:
154
+ return sharpInstance.linear(operation.params.multiplier, operation.params.offset);
155
+ case OperationNames.Modulate:
156
+ return sharpInstance.modulate(operation.params);
157
+ case OperationNames.Normalize:
158
+ return sharpInstance.normalize(operation.params);
159
+ case OperationNames.Resize:
160
+ return sharpInstance.resize(operation.params);
161
+ case OperationNames.Rotate:
162
+ return sharpInstance.rotate(operation.params.angle);
163
+ case OperationNames.Saturate:
164
+ return sharpInstance.modulate({ saturation: operation.params });
165
+ case OperationNames.Scale:
166
+ return scale(sharpInstance, operation.params);
167
+ default:
168
+ return sharpInstance;
169
+ }
170
+ }
171
+
172
+ export {
173
+ isOperation,
174
+ transform,
175
+ apply,
176
+ transform_exports
177
+ };
@@ -0,0 +1,31 @@
1
+ import {
2
+ randomPick,
3
+ randomPickMany
4
+ } from "./chunk-AQBJ6HNB.js";
5
+ import {
6
+ make
7
+ } from "./chunk-RLAZR3NL.js";
8
+ import {
9
+ shuffle
10
+ } from "./chunk-VJJIYJMY.js";
11
+ import {
12
+ isArrayOf
13
+ } from "./chunk-6RGDWX4A.js";
14
+ import {
15
+ findDuplicates
16
+ } from "./chunk-YS6WMSWC.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-KBCULP7X.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
+ };
@@ -15,4 +15,9 @@ export type WithMulterModeOptions = {
15
15
  fields: multer.Field[];
16
16
  };
17
17
  export type WithMulterOptions = multer.Options & WithMulterModeOptions;
18
- export declare function useMulterMiddleware(req: Request, res: Response, options: WithMulterOptions): Promise<Outcome.Either<true, unknown>>;
18
+ export type WithMulterError = {
19
+ code: multer.MulterError['code'] | 'UNKNOWN';
20
+ message: string;
21
+ field?: string;
22
+ };
23
+ export declare function useMulterMiddleware(req: Request, res: Response, options: WithMulterOptions): Promise<Outcome.Either<true, WithMulterError>>;
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  useMulterMiddleware
3
- } from "../../../chunks/chunk-SC54OKBX.js";
3
+ } from "../../../chunks/chunk-7JUKBN7P.js";
4
4
  import "../../../chunks/chunk-JMU5PDBD.js";
5
+ import "../../../chunks/chunk-FENXVJYO.js";
5
6
  import "../../../chunks/chunk-NZLE2WMY.js";
6
7
  export {
7
8
  useMulterMiddleware
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  multer_exports
3
- } from "../../chunks/chunk-SC54OKBX.js";
3
+ } from "../../chunks/chunk-7JUKBN7P.js";
4
4
  import "../../chunks/chunk-JMU5PDBD.js";
5
+ import "../../chunks/chunk-FENXVJYO.js";
5
6
  import "../../chunks/chunk-NZLE2WMY.js";
6
7
  export {
7
8
  multer_exports as Multer
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  storage_exports
3
- } from "../../chunks/chunk-Z2CU55CF.js";
3
+ } from "../../chunks/chunk-ECGOI4MT.js";
4
4
  import "../../chunks/chunk-XSVBWVVC.js";
5
5
  import "../../chunks/chunk-FTT6ZCCS.js";
6
6
  import "../../chunks/chunk-XZ7II65Z.js";
7
- import "../../chunks/chunk-YLJBKSLO.js";
7
+ import "../../chunks/chunk-2M5P5V6U.js";
8
8
  import "../../chunks/chunk-YW5ASSIQ.js";
9
9
  import "../../chunks/chunk-OPU4CANL.js";
10
- import "../../chunks/chunk-KFMYB672.js";
11
10
  import "../../chunks/chunk-TXGV4KJD.js";
11
+ import "../../chunks/chunk-KFMYB672.js";
12
+ import "../../chunks/chunk-T55QIYYV.js";
13
+ import "../../chunks/chunk-GXICX4F6.js";
12
14
  import "../../chunks/chunk-UUSZJMJB.js";
13
15
  import "../../chunks/chunk-7BCQCDGQ.js";
14
- import "../../chunks/chunk-GXICX4F6.js";
15
- import "../../chunks/chunk-T55QIYYV.js";
16
16
  import "../../chunks/chunk-SZQHLC4K.js";
17
17
  import "../../chunks/chunk-IARWH6LC.js";
18
18
  import "../../chunks/chunk-7FJKDVBE.js";
@@ -1,28 +1,28 @@
1
- import "../../../../chunks/chunk-YLJBKSLO.js";
1
+ import "../../../../chunks/chunk-2M5P5V6U.js";
2
2
  import {
3
3
  update_metadata_exports
4
4
  } from "../../../../chunks/chunk-YW5ASSIQ.js";
5
5
  import {
6
6
  generate_signed_url_exports
7
7
  } from "../../../../chunks/chunk-OPU4CANL.js";
8
+ import {
9
+ exists_exports
10
+ } from "../../../../chunks/chunk-TXGV4KJD.js";
8
11
  import {
9
12
  get_metadata_exports
10
13
  } from "../../../../chunks/chunk-KFMYB672.js";
11
14
  import {
12
- exists_exports
13
- } from "../../../../chunks/chunk-TXGV4KJD.js";
15
+ move_exports
16
+ } from "../../../../chunks/chunk-T55QIYYV.js";
17
+ import {
18
+ get_permissions_exports
19
+ } from "../../../../chunks/chunk-GXICX4F6.js";
14
20
  import {
15
21
  revoke_signed_urls_exports
16
22
  } from "../../../../chunks/chunk-UUSZJMJB.js";
17
23
  import {
18
24
  erase_exports
19
25
  } from "../../../../chunks/chunk-7BCQCDGQ.js";
20
- import {
21
- get_permissions_exports
22
- } from "../../../../chunks/chunk-GXICX4F6.js";
23
- import {
24
- move_exports
25
- } from "../../../../chunks/chunk-T55QIYYV.js";
26
26
  import {
27
27
  copy_exports
28
28
  } from "../../../../chunks/chunk-SZQHLC4K.js";
@@ -1,4 +1,4 @@
1
- import "../../../chunks/chunk-Z2CU55CF.js";
1
+ import "../../../chunks/chunk-ECGOI4MT.js";
2
2
  import {
3
3
  bucket_exports
4
4
  } from "../../../chunks/chunk-XSVBWVVC.js";
@@ -6,15 +6,15 @@ import "../../../chunks/chunk-FTT6ZCCS.js";
6
6
  import "../../../chunks/chunk-XZ7II65Z.js";
7
7
  import {
8
8
  file_exports
9
- } from "../../../chunks/chunk-YLJBKSLO.js";
9
+ } from "../../../chunks/chunk-2M5P5V6U.js";
10
10
  import "../../../chunks/chunk-YW5ASSIQ.js";
11
11
  import "../../../chunks/chunk-OPU4CANL.js";
12
- import "../../../chunks/chunk-KFMYB672.js";
13
12
  import "../../../chunks/chunk-TXGV4KJD.js";
13
+ import "../../../chunks/chunk-KFMYB672.js";
14
+ import "../../../chunks/chunk-T55QIYYV.js";
15
+ import "../../../chunks/chunk-GXICX4F6.js";
14
16
  import "../../../chunks/chunk-UUSZJMJB.js";
15
17
  import "../../../chunks/chunk-7BCQCDGQ.js";
16
- import "../../../chunks/chunk-GXICX4F6.js";
17
- import "../../../chunks/chunk-T55QIYYV.js";
18
18
  import "../../../chunks/chunk-SZQHLC4K.js";
19
19
  import "../../../chunks/chunk-IARWH6LC.js";
20
20
  import "../../../chunks/chunk-7FJKDVBE.js";
@@ -18,8 +18,8 @@ import {
18
18
  } from "../../chunks/chunk-MOBGB2PH.js";
19
19
  import "../../chunks/chunk-V4S34MIM.js";
20
20
  import "../../chunks/chunk-45WKBXSF.js";
21
- import "../../chunks/chunk-MFWKY3DT.js";
22
21
  import "../../chunks/chunk-ADTQQNIQ.js";
22
+ import "../../chunks/chunk-MFWKY3DT.js";
23
23
  import "../../chunks/chunk-HQLRJ7XW.js";
24
24
  import "../../chunks/chunk-JMU5PDBD.js";
25
25
  import "../../chunks/chunk-FENXVJYO.js";
@@ -12,8 +12,8 @@ import "../../../chunks/chunk-O7UEQQ6H.js";
12
12
  import "../../../chunks/chunk-MOBGB2PH.js";
13
13
  import "../../../chunks/chunk-V4S34MIM.js";
14
14
  import "../../../chunks/chunk-45WKBXSF.js";
15
- import "../../../chunks/chunk-MFWKY3DT.js";
16
15
  import "../../../chunks/chunk-ADTQQNIQ.js";
16
+ import "../../../chunks/chunk-MFWKY3DT.js";
17
17
  import "../../../chunks/chunk-JMU5PDBD.js";
18
18
  import "../../../chunks/chunk-FENXVJYO.js";
19
19
  import "../../../chunks/chunk-NZLE2WMY.js";