@storyblok/js 4.2.1 → 4.2.4

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.
@@ -4,39 +4,339 @@
4
4
  * description: SDK to integrate Storyblok into your project using JavaScript.
5
5
  * author: undefined
6
6
  */
7
- function re(r, e) {
8
- if (!e)
9
- return { src: r, attrs: {} };
10
- let t = 0, o = 0;
11
- const s = {}, n = [];
12
- function l(a, h, d, y, T) {
13
- typeof a != "number" || a <= h || a >= d ? console.warn(`[StoryblokRichText] - ${y.charAt(0).toUpperCase() + y.slice(1)} value must be a number between ${h} and ${d} (inclusive)`) : T.push(`${y}(${a})`);
7
+ var lt = Object.defineProperty;
8
+ var ht = (t, e, s) => e in t ? lt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
9
+ var E = (t, e, s) => ht(t, typeof e != "symbol" ? e + "" : e, s);
10
+ const Dt = /[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/, dt = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/;
11
+ function O(t) {
12
+ switch (t) {
13
+ case 9:
14
+ case 32:
15
+ return !0;
16
+ }
17
+ return !1;
18
+ }
19
+ function G(t) {
20
+ if (t >= 8192 && t <= 8202)
21
+ return !0;
22
+ switch (t) {
23
+ case 9:
24
+ // \t
25
+ case 10:
26
+ // \n
27
+ case 11:
28
+ // \v
29
+ case 12:
30
+ // \f
31
+ case 13:
32
+ // \r
33
+ case 32:
34
+ case 160:
35
+ case 5760:
36
+ case 8239:
37
+ case 8287:
38
+ case 12288:
39
+ return !0;
40
+ }
41
+ return !1;
42
+ }
43
+ function q(t) {
44
+ return Dt.test(t) || dt.test(t);
45
+ }
46
+ function J(t) {
47
+ switch (t) {
48
+ case 33:
49
+ case 34:
50
+ case 35:
51
+ case 36:
52
+ case 37:
53
+ case 38:
54
+ case 39:
55
+ case 40:
56
+ case 41:
57
+ case 42:
58
+ case 43:
59
+ case 44:
60
+ case 45:
61
+ case 46:
62
+ case 47:
63
+ case 58:
64
+ case 59:
65
+ case 60:
66
+ case 61:
67
+ case 62:
68
+ case 63:
69
+ case 64:
70
+ case 91:
71
+ case 92:
72
+ case 93:
73
+ case 94:
74
+ case 95:
75
+ case 96:
76
+ case 123:
77
+ case 124:
78
+ case 125:
79
+ case 126:
80
+ return !0;
81
+ default:
82
+ return !1;
83
+ }
84
+ }
85
+ function x(t, e, s) {
86
+ this.type = t, this.tag = e, this.attrs = null, this.map = null, this.nesting = s, this.level = 0, this.children = null, this.content = "", this.markup = "", this.info = "", this.meta = null, this.block = !1, this.hidden = !1;
87
+ }
88
+ x.prototype.attrIndex = function(e) {
89
+ if (!this.attrs)
90
+ return -1;
91
+ const s = this.attrs;
92
+ for (let r = 0, u = s.length; r < u; r++)
93
+ if (s[r][0] === e)
94
+ return r;
95
+ return -1;
96
+ };
97
+ x.prototype.attrPush = function(e) {
98
+ this.attrs ? this.attrs.push(e) : this.attrs = [e];
99
+ };
100
+ x.prototype.attrSet = function(e, s) {
101
+ const r = this.attrIndex(e), u = [e, s];
102
+ r < 0 ? this.attrPush(u) : this.attrs[r] = u;
103
+ };
104
+ x.prototype.attrGet = function(e) {
105
+ const s = this.attrIndex(e);
106
+ let r = null;
107
+ return s >= 0 && (r = this.attrs[s][1]), r;
108
+ };
109
+ x.prototype.attrJoin = function(e, s) {
110
+ const r = this.attrIndex(e);
111
+ r < 0 ? this.attrPush([e, s]) : this.attrs[r][1] = this.attrs[r][1] + " " + s;
112
+ };
113
+ function ft(t, e, s) {
114
+ this.src = t, this.env = s, this.tokens = [], this.inlineMode = !1, this.md = e;
115
+ }
116
+ ft.prototype.Token = x;
117
+ function _(t, e, s, r) {
118
+ this.src = t, this.md = e, this.env = s, this.tokens = r, this.bMarks = [], this.eMarks = [], this.tShift = [], this.sCount = [], this.bsCount = [], this.blkIndent = 0, this.line = 0, this.lineMax = 0, this.tight = !1, this.ddIndent = -1, this.listIndent = -1, this.parentType = "root", this.level = 0;
119
+ const u = this.src;
120
+ for (let i = 0, o = 0, n = 0, a = 0, c = u.length, h = !1; o < c; o++) {
121
+ const D = u.charCodeAt(o);
122
+ if (!h)
123
+ if (O(D)) {
124
+ n++, D === 9 ? a += 4 - a % 4 : a++;
125
+ continue;
126
+ } else
127
+ h = !0;
128
+ (D === 10 || o === c - 1) && (D !== 10 && o++, this.bMarks.push(i), this.eMarks.push(o), this.tShift.push(n), this.sCount.push(a), this.bsCount.push(0), h = !1, n = 0, a = 0, i = o + 1);
129
+ }
130
+ this.bMarks.push(u.length), this.eMarks.push(u.length), this.tShift.push(0), this.sCount.push(0), this.bsCount.push(0), this.lineMax = this.bMarks.length - 1;
131
+ }
132
+ _.prototype.push = function(t, e, s) {
133
+ const r = new x(t, e, s);
134
+ return r.block = !0, s < 0 && this.level--, r.level = this.level, s > 0 && this.level++, this.tokens.push(r), r;
135
+ };
136
+ _.prototype.isEmpty = function(e) {
137
+ return this.bMarks[e] + this.tShift[e] >= this.eMarks[e];
138
+ };
139
+ _.prototype.skipEmptyLines = function(e) {
140
+ for (let s = this.lineMax; e < s && !(this.bMarks[e] + this.tShift[e] < this.eMarks[e]); e++)
141
+ ;
142
+ return e;
143
+ };
144
+ _.prototype.skipSpaces = function(e) {
145
+ for (let s = this.src.length; e < s; e++) {
146
+ const r = this.src.charCodeAt(e);
147
+ if (!O(r))
148
+ break;
149
+ }
150
+ return e;
151
+ };
152
+ _.prototype.skipSpacesBack = function(e, s) {
153
+ if (e <= s)
154
+ return e;
155
+ for (; e > s; )
156
+ if (!O(this.src.charCodeAt(--e)))
157
+ return e + 1;
158
+ return e;
159
+ };
160
+ _.prototype.skipChars = function(e, s) {
161
+ for (let r = this.src.length; e < r && this.src.charCodeAt(e) === s; e++)
162
+ ;
163
+ return e;
164
+ };
165
+ _.prototype.skipCharsBack = function(e, s, r) {
166
+ if (e <= r)
167
+ return e;
168
+ for (; e > r; )
169
+ if (s !== this.src.charCodeAt(--e))
170
+ return e + 1;
171
+ return e;
172
+ };
173
+ _.prototype.getLines = function(e, s, r, u) {
174
+ if (e >= s)
175
+ return "";
176
+ const i = new Array(s - e);
177
+ for (let o = 0, n = e; n < s; n++, o++) {
178
+ let a = 0;
179
+ const c = this.bMarks[n];
180
+ let h = c, D;
181
+ for (n + 1 < s || u ? D = this.eMarks[n] + 1 : D = this.eMarks[n]; h < D && a < r; ) {
182
+ const g = this.src.charCodeAt(h);
183
+ if (O(g))
184
+ g === 9 ? a += 4 - (a + this.bsCount[n]) % 4 : a++;
185
+ else if (h - c < this.tShift[n])
186
+ a++;
187
+ else
188
+ break;
189
+ h++;
190
+ }
191
+ a > r ? i[o] = new Array(a - r + 1).join(" ") + this.src.slice(h, D) : i[o] = this.src.slice(h, D);
192
+ }
193
+ return i.join("");
194
+ };
195
+ _.prototype.Token = x;
196
+ const Ft = [
197
+ "address",
198
+ "article",
199
+ "aside",
200
+ "base",
201
+ "basefont",
202
+ "blockquote",
203
+ "body",
204
+ "caption",
205
+ "center",
206
+ "col",
207
+ "colgroup",
208
+ "dd",
209
+ "details",
210
+ "dialog",
211
+ "dir",
212
+ "div",
213
+ "dl",
214
+ "dt",
215
+ "fieldset",
216
+ "figcaption",
217
+ "figure",
218
+ "footer",
219
+ "form",
220
+ "frame",
221
+ "frameset",
222
+ "h1",
223
+ "h2",
224
+ "h3",
225
+ "h4",
226
+ "h5",
227
+ "h6",
228
+ "head",
229
+ "header",
230
+ "hr",
231
+ "html",
232
+ "iframe",
233
+ "legend",
234
+ "li",
235
+ "link",
236
+ "main",
237
+ "menu",
238
+ "menuitem",
239
+ "nav",
240
+ "noframes",
241
+ "ol",
242
+ "optgroup",
243
+ "option",
244
+ "p",
245
+ "param",
246
+ "search",
247
+ "section",
248
+ "summary",
249
+ "table",
250
+ "tbody",
251
+ "td",
252
+ "tfoot",
253
+ "th",
254
+ "thead",
255
+ "title",
256
+ "tr",
257
+ "track",
258
+ "ul"
259
+ ], Et = "[a-zA-Z_:][a-zA-Z0-9:._-]*", pt = "[^\"'=<>`\\x00-\\x20]+", Ct = "'[^']*'", At = '"[^"]*"', gt = "(?:" + pt + "|" + Ct + "|" + At + ")", yt = "(?:\\s+" + Et + "(?:\\s*=\\s*" + gt + ")?)", bt = "<[A-Za-z][A-Za-z0-9\\-]*" + yt + "*\\s*\\/?>", kt = "<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>", mt = new RegExp("^(?:" + bt + "|" + kt + ")");
260
+ new RegExp("^</?(" + Ft.join("|") + ")(?=(\\s|/?>|$))", "i"), new RegExp(mt.source + "\\s*$");
261
+ function I(t, e, s, r) {
262
+ this.src = t, this.env = s, this.md = e, this.tokens = r, this.tokens_meta = Array(r.length), this.pos = 0, this.posMax = this.src.length, this.level = 0, this.pending = "", this.pendingLevel = 0, this.cache = {}, this.delimiters = [], this._prev_delimiters = [], this.backticks = {}, this.backticksScanned = !1, this.linkLevel = 0;
263
+ }
264
+ I.prototype.pushPending = function() {
265
+ const t = new x("text", "", 0);
266
+ return t.content = this.pending, t.level = this.pendingLevel, this.tokens.push(t), this.pending = "", t;
267
+ };
268
+ I.prototype.push = function(t, e, s) {
269
+ this.pending && this.pushPending();
270
+ const r = new x(t, e, s);
271
+ let u = null;
272
+ return s < 0 && (this.level--, this.delimiters = this._prev_delimiters.pop()), r.level = this.level, s > 0 && (this.level++, this._prev_delimiters.push(this.delimiters), this.delimiters = [], u = { delimiters: this.delimiters }), this.pendingLevel = this.level, this.tokens.push(r), this.tokens_meta.push(u), r;
273
+ };
274
+ I.prototype.scanDelims = function(t, e) {
275
+ const s = this.posMax, r = this.src.charCodeAt(t), u = t > 0 ? this.src.charCodeAt(t - 1) : 32;
276
+ let i = t;
277
+ for (; i < s && this.src.charCodeAt(i) === r; )
278
+ i++;
279
+ const o = i - t, n = i < s ? this.src.charCodeAt(i) : 32, a = J(u) || q(String.fromCharCode(u)), c = J(n) || q(String.fromCharCode(n)), h = G(u), D = G(n), g = !D && (!c || h || a), k = !h && (!a || D || c);
280
+ return { can_open: g && (e || !k || a), can_close: k && (e || !g || c), length: o };
281
+ };
282
+ I.prototype.Token = x;
283
+ const Q = [];
284
+ for (let t = 0; t < 256; t++)
285
+ Q.push(0);
286
+ "\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function(t) {
287
+ Q[t.charCodeAt(0)] = 1;
288
+ });
289
+ let b = /* @__PURE__ */ function(t) {
290
+ return t.DOCUMENT = "doc", t.HEADING = "heading", t.PARAGRAPH = "paragraph", t.QUOTE = "blockquote", t.OL_LIST = "ordered_list", t.UL_LIST = "bullet_list", t.LIST_ITEM = "list_item", t.CODE_BLOCK = "code_block", t.HR = "horizontal_rule", t.BR = "hard_break", t.IMAGE = "image", t.EMOJI = "emoji", t.COMPONENT = "blok", t.TABLE = "table", t.TABLE_ROW = "tableRow", t.TABLE_CELL = "tableCell", t.TABLE_HEADER = "tableHeader", t;
291
+ }({}), v = /* @__PURE__ */ function(t) {
292
+ return t.BOLD = "bold", t.STRONG = "strong", t.STRIKE = "strike", t.UNDERLINE = "underline", t.ITALIC = "italic", t.CODE = "code", t.LINK = "link", t.ANCHOR = "anchor", t.STYLED = "styled", t.SUPERSCRIPT = "superscript", t.SUBSCRIPT = "subscript", t.TEXT_STYLE = "textStyle", t.HIGHLIGHT = "highlight", t;
293
+ }({}), vt = /* @__PURE__ */ function(t) {
294
+ return t.TEXT = "text", t;
295
+ }({}), L = /* @__PURE__ */ function(t) {
296
+ return t.URL = "url", t.STORY = "story", t.ASSET = "asset", t.EMAIL = "email", t;
297
+ }({});
298
+ function xt(t, e) {
299
+ if (!e) return {
300
+ src: t,
301
+ attrs: {}
302
+ };
303
+ let s = 0, r = 0;
304
+ const u = {}, i = [];
305
+ function o(a, c, h, D, g) {
306
+ typeof a != "number" || a <= c || a >= h ? console.warn(`[StoryblokRichText] - ${D.charAt(0).toUpperCase() + D.slice(1)} value must be a number between ${c} and ${h} (inclusive)`) : g.push(`${D}(${a})`);
14
307
  }
15
308
  if (typeof e == "object") {
16
- if (typeof e.width == "number" && e.width > 0 ? (s.width = e.width, t = e.width) : console.warn("[StoryblokRichText] - Width value must be a number greater than 0"), e.height && typeof e.height == "number" && e.height > 0 ? (s.height = e.height, o = e.height) : console.warn("[StoryblokRichText] - Height value must be a number greater than 0"), e.loading && ["lazy", "eager"].includes(e.loading) && (s.loading = e.loading), e.class && (s.class = e.class), e.filters) {
17
- const { filters: a } = e || {}, { blur: h, brightness: d, fill: y, format: T, grayscale: _, quality: A, rotate: I } = a || {};
18
- h && l(h, 0, 100, "blur", n), A && l(A, 0, 100, "quality", n), d && l(d, 0, 100, "brightness", n), y && n.push(`fill(${y})`), _ && n.push("grayscale()"), I && [0, 90, 180, 270].includes(e.filters.rotate || 0) && n.push(`rotate(${I})`), T && ["webp", "png", "jpeg"].includes(T) && n.push(`format(${T})`);
309
+ if (typeof e.width == "number" && e.width > 0 ? (u.width = e.width, s = e.width) : console.warn("[StoryblokRichText] - Width value must be a number greater than 0"), e.height && typeof e.height == "number" && e.height > 0 ? (u.height = e.height, r = e.height) : console.warn("[StoryblokRichText] - Height value must be a number greater than 0"), e.loading && ["lazy", "eager"].includes(e.loading) && (u.loading = e.loading), e.class && (u.class = e.class), e.filters) {
310
+ const { filters: a } = e || {}, { blur: c, brightness: h, fill: D, format: g, grayscale: k, quality: w, rotate: R } = a || {};
311
+ c && o(c, 0, 100, "blur", i), w && o(w, 0, 100, "quality", i), h && o(h, 0, 100, "brightness", i), D && i.push(`fill(${D})`), k && i.push("grayscale()"), R && [
312
+ 0,
313
+ 90,
314
+ 180,
315
+ 270
316
+ ].includes(e.filters.rotate || 0) && i.push(`rotate(${R})`), g && [
317
+ "webp",
318
+ "png",
319
+ "jpeg"
320
+ ].includes(g) && i.push(`format(${g})`);
19
321
  }
20
- e.srcset && (s.srcset = e.srcset.map((a) => {
21
- if (typeof a == "number")
22
- return `${r}/m/${a}x0/${n.length > 0 ? `filters:${n.join(":")}` : ""} ${a}w`;
322
+ e.srcset && (u.srcset = e.srcset.map((a) => {
323
+ if (typeof a == "number") return `${t}/m/${a}x0/${i.length > 0 ? `filters:${i.join(":")}` : ""} ${a}w`;
23
324
  if (Array.isArray(a) && a.length === 2) {
24
- const [h, d] = a;
25
- return `${r}/m/${h}x${d}/${n.length > 0 ? `filters:${n.join(":")}` : ""} ${h}w`;
325
+ const [c, h] = a;
326
+ return `${t}/m/${c}x${h}/${i.length > 0 ? `filters:${i.join(":")}` : ""} ${c}w`;
26
327
  } else {
27
328
  console.warn("[StoryblokRichText] - srcset entry must be a number or a tuple of two numbers");
28
329
  return;
29
330
  }
30
- }).join(", ")), e.sizes && (s.sizes = e.sizes.join(", "));
331
+ }).join(", ")), e.sizes && (u.sizes = e.sizes.join(", "));
31
332
  }
32
- let c = `${r}/m/`;
33
- return t > 0 && o > 0 && (c = `${c}${t}x${o}/`), n.length > 0 && (c = `${c}filters:${n.join(":")}`), {
34
- src: c,
35
- attrs: s
333
+ let n = `${t}/m/`;
334
+ return s > 0 && r > 0 && (n = `${n}${s}x${r}/`), i.length > 0 && (n = `${n}filters:${i.join(":")}`), {
335
+ src: n,
336
+ attrs: u
36
337
  };
37
338
  }
38
- var v = /* @__PURE__ */ ((r) => (r.DOCUMENT = "doc", r.HEADING = "heading", r.PARAGRAPH = "paragraph", r.QUOTE = "blockquote", r.OL_LIST = "ordered_list", r.UL_LIST = "bullet_list", r.LIST_ITEM = "list_item", r.CODE_BLOCK = "code_block", r.HR = "horizontal_rule", r.BR = "hard_break", r.IMAGE = "image", r.EMOJI = "emoji", r.COMPONENT = "blok", r.TABLE = "table", r.TABLE_ROW = "tableRow", r.TABLE_CELL = "tableCell", r.TABLE_HEADER = "tableHeader", r))(v || {}), R = /* @__PURE__ */ ((r) => (r.BOLD = "bold", r.STRONG = "strong", r.STRIKE = "strike", r.UNDERLINE = "underline", r.ITALIC = "italic", r.CODE = "code", r.LINK = "link", r.ANCHOR = "anchor", r.STYLED = "styled", r.SUPERSCRIPT = "superscript", r.SUBSCRIPT = "subscript", r.TEXT_STYLE = "textStyle", r.HIGHLIGHT = "highlight", r))(R || {}), F = /* @__PURE__ */ ((r) => (r.TEXT = "text", r))(F || {}), S = /* @__PURE__ */ ((r) => (r.URL = "url", r.STORY = "story", r.ASSET = "asset", r.EMAIL = "email", r))(S || {});
39
- const oe = [
339
+ const _t = [
40
340
  "area",
41
341
  "base",
42
342
  "br",
@@ -51,291 +351,257 @@ const oe = [
51
351
  "source",
52
352
  "track",
53
353
  "wbr"
54
- ], ne = (r = {}) => Object.keys(r).map((e) => `${e}="${r[e]}"`).join(" "), ie = (r = {}) => Object.keys(r).map((e) => `${e}: ${r[e]}`).join("; ");
55
- function ae(r) {
56
- return r.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
354
+ ], Bt = (t = {}) => Object.keys(t).map((e) => `${e}="${t[e]}"`).join(" "), wt = (t = {}) => Object.keys(t).map((e) => `${e}: ${t[e]}`).join("; ");
355
+ function Rt(t) {
356
+ return t.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
57
357
  }
58
- const O = (r) => Object.fromEntries(Object.entries(r).filter(([e, t]) => t !== void 0));
59
- function D(r, e = {}, t) {
60
- const o = ne(e), s = o ? `${r} ${o}` : r, n = Array.isArray(t) ? t.join("") : t || "";
61
- if (r) {
62
- if (oe.includes(r))
63
- return `<${s}>`;
64
- } else return n;
65
- return `<${s}>${n}</${r}>`;
358
+ const T = (t) => Object.fromEntries(Object.entries(t).filter(([e, s]) => s !== void 0));
359
+ function V(t, e = {}, s) {
360
+ const r = Bt(e), u = r ? `${t} ${r}` : t, i = Array.isArray(s) ? s.join("") : s || "";
361
+ if (t) {
362
+ if (_t.includes(t)) return `<${u}>`;
363
+ } else return i;
364
+ return `<${u}>${i}</${t}>`;
66
365
  }
67
- function le(r = {}) {
68
- const e = /* @__PURE__ */ new Map(), {
69
- renderFn: t = D,
70
- textFn: o = ae,
71
- resolvers: s = {},
72
- optimizeImages: n = !1,
73
- keyedResolvers: l = !1
74
- } = r, c = t !== D, a = (i) => (u, p) => {
75
- const f = u.attrs || {};
76
- return p.render(i, f, u.children || null);
77
- }, h = (i, u) => {
78
- const { src: p, alt: f, title: m, srcset: w, sizes: b } = i.attrs || {};
79
- let k = p, $ = {};
80
- if (n) {
81
- const { src: te, attrs: se } = re(p, n);
82
- k = te, $ = se;
366
+ function St(t = {}) {
367
+ const e = /* @__PURE__ */ new Map(), { renderFn: s = V, textFn: r = Rt, resolvers: u = {}, optimizeImages: i = !1, keyedResolvers: o = !1 } = t, n = s !== V, a = (l) => (f, d) => {
368
+ const F = f.attrs || {};
369
+ return d.render(l, F, f.children || null);
370
+ }, c = (l, f) => {
371
+ const { src: d, alt: F, title: p, srcset: C, sizes: A } = l.attrs || {};
372
+ let y = d, m = {};
373
+ if (i) {
374
+ const { src: at, attrs: ct } = xt(d, i);
375
+ y = at, m = ct;
83
376
  }
84
- const ee = {
85
- src: k,
86
- alt: f,
87
- title: m,
88
- srcset: w,
89
- sizes: b,
90
- ...$
377
+ const ot = {
378
+ src: y,
379
+ alt: F,
380
+ title: p,
381
+ srcset: C,
382
+ sizes: A,
383
+ ...m
91
384
  };
92
- return u.render("img", O(ee));
93
- }, d = (i, u) => {
94
- const { level: p, ...f } = i.attrs || {};
95
- return u.render(`h${p}`, f, i.children);
96
- }, y = (i, u) => {
97
- var p, f, m, w;
98
- const b = u.render("img", {
99
- src: (p = i.attrs) == null ? void 0 : p.fallbackImage,
100
- alt: (f = i.attrs) == null ? void 0 : f.alt,
385
+ return f.render("img", T(ot));
386
+ }, h = (l, f) => {
387
+ const { level: d, ...F } = l.attrs || {};
388
+ return f.render(`h${d}`, F, l.children);
389
+ }, D = (l, f) => {
390
+ var F, p, C, A;
391
+ const d = f.render("img", {
392
+ src: (F = l.attrs) == null ? void 0 : F.fallbackImage,
393
+ alt: (p = l.attrs) == null ? void 0 : p.alt,
101
394
  style: "width: 1.25em; height: 1.25em; vertical-align: text-top",
102
395
  draggable: "false",
103
396
  loading: "lazy"
104
397
  });
105
- return u.render("span", {
398
+ return f.render("span", {
106
399
  "data-type": "emoji",
107
- "data-name": (m = i.attrs) == null ? void 0 : m.name,
108
- "data-emoji": (w = i.attrs) == null ? void 0 : w.emoji
109
- }, b);
110
- }, T = (i, u) => u.render(
111
- "pre",
112
- i.attrs || {},
113
- u.render("code", {}, i.children || "")
114
- ), _ = (i, u = !1) => ({ text: p, attrs: f }, m) => {
115
- const { class: w, id: b, ...k } = f || {}, $ = u ? {
116
- class: w,
117
- id: b,
118
- style: ie(k) || void 0
119
- } : f || {};
120
- return m.render(i, O($), p);
121
- }, A = (i) => C(i), I = (i) => {
122
- const { marks: u, ...p } = i;
123
- if ("text" in i) {
124
- if (u)
125
- return u.reduce(
126
- (m, w) => A({ ...w, text: m }),
127
- A({ ...p, children: p.children })
128
- );
129
- const f = i.attrs || {};
130
- if (l) {
131
- const m = e.get("txt") || 0;
132
- e.set("txt", m + 1), f.key = `txt-${m}`;
400
+ "data-name": (C = l.attrs) == null ? void 0 : C.name,
401
+ "data-emoji": (A = l.attrs) == null ? void 0 : A.emoji
402
+ }, d);
403
+ }, g = (l, f) => f.render("pre", l.attrs || {}, f.render("code", {}, l.children || "")), k = (l, f = !1) => ({ text: d, attrs: F }, p) => {
404
+ const { class: C, id: A, ...y } = F || {}, m = f ? {
405
+ class: C,
406
+ id: A,
407
+ style: wt(y) || void 0
408
+ } : F || {};
409
+ return p.render(l, T(m), d);
410
+ }, w = (l) => N(l), R = (l) => {
411
+ const { marks: f, ...d } = l;
412
+ if ("text" in l) {
413
+ if (f) return f.reduce((p, C) => w({
414
+ ...C,
415
+ text: p
416
+ }), w({
417
+ ...d,
418
+ children: d.children
419
+ }));
420
+ const F = l.attrs || {};
421
+ if (o) {
422
+ const p = e.get("txt") || 0;
423
+ e.set("txt", p + 1), F.key = `txt-${p}`;
133
424
  }
134
- return o(p.text, f);
425
+ return r(d.text, F);
135
426
  }
136
427
  return "";
137
- }, H = (i, u) => {
138
- const { linktype: p, href: f, anchor: m, ...w } = i.attrs || {};
139
- let b = "";
140
- switch (p) {
141
- case S.ASSET:
142
- case S.URL:
143
- b = f;
428
+ }, U = (l, f) => {
429
+ const { linktype: d, href: F, anchor: p, ...C } = l.attrs || {};
430
+ let A = "";
431
+ switch (d) {
432
+ case L.ASSET:
433
+ case L.URL:
434
+ A = F;
144
435
  break;
145
- case S.EMAIL:
146
- b = `mailto:${f}`;
436
+ case L.EMAIL:
437
+ A = `mailto:${F}`;
147
438
  break;
148
- case S.STORY:
149
- b = f, m && (b = `${b}#${m}`);
439
+ case L.STORY:
440
+ A = F, p && (A = `${A}#${p}`);
150
441
  break;
151
442
  default:
152
- b = f;
443
+ A = F;
153
444
  break;
154
445
  }
155
- const k = { ...w };
156
- return b && (k.href = b), u.render("a", k, i.text);
157
- }, Y = (i, u) => {
158
- var p, f;
159
- return console.warn("[StoryblokRichtText] - BLOK resolver is not available for vanilla usage"), u.render("span", {
160
- blok: (p = i == null ? void 0 : i.attrs) == null ? void 0 : p.body[0],
161
- id: (f = i.attrs) == null ? void 0 : f.id,
446
+ const y = { ...C };
447
+ return A && (y.href = A), f.render("a", y, l.text);
448
+ }, et = (l, f) => {
449
+ var d, F;
450
+ return console.warn("[StoryblokRichtText] - BLOK resolver is not available for vanilla usage"), f.render("span", {
451
+ blok: (d = l == null ? void 0 : l.attrs) == null ? void 0 : d.body[0],
452
+ id: (F = l.attrs) == null ? void 0 : F.id,
162
453
  style: "display: none"
163
454
  });
164
- }, K = (i, u) => {
165
- const p = {}, f = u.render("tbody", {}, i.children);
166
- return u.render("table", p, f);
167
- }, W = (i, u) => {
168
- const p = {};
169
- return u.render("tr", p, i.children);
170
- }, X = (i, u) => {
171
- const { colspan: p, rowspan: f, colwidth: m, backgroundColor: w, ...b } = i.attrs || {}, k = {
172
- ...b
173
- };
174
- p > 1 && (k.colspan = p), f > 1 && (k.rowspan = f);
175
- const $ = [];
176
- return m && $.push(`width: ${m}px;`), w && $.push(`background-color: ${w};`), $.length > 0 && (k.style = $.join(" ")), u.render("td", O(k), i.children);
177
- }, Q = (i, u) => {
178
- const { colspan: p, rowspan: f, colwidth: m, backgroundColor: w, ...b } = i.attrs || {}, k = {
179
- ...b
180
- };
181
- p > 1 && (k.colspan = p), f > 1 && (k.rowspan = f);
182
- const $ = [];
183
- return m && $.push(`width: ${m}px;`), w && $.push(`background-color: ${w};`), $.length > 0 && (k.style = $.join(" ")), u.render("th", O(k), i.children);
184
- }, B = /* @__PURE__ */ new Map([
185
- [v.DOCUMENT, a("")],
186
- [v.HEADING, d],
187
- [v.PARAGRAPH, a("p")],
188
- [v.UL_LIST, a("ul")],
189
- [v.OL_LIST, a("ol")],
190
- [v.LIST_ITEM, a("li")],
191
- [v.IMAGE, h],
192
- [v.EMOJI, y],
193
- [v.CODE_BLOCK, T],
194
- [v.HR, a("hr")],
195
- [v.BR, a("br")],
196
- [v.QUOTE, a("blockquote")],
197
- [v.COMPONENT, Y],
198
- [F.TEXT, I],
199
- [R.LINK, H],
200
- [R.ANCHOR, H],
201
- [R.STYLED, _("span", !0)],
202
- [R.BOLD, _("strong")],
203
- [R.TEXT_STYLE, _("span", !0)],
204
- [R.ITALIC, _("em")],
205
- [R.UNDERLINE, _("u")],
206
- [R.STRIKE, _("s")],
207
- [R.CODE, _("code")],
208
- [R.SUPERSCRIPT, _("sup")],
209
- [R.SUBSCRIPT, _("sub")],
210
- [R.HIGHLIGHT, _("mark")],
211
- [v.TABLE, K],
212
- [v.TABLE_ROW, W],
213
- [v.TABLE_CELL, X],
214
- [v.TABLE_HEADER, Q]
215
- ]), U = new Map([
216
- ...B,
217
- ...Object.entries(s).map(([i, u]) => [i, u])
218
- ]), Z = () => ({
219
- render: (i, u = {}, p) => {
220
- if (l && i) {
221
- const f = e.get(i) || 0;
222
- e.set(i, f + 1), u.key = `${i}-${f}`;
455
+ }, st = (l, f) => {
456
+ const d = {}, F = f.render("tbody", {}, l.children);
457
+ return f.render("table", d, F);
458
+ }, rt = (l, f) => {
459
+ const d = {};
460
+ return f.render("tr", d, l.children);
461
+ }, ut = (l, f) => {
462
+ const { colspan: d, rowspan: F, colwidth: p, backgroundColor: C, ...A } = l.attrs || {}, y = { ...A };
463
+ d > 1 && (y.colspan = d), F > 1 && (y.rowspan = F);
464
+ const m = [];
465
+ return p && m.push(`width: ${p}px;`), C && m.push(`background-color: ${C};`), m.length > 0 && (y.style = m.join(" ")), f.render("td", T(y), l.children);
466
+ }, it = (l, f) => {
467
+ const { colspan: d, rowspan: F, colwidth: p, backgroundColor: C, ...A } = l.attrs || {}, y = { ...A };
468
+ d > 1 && (y.colspan = d), F > 1 && (y.rowspan = F);
469
+ const m = [];
470
+ return p && m.push(`width: ${p}px;`), C && m.push(`background-color: ${C};`), m.length > 0 && (y.style = m.join(" ")), f.render("th", T(y), l.children);
471
+ }, M = /* @__PURE__ */ new Map([
472
+ [b.DOCUMENT, a("")],
473
+ [b.HEADING, h],
474
+ [b.PARAGRAPH, a("p")],
475
+ [b.UL_LIST, a("ul")],
476
+ [b.OL_LIST, a("ol")],
477
+ [b.LIST_ITEM, a("li")],
478
+ [b.IMAGE, c],
479
+ [b.EMOJI, D],
480
+ [b.CODE_BLOCK, g],
481
+ [b.HR, a("hr")],
482
+ [b.BR, a("br")],
483
+ [b.QUOTE, a("blockquote")],
484
+ [b.COMPONENT, et],
485
+ [vt.TEXT, R],
486
+ [v.LINK, U],
487
+ [v.ANCHOR, U],
488
+ [v.STYLED, k("span", !0)],
489
+ [v.BOLD, k("strong")],
490
+ [v.TEXT_STYLE, k("span", !0)],
491
+ [v.ITALIC, k("em")],
492
+ [v.UNDERLINE, k("u")],
493
+ [v.STRIKE, k("s")],
494
+ [v.CODE, k("code")],
495
+ [v.SUPERSCRIPT, k("sup")],
496
+ [v.SUBSCRIPT, k("sub")],
497
+ [v.HIGHLIGHT, k("mark")],
498
+ [b.TABLE, st],
499
+ [b.TABLE_ROW, rt],
500
+ [b.TABLE_CELL, ut],
501
+ [b.TABLE_HEADER, it]
502
+ ]), z = new Map([...M, ...Object.entries(u).map(([l, f]) => [l, f])]), nt = () => ({
503
+ render: (d, F = {}, p) => {
504
+ if (o && d) {
505
+ const C = e.get(d) || 0;
506
+ e.set(d, C + 1), F.key = `${d}-${C}`;
223
507
  }
224
- return t(i, u, p);
508
+ return s(d, F, p);
225
509
  },
226
- originalResolvers: B,
227
- mergedResolvers: U
510
+ originalResolvers: M,
511
+ mergedResolvers: z
228
512
  });
229
- function L(i) {
230
- const u = U.get(i.type);
231
- if (!u)
232
- return console.error("<Storyblok>", `No resolver found for node type ${i.type}`), "";
233
- const p = Z();
234
- if (i.type === "text")
235
- return u(i, p);
236
- const f = i.content ? i.content.map(C) : void 0;
237
- return u({
238
- ...i,
239
- children: f
240
- }, p);
241
- }
242
- function C(i) {
243
- return i.type === "doc" ? c ? i.content.map(L) : i.content.map(L).join("") : Array.isArray(i) ? i.map(L) : L(i);
244
- }
245
- return {
246
- render: C
247
- };
513
+ function S(l) {
514
+ const f = z.get(l.type);
515
+ if (!f)
516
+ return console.error("<Storyblok>", `No resolver found for node type ${l.type}`), "";
517
+ const d = nt();
518
+ if (l.type === "text") return f(l, d);
519
+ const F = l.content ? l.content.map(N) : void 0;
520
+ return f({
521
+ ...l,
522
+ children: F
523
+ }, d);
524
+ }
525
+ function N(l) {
526
+ return l.type === "doc" ? n ? l.content.map(S) : l.content.map(S).join("") : Array.isArray(l) ? l.map(S) : S(l);
527
+ }
528
+ return { render: N };
248
529
  }
249
- let M = !1;
250
- const z = [], J = (r) => new Promise((e, t) => {
530
+ let K = !1;
531
+ const Y = [], tt = (t) => new Promise((e, s) => {
251
532
  if (typeof window > "u") {
252
- t(new Error("Cannot load Storyblok bridge: window is undefined (server-side environment)"));
533
+ s(new Error("Cannot load Storyblok bridge: window is undefined (server-side environment)"));
253
534
  return;
254
535
  }
255
- if (window.storyblokRegisterEvent = (s) => {
536
+ if (window.storyblokRegisterEvent = (u) => {
256
537
  if (!window.location.search.includes("_storyblok")) {
257
538
  console.warn("You are not in Draft Mode or in the Visual Editor.");
258
539
  return;
259
540
  }
260
- M ? s() : z.push(s);
541
+ K ? u() : Y.push(u);
261
542
  }, document.getElementById("storyblok-javascript-bridge")) {
262
543
  e(void 0);
263
544
  return;
264
545
  }
265
- const o = document.createElement("script");
266
- o.async = !0, o.src = r, o.id = "storyblok-javascript-bridge", o.onerror = (s) => t(s), o.onload = (s) => {
267
- z.forEach((n) => n()), M = !0, e(s);
268
- }, document.getElementsByTagName("head")[0].appendChild(o);
546
+ const r = document.createElement("script");
547
+ r.async = !0, r.src = t, r.id = "storyblok-javascript-bridge", r.onerror = (u) => s(u), r.onload = (u) => {
548
+ Y.forEach((i) => i()), K = !0, e(u);
549
+ }, document.getElementsByTagName("head")[0].appendChild(r);
269
550
  });
270
- var ce = Object.defineProperty, he = (r, e, t) => e in r ? ce(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, g = (r, e, t) => he(r, typeof e != "symbol" ? e + "" : e, t);
271
- class ue extends Error {
272
- constructor(e) {
273
- super(e), this.name = "AbortError";
551
+ var Lt = class extends Error {
552
+ constructor(t) {
553
+ super(t), this.name = "AbortError";
274
554
  }
275
- }
276
- function de(r, e, t) {
277
- if (!Number.isFinite(e))
278
- throw new TypeError("Expected `limit` to be a finite number");
279
- if (!Number.isFinite(t))
280
- throw new TypeError("Expected `interval` to be a finite number");
281
- const o = [];
282
- let s = [], n = 0, l = !1;
283
- const c = async () => {
284
- n++;
285
- const h = o.shift();
286
- if (h)
287
- try {
288
- const y = await r(...h.args);
289
- h.resolve(y);
290
- } catch (y) {
291
- h.reject(y);
292
- }
293
- const d = setTimeout(() => {
294
- n--, o.length > 0 && c(), s = s.filter((y) => y !== d);
295
- }, t);
296
- s.includes(d) || s.push(d);
297
- }, a = (...h) => l ? Promise.reject(
298
- new Error(
299
- "Throttled function is already aborted and not accepting new promises"
300
- )
301
- ) : new Promise((d, y) => {
302
- o.push({
303
- resolve: d,
304
- reject: y,
305
- args: h
306
- }), n < e && c();
555
+ };
556
+ function Tt(t, e, s) {
557
+ if (!Number.isFinite(e)) throw new TypeError("Expected `limit` to be a finite number");
558
+ if (!Number.isFinite(s)) throw new TypeError("Expected `interval` to be a finite number");
559
+ const r = [];
560
+ let u = [], i = 0, o = !1;
561
+ const n = async () => {
562
+ i++;
563
+ const c = r.shift();
564
+ if (c) try {
565
+ const D = await t(...c.args);
566
+ c.resolve(D);
567
+ } catch (D) {
568
+ c.reject(D);
569
+ }
570
+ const h = setTimeout(() => {
571
+ i--, r.length > 0 && n(), u = u.filter((D) => D !== h);
572
+ }, s);
573
+ u.includes(h) || u.push(h);
574
+ }, a = (...c) => o ? Promise.reject(/* @__PURE__ */ new Error("Throttled function is already aborted and not accepting new promises")) : new Promise((h, D) => {
575
+ r.push({
576
+ resolve: h,
577
+ reject: D,
578
+ args: c
579
+ }), i < e && n();
307
580
  });
308
581
  return a.abort = () => {
309
- l = !0, s.forEach(clearTimeout), s = [], o.forEach(
310
- (h) => h.reject(() => new ue("Throttle function aborted"))
311
- ), o.length = 0;
582
+ o = !0, u.forEach(clearTimeout), u = [], r.forEach((c) => c.reject(() => new Lt("Throttle function aborted"))), r.length = 0;
312
583
  }, a;
313
584
  }
314
- const G = (r = "") => r.includes("/cdn/"), pe = (r, e = 25, t = 1) => ({
315
- ...r,
585
+ var Pt = Tt;
586
+ const W = (t = "") => t.includes("/cdn/"), Ot = (t, e = 25, s = 1) => ({
587
+ ...t,
316
588
  per_page: e,
317
- page: t
318
- }), fe = (r) => new Promise((e) => setTimeout(e, r)), ye = (r = 0, e) => Array.from({ length: r }, e), ge = (r = 0, e = r) => {
319
- const t = Math.abs(e - r) || 0, o = r < e ? 1 : -1;
320
- return ye(t, (s, n) => n * o + r);
321
- }, me = async (r, e) => Promise.all(r.map(e)), be = (r = [], e) => r.map(e).reduce((t, o) => [...t, ...o], []), N = (r, e, t) => {
322
- const o = [];
323
- for (const s in r) {
324
- if (!Object.prototype.hasOwnProperty.call(r, s))
325
- continue;
326
- const n = r[s];
327
- if (n == null)
328
- continue;
329
- const l = t ? "" : encodeURIComponent(s);
330
- let c;
331
- typeof n == "object" ? c = N(
332
- n,
333
- e ? e + encodeURIComponent(`[${l}]`) : l,
334
- Array.isArray(n)
335
- ) : c = `${e ? e + encodeURIComponent(`[${l}]`) : l}=${encodeURIComponent(n)}`, o.push(c);
336
- }
337
- return o.join("&");
338
- }, V = (r) => {
589
+ page: s
590
+ }), It = (t) => new Promise((e) => setTimeout(e, t)), Nt = (t = 0, e) => Array.from({ length: t }, e), $t = (t = 0, e = t) => {
591
+ const s = Math.abs(e - t) || 0, r = t < e ? 1 : -1;
592
+ return Nt(s, (u, i) => i * r + t);
593
+ }, jt = async (t, e) => Promise.all(t.map(e)), Ht = (t = [], e) => t.map(e).reduce((s, r) => [...s, ...r], []), H = (t, e, s) => {
594
+ const r = [];
595
+ for (const u in t) {
596
+ if (!Object.prototype.hasOwnProperty.call(t, u)) continue;
597
+ const i = t[u];
598
+ if (i == null) continue;
599
+ const o = s ? "" : encodeURIComponent(u);
600
+ let n;
601
+ typeof i == "object" ? n = H(i, e ? e + encodeURIComponent(`[${o}]`) : o, Array.isArray(i)) : n = `${e ? e + encodeURIComponent(`[${o}]`) : o}=${encodeURIComponent(i)}`, r.push(n);
602
+ }
603
+ return r.join("&");
604
+ }, Z = (t) => {
339
605
  const e = {
340
606
  eu: "api.storyblok.com",
341
607
  us: "api-us.storyblok.com",
@@ -343,206 +609,202 @@ const G = (r = "") => r.includes("/cdn/"), pe = (r, e = 25, t = 1) => ({
343
609
  ap: "api-ap.storyblok.com",
344
610
  ca: "api-ca.storyblok.com"
345
611
  };
346
- return e[r] ?? e.eu;
612
+ return e[t] ?? e.eu;
347
613
  };
348
- class ve {
349
- constructor(e) {
350
- g(this, "baseURL"), g(this, "timeout"), g(this, "headers"), g(this, "responseInterceptor"), g(this, "fetch"), g(this, "ejectInterceptor"), g(this, "url"), g(this, "parameters"), g(this, "fetchOptions"), this.baseURL = e.baseURL, this.headers = e.headers || new Headers(), this.timeout = e != null && e.timeout ? e.timeout * 1e3 : 0, this.responseInterceptor = e.responseInterceptor, this.fetch = (...t) => e.fetch ? e.fetch(...t) : fetch(...t), this.ejectInterceptor = !1, this.url = "", this.parameters = {}, this.fetchOptions = {};
614
+ var Ut = class {
615
+ constructor(t) {
616
+ E(this, "baseURL");
617
+ E(this, "timeout");
618
+ E(this, "headers");
619
+ E(this, "responseInterceptor");
620
+ E(this, "fetch");
621
+ E(this, "ejectInterceptor");
622
+ E(this, "url");
623
+ E(this, "parameters");
624
+ E(this, "fetchOptions");
625
+ this.baseURL = t.baseURL, this.headers = t.headers || new Headers(), this.timeout = t != null && t.timeout ? t.timeout * 1e3 : 0, this.responseInterceptor = t.responseInterceptor, this.fetch = (...e) => t.fetch ? t.fetch(...e) : fetch(...e), this.ejectInterceptor = !1, this.url = "", this.parameters = {}, this.fetchOptions = {};
351
626
  }
352
627
  /**
353
- *
354
- * @param url string
355
- * @param params ISbStoriesParams
356
- * @returns Promise<ISbResponse | Error>
357
- */
358
- get(e, t) {
359
- return this.url = e, this.parameters = t, this._methodHandler("get");
628
+ *
629
+ * @param url string
630
+ * @param params ISbStoriesParams
631
+ * @returns Promise<ISbResponse | Error>
632
+ */
633
+ get(t, e) {
634
+ return this.url = t, this.parameters = e, this._methodHandler("get");
360
635
  }
361
- post(e, t) {
362
- return this.url = e, this.parameters = t, this._methodHandler("post");
636
+ post(t, e) {
637
+ return this.url = t, this.parameters = e, this._methodHandler("post");
363
638
  }
364
- put(e, t) {
365
- return this.url = e, this.parameters = t, this._methodHandler("put");
639
+ put(t, e) {
640
+ return this.url = t, this.parameters = e, this._methodHandler("put");
366
641
  }
367
- delete(e, t) {
368
- return this.url = e, this.parameters = t ?? {}, this._methodHandler("delete");
642
+ delete(t, e) {
643
+ return this.url = t, this.parameters = e ?? {}, this._methodHandler("delete");
369
644
  }
370
- async _responseHandler(e) {
371
- const t = [], o = {
645
+ async _responseHandler(t) {
646
+ const e = [], s = {
372
647
  data: {},
373
648
  headers: {},
374
649
  status: 0,
375
650
  statusText: ""
376
651
  };
377
- e.status !== 204 && await e.json().then((s) => {
378
- o.data = s;
652
+ t.status !== 204 && await t.json().then((r) => {
653
+ s.data = r;
379
654
  });
380
- for (const s of e.headers.entries())
381
- t[s[0]] = s[1];
382
- return o.headers = { ...t }, o.status = e.status, o.statusText = e.statusText, o;
383
- }
384
- async _methodHandler(e) {
385
- let t = `${this.baseURL}${this.url}`, o = null;
386
- e === "get" ? t = `${this.baseURL}${this.url}?${N(this.parameters)}` : o = JSON.stringify(this.parameters);
387
- const s = new URL(t), n = new AbortController(), { signal: l } = n;
388
- let c;
389
- this.timeout && (c = setTimeout(() => n.abort(), this.timeout));
655
+ for (const r of t.headers.entries()) e[r[0]] = r[1];
656
+ return s.headers = { ...e }, s.status = t.status, s.statusText = t.statusText, s;
657
+ }
658
+ async _methodHandler(t) {
659
+ let e = `${this.baseURL}${this.url}`, s = null;
660
+ t === "get" ? e = `${this.baseURL}${this.url}?${H(this.parameters)}` : s = JSON.stringify(this.parameters);
661
+ const r = new URL(e), u = new AbortController(), { signal: i } = u;
662
+ let o;
663
+ this.timeout && (o = setTimeout(() => u.abort(), this.timeout));
390
664
  try {
391
- const a = await this.fetch(`${s}`, {
392
- method: e,
665
+ const n = await this.fetch(`${r}`, {
666
+ method: t,
393
667
  headers: this.headers,
394
- body: o,
395
- signal: l,
668
+ body: s,
669
+ signal: i,
396
670
  ...this.fetchOptions
397
671
  });
398
- this.timeout && clearTimeout(c);
399
- const h = await this._responseHandler(
400
- a
401
- );
402
- return this.responseInterceptor && !this.ejectInterceptor ? this._statusHandler(this.responseInterceptor(h)) : this._statusHandler(h);
403
- } catch (a) {
404
- return {
405
- message: a
406
- };
672
+ this.timeout && clearTimeout(o);
673
+ const a = await this._responseHandler(n);
674
+ return this.responseInterceptor && !this.ejectInterceptor ? this._statusHandler(this.responseInterceptor(a)) : this._statusHandler(a);
675
+ } catch (n) {
676
+ return { message: n };
407
677
  }
408
678
  }
409
- setFetchOptions(e = {}) {
410
- Object.keys(e).length > 0 && "method" in e && delete e.method, this.fetchOptions = { ...e };
679
+ setFetchOptions(t = {}) {
680
+ Object.keys(t).length > 0 && "method" in t && delete t.method, this.fetchOptions = { ...t };
411
681
  }
412
682
  eject() {
413
683
  this.ejectInterceptor = !0;
414
684
  }
415
685
  /**
416
- * Normalizes error messages from different response structures
417
- * @param data The response data that might contain error information
418
- * @returns A normalized error message string
419
- */
420
- _normalizeErrorMessage(e) {
421
- if (Array.isArray(e))
422
- return e[0] || "Unknown error";
423
- if (e && typeof e == "object") {
424
- if (e.error)
425
- return e.error;
426
- for (const t in e) {
427
- if (Array.isArray(e[t]))
428
- return `${t}: ${e[t][0]}`;
429
- if (typeof e[t] == "string")
430
- return `${t}: ${e[t]}`;
686
+ * Normalizes error messages from different response structures
687
+ * @param data The response data that might contain error information
688
+ * @returns A normalized error message string
689
+ */
690
+ _normalizeErrorMessage(t) {
691
+ if (Array.isArray(t)) return t[0] || "Unknown error";
692
+ if (t && typeof t == "object") {
693
+ if (t.error) return t.error;
694
+ for (const e in t) {
695
+ if (Array.isArray(t[e])) return `${e}: ${t[e][0]}`;
696
+ if (typeof t[e] == "string") return `${e}: ${t[e]}`;
431
697
  }
432
- if (e.slug)
433
- return e.slug;
698
+ if (t.slug) return t.slug;
434
699
  }
435
700
  return "Unknown error";
436
701
  }
437
- _statusHandler(e) {
438
- const t = /20[0-6]/g;
439
- return new Promise((o, s) => {
440
- if (t.test(`${e.status}`))
441
- return o(e);
442
- const n = {
443
- message: this._normalizeErrorMessage(e.data),
444
- status: e.status,
445
- response: e
702
+ _statusHandler(t) {
703
+ const e = /20[0-6]/g;
704
+ return new Promise((s, r) => {
705
+ if (e.test(`${t.status}`)) return s(t);
706
+ const u = {
707
+ message: this._normalizeErrorMessage(t.data),
708
+ status: t.status,
709
+ response: t
446
710
  };
447
- s(n);
711
+ r(u);
448
712
  });
449
713
  }
450
- }
451
- const q = "SB-Agent", P = {
714
+ }, Mt = Ut;
715
+ const X = "SB-Agent", $ = {
452
716
  defaultAgentName: "SB-JS-CLIENT",
453
717
  defaultAgentVersion: "SB-Agent-Version",
454
718
  packageVersion: "7.0.0"
455
- }, ke = {
719
+ }, zt = {
456
720
  PUBLISHED: "published"
457
721
  };
458
- let j = {};
459
- const E = {};
460
- class we {
722
+ let P = {};
723
+ const B = {};
724
+ var Gt = class {
461
725
  /**
462
- *
463
- * @param config ISbConfig interface
464
- * @param pEndpoint string, optional
465
- */
466
- constructor(e, t) {
467
- g(this, "client"), g(this, "maxRetries"), g(this, "retriesDelay"), g(this, "throttle"), g(this, "accessToken"), g(this, "cache"), g(this, "resolveCounter"), g(this, "relations"), g(this, "links"), g(this, "version"), g(this, "richTextResolver"), g(this, "resolveNestedRelations"), g(this, "stringifiedStoriesCache"), g(this, "inlineAssets");
468
- let o = e.endpoint || t;
469
- if (!o) {
470
- const l = e.https === !1 ? "http" : "https";
471
- e.oauthToken ? o = `${l}://${V(e.region)}/v1` : o = `${l}://${V(e.region)}/v2`;
726
+ *
727
+ * @param config ISbConfig interface
728
+ * @param pEndpoint string, optional
729
+ */
730
+ constructor(t, e) {
731
+ E(this, "client");
732
+ E(this, "maxRetries");
733
+ E(this, "retriesDelay");
734
+ E(this, "throttle");
735
+ E(this, "accessToken");
736
+ E(this, "cache");
737
+ E(this, "resolveCounter");
738
+ E(this, "relations");
739
+ E(this, "links");
740
+ E(this, "version");
741
+ /**
742
+ * @deprecated This property is deprecated. Use the standalone `richTextResolver` from `@storyblok/richtext` instead.
743
+ * @see https://github.com/storyblok/richtext
744
+ */
745
+ E(this, "richTextResolver");
746
+ E(this, "resolveNestedRelations");
747
+ E(this, "stringifiedStoriesCache");
748
+ E(this, "inlineAssets");
749
+ let s = t.endpoint || e;
750
+ if (!s) {
751
+ const i = t.https === !1 ? "http" : "https";
752
+ t.oauthToken ? s = `${i}://${Z(t.region)}/v1` : s = `${i}://${Z(t.region)}/v2`;
472
753
  }
473
- const s = new Headers();
474
- s.set("Content-Type", "application/json"), s.set("Accept", "application/json"), e.headers && (e.headers.constructor.name === "Headers" ? e.headers.entries().toArray() : Object.entries(e.headers)).forEach(([l, c]) => {
475
- s.set(l, c);
476
- }), s.has(q) || (s.set(q, P.defaultAgentName), s.set(
477
- P.defaultAgentVersion,
478
- P.packageVersion
479
- ));
480
- let n = 5;
481
- e.oauthToken && (s.set("Authorization", e.oauthToken), n = 3), e.rateLimit && (n = e.rateLimit), this.maxRetries = e.maxRetries || 10, this.retriesDelay = 300, this.throttle = de(
482
- this.throttledRequest.bind(this),
483
- n,
484
- 1e3
485
- ), this.accessToken = e.accessToken || "", this.relations = {}, this.links = {}, this.cache = e.cache || { clear: "manual" }, this.resolveCounter = 0, this.resolveNestedRelations = e.resolveNestedRelations || !0, this.stringifiedStoriesCache = {}, this.version = e.version || ke.PUBLISHED, this.inlineAssets = e.inlineAssets || !1, this.client = new ve({
486
- baseURL: o,
487
- timeout: e.timeout || 0,
488
- headers: s,
489
- responseInterceptor: e.responseInterceptor,
490
- fetch: e.fetch
754
+ const r = new Headers();
755
+ r.set("Content-Type", "application/json"), r.set("Accept", "application/json"), t.headers && (t.headers.constructor.name === "Headers" ? t.headers.entries().toArray() : Object.entries(t.headers)).forEach(([o, n]) => {
756
+ r.set(o, n);
757
+ }), r.has(X) || (r.set(X, $.defaultAgentName), r.set($.defaultAgentVersion, $.packageVersion));
758
+ let u = 5;
759
+ t.oauthToken && (r.set("Authorization", t.oauthToken), u = 3), t.rateLimit && (u = t.rateLimit), this.maxRetries = t.maxRetries || 10, this.retriesDelay = 300, this.throttle = Pt(this.throttledRequest.bind(this), u, 1e3), this.accessToken = t.accessToken || "", this.relations = {}, this.links = {}, this.cache = t.cache || { clear: "manual" }, this.resolveCounter = 0, this.resolveNestedRelations = t.resolveNestedRelations || !0, this.stringifiedStoriesCache = {}, this.version = t.version || zt.PUBLISHED, this.inlineAssets = t.inlineAssets || !1, this.client = new Mt({
760
+ baseURL: s,
761
+ timeout: t.timeout || 0,
762
+ headers: r,
763
+ responseInterceptor: t.responseInterceptor,
764
+ fetch: t.fetch
491
765
  });
492
766
  }
493
- parseParams(e) {
494
- return e.token || (e.token = this.getToken()), e.cv || (e.cv = E[e.token]), Array.isArray(e.resolve_relations) && (e.resolve_relations = e.resolve_relations.join(",")), typeof e.resolve_relations < "u" && (e.resolve_level = 2), e;
767
+ parseParams(t) {
768
+ return t.token || (t.token = this.getToken()), t.cv || (t.cv = B[t.token]), Array.isArray(t.resolve_relations) && (t.resolve_relations = t.resolve_relations.join(",")), typeof t.resolve_relations < "u" && (t.resolve_level = 2), t;
495
769
  }
496
- factoryParamOptions(e, t) {
497
- return G(e) ? this.parseParams(t) : t;
770
+ factoryParamOptions(t, e) {
771
+ return W(t) ? this.parseParams(e) : e;
498
772
  }
499
- makeRequest(e, t, o, s, n) {
500
- const l = this.factoryParamOptions(
501
- e,
502
- pe(t, o, s)
503
- );
504
- return this.cacheResponse(e, l, void 0, n);
505
- }
506
- get(e, t = {}, o) {
507
- t || (t = {});
508
- const s = `/${e}`;
509
- G(s) && (t.version = t.version || this.version);
510
- const n = this.factoryParamOptions(s, t);
511
- return this.cacheResponse(s, n, void 0, o);
512
- }
513
- async getAll(e, t = {}, o, s) {
514
- const n = (t == null ? void 0 : t.per_page) || 25, l = `/${e}`.replace(/\/$/, ""), c = o ?? l.substring(l.lastIndexOf("/") + 1);
515
- t.version = t.version || this.version;
516
- const a = 1, h = await this.makeRequest(
517
- l,
518
- t,
519
- n,
520
- a,
521
- s
522
- ), d = h.total ? Math.ceil(h.total / n) : 1, y = await me(
523
- ge(a, d),
524
- (T) => this.makeRequest(l, t, n, T + 1, s)
525
- );
526
- return be([h, ...y], (T) => Object.values(T.data[c]));
773
+ makeRequest(t, e, s, r, u) {
774
+ const i = this.factoryParamOptions(t, Ot(e, s, r));
775
+ return this.cacheResponse(t, i, void 0, u);
776
+ }
777
+ get(t, e = {}, s) {
778
+ e || (e = {});
779
+ const r = `/${t}`;
780
+ W(r) && (e.version = e.version || this.version);
781
+ const u = this.factoryParamOptions(r, e);
782
+ return this.cacheResponse(r, u, void 0, s);
783
+ }
784
+ async getAll(t, e = {}, s, r) {
785
+ const u = (e == null ? void 0 : e.per_page) || 25, i = `/${t}`.replace(/\/$/, ""), o = s ?? i.substring(i.lastIndexOf("/") + 1);
786
+ e.version = e.version || this.version;
787
+ const n = 1, a = await this.makeRequest(i, e, u, n, r), c = a.total ? Math.ceil(a.total / (a.perPage || u)) : 1, h = await jt($t(n, c), (D) => this.makeRequest(i, e, u, D + 1, r));
788
+ return Ht([a, ...h], (D) => Object.values(D.data[o]));
527
789
  }
528
- post(e, t = {}, o) {
529
- const s = `/${e}`;
530
- return this.throttle("post", s, t, o);
790
+ post(t, e = {}, s) {
791
+ const r = `/${t}`;
792
+ return this.throttle("post", r, e, s);
531
793
  }
532
- put(e, t = {}, o) {
533
- const s = `/${e}`;
534
- return this.throttle("put", s, t, o);
794
+ put(t, e = {}, s) {
795
+ const r = `/${t}`;
796
+ return this.throttle("put", r, e, s);
535
797
  }
536
- delete(e, t = {}, o) {
537
- t || (t = {});
538
- const s = `/${e}`;
539
- return this.throttle("delete", s, t, o);
798
+ delete(t, e = {}, s) {
799
+ e || (e = {});
800
+ const r = `/${t}`;
801
+ return this.throttle("delete", r, e, s);
540
802
  }
541
- getStories(e = {}, t) {
542
- return this._addResolveLevel(e), this.get("cdn/stories", e, t);
803
+ getStories(t = {}, e) {
804
+ return this._addResolveLevel(t), this.get("cdn/stories", t, e);
543
805
  }
544
- getStory(e, t = {}, o) {
545
- return this._addResolveLevel(t), this.get(`cdn/stories/${e}`, t, o);
806
+ getStory(t, e = {}, s) {
807
+ return this._addResolveLevel(e), this.get(`cdn/stories/${t}`, e, s);
546
808
  }
547
809
  getToken() {
548
810
  return this.accessToken;
@@ -550,241 +812,227 @@ class we {
550
812
  ejectInterceptor() {
551
813
  this.client.eject();
552
814
  }
553
- _addResolveLevel(e) {
554
- typeof e.resolve_relations < "u" && (e.resolve_level = 2);
815
+ _addResolveLevel(t) {
816
+ typeof t.resolve_relations < "u" && (t.resolve_level = 2);
555
817
  }
556
- _cleanCopy(e) {
557
- return JSON.parse(JSON.stringify(e));
818
+ _cleanCopy(t) {
819
+ return JSON.parse(JSON.stringify(t));
558
820
  }
559
- _insertLinks(e, t, o) {
560
- const s = e[t];
561
- s && s.fieldtype === "multilink" && s.linktype === "story" && typeof s.id == "string" && this.links[o][s.id] ? s.story = this._cleanCopy(this.links[o][s.id]) : s && s.linktype === "story" && typeof s.uuid == "string" && this.links[o][s.uuid] && (s.story = this._cleanCopy(this.links[o][s.uuid]));
821
+ _insertLinks(t, e, s) {
822
+ const r = t[e];
823
+ r && r.fieldtype === "multilink" && r.linktype === "story" && typeof r.id == "string" && this.links[s][r.id] ? r.story = this._cleanCopy(this.links[s][r.id]) : r && r.linktype === "story" && typeof r.uuid == "string" && this.links[s][r.uuid] && (r.story = this._cleanCopy(this.links[s][r.uuid]));
562
824
  }
563
825
  /**
564
- *
565
- * @param resolveId A counter number as a string
566
- * @param uuid The uuid of the story
567
- * @returns string | object
568
- */
569
- getStoryReference(e, t) {
570
- return this.relations[e][t] ? JSON.parse(this.stringifiedStoriesCache[t] || JSON.stringify(this.relations[e][t])) : t;
826
+ *
827
+ * @param resolveId A counter number as a string
828
+ * @param uuid The uuid of the story
829
+ * @returns string | object
830
+ */
831
+ getStoryReference(t, e) {
832
+ return this.relations[t][e] ? JSON.parse(this.stringifiedStoriesCache[e] || JSON.stringify(this.relations[t][e])) : e;
571
833
  }
572
834
  /**
573
- * Resolves a field's value by replacing UUIDs with their corresponding story references
574
- * @param jtree - The JSON tree object containing the field to resolve
575
- * @param treeItem - The key of the field to resolve
576
- * @param resolveId - The unique identifier for the current resolution context
577
- *
578
- * This method handles both single string UUIDs and arrays of UUIDs:
579
- * - For single strings: directly replaces the UUID with the story reference
580
- * - For arrays: maps through each UUID and replaces with corresponding story references
581
- */
582
- _resolveField(e, t, o) {
583
- const s = e[t];
584
- typeof s == "string" ? e[t] = this.getStoryReference(o, s) : Array.isArray(s) && (e[t] = s.map(
585
- (n) => this.getStoryReference(o, n)
586
- ).filter(Boolean));
835
+ * Resolves a field's value by replacing UUIDs with their corresponding story references
836
+ * @param jtree - The JSON tree object containing the field to resolve
837
+ * @param treeItem - The key of the field to resolve
838
+ * @param resolveId - The unique identifier for the current resolution context
839
+ *
840
+ * This method handles both single string UUIDs and arrays of UUIDs:
841
+ * - For single strings: directly replaces the UUID with the story reference
842
+ * - For arrays: maps through each UUID and replaces with corresponding story references
843
+ */
844
+ _resolveField(t, e, s) {
845
+ const r = t[e];
846
+ typeof r == "string" ? t[e] = this.getStoryReference(s, r) : Array.isArray(r) && (t[e] = r.map((u) => this.getStoryReference(s, u)).filter(Boolean));
587
847
  }
588
848
  /**
589
- * Inserts relations into the JSON tree by resolving references
590
- * @param jtree - The JSON tree object to process
591
- * @param treeItem - The current field being processed
592
- * @param fields - The relation patterns to resolve (string or array of strings)
593
- * @param resolveId - The unique identifier for the current resolution context
594
- *
595
- * This method handles two types of relation patterns:
596
- * 1. Nested relations: matches fields that end with the current field name
597
- * Example: If treeItem is "event_type", it matches patterns like "*.event_type"
598
- *
599
- * 2. Direct component relations: matches exact component.field patterns
600
- * Example: "event.event_type" for component "event" and field "event_type"
601
- *
602
- * The method supports both string and array formats for the fields parameter,
603
- * allowing flexible specification of relation patterns.
604
- */
605
- _insertRelations(e, t, o, s) {
606
- if (Array.isArray(o) ? o.find((l) => l.endsWith(`.${t}`)) : o.endsWith(`.${t}`)) {
607
- this._resolveField(e, t, s);
849
+ * Inserts relations into the JSON tree by resolving references
850
+ * @param jtree - The JSON tree object to process
851
+ * @param treeItem - The current field being processed
852
+ * @param fields - The relation patterns to resolve (string or array of strings)
853
+ * @param resolveId - The unique identifier for the current resolution context
854
+ *
855
+ * This method handles two types of relation patterns:
856
+ * 1. Nested relations: matches fields that end with the current field name
857
+ * Example: If treeItem is "event_type", it matches patterns like "*.event_type"
858
+ *
859
+ * 2. Direct component relations: matches exact component.field patterns
860
+ * Example: "event.event_type" for component "event" and field "event_type"
861
+ *
862
+ * The method supports both string and array formats for the fields parameter,
863
+ * allowing flexible specification of relation patterns.
864
+ */
865
+ _insertRelations(t, e, s, r) {
866
+ if (Array.isArray(s) ? s.find((o) => o.endsWith(`.${e}`)) : s.endsWith(`.${e}`)) {
867
+ this._resolveField(t, e, r);
608
868
  return;
609
869
  }
610
- const n = e.component ? `${e.component}.${t}` : t;
611
- (Array.isArray(o) ? o.includes(n) : o === n) && this._resolveField(e, t, s);
870
+ const i = t.component ? `${t.component}.${e}` : e;
871
+ (Array.isArray(s) ? s.includes(i) : s === i) && this._resolveField(t, e, r);
612
872
  }
613
873
  /**
614
- * Recursively traverses and resolves relations in the story content tree
615
- * @param story - The story object containing the content to process
616
- * @param fields - The relation patterns to resolve
617
- * @param resolveId - The unique identifier for the current resolution context
618
- */
619
- iterateTree(e, t, o) {
620
- const s = (n, l = "") => {
621
- if (!(!n || n._stopResolving)) {
622
- if (Array.isArray(n))
623
- n.forEach((c, a) => s(c, `${l}[${a}]`));
624
- else if (typeof n == "object")
625
- for (const c in n) {
626
- const a = l ? `${l}.${c}` : c;
627
- (n.component && n._uid || n.type === "link") && (this._insertRelations(n, c, t, o), this._insertLinks(n, c, o)), s(n[c], a);
628
- }
874
+ * Recursively traverses and resolves relations in the story content tree
875
+ * @param story - The story object containing the content to process
876
+ * @param fields - The relation patterns to resolve
877
+ * @param resolveId - The unique identifier for the current resolution context
878
+ */
879
+ iterateTree(t, e, s) {
880
+ const r = (u, i = "") => {
881
+ if (!(!u || u._stopResolving)) {
882
+ if (Array.isArray(u)) u.forEach((o, n) => r(o, `${i}[${n}]`));
883
+ else if (typeof u == "object") for (const o in u) {
884
+ const n = i ? `${i}.${o}` : o;
885
+ (u.component && u._uid || u.type === "link") && (this._insertRelations(u, o, e, s), this._insertLinks(u, o, s)), r(u[o], n);
886
+ }
629
887
  }
630
888
  };
631
- s(e.content);
632
- }
633
- async resolveLinks(e, t, o) {
634
- let s = [];
635
- if (e.link_uuids) {
636
- const n = e.link_uuids.length, l = [], c = 50;
637
- for (let a = 0; a < n; a += c) {
638
- const h = Math.min(n, a + c);
639
- l.push(e.link_uuids.slice(a, h));
889
+ r(t.content);
890
+ }
891
+ async resolveLinks(t, e, s) {
892
+ let r = [];
893
+ if (t.link_uuids) {
894
+ const u = t.link_uuids.length, i = [], o = 50;
895
+ for (let n = 0; n < u; n += o) {
896
+ const a = Math.min(u, n + o);
897
+ i.push(t.link_uuids.slice(n, a));
640
898
  }
641
- for (let a = 0; a < l.length; a++)
899
+ for (let n = 0; n < i.length; n++)
642
900
  (await this.getStories({
643
- per_page: c,
644
- language: t.language,
645
- version: t.version,
646
- starts_with: t.starts_with,
647
- by_uuids: l[a].join(",")
648
- })).data.stories.forEach(
649
- (h) => {
650
- s.push(h);
651
- }
652
- );
653
- } else
654
- s = e.links;
655
- s.forEach((n) => {
656
- this.links[o][n.uuid] = {
657
- ...n,
901
+ per_page: o,
902
+ language: e.language,
903
+ version: e.version,
904
+ starts_with: e.starts_with,
905
+ by_uuids: i[n].join(",")
906
+ })).data.stories.forEach((c) => {
907
+ r.push(c);
908
+ });
909
+ } else r = t.links;
910
+ r.forEach((u) => {
911
+ this.links[s][u.uuid] = {
912
+ ...u,
658
913
  _stopResolving: !0
659
914
  };
660
915
  });
661
916
  }
662
- async resolveRelations(e, t, o) {
663
- let s = [];
664
- if (e.rel_uuids) {
665
- const n = e.rel_uuids.length, l = [], c = 50;
666
- for (let a = 0; a < n; a += c) {
667
- const h = Math.min(n, a + c);
668
- l.push(e.rel_uuids.slice(a, h));
917
+ async resolveRelations(t, e, s) {
918
+ let r = [];
919
+ if (t.rel_uuids) {
920
+ const u = t.rel_uuids.length, i = [], o = 50;
921
+ for (let n = 0; n < u; n += o) {
922
+ const a = Math.min(u, n + o);
923
+ i.push(t.rel_uuids.slice(n, a));
669
924
  }
670
- for (let a = 0; a < l.length; a++)
925
+ for (let n = 0; n < i.length; n++)
671
926
  (await this.getStories({
672
- per_page: c,
673
- language: t.language,
674
- version: t.version,
675
- starts_with: t.starts_with,
676
- by_uuids: l[a].join(","),
677
- excluding_fields: t.excluding_fields
678
- })).data.stories.forEach((h) => {
679
- s.push(h);
927
+ per_page: o,
928
+ language: e.language,
929
+ version: e.version,
930
+ starts_with: e.starts_with,
931
+ by_uuids: i[n].join(","),
932
+ excluding_fields: e.excluding_fields
933
+ })).data.stories.forEach((c) => {
934
+ r.push(c);
680
935
  });
681
- s.length > 0 && (e.rels = s, delete e.rel_uuids);
682
- } else
683
- s = e.rels;
684
- s && s.length > 0 && s.forEach((n) => {
685
- this.relations[o][n.uuid] = {
686
- ...n,
936
+ r.length > 0 && (t.rels = r, delete t.rel_uuids);
937
+ } else r = t.rels;
938
+ r && r.length > 0 && r.forEach((u) => {
939
+ this.relations[s][u.uuid] = {
940
+ ...u,
687
941
  _stopResolving: !0
688
942
  };
689
943
  });
690
944
  }
691
945
  /**
692
- *
693
- * @param responseData
694
- * @param params
695
- * @param resolveId
696
- * @description Resolves the relations and links of the stories
697
- * @returns Promise<void>
698
- *
699
- */
700
- async resolveStories(e, t, o) {
701
- var s, n;
702
- let l = [];
703
- if (this.links[o] = {}, this.relations[o] = {}, typeof t.resolve_relations < "u" && t.resolve_relations.length > 0 && (typeof t.resolve_relations == "string" && (l = t.resolve_relations.split(",")), await this.resolveRelations(e, t, o)), t.resolve_links && ["1", "story", "url", "link"].includes(t.resolve_links) && ((s = e.links) != null && s.length || (n = e.link_uuids) != null && n.length) && await this.resolveLinks(e, t, o), this.resolveNestedRelations)
704
- for (const c in this.relations[o])
705
- this.iterateTree(
706
- this.relations[o][c],
707
- l,
708
- o
709
- );
710
- e.story ? this.iterateTree(e.story, l, o) : e.stories.forEach((c) => {
711
- this.iterateTree(c, l, o);
712
- }), this.stringifiedStoriesCache = {}, delete this.links[o], delete this.relations[o];
713
- }
714
- async cacheResponse(e, t, o, s) {
715
- const n = N({ url: e, params: t }), l = this.cacheProvider();
716
- if (t.version === "published" && e !== "/cdn/spaces/me") {
717
- const c = await l.get(n);
718
- if (c)
719
- return Promise.resolve(c);
946
+ *
947
+ * @param responseData
948
+ * @param params
949
+ * @param resolveId
950
+ * @description Resolves the relations and links of the stories
951
+ * @returns Promise<void>
952
+ *
953
+ */
954
+ async resolveStories(t, e, s) {
955
+ var u, i;
956
+ let r = [];
957
+ if (this.links[s] = {}, this.relations[s] = {}, typeof e.resolve_relations < "u" && e.resolve_relations.length > 0 && (typeof e.resolve_relations == "string" && (r = e.resolve_relations.split(",")), await this.resolveRelations(t, e, s)), e.resolve_links && [
958
+ "1",
959
+ "story",
960
+ "url",
961
+ "link"
962
+ ].includes(e.resolve_links) && ((u = t.links) != null && u.length || (i = t.link_uuids) != null && i.length) && await this.resolveLinks(t, e, s), this.resolveNestedRelations) for (const o in this.relations[s]) this.iterateTree(this.relations[s][o], r, s);
963
+ t.story ? this.iterateTree(t.story, r, s) : t.stories.forEach((o) => {
964
+ this.iterateTree(o, r, s);
965
+ }), this.stringifiedStoriesCache = {}, delete this.links[s], delete this.relations[s];
966
+ }
967
+ async cacheResponse(t, e, s, r) {
968
+ const u = H({
969
+ url: t,
970
+ params: e
971
+ }), i = this.cacheProvider();
972
+ if (e.version === "published" && t !== "/cdn/spaces/me") {
973
+ const o = await i.get(u);
974
+ if (o) return Promise.resolve(o);
720
975
  }
721
- return new Promise(async (c, a) => {
722
- var h;
976
+ return new Promise(async (o, n) => {
977
+ var a;
723
978
  try {
724
- const d = await this.throttle(
725
- "get",
726
- e,
727
- t,
728
- s
729
- );
730
- if (d.status !== 200)
731
- return a(d);
732
- let y = { data: d.data, headers: d.headers };
733
- if ((h = d.headers) != null && h["per-page"] && (y = Object.assign({}, y, {
734
- perPage: d.headers["per-page"] ? Number.parseInt(d.headers["per-page"]) : 0,
735
- total: d.headers["per-page"] ? Number.parseInt(d.headers.total) : 0
736
- })), y.data.story || y.data.stories) {
737
- const _ = this.resolveCounter = ++this.resolveCounter % 1e3;
738
- await this.resolveStories(y.data, t, `${_}`), y = await this.processInlineAssets(y);
979
+ const c = await this.throttle("get", t, e, r);
980
+ if (c.status !== 200) return n(c);
981
+ let h = {
982
+ data: c.data,
983
+ headers: c.headers
984
+ };
985
+ if ((a = c.headers) != null && a["per-page"] && (h = Object.assign({}, h, {
986
+ perPage: c.headers["per-page"] ? Number.parseInt(c.headers["per-page"]) : 0,
987
+ total: c.headers["per-page"] ? Number.parseInt(c.headers.total) : 0
988
+ })), h.data.story || h.data.stories) {
989
+ const g = this.resolveCounter = ++this.resolveCounter % 1e3;
990
+ await this.resolveStories(h.data, e, `${g}`), h = await this.processInlineAssets(h);
739
991
  }
740
- t.version === "published" && e !== "/cdn/spaces/me" && await l.set(n, y);
741
- const T = this.cache.clear === "onpreview" && t.version === "draft" || this.cache.clear === "auto";
742
- return t.token && y.data.cv && (T && E[t.token] && E[t.token] !== y.data.cv && await this.flushCache(), E[t.token] = y.data.cv), c(y);
743
- } catch (d) {
744
- if (d.response && d.status === 429 && (o = typeof o > "u" ? 0 : o + 1, o < this.maxRetries))
745
- return console.log(
746
- `Hit rate limit. Retrying in ${this.retriesDelay / 1e3} seconds.`
747
- ), await fe(this.retriesDelay), this.cacheResponse(e, t, o).then(c).catch(a);
748
- a(d);
992
+ e.version === "published" && t !== "/cdn/spaces/me" && await i.set(u, h);
993
+ const D = this.cache.clear === "onpreview" && e.version === "draft" || this.cache.clear === "auto";
994
+ return e.token && h.data.cv && (D && B[e.token] && B[e.token] !== h.data.cv && await this.flushCache(), B[e.token] = h.data.cv), o(h);
995
+ } catch (c) {
996
+ if (c.response && c.status === 429 && (s = typeof s > "u" ? 0 : s + 1, s < this.maxRetries))
997
+ return console.log(`Hit rate limit. Retrying in ${this.retriesDelay / 1e3} seconds.`), await It(this.retriesDelay), this.cacheResponse(t, e, s).then(o).catch(n);
998
+ n(c);
749
999
  }
750
1000
  });
751
1001
  }
752
- throttledRequest(e, t, o, s) {
753
- return this.client.setFetchOptions(s), this.client[e](t, o);
1002
+ throttledRequest(t, e, s, r) {
1003
+ return this.client.setFetchOptions(r), this.client[t](e, s);
754
1004
  }
755
1005
  cacheVersions() {
756
- return E;
1006
+ return B;
757
1007
  }
758
1008
  cacheVersion() {
759
- return E[this.accessToken];
1009
+ return B[this.accessToken];
760
1010
  }
761
- setCacheVersion(e) {
762
- this.accessToken && (E[this.accessToken] = e);
1011
+ setCacheVersion(t) {
1012
+ this.accessToken && (B[this.accessToken] = t);
763
1013
  }
764
1014
  clearCacheVersion() {
765
- this.accessToken && (E[this.accessToken] = 0);
1015
+ this.accessToken && (B[this.accessToken] = 0);
766
1016
  }
767
1017
  cacheProvider() {
768
1018
  switch (this.cache.type) {
769
1019
  case "memory":
770
1020
  return {
771
- get(e) {
772
- return Promise.resolve(j[e]);
1021
+ get(t) {
1022
+ return Promise.resolve(P[t]);
773
1023
  },
774
1024
  getAll() {
775
- return Promise.resolve(j);
1025
+ return Promise.resolve(P);
776
1026
  },
777
- set(e, t) {
778
- return j[e] = t, Promise.resolve(void 0);
1027
+ set(t, e) {
1028
+ return P[t] = e, Promise.resolve(void 0);
779
1029
  },
780
1030
  flush() {
781
- return j = {}, Promise.resolve(void 0);
1031
+ return P = {}, Promise.resolve(void 0);
782
1032
  }
783
1033
  };
784
1034
  case "custom":
785
- if (this.cache.custom)
786
- return this.cache.custom;
787
- // eslint-disable-next-line no-fallthrough
1035
+ if (this.cache.custom) return this.cache.custom;
788
1036
  default:
789
1037
  return {
790
1038
  get() {
@@ -805,41 +1053,37 @@ class we {
805
1053
  async flushCache() {
806
1054
  return await this.cacheProvider().flush(), this.clearCacheVersion(), this;
807
1055
  }
808
- async processInlineAssets(e) {
809
- if (!this.inlineAssets)
810
- return e;
811
- const t = (o) => {
812
- if (!o || typeof o != "object")
813
- return o;
814
- if (Array.isArray(o))
815
- return o.map((n) => t(n));
816
- let s = { ...o };
817
- s.fieldtype === "asset" && Array.isArray(e.data.assets) && (s = {
818
- ...s,
819
- ...e.data.assets.find((n) => n.id === s.id)
1056
+ async processInlineAssets(t) {
1057
+ if (!this.inlineAssets) return t;
1058
+ const e = (s) => {
1059
+ if (!s || typeof s != "object") return s;
1060
+ if (Array.isArray(s)) return s.map((u) => e(u));
1061
+ let r = { ...s };
1062
+ r.fieldtype === "asset" && Array.isArray(t.data.assets) && (r = {
1063
+ ...r,
1064
+ ...t.data.assets.find((u) => u.id === r.id)
820
1065
  });
821
- for (const n in s)
822
- typeof s[n] == "object" && (s[n] = t(s[n]));
823
- return s;
1066
+ for (const u in r) typeof r[u] == "object" && (r[u] = e(r[u]));
1067
+ return r;
824
1068
  };
825
- return e.data.story && (e.data.story.content = t(e.data.story.content)), e.data.stories && (e.data.stories = e.data.stories.map((o) => (o.content = t(o.content), o))), e;
1069
+ return t.data.story && (t.data.story.content = e(t.data.story.content)), t.data.stories && (t.data.stories = t.data.stories.map((s) => (s.content = e(s.content), s))), t;
826
1070
  }
827
- }
828
- const Te = (r = {}) => {
829
- const { apiOptions: e } = r;
1071
+ }, qt = Gt;
1072
+ const Vt = (t = {}) => {
1073
+ const { apiOptions: e } = t;
830
1074
  if (!e || !e.accessToken) {
831
1075
  console.error(
832
1076
  "You need to provide an access token to interact with Storyblok API. Read https://www.storyblok.com/docs/api/content-delivery#topics/authentication"
833
1077
  );
834
1078
  return;
835
1079
  }
836
- return { storyblokApi: new we(e) };
837
- }, _e = (r) => {
838
- if (typeof r != "object" || typeof r._editable > "u")
1080
+ return { storyblokApi: new qt(e) };
1081
+ }, Kt = (t) => {
1082
+ if (typeof t != "object" || typeof t._editable > "u")
839
1083
  return {};
840
1084
  try {
841
1085
  const e = JSON.parse(
842
- r._editable.replace(/^<!--#storyblok#/, "").replace(/-->$/, "")
1086
+ t._editable.replace(/^<!--#storyblok#/, "").replace(/-->$/, "")
843
1087
  );
844
1088
  return e ? {
845
1089
  "data-blok-c": JSON.stringify(e),
@@ -849,56 +1093,56 @@ const Te = (r = {}) => {
849
1093
  return {};
850
1094
  }
851
1095
  };
852
- let x = "https://app.storyblok.com/f/storyblok-v2-latest.js";
853
- const $e = (r, e, t = {}) => {
854
- var c;
855
- const s = !(typeof window > "u") && typeof window.storyblokRegisterEvent < "u", n = new URL((c = window.location) == null ? void 0 : c.href).searchParams.get(
1096
+ let j = "https://app.storyblok.com/f/storyblok-v2-latest.js";
1097
+ const Yt = (t, e, s = {}) => {
1098
+ var n;
1099
+ const u = !(typeof window > "u") && typeof window.storyblokRegisterEvent < "u", i = new URL((n = window.location) == null ? void 0 : n.href).searchParams.get(
856
1100
  "_storyblok"
857
- ), l = n !== null && +n === r;
858
- if (!(!s || !l)) {
859
- if (!r) {
1101
+ ), o = i !== null && +i === t;
1102
+ if (!(!u || !o)) {
1103
+ if (!t) {
860
1104
  console.warn("Story ID is not defined. Please provide a valid ID.");
861
1105
  return;
862
1106
  }
863
1107
  window.storyblokRegisterEvent(() => {
864
- new window.StoryblokBridge(t).on(["input", "published", "change"], (h) => {
865
- var d;
866
- h && (h.action === "input" && ((d = h.story) == null ? void 0 : d.id) === r ? e(h.story) : (h.action === "change" || h.action === "published") && h.storyId === r && window.location.reload());
1108
+ new window.StoryblokBridge(s).on(["input", "published", "change"], (c) => {
1109
+ var h;
1110
+ c && (c.action === "input" && ((h = c.story) == null ? void 0 : h.id) === t ? e(c.story) : (c.action === "change" || c.action === "published") && c.storyId === t && window.location.reload());
867
1111
  });
868
1112
  });
869
1113
  }
870
- }, Re = (r = {}) => {
871
- var d, y;
1114
+ }, Wt = (t = {}) => {
1115
+ var h, D;
872
1116
  const {
873
1117
  bridge: e,
874
- accessToken: t,
875
- use: o = [],
876
- apiOptions: s = {},
877
- bridgeUrl: n
878
- } = r;
879
- s.accessToken = s.accessToken || t;
880
- const l = { bridge: e, apiOptions: s };
881
- let c = {};
882
- o.forEach((T) => {
883
- c = { ...c, ...T(l) };
884
- }), n && (x = n);
885
- const h = !(typeof window > "u") && ((y = (d = window.location) == null ? void 0 : d.search) == null ? void 0 : y.includes("_storyblok_tk"));
886
- return e !== !1 && h && J(x), c;
1118
+ accessToken: s,
1119
+ use: r = [],
1120
+ apiOptions: u = {},
1121
+ bridgeUrl: i
1122
+ } = t;
1123
+ u.accessToken = u.accessToken || s;
1124
+ const o = { bridge: e, apiOptions: u };
1125
+ let n = {};
1126
+ r.forEach((g) => {
1127
+ n = { ...n, ...g(o) };
1128
+ }), i && (j = i);
1129
+ const c = !(typeof window > "u") && ((D = (h = window.location) == null ? void 0 : h.search) == null ? void 0 : D.includes("_storyblok_tk"));
1130
+ return e !== !1 && c && tt(j), n;
887
1131
  };
888
- function Ee(r, e) {
889
- return le(e).render(r);
1132
+ function Zt(t, e) {
1133
+ return St(e).render(t);
890
1134
  }
891
- const Ae = () => J(x);
1135
+ const Xt = () => tt(j);
892
1136
  export {
893
- v as BlockTypes,
894
- R as MarkTypes,
895
- F as TextTypes,
896
- Te as apiPlugin,
897
- Ae as loadStoryblokBridge,
898
- $e as registerStoryblokBridge,
899
- Ee as renderRichText,
900
- le as richTextResolver,
901
- _e as storyblokEditable,
902
- Re as storyblokInit,
903
- $e as useStoryblokBridge
1137
+ b as BlockTypes,
1138
+ v as MarkTypes,
1139
+ vt as TextTypes,
1140
+ Vt as apiPlugin,
1141
+ Xt as loadStoryblokBridge,
1142
+ Yt as registerStoryblokBridge,
1143
+ Zt as renderRichText,
1144
+ St as richTextResolver,
1145
+ Kt as storyblokEditable,
1146
+ Wt as storyblokInit,
1147
+ Yt as useStoryblokBridge
904
1148
  };