@dicebear/core 5.0.0-alpha.8 → 5.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js DELETED
@@ -1,368 +0,0 @@
1
- function $parcel$interopDefault(a) {
2
- return a && a.__esModule ? a.default : a;
3
- }
4
- function $parcel$export(e, n, v, s) {
5
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
6
- }
7
-
8
- $parcel$export(module.exports, "schema", function () { return $2a454f047ad65ca9$export$4902baddc787debb; });
9
- $parcel$export(module.exports, "createAvatar", function () { return $41844b7a7caa9c3e$export$b595133eef38c254; });
10
- $parcel$export(module.exports, "createPreview", function () { return $41844b7a7caa9c3e$export$dd58ed3d8e4bd91; });
11
- $parcel$export(module.exports, "createPrng", function () { return $5124109f88aa6139$export$185802fd694ee1f5; });
12
- var $d16ce06b154157ba$exports = {};
13
- $d16ce06b154157ba$exports = JSON.parse("{\"type\":\"object\",\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"title\":\"Options\",\"properties\":{\"seed\":{\"type\":\"string\"},\"dataUri\":{\"type\":\"boolean\",\"default\":false},\"flip\":{\"type\":\"boolean\",\"default\":false},\"rotate\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":360,\"default\":0},\"scale\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":200,\"default\":100},\"radius\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":50,\"default\":0},\"size\":{\"type\":\"integer\",\"minimum\":1},\"backgroundColor\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"string\",\"pattern\":\"^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$\"},{\"type\":\"string\",\"pattern\":\"^[0-9a-zA-Z]+$\"}]}},\"translateX\":{\"type\":\"integer\",\"minimum\":-100,\"maximum\":100,\"default\":0},\"translateY\":{\"type\":\"integer\",\"minimum\":-100,\"maximum\":100,\"default\":0},\"clip\":{\"type\":\"boolean\",\"default\":true}},\"additionalProperties\":false}");
14
-
15
-
16
- function $e8888d8c4d429d3a$export$f2913fe8983302e(attr) {
17
- return attr.replace(/&/g, '&amp;').replace(/'/g, '&apos;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
18
- }
19
-
20
-
21
- const $07c114b688763b54$var$ccLicenses = {
22
- by: {
23
- permits: [
24
- 'Reproduction',
25
- 'Distribution',
26
- 'DerivativeWorks'
27
- ],
28
- requires: [
29
- 'Notice',
30
- 'Attribution'
31
- ],
32
- prohibits: []
33
- },
34
- 'by-sa': {
35
- permits: [
36
- 'Reproduction',
37
- 'Distribution',
38
- 'DerivativeWorks'
39
- ],
40
- requires: [
41
- 'Notice',
42
- 'Attribution',
43
- 'ShareAlike'
44
- ],
45
- prohibits: []
46
- },
47
- 'by-nd': {
48
- permits: [
49
- 'Reproduction',
50
- 'Distribution'
51
- ],
52
- requires: [
53
- 'Notice',
54
- 'Attribution'
55
- ],
56
- prohibits: []
57
- },
58
- 'by-nc': {
59
- permits: [
60
- 'Reproduction',
61
- 'Distribution',
62
- 'DerivativeWorks'
63
- ],
64
- requires: [
65
- 'Notice',
66
- 'Attribution'
67
- ],
68
- prohibits: [
69
- 'CommercialUse'
70
- ]
71
- },
72
- 'by-nc-sa': {
73
- permits: [
74
- 'Reproduction',
75
- 'Distribution',
76
- 'DerivativeWorks'
77
- ],
78
- requires: [
79
- 'Notice',
80
- 'Attribution',
81
- 'ShareAlike'
82
- ],
83
- prohibits: [
84
- 'CommercialUse'
85
- ]
86
- },
87
- 'by-nc-nd': {
88
- permits: [
89
- 'Reproduction',
90
- 'Distribution'
91
- ],
92
- requires: [
93
- 'Notice',
94
- 'Attribution'
95
- ],
96
- prohibits: [
97
- 'CommercialUse'
98
- ]
99
- },
100
- zero: {
101
- permits: [
102
- 'Reproduction',
103
- 'Distribution',
104
- 'DerivativeWorks'
105
- ],
106
- requires: [],
107
- prohibits: []
108
- }
109
- };
110
- function $07c114b688763b54$export$856f728536d122cb({ children: children , x: x , y: y }) {
111
- return `<g transform="translate(${x}, ${y})">${children}</g>`;
112
- }
113
- function $07c114b688763b54$export$ab2b4d38813484ba() {
114
- return {
115
- 'xmlns:dc': 'http://purl.org/dc/elements/1.1/',
116
- 'xmlns:cc': 'http://creativecommons.org/ns#',
117
- 'xmlns:rdf': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
118
- 'xmlns:svg': 'http://www.w3.org/2000/svg',
119
- xmlns: 'http://www.w3.org/2000/svg'
120
- };
121
- }
122
- function $07c114b688763b54$export$8548546c0aa631e6(style) {
123
- return `<metadata>` + `<rdf:RDF>` + `<cc:Work>` + `<dc:format>image/svg+xml</dc:format>` + `<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />` + `${$07c114b688763b54$export$9c003c8b6f6e1a83(style)}` + `${$07c114b688763b54$export$a23db5a46c5fdace(style)}` + `${$07c114b688763b54$export$eda3c259c5f3ed1e(style)}` + `${$07c114b688763b54$export$ee256ae11fb8e0f6(style)}` + `${$07c114b688763b54$export$deeb094c24418a39(style)}` + `</cc:Work>` + `${$07c114b688763b54$export$9e4d659818e08107(style)}` + `</rdf:RDF>` + `</metadata>`;
124
- }
125
- function $07c114b688763b54$export$9c003c8b6f6e1a83(style) {
126
- if (style.meta.title) return `<dc:title>${style.meta.title}</dc:title>`;
127
- return '';
128
- }
129
- function $07c114b688763b54$export$a23db5a46c5fdace(style) {
130
- if (style.meta.creator) {
131
- let creators = Array.isArray(style.meta.creator) ? style.meta.creator : [
132
- style.meta.creator
133
- ];
134
- return `<dc:creator>${$07c114b688763b54$export$cb60788f9ae66e61(creators)}</dc:creator>`;
135
- }
136
- return '';
137
- }
138
- function $07c114b688763b54$export$eda3c259c5f3ed1e(style) {
139
- if (style.meta.source) return `<dc:source>${style.meta.source}</dc:source>`;
140
- return '';
141
- }
142
- function $07c114b688763b54$export$ee256ae11fb8e0f6(style) {
143
- if (style.meta.license) return `<cc:license rdf:resource="${style.meta.license.url}" />`;
144
- return '';
145
- }
146
- function $07c114b688763b54$export$deeb094c24418a39(style) {
147
- if (style.meta.contributor) {
148
- let contributors = Array.isArray(style.meta.contributor) ? style.meta.contributor : [
149
- style.meta.contributor
150
- ];
151
- return `<dc:contributor>${$07c114b688763b54$export$cb60788f9ae66e61(contributors)}</dc:contributor>`;
152
- }
153
- return '';
154
- }
155
- function $07c114b688763b54$export$cb60788f9ae66e61(agents) {
156
- return agents.map((agent)=>`<cc:Agent><dc:title>${agent}</dc:title></cc:Agent>`
157
- );
158
- }
159
- function $07c114b688763b54$export$9e4d659818e08107(style) {
160
- var ref;
161
- let match = (ref = style.meta.license) === null || ref === void 0 ? void 0 : ref.url.match(/^https?:\/\/creativecommons.org\/(?:licenses|publicdomain)\/([a-z\-]+)\/\d.\d\//);
162
- if (match) {
163
- let license = $07c114b688763b54$var$ccLicenses[match[1]];
164
- if (license) {
165
- var ref1;
166
- let result = ``;
167
- license.permits.forEach((permits)=>{
168
- result += `<cc:permits rdf:resource="https://creativecommons.org/ns#${permits}" />`;
169
- });
170
- license.requires.forEach((requires)=>{
171
- result += `<cc:requires rdf:resource="https://creativecommons.org/ns#${requires}" />`;
172
- });
173
- license.prohibits.forEach((prohibits)=>{
174
- result += `<cc:prohibits rdf:resource="https://creativecommons.org/ns#${prohibits}" />`;
175
- });
176
- return `<cc:License rdf:about="${(ref1 = style.meta.license) === null || ref1 === void 0 ? void 0 : ref1.url}">${result}</cc:License>`;
177
- }
178
- }
179
- return '';
180
- }
181
- function $07c114b688763b54$export$d2a32b662cec697e(result) {
182
- let viewBox = result.attributes['viewBox'].split(' ');
183
- let x = parseInt(viewBox[0]);
184
- let y = parseInt(viewBox[1]);
185
- let width = parseInt(viewBox[2]);
186
- let height = parseInt(viewBox[3]);
187
- return {
188
- x: x,
189
- y: y,
190
- width: width,
191
- height: height
192
- };
193
- }
194
- function $07c114b688763b54$export$e0ba6f7f8209085e(result, backgroundColor) {
195
- let { width: width , height: height , x: x , y: y } = $07c114b688763b54$export$d2a32b662cec697e(result);
196
- return `<rect fill="${backgroundColor}" width="${width}" height="${height}" x="${x}" y="${y}" />${result.body}`;
197
- }
198
- function $07c114b688763b54$export$c834547aca49957b(result, scale) {
199
- let { width: width , height: height , x: x , y: y } = $07c114b688763b54$export$d2a32b662cec697e(result);
200
- let percent = scale ? (scale - 100) / 100 : 0;
201
- let translateX = (width / 2 + x) * percent * -1;
202
- let translateY = (height / 2 + y) * percent * -1;
203
- return `<g transform="translate(${translateX} ${translateY}) scale(${scale / 100})">${result.body}</g>`;
204
- }
205
- function $07c114b688763b54$export$d6f5f87d27cbbe0f(result, x, y) {
206
- let viewBox = $07c114b688763b54$export$d2a32b662cec697e(result);
207
- let translateX = (viewBox.width + viewBox.x * 2) * ((x !== null && x !== void 0 ? x : 0) / 100);
208
- let translateY = (viewBox.height + viewBox.y * 2) * ((y !== null && y !== void 0 ? y : 0) / 100);
209
- return `<g transform="translate(${translateX} ${translateY})">${result.body}</g>`;
210
- }
211
- function $07c114b688763b54$export$38df2acdbfbce309(result, rotate) {
212
- let { width: width , height: height , x: x , y: y } = $07c114b688763b54$export$d2a32b662cec697e(result);
213
- return `<g transform="rotate(${rotate}, ${width / 2 + x}, ${height / 2 + y})">${result.body}</g>`;
214
- }
215
- function $07c114b688763b54$export$90015ee4a3937667(result) {
216
- let { width: width , x: x } = $07c114b688763b54$export$d2a32b662cec697e(result);
217
- return `<g transform="scale(-1 1) translate(${width * -1 - x * 2} 0)">${result.body}</g>`;
218
- }
219
- function $07c114b688763b54$export$e3f2409025136fe9(result, radius) {
220
- let { width: width , height: height , x: x , y: y } = $07c114b688763b54$export$d2a32b662cec697e(result);
221
- let rx = radius ? width * radius / 100 : 0;
222
- let ry = radius ? height * radius / 100 : 0;
223
- return `<mask id="viewboxMask">` + `<rect width="${width}" height="${height}" rx="${rx}" ry="${ry}" x="${x}" y="${y}" fill="#fff" />` + `</mask>` + `<g mask="url(#viewboxMask)">${result.body}</g>`;
224
- }
225
- function $07c114b688763b54$export$d29d121524f3ec8b(attributes) {
226
- attributes = {
227
- ...$07c114b688763b54$export$ab2b4d38813484ba(),
228
- ...attributes
229
- };
230
- return Object.keys(attributes).map((attr)=>`${$e8888d8c4d429d3a$export$f2913fe8983302e(attr)}="${$e8888d8c4d429d3a$export$f2913fe8983302e(attributes[attr])}"`
231
- ).join(' ');
232
- }
233
- function $07c114b688763b54$export$9237c576b9b6deae(svg) {
234
- return `data:image/svg+xml;utf8,${encodeURIComponent(svg)}`;
235
- }
236
-
237
-
238
-
239
- function $8ff648bad6fbf328$export$3cb21709c4058847(schema) {
240
- var _properties;
241
- return (_properties = schema.properties) !== null && _properties !== void 0 ? _properties : {
242
- };
243
- }
244
- function $8ff648bad6fbf328$export$ebe90cb607ad99e(schema) {
245
- let result = {
246
- };
247
- let props = $8ff648bad6fbf328$export$3cb21709c4058847(schema);
248
- Object.keys(props).forEach((key)=>{
249
- let val = props[key];
250
- if (typeof val === 'object' && undefined !== val.default) result[key] = val.default;
251
- });
252
- return result;
253
- }
254
-
255
-
256
- function $ba964e5df282cb4f$export$4950aa0f605343fb(style, options) {
257
- let result = {
258
- seed: Math.random().toString(),
259
- ...$8ff648bad6fbf328$export$ebe90cb607ad99e((/*@__PURE__*/$parcel$interopDefault($d16ce06b154157ba$exports))),
260
- ...$8ff648bad6fbf328$export$ebe90cb607ad99e(style.schema),
261
- ...options
262
- };
263
- return result;
264
- }
265
-
266
-
267
- const $5124109f88aa6139$var$MIN = -2147483648;
268
- const $5124109f88aa6139$var$MAX = 2147483647;
269
- function $5124109f88aa6139$var$xorshift(value) {
270
- value ^= value << 13;
271
- value ^= value >> 17;
272
- value ^= value << 5;
273
- return value;
274
- }
275
- function $5124109f88aa6139$var$hashSeed(seed) {
276
- let hash = 0;
277
- for(let i = 0; i < seed.length; i++){
278
- hash = (hash << 5) - hash + seed.charCodeAt(i) | 0;
279
- hash = $5124109f88aa6139$var$xorshift(hash);
280
- }
281
- return hash;
282
- }
283
- function $5124109f88aa6139$var$randomSeed() {
284
- return $5124109f88aa6139$var$MIN + Math.floor(($5124109f88aa6139$var$MAX - $5124109f88aa6139$var$MIN) * Math.random()).toString();
285
- }
286
- function $5124109f88aa6139$export$185802fd694ee1f5(seed) {
287
- seed = seed !== null && seed !== void 0 ? seed : $5124109f88aa6139$var$randomSeed();
288
- let value = $5124109f88aa6139$var$hashSeed(seed) || 1;
289
- const next = ()=>value = $5124109f88aa6139$var$xorshift(value)
290
- ;
291
- const integer = (min, max)=>{
292
- return Math.floor((next() - $5124109f88aa6139$var$MIN) / ($5124109f88aa6139$var$MAX - $5124109f88aa6139$var$MIN) * (max + 1 - min) + min);
293
- };
294
- return {
295
- seed: seed,
296
- bool (likelihood = 50) {
297
- return integer(0, 100) <= likelihood;
298
- },
299
- integer (min, max) {
300
- return integer(min, max);
301
- },
302
- pick (arr) {
303
- return arr[integer(0, arr.length - 1)];
304
- }
305
- };
306
- }
307
-
308
-
309
-
310
- function $41844b7a7caa9c3e$export$b595133eef38c254(style, options = {
311
- }) {
312
- options = $ba964e5df282cb4f$export$4950aa0f605343fb(style, options);
313
- const prng = $5124109f88aa6139$export$185802fd694ee1f5(options.seed);
314
- const result = style.create({
315
- prng: prng,
316
- options: options
317
- });
318
- var _backgroundColor;
319
- const backgroundColor = prng.pick((_backgroundColor = options.backgroundColor) !== null && _backgroundColor !== void 0 ? _backgroundColor : []);
320
- if (options.size) {
321
- result.attributes.width = options.size.toString();
322
- result.attributes.height = options.size.toString();
323
- }
324
- if (options.scale !== undefined && options.scale !== 100) result.body = $07c114b688763b54$export$c834547aca49957b(result, options.scale);
325
- if (options.flip) result.body = $07c114b688763b54$export$90015ee4a3937667(result);
326
- if (options.rotate) result.body = $07c114b688763b54$export$38df2acdbfbce309(result, options.rotate);
327
- if (options.translateX || options.translateY) result.body = $07c114b688763b54$export$d6f5f87d27cbbe0f(result, options.translateX, options.translateY);
328
- if (backgroundColor && backgroundColor !== 'transparent') result.body = $07c114b688763b54$export$e0ba6f7f8209085e(result, backgroundColor);
329
- var _radius;
330
- if (options.radius || options.clip) result.body = $07c114b688763b54$export$e3f2409025136fe9(result, (_radius = options.radius) !== null && _radius !== void 0 ? _radius : 0);
331
- let avatar = `<svg ${$07c114b688763b54$export$d29d121524f3ec8b(result.attributes)}>` + `${$07c114b688763b54$export$8548546c0aa631e6(style)}` + `${result.body}` + `</svg>`;
332
- return options.dataUri ? $07c114b688763b54$export$9237c576b9b6deae(avatar) : avatar;
333
- }
334
- function $41844b7a7caa9c3e$export$dd58ed3d8e4bd91(style, options, property) {
335
- var ref;
336
- options = $ba964e5df282cb4f$export$4950aa0f605343fb(style, options);
337
- const prng = $5124109f88aa6139$export$185802fd694ee1f5(options.seed);
338
- let result = (ref = style.preview) === null || ref === void 0 ? void 0 : ref.call(style, {
339
- prng: prng,
340
- options: options,
341
- property: property
342
- });
343
- var _backgroundColor;
344
- const backgroundColor = prng.pick((_backgroundColor = options.backgroundColor) !== null && _backgroundColor !== void 0 ? _backgroundColor : []);
345
- const hasBackgroundColor = backgroundColor && backgroundColor !== 'transparent';
346
- const isBackgroundVisible = property === 'backgroundColor';
347
- if (undefined === result) {
348
- if (hasBackgroundColor && isBackgroundVisible) result = {
349
- attributes: {
350
- viewBox: `0 0 1 1`,
351
- fill: 'none',
352
- 'shape-rendering': 'auto'
353
- },
354
- body: ``
355
- };
356
- else return undefined;
357
- }
358
- if (hasBackgroundColor && isBackgroundVisible) result.body = $07c114b688763b54$export$e0ba6f7f8209085e(result, backgroundColor);
359
- let avatar = `<svg ${$07c114b688763b54$export$d29d121524f3ec8b(result.attributes)}>` + `${$07c114b688763b54$export$8548546c0aa631e6(style)}` + `${result.body}` + `</svg>`;
360
- return options.dataUri ? $07c114b688763b54$export$9237c576b9b6deae(avatar) : avatar;
361
- }
362
-
363
-
364
-
365
- const $2a454f047ad65ca9$export$4902baddc787debb = (/*@__PURE__*/$parcel$interopDefault($d16ce06b154157ba$exports));
366
-
367
-
368
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/@dicebear/core/src/index.ts","packages/@dicebear/core/src/schema.json","packages/@dicebear/core/src/core.ts","packages/@dicebear/core/src/utils/svg.ts","packages/@dicebear/core/src/utils/escape.ts","packages/@dicebear/core/src/utils/options.ts","packages/@dicebear/core/src/utils/schema.ts","packages/@dicebear/core/src/utils/prng.ts"],"sourcesContent":["/*!\n * DiceBear (@dicebear/core)\n *\n * Code licensed under MIT (https://github.com/dicebear/dicebear/blob/main/LICENSE)\n * Copyright (c) 2021 Florian Körner\n */\n\n// parcel bug workaround\nimport type * as JSONSchema from 'json-schema';\n// import type { JSONSchema7 } from 'json-schema';\nimport untypedSchema from './schema.json';\n\nconst schema = untypedSchema as JSONSchema.JSONSchema7;\n\nexport { schema };\nexport { createAvatar, createPreview } from './core';\nexport { create as createPrng } from './utils/prng';\nexport type { Prng, Style, StyleOptions, StyleSchema } from './types';\n","{\n \"type\": \"object\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"Options\",\n \"properties\": {\n \"seed\": {\n \"type\": \"string\"\n },\n \"dataUri\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"flip\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"rotate\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 360,\n \"default\": 0\n },\n \"scale\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 200,\n \"default\": 100\n },\n \"radius\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 50,\n \"default\": 0\n },\n \"size\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"backgroundColor\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$\"\n },\n {\n \"type\": \"string\",\n \"pattern\": \"^[0-9a-zA-Z]+$\"\n }\n ]\n }\n },\n \"translateX\": {\n \"type\": \"integer\",\n \"minimum\": -100,\n \"maximum\": 100,\n \"default\": 0\n },\n \"translateY\": {\n \"type\": \"integer\",\n \"minimum\": -100,\n \"maximum\": 100,\n \"default\": 0\n },\n \"clip\": {\n \"type\": \"boolean\",\n \"default\": true\n }\n },\n \"additionalProperties\": false\n}\n","import type { Style, StyleOptions } from './types';\nimport * as svgUtils from './utils/svg';\nimport { merge as mergeOptions } from './utils/options';\nimport { create as createPrng } from './utils/prng';\nimport { convertToDataUri } from './utils/svg';\n\nexport function createAvatar<O extends {}>(style: Style<O>, options: StyleOptions<O> = {}): string {\n options = mergeOptions(style, options);\n\n const prng = createPrng(options.seed);\n const result = style.create({ prng: prng, options });\n const backgroundColor = prng.pick(options.backgroundColor ?? []);\n\n if (options.size) {\n result.attributes.width = options.size.toString();\n result.attributes.height = options.size.toString();\n }\n\n if (options.scale !== undefined && options.scale !== 100) {\n result.body = svgUtils.addScale(result, options.scale);\n }\n\n if (options.flip) {\n result.body = svgUtils.addFlip(result);\n }\n\n if (options.rotate) {\n result.body = svgUtils.addRotate(result, options.rotate);\n }\n\n if (options.translateX || options.translateY) {\n result.body = svgUtils.addTranslate(result, options.translateX, options.translateY);\n }\n\n if (backgroundColor && backgroundColor !== 'transparent') {\n result.body = svgUtils.addBackgroundColor(result, backgroundColor);\n }\n\n if (options.radius || options.clip) {\n result.body = svgUtils.addViewboxMask(result, options.radius ?? 0);\n }\n\n let avatar =\n `<svg ${svgUtils.createAttrString(result.attributes)}>` +\n `${svgUtils.getMetadata(style)}` +\n `${result.body}` +\n `</svg>`;\n\n return options.dataUri ? convertToDataUri(avatar) : avatar;\n}\n\nexport function createPreview<O extends {}>(\n style: Style<O>,\n options: StyleOptions<O>,\n property: keyof StyleOptions<O>\n): string | undefined {\n options = mergeOptions(style, options);\n\n const prng = createPrng(options.seed);\n\n let result = style.preview?.({ prng, options, property });\n\n const backgroundColor = prng.pick(options.backgroundColor ?? []);\n const hasBackgroundColor = backgroundColor && backgroundColor !== 'transparent';\n const isBackgroundVisible = property === 'backgroundColor';\n\n if (undefined === result) {\n if (hasBackgroundColor && isBackgroundVisible) {\n result = {\n attributes: {\n viewBox: `0 0 1 1`,\n fill: 'none',\n 'shape-rendering': 'auto',\n },\n body: ``,\n };\n } else {\n return undefined;\n }\n }\n\n if (hasBackgroundColor && isBackgroundVisible) {\n result.body = svgUtils.addBackgroundColor(result, backgroundColor);\n }\n\n let avatar =\n `<svg ${svgUtils.createAttrString(result.attributes)}>` +\n `${svgUtils.getMetadata(style)}` +\n `${result.body}` +\n `</svg>`;\n\n return options.dataUri ? convertToDataUri(avatar) : avatar;\n}\n","import type { Options } from '../options';\nimport type { Style, StyleCreateResult, StyleCreateResultAttributes } from '../types';\nimport * as escape from './escape';\n\ntype CreateGroupProps = {\n children: string;\n x: number;\n y: number;\n};\n\nconst ccLicenses: Record<string, { permits: string[]; requires: string[]; prohibits: string[] }> = {\n by: {\n permits: ['Reproduction', 'Distribution', 'DerivativeWorks'],\n requires: ['Notice', 'Attribution'],\n prohibits: [],\n },\n 'by-sa': {\n permits: ['Reproduction', 'Distribution', 'DerivativeWorks'],\n requires: ['Notice', 'Attribution', 'ShareAlike'],\n prohibits: [],\n },\n 'by-nd': {\n permits: ['Reproduction', 'Distribution'],\n requires: ['Notice', 'Attribution'],\n prohibits: [],\n },\n 'by-nc': {\n permits: ['Reproduction', 'Distribution', 'DerivativeWorks'],\n requires: ['Notice', 'Attribution'],\n prohibits: ['CommercialUse'],\n },\n 'by-nc-sa': {\n permits: ['Reproduction', 'Distribution', 'DerivativeWorks'],\n requires: ['Notice', 'Attribution', 'ShareAlike'],\n prohibits: ['CommercialUse'],\n },\n 'by-nc-nd': {\n permits: ['Reproduction', 'Distribution'],\n requires: ['Notice', 'Attribution'],\n prohibits: ['CommercialUse'],\n },\n zero: {\n permits: ['Reproduction', 'Distribution', 'DerivativeWorks'],\n requires: [],\n prohibits: [],\n },\n};\n\nexport function createGroup({ children, x, y }: CreateGroupProps) {\n return `<g transform=\"translate(${x}, ${y})\">${children}</g>`;\n}\n\nexport function getXmlnsAttributes() {\n return {\n 'xmlns:dc': 'http://purl.org/dc/elements/1.1/',\n 'xmlns:cc': 'http://creativecommons.org/ns#',\n 'xmlns:rdf': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',\n 'xmlns:svg': 'http://www.w3.org/2000/svg',\n xmlns: 'http://www.w3.org/2000/svg',\n };\n}\n\nexport function getMetadata<O extends Options>(style: Style<O>) {\n return (\n `<metadata>` +\n `<rdf:RDF>` +\n `<cc:Work>` +\n `<dc:format>image/svg+xml</dc:format>` +\n `<dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />` +\n `${getMetadataWorkTitle(style)}` +\n `${getMetadataWorkCreator(style)}` +\n `${getMetadataWorkSource(style)}` +\n `${getMetadataWorkLicense(style)}` +\n `${getMetadataWorkContributor(style)}` +\n `</cc:Work>` +\n `${getMetadataLicense(style)}` +\n `</rdf:RDF>` +\n `</metadata>`\n );\n}\n\nexport function getMetadataWorkTitle<O extends Options>(style: Style<O>) {\n if (style.meta.title) {\n return `<dc:title>${style.meta.title}</dc:title>`;\n }\n\n return '';\n}\n\nexport function getMetadataWorkCreator<O extends Options>(style: Style<O>) {\n if (style.meta.creator) {\n let creators = Array.isArray(style.meta.creator) ? style.meta.creator : [style.meta.creator];\n\n return `<dc:creator>${getMetadataWorkAgents(creators)}</dc:creator>`;\n }\n\n return '';\n}\n\nexport function getMetadataWorkSource<O extends Options>(style: Style<O>) {\n if (style.meta.source) {\n return `<dc:source>${style.meta.source}</dc:source>`;\n }\n\n return '';\n}\n\nexport function getMetadataWorkLicense<O extends Options>(style: Style<O>) {\n if (style.meta.license) {\n return `<cc:license rdf:resource=\"${style.meta.license.url}\" />`;\n }\n\n return '';\n}\n\nexport function getMetadataWorkContributor<O extends Options>(style: Style<O>) {\n if (style.meta.contributor) {\n let contributors = Array.isArray(style.meta.contributor) ? style.meta.contributor : [style.meta.contributor];\n\n return `<dc:contributor>${getMetadataWorkAgents(contributors)}</dc:contributor>`;\n }\n\n return '';\n}\n\nexport function getMetadataWorkAgents(agents: string[]) {\n return agents.map((agent) => `<cc:Agent><dc:title>${agent}</dc:title></cc:Agent>`);\n}\n\nexport function getMetadataLicense<O extends Options>(style: Style<O>) {\n let match = style.meta.license?.url.match(\n /^https?:\\/\\/creativecommons.org\\/(?:licenses|publicdomain)\\/([a-z\\-]+)\\/\\d.\\d\\//\n );\n\n if (match) {\n let license = ccLicenses[match[1]];\n\n if (license) {\n let result = ``;\n\n license.permits.forEach((permits) => {\n result += `<cc:permits rdf:resource=\"https://creativecommons.org/ns#${permits}\" />`;\n });\n\n license.requires.forEach((requires) => {\n result += `<cc:requires rdf:resource=\"https://creativecommons.org/ns#${requires}\" />`;\n });\n\n license.prohibits.forEach((prohibits) => {\n result += `<cc:prohibits rdf:resource=\"https://creativecommons.org/ns#${prohibits}\" />`;\n });\n\n return `<cc:License rdf:about=\"${style.meta.license?.url}\">${result}</cc:License>`;\n }\n }\n\n return '';\n}\n\nexport function getViewBox(result: StyleCreateResult) {\n let viewBox = result.attributes['viewBox'].split(' ');\n let x = parseInt(viewBox[0]);\n let y = parseInt(viewBox[1]);\n let width = parseInt(viewBox[2]);\n let height = parseInt(viewBox[3]);\n\n return {\n x,\n y,\n width,\n height,\n };\n}\n\nexport function addBackgroundColor(result: StyleCreateResult, backgroundColor: string) {\n let { width, height, x, y } = getViewBox(result);\n\n return `<rect fill=\"${backgroundColor}\" width=\"${width}\" height=\"${height}\" x=\"${x}\" y=\"${y}\" />${result.body}`;\n}\n\nexport function addScale(result: StyleCreateResult, scale: number) {\n let { width, height, x, y } = getViewBox(result);\n\n let percent = scale ? (scale - 100) / 100 : 0;\n\n let translateX = (width / 2 + x) * percent * -1;\n let translateY = (height / 2 + y) * percent * -1;\n\n return `<g transform=\"translate(${translateX} ${translateY}) scale(${scale / 100})\">${result.body}</g>`;\n}\n\nexport function addTranslate(result: StyleCreateResult, x?: number, y?: number) {\n let viewBox = getViewBox(result);\n\n let translateX = (viewBox.width + viewBox.x * 2) * ((x ?? 0) / 100);\n let translateY = (viewBox.height + viewBox.y * 2) * ((y ?? 0) / 100);\n\n return `<g transform=\"translate(${translateX} ${translateY})\">${result.body}</g>`;\n}\n\nexport function addRotate(result: StyleCreateResult, rotate: number) {\n let { width, height, x, y } = getViewBox(result);\n\n return `<g transform=\"rotate(${rotate}, ${width / 2 + x}, ${height / 2 + y})\">${result.body}</g>`;\n}\n\nexport function addFlip(result: StyleCreateResult) {\n let { width, x } = getViewBox(result);\n\n return `<g transform=\"scale(-1 1) translate(${width * -1 - x * 2} 0)\">${result.body}</g>`;\n}\n\nexport function addViewboxMask(result: StyleCreateResult, radius: number) {\n let { width, height, x, y } = getViewBox(result);\n\n let rx = radius ? (width * radius) / 100 : 0;\n let ry = radius ? (height * radius) / 100 : 0;\n\n return (\n `<mask id=\"viewboxMask\">` +\n `<rect width=\"${width}\" height=\"${height}\" rx=\"${rx}\" ry=\"${ry}\" x=\"${x}\" y=\"${y}\" fill=\"#fff\" />` +\n `</mask>` +\n `<g mask=\"url(#viewboxMask)\">${result.body}</g>`\n );\n}\n\nexport function createAttrString(attributes: StyleCreateResultAttributes): string {\n attributes = { ...getXmlnsAttributes(), ...attributes };\n\n return Object.keys(attributes)\n .map((attr) => `${escape.xml(attr)}=\"${escape.xml(attributes[attr])}\"`)\n .join(' ');\n}\n\nexport function convertToDataUri(svg: string): string {\n return `data:image/svg+xml;utf8,${encodeURIComponent(svg)}`;\n}\n","export function xml(attr: string) {\n return attr\n .replace(/&/g, '&amp;')\n .replace(/'/g, '&apos;')\n .replace(/\"/g, '&quot;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;');\n}\n","import type { Style, StyleOptions } from '../types';\nimport coreSchema from '../schema.json';\nimport * as schema from './schema';\nimport { JSONSchema7 } from 'json-schema';\n\nexport function merge<O extends {}>(style: Style<O>, options: StyleOptions<O>): StyleOptions<O> {\n let result: StyleOptions<O> = {\n ...{\n seed: Math.random().toString(),\n },\n ...(schema.defaults(coreSchema as JSONSchema7) as StyleOptions<O>),\n ...(schema.defaults(style.schema) as StyleOptions<O>),\n ...options,\n };\n\n return result;\n}\n","import { StyleSchema } from '../types';\n\nexport function properties(schema: StyleSchema) {\n return schema.properties ?? {};\n}\n\nexport function defaults(schema: StyleSchema) {\n let result: Record<string, unknown> = {};\n let props = properties(schema);\n\n Object.keys(props).forEach((key) => {\n let val = props[key];\n\n if (typeof val === 'object' && undefined !== val.default) {\n result[key] = val.default;\n }\n });\n\n return result;\n}\n","import type { Prng } from '../types';\n\nconst MIN = -2147483648;\nconst MAX = 2147483647;\n\nfunction xorshift(value: number) {\n value ^= value << 13;\n value ^= value >> 17;\n value ^= value << 5;\n\n return value;\n}\n\nfunction hashSeed(seed: string) {\n let hash = 0;\n\n for (let i = 0; i < seed.length; i++) {\n hash = ((hash << 5) - hash + seed.charCodeAt(i)) | 0;\n hash = xorshift(hash);\n }\n\n return hash;\n}\n\nfunction randomSeed() {\n return MIN + Math.floor((MAX - MIN) * Math.random()).toString();\n}\n\nexport function create(seed?: string): Prng {\n seed = seed ?? randomSeed();\n\n let value = hashSeed(seed) || 1;\n\n const next = () => (value = xorshift(value));\n\n const integer = (min: number, max: number) => {\n return Math.floor(((next() - MIN) / (MAX - MIN)) * (max + 1 - min) + min);\n };\n\n return {\n seed,\n bool(likelihood: number = 50) {\n return integer(0, 100) <= likelihood;\n },\n integer(min: number, max: number) {\n return integer(min, max);\n },\n pick<T>(arr: T[]): T {\n return arr[integer(0, arr.length - 1)];\n },\n };\n}\n"],"names":[],"version":3,"file":"index.js.map"}