@supabase/supabase-js 1.28.0 → 1.28.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.
package/README.md CHANGED
@@ -1,15 +1,19 @@
1
1
  # `supabase-js`
2
2
 
3
- An isomorphic Javascript client for Supabase.
3
+ An isomorphic JavaScript client for Supabase.
4
4
 
5
- - Documentation: https://supabase.io/docs/client/supabase-client
5
+ **Documentation:** https://supabase.io/docs/client/supabase-client
6
6
 
7
7
  ## Usage
8
8
 
9
+ First of all, you need to install the library:
10
+
9
11
  ```sh
10
12
  npm install @supabase/supabase-js
11
13
  ```
12
14
 
15
+ Then you're able to import the library and establish the connection with the database:
16
+
13
17
  ```js
14
18
  import { createClient } from '@supabase/supabase-js'
15
19
 
@@ -19,19 +23,27 @@ const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key
19
23
 
20
24
  ### UMD
21
25
 
22
- You can now use plain `<script>`s to import supabase-js from CDNs, like
26
+ You can now use plain `<script>`s to import supabase-js from CDNs, like:
27
+
28
+ ```html
29
+ <script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js"></script>
30
+ ```
23
31
 
24
- `<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js"></script>`
25
- or
26
- `<script src="https://unpkg.com/@supabase/supabase-js"></script>`.
32
+ or even:
33
+
34
+ ```html
35
+ <script src="https://unpkg.com/@supabase/supabase-js"></script>
36
+ ```
27
37
 
28
38
  Then you can use it from a global `supabase` variable:
29
39
 
30
40
  ```html
31
41
  <script>
32
- const { createClient } = supabase
33
- supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key')
34
- ...
42
+ const { createClient } = supabase
43
+ const _supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key')
44
+
45
+ console.log('Supabase Instance: ', _supabase)
46
+ // ...
35
47
  </script>
36
48
  ```
37
49
 
@@ -21,7 +21,12 @@ export default class SupabaseClient {
21
21
  protected authUrl: string;
22
22
  protected storageUrl: string;
23
23
  protected realtime: RealtimeClient;
24
+ protected multiTab: boolean;
24
25
  protected fetch?: Fetch;
26
+ protected changedAccessToken: string | undefined;
27
+ protected headers: {
28
+ [key: string]: string;
29
+ };
25
30
  /**
26
31
  * Create a new client for use in the browser.
27
32
  * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.
@@ -32,6 +37,7 @@ export default class SupabaseClient {
32
37
  * @param options.detectSessionInUrl Set to "true" if you want to automatically detects OAuth grants in the URL and signs in the user.
33
38
  * @param options.headers Any additional headers to send with each network request.
34
39
  * @param options.realtime Options passed along to realtime-js constructor.
40
+ * @param options.multiTab Set to "false" if you want to disable multi-tab/window events.
35
41
  * @param options.fetch A custom fetch implementation.
36
42
  */
37
43
  constructor(supabaseUrl: string, supabaseKey: string, options?: SupabaseClientOptions);
@@ -58,6 +64,10 @@ export default class SupabaseClient {
58
64
  head?: boolean;
59
65
  count?: null | 'exact' | 'planned' | 'estimated';
60
66
  }): import("@supabase/postgrest-js").PostgrestFilterBuilder<T>;
67
+ /**
68
+ * Remove all active subscriptions.
69
+ */
70
+ removeAllSubscriptions(): void;
61
71
  /**
62
72
  * Removes an active subscription and returns the number of open connections.
63
73
  *
@@ -74,5 +84,8 @@ export default class SupabaseClient {
74
84
  private _initPostgRESTClient;
75
85
  private _getAuthHeaders;
76
86
  private _closeChannel;
87
+ private _listenForMultiTabEvents;
88
+ private _listenForAuthEvents;
89
+ private _handleTokenChanged;
77
90
  }
78
91
  //# sourceMappingURL=SupabaseClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseClient.d.ts","sourceRoot":"","sources":["../../src/SupabaseClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAyB,MAAM,uBAAuB,CAAA;AAUnG;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IA2B/B,SAAS,CAAC,WAAW,EAAE,MAAM;IAC7B,SAAS,CAAC,WAAW,EAAE,MAAM;IA3B/B;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAA;IAExB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,WAAW,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;IAC5B,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAA;IAClC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IAEvB;;;;;;;;;;;OAWG;gBAES,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAC7B,OAAO,CAAC,EAAE,qBAAqB;IAyBjC;;OAEG;IACH,IAAI,OAAO,0BAEV;IAED;;;;OAIG;IACH,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAWrD;;;;;;;;OAQG;IACH,GAAG,CAAC,CAAC,GAAG,GAAG,EACT,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,EACf,EACE,IAAY,EACZ,KAAY,GACb,GAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;KAAO;IAM9E;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,EAAE,oBAAoB;YAiBvC,kBAAkB;IAMhC;;OAEG;IACH,gBAAgB,IAAI,oBAAoB,EAAE;IAI1C,OAAO,CAAC,uBAAuB;IAsB/B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,aAAa;CAWtB"}
1
+ {"version":3,"file":"SupabaseClient.d.ts","sourceRoot":"","sources":["../../src/SupabaseClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAG5D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAyB,MAAM,uBAAuB,CAAA;AAWnG;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAiC/B,SAAS,CAAC,WAAW,EAAE,MAAM;IAC7B,SAAS,CAAC,WAAW,EAAE,MAAM;IAjC/B;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAA;IAExB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,WAAW,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;IAC5B,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAA;IAClC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC3B,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACvB,SAAS,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAA;IAChD,SAAS,CAAC,OAAO,EAAE;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KACtB,CAAA;IAED;;;;;;;;;;;;OAYG;gBAES,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAC7B,OAAO,CAAC,EAAE,qBAAqB;IA6BjC;;OAEG;IACH,IAAI,OAAO,0BAEV;IAED;;;;OAIG;IACH,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAWrD;;;;;;;;OAQG;IACH,GAAG,CAAC,CAAC,GAAG,GAAG,EACT,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,EACf,EACE,IAAY,EACZ,KAAY,GACb,GAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;KAAO;IAM9E;;OAEG;IACH,sBAAsB;IAMtB;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,EAAE,oBAAoB;YAiBvC,kBAAkB;IAMhC;;OAEG;IACH,gBAAgB,IAAI,oBAAoB,EAAE;IAI1C,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,mBAAmB;CAsB5B"}
@@ -21,6 +21,7 @@ const DEFAULT_OPTIONS = {
21
21
  autoRefreshToken: true,
22
22
  persistSession: true,
23
23
  detectSessionInUrl: true,
24
+ multiTab: true,
24
25
  headers: constants_1.DEFAULT_HEADERS,
25
26
  };
26
27
  /**
@@ -39,6 +40,7 @@ class SupabaseClient {
39
40
  * @param options.detectSessionInUrl Set to "true" if you want to automatically detects OAuth grants in the URL and signs in the user.
40
41
  * @param options.headers Any additional headers to send with each network request.
41
42
  * @param options.realtime Options passed along to realtime-js constructor.
43
+ * @param options.multiTab Set to "false" if you want to disable multi-tab/window events.
42
44
  * @param options.fetch A custom fetch implementation.
43
45
  */
44
46
  constructor(supabaseUrl, supabaseKey, options) {
@@ -48,16 +50,20 @@ class SupabaseClient {
48
50
  throw new Error('supabaseUrl is required.');
49
51
  if (!supabaseKey)
50
52
  throw new Error('supabaseKey is required.');
51
- supabaseUrl = helpers_1.stripTrailingSlash(supabaseUrl);
53
+ supabaseUrl = (0, helpers_1.stripTrailingSlash)(supabaseUrl);
52
54
  const settings = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);
53
55
  this.restUrl = `${supabaseUrl}/rest/v1`;
54
56
  this.realtimeUrl = `${supabaseUrl}/realtime/v1`.replace('http', 'ws');
55
57
  this.authUrl = `${supabaseUrl}/auth/v1`;
56
58
  this.storageUrl = `${supabaseUrl}/storage/v1`;
57
59
  this.schema = settings.schema;
58
- this.auth = this._initSupabaseAuthClient(settings);
59
- this.realtime = this._initRealtimeClient(settings.realtime);
60
+ this.multiTab = settings.multiTab;
60
61
  this.fetch = settings.fetch;
62
+ this.headers = Object.assign(Object.assign({}, constants_1.DEFAULT_HEADERS), options === null || options === void 0 ? void 0 : options.headers);
63
+ this.auth = this._initSupabaseAuthClient(settings);
64
+ this.realtime = this._initRealtimeClient(Object.assign({ headers: this.headers }, settings.realtime));
65
+ this._listenForAuthEvents();
66
+ this._listenForMultiTabEvents();
61
67
  // In the future we might allow the user to pass in a logger to receive these events.
62
68
  // this.realtime.onOpen(() => console.log('OPEN'))
63
69
  // this.realtime.onClose(() => console.log('CLOSED'))
@@ -97,6 +103,14 @@ class SupabaseClient {
97
103
  const rest = this._initPostgRESTClient();
98
104
  return rest.rpc(fn, params, { head, count });
99
105
  }
106
+ /**
107
+ * Remove all active subscriptions.
108
+ */
109
+ removeAllSubscriptions() {
110
+ this.realtime.channels.forEach((sub) => {
111
+ this.removeSubscription(sub);
112
+ });
113
+ }
100
114
  /**
101
115
  * Removes an active subscription and returns the number of open connections.
102
116
  *
@@ -132,7 +146,7 @@ class SupabaseClient {
132
146
  getSubscriptions() {
133
147
  return this.realtime.channels;
134
148
  }
135
- _initSupabaseAuthClient({ autoRefreshToken, persistSession, detectSessionInUrl, localStorage, headers, }) {
149
+ _initSupabaseAuthClient({ autoRefreshToken, persistSession, detectSessionInUrl, localStorage, headers, fetch, }) {
136
150
  const authHeaders = {
137
151
  Authorization: `Bearer ${this.supabaseKey}`,
138
152
  apikey: `${this.supabaseKey}`,
@@ -144,7 +158,7 @@ class SupabaseClient {
144
158
  persistSession,
145
159
  detectSessionInUrl,
146
160
  localStorage,
147
- fetch: this.fetch,
161
+ fetch,
148
162
  });
149
163
  }
150
164
  _initRealtimeClient(options) {
@@ -159,7 +173,7 @@ class SupabaseClient {
159
173
  }
160
174
  _getAuthHeaders() {
161
175
  var _a, _b;
162
- const headers = constants_1.DEFAULT_HEADERS;
176
+ const headers = this.headers;
163
177
  const authBearer = (_b = (_a = this.auth.session()) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : this.supabaseKey;
164
178
  headers['apikey'] = this.supabaseKey;
165
179
  headers['Authorization'] = `Bearer ${authBearer}`;
@@ -176,6 +190,58 @@ class SupabaseClient {
176
190
  .receive('error', (e) => reject(e));
177
191
  });
178
192
  }
193
+ _listenForMultiTabEvents() {
194
+ if (!this.multiTab || !(0, helpers_1.isBrowser)() || !(window === null || window === void 0 ? void 0 : window.addEventListener)) {
195
+ return null;
196
+ }
197
+ try {
198
+ return window === null || window === void 0 ? void 0 : window.addEventListener('storage', (e) => {
199
+ var _a, _b, _c;
200
+ if (e.key === constants_1.STORAGE_KEY) {
201
+ const newSession = JSON.parse(String(e.newValue));
202
+ const accessToken = (_b = (_a = newSession === null || newSession === void 0 ? void 0 : newSession.currentSession) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : undefined;
203
+ const previousAccessToken = (_c = this.auth.session()) === null || _c === void 0 ? void 0 : _c.access_token;
204
+ if (!accessToken) {
205
+ this._handleTokenChanged('SIGNED_OUT', accessToken, 'STORAGE');
206
+ }
207
+ else if (!previousAccessToken && accessToken) {
208
+ this._handleTokenChanged('SIGNED_IN', accessToken, 'STORAGE');
209
+ }
210
+ else if (previousAccessToken !== accessToken) {
211
+ this._handleTokenChanged('TOKEN_REFRESHED', accessToken, 'STORAGE');
212
+ }
213
+ }
214
+ });
215
+ }
216
+ catch (error) {
217
+ console.error('_listenForMultiTabEvents', error);
218
+ return null;
219
+ }
220
+ }
221
+ _listenForAuthEvents() {
222
+ let { data } = this.auth.onAuthStateChange((event, session) => {
223
+ this._handleTokenChanged(event, session === null || session === void 0 ? void 0 : session.access_token, 'CLIENT');
224
+ });
225
+ return data;
226
+ }
227
+ _handleTokenChanged(event, token, source) {
228
+ if ((event === 'TOKEN_REFRESHED' || event === 'SIGNED_IN') &&
229
+ this.changedAccessToken !== token) {
230
+ // Token has changed
231
+ this.realtime.setAuth(token);
232
+ // Ideally we should call this.auth.recoverSession() - need to make public
233
+ // to trigger a "SIGNED_IN" event on this client.
234
+ if (source == 'STORAGE')
235
+ this.auth.setAuth(token);
236
+ this.changedAccessToken = token;
237
+ }
238
+ else if (event === 'SIGNED_OUT' || event === 'USER_DELETED') {
239
+ // Token is removed
240
+ this.removeAllSubscriptions();
241
+ if (source == 'STORAGE')
242
+ this.auth.signOut();
243
+ }
244
+ }
179
245
  }
180
246
  exports.default = SupabaseClient;
181
247
  //# sourceMappingURL=SupabaseClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseClient.js","sourceRoot":"","sources":["../../src/SupabaseClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SupabaseClient.js","sourceRoot":"","sources":["../../src/SupabaseClient.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+CAA8D;AAC9D,2CAA6D;AAE7D,iEAA6D;AAC7D,qEAAiE;AACjE,qDAA4D;AAC5D,yDAAwD;AAExD,uDAAmG;AAEnG,MAAM,eAAe,GAAG;IACtB,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,IAAI;IACpB,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,2BAAe;CACzB,CAAA;AAED;;;;GAIG;AACH,MAAqB,cAAc;IAmBjC;;;;;;;;;;;;OAYG;IACH,YACY,WAAmB,EACnB,WAAmB,EAC7B,OAA+B;QAFrB,gBAAW,GAAX,WAAW,CAAQ;QACnB,gBAAW,GAAX,WAAW,CAAQ;QAG7B,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7D,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAE7D,WAAW,GAAG,IAAA,4BAAkB,EAAC,WAAW,CAAC,CAAA;QAE7C,MAAM,QAAQ,mCAAQ,eAAe,GAAK,OAAO,CAAE,CAAA;QACnD,IAAI,CAAC,OAAO,GAAG,GAAG,WAAW,UAAU,CAAA;QACvC,IAAI,CAAC,WAAW,GAAG,GAAG,WAAW,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrE,IAAI,CAAC,OAAO,GAAG,GAAG,WAAW,UAAU,CAAA;QACvC,IAAI,CAAC,UAAU,GAAG,GAAG,WAAW,aAAa,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;QACjC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;QAC3B,IAAI,CAAC,OAAO,mCAAQ,2BAAe,GAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAE,CAAA;QAE1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,iBAAG,OAAO,EAAE,IAAI,CAAC,OAAO,IAAK,QAAQ,CAAC,QAAQ,EAAG,CAAA;QAEzF,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC3B,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAE/B,qFAAqF;QACrF,kDAAkD;QAClD,qDAAqD;QACrD,sEAAsE;IACxE,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,kCAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACvF,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAU,KAAa;QACzB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,CAAA;QACtC,OAAO,IAAI,2CAAoB,CAAI,GAAG,EAAE;YACtC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,GAAG,CACD,EAAU,EACV,MAAe,EACf,EACE,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,IAAI,MAC4D,EAAE;QAE5E,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QACxC,OAAO,IAAI,CAAC,GAAG,CAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACjD,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACrC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,YAAkC;QACnD,OAAO,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,EAAE;YACnC,IAAI;gBACF,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;gBAE3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAA;gBACxD,IAAI,CAAC,iBAAiB,EAAE;oBACtB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;oBAClD,IAAI,KAAK;wBAAE,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;iBACrC;gBACD,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAA;aAC7D;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;aAC1B;QACH,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC;IAEa,kBAAkB,CAAC,YAAkC;;YACjE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;gBAC5B,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;aACvC;QACH,CAAC;KAAA;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAA;IAC/B,CAAC;IAEO,uBAAuB,CAAC,EAC9B,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,OAAO,EACP,KAAK,GACiB;QACtB,MAAM,WAAW,GAAG;YAClB,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;YAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;SAC9B,CAAA;QACD,OAAO,IAAI,uCAAkB,CAAC;YAC5B,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,OAAO,kCAAO,OAAO,GAAK,WAAW,CAAE;YACvC,gBAAgB;YAChB,cAAc;YACd,kBAAkB;YAClB,YAAY;YACZ,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IAEO,mBAAmB,CAAC,OAA+B;QACzD,OAAO,IAAI,4BAAc,CAAC,IAAI,CAAC,WAAW,kCACrC,OAAO,KACV,MAAM,kCAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAE,MAAM,EAAE,IAAI,CAAC,WAAW,OACtD,CAAA;IACJ,CAAC;IAEO,oBAAoB;QAC1B,OAAO,IAAI,8BAAe,CAAC,IAAI,CAAC,OAAO,EAAE;YACvC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC;IAEO,eAAe;;QACrB,MAAM,OAAO,GAA8B,IAAI,CAAC,OAAO,CAAA;QACvD,MAAM,UAAU,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,0CAAE,YAAY,mCAAI,IAAI,CAAC,WAAW,CAAA;QACxE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAA;QACpC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,UAAU,EAAE,CAAA;QACjD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,aAAa,CAAC,YAAkC;QACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,YAAY;iBACT,WAAW,EAAE;iBACb,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;gBAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBAClC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;YACtB,CAAC,CAAC;iBACD,OAAO,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAA,mBAAS,GAAE,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAA,EAAE;YAC/D,OAAO,IAAI,CAAA;SACZ;QAED,IAAI;YACF,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAe,EAAE,EAAE;;gBAC7D,IAAI,CAAC,CAAC,GAAG,KAAK,uBAAW,EAAE;oBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;oBACjD,MAAM,WAAW,GACf,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,cAAc,0CAAE,YAAY,mCAAI,SAAS,CAAA;oBACvD,MAAM,mBAAmB,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,0CAAE,YAAY,CAAA;oBAC7D,IAAI,CAAC,WAAW,EAAE;wBAChB,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;qBAC/D;yBAAM,IAAI,CAAC,mBAAmB,IAAI,WAAW,EAAE;wBAC9C,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;qBAC9D;yBAAM,IAAI,mBAAmB,KAAK,WAAW,EAAE;wBAC9C,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;qBACpE;iBACF;YACH,CAAC,CAAC,CAAA;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;YAChD,OAAO,IAAI,CAAA;SACZ;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC5D,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EAAE,QAAQ,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,mBAAmB,CACzB,KAAsB,EACtB,KAAyB,EACzB,MAA4B;QAE5B,IACE,CAAC,KAAK,KAAK,iBAAiB,IAAI,KAAK,KAAK,WAAW,CAAC;YACtD,IAAI,CAAC,kBAAkB,KAAK,KAAK,EACjC;YACA,oBAAoB;YACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAM,CAAC,CAAA;YAC7B,0EAA0E;YAC1E,iDAAiD;YACjD,IAAI,MAAM,IAAI,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,CAAA;YAElD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAA;SAChC;aAAM,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,cAAc,EAAE;YAC7D,mBAAmB;YACnB,IAAI,CAAC,sBAAsB,EAAE,CAAA;YAC7B,IAAI,MAAM,IAAI,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;SAC7C;IACH,CAAC;CACF;AA1QD,iCA0QC"}
@@ -1,4 +1,5 @@
1
1
  export declare const DEFAULT_HEADERS: {
2
2
  'X-Client-Info': string;
3
3
  };
4
+ export declare const STORAGE_KEY = "supabase.auth.token";
4
5
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;CAAgD,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;CAAgD,CAAA;AAC5E,eAAO,MAAM,WAAW,wBAAwB,CAAA"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_HEADERS = void 0;
3
+ exports.STORAGE_KEY = exports.DEFAULT_HEADERS = void 0;
4
4
  // constants.ts
5
5
  const version_1 = require("./version");
6
6
  exports.DEFAULT_HEADERS = { 'X-Client-Info': `supabase-js/${version_1.version}` };
7
+ exports.STORAGE_KEY = 'supabase.auth.token';
7
8
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":";;;AAAA,eAAe;AACf,uCAAmC;AACtB,QAAA,eAAe,GAAG,EAAE,eAAe,EAAE,eAAe,iBAAO,EAAE,EAAE,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":";;;AAAA,eAAe;AACf,uCAAmC;AACtB,QAAA,eAAe,GAAG,EAAE,eAAe,EAAE,eAAe,iBAAO,EAAE,EAAE,CAAA;AAC/D,QAAA,WAAW,GAAG,qBAAqB,CAAA"}
@@ -1,3 +1,4 @@
1
1
  export declare function uuid(): string;
2
2
  export declare function stripTrailingSlash(url: string): string;
3
+ export declare const isBrowser: () => boolean;
3
4
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,IAAI,WAMnB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,UAE7C"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,IAAI,WAMnB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,UAE7C;AAED,eAAO,MAAM,SAAS,eAAsC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // helpers.ts
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.stripTrailingSlash = exports.uuid = void 0;
4
+ exports.isBrowser = exports.stripTrailingSlash = exports.uuid = void 0;
5
5
  function uuid() {
6
6
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
7
7
  var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;
@@ -13,4 +13,6 @@ function stripTrailingSlash(url) {
13
13
  return url.replace(/\/$/, '');
14
14
  }
15
15
  exports.stripTrailingSlash = stripTrailingSlash;
16
+ const isBrowser = () => typeof window !== 'undefined';
17
+ exports.isBrowser = isBrowser;
16
18
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":";AAAA,aAAa;;;AAEb,SAAgB,IAAI;IAClB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAC9B,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACpC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC;AAND,oBAMC;AAED,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC;AAFD,gDAEC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":";AAAA,aAAa;;;AAEb,SAAgB,IAAI;IAClB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAC9B,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACpC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC;AAND,oBAMC;AAED,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC;AAFD,gDAEC;AAEM,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,CAAA;AAA/C,QAAA,SAAS,aAAsC"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.28.0";
1
+ export declare const version = "1.28.4";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
4
  // generated by genversion
5
- exports.version = '1.28.0';
5
+ exports.version = '1.28.4';
6
6
  //# sourceMappingURL=version.js.map
@@ -21,7 +21,12 @@ export default class SupabaseClient {
21
21
  protected authUrl: string;
22
22
  protected storageUrl: string;
23
23
  protected realtime: RealtimeClient;
24
+ protected multiTab: boolean;
24
25
  protected fetch?: Fetch;
26
+ protected changedAccessToken: string | undefined;
27
+ protected headers: {
28
+ [key: string]: string;
29
+ };
25
30
  /**
26
31
  * Create a new client for use in the browser.
27
32
  * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.
@@ -32,6 +37,7 @@ export default class SupabaseClient {
32
37
  * @param options.detectSessionInUrl Set to "true" if you want to automatically detects OAuth grants in the URL and signs in the user.
33
38
  * @param options.headers Any additional headers to send with each network request.
34
39
  * @param options.realtime Options passed along to realtime-js constructor.
40
+ * @param options.multiTab Set to "false" if you want to disable multi-tab/window events.
35
41
  * @param options.fetch A custom fetch implementation.
36
42
  */
37
43
  constructor(supabaseUrl: string, supabaseKey: string, options?: SupabaseClientOptions);
@@ -58,6 +64,10 @@ export default class SupabaseClient {
58
64
  head?: boolean;
59
65
  count?: null | 'exact' | 'planned' | 'estimated';
60
66
  }): import("@supabase/postgrest-js").PostgrestFilterBuilder<T>;
