var t = function (e, n) { return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]) }, t(e, n) }; function e(e, n) { if ("function" != typeof n && null !== n) throw new TypeError("Class extends value " + String(n) + " is not a constructor or null"); function i() { this.constructor = e } t(e, n), e.prototype = null === n ? Object.create(n) : (i.prototype = n.prototype, new i) } var n = function () { return n = Object.assign || function (t) { for (var e, n = 1, i = arguments.length; n < i; n++) for (var o in e = arguments[n]) Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]); return t }, n.apply(this, arguments) }; function i(t, e, n, i) { return new (n || (n = Promise))((function (o, r) { function s(t) { try { u(i.next(t)) } catch (t) { r(t) } } function a(t) { try { u(i.throw(t)) } catch (t) { r(t) } } function u(t) { var e; t.done ? o(t.value) : (e = t.value, e instanceof n ? e : new n((function (t) { t(e) }))).then(s, a) } u((i = i.apply(t, e || [])).next()) })) } function o(t, e) { var n, i, o, r, s = { label: 0, sent: function () { if (1 & o[0]) throw o[1]; return o[1] }, trys: [], ops: [] }; return r = { next: a(0), throw: a(1), return: a(2) }, "function" == typeof Symbol && (r[Symbol.iterator] = function () { return this }), r; function a(r) { return function (a) { return function (r) { if (n) throw new TypeError("Generator is already executing."); for (; s;) try { if (n = 1, i && (o = 2 & r[0] ? i.return : r[0] ? i.throw || ((o = i.return) && o.call(i), 0) : i.next) && !(o = o.call(i, r[1])).done) return o; switch (i = 0, o && (r = [2 & r[0], o.value]), r[0]) { case 0: case 1: o = r; break; case 4: return s.label++, {value: r[1], done: !1}; case 5: s.label++, i = r[1], r = [0]; continue; case 7: r = s.ops.pop(), s.trys.pop(); continue; default: if (!(o = s.trys, (o = o.length > 0 && o[o.length - 1]) || 6 !== r[0] && 2 !== r[0])) { s = 0; continue } if (3 === r[0] && (!o || r[1] > o[0] && r[1] < o[3])) { s.label = r[1]; break } if (6 === r[0] && s.label < o[1]) { s.label = o[1], o = r; break } if (o && s.label < o[2]) { s.label = o[2], s.ops.push(r); break } o[2] && s.ops.pop(), s.trys.pop(); continue } r = e.call(t, s) } catch (t) { r = [6, t], i = 0 } finally { n = o = 0 } if (5 & r[0]) throw r[1]; return {value: r[0] ? r[1] : void 0, done: !0} }([r, a]) } } } var r, s = function (t) { function i(e) { var n, o = this; return (o = t.call(this, "ClientResponseError") || this).url = "", o.status = 0, o.data = {}, o.isAbort = !1, o.originalError = null, Object.setPrototypeOf(o, i.prototype), e instanceof i || (o.originalError = e), null !== e && "object" == typeof e && (o.url = "string" == typeof e.url ? e.url : "", o.status = "number" == typeof e.status ? e.status : 0, o.data = null !== e.data && "object" == typeof e.data ? e.data : {}), "undefined" != typeof DOMException && e instanceof DOMException && (o.isAbort = !0), o.name = "ClientResponseError " + o.status, o.message = null === (n = o.data) || void 0 === n ? void 0 : n.message, o.message || (o.message = o.isAbort ? "The request was autocancelled. More info you could find in https://github.com/pocketbase/js-sdk#auto-cancellation." : "Something went wrong while processing your request."), o } return e(i, t), i.prototype.toJSON = function () { return n({}, this) }, i }(Error), a = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; function u(t, e, n) { var i = Object.assign({}, n || {}), o = i.encode || l; if (!a.test(t)) throw new TypeError("argument name is invalid"); var r = o(e); if (r && !a.test(r)) throw new TypeError("argument val is invalid"); var s = t + "=" + r; if (null != i.maxAge) { var u = i.maxAge - 0; if (isNaN(u) || !isFinite(u)) throw new TypeError("option maxAge is invalid"); s += "; Max-Age=" + Math.floor(u) } if (i.domain) { if (!a.test(i.domain)) throw new TypeError("option domain is invalid"); s += "; Domain=" + i.domain } if (i.path) { if (!a.test(i.path)) throw new TypeError("option path is invalid"); s += "; Path=" + i.path } if (i.expires) { if (!function (t) { return "[object Date]" === Object.prototype.toString.call(t) || t instanceof Date }(i.expires) || isNaN(i.expires.valueOf())) throw new TypeError("option expires is invalid"); s += "; Expires=" + i.expires.toUTCString() } if (i.httpOnly && (s += "; HttpOnly"), i.secure && (s += "; Secure"), i.priority) switch ("string" == typeof i.priority ? i.priority.toLowerCase() : i.priority) { case"low": s += "; Priority=Low"; break; case"medium": s += "; Priority=Medium"; break; case"high": s += "; Priority=High"; break; default: throw new TypeError("option priority is invalid") } if (i.sameSite) switch ("string" == typeof i.sameSite ? i.sameSite.toLowerCase() : i.sameSite) { case!0: s += "; SameSite=Strict"; break; case"lax": s += "; SameSite=Lax"; break; case"strict": s += "; SameSite=Strict"; break; case"none": s += "; SameSite=None"; break; default: throw new TypeError("option sameSite is invalid") } return s } function c(t) { return -1 !== t.indexOf("%") ? decodeURIComponent(t) : t } function l(t) { return encodeURIComponent(t) } function d(t) { if (t) try { var e = decodeURIComponent(r(t.split(".")[1]).split("").map((function (t) { return "%" + ("00" + t.charCodeAt(0).toString(16)).slice(-2) })).join("")); return JSON.parse(e) || {} } catch (t) { } return {} } r = "function" == typeof atob ? atob : function (t) { var e = String(t).replace(/=+$/, ""); if (e.length % 4 == 1) throw new Error("'atob' failed: The string to be decoded is not correctly encoded."); for (var n, i, o = 0, r = 0, s = ""; i = e.charAt(r++); ~i && (n = o % 4 ? 64 * n + i : i, o++ % 4) ? s += String.fromCharCode(255 & n >> (-2 * o & 6)) : 0) i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i); return s }; var h = function () { function t(t) { void 0 === t && (t = {}), this.load(t || {}) } return t.prototype.load = function (t) { for (var e = 0, n = Object.entries(t); e < n.length; e++) { var i = n[e], o = i[0], r = i[1]; this[o] = r } this.id = void 0 !== t.id ? t.id : "", this.created = void 0 !== t.created ? t.created : "", this.updated = void 0 !== t.updated ? t.updated : "" }, Object.defineProperty(t.prototype, "isNew", { get: function () { return !this.id }, enumerable: !1, configurable: !0 }), t.prototype.clone = function () { var t = "function" == typeof structuredClone ? structuredClone(this) : JSON.parse(JSON.stringify(this)); return new this.constructor(t) }, t.prototype.export = function () { return Object.assign({}, this) }, t }(), p = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.load = function (e) { t.prototype.load.call(this, e), this.collectionId = "string" == typeof e.collectionId ? e.collectionId : "", this.collectionName = "string" == typeof e.collectionName ? e.collectionName : "", this.loadExpand(e.expand) }, n.prototype.loadExpand = function (t) { for (var e in t = t || {}, this.expand = {}, t) Array.isArray(t[e]) ? this.expand[e] = t[e].map((function (t) { return new n(t || {}) })) : this.expand[e] = new n(t[e] || {}) }, n }(h), f = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.load = function (e) { t.prototype.load.call(this, e), this.avatar = "number" == typeof e.avatar ? e.avatar : 0, this.email = "string" == typeof e.email ? e.email : "" }, n }(h), v = function () { function t() { this.baseToken = "", this.baseModel = null, this._onChangeCallbacks = [] } return Object.defineProperty(t.prototype, "token", { get: function () { return this.baseToken }, enumerable: !1, configurable: !0 }), Object.defineProperty(t.prototype, "model", { get: function () { return this.baseModel }, enumerable: !1, configurable: !0 }), Object.defineProperty(t.prototype, "isValid", { get: function () { return !function (t, e) { void 0 === e && (e = 0); var n = d(t); return !(Object.keys(n).length > 0 && (!n.exp || n.exp - e > Date.now() / 1e3)) }(this.token) }, enumerable: !1, configurable: !0 }), t.prototype.save = function (t, e) { this.baseToken = t || "", this.baseModel = null !== e && "object" == typeof e ? void 0 !== e.collectionId ? new p(e) : new f(e) : null, this.triggerChange() }, t.prototype.clear = function () { this.baseToken = "", this.baseModel = null, this.triggerChange() }, t.prototype.loadFromCookie = function (t, e) { void 0 === e && (e = "pb_auth"); var n = function (t, e) { var n = {}; if ("string" != typeof t) return n; for (var i = Object.assign({}, e || {}).decode || c, o = 0; o < t.length;) { var r = t.indexOf("=", o); if (-1 === r) break; var s = t.indexOf(";", o); if (-1 === s) s = t.length; else if (s < r) { o = t.lastIndexOf(";", r - 1) + 1; continue } var a = t.slice(o, r).trim(); if (void 0 === n[a]) { var u = t.slice(r + 1, s).trim(); 34 === u.charCodeAt(0) && (u = u.slice(1, -1)); try { n[a] = i(u) } catch (t) { n[a] = u } } o = s + 1 } return n }(t || "")[e] || "", i = {}; try { (null === typeof (i = JSON.parse(n)) || "object" != typeof i || Array.isArray(i)) && (i = {}) } catch (t) { } this.save(i.token || "", i.model || null) }, t.prototype.exportToCookie = function (t, e) { var n, i, o; void 0 === e && (e = "pb_auth"); var r = {secure: !0, sameSite: !0, httpOnly: !0, path: "/"}, s = d(this.token); (null == s ? void 0 : s.exp) ? r.expires = new Date(1e3 * s.exp) : r.expires = new Date("1970-01-01"), t = Object.assign({}, r, t); var a = {token: this.token, model: (null === (n = this.model) || void 0 === n ? void 0 : n.export()) || null}, c = u(e, JSON.stringify(a), t), l = "undefined" != typeof Blob ? new Blob([c]).size : c.length; return a.model && l > 4096 && (a.model = { id: null === (i = null == a ? void 0 : a.model) || void 0 === i ? void 0 : i.id, email: null === (o = null == a ? void 0 : a.model) || void 0 === o ? void 0 : o.email }, this.model instanceof p && (a.model.username = this.model.username, a.model.verified = this.model.verified, a.model.collectionId = this.model.collectionId), c = u(e, JSON.stringify(a), t)), c }, t.prototype.onChange = function (t, e) { var n = this; return void 0 === e && (e = !1), this._onChangeCallbacks.push(t), e && t(this.token, this.model), function () { for (var e = n._onChangeCallbacks.length - 1; e >= 0; e--) if (n._onChangeCallbacks[e] == t) return delete n._onChangeCallbacks[e], void n._onChangeCallbacks.splice(e, 1) } }, t.prototype.triggerChange = function () { for (var t = 0, e = this._onChangeCallbacks; t < e.length; t++) { var n = e[t]; n && n(this.token, this.model) } }, t }(), m = function (t) { function n(e) { void 0 === e && (e = "pocketbase_auth"); var n = t.call(this) || this; return n.storageFallback = {}, n.storageKey = e, n } return e(n, t), Object.defineProperty(n.prototype, "token", { get: function () { return (this._storageGet(this.storageKey) || {}).token || "" }, enumerable: !1, configurable: !0 }), Object.defineProperty(n.prototype, "model", { get: function () { var t, e = this._storageGet(this.storageKey) || {}; return null === e || "object" != typeof e || null === e.model || "object" != typeof e.model ? null : void 0 === (null === (t = e.model) || void 0 === t ? void 0 : t.collectionId) ? new f(e.model) : new p(e.model) }, enumerable: !1, configurable: !0 }), n.prototype.save = function (e, n) { this._storageSet(this.storageKey, {token: e, model: n}), t.prototype.save.call(this, e, n) }, n.prototype.clear = function () { this._storageRemove(this.storageKey), t.prototype.clear.call(this) }, n.prototype._storageGet = function (t) { if ("undefined" != typeof window && (null === window || void 0 === window ? void 0 : window.localStorage)) { var e = window.localStorage.getItem(t) || ""; try { return JSON.parse(e) } catch (t) { return e } } return this.storageFallback[t] }, n.prototype._storageSet = function (t, e) { if ("undefined" != typeof window && (null === window || void 0 === window ? void 0 : window.localStorage)) { var n = e; "string" != typeof e && (n = JSON.stringify(e)), window.localStorage.setItem(t, n) } else this.storageFallback[t] = e }, n.prototype._storageRemove = function (t) { var e; "undefined" != typeof window && (null === window || void 0 === window ? void 0 : window.localStorage) && (null === (e = window.localStorage) || void 0 === e || e.removeItem(t)), delete this.storageFallback[t] }, n }(v), y = function (t) { this.client = t }, b = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.getAll = function (t) { return void 0 === t && (t = {}), this.client.send("/api/settings", { method: "GET", params: t }).then((function (t) { return t || {} })) }, n.prototype.update = function (t, e) { return void 0 === t && (t = {}), void 0 === e && (e = {}), this.client.send("/api/settings", { method: "PATCH", params: e, body: t }).then((function (t) { return t || {} })) }, n.prototype.testS3 = function (t) { return void 0 === t && (t = {}), this.client.send("/api/settings/test/s3", { method: "POST", params: t }).then((function () { return !0 })) }, n.prototype.testEmail = function (t, e, n) { void 0 === n && (n = {}); var i = {email: t, template: e}; return this.client.send("/api/settings/test/email", {method: "POST", params: n, body: i}).then((function () { return !0 })) }, n }(y), g = function (t, e, n, i, o) { this.page = t > 0 ? t : 1, this.perPage = e >= 0 ? e : 0, this.totalItems = n >= 0 ? n : 0, this.totalPages = i >= 0 ? i : 0, this.items = o || [] }, w = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.getFullList = function (t, e) { return void 0 === t && (t = 200), void 0 === e && (e = {}), this._getFullList(this.baseCrudPath, t, e) }, n.prototype.getList = function (t, e, n) { return void 0 === t && (t = 1), void 0 === e && (e = 30), void 0 === n && (n = {}), this._getList(this.baseCrudPath, t, e, n) }, n.prototype.getFirstListItem = function (t, e) { return void 0 === e && (e = {}), this._getFirstListItem(this.baseCrudPath, t, e) }, n.prototype.getOne = function (t, e) { return void 0 === e && (e = {}), this._getOne(this.baseCrudPath, t, e) }, n.prototype.create = function (t, e) { return void 0 === t && (t = {}), void 0 === e && (e = {}), this._create(this.baseCrudPath, t, e) }, n.prototype.update = function (t, e, n) { return void 0 === e && (e = {}), void 0 === n && (n = {}), this._update(this.baseCrudPath, t, e, n) }, n.prototype.delete = function (t, e) { return void 0 === e && (e = {}), this._delete(this.baseCrudPath, t, e) }, n }(function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype._getFullList = function (t, e, n) { var r = this; void 0 === e && (e = 100), void 0 === n && (n = {}); var s = [], a = function (u) { return i(r, void 0, void 0, (function () { return o(this, (function (i) { return [2, this._getList(t, u, e, n).then((function (t) { var e = t, n = e.items, i = e.totalItems; return s = s.concat(n), n.length && i > s.length ? a(u + 1) : s }))] })) })) }; return a(1) }, n.prototype._getList = function (t, e, n, i) { var o = this; return void 0 === e && (e = 1), void 0 === n && (n = 30), void 0 === i && (i = {}), i = Object.assign({ page: e, perPage: n }, i), this.client.send(t, {method: "GET", params: i}).then((function (t) { var e = []; if (null == t ? void 0 : t.items) { t.items = t.items || []; for (var n = 0, i = t.items; n < i.length; n++) { var r = i[n]; e.push(o.decode(r)) } } return new g((null == t ? void 0 : t.page) || 1, (null == t ? void 0 : t.perPage) || 0, (null == t ? void 0 : t.totalItems) || 0, (null == t ? void 0 : t.totalPages) || 0, e) })) }, n.prototype._getOne = function (t, e, n) { var i = this; return void 0 === n && (n = {}), this.client.send(t + "/" + encodeURIComponent(e), { method: "GET", params: n }).then((function (t) { return i.decode(t) })) }, n.prototype._getFirstListItem = function (t, e, n) { return void 0 === n && (n = {}), n = Object.assign({ filter: e, $cancelKey: "one_by_filter_" + t + "_" + e }, n), this._getList(t, 1, 1, n).then((function (t) { var e; if (!(null === (e = null == t ? void 0 : t.items) || void 0 === e ? void 0 : e.length)) throw new s({ status: 404, data: {code: 404, message: "The requested resource wasn't found.", data: {}} }); return t.items[0] })) }, n.prototype._create = function (t, e, n) { var i = this; return void 0 === e && (e = {}), void 0 === n && (n = {}), this.client.send(t, { method: "POST", params: n, body: e }).then((function (t) { return i.decode(t) })) }, n.prototype._update = function (t, e, n, i) { var o = this; return void 0 === n && (n = {}), void 0 === i && (i = {}), this.client.send(t + "/" + encodeURIComponent(e), { method: "PATCH", params: i, body: n }).then((function (t) { return o.decode(t) })) }, n.prototype._delete = function (t, e, n) { return void 0 === n && (n = {}), this.client.send(t + "/" + encodeURIComponent(e), { method: "DELETE", params: n }).then((function () { return !0 })) }, n }(y)), S = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.decode = function (t) { return new f(t) }, Object.defineProperty(n.prototype, "baseCrudPath", { get: function () { return "/api/admins" }, enumerable: !1, configurable: !0 }), n.prototype.update = function (e, n, i) { var o = this; return void 0 === n && (n = {}), void 0 === i && (i = {}), t.prototype.update.call(this, e, n, i).then((function (t) { var e, n; return o.client.authStore.model && void 0 === (null === (e = o.client.authStore.model) || void 0 === e ? void 0 : e.collectionId) && (null === (n = o.client.authStore.model) || void 0 === n ? void 0 : n.id) === (null == t ? void 0 : t.id) && o.client.authStore.save(o.client.authStore.token, t), t })) }, n.prototype.delete = function (e, n) { var i = this; return void 0 === n && (n = {}), t.prototype.delete.call(this, e, n).then((function (t) { var n, o; return t && i.client.authStore.model && void 0 === (null === (n = i.client.authStore.model) || void 0 === n ? void 0 : n.collectionId) && (null === (o = i.client.authStore.model) || void 0 === o ? void 0 : o.id) === e && i.client.authStore.clear(), t })) }, n.prototype.authResponse = function (t) { var e = this.decode((null == t ? void 0 : t.admin) || {}); return (null == t ? void 0 : t.token) && (null == t ? void 0 : t.admin) && this.client.authStore.save(t.token, e), Object.assign({}, t, { token: (null == t ? void 0 : t.token) || "", admin: e }) }, n.prototype.authWithPassword = function (t, e, n, i) { return void 0 === n && (n = {}), void 0 === i && (i = {}), n = Object.assign({ identity: t, password: e }, n), this.client.send(this.baseCrudPath + "/auth-with-password", { method: "POST", params: i, body: n, headers: {Authorization: ""} }).then(this.authResponse.bind(this)) }, n.prototype.authRefresh = function (t, e) { return void 0 === t && (t = {}), void 0 === e && (e = {}), this.client.send(this.baseCrudPath + "/auth-refresh", { method: "POST", params: e, body: t }).then(this.authResponse.bind(this)) }, n.prototype.requestPasswordReset = function (t, e, n) { return void 0 === e && (e = {}), void 0 === n && (n = {}), e = Object.assign({email: t}, e), this.client.send(this.baseCrudPath + "/request-password-reset", { method: "POST", params: n, body: e }).then((function () { return !0 })) }, n.prototype.confirmPasswordReset = function (t, e, n, i, o) { return void 0 === i && (i = {}), void 0 === o && (o = {}), i = Object.assign({ token: t, password: e, passwordConfirm: n }, i), this.client.send(this.baseCrudPath + "/confirm-password-reset", { method: "POST", params: o, body: i }).then((function () { return !0 })) }, n }(w), C = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.load = function (e) { t.prototype.load.call(this, e), this.recordId = "string" == typeof e.recordId ? e.recordId : "", this.collectionId = "string" == typeof e.collectionId ? e.collectionId : "", this.provider = "string" == typeof e.provider ? e.provider : "", this.providerId = "string" == typeof e.providerId ? e.providerId : "" }, n }(h), O = function (t) { function n(e, n) { var i = t.call(this, e) || this; return i.collectionIdOrName = n, i } return e(n, t), n.prototype.decode = function (t) { return new p(t) }, Object.defineProperty(n.prototype, "baseCrudPath", { get: function () { return this.baseCollectionPath + "/records" }, enumerable: !1, configurable: !0 }), Object.defineProperty(n.prototype, "baseCollectionPath", { get: function () { return "/api/collections/" + encodeURIComponent(this.collectionIdOrName) }, enumerable: !1, configurable: !0 }), n.prototype.subscribeOne = function (t, e) { return i(this, void 0, void 0, (function () { return o(this, (function (n) { return console.warn("PocketBase: subscribeOne(recordId, callback) is deprecated. Please replace it with subscribe(recordId, callback)."), [2, this.client.realtime.subscribe(this.collectionIdOrName + "/" + t, e)] })) })) }, n.prototype.subscribe = function (t, e) { return i(this, void 0, void 0, (function () { var n; return o(this, (function (i) { if ("function" == typeof t) return console.warn("PocketBase: subscribe(callback) is deprecated. Please replace it with subscribe('*', callback)."), [2, this.client.realtime.subscribe(this.collectionIdOrName, t)]; if (!e) throw new Error("Missing subscription callback."); if ("" === t) throw new Error("Missing topic."); return n = this.collectionIdOrName, "*" !== t && (n += "/" + t), [2, this.client.realtime.subscribe(n, e)] })) })) }, n.prototype.unsubscribe = function (t) { return i(this, void 0, void 0, (function () { return o(this, (function (e) { return "*" === t ? [2, this.client.realtime.unsubscribe(this.collectionIdOrName)] : t ? [2, this.client.realtime.unsubscribe(this.collectionIdOrName + "/" + t)] : [2, this.client.realtime.unsubscribeByPrefix(this.collectionIdOrName)] })) })) }, n.prototype.getFullList = function (e, n) { return void 0 === e && (e = 200), void 0 === n && (n = {}), t.prototype.getFullList.call(this, e, n) }, n.prototype.getList = function (e, n, i) { return void 0 === e && (e = 1), void 0 === n && (n = 30), void 0 === i && (i = {}), t.prototype.getList.call(this, e, n, i) }, n.prototype.getFirstListItem = function (e, n) { return void 0 === n && (n = {}), t.prototype.getFirstListItem.call(this, e, n) }, n.prototype.getOne = function (e, n) { return void 0 === n && (n = {}), t.prototype.getOne.call(this, e, n) }, n.prototype.create = function (e, n) { return void 0 === e && (e = {}), void 0 === n && (n = {}), t.prototype.create.call(this, e, n) }, n.prototype.update = function (e, n, i) { var o = this; return void 0 === n && (n = {}), void 0 === i && (i = {}), t.prototype.update.call(this, e, n, i).then((function (t) { var e, n; return void 0 !== (null === (e = o.client.authStore.model) || void 0 === e ? void 0 : e.collectionId) && (null === (n = o.client.authStore.model) || void 0 === n ? void 0 : n.id) === (null == t ? void 0 : t.id) && o.client.authStore.save(o.client.authStore.token, t), t })) }, n.prototype.delete = function (e, n) { var i = this; return void 0 === n && (n = {}), t.prototype.delete.call(this, e, n).then((function (t) { var n, o; return t && void 0 !== (null === (n = i.client.authStore.model) || void 0 === n ? void 0 : n.collectionId) && (null === (o = i.client.authStore.model) || void 0 === o ? void 0 : o.id) === e && i.client.authStore.clear(), t })) }, n.prototype.authResponse = function (t) { var e = this.decode((null == t ? void 0 : t.record) || {}); return this.client.authStore.save(null == t ? void 0 : t.token, e), Object.assign({}, t, { token: (null == t ? void 0 : t.token) || "", record: e }) }, n.prototype.listAuthMethods = function (t) { return void 0 === t && (t = {}), this.client.send(this.baseCollectionPath + "/auth-methods", { method: "GET", params: t }).then((function (t) { return Object.assign({}, t, { usernamePassword: !!(null == t ? void 0 : t.usernamePassword), emailPassword: !!(null == t ? void 0 : t.emailPassword), authProviders: Array.isArray(null == t ? void 0 : t.authProviders) ? null == t ? void 0 : t.authProviders : [] }) })) }, n.prototype.authWithPassword = function (t, e, n, i) { var o = this; return void 0 === n && (n = {}), void 0 === i && (i = {}), n = Object.assign({ identity: t, password: e }, n), this.client.send(this.baseCollectionPath + "/auth-with-password", { method: "POST", params: i, body: n, headers: {Authorization: ""} }).then((function (t) { return o.authResponse(t) })) }, n.prototype.authWithOAuth2 = function (t, e, n, i, o, r, s) { var a = this; return void 0 === o && (o = {}), void 0 === r && (r = {}), void 0 === s && (s = {}), r = Object.assign({ provider: t, code: e, codeVerifier: n, redirectUrl: i, createData: o }, r), this.client.send(this.baseCollectionPath + "/auth-with-oauth2", { method: "POST", params: s, body: r }).then((function (t) { return a.authResponse(t) })) }, n.prototype.authRefresh = function (t, e) { var n = this; return void 0 === t && (t = {}), void 0 === e && (e = {}), this.client.send(this.baseCollectionPath + "/auth-refresh", { method: "POST", params: e, body: t }).then((function (t) { return n.authResponse(t) })) }, n.prototype.requestPasswordReset = function (t, e, n) { return void 0 === e && (e = {}), void 0 === n && (n = {}), e = Object.assign({email: t}, e), this.client.send(this.baseCollectionPath + "/request-password-reset", { method: "POST", params: n, body: e }).then((function () { return !0 })) }, n.prototype.confirmPasswordReset = function (t, e, n, i, o) { return void 0 === i && (i = {}), void 0 === o && (o = {}), i = Object.assign({ token: t, password: e, passwordConfirm: n }, i), this.client.send(this.baseCollectionPath + "/confirm-password-reset", { method: "POST", params: o, body: i }).then((function () { return !0 })) }, n.prototype.requestVerification = function (t, e, n) { return void 0 === e && (e = {}), void 0 === n && (n = {}), e = Object.assign({email: t}, e), this.client.send(this.baseCollectionPath + "/request-verification", { method: "POST", params: n, body: e }).then((function () { return !0 })) }, n.prototype.confirmVerification = function (t, e, n) { return void 0 === e && (e = {}), void 0 === n && (n = {}), e = Object.assign({token: t}, e), this.client.send(this.baseCollectionPath + "/confirm-verification", { method: "POST", params: n, body: e }).then((function () { return !0 })) }, n.prototype.requestEmailChange = function (t, e, n) { return void 0 === e && (e = {}), void 0 === n && (n = {}), e = Object.assign({newEmail: t}, e), this.client.send(this.baseCollectionPath + "/request-email-change", { method: "POST", params: n, body: e }).then((function () { return !0 })) }, n.prototype.confirmEmailChange = function (t, e, n, i) { return void 0 === n && (n = {}), void 0 === i && (i = {}), n = Object.assign({ token: t, password: e }, n), this.client.send(this.baseCollectionPath + "/confirm-email-change", { method: "POST", params: i, body: n }).then((function () { return !0 })) }, n.prototype.listExternalAuths = function (t, e) { return void 0 === e && (e = {}), this.client.send(this.baseCrudPath + "/" + encodeURIComponent(t) + "/external-auths", { method: "GET", params: e }).then((function (t) { var e = []; if (Array.isArray(t)) for (var n = 0, i = t; n < i.length; n++) { var o = i[n]; e.push(new C(o)) } return e })) }, n.prototype.unlinkExternalAuth = function (t, e, n) { return void 0 === n && (n = {}), this.client.send(this.baseCrudPath + "/" + encodeURIComponent(t) + "/external-auths/" + encodeURIComponent(e), { method: "DELETE", params: n }).then((function () { return !0 })) }, n }(w), P = function () { function t(t) { void 0 === t && (t = {}), this.load(t || {}) } return t.prototype.load = function (t) { this.id = void 0 !== t.id ? t.id : "", this.name = void 0 !== t.name ? t.name : "", this.type = void 0 !== t.type ? t.type : "text", this.system = !!t.system, this.required = !!t.required, this.unique = !!t.unique, this.options = "object" == typeof t.options && null !== t.options ? t.options : {} }, t }(), I = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.load = function (e) { t.prototype.load.call(this, e), this.system = !!e.system, this.name = "string" == typeof e.name ? e.name : "", this.type = "string" == typeof e.type ? e.type : "base", this.options = void 0 !== e.options ? e.options : {}, this.listRule = "string" == typeof e.listRule ? e.listRule : null, this.viewRule = "string" == typeof e.viewRule ? e.viewRule : null, this.createRule = "string" == typeof e.createRule ? e.createRule : null, this.updateRule = "string" == typeof e.updateRule ? e.updateRule : null, this.deleteRule = "string" == typeof e.deleteRule ? e.deleteRule : null, e.schema = Array.isArray(e.schema) ? e.schema : [], this.schema = []; for (var n = 0, i = e.schema; n < i.length; n++) { var o = i[n]; this.schema.push(new P(o)) } }, Object.defineProperty(n.prototype, "isBase", { get: function () { return "base" === this.type }, enumerable: !1, configurable: !0 }), Object.defineProperty(n.prototype, "isAuth", { get: function () { return "auth" === this.type }, enumerable: !1, configurable: !0 }), Object.defineProperty(n.prototype, "isSingle", { get: function () { return "single" === this.type }, enumerable: !1, configurable: !0 }), n }(h), T = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.decode = function (t) { return new I(t) }, Object.defineProperty(n.prototype, "baseCrudPath", { get: function () { return "/api/collections" }, enumerable: !1, configurable: !0 }), n.prototype.import = function (t, e, n) { return void 0 === e && (e = !1), void 0 === n && (n = {}), i(this, void 0, void 0, (function () { return o(this, (function (i) { return [2, this.client.send(this.baseCrudPath + "/import", { method: "PUT", params: n, body: {collections: t, deleteMissing: e} }).then((function () { return !0 }))] })) })) }, n }(w), k = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.load = function (e) { t.prototype.load.call(this, e), e.remoteIp = e.remoteIp || e.ip, this.url = "string" == typeof e.url ? e.url : "", this.method = "string" == typeof e.method ? e.method : "GET", this.status = "number" == typeof e.status ? e.status : 200, this.auth = "string" == typeof e.auth ? e.auth : "guest", this.remoteIp = "string" == typeof e.remoteIp ? e.remoteIp : "", this.userIp = "string" == typeof e.userIp ? e.userIp : "", this.referer = "string" == typeof e.referer ? e.referer : "", this.userAgent = "string" == typeof e.userAgent ? e.userAgent : "", this.meta = "object" == typeof e.meta && null !== e.meta ? e.meta : {} }, n }(h), j = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.getRequestsList = function (t, e, n) { return void 0 === t && (t = 1), void 0 === e && (e = 30), void 0 === n && (n = {}), n = Object.assign({ page: t, perPage: e }, n), this.client.send("/api/logs/requests", {method: "GET", params: n}).then((function (t) { var e = []; if (null == t ? void 0 : t.items) { t.items = (null == t ? void 0 : t.items) || []; for (var n = 0, i = t.items; n < i.length; n++) { var o = i[n]; e.push(new k(o)) } } return new g((null == t ? void 0 : t.page) || 1, (null == t ? void 0 : t.perPage) || 0, (null == t ? void 0 : t.totalItems) || 0, (null == t ? void 0 : t.totalPages) || 0, e) })) }, n.prototype.getRequest = function (t, e) { return void 0 === e && (e = {}), this.client.send("/api/logs/requests/" + encodeURIComponent(t), { method: "GET", params: e }).then((function (t) { return new k(t) })) }, n.prototype.getRequestsStats = function (t) { return void 0 === t && (t = {}), this.client.send("/api/logs/requests/stats", { method: "GET", params: t }).then((function (t) { return t })) }, n }(y), E = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.clientId = "", e.eventSource = null, e.subscriptions = {}, e.lastSentTopics = [], e.maxConnectTimeout = 1e4, e.reconnectAttempts = 0, e.maxReconnectAttempts = 1 / 0, e.predefinedReconnectIntervals = [200, 300, 500, 1e3, 1200, 1500, 2e3], e.pendingConnects = [], e } return e(n, t), Object.defineProperty(n.prototype, "isConnected", { get: function () { return !!this.eventSource && !!this.clientId && !this.pendingConnects.length }, enumerable: !1, configurable: !0 }), n.prototype.subscribe = function (t, e) { var n; return i(this, void 0, void 0, (function () { var r, s = this; return o(this, (function (a) { switch (a.label) { case 0: if (!t) throw new Error("topic must be set."); return r = function (t) { var n, i = t; try { n = JSON.parse(null == i ? void 0 : i.data) } catch (t) { } e(n || {}) }, this.subscriptions[t] || (this.subscriptions[t] = []), this.subscriptions[t].push(r), this.isConnected ? [3, 2] : [4, this.connect()]; case 1: return a.sent(), [3, 5]; case 2: return 1 !== this.subscriptions[t].length ? [3, 4] : [4, this.submitSubscriptions()]; case 3: return a.sent(), [3, 5]; case 4: null === (n = this.eventSource) || void 0 === n || n.addEventListener(t, r), a.label = 5; case 5: return [2, function () { return i(s, void 0, void 0, (function () { return o(this, (function (e) { return [2, this.unsubscribeByTopicAndListener(t, r)] })) })) }] } })) })) }, n.prototype.unsubscribe = function (t) { var e; return i(this, void 0, void 0, (function () { var n, i, r; return o(this, (function (o) { switch (o.label) { case 0: if (!this.hasSubscriptionListeners(t)) return [2]; if (t) { for (n = 0, i = this.subscriptions[t]; n < i.length; n++) r = i[n], null === (e = this.eventSource) || void 0 === e || e.removeEventListener(t, r); delete this.subscriptions[t] } else this.subscriptions = {}; return this.hasSubscriptionListeners() ? [3, 1] : (this.disconnect(), [3, 3]); case 1: return this.hasSubscriptionListeners(t) ? [3, 3] : [4, this.submitSubscriptions()]; case 2: o.sent(), o.label = 3; case 3: return [2] } })) })) }, n.prototype.unsubscribeByPrefix = function (t) { var e; return i(this, void 0, void 0, (function () { var n, i, r, s, a; return o(this, (function (o) { switch (o.label) { case 0: for (i in n = !1, this.subscriptions) if (i.startsWith(t)) { for (n = !0, r = 0, s = this.subscriptions[i]; r < s.length; r++) a = s[r], null === (e = this.eventSource) || void 0 === e || e.removeEventListener(i, a); delete this.subscriptions[i] } return n ? this.hasSubscriptionListeners() ? [4, this.submitSubscriptions()] : [3, 2] : [2]; case 1: return o.sent(), [3, 3]; case 2: this.disconnect(), o.label = 3; case 3: return [2] } })) })) }, n.prototype.unsubscribeByTopicAndListener = function (t, e) { var n; return i(this, void 0, void 0, (function () { var i, r; return o(this, (function (o) { switch (o.label) { case 0: if (!Array.isArray(this.subscriptions[t]) || !this.subscriptions[t].length) return [2]; for (i = !1, r = this.subscriptions[t].length - 1; r >= 0; r--) this.subscriptions[t][r] === e && (i = !0, delete this.subscriptions[t][r], this.subscriptions[t].splice(r, 1), null === (n = this.eventSource) || void 0 === n || n.removeEventListener(t, e)); return i ? (this.subscriptions[t].length || delete this.subscriptions[t], this.hasSubscriptionListeners() ? [3, 1] : (this.disconnect(), [3, 3])) : [2]; case 1: return this.hasSubscriptionListeners(t) ? [3, 3] : [4, this.submitSubscriptions()]; case 2: o.sent(), o.label = 3; case 3: return [2] } })) })) }, n.prototype.hasSubscriptionListeners = function (t) { var e, n; if (this.subscriptions = this.subscriptions || {}, t) return !!(null === (e = this.subscriptions[t]) || void 0 === e ? void 0 : e.length); for (var i in this.subscriptions) if (null === (n = this.subscriptions[i]) || void 0 === n ? void 0 : n.length) return !0; return !1 }, n.prototype.submitSubscriptions = function () { return i(this, void 0, void 0, (function () { return o(this, (function (t) { return this.clientId ? (this.addAllSubscriptionListeners(), this.lastSentTopics = this.getNonEmptySubscriptionTopics(), [2, this.client.send("/api/realtime", { method: "POST", body: {clientId: this.clientId, subscriptions: this.lastSentTopics}, params: {$cancelKey: "realtime_" + this.clientId} }).catch((function (t) { if (!(null == t ? void 0 : t.isAbort)) throw t }))]) : [2] })) })) }, n.prototype.getNonEmptySubscriptionTopics = function () { var t = []; for (var e in this.subscriptions) this.subscriptions[e].length && t.push(e); return t }, n.prototype.addAllSubscriptionListeners = function () { if (this.eventSource) for (var t in this.removeAllSubscriptionListeners(), this.subscriptions) for (var e = 0, n = this.subscriptions[t]; e < n.length; e++) { var i = n[e]; this.eventSource.addEventListener(t, i) } }, n.prototype.removeAllSubscriptionListeners = function () { if (this.eventSource) for (var t in this.subscriptions) for (var e = 0, n = this.subscriptions[t]; e < n.length; e++) { var i = n[e]; this.eventSource.removeEventListener(t, i) } }, n.prototype.connect = function () { return i(this, void 0, void 0, (function () { var t = this; return o(this, (function (e) { return this.reconnectAttempts > 0 ? [2] : [2, new Promise((function (e, n) { t.pendingConnects.push({resolve: e, reject: n}), t.pendingConnects.length > 1 || t.initConnect() }))] })) })) }, n.prototype.initConnect = function () { var t = this; this.disconnect(!0), clearTimeout(this.connectTimeoutId), this.connectTimeoutId = setTimeout((function () { t.connectErrorHandler(new Error("EventSource connect took too long.")) }), this.maxConnectTimeout), this.eventSource = new EventSource(this.client.buildUrl("/api/realtime")), this.eventSource.onerror = function (e) { t.connectErrorHandler(new Error("Failed to establish realtime connection.")) }, this.eventSource.addEventListener("PB_CONNECT", (function (e) { var n = e; t.clientId = null == n ? void 0 : n.lastEventId, t.submitSubscriptions().then((function () { return i(t, void 0, void 0, (function () { var t; return o(this, (function (e) { switch (e.label) { case 0: t = 3, e.label = 1; case 1: return this.hasUnsentSubscriptions() && t > 0 ? (t--, [4, this.submitSubscriptions()]) : [3, 3]; case 2: return e.sent(), [3, 1]; case 3: return [2] } })) })) })).then((function () { for (var e = 0, n = t.pendingConnects; e < n.length; e++) { n[e].resolve() } t.pendingConnects = [], t.reconnectAttempts = 0, clearTimeout(t.reconnectTimeoutId), clearTimeout(t.connectTimeoutId) })).catch((function (e) { t.clientId = "", t.connectErrorHandler(e) })) })) }, n.prototype.hasUnsentSubscriptions = function () { var t = this.getNonEmptySubscriptionTopics(); if (t.length != this.lastSentTopics.length) return !0; for (var e = 0, n = t; e < n.length; e++) { var i = n[e]; if (!this.lastSentTopics.includes(i)) return !0 } return !1 }, n.prototype.connectErrorHandler = function (t) { var e = this; if (clearTimeout(this.connectTimeoutId), clearTimeout(this.reconnectTimeoutId), !this.clientId && !this.reconnectAttempts || this.reconnectAttempts > this.maxReconnectAttempts) { for (var n = 0, i = this.pendingConnects; n < i.length; n++) { i[n].reject(new s(t)) } this.disconnect() } else { this.disconnect(!0); var o = this.predefinedReconnectIntervals[this.reconnectAttempts] || this.predefinedReconnectIntervals[this.predefinedReconnectIntervals.length - 1]; this.reconnectAttempts++, this.reconnectTimeoutId = setTimeout((function () { e.initConnect() }), o) } }, n.prototype.disconnect = function (t) { var e; if (void 0 === t && (t = !1), clearTimeout(this.connectTimeoutId), clearTimeout(this.reconnectTimeoutId), this.removeAllSubscriptionListeners(), null === (e = this.eventSource) || void 0 === e || e.close(), this.eventSource = null, this.clientId = "", !t) { this.reconnectAttempts = 0; for (var n = new s(new Error("Realtime disconnected.")), i = 0, o = this.pendingConnects; i < o.length; i++) { o[i].reject(n) } this.pendingConnects = [] } }, n }(y), A = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.check = function (t) { return void 0 === t && (t = {}), this.client.send("/api/health", {method: "GET", params: t}) }, n }(y), R = function () { function t(t, e, n) { void 0 === t && (t = "/"), void 0 === n && (n = "en-US"), this.cancelControllers = {}, this.recordServices = {}, this.enableAutoCancellation = !0, this.baseUrl = t, this.lang = n, this.authStore = e || new m, this.admins = new S(this), this.collections = new T(this), this.logs = new j(this), this.settings = new b(this), this.realtime = new E(this), this.health = new A(this) } return t.prototype.collection = function (t) { return this.recordServices[t] || (this.recordServices[t] = new O(this, t)), this.recordServices[t] }, t.prototype.autoCancellation = function (t) { return this.enableAutoCancellation = !!t, this }, t.prototype.cancelRequest = function (t) { return this.cancelControllers[t] && (this.cancelControllers[t].abort(), delete this.cancelControllers[t]), this }, t.prototype.cancelAllRequests = function () { for (var t in this.cancelControllers) this.cancelControllers[t].abort(); return this.cancelControllers = {}, this }, t.prototype.send = function (t, e) { var n, r, a, u, c, l, d, h; return i(this, void 0, void 0, (function () { var p, f, v, m, y, b = this; return o(this, (function (g) { return (p = Object.assign({method: "GET"}, e)).body && "FormData" !== p.body.constructor.name && ("string" != typeof p.body && (p.body = JSON.stringify(p.body)), void 0 === (null === (n = null == p ? void 0 : p.headers) || void 0 === n ? void 0 : n["Content-Type"]) && (p.headers = Object.assign({}, p.headers, {"Content-Type": "application/json"}))), void 0 === (null === (r = null == p ? void 0 : p.headers) || void 0 === r ? void 0 : r["Accept-Language"]) && (p.headers = Object.assign({}, p.headers, {"Accept-Language": this.lang})), (null === (a = this.authStore) || void 0 === a ? void 0 : a.token) && void 0 === (null === (u = null == p ? void 0 : p.headers) || void 0 === u ? void 0 : u.Authorization) && (p.headers = Object.assign({}, p.headers, {Authorization: this.authStore.token})), this.enableAutoCancellation && !1 !== (null === (c = p.params) || void 0 === c ? void 0 : c.$autoCancel) && (f = (null === (l = p.params) || void 0 === l ? void 0 : l.$cancelKey) || (p.method || "GET") + t, this.cancelRequest(f), v = new AbortController, this.cancelControllers[f] = v, p.signal = v.signal), null === (d = p.params) || void 0 === d || delete d.$autoCancel, null === (h = p.params) || void 0 === h || delete h.$cancelKey, m = this.buildUrl(t), void 0 !== p.params && ((y = this.serializeQueryParams(p.params)) && (m += (m.includes("?") ? "&" : "?") + y), delete p.params), this.beforeSend && (p = Object.assign({}, this.beforeSend(m, p))), [2, fetch(m, p).then((function (t) { return i(b, void 0, void 0, (function () { var e; return o(this, (function (n) { switch (n.label) { case 0: e = {}, n.label = 1; case 1: return n.trys.push([1, 3, , 4]), [4, t.json()]; case 2: return e = n.sent(), [3, 4]; case 3: return n.sent(), [3, 4]; case 4: if (this.afterSend && (e = this.afterSend(t, e)), t.status >= 400) throw new s({ url: t.url, status: t.status, data: e }); return [2, e] } })) })) })).catch((function (t) { throw new s(t) }))] })) })) }, t.prototype.getFileUrl = function (t, e, n) { void 0 === n && (n = {}); var i = []; i.push("api"), i.push("files"), i.push(encodeURIComponent(t.collectionId || t.collectionName)), i.push(encodeURIComponent(t.id)), i.push(encodeURIComponent(e)); var o = this.buildUrl(i.join("/")); if (Object.keys(n).length) { var r = new URLSearchParams(n); o += (o.includes("?") ? "&" : "?") + r } return o }, t.prototype.buildUrl = function (t) { var e = this.baseUrl + (this.baseUrl.endsWith("/") ? "" : "/"); return t && (e += t.startsWith("/") ? t.substring(1) : t), e }, t.prototype.serializeQueryParams = function (t) { var e = []; for (var n in t) if (null !== t[n]) { var i = t[n], o = encodeURIComponent(n); if (Array.isArray(i)) for (var r = 0, s = i; r < s.length; r++) { var a = s[r]; e.push(o + "=" + encodeURIComponent(a)) } else i instanceof Date ? e.push(o + "=" + encodeURIComponent(i.toISOString())) : null !== typeof i && "object" == typeof i ? e.push(o + "=" + encodeURIComponent(JSON.stringify(i))) : e.push(o + "=" + encodeURIComponent(i)) } return e.join("&") }, t }(); export { f as Admin, v as BaseAuthStore, h as BaseModel, s as ClientResponseError, I as Collection, C as ExternalAuth, g as ListResult, m as LocalAuthStore, k as LogRequest, p as Record, P as SchemaField, R as default, d as getTokenPayload }; //# sourceMappingURL=pocketbase.esm.js.map