├── .gitignore
├── .prettierrc
├── .stackblitzrc
├── README.md
├── favicon.ico
├── image.jpeg
├── index.html
├── modal.html
├── overlay.html
├── package-lock.json
├── package.json
├── sticker-one.svg
├── sticker-three.svg
├── sticker-two.svg
└── styles.css
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | .env
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "es5",
3 | "tabWidth": 4,
4 | "printWidth": 80,
5 | "singleQuote": true,
6 | "semi": true
7 | }
8 |
--------------------------------------------------------------------------------
/.stackblitzrc:
--------------------------------------------------------------------------------
1 | {
2 | "startCommand": "npm install @pqina/pintura@8.x && npm start"
3 | }
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # JavaScript Image Editor with Pintura example project
2 |
3 | ## Demo
4 |
5 | [](https://stackblitz.com/github/pqina/pintura-example-javascript?file=index.html)
6 |
7 | ## Installation
8 |
9 | ### NodeJS
10 |
11 | If it's not already installed we need to install [Node.js](https://nodejs.org)
12 |
13 | Then we [install the project dependencies](https://nodejs.dev/en/learn/an-introduction-to-the-npm-package-manager/#introduction-to-npm) by running `npm install` in a terminal window. This will install `@pqina/pintura` and a local node server.
14 |
15 | Run `npm start` to start a local test server at [http://localhost:8080](http://localhost:8080)
16 |
17 | ### Manually
18 |
19 | 1. Download the [Pintura package](https://pqina.nl/pintura/guide/#zip-panel).
20 | 2. We only need the `pintura.css` stylesheet and the `pintura.js` JavaScript file.
21 | 3. Update the url after the `import` statement so it points to the downloaded JavaScript file.
22 | 4. Update the stylesheet tag so it links to the downloaded Pintura stylesheet file.
23 |
24 | ## Questions
25 |
26 | Feel free to reach out using the [contact form](https://pqina.nl/pintura/contact/) on the Pintura product page.
27 |
28 | # Other example projects
29 |
30 | JavaScript:
31 |
32 | - [JavaScript](https://github.com/pqina/pintura-example-javascript)
33 | - [PinturaInput](https://github.com/pqina/pintura-example-pintura-input)
34 | - [CustomElement](https://github.com/pqina/pintura-example-custom-element)
35 |
36 | Frameworks:
37 |
38 | - [jQuery](https://github.com/pqina/pintura-example-jquery)
39 | - [Alpine](https://github.com/pqina/pintura-example-alpine)
40 | - [Angular](https://github.com/pqina/pintura-example-angular)
41 | - [Vue 2](https://github.com/pqina/pintura-example-vue-2)
42 | - [Vue 3](https://github.com/pqina/pintura-example-vue-3)
43 | - [Nuxt 2](https://github.com/pqina/pintura-example-nuxt-2)
44 | - [Nuxt 3](https://github.com/pqina/pintura-example-nuxt-3)
45 | - [Svelte](https://github.com/pqina/pintura-example-svelte)
46 | - [SvelteKit](https://github.com/pqina/pintura-example-sveltekit)
47 | - [React](https://github.com/pqina/pintura-example-react)
48 | - [React TypeScript](https://github.com/pqina/pintura-example-react-typescript)
49 | - [NextJS](https://github.com/pqina/pintura-example-nextjs)
50 | - [React Native](https://github.com/pqina/pintura-example-react-native)
51 | - [React Native TypeScript](https://github.com/pqina/pintura-example-react-native-typescript)
52 | - [Cordova](https://github.com/pqina/pintura-example-cordova)
53 | - [Capacitor](https://github.com/pqina/pintura-example-capacitor)
54 | - [Ionic 6](https://github.com/pqina/pintura-example-ionic-6)
55 |
56 | File upload libraries:
57 |
58 | - [FilePond](https://github.com/pqina/pintura-example-filepond)
59 | - [jQuery File Upload](https://github.com/pqina/pintura-example-jquery-file-upload)
60 | - [React Dropzone](https://github.com/pqina/pintura-example-react-dropzone)
61 | - [Dropzone](https://github.com/pqina/pintura-example-dropzone)
62 | - [Uppy](https://github.com/pqina/pintura-example-uppy)
63 |
64 | ## License
65 |
66 | This projects uses a test version of Pintura. This version of Pintura will show a watermark in the editor and on generated images.
67 |
68 | Purchase a license at https://pqina.nl/pintura to use Pintura in production.
69 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pqina/pintura-example-javascript/2ed3ed02567d32f0e2cb409fcde5925ba91a7073/favicon.ico
--------------------------------------------------------------------------------
/image.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pqina/pintura-example-javascript/2ed3ed02567d32f0e2cb409fcde5925ba91a7073/image.jpeg
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Pintura JavaScript example project
7 |
11 |
12 |
13 |
14 | Pintura Image Editor
15 |
16 |
21 |
22 |
23 | ![]()
24 |
25 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/modal.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Pintura JavaScript example project
7 |
11 |
12 |
13 |
14 | Pintura Image Editor
15 |
16 |
21 |
22 | Modal
23 |
24 | ![]()
25 |
26 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/overlay.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Pintura JavaScript example project
7 |
11 |
12 |
13 |
14 | Pintura Image Editor
15 |
16 |
21 |
22 |
23 |
26 |
27 |
28 |
35 |
36 |
37 |
38 |
39 |
43 |
44 |
126 |
127 |
128 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pintura-example-javascript",
3 | "version": "0.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "pintura-example-javascript",
9 | "version": "0.0.0",
10 | "hasInstallScript": true,
11 | "license": "https://pqina.nl/pintura/license/",
12 | "dependencies": {
13 | "@pqina/pintura": "^8.60.15"
14 | },
15 | "devDependencies": {
16 | "http-server": "^14.1.1"
17 | }
18 | },
19 | "node_modules/@pqina/pintura": {
20 | "version": "8.60.15",
21 | "resolved": "https://registry.npmjs.org/@pqina/pintura/-/pintura-8.60.15.tgz",
22 | "integrity": "sha512-0fEp+uuT0q8g3ljA7vQMmTe971fScvI/ajVaoMYa/V9BCNOIl4ALMh4n003Y9B0VBEZBdqG+qi9VwC8xGmI3zg=="
23 | },
24 | "node_modules/ansi-styles": {
25 | "version": "4.3.0",
26 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
27 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
28 | "dev": true,
29 | "dependencies": {
30 | "color-convert": "^2.0.1"
31 | },
32 | "engines": {
33 | "node": ">=8"
34 | },
35 | "funding": {
36 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
37 | }
38 | },
39 | "node_modules/async": {
40 | "version": "2.6.4",
41 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
42 | "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
43 | "dev": true,
44 | "dependencies": {
45 | "lodash": "^4.17.14"
46 | }
47 | },
48 | "node_modules/basic-auth": {
49 | "version": "2.0.1",
50 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
51 | "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
52 | "dev": true,
53 | "dependencies": {
54 | "safe-buffer": "5.1.2"
55 | },
56 | "engines": {
57 | "node": ">= 0.8"
58 | }
59 | },
60 | "node_modules/call-bind": {
61 | "version": "1.0.2",
62 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
63 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
64 | "dev": true,
65 | "dependencies": {
66 | "function-bind": "^1.1.1",
67 | "get-intrinsic": "^1.0.2"
68 | },
69 | "funding": {
70 | "url": "https://github.com/sponsors/ljharb"
71 | }
72 | },
73 | "node_modules/chalk": {
74 | "version": "4.1.2",
75 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
76 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
77 | "dev": true,
78 | "dependencies": {
79 | "ansi-styles": "^4.1.0",
80 | "supports-color": "^7.1.0"
81 | },
82 | "engines": {
83 | "node": ">=10"
84 | },
85 | "funding": {
86 | "url": "https://github.com/chalk/chalk?sponsor=1"
87 | }
88 | },
89 | "node_modules/color-convert": {
90 | "version": "2.0.1",
91 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
92 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
93 | "dev": true,
94 | "dependencies": {
95 | "color-name": "~1.1.4"
96 | },
97 | "engines": {
98 | "node": ">=7.0.0"
99 | }
100 | },
101 | "node_modules/color-name": {
102 | "version": "1.1.4",
103 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
104 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
105 | "dev": true
106 | },
107 | "node_modules/corser": {
108 | "version": "2.0.1",
109 | "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz",
110 | "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==",
111 | "dev": true,
112 | "engines": {
113 | "node": ">= 0.4.0"
114 | }
115 | },
116 | "node_modules/debug": {
117 | "version": "3.2.7",
118 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
119 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
120 | "dev": true,
121 | "dependencies": {
122 | "ms": "^2.1.1"
123 | }
124 | },
125 | "node_modules/eventemitter3": {
126 | "version": "4.0.7",
127 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
128 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
129 | "dev": true
130 | },
131 | "node_modules/follow-redirects": {
132 | "version": "1.15.2",
133 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
134 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
135 | "dev": true,
136 | "funding": [
137 | {
138 | "type": "individual",
139 | "url": "https://github.com/sponsors/RubenVerborgh"
140 | }
141 | ],
142 | "engines": {
143 | "node": ">=4.0"
144 | },
145 | "peerDependenciesMeta": {
146 | "debug": {
147 | "optional": true
148 | }
149 | }
150 | },
151 | "node_modules/function-bind": {
152 | "version": "1.1.1",
153 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
154 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
155 | "dev": true
156 | },
157 | "node_modules/get-intrinsic": {
158 | "version": "1.2.0",
159 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
160 | "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
161 | "dev": true,
162 | "dependencies": {
163 | "function-bind": "^1.1.1",
164 | "has": "^1.0.3",
165 | "has-symbols": "^1.0.3"
166 | },
167 | "funding": {
168 | "url": "https://github.com/sponsors/ljharb"
169 | }
170 | },
171 | "node_modules/has": {
172 | "version": "1.0.3",
173 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
174 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
175 | "dev": true,
176 | "dependencies": {
177 | "function-bind": "^1.1.1"
178 | },
179 | "engines": {
180 | "node": ">= 0.4.0"
181 | }
182 | },
183 | "node_modules/has-flag": {
184 | "version": "4.0.0",
185 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
186 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
187 | "dev": true,
188 | "engines": {
189 | "node": ">=8"
190 | }
191 | },
192 | "node_modules/has-symbols": {
193 | "version": "1.0.3",
194 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
195 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
196 | "dev": true,
197 | "engines": {
198 | "node": ">= 0.4"
199 | },
200 | "funding": {
201 | "url": "https://github.com/sponsors/ljharb"
202 | }
203 | },
204 | "node_modules/he": {
205 | "version": "1.2.0",
206 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
207 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
208 | "dev": true,
209 | "bin": {
210 | "he": "bin/he"
211 | }
212 | },
213 | "node_modules/html-encoding-sniffer": {
214 | "version": "3.0.0",
215 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
216 | "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
217 | "dev": true,
218 | "dependencies": {
219 | "whatwg-encoding": "^2.0.0"
220 | },
221 | "engines": {
222 | "node": ">=12"
223 | }
224 | },
225 | "node_modules/http-proxy": {
226 | "version": "1.18.1",
227 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
228 | "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
229 | "dev": true,
230 | "dependencies": {
231 | "eventemitter3": "^4.0.0",
232 | "follow-redirects": "^1.0.0",
233 | "requires-port": "^1.0.0"
234 | },
235 | "engines": {
236 | "node": ">=8.0.0"
237 | }
238 | },
239 | "node_modules/http-server": {
240 | "version": "14.1.1",
241 | "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz",
242 | "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==",
243 | "dev": true,
244 | "dependencies": {
245 | "basic-auth": "^2.0.1",
246 | "chalk": "^4.1.2",
247 | "corser": "^2.0.1",
248 | "he": "^1.2.0",
249 | "html-encoding-sniffer": "^3.0.0",
250 | "http-proxy": "^1.18.1",
251 | "mime": "^1.6.0",
252 | "minimist": "^1.2.6",
253 | "opener": "^1.5.1",
254 | "portfinder": "^1.0.28",
255 | "secure-compare": "3.0.1",
256 | "union": "~0.5.0",
257 | "url-join": "^4.0.1"
258 | },
259 | "bin": {
260 | "http-server": "bin/http-server"
261 | },
262 | "engines": {
263 | "node": ">=12"
264 | }
265 | },
266 | "node_modules/iconv-lite": {
267 | "version": "0.6.3",
268 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
269 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
270 | "dev": true,
271 | "dependencies": {
272 | "safer-buffer": ">= 2.1.2 < 3.0.0"
273 | },
274 | "engines": {
275 | "node": ">=0.10.0"
276 | }
277 | },
278 | "node_modules/lodash": {
279 | "version": "4.17.21",
280 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
281 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
282 | "dev": true
283 | },
284 | "node_modules/mime": {
285 | "version": "1.6.0",
286 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
287 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
288 | "dev": true,
289 | "bin": {
290 | "mime": "cli.js"
291 | },
292 | "engines": {
293 | "node": ">=4"
294 | }
295 | },
296 | "node_modules/minimist": {
297 | "version": "1.2.8",
298 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
299 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
300 | "dev": true,
301 | "funding": {
302 | "url": "https://github.com/sponsors/ljharb"
303 | }
304 | },
305 | "node_modules/mkdirp": {
306 | "version": "0.5.6",
307 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
308 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
309 | "dev": true,
310 | "dependencies": {
311 | "minimist": "^1.2.6"
312 | },
313 | "bin": {
314 | "mkdirp": "bin/cmd.js"
315 | }
316 | },
317 | "node_modules/ms": {
318 | "version": "2.1.3",
319 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
320 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
321 | "dev": true
322 | },
323 | "node_modules/object-inspect": {
324 | "version": "1.12.3",
325 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
326 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
327 | "dev": true,
328 | "funding": {
329 | "url": "https://github.com/sponsors/ljharb"
330 | }
331 | },
332 | "node_modules/opener": {
333 | "version": "1.5.2",
334 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
335 | "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
336 | "dev": true,
337 | "bin": {
338 | "opener": "bin/opener-bin.js"
339 | }
340 | },
341 | "node_modules/portfinder": {
342 | "version": "1.0.32",
343 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz",
344 | "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==",
345 | "dev": true,
346 | "dependencies": {
347 | "async": "^2.6.4",
348 | "debug": "^3.2.7",
349 | "mkdirp": "^0.5.6"
350 | },
351 | "engines": {
352 | "node": ">= 0.12.0"
353 | }
354 | },
355 | "node_modules/qs": {
356 | "version": "6.11.1",
357 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz",
358 | "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==",
359 | "dev": true,
360 | "dependencies": {
361 | "side-channel": "^1.0.4"
362 | },
363 | "engines": {
364 | "node": ">=0.6"
365 | },
366 | "funding": {
367 | "url": "https://github.com/sponsors/ljharb"
368 | }
369 | },
370 | "node_modules/requires-port": {
371 | "version": "1.0.0",
372 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
373 | "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
374 | "dev": true
375 | },
376 | "node_modules/safe-buffer": {
377 | "version": "5.1.2",
378 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
379 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
380 | "dev": true
381 | },
382 | "node_modules/safer-buffer": {
383 | "version": "2.1.2",
384 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
385 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
386 | "dev": true
387 | },
388 | "node_modules/secure-compare": {
389 | "version": "3.0.1",
390 | "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz",
391 | "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==",
392 | "dev": true
393 | },
394 | "node_modules/side-channel": {
395 | "version": "1.0.4",
396 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
397 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
398 | "dev": true,
399 | "dependencies": {
400 | "call-bind": "^1.0.0",
401 | "get-intrinsic": "^1.0.2",
402 | "object-inspect": "^1.9.0"
403 | },
404 | "funding": {
405 | "url": "https://github.com/sponsors/ljharb"
406 | }
407 | },
408 | "node_modules/supports-color": {
409 | "version": "7.2.0",
410 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
411 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
412 | "dev": true,
413 | "dependencies": {
414 | "has-flag": "^4.0.0"
415 | },
416 | "engines": {
417 | "node": ">=8"
418 | }
419 | },
420 | "node_modules/union": {
421 | "version": "0.5.0",
422 | "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz",
423 | "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==",
424 | "dev": true,
425 | "dependencies": {
426 | "qs": "^6.4.0"
427 | },
428 | "engines": {
429 | "node": ">= 0.8.0"
430 | }
431 | },
432 | "node_modules/url-join": {
433 | "version": "4.0.1",
434 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz",
435 | "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==",
436 | "dev": true
437 | },
438 | "node_modules/whatwg-encoding": {
439 | "version": "2.0.0",
440 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
441 | "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
442 | "dev": true,
443 | "dependencies": {
444 | "iconv-lite": "0.6.3"
445 | },
446 | "engines": {
447 | "node": ">=12"
448 | }
449 | }
450 | },
451 | "dependencies": {
452 | "@pqina/pintura": {
453 | "version": "8.60.15",
454 | "resolved": "https://registry.npmjs.org/@pqina/pintura/-/pintura-8.60.15.tgz",
455 | "integrity": "sha512-0fEp+uuT0q8g3ljA7vQMmTe971fScvI/ajVaoMYa/V9BCNOIl4ALMh4n003Y9B0VBEZBdqG+qi9VwC8xGmI3zg=="
456 | },
457 | "ansi-styles": {
458 | "version": "4.3.0",
459 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
460 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
461 | "dev": true,
462 | "requires": {
463 | "color-convert": "^2.0.1"
464 | }
465 | },
466 | "async": {
467 | "version": "2.6.4",
468 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
469 | "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
470 | "dev": true,
471 | "requires": {
472 | "lodash": "^4.17.14"
473 | }
474 | },
475 | "basic-auth": {
476 | "version": "2.0.1",
477 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
478 | "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
479 | "dev": true,
480 | "requires": {
481 | "safe-buffer": "5.1.2"
482 | }
483 | },
484 | "call-bind": {
485 | "version": "1.0.2",
486 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
487 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
488 | "dev": true,
489 | "requires": {
490 | "function-bind": "^1.1.1",
491 | "get-intrinsic": "^1.0.2"
492 | }
493 | },
494 | "chalk": {
495 | "version": "4.1.2",
496 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
497 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
498 | "dev": true,
499 | "requires": {
500 | "ansi-styles": "^4.1.0",
501 | "supports-color": "^7.1.0"
502 | }
503 | },
504 | "color-convert": {
505 | "version": "2.0.1",
506 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
507 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
508 | "dev": true,
509 | "requires": {
510 | "color-name": "~1.1.4"
511 | }
512 | },
513 | "color-name": {
514 | "version": "1.1.4",
515 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
516 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
517 | "dev": true
518 | },
519 | "corser": {
520 | "version": "2.0.1",
521 | "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz",
522 | "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==",
523 | "dev": true
524 | },
525 | "debug": {
526 | "version": "3.2.7",
527 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
528 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
529 | "dev": true,
530 | "requires": {
531 | "ms": "^2.1.1"
532 | }
533 | },
534 | "eventemitter3": {
535 | "version": "4.0.7",
536 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
537 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
538 | "dev": true
539 | },
540 | "follow-redirects": {
541 | "version": "1.15.2",
542 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
543 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
544 | "dev": true
545 | },
546 | "function-bind": {
547 | "version": "1.1.1",
548 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
549 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
550 | "dev": true
551 | },
552 | "get-intrinsic": {
553 | "version": "1.2.0",
554 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
555 | "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
556 | "dev": true,
557 | "requires": {
558 | "function-bind": "^1.1.1",
559 | "has": "^1.0.3",
560 | "has-symbols": "^1.0.3"
561 | }
562 | },
563 | "has": {
564 | "version": "1.0.3",
565 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
566 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
567 | "dev": true,
568 | "requires": {
569 | "function-bind": "^1.1.1"
570 | }
571 | },
572 | "has-flag": {
573 | "version": "4.0.0",
574 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
575 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
576 | "dev": true
577 | },
578 | "has-symbols": {
579 | "version": "1.0.3",
580 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
581 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
582 | "dev": true
583 | },
584 | "he": {
585 | "version": "1.2.0",
586 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
587 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
588 | "dev": true
589 | },
590 | "html-encoding-sniffer": {
591 | "version": "3.0.0",
592 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
593 | "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
594 | "dev": true,
595 | "requires": {
596 | "whatwg-encoding": "^2.0.0"
597 | }
598 | },
599 | "http-proxy": {
600 | "version": "1.18.1",
601 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
602 | "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
603 | "dev": true,
604 | "requires": {
605 | "eventemitter3": "^4.0.0",
606 | "follow-redirects": "^1.0.0",
607 | "requires-port": "^1.0.0"
608 | }
609 | },
610 | "http-server": {
611 | "version": "14.1.1",
612 | "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz",
613 | "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==",
614 | "dev": true,
615 | "requires": {
616 | "basic-auth": "^2.0.1",
617 | "chalk": "^4.1.2",
618 | "corser": "^2.0.1",
619 | "he": "^1.2.0",
620 | "html-encoding-sniffer": "^3.0.0",
621 | "http-proxy": "^1.18.1",
622 | "mime": "^1.6.0",
623 | "minimist": "^1.2.6",
624 | "opener": "^1.5.1",
625 | "portfinder": "^1.0.28",
626 | "secure-compare": "3.0.1",
627 | "union": "~0.5.0",
628 | "url-join": "^4.0.1"
629 | }
630 | },
631 | "iconv-lite": {
632 | "version": "0.6.3",
633 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
634 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
635 | "dev": true,
636 | "requires": {
637 | "safer-buffer": ">= 2.1.2 < 3.0.0"
638 | }
639 | },
640 | "lodash": {
641 | "version": "4.17.21",
642 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
643 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
644 | "dev": true
645 | },
646 | "mime": {
647 | "version": "1.6.0",
648 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
649 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
650 | "dev": true
651 | },
652 | "minimist": {
653 | "version": "1.2.8",
654 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
655 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
656 | "dev": true
657 | },
658 | "mkdirp": {
659 | "version": "0.5.6",
660 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
661 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
662 | "dev": true,
663 | "requires": {
664 | "minimist": "^1.2.6"
665 | }
666 | },
667 | "ms": {
668 | "version": "2.1.3",
669 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
670 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
671 | "dev": true
672 | },
673 | "object-inspect": {
674 | "version": "1.12.3",
675 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
676 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
677 | "dev": true
678 | },
679 | "opener": {
680 | "version": "1.5.2",
681 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
682 | "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
683 | "dev": true
684 | },
685 | "portfinder": {
686 | "version": "1.0.32",
687 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz",
688 | "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==",
689 | "dev": true,
690 | "requires": {
691 | "async": "^2.6.4",
692 | "debug": "^3.2.7",
693 | "mkdirp": "^0.5.6"
694 | }
695 | },
696 | "qs": {
697 | "version": "6.11.1",
698 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz",
699 | "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==",
700 | "dev": true,
701 | "requires": {
702 | "side-channel": "^1.0.4"
703 | }
704 | },
705 | "requires-port": {
706 | "version": "1.0.0",
707 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
708 | "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
709 | "dev": true
710 | },
711 | "safe-buffer": {
712 | "version": "5.1.2",
713 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
714 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
715 | "dev": true
716 | },
717 | "safer-buffer": {
718 | "version": "2.1.2",
719 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
720 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
721 | "dev": true
722 | },
723 | "secure-compare": {
724 | "version": "3.0.1",
725 | "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz",
726 | "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==",
727 | "dev": true
728 | },
729 | "side-channel": {
730 | "version": "1.0.4",
731 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
732 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
733 | "dev": true,
734 | "requires": {
735 | "call-bind": "^1.0.0",
736 | "get-intrinsic": "^1.0.2",
737 | "object-inspect": "^1.9.0"
738 | }
739 | },
740 | "supports-color": {
741 | "version": "7.2.0",
742 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
743 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
744 | "dev": true,
745 | "requires": {
746 | "has-flag": "^4.0.0"
747 | }
748 | },
749 | "union": {
750 | "version": "0.5.0",
751 | "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz",
752 | "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==",
753 | "dev": true,
754 | "requires": {
755 | "qs": "^6.4.0"
756 | }
757 | },
758 | "url-join": {
759 | "version": "4.0.1",
760 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz",
761 | "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==",
762 | "dev": true
763 | },
764 | "whatwg-encoding": {
765 | "version": "2.0.0",
766 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
767 | "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
768 | "dev": true,
769 | "requires": {
770 | "iconv-lite": "0.6.3"
771 | }
772 | }
773 | }
774 | }
775 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "name": "pintura-example-javascript",
4 | "version": "0.0.0",
5 | "author": "Rik Schennink at PQINA",
6 | "license": "https://pqina.nl/pintura/license/",
7 | "homepage": "https://pqina.nl/pintura/",
8 | "description": "A Pintura JavaScript example Project",
9 | "main": "index.js",
10 | "scripts": {
11 | "start": "npx http-server"
12 | },
13 | "dependencies": {
14 | "@pqina/pintura": "^8.x"
15 | },
16 | "devDependencies": {
17 | "http-server": "^14.1.1"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/sticker-one.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sticker-three.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sticker-two.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles.css:
--------------------------------------------------------------------------------
1 | html {
2 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
3 | Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
4 | 'Segoe UI Symbol';
5 | font-size: 16px;
6 | line-height: 1.5;
7 | }
8 |
9 | body {
10 | padding: 1em;
11 | }
12 |
13 | img {
14 | max-width: 100%;
15 | }
16 |
17 | /* bright / dark mode */
18 | .pintura-editor {
19 | --color-background: 255, 255, 255;
20 | --color-foreground: 10, 10, 10;
21 | }
22 |
23 | @media (prefers-color-scheme: dark) {
24 | html {
25 | color: #fff;
26 | background: #111;
27 | }
28 |
29 | .pintura-editor {
30 | --color-background: 10, 10, 10;
31 | --color-foreground: 255, 255, 255;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------