67
+ /**
68
+ * Remove all active subscriptions.
69
+ */
70
+ removeAllSubscriptions(): void;
61
71
  /**
62
72
  * Removes an active subscription and returns the number of open connections.
63
73
  *
@@ -74,5 +84,8 @@ export default class SupabaseClient {
74
84
  private _initPostgRESTClient;
75
85
  private _getAuthHeaders;
76
86
  private _closeChannel;
87
+ private _listenForMultiTabEvents;
88
+ private _listenForAuthEvents;
89
+ private _handleTokenChanged;
77
90
  }
78
91
  //# sourceMappingURL=SupabaseClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseClient.d.ts","sourceRoot":"","sources":["../../src/SupabaseClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAyB,MAAM,uBAAuB,CAAA;AAUnG;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IA2B/B,SAAS,CAAC,WAAW,EAAE,MAAM;IAC7B,SAAS,CAAC,WAAW,EAAE,MAAM;IA3B/B;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAA;IAExB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,WAAW,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;IAC5B,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAA;IAClC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IAEvB;;;;;;;;;;;OAWG;gBAES,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAC7B,OAAO,CAAC,EAAE,qBAAqB;IAyBjC;;OAEG;IACH,IAAI,OAAO,0BAEV;IAED;;;;OAIG;IACH,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAWrD;;;;;;;;OAQG;IACH,GAAG,CAAC,CAAC,GAAG,GAAG,EACT,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,EACf,EACE,IAAY,EACZ,KAAY,GACb,GAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;KAAO;IAM9E;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,EAAE,oBAAoB;YAiBvC,kBAAkB;IAMhC;;OAEG;IACH,gBAAgB,IAAI,oBAAoB,EAAE;IAI1C,OAAO,CAAC,uBAAuB;IAsB/B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,aAAa;CAWtB"}
1
+ {"version":3,"file":"SupabaseClient.d.ts","sourceRoot":"","sources":["../../src/SupabaseClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAG5D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAyB,MAAM,uBAAuB,CAAA;AAWnG;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAiC/B,SAAS,CAAC,WAAW,EAAE,MAAM;IAC7B,SAAS,CAAC,WAAW,EAAE,MAAM;IAjC/B;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAA;IAExB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,WAAW,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;IAC5B,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAA;IAClC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC3B,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACvB,SAAS,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAA;IAChD,SAAS,CAAC,OAAO,EAAE;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KACtB,CAAA;IAED;;;;;;;;;;;;OAYG;gBAES,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAC7B,OAAO,CAAC,EAAE,qBAAqB;IA6BjC;;OAEG;IACH,IAAI,OAAO,0BAEV;IAED;;;;OAIG;IACH,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAWrD;;;;;;;;OAQG;IACH,GAAG,CAAC,CAAC,GAAG,GAAG,EACT,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,EACf,EACE,IAAY,EACZ,KAAY,GACb,GAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;KAAO;IAM9E;;OAEG;IACH,sBAAsB;IAMtB;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,EAAE,oBAAoB;YAiBvC,kBAAkB;IAMhC;;OAEG;IACH,gBAAgB,IAAI,oBAAoB,EAAE;IAI1C,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,mBAAmB;CAsB5B"}
@@ -7,8 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { DEFAULT_HEADERS } from './lib/constants';
11
- import { stripTrailingSlash } from './lib/helpers';
10
+ import { DEFAULT_HEADERS, STORAGE_KEY } from './lib/constants';
11
+ import { stripTrailingSlash, isBrowser } from './lib/helpers';
12
12
  import { SupabaseAuthClient } from './lib/SupabaseAuthClient';
13
13
  import { SupabaseQueryBuilder } from './lib/SupabaseQueryBuilder';
14
14
  import { SupabaseStorageClient } from '@supabase/storage-js';
@@ -19,6 +19,7 @@ const DEFAULT_OPTIONS = {
19
19
  autoRefreshToken: true,
20
20
  persistSession: true,
21
21
  detectSessionInUrl: true,
22
+ multiTab: true,
22
23
  headers: DEFAULT_HEADERS,
23
24
  };
24
25
  /**
@@ -37,6 +38,7 @@ export default class SupabaseClient {
37
38
  * @param options.detectSessionInUrl Set to "true" if you want to automatically detects OAuth grants in the URL and signs in the user.
38
39
  * @param options.headers Any additional headers to send with each network request.
39
40
  * @param options.realtime Options passed along to realtime-js constructor.
41
+ * @param options.multiTab Set to "false" if you want to disable multi-tab/window events.
40
42
  * @param options.fetch A custom fetch implementation.
41
43
  */
42
44
  constructor(supabaseUrl, supabaseKey, options) {
@@ -53,9 +55,13 @@ export default class SupabaseClient {
53
55
  this.authUrl = `${supabaseUrl}/auth/v1`;
54
56
  this.storageUrl = `${supabaseUrl}/storage/v1`;
55
57
  this.schema = settings.schema;
56
- this.auth = this._initSupabaseAuthClient(settings);
57
- this.realtime = this._initRealtimeClient(settings.realtime);
58
+ this.multiTab = settings.multiTab;
58
59
  this.fetch = settings.fetch;
60
+ this.headers = Object.assign(Object.assign({}, DEFAULT_HEADERS), options === null || options === void 0 ? void 0 : options.headers);
61
+ this.auth = this._initSupabaseAuthClient(settings);
62
+ this.realtime = this._initRealtimeClient(Object.assign({ headers: this.headers }, settings.realtime));
63
+ this._listenForAuthEvents();
64
+ this._listenForMultiTabEvents();
59
65
  // In the future we might allow the user to pass in a logger to receive these events.
60
66
  // this.realtime.onOpen(() => console.log('OPEN'))
61
67
  // this.realtime.onClose(() => console.log('CLOSED'))
@@ -95,6 +101,14 @@ export default class SupabaseClient {
95
101
  const rest = this._initPostgRESTClient();
96
102
  return rest.rpc(fn, params, { head, count });
97
103
  }
104
+ /**
105
+ * Remove all active subscriptions.
106
+ */
107
+ removeAllSubscriptions() {
108
+ this.realtime.channels.forEach((sub) => {
109
+ this.removeSubscription(sub);
110
+ });
111
+ }
98
112
  /**
99
113
  * Removes an active subscription and returns the number of open connections.
100
114
  *
@@ -130,7 +144,7 @@ export default class SupabaseClient {
130
144
  getSubscriptions() {
131
145
  return this.realtime.channels;
132
146
  }
133
- _initSupabaseAuthClient({ autoRefreshToken, persistSession, detectSessionInUrl, localStorage, headers, }) {
147
+ _initSupabaseAuthClient({ autoRefreshToken, persistSession, detectSessionInUrl, localStorage, headers, fetch, }) {
134
148
  const authHeaders = {
135
149
  Authorization: `Bearer ${this.supabaseKey}`,
136
150
  apikey: `${this.supabaseKey}`,
@@ -142,7 +156,7 @@ export default class SupabaseClient {
142
156
  persistSession,
143
157
  detectSessionInUrl,
144
158
  localStorage,
145
- fetch: this.fetch,
159
+ fetch,
146
160
  });
147
161
  }
148
162
  _initRealtimeClient(options) {
@@ -157,7 +171,7 @@ export default class SupabaseClient {
157
171
  }
158
172
  _getAuthHeaders() {
159
173
  var _a, _b;
160
- const headers = DEFAULT_HEADERS;
174
+ const headers = this.headers;
161
175
  const authBearer = (_b = (_a = this.auth.session()) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : this.supabaseKey;
162
176
  headers['apikey'] = this.supabaseKey;
163
177
  headers['Authorization'] = `Bearer ${authBearer}`;
@@ -174,5 +188,57 @@ export default class SupabaseClient {
174
188
  .receive('error', (e) => reject(e));
175
189
  });
176
190
  }
191
+ _listenForMultiTabEvents() {
192
+ if (!this.multiTab || !isBrowser() || !(window === null || window === void 0 ? void 0 : window.addEventListener)) {
193
+ return null;
194
+ }
195
+ try {
196
+ return window === null || window === void 0 ? void 0 : window.addEventListener('storage', (e) => {
197
+ var _a, _b, _c;
198
+ if (e.key === STORAGE_KEY) {
199
+ const newSession = JSON.parse(String(e.newValue));
200
+ const accessToken = (_b = (_a = newSession === null || newSession === void 0 ? void 0 : newSession.currentSession) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : undefined;
201
+ const previousAccessToken = (_c = this.auth.session()) === null || _c === void 0 ? void 0 : _c.access_token;
202
+ if (!accessToken) {
203
+ this._handleTokenChanged('SIGNED_OUT', accessToken, 'STORAGE');
204
+ }
205
+ else if (!previousAccessToken && accessToken) {
206
+ this._handleTokenChanged('SIGNED_IN', accessToken, 'STORAGE');
207
+ }
208
+ else if (previousAccessToken !== accessToken) {
209
+ this._handleTokenChanged('TOKEN_REFRESHED', accessToken, 'STORAGE');
210
+ }
211
+ }
212
+ });
213
+ }
214
+ catch (error) {
215
+ console.error('_listenForMultiTabEvents', error);
216
+ return null;
217
+ }
218
+ }
219
+ _listenForAuthEvents() {
220
+ let { data } = this.auth.onAuthStateChange((event, session) => {
221
+ this._handleTokenChanged(event, session === null || session === void 0 ? void 0 : session.access_token, 'CLIENT');
222
+ });
223
+ return data;
224
+ }
225
+ _handleTokenChanged(event, token, source) {
226
+ if ((event === 'TOKEN_REFRESHED' || event === 'SIGNED_IN') &&
227
+ this.changedAccessToken !== token) {
228
+ // Token has changed
229
+ this.realtime.setAuth(token);
230
+ // Ideally we should call this.auth.recoverSession() - need to make public
231
+ // to trigger a "SIGNED_IN" event on this client.
232
+ if (source == 'STORAGE')
233
+ this.auth.setAuth(token);
234
+ this.changedAccessToken = token;
235
+ }
236
+ else if (event === 'SIGNED_OUT' || event === 'USER_DELETED') {
237
+ // Token is removed
238
+ this.removeAllSubscriptions();
239
+ if (source == 'STORAGE')
240
+ this.auth.signOut();
241
+ }
242
+ }
177
243
  }
178
244
  //# sourceMappingURL=SupabaseClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseClient.js","sourceRoot":"","sources":["../../src/SupabaseClient.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,cAAc,EAA+C,MAAM,uBAAuB,CAAA;AAEnG,MAAM,eAAe,GAAG;IACtB,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,IAAI;IACpB,kBAAkB,EAAE,IAAI;IACxB,OAAO,EAAE,eAAe;CACzB,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAcjC;;;;;;;;;;;OAWG;IACH,YACY,WAAmB,EACnB,WAAmB,EAC7B,OAA+B;QAFrB,gBAAW,GAAX,WAAW,CAAQ;QACnB,gBAAW,GAAX,WAAW,CAAQ;QAG7B,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7D,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAE7D,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAA;QAE7C,MAAM,QAAQ,mCAAQ,eAAe,GAAK,OAAO,CAAE,CAAA;QACnD,IAAI,CAAC,OAAO,GAAG,GAAG,WAAW,UAAU,CAAA;QACvC,IAAI,CAAC,WAAW,GAAG,GAAG,WAAW,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrE,IAAI,CAAC,OAAO,GAAG,GAAG,WAAW,UAAU,CAAA;QACvC,IAAI,CAAC,UAAU,GAAG,GAAG,WAAW,aAAa,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QAE7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAE3D,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;QAE3B,qFAAqF;QACrF,kDAAkD;QAClD,qDAAqD;QACrD,sEAAsE;IACxE,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACvF,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAU,KAAa;QACzB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,CAAA;QACtC,OAAO,IAAI,oBAAoB,CAAI,GAAG,EAAE;YACtC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,GAAG,CACD,EAAU,EACV,MAAe,EACf,EACE,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,IAAI,MAC4D,EAAE;QAE5E,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QACxC,OAAO,IAAI,CAAC,GAAG,CAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACjD,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,YAAkC;QACnD,OAAO,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,EAAE;YACnC,IAAI;gBACF,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;gBAE3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAA;gBACxD,IAAI,CAAC,iBAAiB,EAAE;oBACtB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;oBAClD,IAAI,KAAK;wBAAE,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;iBACrC;gBACD,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAA;aAC7D;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;aAC1B;QACH,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC;IAEa,kBAAkB,CAAC,YAAkC;;YACjE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;gBAC5B,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;aACvC;QACH,CAAC;KAAA;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAA;IAC/B,CAAC;IAEO,uBAAuB,CAAC,EAC9B,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,OAAO,GACe;QACtB,MAAM,WAAW,GAAG;YAClB,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;YAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;SAC9B,CAAA;QACD,OAAO,IAAI,kBAAkB,CAAC;YAC5B,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,OAAO,kCAAO,OAAO,GAAK,WAAW,CAAE;YACvC,gBAAgB;YAChB,cAAc;YACd,kBAAkB;YAClB,YAAY;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC;IAEO,mBAAmB,CAAC,OAA+B;QACzD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,kCACrC,OAAO,KACV,MAAM,kCAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAE,MAAM,EAAE,IAAI,CAAC,WAAW,OACtD,CAAA;IACJ,CAAC;IAEO,oBAAoB;QAC1B,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE;YACvC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC;IAEO,eAAe;;QACrB,MAAM,OAAO,GAA8B,eAAe,CAAA;QAC1D,MAAM,UAAU,eAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,0CAAE,YAAY,mCAAI,IAAI,CAAC,WAAW,CAAA;QACxE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAA;QACpC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,UAAU,EAAE,CAAA;QACjD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,aAAa,CAAC,YAAkC;QACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,YAAY;iBACT,WAAW,EAAE;iBACb,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;gBAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBAClC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;YACtB,CAAC,CAAC;iBACD,OAAO,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"SupabaseClient.js","sourceRoot":"","sources":["../../src/SupabaseClient.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export declare const DEFAULT_HEADERS: {
2
2
  'X-Client-Info': string;
3
3
  };
4
+ export declare const STORAGE_KEY = "supabase.auth.token";
4
5
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;CAAgD,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;CAAgD,CAAA;AAC5E,eAAO,MAAM,WAAW,wBAAwB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  // constants.ts
2
2
  import { version } from './version';
3
3
  export const DEFAULT_HEADERS = { 'X-Client-Info': `supabase-js/${version}` };
4
+ export const STORAGE_KEY = 'supabase.auth.token';
4
5
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,eAAe,EAAE,eAAe,OAAO,EAAE,EAAE,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,eAAe,EAAE,eAAe,OAAO,EAAE,EAAE,CAAA;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAA"}
@@ -1,3 +1,4 @@
1
1
  export declare function uuid(): string;
2
2
  export declare function stripTrailingSlash(url: string): string;
3
+ export declare const isBrowser: () => boolean;
3
4
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,IAAI,WAMnB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,UAE7C"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,IAAI,WAMnB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,UAE7C;AAED,eAAO,MAAM,SAAS,eAAsC,CAAA"}
@@ -8,4 +8,5 @@ export function uuid() {
8
8
  export function stripTrailingSlash(url) {
9
9
  return url.replace(/\/$/, '');
10
10
  }
11
+ export const isBrowser = () => typeof window !== 'undefined';
11
12
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AAAA,aAAa;AAEb,MAAM,UAAU,IAAI;IAClB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAC9B,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACpC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AAAA,aAAa;AAEb,MAAM,UAAU,IAAI;IAClB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAC9B,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACpC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.28.0";
1
+ export declare const version = "1.28.4";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // generated by genversion
2
- export const version = '1.28.0';
2
+ export const version = '1.28.4';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.supabase=t():e.supabase=t()}(self,(function(){return(()=>{var e={271:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GoTrueApi:()=>g,GoTrueClient:()=>w});var s=r(98),n=r.n(s),i=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};const o=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e);function a(e=n(),t,r,s,a){return i(this,void 0,void 0,(function*(){return new Promise(((n,i)=>{e(r,((e,t,r)=>{const s={method:e,headers:(null==t?void 0:t.headers)||{}};return"GET"===e||(s.headers=Object.assign({"Content-Type":"text/plain;charset=UTF-8"},null==t?void 0:t.headers),s.body=JSON.stringify(r)),s})(t,s,a)).then((e=>{if(!e.ok)throw e;return(null==s?void 0:s.noResolveJson)?n:e.json()})).then((e=>n(e))).catch((e=>((e,t)=>{if("function"!=typeof e.json)return t(e);e.json().then((r=>t({message:o(r),status:(null==e?void 0:e.status)||500})))})(e,i)))}))}))}function h(e,t,r){return i(this,void 0,void 0,(function*(){return a(e,"GET",t,r)}))}function c(e,t,r,s){return i(this,void 0,void 0,(function*(){return a(e,"POST",t,s,r)}))}const u="supabase.auth.token",l={name:"sb:token",lifetime:28800,domain:"",path:"/",sameSite:"lax"};function d(e,t,r){const s=r.map((t=>{return r=t,s=function(e){if(!e||!e.headers||!e.headers.host)throw new Error('The "host" request header is not available');const t=e.headers.host.indexOf(":")>-1&&e.headers.host.split(":")[0]||e.headers.host;return!(["localhost","127.0.0.1"].indexOf(t)>-1||t.endsWith(".local"))}(e),function(e,t,r){const s=r||{},n=encodeURIComponent,i=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;if("function"!=typeof n)throw new TypeError("option encode is invalid");if(!i.test(e))throw new TypeError("argument name is invalid");const o=n(t);if(o&&!i.test(o))throw new TypeError("argument val is invalid");let a=e+"="+o;if(null!=s.maxAge){const e=s.maxAge-0;if(isNaN(e)||!isFinite(e))throw new TypeError("option maxAge is invalid");a+="; Max-Age="+Math.floor(e)}if(s.domain){if(!i.test(s.domain))throw new TypeError("option domain is invalid");a+="; Domain="+s.domain}if(s.path){if(!i.test(s.path))throw new TypeError("option path is invalid");a+="; Path="+s.path}if(s.expires){if("function"!=typeof s.expires.toUTCString)throw new TypeError("option expires is invalid");a+="; Expires="+s.expires.toUTCString()}if(s.httpOnly&&(a+="; HttpOnly"),s.secure&&(a+="; Secure"),s.sameSite)switch("string"==typeof s.sameSite?s.sameSite.toLowerCase():s.sameSite){case"lax":a+="; SameSite=Lax";break;case"strict":a+="; SameSite=Strict";break;case"none":a+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return a}(r.name,r.value,{maxAge:r.maxAge,expires:new Date(Date.now()+1e3*r.maxAge),httpOnly:!0,secure:s,path:null!==(n=r.path)&&void 0!==n?n:"/",domain:null!==(i=r.domain)&&void 0!==i?i:"",sameSite:null!==(o=r.sameSite)&&void 0!==o?o:"lax"});var r,s,n,i,o})),n=t.getHeader("Set-Cookie");n&&(n instanceof Array?Array.prototype.push.apply(s,n):"string"==typeof n&&s.push(n)),t.setHeader("Set-Cookie",s)}function f(e,t,r){d(e,t,[r])}function p(e){return Math.round(Date.now()/1e3)+e}const m=()=>"undefined"!=typeof window;function y(e,t){var r;t||(t=(null===(r=null===window||void 0===window?void 0:window.location)||void 0===r?void 0:r.href)||""),e=e.replace(/[\[\]]/g,"\\$&");const s=new RegExp("[?&#]"+e+"(=([^&#]*)|&|#|$)").exec(t);return s?s[2]?decodeURIComponent(s[2].replace(/\+/g," ")):"":null}var v=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};class g{constructor({url:e="",headers:t={},cookieOptions:r,fetch:s}){this.url=e,this.headers=t,this.cookieOptions=Object.assign(Object.assign({},l),r),this.fetch=s}createUser(e){return v(this,void 0,void 0,(function*(){try{return{data:yield c(this.fetch,this.url+"/admin/users",e,{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}listUsers(){return v(this,void 0,void 0,(function*(){try{return{data:(yield h(this.fetch,this.url+"/admin/users",{headers:this.headers})).users,error:null}}catch(e){return{data:null,error:e}}}))}signUpWithEmail(e,t,r={}){return v(this,void 0,void 0,(function*(){try{const s=Object.assign({},this.headers);let n="";r.redirectTo&&(n="?redirect_to="+encodeURIComponent(r.redirectTo));const i=yield c(this.fetch,`${this.url}/signup${n}`,{email:e,password:t,data:r.data},{headers:s}),o=Object.assign({},i);return o.expires_in&&(o.expires_at=p(i.expires_in)),{data:o,error:null}}catch(e){return{data:null,error:e}}}))}signInWithEmail(e,t,r={}){return v(this,void 0,void 0,(function*(){try{const s=Object.assign({},this.headers);let n="?grant_type=password";r.redirectTo&&(n+="&redirect_to="+encodeURIComponent(r.redirectTo));const i=yield c(this.fetch,`${this.url}/token${n}`,{email:e,password:t},{headers:s}),o=Object.assign({},i);return o.expires_in&&(o.expires_at=p(i.expires_in)),{data:o,error:null}}catch(e){return{data:null,error:e}}}))}signUpWithPhone(e,t,r={}){return v(this,void 0,void 0,(function*(){try{const s=Object.assign({},this.headers),n=yield c(this.fetch,this.url+"/signup",{phone:e,password:t,data:r.data},{headers:s}),i=Object.assign({},n);return i.expires_in&&(i.expires_at=p(n.expires_in)),{data:i,error:null}}catch(e){return{data:null,error:e}}}))}signInWithPhone(e,t){return v(this,void 0,void 0,(function*(){try{const r=Object.assign({},this.headers),s="?grant_type=password",n=yield c(this.fetch,`${this.url}/token${s}`,{phone:e,password:t},{headers:r}),i=Object.assign({},n);return i.expires_in&&(i.expires_at=p(n.expires_in)),{data:i,error:null}}catch(e){return{data:null,error:e}}}))}sendMagicLinkEmail(e,t={}){return v(this,void 0,void 0,(function*(){try{const r=Object.assign({},this.headers);let s="";return t.redirectTo&&(s+="?redirect_to="+encodeURIComponent(t.redirectTo)),{data:yield c(this.fetch,`${this.url}/magiclink${s}`,{email:e},{headers:r}),error:null}}catch(e){return{data:null,error:e}}}))}sendMobileOTP(e){return v(this,void 0,void 0,(function*(){try{const t=Object.assign({},this.headers);return{data:yield c(this.fetch,this.url+"/otp",{phone:e},{headers:t}),error:null}}catch(e){return{data:null,error:e}}}))}verifyMobileOTP(e,t,r={}){return v(this,void 0,void 0,(function*(){try{const s=Object.assign({},this.headers);return{data:yield c(this.fetch,this.url+"/verify",{phone:e,token:t,type:"sms",redirect_to:r.redirectTo},{headers:s}),error:null}}catch(e){return{data:null,error:e}}}))}inviteUserByEmail(e,t={}){return v(this,void 0,void 0,(function*(){try{const r=Object.assign({},this.headers);let s="";return t.redirectTo&&(s+="?redirect_to="+encodeURIComponent(t.redirectTo)),{data:yield c(this.fetch,`${this.url}/invite${s}`,{email:e,data:t.data},{headers:r}),error:null}}catch(e){return{data:null,error:e}}}))}resetPasswordForEmail(e,t={}){return v(this,void 0,void 0,(function*(){try{const r=Object.assign({},this.headers);let s="";return t.redirectTo&&(s+="?redirect_to="+encodeURIComponent(t.redirectTo)),{data:yield c(this.fetch,`${this.url}/recover${s}`,{email:e},{headers:r}),error:null}}catch(e){return{data:null,error:e}}}))}_createRequestHeaders(e){const t=Object.assign({},this.headers);return t.Authorization="Bearer "+e,t}signOut(e){return v(this,void 0,void 0,(function*(){try{return yield c(this.fetch,this.url+"/logout",{},{headers:this._createRequestHeaders(e),noResolveJson:!0}),{error:null}}catch(e){return{error:e}}}))}getUrlForProvider(e,t){const r=["provider="+encodeURIComponent(e)];return(null==t?void 0:t.redirectTo)&&r.push("redirect_to="+encodeURIComponent(t.redirectTo)),(null==t?void 0:t.scopes)&&r.push("scopes="+encodeURIComponent(t.scopes)),`${this.url}/authorize?${r.join("&")}`}getUser(e){return v(this,void 0,void 0,(function*(){try{const t=yield h(this.fetch,this.url+"/user",{headers:this._createRequestHeaders(e)});return{user:t,data:t,error:null}}catch(e){return{user:null,data:null,error:e}}}))}updateUser(e,t){return v(this,void 0,void 0,(function*(){try{const r=yield function(e,t,r,s){return i(this,void 0,void 0,(function*(){return a(e,"PUT",t,s,r)}))}(this.fetch,this.url+"/user",t,{headers:this._createRequestHeaders(e)});return{user:r,data:r,error:null}}catch(e){return{user:null,data:null,error:e}}}))}deleteUser(e,t){return v(this,void 0,void 0,(function*(){try{const r=yield function(e,t,r,s){return i(this,void 0,void 0,(function*(){return a(e,"DELETE",t,s,r)}))}(this.fetch,`${this.url}/admin/users/${e}`,{},{headers:this._createRequestHeaders(t)});return{user:r,data:r,error:null}}catch(e){return{user:null,data:null,error:e}}}))}refreshAccessToken(e){return v(this,void 0,void 0,(function*(){try{const t=yield c(this.fetch,this.url+"/token?grant_type=refresh_token",{refresh_token:e},{headers:this.headers}),r=Object.assign({},t);return r.expires_in&&(r.expires_at=p(t.expires_in)),{data:r,error:null}}catch(e){return{data:null,error:e}}}))}setAuthCookie(e,t){"POST"!==e.method&&(t.setHeader("Allow","POST"),t.status(405).end("Method Not Allowed"));const{event:r,session:s}=e.body;if(!r)throw new Error("Auth event missing!");if("SIGNED_IN"===r){if(!s)throw new Error("Auth session missing!");f(e,t,{name:this.cookieOptions.name,value:s.access_token,domain:this.cookieOptions.domain,maxAge:this.cookieOptions.lifetime,path:this.cookieOptions.path,sameSite:this.cookieOptions.sameSite})}"SIGNED_OUT"===r&&function(e,t,r){f(e,t,{name:r,value:"",maxAge:-1})}(e,t,this.cookieOptions.name),t.status(200).json({})}getUserByCookie(e){return v(this,void 0,void 0,(function*(){try{if(!e.cookies)throw new Error("Not able to parse cookies! When using Express make sure the cookie-parser middleware is in use!");if(!e.cookies[this.cookieOptions.name])throw new Error("No cookie found!");const t=e.cookies[this.cookieOptions.name],{user:r,error:s}=yield this.getUser(t);if(s)throw s;return{token:t,user:r,data:r,error:null}}catch(e){return{token:null,user:null,data:null,error:e}}}))}generateLink(e,t,r={}){return v(this,void 0,void 0,(function*(){try{return{data:yield c(this.fetch,this.url+"/admin/generate_link",{type:e,email:t,password:r.password,data:r.data,redirect_to:r.redirectTo},{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}}var b=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};!function(){if("object"!=typeof globalThis)try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch(e){"undefined"!=typeof self&&(self.globalThis=self)}}();const _={url:"http://localhost:9999",autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:{"X-Client-Info":"gotrue-js/1.21.0"}};class w{constructor(e){this.stateChangeEmitters=new Map;const t=Object.assign(Object.assign({},_),e);this.currentUser=null,this.currentSession=null,this.autoRefreshToken=t.autoRefreshToken,this.persistSession=t.persistSession,this.localStorage=t.localStorage||globalThis.localStorage,this.api=new g({url:t.url,headers:t.headers,cookieOptions:t.cookieOptions,fetch:t.fetch}),this._recoverSession(),this._recoverAndRefresh(),t.detectSessionInUrl&&m()&&y("access_token")&&this.getSessionFromUrl({storeSession:!0}).then((({error:e})=>{e&&console.error("Error getting session from URL.",e)}))}signUp({email:e,password:t,phone:r},s={}){return b(this,void 0,void 0,(function*(){try{this._removeSession();const{data:n,error:i}=r&&t?yield this.api.signUpWithPhone(r,t,{data:s.data}):yield this.api.signUpWithEmail(e,t,{redirectTo:s.redirectTo,data:s.data});if(i)throw i;if(!n)throw"An error occurred on sign up.";let o=null,a=null;return n.access_token&&(o=n,a=o.user,this._saveSession(o),this._notifyAllSubscribers("SIGNED_IN")),n.id&&(a=n),{data:n,user:a,session:o,error:null}}catch(e){return{data:null,user:null,session:null,error:e}}}))}signIn({email:e,phone:t,password:r,refreshToken:s,provider:n},i={}){return b(this,void 0,void 0,(function*(){try{if(this._removeSession(),e&&!r){const{error:t}=yield this.api.sendMagicLinkEmail(e,{redirectTo:i.redirectTo});return{data:null,user:null,session:null,error:t}}if(e&&r)return this._handleEmailSignIn(e,r,{redirectTo:i.redirectTo});if(t&&!r){const{error:e}=yield this.api.sendMobileOTP(t);return{data:null,user:null,session:null,error:e}}if(t&&r)return this._handlePhoneSignIn(t,r);if(s){const{error:e}=yield this._callRefreshToken(s);if(e)throw e;return{data:this.currentSession,user:this.currentUser,session:this.currentSession,error:null}}if(n)return this._handleProviderSignIn(n,{redirectTo:i.redirectTo,scopes:i.scopes});throw new Error("You must provide either an email, phone number or a third-party provider.")}catch(e){return{data:null,user:null,session:null,error:e}}}))}verifyOTP({phone:e,token:t},r={}){return b(this,void 0,void 0,(function*(){try{this._removeSession();const{data:s,error:n}=yield this.api.verifyMobileOTP(e,t,r);if(n)throw n;if(!s)throw"An error occurred on token verification.";let i=null,o=null;return s.access_token&&(i=s,o=i.user,this._saveSession(i),this._notifyAllSubscribers("SIGNED_IN")),s.id&&(o=s),{data:s,user:o,session:i,error:null}}catch(e){return{data:null,user:null,session:null,error:e}}}))}user(){return this.currentUser}session(){return this.currentSession}refreshSession(){var e;return b(this,void 0,void 0,(function*(){try{if(!(null===(e=this.currentSession)||void 0===e?void 0:e.access_token))throw new Error("Not logged in.");const{error:t}=yield this._callRefreshToken();if(t)throw t;return{data:this.currentSession,user:this.currentUser,error:null}}catch(e){return{data:null,user:null,error:e}}}))}update(e){var t;return b(this,void 0,void 0,(function*(){try{if(!(null===(t=this.currentSession)||void 0===t?void 0:t.access_token))throw new Error("Not logged in.");const{user:r,error:s}=yield this.api.updateUser(this.currentSession.access_token,e);if(s)throw s;if(!r)throw Error("Invalid user data.");const n=Object.assign(Object.assign({},this.currentSession),{user:r});return this._saveSession(n),this._notifyAllSubscribers("USER_UPDATED"),{data:r,user:r,error:null}}catch(e){return{data:null,user:null,error:e}}}))}setSession(e){return b(this,void 0,void 0,(function*(){try{if(!e)throw new Error("No current session.");const{data:t,error:r}=yield this.api.refreshAccessToken(e);return r?{session:null,error:r}:(this._saveSession(t),this._notifyAllSubscribers("SIGNED_IN"),{session:t,error:null})}catch(e){return{error:e,session:null}}}))}setAuth(e){return this.currentSession=Object.assign(Object.assign({},this.currentSession),{access_token:e,token_type:"bearer",user:null}),this.currentSession}getSessionFromUrl(e){return b(this,void 0,void 0,(function*(){try{if(!m())throw new Error("No browser detected.");const t=y("error_description");if(t)throw new Error(t);const r=y("provider_token"),s=y("access_token");if(!s)throw new Error("No access_token detected.");const n=y("expires_in");if(!n)throw new Error("No expires_in detected.");const i=y("refresh_token");if(!i)throw new Error("No refresh_token detected.");const o=y("token_type");if(!o)throw new Error("No token_type detected.");const a=Math.round(Date.now()/1e3)+parseInt(n),{user:h,error:c}=yield this.api.getUser(s);if(c)throw c;const u={provider_token:r,access_token:s,expires_in:parseInt(n),expires_at:a,refresh_token:i,token_type:o,user:h};return(null==e?void 0:e.storeSession)&&(this._saveSession(u),this._notifyAllSubscribers("SIGNED_IN"),"recovery"===y("type")&&this._notifyAllSubscribers("PASSWORD_RECOVERY")),window.location.hash="",{data:u,error:null}}catch(e){return{data:null,error:e}}}))}signOut(){var e;return b(this,void 0,void 0,(function*(){const t=null===(e=this.currentSession)||void 0===e?void 0:e.access_token;if(this._removeSession(),this._notifyAllSubscribers("SIGNED_OUT"),t){const{error:e}=yield this.api.signOut(t);if(e)return{error:e}}return{error:null}}))}onAuthStateChange(e){try{const t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})),r={id:t,callback:e,unsubscribe:()=>{this.stateChangeEmitters.delete(t)}};return this.stateChangeEmitters.set(t,r),{data:r,error:null}}catch(e){return{data:null,error:e}}}_handleEmailSignIn(e,t,r={}){var s,n;return b(this,void 0,void 0,(function*(){try{const{data:i,error:o}=yield this.api.signInWithEmail(e,t,{redirectTo:r.redirectTo});return o||!i?{data:null,user:null,session:null,error:o}:(((null===(s=null==i?void 0:i.user)||void 0===s?void 0:s.confirmed_at)||(null===(n=null==i?void 0:i.user)||void 0===n?void 0:n.email_confirmed_at))&&(this._saveSession(i),this._notifyAllSubscribers("SIGNED_IN")),{data:i,user:i.user,session:i,error:null})}catch(e){return{data:null,user:null,session:null,error:e}}}))}_handlePhoneSignIn(e,t){var r;return b(this,void 0,void 0,(function*(){try{const{data:s,error:n}=yield this.api.signInWithPhone(e,t);return n||!s?{data:null,user:null,session:null,error:n}:((null===(r=null==s?void 0:s.user)||void 0===r?void 0:r.phone_confirmed_at)&&(this._saveSession(s),this._notifyAllSubscribers("SIGNED_IN")),{data:s,user:s.user,session:s,error:null})}catch(e){return{data:null,user:null,session:null,error:e}}}))}_handleProviderSignIn(e,t={}){const r=this.api.getUrlForProvider(e,{redirectTo:t.redirectTo,scopes:t.scopes});try{return m()&&(window.location.href=r),{provider:e,url:r,data:null,session:null,user:null,error:null}}catch(t){return r?{provider:e,url:r,data:null,session:null,user:null,error:null}:{data:null,user:null,session:null,error:t}}}_recoverSession(){var e;try{const t=m()&&(null===(e=this.localStorage)||void 0===e?void 0:e.getItem(u));if(!t||"string"!=typeof t)return null;const r=JSON.parse(t),{currentSession:s,expiresAt:n}=r;n>=Math.round(Date.now()/1e3)&&(null==s?void 0:s.user)&&(this._saveSession(s),this._notifyAllSubscribers("SIGNED_IN"))}catch(e){console.log("error",e)}}_recoverAndRefresh(){return b(this,void 0,void 0,(function*(){try{const e=m()&&(yield this.localStorage.getItem(u));if(!e)return null;const t=JSON.parse(e),{currentSession:r,expiresAt:s}=t;if(s<Math.round(Date.now()/1e3))if(this.autoRefreshToken&&r.refresh_token){const{error:e}=yield this._callRefreshToken(r.refresh_token);e&&(console.log(e.message),yield this._removeSession())}else this._removeSession();else r&&r.user?(this._saveSession(r),this._notifyAllSubscribers("SIGNED_IN")):(console.log("Current session is missing data."),this._removeSession())}catch(e){return console.error(e),null}}))}_callRefreshToken(e){var t;return void 0===e&&(e=null===(t=this.currentSession)||void 0===t?void 0:t.refresh_token),b(this,void 0,void 0,(function*(){try{if(!e)throw new Error("No current session.");const{data:t,error:r}=yield this.api.refreshAccessToken(e);if(r)throw r;if(!t)throw Error("Invalid session data.");return this._saveSession(t),this._notifyAllSubscribers("SIGNED_IN"),{data:t,error:null}}catch(e){return{data:null,error:e}}}))}_notifyAllSubscribers(e){this.stateChangeEmitters.forEach((t=>t.callback(e,this.currentSession)))}_saveSession(e){this.currentSession=e,this.currentUser=e.user;const t=e.expires_at;if(t){const e=t-Math.round(Date.now()/1e3),r=e>60?60:.5;this._startAutoRefreshToken(1e3*(e-r))}this.persistSession&&e.expires_at&&this._persistSession(this.currentSession)}_persistSession(e){const t={currentSession:e,expiresAt:e.expires_at};m()&&this.localStorage.setItem(u,JSON.stringify(t))}_removeSession(){return b(this,void 0,void 0,(function*(){this.currentSession=null,this.currentUser=null,this.refreshTokenTimer&&clearTimeout(this.refreshTokenTimer),m()&&(yield this.localStorage.removeItem(u))}))}_startAutoRefreshToken(e){this.refreshTokenTimer&&clearTimeout(this.refreshTokenTimer),e<=0||!this.autoRefreshToken||(this.refreshTokenTimer=setTimeout((()=>this._callRefreshToken()),e),"function"==typeof this.refreshTokenTimer.unref&&this.refreshTokenTimer.unref())}}},501:(e,t,r)=>{"use strict";r.r(t),r.d(t,{PostgrestBuilder:()=>i,PostgrestClient:()=>l,PostgrestFilterBuilder:()=>a,PostgrestQueryBuilder:()=>h});var s=r(98),n=r.n(s);class i{constructor(e){this.shouldThrowOnError=!1,Object.assign(this,e),this.fetch=e.fetch||n()}throwOnError(){return this.shouldThrowOnError=!0,this}then(e,t){void 0===this.schema||(["GET","HEAD"].includes(this.method)?this.headers["Accept-Profile"]=this.schema:this.headers["Content-Profile"]=this.schema),"GET"!==this.method&&"HEAD"!==this.method&&(this.headers["Content-Type"]="application/json");let r=this.fetch(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then((e=>{return t=this,r=void 0,n=function*(){var t,r,s;let n=null,i=null,o=null;if(e.ok){const n=null===(t=this.headers.Prefer)||void 0===t?void 0:t.split(",").includes("return=minimal");if("HEAD"!==this.method&&!n){const t=yield e.text();t&&(i="text/csv"===this.headers.Accept?t:JSON.parse(t))}const a=null===(r=this.headers.Prefer)||void 0===r?void 0:r.match(/count=(exact|planned|estimated)/),h=null===(s=e.headers.get("content-range"))||void 0===s?void 0:s.split("/");a&&h&&h.length>1&&(o=parseInt(h[1]))}else if(n=yield e.json(),n&&this.shouldThrowOnError)throw n;return{error:n,data:i,count:o,status:e.status,statusText:e.statusText,body:i}},new((s=void 0)||(s=Promise))((function(e,i){function o(e){try{h(n.next(e))}catch(e){i(e)}}function a(e){try{h(n.throw(e))}catch(e){i(e)}}function h(t){var r;t.done?e(t.value):(r=t.value,r instanceof s?r:new s((function(e){e(r)}))).then(o,a)}h((n=n.apply(t,r||[])).next())}));var t,r,s,n}));return this.shouldThrowOnError||(r=r.catch((e=>({error:{message:"FetchError: "+e.message,details:"",hint:"",code:e.code||""},data:null,body:null,count:null,status:400,statusText:"Bad Request"})))),r.then(e,t)}}class o extends i{select(e="*"){let t=!1;const r=e.split("").map((e=>/\s/.test(e)&&!t?"":('"'===e&&(t=!t),e))).join("");return this.url.searchParams.set("select",r),this}order(e,{ascending:t=!0,nullsFirst:r=!1,foreignTable:s}={}){const n=void 0===s?"order":s+".order",i=this.url.searchParams.get(n);return this.url.searchParams.set(n,`${i?i+",":""}${e}.${t?"asc":"desc"}.${r?"nullsfirst":"nullslast"}`),this}limit(e,{foreignTable:t}={}){const r=void 0===t?"limit":t+".limit";return this.url.searchParams.set(r,""+e),this}range(e,t,{foreignTable:r}={}){const s=void 0===r?"offset":r+".offset",n=void 0===r?"limit":r+".limit";return this.url.searchParams.set(s,""+e),this.url.searchParams.set(n,""+(t-e+1)),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.Accept="application/vnd.pgrst.object+json",this}maybeSingle(){this.headers.Accept="application/vnd.pgrst.object+json";const e=new o(this);return e.then=(e,t)=>this.then((t=>{var r,s;return(null===(s=null===(r=t.error)||void 0===r?void 0:r.details)||void 0===s?void 0:s.includes("Results contain 0 rows"))?e({error:null,data:null,count:t.count,status:200,statusText:"OK",body:null}):e(t)}),t),e}csv(){return this.headers.Accept="text/csv",this}}class a extends o{constructor(){super(...arguments),this.cs=this.contains,this.cd=this.containedBy,this.sl=this.rangeLt,this.sr=this.rangeGt,this.nxl=this.rangeGte,this.nxr=this.rangeLte,this.adj=this.rangeAdjacent,this.ov=this.overlaps}not(e,t,r){return this.url.searchParams.append(""+e,`not.${t}.${r}`),this}or(e,{foreignTable:t}={}){const r=void 0===t?"or":t+".or";return this.url.searchParams.append(r,`(${e})`),this}eq(e,t){return this.url.searchParams.append(""+e,"eq."+t),this}neq(e,t){return this.url.searchParams.append(""+e,"neq."+t),this}gt(e,t){return this.url.searchParams.append(""+e,"gt."+t),this}gte(e,t){return this.url.searchParams.append(""+e,"gte."+t),this}lt(e,t){return this.url.searchParams.append(""+e,"lt."+t),this}lte(e,t){return this.url.searchParams.append(""+e,"lte."+t),this}like(e,t){return this.url.searchParams.append(""+e,"like."+t),this}ilike(e,t){return this.url.searchParams.append(""+e,"ilike."+t),this}is(e,t){return this.url.searchParams.append(""+e,"is."+t),this}in(e,t){const r=t.map((e=>"string"==typeof e&&new RegExp("[,()]").test(e)?`"${e}"`:""+e)).join(",");return this.url.searchParams.append(""+e,`in.(${r})`),this}contains(e,t){return"string"==typeof t?this.url.searchParams.append(""+e,"cs."+t):Array.isArray(t)?this.url.searchParams.append(""+e,`cs.{${t.join(",")}}`):this.url.searchParams.append(""+e,"cs."+JSON.stringify(t)),this}containedBy(e,t){return"string"==typeof t?this.url.searchParams.append(""+e,"cd."+t):Array.isArray(t)?this.url.searchParams.append(""+e,`cd.{${t.join(",")}}`):this.url.searchParams.append(""+e,"cd."+JSON.stringify(t)),this}rangeLt(e,t){return this.url.searchParams.append(""+e,"sl."+t),this}rangeGt(e,t){return this.url.searchParams.append(""+e,"sr."+t),this}rangeGte(e,t){return this.url.searchParams.append(""+e,"nxl."+t),this}rangeLte(e,t){return this.url.searchParams.append(""+e,"nxr."+t),this}rangeAdjacent(e,t){return this.url.searchParams.append(""+e,"adj."+t),this}overlaps(e,t){return"string"==typeof t?this.url.searchParams.append(""+e,"ov."+t):this.url.searchParams.append(""+e,`ov.{${t.join(",")}}`),this}textSearch(e,t,{config:r,type:s=null}={}){let n="";"plain"===s?n="pl":"phrase"===s?n="ph":"websearch"===s&&(n="w");const i=void 0===r?"":`(${r})`;return this.url.searchParams.append(""+e,`${n}fts${i}.${t}`),this}fts(e,t,{config:r}={}){const s=void 0===r?"":`(${r})`;return this.url.searchParams.append(""+e,`fts${s}.${t}`),this}plfts(e,t,{config:r}={}){const s=void 0===r?"":`(${r})`;return this.url.searchParams.append(""+e,`plfts${s}.${t}`),this}phfts(e,t,{config:r}={}){const s=void 0===r?"":`(${r})`;return this.url.searchParams.append(""+e,`phfts${s}.${t}`),this}wfts(e,t,{config:r}={}){const s=void 0===r?"":`(${r})`;return this.url.searchParams.append(""+e,`wfts${s}.${t}`),this}filter(e,t,r){return this.url.searchParams.append(""+e,`${t}.${r}`),this}match(e){return Object.keys(e).forEach((t=>{this.url.searchParams.append(""+t,"eq."+e[t])})),this}}class h extends i{constructor(e,{headers:t={},schema:r,fetch:s}={}){super({fetch:s}),this.url=new URL(e),this.headers=Object.assign({},t),this.schema=r}select(e="*",{head:t=!1,count:r=null}={}){this.method="GET";let s=!1;const n=e.split("").map((e=>/\s/.test(e)&&!s?"":('"'===e&&(s=!s),e))).join("");return this.url.searchParams.set("select",n),r&&(this.headers.Prefer="count="+r),t&&(this.method="HEAD"),new a(this)}insert(e,{upsert:t=!1,onConflict:r,returning:s="representation",count:n=null}={}){this.method="POST";const i=["return="+s];if(t&&i.push("resolution=merge-duplicates"),t&&void 0!==r&&this.url.searchParams.set("on_conflict",r),this.body=e,n&&i.push("count="+n),this.headers.Prefer=i.join(","),Array.isArray(e)){const t=e.reduce(((e,t)=>e.concat(Object.keys(t))),[]);if(t.length>0){const e=[...new Set(t)].map((e=>`"${e}"`));this.url.searchParams.set("columns",e.join(","))}}return new a(this)}upsert(e,{onConflict:t,returning:r="representation",count:s=null,ignoreDuplicates:n=!1}={}){this.method="POST";const i=[`resolution=${n?"ignore":"merge"}-duplicates`,"return="+r];return void 0!==t&&this.url.searchParams.set("on_conflict",t),this.body=e,s&&i.push("count="+s),this.headers.Prefer=i.join(","),new a(this)}update(e,{returning:t="representation",count:r=null}={}){this.method="PATCH";const s=["return="+t];return this.body=e,r&&s.push("count="+r),this.headers.Prefer=s.join(","),new a(this)}delete({returning:e="representation",count:t=null}={}){this.method="DELETE";const r=["return="+e];return t&&r.push("count="+t),this.headers.Prefer=r.join(","),new a(this)}}class c extends i{constructor(e,{headers:t={},schema:r,fetch:s}={}){super({fetch:s}),this.url=new URL(e),this.headers=Object.assign({},t),this.schema=r}rpc(e,{head:t=!1,count:r=null}={}){return t?(this.method="HEAD",e&&Object.entries(e).forEach((([e,t])=>{this.url.searchParams.append(e,t)}))):(this.method="POST",this.body=e),r&&(void 0!==this.headers.Prefer?this.headers.Prefer+=",count="+r:this.headers.Prefer="count="+r),new a(this)}}const u={"X-Client-Info":"postgrest-js/0.35.0"};class l{constructor(e,{headers:t={},schema:r,fetch:s}={}){this.url=e,this.headers=Object.assign(Object.assign({},u),t),this.schema=r,this.fetch=s}auth(e){return this.headers.Authorization="Bearer "+e,this}from(e){const t=`${this.url}/${e}`;return new h(t,{headers:this.headers,schema:this.schema,fetch:this.fetch})}rpc(e,t,{head:r=!1,count:s=null}={}){const n=`${this.url}/rpc/${e}`;return new c(n,{headers:this.headers,schema:this.schema,fetch:this.fetch}).rpc(t,{head:r,count:s})}}},498:(e,t,r)=>{"use strict";r.r(t),r.d(t,{RealtimeClient:()=>E,RealtimeSubscription:()=>w,Transformers:()=>n});var s,n={};r.r(n),r.d(n,{PostgresTypes:()=>s,convertCell:()=>a,convertChangeData:()=>i,convertColumn:()=>o,toArray:()=>d,toBoolean:()=>c,toJson:()=>l,toNumber:()=>u,toTimestampString:()=>f}),function(e){e.abstime="abstime",e.bool="bool",e.date="date",e.daterange="daterange",e.float4="float4",e.float8="float8",e.int2="int2",e.int4="int4",e.int4range="int4range",e.int8="int8",e.int8range="int8range",e.json="json",e.jsonb="jsonb",e.money="money",e.numeric="numeric",e.oid="oid",e.reltime="reltime",e.text="text",e.time="time",e.timestamp="timestamp",e.timestamptz="timestamptz",e.timetz="timetz",e.tsrange="tsrange",e.tstzrange="tstzrange"}(s||(s={}));const i=(e,t,r={})=>{var s;const n=null!==(s=r.skipTypes)&&void 0!==s?s:[];return Object.keys(t).reduce(((r,s)=>(r[s]=o(s,e,t,n),r)),{})},o=(e,t,r,s)=>{const n=t.find((t=>t.name===e)),i=null==n?void 0:n.type,o=r[e];return i&&!s.includes(i)?a(i,o):h(o)},a=(e,t)=>{if("_"===e.charAt(0)){const r=e.slice(1,e.length);return d(t,r)}switch(e){case s.bool:return c(t);case s.float4:case s.float8:case s.int2:case s.int4:case s.int8:case s.numeric:case s.oid:return u(t);case s.json:case s.jsonb:return l(t);case s.timestamp:return f(t);case s.abstime:case s.date:case s.daterange:case s.int4range:case s.int8range:case s.money:case s.reltime:case s.text:case s.time:case s.timestamptz:case s.timetz:case s.tsrange:case s.tstzrange:default:return h(t)}},h=e=>e,c=e=>{switch(e){case"t":return!0;case"f":return!1;default:return e}},u=e=>{if("string"==typeof e){const t=parseFloat(e);if(!Number.isNaN(t))return t}return e},l=e=>{if("string"==typeof e)try{return JSON.parse(e)}catch(t){return console.log("JSON parse error: "+t),e}return e},d=(e,t)=>{if("string"!=typeof e)return e;const r=e.length-1,s=e[r];if("{"===e[0]&&"}"===s){let s;const n=e.slice(1,r);try{s=JSON.parse("["+n+"]")}catch(e){s=n?n.split(","):[]}return s.map((e=>a(t,e)))}return e},f=e=>"string"==typeof e?e.replace(" ","T"):e,p={"X-Client-Info":"realtime-js/1.2.1"};var m,y,v,g;!function(e){e[e.connecting=0]="connecting",e[e.open=1]="open",e[e.closing=2]="closing",e[e.closed=3]="closed"}(m||(m={})),function(e){e.closed="closed",e.errored="errored",e.joined="joined",e.joining="joining",e.leaving="leaving"}(y||(y={})),function(e){e.close="phx_close",e.error="phx_error",e.join="phx_join",e.reply="phx_reply",e.leave="phx_leave"}(v||(v={})),function(e){e.websocket="websocket"}(g||(g={}));class b{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=void 0,this.tries=0,this.callback=e,this.timerCalc=t}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout((()=>{this.tries=this.tries+1,this.callback()}),this.timerCalc(this.tries+1))}}class _{constructor(e,t,r={},s=1e4){this.channel=e,this.event=t,this.payload=r,this.timeout=s,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend(e){this.timeout=e,this._cancelRefEvent(),this.ref="",this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){this._hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref}))}receive(e,t){var r;return this._hasReceived(e)&&t(null===(r=this.receivedResp)||void 0===r?void 0:r.response),this.recHooks.push({status:e,callback:t}),this}startTimeout(){this.timeoutTimer||(this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,(e=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=e,this._matchReceive(e)})),this.timeoutTimer=setTimeout((()=>{this.trigger("timeout",{})}),this.timeout))}trigger(e,t){this.refEvent&&this.channel.trigger(this.refEvent,{status:e,response:t})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){this.refEvent&&this.channel.off(this.refEvent)}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:e,response:t}){this.recHooks.filter((t=>t.status===e)).forEach((e=>e.callback(t)))}_hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}}class w{constructor(e,t={},r){this.topic=e,this.params=t,this.socket=r,this.bindings=[],this.state=y.closed,this.joinedOnce=!1,this.pushBuffer=[],this.timeout=this.socket.timeout,this.joinPush=new _(this,v.join,this.params,this.timeout),this.rejoinTimer=new b((()=>this.rejoinUntilConnected()),this.socket.reconnectAfterMs),this.joinPush.receive("ok",(()=>{this.state=y.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach((e=>e.send())),this.pushBuffer=[]})),this.onClose((()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this.joinRef()}`),this.state=y.closed,this.socket.remove(this)})),this.onError((e=>{this.isLeaving()||this.isClosed()||(this.socket.log("channel","error "+this.topic,e),this.state=y.errored,this.rejoinTimer.scheduleTimeout())})),this.joinPush.receive("timeout",(()=>{this.isJoining()&&(this.socket.log("channel","timeout "+this.topic,this.joinPush.timeout),this.state=y.errored,this.rejoinTimer.scheduleTimeout())})),this.on(v.reply,((e,t)=>{this.trigger(this.replyEventName(t),e)}))}rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this.rejoin()}subscribe(e=this.timeout){if(this.joinedOnce)throw"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance";return this.joinedOnce=!0,this.rejoin(e),this.joinPush}onClose(e){this.on(v.close,e)}onError(e){this.on(v.error,(t=>e(t)))}on(e,t){this.bindings.push({event:e,callback:t})}off(e){this.bindings=this.bindings.filter((t=>t.event!==e))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,t,r=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let s=new _(this,e,t,r);return this.canPush()?s.send():(s.startTimeout(),this.pushBuffer.push(s)),s}unsubscribe(e=this.timeout){this.state=y.leaving;let t=()=>{this.socket.log("channel","leave "+this.topic),this.trigger(v.close,"leave",this.joinRef())};this.joinPush.destroy();let r=new _(this,v.leave,{},e);return r.receive("ok",(()=>t())).receive("timeout",(()=>t())),r.send(),this.canPush()||r.trigger("ok",{}),r}onMessage(e,t,r){return t}isMember(e){return this.topic===e}joinRef(){return this.joinPush.ref}sendJoin(e){this.state=y.joining,this.joinPush.resend(e)}rejoin(e=this.timeout){this.isLeaving()||this.sendJoin(e)}trigger(e,t,r){let{close:s,error:n,leave:i,join:o}=v;if(r&&[s,n,i,o].indexOf(e)>=0&&r!==this.joinRef())return;let a=this.onMessage(e,t,r);if(t&&!a)throw"channel onMessage callbacks must return the payload, modified or unmodified";this.bindings.filter((r=>"*"===r.event?e===(null==t?void 0:t.type):r.event===e)).map((e=>e.callback(a,r)))}replyEventName(e){return"chan_reply_"+e}isClosed(){return this.state===y.closed}isErrored(){return this.state===y.errored}isJoined(){return this.state===y.joined}isJoining(){return this.state===y.joining}isLeaving(){return this.state===y.leaving}}var S=r(840);class T{constructor(){this.HEADER_LENGTH=1}decode(e,t){return e.constructor===ArrayBuffer?t(this._binaryDecode(e)):t("string"==typeof e?JSON.parse(e):{})}_binaryDecode(e){const t=new DataView(e),r=new TextDecoder;return this._decodeBroadcast(e,t,r)}_decodeBroadcast(e,t,r){const s=t.getUint8(1),n=t.getUint8(2);let i=this.HEADER_LENGTH+2;const o=r.decode(e.slice(i,i+s));i+=s;const a=r.decode(e.slice(i,i+n));return i+=n,{ref:null,topic:o,event:a,payload:JSON.parse(r.decode(e.slice(i,e.byteLength)))}}}const x=()=>{};class E{constructor(e,t){this.channels=[],this.endPoint="",this.headers=p,this.params={},this.timeout=1e4,this.transport=S.w3cwebsocket,this.heartbeatIntervalMs=3e4,this.longpollerTimeout=2e4,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.ref=0,this.logger=x,this.conn=null,this.sendBuffer=[],this.serializer=new T,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.endPoint=`${e}/${g.websocket}`,(null==t?void 0:t.params)&&(this.params=t.params),(null==t?void 0:t.headers)&&(this.headers=Object.assign(Object.assign({},this.headers),t.headers)),(null==t?void 0:t.timeout)&&(this.timeout=t.timeout),(null==t?void 0:t.logger)&&(this.logger=t.logger),(null==t?void 0:t.transport)&&(this.transport=t.transport),(null==t?void 0:t.heartbeatIntervalMs)&&(this.heartbeatIntervalMs=t.heartbeatIntervalMs),(null==t?void 0:t.longpollerTimeout)&&(this.longpollerTimeout=t.longpollerTimeout),this.reconnectAfterMs=(null==t?void 0:t.reconnectAfterMs)?t.reconnectAfterMs:e=>[1e3,2e3,5e3,1e4][e-1]||1e4,this.encode=(null==t?void 0:t.encode)?t.encode:(e,t)=>t(JSON.stringify(e)),this.decode=(null==t?void 0:t.decode)?t.decode:this.serializer.decode.bind(this.serializer),this.reconnectTimer=new b((()=>{return e=this,t=void 0,s=function*(){yield this.disconnect(),this.connect()},new((r=void 0)||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}));var e,t,r,s}),this.reconnectAfterMs)}connect(){this.conn||(this.conn=new this.transport(this.endPointURL(),[],null,this.headers),this.conn&&(this.conn.binaryType="arraybuffer",this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=e=>this._onConnError(e),this.conn.onmessage=e=>this.onConnMessage(e),this.conn.onclose=e=>this._onConnClose(e)))}disconnect(e,t){return new Promise(((r,s)=>{try{this.conn&&(this.conn.onclose=function(){},e?this.conn.close(e,t||""):this.conn.close(),this.conn=null,this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.reset()),r({error:null,data:!0})}catch(e){r({error:e,data:!1})}}))}log(e,t,r){this.logger(e,t,r)}onOpen(e){this.stateChangeCallbacks.open.push(e)}onClose(e){this.stateChangeCallbacks.close.push(e)}onError(e){this.stateChangeCallbacks.error.push(e)}onMessage(e){this.stateChangeCallbacks.message.push(e)}connectionState(){switch(this.conn&&this.conn.readyState){case m.connecting:return"connecting";case m.open:return"open";case m.closing:return"closing";default:return"closed"}}isConnected(){return"open"===this.connectionState()}remove(e){this.channels=this.channels.filter((t=>t.joinRef()!==e.joinRef()))}channel(e,t={}){let r=new w(e,t,this);return this.channels.push(r),r}push(e){let{topic:t,event:r,payload:s,ref:n}=e,i=()=>{this.encode(e,(e=>{var t;null===(t=this.conn)||void 0===t||t.send(e)}))};this.log("push",`${t} ${r} (${n})`,s),this.isConnected()?i():this.sendBuffer.push(i)}onConnMessage(e){this.decode(e.data,(e=>{let{topic:t,event:r,payload:s,ref:n}=e;n&&n===this.pendingHeartbeatRef?this.pendingHeartbeatRef=null:r===(null==s?void 0:s.type)&&this._resetHeartbeat(),this.log("receive",`${s.status||""} ${t} ${r} ${n&&"("+n+")"||""}`,s),this.channels.filter((e=>e.isMember(t))).forEach((e=>e.trigger(r,s,n))),this.stateChangeCallbacks.message.forEach((t=>t(e)))}))}endPointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:"1.0.0"}))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}_onConnOpen(){this.log("transport","connected to "+this.endPointURL()),this._flushSendBuffer(),this.reconnectTimer.reset(),this._resetHeartbeat(),this.stateChangeCallbacks.open.forEach((e=>e()))}_onConnClose(e){this.log("transport","close",e),this._triggerChanError(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach((t=>t(e)))}_onConnError(e){this.log("transport",e.message),this._triggerChanError(),this.stateChangeCallbacks.error.forEach((t=>t(e)))}_triggerChanError(){this.channels.forEach((e=>e.trigger(v.error)))}_appendParams(e,t){if(0===Object.keys(t).length)return e;const r=e.match(/\?/)?"&":"?";return`${e}${r}${new URLSearchParams(t)}`}_flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach((e=>e())),this.sendBuffer=[])}_resetHeartbeat(){this.pendingHeartbeatRef=null,this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval((()=>this._sendHeartbeat()),this.heartbeatIntervalMs)}_sendHeartbeat(){var e;if(this.isConnected()){if(this.pendingHeartbeatRef)return this.pendingHeartbeatRef=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection"),void(null===(e=this.conn)||void 0===e||e.close(1e3,"hearbeat timeout"));this.pendingHeartbeatRef=this.makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef})}}}},122:(e,t,r)=>{"use strict";r.r(t),r.d(t,{SupabaseStorageClient:()=>v});var s=r(98),n=r.n(s),i=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};const o=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e);function a(e=n(),t,r,s,a,h){return i(this,void 0,void 0,(function*(){return new Promise(((n,i)=>{e(r,((e,t,r,s)=>{const n={method:e,headers:(null==t?void 0:t.headers)||{}};return"GET"===e?n:(n.headers=Object.assign({"Content-Type":"application/json"},null==t?void 0:t.headers),n.body=JSON.stringify(s),Object.assign(Object.assign({},n),r))})(t,s,a,h)).then((e=>{if(!e.ok)throw e;return(null==s?void 0:s.noResolveJson)?n(e):e.json()})).then((e=>n(e))).catch((e=>((e,t)=>{if("function"!=typeof e.json)return t(e);e.json().then((r=>t({message:o(r),status:(null==e?void 0:e.status)||500})))})(e,i)))}))}))}function h(e,t,r,s){return i(this,void 0,void 0,(function*(){return a(e,"GET",t,r,s)}))}function c(e,t,r,s,n){return i(this,void 0,void 0,(function*(){return a(e,"POST",t,s,n,r)}))}function u(e,t,r,s,n){return i(this,void 0,void 0,(function*(){return a(e,"DELETE",t,s,n,r)}))}const l={"X-Client-Info":"storage-js/0.0.0"};var d=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))},f=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};const p={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},m={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};class y{constructor(e,t={},r,s){this.url=e,this.headers=t,this.bucketId=r,this.fetch=s}uploadOrUpdate(e,t,r,s){return f(this,void 0,void 0,(function*(){try{let i;const o=Object.assign(Object.assign({},m),s),a=Object.assign(Object.assign({},this.headers),"POST"===e&&{"x-upsert":String(o.upsert)});"undefined"!=typeof Blob&&r instanceof Blob?(i=new FormData,i.append("cacheControl",o.cacheControl),i.append("",r)):"undefined"!=typeof FormData&&r instanceof FormData?(i=r,i.append("cacheControl",o.cacheControl)):(i=r,a["cache-control"]="max-age="+o.cacheControl,a["content-type"]=o.contentType);const h=this._getFinalPath(t),c=yield n()(`${this.url}/object/${h}`,{method:e,body:i,headers:a});return c.ok?{data:{Key:h},error:null}:{data:null,error:yield c.json()}}catch(e){return{data:null,error:e}}}))}upload(e,t,r){return f(this,void 0,void 0,(function*(){return this.uploadOrUpdate("POST",e,t,r)}))}update(e,t,r){return f(this,void 0,void 0,(function*(){return this.uploadOrUpdate("PUT",e,t,r)}))}move(e,t){return f(this,void 0,void 0,(function*(){try{return{data:yield c(this.fetch,this.url+"/object/move",{bucketId:this.bucketId,sourceKey:e,destinationKey:t},{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}createSignedUrl(e,t){return f(this,void 0,void 0,(function*(){try{const r=this._getFinalPath(e);let s=yield c(this.fetch,`${this.url}/object/sign/${r}`,{expiresIn:t},{headers:this.headers});const n=`${this.url}${s.signedURL}`;return s={signedURL:n},{data:s,error:null,signedURL:n}}catch(e){return{data:null,error:e,signedURL:null}}}))}download(e){return f(this,void 0,void 0,(function*(){try{const t=this._getFinalPath(e),r=yield h(this.fetch,`${this.url}/object/${t}`,{headers:this.headers,noResolveJson:!0});return{data:yield r.blob(),error:null}}catch(e){return{data:null,error:e}}}))}getPublicUrl(e){try{const t=this._getFinalPath(e),r=`${this.url}/object/public/${t}`;return{data:{publicURL:r},error:null,publicURL:r}}catch(e){return{data:null,error:e,publicURL:null}}}remove(e){return f(this,void 0,void 0,(function*(){try{return{data:yield u(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:e},{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}list(e,t,r){return f(this,void 0,void 0,(function*(){try{const s=Object.assign(Object.assign(Object.assign({},p),t),{prefix:e||""});return{data:yield c(this.fetch,`${this.url}/object/list/${this.bucketId}`,s,{headers:this.headers},r),error:null}}catch(e){return{data:null,error:e}}}))}_getFinalPath(e){return`${this.bucketId}/${e}`}}class v extends class{constructor(e,t={},r){this.url=e,this.headers=Object.assign(Object.assign({},l),t),this.fetch=r}listBuckets(){return d(this,void 0,void 0,(function*(){try{return{data:yield h(this.fetch,this.url+"/bucket",{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}getBucket(e){return d(this,void 0,void 0,(function*(){try{return{data:yield h(this.fetch,`${this.url}/bucket/${e}`,{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}createBucket(e,t={public:!1}){return d(this,void 0,void 0,(function*(){try{return{data:(yield c(this.fetch,this.url+"/bucket",{id:e,name:e,public:t.public},{headers:this.headers})).name,error:null}}catch(e){return{data:null,error:e}}}))}updateBucket(e,t){return d(this,void 0,void 0,(function*(){try{return{data:yield function(e,t,r,s,n){return i(this,void 0,void 0,(function*(){return a(e,"PUT",t,s,undefined,r)}))}(this.fetch,`${this.url}/bucket/${e}`,{id:e,name:e,public:t.public},{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}emptyBucket(e){return d(this,void 0,void 0,(function*(){try{return{data:yield c(this.fetch,`${this.url}/bucket/${e}/empty`,{},{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}deleteBucket(e){return d(this,void 0,void 0,(function*(){try{return{data:yield u(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}}{constructor(e,t={},r){super(e,t,r)}from(e){return new y(this.url,this.headers,e,this.fetch)}}},98:function(e,t){var r="undefined"!=typeof self?self:this,s=function(){function e(){this.fetch=!1,this.DOMException=r.DOMException}return e.prototype=r,new e}();!function(e){!function(t){var r="URLSearchParams"in e,s="Symbol"in e&&"iterator"in Symbol,n="FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),i="FormData"in e,o="ArrayBuffer"in e;if(o)var a=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],h=ArrayBuffer.isView||function(e){return e&&a.indexOf(Object.prototype.toString.call(e))>-1};function c(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function u(e){return"string"!=typeof e&&(e=String(e)),e}function l(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return s&&(t[Symbol.iterator]=function(){return t}),t}function d(e){this.map={},e instanceof d?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function f(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function p(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function m(e){var t=new FileReader,r=p(t);return t.readAsArrayBuffer(e),r}function y(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function v(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:n&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:i&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:r&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():o&&n&&(t=e)&&DataView.prototype.isPrototypeOf(t)?(this._bodyArrayBuffer=y(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):o&&(ArrayBuffer.prototype.isPrototypeOf(e)||h(e))?this._bodyArrayBuffer=y(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n&&(this.blob=function(){var e=f(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(m)}),this.text=function(){var e,t,r,s=f(this);if(s)return s;if(this._bodyBlob)return e=this._bodyBlob,r=p(t=new FileReader),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),s=0;s<t.length;s++)r[s]=String.fromCharCode(t[s]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},i&&(this.formData=function(){return this.text().then(_)}),this.json=function(){return this.text().then(JSON.parse)},this}d.prototype.append=function(e,t){e=c(e),t=u(t);var r=this.map[e];this.map[e]=r?r+", "+t:t},d.prototype.delete=function(e){delete this.map[c(e)]},d.prototype.get=function(e){return e=c(e),this.has(e)?this.map[e]:null},d.prototype.has=function(e){return this.map.hasOwnProperty(c(e))},d.prototype.set=function(e,t){this.map[c(e)]=u(t)},d.prototype.forEach=function(e,t){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(t,this.map[r],r,this)},d.prototype.keys=function(){var e=[];return this.forEach((function(t,r){e.push(r)})),l(e)},d.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),l(e)},d.prototype.entries=function(){var e=[];return this.forEach((function(t,r){e.push([r,t])})),l(e)},s&&(d.prototype[Symbol.iterator]=d.prototype.entries);var g=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function b(e,t){var r,s,n=(t=t||{}).body;if(e instanceof b){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new d(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new d(t.headers)),this.method=(s=(r=t.method||this.method||"GET").toUpperCase(),g.indexOf(s)>-1?s:r),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function _(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),s=r.shift().replace(/\+/g," "),n=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(s),decodeURIComponent(n))}})),t}function w(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new d(t.headers),this.url=t.url||"",this._initBody(e)}b.prototype.clone=function(){return new b(this,{body:this._bodyInit})},v.call(b.prototype),v.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},w.error=function(){var e=new w(null,{status:0,statusText:""});return e.type="error",e};var S=[301,302,303,307,308];w.redirect=function(e,t){if(-1===S.indexOf(t))throw new RangeError("Invalid status code");return new w(null,{status:t,headers:{location:e}})},t.DOMException=e.DOMException;try{new t.DOMException}catch(e){t.DOMException=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function T(e,r){return new Promise((function(s,i){var o=new b(e,r);if(o.signal&&o.signal.aborted)return i(new t.DOMException("Aborted","AbortError"));var a=new XMLHttpRequest;function h(){a.abort()}a.onload=function(){var e,t,r={status:a.status,statusText:a.statusText,headers:(e=a.getAllResponseHeaders()||"",t=new d,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var r=e.split(":"),s=r.shift().trim();if(s){var n=r.join(":").trim();t.append(s,n)}})),t)};r.url="responseURL"in a?a.responseURL:r.headers.get("X-Request-URL");var n="response"in a?a.response:a.responseText;s(new w(n,r))},a.onerror=function(){i(new TypeError("Network request failed"))},a.ontimeout=function(){i(new TypeError("Network request failed"))},a.onabort=function(){i(new t.DOMException("Aborted","AbortError"))},a.open(o.method,o.url,!0),"include"===o.credentials?a.withCredentials=!0:"omit"===o.credentials&&(a.withCredentials=!1),"responseType"in a&&n&&(a.responseType="blob"),o.headers.forEach((function(e,t){a.setRequestHeader(t,e)})),o.signal&&(o.signal.addEventListener("abort",h),a.onreadystatechange=function(){4===a.readyState&&o.signal.removeEventListener("abort",h)}),a.send(void 0===o._bodyInit?null:o._bodyInit)}))}T.polyfill=!0,e.fetch||(e.fetch=T,e.Headers=d,e.Request=b,e.Response=w),t.Headers=d,t.Request=b,t.Response=w,t.fetch=T,Object.defineProperty(t,"__esModule",{value:!0})}({})}(s),s.fetch.ponyfill=!0,delete s.fetch.polyfill;var n=s;(t=n.fetch).default=n.fetch,t.fetch=n.fetch,t.Headers=n.Headers,t.Request=n.Request,t.Response=n.Response,e.exports=t},284:e=>{var t=function(){if("object"==typeof self&&self)return self;if("object"==typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};e.exports=function(){if(this)return this;if("object"==typeof globalThis&&globalThis)return globalThis;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(e){return t()}try{return __global__||t()}finally{delete Object.prototype.__global__}}()},296:function(e,t,r){"use strict";var s=this&&this.__awaiter||function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const n=r(678),i=r(610),o=r(283),a=r(528),h=r(122),c=r(501),u=r(498),l={schema:"public",autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:n.DEFAULT_HEADERS};t.default=class{constructor(e,t,r){if(this.supabaseUrl=e,this.supabaseKey=t,!e)throw new Error("supabaseUrl is required.");if(!t)throw new Error("supabaseKey is required.");e=i.stripTrailingSlash(e);const s=Object.assign(Object.assign({},l),r);this.restUrl=e+"/rest/v1",this.realtimeUrl=(e+"/realtime/v1").replace("http","ws"),this.authUrl=e+"/auth/v1",this.storageUrl=e+"/storage/v1",this.schema=s.schema,this.auth=this._initSupabaseAuthClient(s),this.realtime=this._initRealtimeClient(s.realtime),this.fetch=s.fetch}get storage(){return new h.SupabaseStorageClient(this.storageUrl,this._getAuthHeaders(),this.fetch)}from(e){const t=`${this.restUrl}/${e}`;return new a.SupabaseQueryBuilder(t,{headers:this._getAuthHeaders(),schema:this.schema,realtime:this.realtime,table:e,fetch:this.fetch})}rpc(e,t,{head:r=!1,count:s=null}={}){return this._initPostgRESTClient().rpc(e,t,{head:r,count:s})}removeSubscription(e){return new Promise((t=>s(this,void 0,void 0,(function*(){try{yield this._closeSubscription(e);const r=this.getSubscriptions().length;if(!r){const{error:e}=yield this.realtime.disconnect();if(e)return t({error:e})}return t({error:null,data:{openSubscriptions:r}})}catch(e){return t({error:e})}}))))}_closeSubscription(e){return s(this,void 0,void 0,(function*(){e.isClosed()||(yield this._closeChannel(e))}))}getSubscriptions(){return this.realtime.channels}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:r,localStorage:s,headers:n}){const i={Authorization:"Bearer "+this.supabaseKey,apikey:""+this.supabaseKey};return new o.SupabaseAuthClient({url:this.authUrl,headers:Object.assign(Object.assign({},n),i),autoRefreshToken:e,persistSession:t,detectSessionInUrl:r,localStorage:s,fetch:this.fetch})}_initRealtimeClient(e){return new u.RealtimeClient(this.realtimeUrl,Object.assign(Object.assign({},e),{params:Object.assign(Object.assign({},null==e?void 0:e.params),{apikey:this.supabaseKey})}))}_initPostgRESTClient(){return new c.PostgrestClient(this.restUrl,{headers:this._getAuthHeaders(),schema:this.schema,fetch:this.fetch})}_getAuthHeaders(){var e,t;const r=n.DEFAULT_HEADERS,s=null!==(t=null===(e=this.auth.session())||void 0===e?void 0:e.access_token)&&void 0!==t?t:this.supabaseKey;return r.apikey=this.supabaseKey,r.Authorization="Bearer "+s,r}_closeChannel(e){return new Promise(((t,r)=>{e.unsubscribe().receive("ok",(()=>(this.realtime.remove(e),t(!0)))).receive("error",(e=>r(e)))}))}}},341:function(e,t,r){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,t,r,s){void 0===s&&(s=r),Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,s){void 0===s&&(s=r),e[s]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||s(t,e,r)},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AuthSession=t.AuthUser=t.SupabaseRealtimePayload=t.SupabaseClientOptions=t.SupabaseClient=t.createClient=t.PostgrestError=t.PostgrestMaybeSingleResponse=t.PostgrestSingleResponse=t.PostgrestResponse=void 0;const o=i(r(296));t.SupabaseClient=o.default;const a=r(717);Object.defineProperty(t,"SupabaseClientOptions",{enumerable:!0,get:function(){return a.SupabaseClientOptions}}),Object.defineProperty(t,"SupabaseRealtimePayload",{enumerable:!0,get:function(){return a.SupabaseRealtimePayload}});const h=r(271);Object.defineProperty(t,"AuthUser",{enumerable:!0,get:function(){return h.User}}),Object.defineProperty(t,"AuthSession",{enumerable:!0,get:function(){return h.Session}}),n(r(271),t);var c=r(501);Object.defineProperty(t,"PostgrestResponse",{enumerable:!0,get:function(){return c.PostgrestResponse}}),Object.defineProperty(t,"PostgrestSingleResponse",{enumerable:!0,get:function(){return c.PostgrestSingleResponse}}),Object.defineProperty(t,"PostgrestMaybeSingleResponse",{enumerable:!0,get:function(){return c.PostgrestMaybeSingleResponse}}),Object.defineProperty(t,"PostgrestError",{enumerable:!0,get:function(){return c.PostgrestError}}),n(r(498),t),t.createClient=(e,t,r)=>new o.default(e,t,r)},283:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SupabaseAuthClient=void 0;const s=r(271);class n extends s.GoTrueClient{constructor(e){super(e)}}t.SupabaseAuthClient=n},528:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SupabaseQueryBuilder=void 0;const s=r(501),n=r(308);class i extends s.PostgrestQueryBuilder{constructor(e,{headers:t={},schema:r,realtime:s,table:i,fetch:o}){super(e,{headers:t,schema:r,fetch:o}),this._subscription=new n.SupabaseRealtimeClient(s,t,r,i),this._realtime=s}on(e,t){return this._realtime.isConnected()||this._realtime.connect(),this._subscription.on(e,t)}}t.SupabaseQueryBuilder=i},308:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SupabaseRealtimeClient=void 0;const s=r(498);t.SupabaseRealtimeClient=class{constructor(e,t,r,s){const n={},i="*"===s?"realtime:"+r:`realtime:${r}:${s}`,o=t.Authorization.split(" ")[1];o&&(n.user_token=o),this.subscription=e.channel(i,n)}getPayloadRecords(e){const t={new:{},old:{}};return"INSERT"!==e.type&&"UPDATE"!==e.type||(t.new=s.Transformers.convertChangeData(e.columns,e.record)),"UPDATE"!==e.type&&"DELETE"!==e.type||(t.old=s.Transformers.convertChangeData(e.columns,e.old_record)),t}on(e,t){return this.subscription.on(e,(e=>{let r={schema:e.schema,table:e.table,commit_timestamp:e.commit_timestamp,eventType:e.type,new:{},old:{}};r=Object.assign(Object.assign({},r),this.getPayloadRecords(e)),t(r)})),this}subscribe(e=(()=>{})){return this.subscription.onError((t=>e("SUBSCRIPTION_ERROR",t))),this.subscription.onClose((()=>e("CLOSED"))),this.subscription.subscribe().receive("ok",(()=>e("SUBSCRIBED"))).receive("error",(t=>e("SUBSCRIPTION_ERROR",t))).receive("timeout",(()=>e("RETRYING_AFTER_TIMEOUT"))),this.subscription}}},678:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_HEADERS=void 0;const s=r(506);t.DEFAULT_HEADERS={"X-Client-Info":"supabase-js/"+s.version}},610:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stripTrailingSlash=t.uuid=void 0,t.uuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))},t.stripTrailingSlash=function(e){return e.replace(/\/$/,"")}},717:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},506:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0,t.version="0.0.0"},840:(e,t,r)=>{var s;if("object"==typeof globalThis)s=globalThis;else try{s=r(284)}catch(e){}finally{if(s||"undefined"==typeof window||(s=window),!s)throw new Error("Could not determine global this")}var n=s.WebSocket||s.MozWebSocket,i=r(387);function o(e,t){return t?new n(e,t):new n(e)}n&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(o,e,{get:function(){return n[e]}})})),e.exports={w3cwebsocket:n?o:null,version:i}},387:(e,t,r)=>{e.exports=r(847).version},847:e=>{"use strict";e.exports={version:"1.0.34"}}},t={};function r(s){if(t[s])return t[s].exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,r),n.exports}return r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var s in t)r.o(t,s)&&!r.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(341)})()}));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.supabase=t():e.supabase=t()}(self,(function(){return(()=>{var e={271:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GoTrueApi:()=>g,GoTrueClient:()=>w});var s=r(98),n=r.n(s),i=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};const o=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e);function a(e=n(),t,r,s,a){return i(this,void 0,void 0,(function*(){return new Promise(((n,i)=>{e(r,((e,t,r)=>{const s={method:e,headers:(null==t?void 0:t.headers)||{}};return"GET"===e||(s.headers=Object.assign({"Content-Type":"text/plain;charset=UTF-8"},null==t?void 0:t.headers),s.body=JSON.stringify(r)),s})(t,s,a)).then((e=>{if(!e.ok)throw e;return(null==s?void 0:s.noResolveJson)?n:e.json()})).then((e=>n(e))).catch((e=>((e,t)=>{if("function"!=typeof e.json)return t(e);e.json().then((r=>t({message:o(r),status:(null==e?void 0:e.status)||500})))})(e,i)))}))}))}function h(e,t,r){return i(this,void 0,void 0,(function*(){return a(e,"GET",t,r)}))}function c(e,t,r,s){return i(this,void 0,void 0,(function*(){return a(e,"POST",t,s,r)}))}const u="supabase.auth.token",l={name:"sb:token",lifetime:28800,domain:"",path:"/",sameSite:"lax"};function d(e,t,r){const s=r.map((t=>{return r=t,s=function(e){if(!e||!e.headers||!e.headers.host)throw new Error('The "host" request header is not available');const t=e.headers.host.indexOf(":")>-1&&e.headers.host.split(":")[0]||e.headers.host;return!(["localhost","127.0.0.1"].indexOf(t)>-1||t.endsWith(".local"))}(e),function(e,t,r){const s=r||{},n=encodeURIComponent,i=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;if("function"!=typeof n)throw new TypeError("option encode is invalid");if(!i.test(e))throw new TypeError("argument name is invalid");const o=n(t);if(o&&!i.test(o))throw new TypeError("argument val is invalid");let a=e+"="+o;if(null!=s.maxAge){const e=s.maxAge-0;if(isNaN(e)||!isFinite(e))throw new TypeError("option maxAge is invalid");a+="; Max-Age="+Math.floor(e)}if(s.domain){if(!i.test(s.domain))throw new TypeError("option domain is invalid");a+="; Domain="+s.domain}if(s.path){if(!i.test(s.path))throw new TypeError("option path is invalid");a+="; Path="+s.path}if(s.expires){if("function"!=typeof s.expires.toUTCString)throw new TypeError("option expires is invalid");a+="; Expires="+s.expires.toUTCString()}if(s.httpOnly&&(a+="; HttpOnly"),s.secure&&(a+="; Secure"),s.sameSite)switch("string"==typeof s.sameSite?s.sameSite.toLowerCase():s.sameSite){case"lax":a+="; SameSite=Lax";break;case"strict":a+="; SameSite=Strict";break;case"none":a+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return a}(r.name,r.value,{maxAge:r.maxAge,expires:new Date(Date.now()+1e3*r.maxAge),httpOnly:!0,secure:s,path:null!==(n=r.path)&&void 0!==n?n:"/",domain:null!==(i=r.domain)&&void 0!==i?i:"",sameSite:null!==(o=r.sameSite)&&void 0!==o?o:"lax"});var r,s,n,i,o})),n=t.getHeader("Set-Cookie");n&&(n instanceof Array?Array.prototype.push.apply(s,n):"string"==typeof n&&s.push(n)),t.setHeader("Set-Cookie",s)}function f(e,t,r){d(e,t,[r])}function p(e){return Math.round(Date.now()/1e3)+e}const m=()=>"undefined"!=typeof window;function v(e,t){var r;t||(t=(null===(r=null===window||void 0===window?void 0:window.location)||void 0===r?void 0:r.href)||""),e=e.replace(/[\[\]]/g,"\\$&");const s=new RegExp("[?&#]"+e+"(=([^&#]*)|&|#|$)").exec(t);return s?s[2]?decodeURIComponent(s[2].replace(/\+/g," ")):"":null}var y=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};class g{constructor({url:e="",headers:t={},cookieOptions:r,fetch:s}){this.url=e,this.headers=t,this.cookieOptions=Object.assign(Object.assign({},l),r),this.fetch=s}createUser(e){return y(this,void 0,void 0,(function*(){try{return{data:yield c(this.fetch,`${this.url}/admin/users`,e,{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}listUsers(){return y(this,void 0,void 0,(function*(){try{return{data:(yield h(this.fetch,`${this.url}/admin/users`,{headers:this.headers})).users,error:null}}catch(e){return{data:null,error:e}}}))}signUpWithEmail(e,t,r={}){return y(this,void 0,void 0,(function*(){try{const s=Object.assign({},this.headers);let n="";r.redirectTo&&(n="?redirect_to="+encodeURIComponent(r.redirectTo));const i=yield c(this.fetch,`${this.url}/signup${n}`,{email:e,password:t,data:r.data},{headers:s}),o=Object.assign({},i);return o.expires_in&&(o.expires_at=p(i.expires_in)),{data:o,error:null}}catch(e){return{data:null,error:e}}}))}signInWithEmail(e,t,r={}){return y(this,void 0,void 0,(function*(){try{const s=Object.assign({},this.headers);let n="?grant_type=password";r.redirectTo&&(n+="&redirect_to="+encodeURIComponent(r.redirectTo));const i=yield c(this.fetch,`${this.url}/token${n}`,{email:e,password:t},{headers:s}),o=Object.assign({},i);return o.expires_in&&(o.expires_at=p(i.expires_in)),{data:o,error:null}}catch(e){return{data:null,error:e}}}))}signUpWithPhone(e,t,r={}){return y(this,void 0,void 0,(function*(){try{const s=Object.assign({},this.headers),n=yield c(this.fetch,`${this.url}/signup`,{phone:e,password:t,data:r.data},{headers:s}),i=Object.assign({},n);return i.expires_in&&(i.expires_at=p(n.expires_in)),{data:i,error:null}}catch(e){return{data:null,error:e}}}))}signInWithPhone(e,t){return y(this,void 0,void 0,(function*(){try{const r=Object.assign({},this.headers),s="?grant_type=password",n=yield c(this.fetch,`${this.url}/token${s}`,{phone:e,password:t},{headers:r}),i=Object.assign({},n);return i.expires_in&&(i.expires_at=p(n.expires_in)),{data:i,error:null}}catch(e){return{data:null,error:e}}}))}sendMagicLinkEmail(e,t={}){return y(this,void 0,void 0,(function*(){try{const r=Object.assign({},this.headers);let s="";return t.redirectTo&&(s+="?redirect_to="+encodeURIComponent(t.redirectTo)),{data:yield c(this.fetch,`${this.url}/magiclink${s}`,{email:e},{headers:r}),error:null}}catch(e){return{data:null,error:e}}}))}sendMobileOTP(e){return y(this,void 0,void 0,(function*(){try{const t=Object.assign({},this.headers);return{data:yield c(this.fetch,`${this.url}/otp`,{phone:e},{headers:t}),error:null}}catch(e){return{data:null,error:e}}}))}verifyMobileOTP(e,t,r={}){return y(this,void 0,void 0,(function*(){try{const s=Object.assign({},this.headers);return{data:yield c(this.fetch,`${this.url}/verify`,{phone:e,token:t,type:"sms",redirect_to:r.redirectTo},{headers:s}),error:null}}catch(e){return{data:null,error:e}}}))}inviteUserByEmail(e,t={}){return y(this,void 0,void 0,(function*(){try{const r=Object.assign({},this.headers);let s="";return t.redirectTo&&(s+="?redirect_to="+encodeURIComponent(t.redirectTo)),{data:yield c(this.fetch,`${this.url}/invite${s}`,{email:e,data:t.data},{headers:r}),error:null}}catch(e){return{data:null,error:e}}}))}resetPasswordForEmail(e,t={}){return y(this,void 0,void 0,(function*(){try{const r=Object.assign({},this.headers);let s="";return t.redirectTo&&(s+="?redirect_to="+encodeURIComponent(t.redirectTo)),{data:yield c(this.fetch,`${this.url}/recover${s}`,{email:e},{headers:r}),error:null}}catch(e){return{data:null,error:e}}}))}_createRequestHeaders(e){const t=Object.assign({},this.headers);return t.Authorization=`Bearer ${e}`,t}signOut(e){return y(this,void 0,void 0,(function*(){try{return yield c(this.fetch,`${this.url}/logout`,{},{headers:this._createRequestHeaders(e),noResolveJson:!0}),{error:null}}catch(e){return{error:e}}}))}getUrlForProvider(e,t){const r=[`provider=${encodeURIComponent(e)}`];return(null==t?void 0:t.redirectTo)&&r.push(`redirect_to=${encodeURIComponent(t.redirectTo)}`),(null==t?void 0:t.scopes)&&r.push(`scopes=${encodeURIComponent(t.scopes)}`),`${this.url}/authorize?${r.join("&")}`}getUser(e){return y(this,void 0,void 0,(function*(){try{const t=yield h(this.fetch,`${this.url}/user`,{headers:this._createRequestHeaders(e)});return{user:t,data:t,error:null}}catch(e){return{user:null,data:null,error:e}}}))}updateUser(e,t){return y(this,void 0,void 0,(function*(){try{const r=yield function(e,t,r,s){return i(this,void 0,void 0,(function*(){return a(e,"PUT",t,s,r)}))}(this.fetch,`${this.url}/user`,t,{headers:this._createRequestHeaders(e)});return{user:r,data:r,error:null}}catch(e){return{user:null,data:null,error:e}}}))}deleteUser(e,t){return y(this,void 0,void 0,(function*(){try{const r=yield function(e,t,r,s){return i(this,void 0,void 0,(function*(){return a(e,"DELETE",t,s,r)}))}(this.fetch,`${this.url}/admin/users/${e}`,{},{headers:this._createRequestHeaders(t)});return{user:r,data:r,error:null}}catch(e){return{user:null,data:null,error:e}}}))}refreshAccessToken(e){return y(this,void 0,void 0,(function*(){try{const t=yield c(this.fetch,`${this.url}/token?grant_type=refresh_token`,{refresh_token:e},{headers:this.headers}),r=Object.assign({},t);return r.expires_in&&(r.expires_at=p(t.expires_in)),{data:r,error:null}}catch(e){return{data:null,error:e}}}))}setAuthCookie(e,t){"POST"!==e.method&&(t.setHeader("Allow","POST"),t.status(405).end("Method Not Allowed"));const{event:r,session:s}=e.body;if(!r)throw new Error("Auth event missing!");if("SIGNED_IN"===r){if(!s)throw new Error("Auth session missing!");f(e,t,{name:this.cookieOptions.name,value:s.access_token,domain:this.cookieOptions.domain,maxAge:this.cookieOptions.lifetime,path:this.cookieOptions.path,sameSite:this.cookieOptions.sameSite})}"SIGNED_OUT"===r&&function(e,t,r){f(e,t,{name:r,value:"",maxAge:-1})}(e,t,this.cookieOptions.name),t.status(200).json({})}getUserByCookie(e){return y(this,void 0,void 0,(function*(){try{if(!e.cookies)throw new Error("Not able to parse cookies! When using Express make sure the cookie-parser middleware is in use!");if(!e.cookies[this.cookieOptions.name])throw new Error("No cookie found!");const t=e.cookies[this.cookieOptions.name],{user:r,error:s}=yield this.getUser(t);if(s)throw s;return{token:t,user:r,data:r,error:null}}catch(e){return{token:null,user:null,data:null,error:e}}}))}generateLink(e,t,r={}){return y(this,void 0,void 0,(function*(){try{return{data:yield c(this.fetch,`${this.url}/admin/generate_link`,{type:e,email:t,password:r.password,data:r.data,redirect_to:r.redirectTo},{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}}var b=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};!function(){if("object"!=typeof globalThis)try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch(e){"undefined"!=typeof self&&(self.globalThis=self)}}();const _={url:"http://localhost:9999",autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,multiTab:!0,headers:{"X-Client-Info":"gotrue-js/1.21.7"}};class w{constructor(e){this.stateChangeEmitters=new Map;const t=Object.assign(Object.assign({},_),e);this.currentUser=null,this.currentSession=null,this.autoRefreshToken=t.autoRefreshToken,this.persistSession=t.persistSession,this.multiTab=t.multiTab,this.localStorage=t.localStorage||globalThis.localStorage,this.api=new g({url:t.url,headers:t.headers,cookieOptions:t.cookieOptions,fetch:t.fetch}),this._recoverSession(),this._recoverAndRefresh(),this._listenForMultiTabEvents(),t.detectSessionInUrl&&m()&&v("access_token")&&this.getSessionFromUrl({storeSession:!0}).then((({error:e})=>{e&&console.error("Error getting session from URL.",e)}))}signUp({email:e,password:t,phone:r},s={}){return b(this,void 0,void 0,(function*(){try{this._removeSession();const{data:n,error:i}=r&&t?yield this.api.signUpWithPhone(r,t,{data:s.data}):yield this.api.signUpWithEmail(e,t,{redirectTo:s.redirectTo,data:s.data});if(i)throw i;if(!n)throw"An error occurred on sign up.";let o=null,a=null;return n.access_token&&(o=n,a=o.user,this._saveSession(o),this._notifyAllSubscribers("SIGNED_IN")),n.id&&(a=n),{user:a,session:o,error:null}}catch(e){return{user:null,session:null,error:e}}}))}signIn({email:e,phone:t,password:r,refreshToken:s,provider:n},i={}){return b(this,void 0,void 0,(function*(){try{if(this._removeSession(),e&&!r){const{error:t}=yield this.api.sendMagicLinkEmail(e,{redirectTo:i.redirectTo});return{user:null,session:null,error:t}}if(e&&r)return this._handleEmailSignIn(e,r,{redirectTo:i.redirectTo});if(t&&!r){const{error:e}=yield this.api.sendMobileOTP(t);return{user:null,session:null,error:e}}if(t&&r)return this._handlePhoneSignIn(t,r);if(s){const{error:e}=yield this._callRefreshToken(s);if(e)throw e;return{user:this.currentUser,session:this.currentSession,error:null}}if(n)return this._handleProviderSignIn(n,{redirectTo:i.redirectTo,scopes:i.scopes});throw new Error("You must provide either an email, phone number or a third-party provider.")}catch(e){return{user:null,session:null,error:e}}}))}verifyOTP({phone:e,token:t},r={}){return b(this,void 0,void 0,(function*(){try{this._removeSession();const{data:s,error:n}=yield this.api.verifyMobileOTP(e,t,r);if(n)throw n;if(!s)throw"An error occurred on token verification.";let i=null,o=null;return s.access_token&&(i=s,o=i.user,this._saveSession(i),this._notifyAllSubscribers("SIGNED_IN")),s.id&&(o=s),{user:o,session:i,error:null}}catch(e){return{user:null,session:null,error:e}}}))}user(){return this.currentUser}session(){return this.currentSession}refreshSession(){var e;return b(this,void 0,void 0,(function*(){try{if(!(null===(e=this.currentSession)||void 0===e?void 0:e.access_token))throw new Error("Not logged in.");const{error:t}=yield this._callRefreshToken();if(t)throw t;return{data:this.currentSession,user:this.currentUser,error:null}}catch(e){return{data:null,user:null,error:e}}}))}update(e){var t;return b(this,void 0,void 0,(function*(){try{if(!(null===(t=this.currentSession)||void 0===t?void 0:t.access_token))throw new Error("Not logged in.");const{user:r,error:s}=yield this.api.updateUser(this.currentSession.access_token,e);if(s)throw s;if(!r)throw Error("Invalid user data.");const n=Object.assign(Object.assign({},this.currentSession),{user:r});return this._saveSession(n),this._notifyAllSubscribers("USER_UPDATED"),{data:r,user:r,error:null}}catch(e){return{data:null,user:null,error:e}}}))}setSession(e){return b(this,void 0,void 0,(function*(){try{if(!e)throw new Error("No current session.");const{data:t,error:r}=yield this.api.refreshAccessToken(e);return r?{session:null,error:r}:(this._saveSession(t),this._notifyAllSubscribers("SIGNED_IN"),{session:t,error:null})}catch(e){return{error:e,session:null}}}))}setAuth(e){return this.currentSession=Object.assign(Object.assign({},this.currentSession),{access_token:e,token_type:"bearer",user:null}),this.currentSession}getSessionFromUrl(e){return b(this,void 0,void 0,(function*(){try{if(!m())throw new Error("No browser detected.");const t=v("error_description");if(t)throw new Error(t);const r=v("provider_token"),s=v("access_token");if(!s)throw new Error("No access_token detected.");const n=v("expires_in");if(!n)throw new Error("No expires_in detected.");const i=v("refresh_token");if(!i)throw new Error("No refresh_token detected.");const o=v("token_type");if(!o)throw new Error("No token_type detected.");const a=Math.round(Date.now()/1e3)+parseInt(n),{user:h,error:c}=yield this.api.getUser(s);if(c)throw c;const u={provider_token:r,access_token:s,expires_in:parseInt(n),expires_at:a,refresh_token:i,token_type:o,user:h};if(null==e?void 0:e.storeSession){this._saveSession(u);const e=v("type");this._notifyAllSubscribers("SIGNED_IN"),"recovery"===e&&this._notifyAllSubscribers("PASSWORD_RECOVERY")}return window.location.hash="",{data:u,error:null}}catch(e){return{data:null,error:e}}}))}signOut(){var e;return b(this,void 0,void 0,(function*(){const t=null===(e=this.currentSession)||void 0===e?void 0:e.access_token;if(this._removeSession(),this._notifyAllSubscribers("SIGNED_OUT"),t){const{error:e}=yield this.api.signOut(t);if(e)return{error:e}}return{error:null}}))}onAuthStateChange(e){try{const t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})),r={id:t,callback:e,unsubscribe:()=>{this.stateChangeEmitters.delete(t)}};return this.stateChangeEmitters.set(t,r),{data:r,error:null}}catch(e){return{data:null,error:e}}}_handleEmailSignIn(e,t,r={}){var s,n;return b(this,void 0,void 0,(function*(){try{const{data:i,error:o}=yield this.api.signInWithEmail(e,t,{redirectTo:r.redirectTo});return o||!i?{data:null,user:null,session:null,error:o}:(((null===(s=null==i?void 0:i.user)||void 0===s?void 0:s.confirmed_at)||(null===(n=null==i?void 0:i.user)||void 0===n?void 0:n.email_confirmed_at))&&(this._saveSession(i),this._notifyAllSubscribers("SIGNED_IN")),{data:i,user:i.user,session:i,error:null})}catch(e){return{data:null,user:null,session:null,error:e}}}))}_handlePhoneSignIn(e,t){var r;return b(this,void 0,void 0,(function*(){try{const{data:s,error:n}=yield this.api.signInWithPhone(e,t);return n||!s?{data:null,user:null,session:null,error:n}:((null===(r=null==s?void 0:s.user)||void 0===r?void 0:r.phone_confirmed_at)&&(this._saveSession(s),this._notifyAllSubscribers("SIGNED_IN")),{data:s,user:s.user,session:s,error:null})}catch(e){return{data:null,user:null,session:null,error:e}}}))}_handleProviderSignIn(e,t={}){const r=this.api.getUrlForProvider(e,{redirectTo:t.redirectTo,scopes:t.scopes});try{return m()&&(window.location.href=r),{provider:e,url:r,data:null,session:null,user:null,error:null}}catch(t){return r?{provider:e,url:r,data:null,session:null,user:null,error:null}:{data:null,user:null,session:null,error:t}}}_recoverSession(){var e;try{const t=m()&&(null===(e=this.localStorage)||void 0===e?void 0:e.getItem(u));if(!t||"string"!=typeof t)return null;const r=JSON.parse(t),{currentSession:s,expiresAt:n}=r;n>=Math.round(Date.now()/1e3)&&(null==s?void 0:s.user)&&(this._saveSession(s),this._notifyAllSubscribers("SIGNED_IN"))}catch(e){console.log("error",e)}}_recoverAndRefresh(){return b(this,void 0,void 0,(function*(){try{const e=m()&&(yield this.localStorage.getItem(u));if(!e)return null;const t=JSON.parse(e),{currentSession:r,expiresAt:s}=t;if(s<Math.round(Date.now()/1e3))if(this.autoRefreshToken&&r.refresh_token){const{error:e}=yield this._callRefreshToken(r.refresh_token);e&&(console.log(e.message),yield this._removeSession())}else this._removeSession();else r&&r.user?(this._saveSession(r),this._notifyAllSubscribers("SIGNED_IN")):(console.log("Current session is missing data."),this._removeSession())}catch(e){return console.error(e),null}}))}_callRefreshToken(e){var t;return void 0===e&&(e=null===(t=this.currentSession)||void 0===t?void 0:t.refresh_token),b(this,void 0,void 0,(function*(){try{if(!e)throw new Error("No current session.");const{data:t,error:r}=yield this.api.refreshAccessToken(e);if(r)throw r;if(!t)throw Error("Invalid session data.");return this._saveSession(t),this._notifyAllSubscribers("TOKEN_REFRESHED"),this._notifyAllSubscribers("SIGNED_IN"),{data:t,error:null}}catch(e){return{data:null,error:e}}}))}_notifyAllSubscribers(e){this.stateChangeEmitters.forEach((t=>t.callback(e,this.currentSession)))}_saveSession(e){this.currentSession=e,this.currentUser=e.user;const t=e.expires_at;if(t){const e=t-Math.round(Date.now()/1e3),r=e>60?60:.5;this._startAutoRefreshToken(1e3*(e-r))}this.persistSession&&e.expires_at&&this._persistSession(this.currentSession)}_persistSession(e){const t={currentSession:e,expiresAt:e.expires_at};m()&&this.localStorage.setItem(u,JSON.stringify(t))}_removeSession(){return b(this,void 0,void 0,(function*(){this.currentSession=null,this.currentUser=null,this.refreshTokenTimer&&clearTimeout(this.refreshTokenTimer),m()&&(yield this.localStorage.removeItem(u))}))}_startAutoRefreshToken(e){this.refreshTokenTimer&&clearTimeout(this.refreshTokenTimer),e<=0||!this.autoRefreshToken||(this.refreshTokenTimer=setTimeout((()=>this._callRefreshToken()),e),"function"==typeof this.refreshTokenTimer.unref&&this.refreshTokenTimer.unref())}_listenForMultiTabEvents(){if(!this.multiTab||!m()||!(null===window||void 0===window?void 0:window.addEventListener))return!1;try{null===window||void 0===window||window.addEventListener("storage",(e=>{var t;if(e.key===u){const r=JSON.parse(String(e.newValue));(null===(t=null==r?void 0:r.currentSession)||void 0===t?void 0:t.access_token)?(this._recoverAndRefresh(),this._notifyAllSubscribers("SIGNED_IN")):(this._removeSession(),this._notifyAllSubscribers("SIGNED_OUT"))}}))}catch(e){console.error("_listenForMultiTabEvents",e)}}}},501:(e,t,r)=>{"use strict";r.r(t),r.d(t,{PostgrestBuilder:()=>i,PostgrestClient:()=>l,PostgrestFilterBuilder:()=>a,PostgrestQueryBuilder:()=>h});var s=r(98),n=r.n(s);class i{constructor(e){this.shouldThrowOnError=!1,Object.assign(this,e),this.fetch=e.fetch||n()}throwOnError(){return this.shouldThrowOnError=!0,this}then(e,t){void 0===this.schema||(["GET","HEAD"].includes(this.method)?this.headers["Accept-Profile"]=this.schema:this.headers["Content-Profile"]=this.schema),"GET"!==this.method&&"HEAD"!==this.method&&(this.headers["Content-Type"]="application/json");let r=this.fetch(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then((e=>{return t=this,r=void 0,n=function*(){var t,r,s;let n=null,i=null,o=null;if(e.ok){const n=null===(t=this.headers.Prefer)||void 0===t?void 0:t.split(",").includes("return=minimal");if("HEAD"!==this.method&&!n){const t=yield e.text();t&&(i="text/csv"===this.headers.Accept?t:JSON.parse(t))}const a=null===(r=this.headers.Prefer)||void 0===r?void 0:r.match(/count=(exact|planned|estimated)/),h=null===(s=e.headers.get("content-range"))||void 0===s?void 0:s.split("/");a&&h&&h.length>1&&(o=parseInt(h[1]))}else if(n=yield e.json(),n&&this.shouldThrowOnError)throw n;return{error:n,data:i,count:o,status:e.status,statusText:e.statusText,body:i}},new((s=void 0)||(s=Promise))((function(e,i){function o(e){try{h(n.next(e))}catch(e){i(e)}}function a(e){try{h(n.throw(e))}catch(e){i(e)}}function h(t){var r;t.done?e(t.value):(r=t.value,r instanceof s?r:new s((function(e){e(r)}))).then(o,a)}h((n=n.apply(t,r||[])).next())}));var t,r,s,n}));return this.shouldThrowOnError||(r=r.catch((e=>({error:{message:`FetchError: ${e.message}`,details:"",hint:"",code:e.code||""},data:null,body:null,count:null,status:400,statusText:"Bad Request"})))),r.then(e,t)}}class o extends i{select(e="*"){let t=!1;const r=e.split("").map((e=>/\s/.test(e)&&!t?"":('"'===e&&(t=!t),e))).join("");return this.url.searchParams.set("select",r),this}order(e,{ascending:t=!0,nullsFirst:r=!1,foreignTable:s}={}){const n=void 0===s?"order":`${s}.order`,i=this.url.searchParams.get(n);return this.url.searchParams.set(n,`${i?`${i},`:""}${e}.${t?"asc":"desc"}.${r?"nullsfirst":"nullslast"}`),this}limit(e,{foreignTable:t}={}){const r=void 0===t?"limit":`${t}.limit`;return this.url.searchParams.set(r,`${e}`),this}range(e,t,{foreignTable:r}={}){const s=void 0===r?"offset":`${r}.offset`,n=void 0===r?"limit":`${r}.limit`;return this.url.searchParams.set(s,`${e}`),this.url.searchParams.set(n,""+(t-e+1)),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.Accept="application/vnd.pgrst.object+json",this}maybeSingle(){this.headers.Accept="application/vnd.pgrst.object+json";const e=new o(this);return e.then=(e,t)=>this.then((t=>{var r,s;return(null===(s=null===(r=t.error)||void 0===r?void 0:r.details)||void 0===s?void 0:s.includes("Results contain 0 rows"))?e({error:null,data:null,count:t.count,status:200,statusText:"OK",body:null}):e(t)}),t),e}csv(){return this.headers.Accept="text/csv",this}}class a extends o{constructor(){super(...arguments),this.cs=this.contains,this.cd=this.containedBy,this.sl=this.rangeLt,this.sr=this.rangeGt,this.nxl=this.rangeGte,this.nxr=this.rangeLte,this.adj=this.rangeAdjacent,this.ov=this.overlaps}not(e,t,r){return this.url.searchParams.append(`${e}`,`not.${t}.${r}`),this}or(e,{foreignTable:t}={}){const r=void 0===t?"or":`${t}.or`;return this.url.searchParams.append(r,`(${e})`),this}eq(e,t){return this.url.searchParams.append(`${e}`,`eq.${t}`),this}neq(e,t){return this.url.searchParams.append(`${e}`,`neq.${t}`),this}gt(e,t){return this.url.searchParams.append(`${e}`,`gt.${t}`),this}gte(e,t){return this.url.searchParams.append(`${e}`,`gte.${t}`),this}lt(e,t){return this.url.searchParams.append(`${e}`,`lt.${t}`),this}lte(e,t){return this.url.searchParams.append(`${e}`,`lte.${t}`),this}like(e,t){return this.url.searchParams.append(`${e}`,`like.${t}`),this}ilike(e,t){return this.url.searchParams.append(`${e}`,`ilike.${t}`),this}is(e,t){return this.url.searchParams.append(`${e}`,`is.${t}`),this}in(e,t){const r=t.map((e=>"string"==typeof e&&new RegExp("[,()]").test(e)?`"${e}"`:`${e}`)).join(",");return this.url.searchParams.append(`${e}`,`in.(${r})`),this}contains(e,t){return"string"==typeof t?this.url.searchParams.append(`${e}`,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(`${e}`,`cs.{${t.join(",")}}`):this.url.searchParams.append(`${e}`,`cs.${JSON.stringify(t)}`),this}containedBy(e,t){return"string"==typeof t?this.url.searchParams.append(`${e}`,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(`${e}`,`cd.{${t.join(",")}}`):this.url.searchParams.append(`${e}`,`cd.${JSON.stringify(t)}`),this}rangeLt(e,t){return this.url.searchParams.append(`${e}`,`sl.${t}`),this}rangeGt(e,t){return this.url.searchParams.append(`${e}`,`sr.${t}`),this}rangeGte(e,t){return this.url.searchParams.append(`${e}`,`nxl.${t}`),this}rangeLte(e,t){return this.url.searchParams.append(`${e}`,`nxr.${t}`),this}rangeAdjacent(e,t){return this.url.searchParams.append(`${e}`,`adj.${t}`),this}overlaps(e,t){return"string"==typeof t?this.url.searchParams.append(`${e}`,`ov.${t}`):this.url.searchParams.append(`${e}`,`ov.{${t.join(",")}}`),this}textSearch(e,t,{config:r,type:s=null}={}){let n="";"plain"===s?n="pl":"phrase"===s?n="ph":"websearch"===s&&(n="w");const i=void 0===r?"":`(${r})`;return this.url.searchParams.append(`${e}`,`${n}fts${i}.${t}`),this}fts(e,t,{config:r}={}){const s=void 0===r?"":`(${r})`;return this.url.searchParams.append(`${e}`,`fts${s}.${t}`),this}plfts(e,t,{config:r}={}){const s=void 0===r?"":`(${r})`;return this.url.searchParams.append(`${e}`,`plfts${s}.${t}`),this}phfts(e,t,{config:r}={}){const s=void 0===r?"":`(${r})`;return this.url.searchParams.append(`${e}`,`phfts${s}.${t}`),this}wfts(e,t,{config:r}={}){const s=void 0===r?"":`(${r})`;return this.url.searchParams.append(`${e}`,`wfts${s}.${t}`),this}filter(e,t,r){return this.url.searchParams.append(`${e}`,`${t}.${r}`),this}match(e){return Object.keys(e).forEach((t=>{this.url.searchParams.append(`${t}`,`eq.${e[t]}`)})),this}}class h extends i{constructor(e,{headers:t={},schema:r,fetch:s}={}){super({fetch:s}),this.url=new URL(e),this.headers=Object.assign({},t),this.schema=r}select(e="*",{head:t=!1,count:r=null}={}){this.method="GET";let s=!1;const n=e.split("").map((e=>/\s/.test(e)&&!s?"":('"'===e&&(s=!s),e))).join("");return this.url.searchParams.set("select",n),r&&(this.headers.Prefer=`count=${r}`),t&&(this.method="HEAD"),new a(this)}insert(e,{upsert:t=!1,onConflict:r,returning:s="representation",count:n=null}={}){this.method="POST";const i=[`return=${s}`];if(t&&i.push("resolution=merge-duplicates"),t&&void 0!==r&&this.url.searchParams.set("on_conflict",r),this.body=e,n&&i.push(`count=${n}`),this.headers.Prefer=i.join(","),Array.isArray(e)){const t=e.reduce(((e,t)=>e.concat(Object.keys(t))),[]);if(t.length>0){const e=[...new Set(t)].map((e=>`"${e}"`));this.url.searchParams.set("columns",e.join(","))}}return new a(this)}upsert(e,{onConflict:t,returning:r="representation",count:s=null,ignoreDuplicates:n=!1}={}){this.method="POST";const i=[`resolution=${n?"ignore":"merge"}-duplicates`,`return=${r}`];return void 0!==t&&this.url.searchParams.set("on_conflict",t),this.body=e,s&&i.push(`count=${s}`),this.headers.Prefer=i.join(","),new a(this)}update(e,{returning:t="representation",count:r=null}={}){this.method="PATCH";const s=[`return=${t}`];return this.body=e,r&&s.push(`count=${r}`),this.headers.Prefer=s.join(","),new a(this)}delete({returning:e="representation",count:t=null}={}){this.method="DELETE";const r=[`return=${e}`];return t&&r.push(`count=${t}`),this.headers.Prefer=r.join(","),new a(this)}}class c extends i{constructor(e,{headers:t={},schema:r,fetch:s}={}){super({fetch:s}),this.url=new URL(e),this.headers=Object.assign({},t),this.schema=r}rpc(e,{head:t=!1,count:r=null}={}){return t?(this.method="HEAD",e&&Object.entries(e).forEach((([e,t])=>{this.url.searchParams.append(e,t)}))):(this.method="POST",this.body=e),r&&(void 0!==this.headers.Prefer?this.headers.Prefer+=`,count=${r}`:this.headers.Prefer=`count=${r}`),new a(this)}}const u={"X-Client-Info":"postgrest-js/0.35.0"};class l{constructor(e,{headers:t={},schema:r,fetch:s}={}){this.url=e,this.headers=Object.assign(Object.assign({},u),t),this.schema=r,this.fetch=s}auth(e){return this.headers.Authorization=`Bearer ${e}`,this}from(e){const t=`${this.url}/${e}`;return new h(t,{headers:this.headers,schema:this.schema,fetch:this.fetch})}rpc(e,t,{head:r=!1,count:s=null}={}){const n=`${this.url}/rpc/${e}`;return new c(n,{headers:this.headers,schema:this.schema,fetch:this.fetch}).rpc(t,{head:r,count:s})}}},498:(e,t,r)=>{"use strict";r.r(t),r.d(t,{RealtimeClient:()=>O,RealtimeSubscription:()=>w,Transformers:()=>n});var s,n={};r.r(n),r.d(n,{PostgresTypes:()=>s,convertCell:()=>a,convertChangeData:()=>i,convertColumn:()=>o,toArray:()=>d,toBoolean:()=>c,toJson:()=>l,toNumber:()=>u,toTimestampString:()=>f}),function(e){e.abstime="abstime",e.bool="bool",e.date="date",e.daterange="daterange",e.float4="float4",e.float8="float8",e.int2="int2",e.int4="int4",e.int4range="int4range",e.int8="int8",e.int8range="int8range",e.json="json",e.jsonb="jsonb",e.money="money",e.numeric="numeric",e.oid="oid",e.reltime="reltime",e.text="text",e.time="time",e.timestamp="timestamp",e.timestamptz="timestamptz",e.timetz="timetz",e.tsrange="tsrange",e.tstzrange="tstzrange"}(s||(s={}));const i=(e,t,r={})=>{var s;const n=null!==(s=r.skipTypes)&&void 0!==s?s:[];return Object.keys(t).reduce(((r,s)=>(r[s]=o(s,e,t,n),r)),{})},o=(e,t,r,s)=>{const n=t.find((t=>t.name===e)),i=null==n?void 0:n.type,o=r[e];return i&&!s.includes(i)?a(i,o):h(o)},a=(e,t)=>{if("_"===e.charAt(0)){const r=e.slice(1,e.length);return d(t,r)}switch(e){case s.bool:return c(t);case s.float4:case s.float8:case s.int2:case s.int4:case s.int8:case s.numeric:case s.oid:return u(t);case s.json:case s.jsonb:return l(t);case s.timestamp:return f(t);case s.abstime:case s.date:case s.daterange:case s.int4range:case s.int8range:case s.money:case s.reltime:case s.text:case s.time:case s.timestamptz:case s.timetz:case s.tsrange:case s.tstzrange:default:return h(t)}},h=e=>e,c=e=>{switch(e){case"t":return!0;case"f":return!1;default:return e}},u=e=>{if("string"==typeof e){const t=parseFloat(e);if(!Number.isNaN(t))return t}return e},l=e=>{if("string"==typeof e)try{return JSON.parse(e)}catch(t){return console.log(`JSON parse error: ${t}`),e}return e},d=(e,t)=>{if("string"!=typeof e)return e;const r=e.length-1,s=e[r];if("{"===e[0]&&"}"===s){let s;const n=e.slice(1,r);try{s=JSON.parse("["+n+"]")}catch(e){s=n?n.split(","):[]}return s.map((e=>a(t,e)))}return e},f=e=>"string"==typeof e?e.replace(" ","T"):e,p={"X-Client-Info":"realtime-js/1.3.2"};var m,v,y,g;!function(e){e[e.connecting=0]="connecting",e[e.open=1]="open",e[e.closing=2]="closing",e[e.closed=3]="closed"}(m||(m={})),function(e){e.closed="closed",e.errored="errored",e.joined="joined",e.joining="joining",e.leaving="leaving"}(v||(v={})),function(e){e.close="phx_close",e.error="phx_error",e.join="phx_join",e.reply="phx_reply",e.leave="phx_leave",e.access_token="access_token"}(y||(y={})),function(e){e.websocket="websocket"}(g||(g={}));class b{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=void 0,this.tries=0,this.callback=e,this.timerCalc=t}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout((()=>{this.tries=this.tries+1,this.callback()}),this.timerCalc(this.tries+1))}}class _{constructor(e,t,r={},s=1e4){this.channel=e,this.event=t,this.payload=r,this.timeout=s,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend(e){this.timeout=e,this._cancelRefEvent(),this.ref="",this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){this._hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref}))}receive(e,t){var r;return this._hasReceived(e)&&t(null===(r=this.receivedResp)||void 0===r?void 0:r.response),this.recHooks.push({status:e,callback:t}),this}startTimeout(){this.timeoutTimer||(this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,(e=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=e,this._matchReceive(e)})),this.timeoutTimer=setTimeout((()=>{this.trigger("timeout",{})}),this.timeout))}trigger(e,t){this.refEvent&&this.channel.trigger(this.refEvent,{status:e,response:t})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){this.refEvent&&this.channel.off(this.refEvent)}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:e,response:t}){this.recHooks.filter((t=>t.status===e)).forEach((e=>e.callback(t)))}_hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}}class w{constructor(e,t={},r){this.topic=e,this.params=t,this.socket=r,this.bindings=[],this.state=v.closed,this.joinedOnce=!1,this.pushBuffer=[],this.timeout=this.socket.timeout,this.joinPush=new _(this,y.join,this.params,this.timeout),this.rejoinTimer=new b((()=>this.rejoinUntilConnected()),this.socket.reconnectAfterMs),this.joinPush.receive("ok",(()=>{this.state=v.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach((e=>e.send())),this.pushBuffer=[]})),this.onClose((()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this.joinRef()}`),this.state=v.closed,this.socket.remove(this)})),this.onError((e=>{this.isLeaving()||this.isClosed()||(this.socket.log("channel",`error ${this.topic}`,e),this.state=v.errored,this.rejoinTimer.scheduleTimeout())})),this.joinPush.receive("timeout",(()=>{this.isJoining()&&(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=v.errored,this.rejoinTimer.scheduleTimeout())})),this.on(y.reply,((e,t)=>{this.trigger(this.replyEventName(t),e)}))}rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this.rejoin()}subscribe(e=this.timeout){if(this.joinedOnce)throw"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance";return this.joinedOnce=!0,this.rejoin(e),this.joinPush}onClose(e){this.on(y.close,e)}onError(e){this.on(y.error,(t=>e(t)))}on(e,t){this.bindings.push({event:e,callback:t})}off(e){this.bindings=this.bindings.filter((t=>t.event!==e))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,t,r=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let s=new _(this,e,t,r);return this.canPush()?s.send():(s.startTimeout(),this.pushBuffer.push(s)),s}unsubscribe(e=this.timeout){this.state=v.leaving;let t=()=>{this.socket.log("channel",`leave ${this.topic}`),this.trigger(y.close,"leave",this.joinRef())};this.joinPush.destroy();let r=new _(this,y.leave,{},e);return r.receive("ok",(()=>t())).receive("timeout",(()=>t())),r.send(),this.canPush()||r.trigger("ok",{}),r}onMessage(e,t,r){return t}isMember(e){return this.topic===e}joinRef(){return this.joinPush.ref}sendJoin(e){this.state=v.joining,this.joinPush.resend(e)}rejoin(e=this.timeout){this.isLeaving()||this.sendJoin(e)}trigger(e,t,r){let{close:s,error:n,leave:i,join:o}=y;if(r&&[s,n,i,o].indexOf(e)>=0&&r!==this.joinRef())return;let a=this.onMessage(e,t,r);if(t&&!a)throw"channel onMessage callbacks must return the payload, modified or unmodified";this.bindings.filter((r=>"*"===r.event?e===(null==t?void 0:t.type):r.event===e)).map((e=>e.callback(a,r)))}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===v.closed}isErrored(){return this.state===v.errored}isJoined(){return this.state===v.joined}isJoining(){return this.state===v.joining}isLeaving(){return this.state===v.leaving}}var S=r(840);class T{constructor(){this.HEADER_LENGTH=1}decode(e,t){return e.constructor===ArrayBuffer?t(this._binaryDecode(e)):t("string"==typeof e?JSON.parse(e):{})}_binaryDecode(e){const t=new DataView(e),r=new TextDecoder;return this._decodeBroadcast(e,t,r)}_decodeBroadcast(e,t,r){const s=t.getUint8(1),n=t.getUint8(2);let i=this.HEADER_LENGTH+2;const o=r.decode(e.slice(i,i+s));i+=s;const a=r.decode(e.slice(i,i+n));return i+=n,{ref:null,topic:o,event:a,payload:JSON.parse(r.decode(e.slice(i,e.byteLength)))}}}const E=()=>{};class O{constructor(e,t){this.accessToken=null,this.channels=[],this.endPoint="",this.headers=p,this.params={},this.timeout=1e4,this.transport=S.w3cwebsocket,this.heartbeatIntervalMs=3e4,this.longpollerTimeout=2e4,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.ref=0,this.logger=E,this.conn=null,this.sendBuffer=[],this.serializer=new T,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.endPoint=`${e}/${g.websocket}`,(null==t?void 0:t.params)&&(this.params=t.params),(null==t?void 0:t.headers)&&(this.headers=Object.assign(Object.assign({},this.headers),t.headers)),(null==t?void 0:t.timeout)&&(this.timeout=t.timeout),(null==t?void 0:t.logger)&&(this.logger=t.logger),(null==t?void 0:t.transport)&&(this.transport=t.transport),(null==t?void 0:t.heartbeatIntervalMs)&&(this.heartbeatIntervalMs=t.heartbeatIntervalMs),(null==t?void 0:t.longpollerTimeout)&&(this.longpollerTimeout=t.longpollerTimeout),this.reconnectAfterMs=(null==t?void 0:t.reconnectAfterMs)?t.reconnectAfterMs:e=>[1e3,2e3,5e3,1e4][e-1]||1e4,this.encode=(null==t?void 0:t.encode)?t.encode:(e,t)=>t(JSON.stringify(e)),this.decode=(null==t?void 0:t.decode)?t.decode:this.serializer.decode.bind(this.serializer),this.reconnectTimer=new b((()=>{return e=this,t=void 0,s=function*(){yield this.disconnect(),this.connect()},new((r=void 0)||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}));var e,t,r,s}),this.reconnectAfterMs)}connect(){this.conn||(this.conn=new this.transport(this.endPointURL(),[],null,this.headers),this.conn&&(this.conn.binaryType="arraybuffer",this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=e=>this._onConnError(e),this.conn.onmessage=e=>this.onConnMessage(e),this.conn.onclose=e=>this._onConnClose(e)))}disconnect(e,t){return new Promise(((r,s)=>{try{this.conn&&(this.conn.onclose=function(){},e?this.conn.close(e,t||""):this.conn.close(),this.conn=null,this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.reset()),r({error:null,data:!0})}catch(e){r({error:e,data:!1})}}))}log(e,t,r){this.logger(e,t,r)}onOpen(e){this.stateChangeCallbacks.open.push(e)}onClose(e){this.stateChangeCallbacks.close.push(e)}onError(e){this.stateChangeCallbacks.error.push(e)}onMessage(e){this.stateChangeCallbacks.message.push(e)}connectionState(){switch(this.conn&&this.conn.readyState){case m.connecting:return"connecting";case m.open:return"open";case m.closing:return"closing";default:return"closed"}}isConnected(){return"open"===this.connectionState()}remove(e){this.channels=this.channels.filter((t=>t.joinRef()!==e.joinRef()))}channel(e,t={}){let r=new w(e,t,this);return this.channels.push(r),r}push(e){let{topic:t,event:r,payload:s,ref:n}=e,i=()=>{this.encode(e,(e=>{var t;null===(t=this.conn)||void 0===t||t.send(e)}))};this.log("push",`${t} ${r} (${n})`,s),this.isConnected()?i():this.sendBuffer.push(i)}onConnMessage(e){this.decode(e.data,(e=>{let{topic:t,event:r,payload:s,ref:n}=e;n&&n===this.pendingHeartbeatRef?this.pendingHeartbeatRef=null:r===(null==s?void 0:s.type)&&this._resetHeartbeat(),this.log("receive",`${s.status||""} ${t} ${r} ${n&&"("+n+")"||""}`,s),this.channels.filter((e=>e.isMember(t))).forEach((e=>e.trigger(r,s,n))),this.stateChangeCallbacks.message.forEach((t=>t(e)))}))}endPointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:"1.0.0"}))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}setAuth(e){this.accessToken=e;try{this.channels.forEach((t=>t.joinedOnce&&t.isJoined()&&t.push(y.access_token,{access_token:e})))}catch(e){console.log("error",e),console.log("error",e),console.log("error",e)}}_onConnOpen(){this.log("transport",`connected to ${this.endPointURL()}`),this._flushSendBuffer(),this.reconnectTimer.reset(),this._resetHeartbeat(),this.stateChangeCallbacks.open.forEach((e=>e()))}_onConnClose(e){this.log("transport","close",e),this._triggerChanError(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach((t=>t(e)))}_onConnError(e){this.log("transport",e.message),this._triggerChanError(),this.stateChangeCallbacks.error.forEach((t=>t(e)))}_triggerChanError(){this.channels.forEach((e=>e.trigger(y.error)))}_appendParams(e,t){if(0===Object.keys(t).length)return e;const r=e.match(/\?/)?"&":"?";return`${e}${r}${new URLSearchParams(t)}`}_flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach((e=>e())),this.sendBuffer=[])}_resetHeartbeat(){this.pendingHeartbeatRef=null,this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval((()=>this._sendHeartbeat()),this.heartbeatIntervalMs)}_sendHeartbeat(){var e;if(this.isConnected()){if(this.pendingHeartbeatRef)return this.pendingHeartbeatRef=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection"),void(null===(e=this.conn)||void 0===e||e.close(1e3,"hearbeat timeout"));this.pendingHeartbeatRef=this.makeRef(),this.setAuth(this.accessToken)}}}},122:(e,t,r)=>{"use strict";r.r(t),r.d(t,{SupabaseStorageClient:()=>y});var s=r(98),n=r.n(s),i=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};const o=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e);function a(e=n(),t,r,s,a,h){return i(this,void 0,void 0,(function*(){return new Promise(((n,i)=>{e(r,((e,t,r,s)=>{const n={method:e,headers:(null==t?void 0:t.headers)||{}};return"GET"===e?n:(n.headers=Object.assign({"Content-Type":"application/json"},null==t?void 0:t.headers),n.body=JSON.stringify(s),Object.assign(Object.assign({},n),r))})(t,s,a,h)).then((e=>{if(!e.ok)throw e;return(null==s?void 0:s.noResolveJson)?n(e):e.json()})).then((e=>n(e))).catch((e=>((e,t)=>{if("function"!=typeof e.json)return t(e);e.json().then((r=>t({message:o(r),status:(null==e?void 0:e.status)||500})))})(e,i)))}))}))}function h(e,t,r,s){return i(this,void 0,void 0,(function*(){return a(e,"GET",t,r,s)}))}function c(e,t,r,s,n){return i(this,void 0,void 0,(function*(){return a(e,"POST",t,s,n,r)}))}function u(e,t,r,s,n){return i(this,void 0,void 0,(function*(){return a(e,"DELETE",t,s,n,r)}))}const l={"X-Client-Info":"storage-js/0.0.0"};var d=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))},f=function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};const p={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},m={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};class v{constructor(e,t={},r,s){this.url=e,this.headers=t,this.bucketId=r,this.fetch=s}uploadOrUpdate(e,t,r,s){return f(this,void 0,void 0,(function*(){try{let i;const o=Object.assign(Object.assign({},m),s),a=Object.assign(Object.assign({},this.headers),"POST"===e&&{"x-upsert":String(o.upsert)});"undefined"!=typeof Blob&&r instanceof Blob?(i=new FormData,i.append("cacheControl",o.cacheControl),i.append("",r)):"undefined"!=typeof FormData&&r instanceof FormData?(i=r,i.append("cacheControl",o.cacheControl)):(i=r,a["cache-control"]=`max-age=${o.cacheControl}`,a["content-type"]=o.contentType);const h=this._getFinalPath(t),c=yield n()(`${this.url}/object/${h}`,{method:e,body:i,headers:a});return c.ok?{data:{Key:h},error:null}:{data:null,error:yield c.json()}}catch(e){return{data:null,error:e}}}))}upload(e,t,r){return f(this,void 0,void 0,(function*(){return this.uploadOrUpdate("POST",e,t,r)}))}update(e,t,r){return f(this,void 0,void 0,(function*(){return this.uploadOrUpdate("PUT",e,t,r)}))}move(e,t){return f(this,void 0,void 0,(function*(){try{return{data:yield c(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t},{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}createSignedUrl(e,t){return f(this,void 0,void 0,(function*(){try{const r=this._getFinalPath(e);let s=yield c(this.fetch,`${this.url}/object/sign/${r}`,{expiresIn:t},{headers:this.headers});const n=`${this.url}${s.signedURL}`;return s={signedURL:n},{data:s,error:null,signedURL:n}}catch(e){return{data:null,error:e,signedURL:null}}}))}download(e){return f(this,void 0,void 0,(function*(){try{const t=this._getFinalPath(e),r=yield h(this.fetch,`${this.url}/object/${t}`,{headers:this.headers,noResolveJson:!0});return{data:yield r.blob(),error:null}}catch(e){return{data:null,error:e}}}))}getPublicUrl(e){try{const t=this._getFinalPath(e),r=`${this.url}/object/public/${t}`;return{data:{publicURL:r},error:null,publicURL:r}}catch(e){return{data:null,error:e,publicURL:null}}}remove(e){return f(this,void 0,void 0,(function*(){try{return{data:yield u(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:e},{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}list(e,t,r){return f(this,void 0,void 0,(function*(){try{const s=Object.assign(Object.assign(Object.assign({},p),t),{prefix:e||""});return{data:yield c(this.fetch,`${this.url}/object/list/${this.bucketId}`,s,{headers:this.headers},r),error:null}}catch(e){return{data:null,error:e}}}))}_getFinalPath(e){return`${this.bucketId}/${e}`}}class y extends class{constructor(e,t={},r){this.url=e,this.headers=Object.assign(Object.assign({},l),t),this.fetch=r}listBuckets(){return d(this,void 0,void 0,(function*(){try{return{data:yield h(this.fetch,`${this.url}/bucket`,{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}getBucket(e){return d(this,void 0,void 0,(function*(){try{return{data:yield h(this.fetch,`${this.url}/bucket/${e}`,{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}createBucket(e,t={public:!1}){return d(this,void 0,void 0,(function*(){try{return{data:(yield c(this.fetch,`${this.url}/bucket`,{id:e,name:e,public:t.public},{headers:this.headers})).name,error:null}}catch(e){return{data:null,error:e}}}))}updateBucket(e,t){return d(this,void 0,void 0,(function*(){try{const r=yield function(e,t,r,s,n){return i(this,void 0,void 0,(function*(){return a(e,"PUT",t,s,undefined,r)}))}(this.fetch,`${this.url}/bucket/${e}`,{id:e,name:e,public:t.public},{headers:this.headers});return{data:r,error:null}}catch(e){return{data:null,error:e}}}))}emptyBucket(e){return d(this,void 0,void 0,(function*(){try{return{data:yield c(this.fetch,`${this.url}/bucket/${e}/empty`,{},{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}deleteBucket(e){return d(this,void 0,void 0,(function*(){try{return{data:yield u(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}}))}}{constructor(e,t={},r){super(e,t,r)}from(e){return new v(this.url,this.headers,e,this.fetch)}}},98:function(e,t){var r="undefined"!=typeof self?self:this,s=function(){function e(){this.fetch=!1,this.DOMException=r.DOMException}return e.prototype=r,new e}();!function(e){!function(t){var r="URLSearchParams"in e,s="Symbol"in e&&"iterator"in Symbol,n="FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),i="FormData"in e,o="ArrayBuffer"in e;if(o)var a=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],h=ArrayBuffer.isView||function(e){return e&&a.indexOf(Object.prototype.toString.call(e))>-1};function c(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function u(e){return"string"!=typeof e&&(e=String(e)),e}function l(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return s&&(t[Symbol.iterator]=function(){return t}),t}function d(e){this.map={},e instanceof d?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function f(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function p(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function m(e){var t=new FileReader,r=p(t);return t.readAsArrayBuffer(e),r}function v(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:n&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:i&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:r&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():o&&n&&(t=e)&&DataView.prototype.isPrototypeOf(t)?(this._bodyArrayBuffer=v(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):o&&(ArrayBuffer.prototype.isPrototypeOf(e)||h(e))?this._bodyArrayBuffer=v(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n&&(this.blob=function(){var e=f(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(m)}),this.text=function(){var e,t,r,s=f(this);if(s)return s;if(this._bodyBlob)return e=this._bodyBlob,r=p(t=new FileReader),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),s=0;s<t.length;s++)r[s]=String.fromCharCode(t[s]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},i&&(this.formData=function(){return this.text().then(_)}),this.json=function(){return this.text().then(JSON.parse)},this}d.prototype.append=function(e,t){e=c(e),t=u(t);var r=this.map[e];this.map[e]=r?r+", "+t:t},d.prototype.delete=function(e){delete this.map[c(e)]},d.prototype.get=function(e){return e=c(e),this.has(e)?this.map[e]:null},d.prototype.has=function(e){return this.map.hasOwnProperty(c(e))},d.prototype.set=function(e,t){this.map[c(e)]=u(t)},d.prototype.forEach=function(e,t){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(t,this.map[r],r,this)},d.prototype.keys=function(){var e=[];return this.forEach((function(t,r){e.push(r)})),l(e)},d.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),l(e)},d.prototype.entries=function(){var e=[];return this.forEach((function(t,r){e.push([r,t])})),l(e)},s&&(d.prototype[Symbol.iterator]=d.prototype.entries);var g=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function b(e,t){var r,s,n=(t=t||{}).body;if(e instanceof b){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new d(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new d(t.headers)),this.method=(s=(r=t.method||this.method||"GET").toUpperCase(),g.indexOf(s)>-1?s:r),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function _(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),s=r.shift().replace(/\+/g," "),n=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(s),decodeURIComponent(n))}})),t}function w(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new d(t.headers),this.url=t.url||"",this._initBody(e)}b.prototype.clone=function(){return new b(this,{body:this._bodyInit})},y.call(b.prototype),y.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},w.error=function(){var e=new w(null,{status:0,statusText:""});return e.type="error",e};var S=[301,302,303,307,308];w.redirect=function(e,t){if(-1===S.indexOf(t))throw new RangeError("Invalid status code");return new w(null,{status:t,headers:{location:e}})},t.DOMException=e.DOMException;try{new t.DOMException}catch(e){t.DOMException=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function T(e,r){return new Promise((function(s,i){var o=new b(e,r);if(o.signal&&o.signal.aborted)return i(new t.DOMException("Aborted","AbortError"));var a=new XMLHttpRequest;function h(){a.abort()}a.onload=function(){var e,t,r={status:a.status,statusText:a.statusText,headers:(e=a.getAllResponseHeaders()||"",t=new d,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var r=e.split(":"),s=r.shift().trim();if(s){var n=r.join(":").trim();t.append(s,n)}})),t)};r.url="responseURL"in a?a.responseURL:r.headers.get("X-Request-URL");var n="response"in a?a.response:a.responseText;s(new w(n,r))},a.onerror=function(){i(new TypeError("Network request failed"))},a.ontimeout=function(){i(new TypeError("Network request failed"))},a.onabort=function(){i(new t.DOMException("Aborted","AbortError"))},a.open(o.method,o.url,!0),"include"===o.credentials?a.withCredentials=!0:"omit"===o.credentials&&(a.withCredentials=!1),"responseType"in a&&n&&(a.responseType="blob"),o.headers.forEach((function(e,t){a.setRequestHeader(t,e)})),o.signal&&(o.signal.addEventListener("abort",h),a.onreadystatechange=function(){4===a.readyState&&o.signal.removeEventListener("abort",h)}),a.send(void 0===o._bodyInit?null:o._bodyInit)}))}T.polyfill=!0,e.fetch||(e.fetch=T,e.Headers=d,e.Request=b,e.Response=w),t.Headers=d,t.Request=b,t.Response=w,t.fetch=T,Object.defineProperty(t,"__esModule",{value:!0})}({})}(s),s.fetch.ponyfill=!0,delete s.fetch.polyfill;var n=s;(t=n.fetch).default=n.fetch,t.fetch=n.fetch,t.Headers=n.Headers,t.Request=n.Request,t.Response=n.Response,e.exports=t},284:e=>{var t=function(){if("object"==typeof self&&self)return self;if("object"==typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};e.exports=function(){if(this)return this;if("object"==typeof globalThis&&globalThis)return globalThis;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(e){return t()}try{return __global__||t()}finally{delete Object.prototype.__global__}}()},296:function(e,t,r){"use strict";var s=this&&this.__awaiter||function(e,t,r,s){return new(r||(r=Promise))((function(n,i){function o(e){try{h(s.next(e))}catch(e){i(e)}}function a(e){try{h(s.throw(e))}catch(e){i(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const n=r(678),i=r(610),o=r(283),a=r(528),h=r(122),c=r(501),u=r(498),l={schema:"public",autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,multiTab:!0,headers:n.DEFAULT_HEADERS};t.default=class{constructor(e,t,r){if(this.supabaseUrl=e,this.supabaseKey=t,!e)throw new Error("supabaseUrl is required.");if(!t)throw new Error("supabaseKey is required.");e=(0,i.stripTrailingSlash)(e);const s=Object.assign(Object.assign({},l),r);this.restUrl=`${e}/rest/v1`,this.realtimeUrl=`${e}/realtime/v1`.replace("http","ws"),this.authUrl=`${e}/auth/v1`,this.storageUrl=`${e}/storage/v1`,this.schema=s.schema,this.multiTab=s.multiTab,this.fetch=s.fetch,this.headers=Object.assign(Object.assign({},n.DEFAULT_HEADERS),null==r?void 0:r.headers),this.auth=this._initSupabaseAuthClient(s),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers},s.realtime)),this._listenForAuthEvents(),this._listenForMultiTabEvents()}get storage(){return new h.SupabaseStorageClient(this.storageUrl,this._getAuthHeaders(),this.fetch)}from(e){const t=`${this.restUrl}/${e}`;return new a.SupabaseQueryBuilder(t,{headers:this._getAuthHeaders(),schema:this.schema,realtime:this.realtime,table:e,fetch:this.fetch})}rpc(e,t,{head:r=!1,count:s=null}={}){return this._initPostgRESTClient().rpc(e,t,{head:r,count:s})}removeAllSubscriptions(){this.realtime.channels.forEach((e=>{this.removeSubscription(e)}))}removeSubscription(e){return new Promise((t=>s(this,void 0,void 0,(function*(){try{yield this._closeSubscription(e);const r=this.getSubscriptions().length;if(!r){const{error:e}=yield this.realtime.disconnect();if(e)return t({error:e})}return t({error:null,data:{openSubscriptions:r}})}catch(e){return t({error:e})}}))))}_closeSubscription(e){return s(this,void 0,void 0,(function*(){e.isClosed()||(yield this._closeChannel(e))}))}getSubscriptions(){return this.realtime.channels}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:r,localStorage:s,headers:n,fetch:i}){const a={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new o.SupabaseAuthClient({url:this.authUrl,headers:Object.assign(Object.assign({},n),a),autoRefreshToken:e,persistSession:t,detectSessionInUrl:r,localStorage:s,fetch:i})}_initRealtimeClient(e){return new u.RealtimeClient(this.realtimeUrl,Object.assign(Object.assign({},e),{params:Object.assign(Object.assign({},null==e?void 0:e.params),{apikey:this.supabaseKey})}))}_initPostgRESTClient(){return new c.PostgrestClient(this.restUrl,{headers:this._getAuthHeaders(),schema:this.schema,fetch:this.fetch})}_getAuthHeaders(){var e,t;const r=this.headers,s=null!==(t=null===(e=this.auth.session())||void 0===e?void 0:e.access_token)&&void 0!==t?t:this.supabaseKey;return r.apikey=this.supabaseKey,r.Authorization=`Bearer ${s}`,r}_closeChannel(e){return new Promise(((t,r)=>{e.unsubscribe().receive("ok",(()=>(this.realtime.remove(e),t(!0)))).receive("error",(e=>r(e)))}))}_listenForMultiTabEvents(){if(!this.multiTab||!(0,i.isBrowser)()||!(null===window||void 0===window?void 0:window.addEventListener))return null;try{return null===window||void 0===window?void 0:window.addEventListener("storage",(e=>{var t,r,s;if(e.key===n.STORAGE_KEY){const n=JSON.parse(String(e.newValue)),i=null!==(r=null===(t=null==n?void 0:n.currentSession)||void 0===t?void 0:t.access_token)&&void 0!==r?r:void 0,o=null===(s=this.auth.session())||void 0===s?void 0:s.access_token;i?!o&&i?this._handleTokenChanged("SIGNED_IN",i,"STORAGE"):o!==i&&this._handleTokenChanged("TOKEN_REFRESHED",i,"STORAGE"):this._handleTokenChanged("SIGNED_OUT",i,"STORAGE")}}))}catch(e){return console.error("_listenForMultiTabEvents",e),null}}_listenForAuthEvents(){let{data:e}=this.auth.onAuthStateChange(((e,t)=>{this._handleTokenChanged(e,null==t?void 0:t.access_token,"CLIENT")}));return e}_handleTokenChanged(e,t,r){"TOKEN_REFRESHED"!==e&&"SIGNED_IN"!==e||this.changedAccessToken===t?"SIGNED_OUT"!==e&&"USER_DELETED"!==e||(this.removeAllSubscriptions(),"STORAGE"==r&&this.auth.signOut()):(this.realtime.setAuth(t),"STORAGE"==r&&this.auth.setAuth(t),this.changedAccessToken=t)}}},341:function(e,t,r){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,t,r,s){void 0===s&&(s=r),Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,s){void 0===s&&(s=r),e[s]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||s(t,e,r)},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AuthSession=t.AuthUser=t.SupabaseRealtimePayload=t.SupabaseClientOptions=t.SupabaseClient=t.createClient=t.PostgrestError=t.PostgrestMaybeSingleResponse=t.PostgrestSingleResponse=t.PostgrestResponse=void 0;const o=i(r(296));t.SupabaseClient=o.default;const a=r(717);Object.defineProperty(t,"SupabaseClientOptions",{enumerable:!0,get:function(){return a.SupabaseClientOptions}}),Object.defineProperty(t,"SupabaseRealtimePayload",{enumerable:!0,get:function(){return a.SupabaseRealtimePayload}});const h=r(271);Object.defineProperty(t,"AuthUser",{enumerable:!0,get:function(){return h.User}}),Object.defineProperty(t,"AuthSession",{enumerable:!0,get:function(){return h.Session}}),n(r(271),t);var c=r(501);Object.defineProperty(t,"PostgrestResponse",{enumerable:!0,get:function(){return c.PostgrestResponse}}),Object.defineProperty(t,"PostgrestSingleResponse",{enumerable:!0,get:function(){return c.PostgrestSingleResponse}}),Object.defineProperty(t,"PostgrestMaybeSingleResponse",{enumerable:!0,get:function(){return c.PostgrestMaybeSingleResponse}}),Object.defineProperty(t,"PostgrestError",{enumerable:!0,get:function(){return c.PostgrestError}}),n(r(498),t),t.createClient=(e,t,r)=>new o.default(e,t,r)},283:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SupabaseAuthClient=void 0;const s=r(271);class n extends s.GoTrueClient{constructor(e){super(e)}}t.SupabaseAuthClient=n},528:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SupabaseQueryBuilder=void 0;const s=r(501),n=r(308);class i extends s.PostgrestQueryBuilder{constructor(e,{headers:t={},schema:r,realtime:s,table:i,fetch:o}){super(e,{headers:t,schema:r,fetch:o}),this._subscription=new n.SupabaseRealtimeClient(s,t,r,i),this._realtime=s}on(e,t){return this._realtime.isConnected()||this._realtime.connect(),this._subscription.on(e,t)}}t.SupabaseQueryBuilder=i},308:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SupabaseRealtimeClient=void 0;const s=r(498);t.SupabaseRealtimeClient=class{constructor(e,t,r,s){const n={},i="*"===s?`realtime:${r}`:`realtime:${r}:${s}`,o=t.Authorization.split(" ")[1];o&&(n.user_token=o),this.subscription=e.channel(i,n)}getPayloadRecords(e){const t={new:{},old:{}};return"INSERT"!==e.type&&"UPDATE"!==e.type||(t.new=s.Transformers.convertChangeData(e.columns,e.record)),"UPDATE"!==e.type&&"DELETE"!==e.type||(t.old=s.Transformers.convertChangeData(e.columns,e.old_record)),t}on(e,t){return this.subscription.on(e,(e=>{let r={schema:e.schema,table:e.table,commit_timestamp:e.commit_timestamp,eventType:e.type,new:{},old:{}};r=Object.assign(Object.assign({},r),this.getPayloadRecords(e)),t(r)})),this}subscribe(e=(()=>{})){return this.subscription.onError((t=>e("SUBSCRIPTION_ERROR",t))),this.subscription.onClose((()=>e("CLOSED"))),this.subscription.subscribe().receive("ok",(()=>e("SUBSCRIBED"))).receive("error",(t=>e("SUBSCRIPTION_ERROR",t))).receive("timeout",(()=>e("RETRYING_AFTER_TIMEOUT"))),this.subscription}}},678:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.STORAGE_KEY=t.DEFAULT_HEADERS=void 0;const s=r(506);t.DEFAULT_HEADERS={"X-Client-Info":`supabase-js/${s.version}`},t.STORAGE_KEY="supabase.auth.token"},610:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isBrowser=t.stripTrailingSlash=t.uuid=void 0,t.uuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))},t.stripTrailingSlash=function(e){return e.replace(/\/$/,"")},t.isBrowser=()=>"undefined"!=typeof window},717:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},506:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0,t.version="0.0.0"},840:(e,t,r)=>{var s;if("object"==typeof globalThis)s=globalThis;else try{s=r(284)}catch(e){}finally{if(s||"undefined"==typeof window||(s=window),!s)throw new Error("Could not determine global this")}var n=s.WebSocket||s.MozWebSocket,i=r(387);function o(e,t){return t?new n(e,t):new n(e)}n&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(o,e,{get:function(){return n[e]}})})),e.exports={w3cwebsocket:n?o:null,version:i}},387:(e,t,r)=>{e.exports=r(794).version},794:e=>{"use strict";e.exports={version:"1.0.34"}}},t={};function r(s){var n=t[s];if(void 0!==n)return n.exports;var i=t[s]={exports:{}};return e[s].call(i.exports,i,i.exports,r),i.exports}return r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var s in t)r.o(t,s)&&!r.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(341)})()}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase/supabase-js",
3
- "version": "1.28.0",
3
+ "version": "1.28.4",
4
4
  "description": "Isomorphic Javascript client for Supabase.",
5
5
  "keywords": [
6
6
  "javascript",
@@ -22,6 +22,7 @@
22
22
  "repository": "supabase/supabase-js",
23
23
  "scripts": {
24
24
  "clean": "rimraf dist docs",
25
+ "coverage": "jest --runInBand --coverage",
25
26
  "format": "prettier --write \"{src,test}/**/*.ts\"",
26
27
  "build": "genversion src/lib/version.ts --es6 && run-s clean format build:*",
27
28
  "build:main": "tsc -p tsconfig.json",
@@ -36,9 +37,9 @@
36
37
  "docs:json": "typedoc --json docs/spec.json --mode modules --includeDeclarations --excludeExternals"
37
38
  },
38
39
  "dependencies": {
39
- "@supabase/gotrue-js": "^1.21.0",
40
+ "@supabase/gotrue-js": "^1.21.7",
40
41
  "@supabase/postgrest-js": "^0.35.0",
41
- "@supabase/realtime-js": "^1.2.1",
42
+ "@supabase/realtime-js": "^1.3.2",
42
43
  "@supabase/storage-js": "^1.5.0"
43
44
  },
44
45
  "devDependencies": {
@@ -1,10 +1,11 @@
1
- import { DEFAULT_HEADERS } from './lib/constants'
2
- import { stripTrailingSlash } from './lib/helpers'
1
+ import { DEFAULT_HEADERS, STORAGE_KEY } from './lib/constants'
2
+ import { stripTrailingSlash, isBrowser } from './lib/helpers'
3
3
  import { Fetch, SupabaseClientOptions } from './lib/types'
4
4
  import { SupabaseAuthClient } from './lib/SupabaseAuthClient'
5
5
  import { SupabaseQueryBuilder } from './lib/SupabaseQueryBuilder'
6
6
  import { SupabaseStorageClient } from '@supabase/storage-js'
7
7
  import { PostgrestClient } from '@supabase/postgrest-js'
8
+ import { AuthChangeEvent, Session, Subscription } from '@supabase/gotrue-js'
8
9
  import { RealtimeClient, RealtimeSubscription, RealtimeClientOptions } from '@supabase/realtime-js'
9
10
 
10
11
  const DEFAULT_OPTIONS = {
@@ -12,6 +13,7 @@ const DEFAULT_OPTIONS = {
12
13
  autoRefreshToken: true,
13
14
  persistSession: true,
14
15
  detectSessionInUrl: true,
16
+ multiTab: true,
15
17
  headers: DEFAULT_HEADERS,
16
18
  }
17
19
 
@@ -32,7 +34,12 @@ export default class SupabaseClient {
32
34
  protected authUrl: string
33
35
  protected storageUrl: string
34
36
  protected realtime: RealtimeClient
37
+ protected multiTab: boolean
35
38
  protected fetch?: Fetch
39
+ protected changedAccessToken: string | undefined
40
+ protected headers: {
41
+ [key: string]: string
42
+ }
36
43
 
37
44
  /**
38
45
  * Create a new client for use in the browser.
@@ -44,6 +51,7 @@ export default class SupabaseClient {
44
51
  * @param options.detectSessionInUrl Set to "true" if you want to automatically detects OAuth grants in the URL and signs in the user.
45
52
  * @param options.headers Any additional headers to send with each network request.
46
53
  * @param options.realtime Options passed along to realtime-js constructor.
54
+ * @param options.multiTab Set to "false" if you want to disable multi-tab/window events.
47
55
  * @param options.fetch A custom fetch implementation.
48
56
  */
49
57
  constructor(
@@ -62,11 +70,15 @@ export default class SupabaseClient {
62
70
  this.authUrl = `${supabaseUrl}/auth/v1`
63
71
  this.storageUrl = `${supabaseUrl}/storage/v1`
64
72
  this.schema = settings.schema
73
+ this.multiTab = settings.multiTab
74
+ this.fetch = settings.fetch
75
+ this.headers = { ...DEFAULT_HEADERS, ...options?.headers }
65
76
 
66
77
  this.auth = this._initSupabaseAuthClient(settings)
67
- this.realtime = this._initRealtimeClient(settings.realtime)
78
+ this.realtime = this._initRealtimeClient({ headers: this.headers, ...settings.realtime })
68
79
 
69
- this.fetch = settings.fetch
80
+ this._listenForAuthEvents()
81
+ this._listenForMultiTabEvents()
70
82
 
71
83
  // In the future we might allow the user to pass in a logger to receive these events.
72
84
  // this.realtime.onOpen(() => console.log('OPEN'))
@@ -118,6 +130,15 @@ export default class SupabaseClient {
118
130
  return rest.rpc<T>(fn, params, { head, count })
119
131
  }
120
132
 
133
+ /**
134
+ * Remove all active subscriptions.
135
+ */
136
+ removeAllSubscriptions() {
137
+ this.realtime.channels.forEach((sub) => {
138
+ this.removeSubscription(sub)
139
+ })
140
+ }
141
+
121
142
  /**
122
143
  * Removes an active subscription and returns the number of open connections.
123
144
  *
@@ -159,6 +180,7 @@ export default class SupabaseClient {
159
180
  detectSessionInUrl,
160
181
  localStorage,
161
182
  headers,
183
+ fetch,
162
184
  }: SupabaseClientOptions) {
163
185
  const authHeaders = {
164
186
  Authorization: `Bearer ${this.supabaseKey}`,
@@ -171,7 +193,7 @@ export default class SupabaseClient {
171
193
  persistSession,
172
194
  detectSessionInUrl,
173
195
  localStorage,
174
- fetch: this.fetch,
196
+ fetch,
175
197
  })
176
198
  }
177
199
 
@@ -191,7 +213,7 @@ export default class SupabaseClient {
191
213
  }
192
214
 
193
215
  private _getAuthHeaders(): { [key: string]: string } {
194
- const headers: { [key: string]: string } = DEFAULT_HEADERS
216
+ const headers: { [key: string]: string } = this.headers
195
217
  const authBearer = this.auth.session()?.access_token ?? this.supabaseKey
196
218
  headers['apikey'] = this.supabaseKey
197
219
  headers['Authorization'] = `Bearer ${authBearer}`
@@ -209,4 +231,61 @@ export default class SupabaseClient {
209
231
  .receive('error', (e: Error) => reject(e))
210
232
  })
211
233
  }
234
+
235
+ private _listenForMultiTabEvents() {
236
+ if (!this.multiTab || !isBrowser() || !window?.addEventListener) {
237
+ return null
238
+ }
239
+
240
+ try {
241
+ return window?.addEventListener('storage', (e: StorageEvent) => {
242
+ if (e.key === STORAGE_KEY) {
243
+ const newSession = JSON.parse(String(e.newValue))
244
+ const accessToken: string | undefined =
245
+ newSession?.currentSession?.access_token ?? undefined
246
+ const previousAccessToken = this.auth.session()?.access_token
247
+ if (!accessToken) {
248
+ this._handleTokenChanged('SIGNED_OUT', accessToken, 'STORAGE')
249
+ } else if (!previousAccessToken && accessToken) {
250
+ this._handleTokenChanged('SIGNED_IN', accessToken, 'STORAGE')
251
+ } else if (previousAccessToken !== accessToken) {
252
+ this._handleTokenChanged('TOKEN_REFRESHED', accessToken, 'STORAGE')
253
+ }
254
+ }
255
+ })
256
+ } catch (error) {
257
+ console.error('_listenForMultiTabEvents', error)
258
+ return null
259
+ }
260
+ }
261
+
262
+ private _listenForAuthEvents() {
263
+ let { data } = this.auth.onAuthStateChange((event, session) => {
264
+ this._handleTokenChanged(event, session?.access_token, 'CLIENT')
265
+ })
266
+ return data
267
+ }
268
+
269
+ private _handleTokenChanged(
270
+ event: AuthChangeEvent,
271
+ token: string | undefined,
272
+ source: 'CLIENT' | 'STORAGE'
273
+ ) {
274
+ if (
275
+ (event === 'TOKEN_REFRESHED' || event === 'SIGNED_IN') &&
276
+ this.changedAccessToken !== token
277
+ ) {
278
+ // Token has changed
279
+ this.realtime.setAuth(token!)
280
+ // Ideally we should call this.auth.recoverSession() - need to make public
281
+ // to trigger a "SIGNED_IN" event on this client.
282
+ if (source == 'STORAGE') this.auth.setAuth(token!)
283
+
284
+ this.changedAccessToken = token
285
+ } else if (event === 'SIGNED_OUT' || event === 'USER_DELETED') {
286
+ // Token is removed
287
+ this.removeAllSubscriptions()
288
+ if (source == 'STORAGE') this.auth.signOut()
289
+ }
290
+ }
212
291
  }
@@ -1,3 +1,4 @@
1
1
  // constants.ts
2
2
  import { version } from './version'
3
3
  export const DEFAULT_HEADERS = { 'X-Client-Info': `supabase-js/${version}` }
4
+ export const STORAGE_KEY = 'supabase.auth.token'
@@ -11,3 +11,5 @@ export function uuid() {
11
11
  export function stripTrailingSlash(url: string) {
12
12
  return url.replace(/\/$/, '')
13
13
  }
14
+
15
+ export const isBrowser = () => typeof window !== 'undefined'
@@ -1,2 +1,2 @@
1
1
  // generated by genversion
2
- export const version = '1.28.0'
2
+ export const version = '1.28.4'