@supabase/supabase-js 2.43.3 → 2.43.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.
Files changed (71) hide show
  1. package/dist/{cjs → main}/index.d.ts.map +1 -1
  2. package/dist/{cjs → main}/index.js +0 -1
  3. package/dist/main/index.js.map +1 -0
  4. package/dist/main/lib/version.d.ts +2 -0
  5. package/dist/{cjs → main}/lib/version.js +1 -1
  6. package/dist/module/SupabaseClient.d.ts +117 -0
  7. package/dist/module/SupabaseClient.d.ts.map +1 -0
  8. package/dist/module/SupabaseClient.js +216 -0
  9. package/dist/module/SupabaseClient.js.map +1 -0
  10. package/dist/module/index.d.ts +14 -0
  11. package/dist/module/index.d.ts.map +1 -0
  12. package/dist/module/index.js +12 -0
  13. package/dist/module/index.js.map +1 -0
  14. package/dist/module/lib/SupabaseAuthClient.d.ts +6 -0
  15. package/dist/module/lib/SupabaseAuthClient.d.ts.map +1 -0
  16. package/dist/module/lib/SupabaseAuthClient.js +7 -0
  17. package/dist/module/lib/SupabaseAuthClient.js.map +1 -0
  18. package/dist/module/lib/constants.d.ts +16 -0
  19. package/dist/module/lib/constants.d.ts.map +1 -0
  20. package/dist/module/lib/constants.js +30 -0
  21. package/dist/module/lib/constants.js.map +1 -0
  22. package/dist/module/lib/fetch.d.ts +6 -0
  23. package/dist/module/lib/fetch.d.ts.map +1 -0
  24. package/dist/module/lib/fetch.js +47 -0
  25. package/dist/module/lib/fetch.js.map +1 -0
  26. package/dist/module/lib/helpers.d.ts +6 -0
  27. package/dist/module/lib/helpers.d.ts.map +1 -0
  28. package/dist/module/lib/helpers.js +21 -0
  29. package/dist/module/lib/helpers.js.map +1 -0
  30. package/dist/module/lib/types.d.ts +94 -0
  31. package/dist/module/lib/types.d.ts.map +1 -0
  32. package/dist/module/lib/types.js +2 -0
  33. package/dist/module/lib/types.js.map +1 -0
  34. package/dist/module/lib/version.d.ts +2 -0
  35. package/dist/module/lib/version.d.ts.map +1 -0
  36. package/dist/module/lib/version.js +2 -0
  37. package/dist/module/lib/version.js.map +1 -0
  38. package/dist/umd/supabase.js +1 -1
  39. package/package.json +9 -14
  40. package/src/index.ts +0 -2
  41. package/src/lib/version.ts +1 -1
  42. package/dist/cjs/index.js.map +0 -1
  43. package/dist/cjs/lib/version.d.ts +0 -2
  44. package/dist/esm/wrapper.mjs +0 -13
  45. /package/dist/{cjs → main}/SupabaseClient.d.ts +0 -0
  46. /package/dist/{cjs → main}/SupabaseClient.d.ts.map +0 -0
  47. /package/dist/{cjs → main}/SupabaseClient.js +0 -0
  48. /package/dist/{cjs → main}/SupabaseClient.js.map +0 -0
  49. /package/dist/{cjs → main}/index.d.ts +0 -0
  50. /package/dist/{cjs → main}/lib/SupabaseAuthClient.d.ts +0 -0
  51. /package/dist/{cjs → main}/lib/SupabaseAuthClient.d.ts.map +0 -0
  52. /package/dist/{cjs → main}/lib/SupabaseAuthClient.js +0 -0
  53. /package/dist/{cjs → main}/lib/SupabaseAuthClient.js.map +0 -0
  54. /package/dist/{cjs → main}/lib/constants.d.ts +0 -0
  55. /package/dist/{cjs → main}/lib/constants.d.ts.map +0 -0
  56. /package/dist/{cjs → main}/lib/constants.js +0 -0
  57. /package/dist/{cjs → main}/lib/constants.js.map +0 -0
  58. /package/dist/{cjs → main}/lib/fetch.d.ts +0 -0
  59. /package/dist/{cjs → main}/lib/fetch.d.ts.map +0 -0
  60. /package/dist/{cjs → main}/lib/fetch.js +0 -0
  61. /package/dist/{cjs → main}/lib/fetch.js.map +0 -0
  62. /package/dist/{cjs → main}/lib/helpers.d.ts +0 -0
  63. /package/dist/{cjs → main}/lib/helpers.d.ts.map +0 -0
  64. /package/dist/{cjs → main}/lib/helpers.js +0 -0
  65. /package/dist/{cjs → main}/lib/helpers.js.map +0 -0
  66. /package/dist/{cjs → main}/lib/types.d.ts +0 -0
  67. /package/dist/{cjs → main}/lib/types.d.ts.map +0 -0
  68. /package/dist/{cjs → main}/lib/types.js +0 -0
  69. /package/dist/{cjs → main}/lib/types.js.map +0 -0
  70. /package/dist/{cjs → main}/lib/version.d.ts.map +0 -0
  71. /package/dist/{cjs → main}/lib/version.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEvE,cAAc,mBAAmB,CAAA;AACjC,YAAY,EAAE,IAAI,IAAI,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACjF,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC5D,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE5F;;GAEG;AACH,eAAO,MAAM,YAAY,2PASV,MAAM,eACN,MAAM,0GAIpB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEvE,cAAc,mBAAmB,CAAA;AACjC,YAAY,EAAE,IAAI,IAAI,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACjF,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC5D,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE5F;;GAEG;AACH,eAAO,MAAM,YAAY,2PASV,MAAM,eACN,MAAM,0GAIpB,CAAA"}
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // Always update wrapper.mjs when updating this file.
3
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
3
  if (k2 === undefined) k2 = k;
5
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,sEAA6C;AAG7C,oDAAiC;AAQjC,uDAO+B;AAN7B,kHAAA,kBAAkB,OAAA;AAClB,mHAAA,mBAAmB,OAAA;AACnB,mHAAA,mBAAmB,OAAA;AACnB,8GAAA,cAAc,OAAA;AAEd,8GAAA,cAAc,OAAA;AAEhB,wDAAqC;AACrC,mDAA4D;AAAnD,iIAAA,OAAO,OAAkB;AAGlC;;GAEG;AACI,MAAM,YAAY,GAAG,CAS1B,WAAmB,EACnB,WAAmB,EACnB,OAA2C,EACG,EAAE;IAChD,OAAO,IAAI,wBAAc,CAA+B,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;AAC5F,CAAC,CAAA;AAdY,QAAA,YAAY,gBAcxB"}
@@ -0,0 +1,2 @@
1
+ export declare const version = "2.43.4";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = '0.0.0-automated';
4
+ exports.version = '2.43.4';
5
5
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,117 @@
1
+ import { FunctionsClient } from '@supabase/functions-js';
2
+ import { PostgrestClient, PostgrestFilterBuilder, PostgrestQueryBuilder } from '@supabase/postgrest-js';
3
+ import { RealtimeChannel, RealtimeChannelOptions, RealtimeClient } from '@supabase/realtime-js';
4
+ import { StorageClient as SupabaseStorageClient } from '@supabase/storage-js';
5
+ import { SupabaseAuthClient } from './lib/SupabaseAuthClient';
6
+ import { Fetch, GenericSchema, SupabaseClientOptions } from './lib/types';
7
+ /**
8
+ * Supabase Client.
9
+ *
10
+ * An isomorphic Javascript client for interacting with Postgres.
11
+ */
12
+ export default class SupabaseClient<Database = any, SchemaName extends string & keyof Database = 'public' extends keyof Database ? 'public' : string & keyof Database, Schema extends GenericSchema = Database[SchemaName] extends GenericSchema ? Database[SchemaName] : any> {
13
+ protected supabaseUrl: string;
14
+ protected supabaseKey: string;
15
+ /**
16
+ * Supabase Auth allows you to create and manage user sessions for access to data that is secured by access policies.
17
+ */
18
+ auth: SupabaseAuthClient;
19
+ realtime: RealtimeClient;
20
+ protected realtimeUrl: string;
21
+ protected authUrl: string;
22
+ protected storageUrl: string;
23
+ protected functionsUrl: string;
24
+ protected rest: PostgrestClient<Database, SchemaName>;
25
+ protected storageKey: string;
26
+ protected fetch?: Fetch;
27
+ protected changedAccessToken?: string;
28
+ protected headers: Record<string, string>;
29
+ /**
30
+ * Create a new client for use in the browser.
31
+ * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.
32
+ * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard.
33
+ * @param options.db.schema You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase.
34
+ * @param options.auth.autoRefreshToken Set to "true" if you want to automatically refresh the token before expiring.
35
+ * @param options.auth.persistSession Set to "true" if you want to automatically save the user session into local storage.
36
+ * @param options.auth.detectSessionInUrl Set to "true" if you want to automatically detects OAuth grants in the URL and signs in the user.
37
+ * @param options.realtime Options passed along to realtime-js constructor.
38
+ * @param options.global.fetch A custom fetch implementation.
39
+ * @param options.global.headers Any additional headers to send with each network request.
40
+ */
41
+ constructor(supabaseUrl: string, supabaseKey: string, options?: SupabaseClientOptions<SchemaName>);
42
+ /**
43
+ * Supabase Functions allows you to deploy and invoke edge functions.
44
+ */
45
+ get functions(): FunctionsClient;
46
+ /**
47
+ * Supabase Storage allows you to manage user-generated content, such as photos or videos.
48
+ */
49
+ get storage(): SupabaseStorageClient;
50
+ from<TableName extends string & keyof Schema['Tables'], Table extends Schema['Tables'][TableName]>(relation: TableName): PostgrestQueryBuilder<Schema, Table, TableName>;
51
+ from<ViewName extends string & keyof Schema['Views'], View extends Schema['Views'][ViewName]>(relation: ViewName): PostgrestQueryBuilder<Schema, View, ViewName>;
52
+ /**
53
+ * Select a schema to query or perform an function (rpc) call.
54
+ *
55
+ * The schema needs to be on the list of exposed schemas inside Supabase.
56
+ *
57
+ * @param schema - The schema to query
58
+ */
59
+ schema<DynamicSchema extends string & keyof Database>(schema: DynamicSchema): PostgrestClient<Database, DynamicSchema, Database[DynamicSchema] extends GenericSchema ? Database[DynamicSchema] : any>;
60
+ /**
61
+ * Perform a function call.
62
+ *
63
+ * @param fn - The function name to call
64
+ * @param args - The arguments to pass to the function call
65
+ * @param options - Named parameters
66
+ * @param options.head - When set to `true`, `data` will not be returned.
67
+ * Useful if you only need the count.
68
+ * @param options.get - When set to `true`, the function will be called with
69
+ * read-only access mode.
70
+ * @param options.count - Count algorithm to use to count rows returned by the
71
+ * function. Only applicable for [set-returning
72
+ * functions](https://www.postgresql.org/docs/current/functions-srf.html).
73
+ *
74
+ * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the
75
+ * hood.
76
+ *
77
+ * `"planned"`: Approximated but fast count algorithm. Uses the Postgres
78
+ * statistics under the hood.
79
+ *
80
+ * `"estimated"`: Uses exact count for low numbers and planned count for high
81
+ * numbers.
82
+ */
83
+ rpc<FnName extends string & keyof Schema['Functions'], Fn extends Schema['Functions'][FnName]>(fn: FnName, args?: Fn['Args'], options?: {
84
+ head?: boolean;
85
+ get?: boolean;
86
+ count?: 'exact' | 'planned' | 'estimated';
87
+ }): PostgrestFilterBuilder<Schema, Fn['Returns'] extends any[] ? Fn['Returns'][number] extends Record<string, unknown> ? Fn['Returns'][number] : never : never, Fn['Returns']>;
88
+ /**
89
+ * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes.
90
+ *
91
+ * @param {string} name - The name of the Realtime channel.
92
+ * @param {Object} opts - The options to pass to the Realtime channel.
93
+ *
94
+ */
95
+ channel(name: string, opts?: RealtimeChannelOptions): RealtimeChannel;
96
+ /**
97
+ * Returns all Realtime channels.
98
+ */
99
+ getChannels(): RealtimeChannel[];
100
+ /**
101
+ * Unsubscribes and removes Realtime channel from Realtime client.
102
+ *
103
+ * @param {RealtimeChannel} channel - The name of the Realtime channel.
104
+ *
105
+ */
106
+ removeChannel(channel: RealtimeChannel): Promise<'ok' | 'timed out' | 'error'>;
107
+ /**
108
+ * Unsubscribes and removes all Realtime channels from Realtime client.
109
+ */
110
+ removeAllChannels(): Promise<('ok' | 'timed out' | 'error')[]>;
111
+ private _getAccessToken;
112
+ private _initSupabaseAuthClient;
113
+ private _initRealtimeClient;
114
+ private _listenForAuthEvents;
115
+ private _handleTokenChanged;
116
+ }
117
+ //# sourceMappingURL=SupabaseClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupabaseClient.d.ts","sourceRoot":"","sources":["../../src/SupabaseClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,216 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { FunctionsClient } from '@supabase/functions-js';
11
+ import { PostgrestClient, } from '@supabase/postgrest-js';
12
+ import { RealtimeClient, } from '@supabase/realtime-js';
13
+ import { StorageClient as SupabaseStorageClient } from '@supabase/storage-js';
14
+ import { DEFAULT_GLOBAL_OPTIONS, DEFAULT_DB_OPTIONS, DEFAULT_AUTH_OPTIONS, DEFAULT_REALTIME_OPTIONS, } from './lib/constants';
15
+ import { fetchWithAuth } from './lib/fetch';
16
+ import { stripTrailingSlash, applySettingDefaults } from './lib/helpers';
17
+ import { SupabaseAuthClient } from './lib/SupabaseAuthClient';
18
+ /**
19
+ * Supabase Client.
20
+ *
21
+ * An isomorphic Javascript client for interacting with Postgres.
22
+ */
23
+ export default class SupabaseClient {
24
+ /**
25
+ * Create a new client for use in the browser.
26
+ * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.
27
+ * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard.
28
+ * @param options.db.schema You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase.
29
+ * @param options.auth.autoRefreshToken Set to "true" if you want to automatically refresh the token before expiring.
30
+ * @param options.auth.persistSession Set to "true" if you want to automatically save the user session into local storage.
31
+ * @param options.auth.detectSessionInUrl Set to "true" if you want to automatically detects OAuth grants in the URL and signs in the user.
32
+ * @param options.realtime Options passed along to realtime-js constructor.
33
+ * @param options.global.fetch A custom fetch implementation.
34
+ * @param options.global.headers Any additional headers to send with each network request.
35
+ */
36
+ constructor(supabaseUrl, supabaseKey, options) {
37
+ var _a, _b, _c;
38
+ this.supabaseUrl = supabaseUrl;
39
+ this.supabaseKey = supabaseKey;
40
+ if (!supabaseUrl)
41
+ throw new Error('supabaseUrl is required.');
42
+ if (!supabaseKey)
43
+ throw new Error('supabaseKey is required.');
44
+ const _supabaseUrl = stripTrailingSlash(supabaseUrl);
45
+ this.realtimeUrl = `${_supabaseUrl}/realtime/v1`.replace(/^http/i, 'ws');
46
+ this.authUrl = `${_supabaseUrl}/auth/v1`;
47
+ this.storageUrl = `${_supabaseUrl}/storage/v1`;
48
+ this.functionsUrl = `${_supabaseUrl}/functions/v1`;
49
+ // default storage key uses the supabase project ref as a namespace
50
+ const defaultStorageKey = `sb-${new URL(this.authUrl).hostname.split('.')[0]}-auth-token`;
51
+ const DEFAULTS = {
52
+ db: DEFAULT_DB_OPTIONS,
53
+ realtime: DEFAULT_REALTIME_OPTIONS,
54
+ auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), { storageKey: defaultStorageKey }),
55
+ global: DEFAULT_GLOBAL_OPTIONS,
56
+ };
57
+ const settings = applySettingDefaults(options !== null && options !== void 0 ? options : {}, DEFAULTS);
58
+ this.storageKey = (_a = settings.auth.storageKey) !== null && _a !== void 0 ? _a : '';
59
+ this.headers = (_b = settings.global.headers) !== null && _b !== void 0 ? _b : {};
60
+ this.auth = this._initSupabaseAuthClient((_c = settings.auth) !== null && _c !== void 0 ? _c : {}, this.headers, settings.global.fetch);
61
+ this.fetch = fetchWithAuth(supabaseKey, this._getAccessToken.bind(this), settings.global.fetch);
62
+ this.realtime = this._initRealtimeClient(Object.assign({ headers: this.headers }, settings.realtime));
63
+ this.rest = new PostgrestClient(`${_supabaseUrl}/rest/v1`, {
64
+ headers: this.headers,
65
+ schema: settings.db.schema,
66
+ fetch: this.fetch,
67
+ });
68
+ this._listenForAuthEvents();
69
+ }
70
+ /**
71
+ * Supabase Functions allows you to deploy and invoke edge functions.
72
+ */
73
+ get functions() {
74
+ return new FunctionsClient(this.functionsUrl, {
75
+ headers: this.headers,
76
+ customFetch: this.fetch,
77
+ });
78
+ }
79
+ /**
80
+ * Supabase Storage allows you to manage user-generated content, such as photos or videos.
81
+ */
82
+ get storage() {
83
+ return new SupabaseStorageClient(this.storageUrl, this.headers, this.fetch);
84
+ }
85
+ /**
86
+ * Perform a query on a table or a view.
87
+ *
88
+ * @param relation - The table or view name to query
89
+ */
90
+ from(relation) {
91
+ return this.rest.from(relation);
92
+ }
93
+ // NOTE: signatures must be kept in sync with PostgrestClient.schema
94
+ /**
95
+ * Select a schema to query or perform an function (rpc) call.
96
+ *
97
+ * The schema needs to be on the list of exposed schemas inside Supabase.
98
+ *
99
+ * @param schema - The schema to query
100
+ */
101
+ schema(schema) {
102
+ return this.rest.schema(schema);
103
+ }
104
+ // NOTE: signatures must be kept in sync with PostgrestClient.rpc
105
+ /**
106
+ * Perform a function call.
107
+ *
108
+ * @param fn - The function name to call
109
+ * @param args - The arguments to pass to the function call
110
+ * @param options - Named parameters
111
+ * @param options.head - When set to `true`, `data` will not be returned.
112
+ * Useful if you only need the count.
113
+ * @param options.get - When set to `true`, the function will be called with
114
+ * read-only access mode.
115
+ * @param options.count - Count algorithm to use to count rows returned by the
116
+ * function. Only applicable for [set-returning
117
+ * functions](https://www.postgresql.org/docs/current/functions-srf.html).
118
+ *
119
+ * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the
120
+ * hood.
121
+ *
122
+ * `"planned"`: Approximated but fast count algorithm. Uses the Postgres
123
+ * statistics under the hood.
124
+ *
125
+ * `"estimated"`: Uses exact count for low numbers and planned count for high
126
+ * numbers.
127
+ */
128
+ rpc(fn, args = {}, options = {}) {
129
+ return this.rest.rpc(fn, args, options);
130
+ }
131
+ /**
132
+ * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes.
133
+ *
134
+ * @param {string} name - The name of the Realtime channel.
135
+ * @param {Object} opts - The options to pass to the Realtime channel.
136
+ *
137
+ */
138
+ channel(name, opts = { config: {} }) {
139
+ return this.realtime.channel(name, opts);
140
+ }
141
+ /**
142
+ * Returns all Realtime channels.
143
+ */
144
+ getChannels() {
145
+ return this.realtime.getChannels();
146
+ }
147
+ /**
148
+ * Unsubscribes and removes Realtime channel from Realtime client.
149
+ *
150
+ * @param {RealtimeChannel} channel - The name of the Realtime channel.
151
+ *
152
+ */
153
+ removeChannel(channel) {
154
+ return this.realtime.removeChannel(channel);
155
+ }
156
+ /**
157
+ * Unsubscribes and removes all Realtime channels from Realtime client.
158
+ */
159
+ removeAllChannels() {
160
+ return this.realtime.removeAllChannels();
161
+ }
162
+ _getAccessToken() {
163
+ var _a, _b;
164
+ return __awaiter(this, void 0, void 0, function* () {
165
+ const { data } = yield this.auth.getSession();
166
+ return (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : null;
167
+ });
168
+ }
169
+ _initSupabaseAuthClient({ autoRefreshToken, persistSession, detectSessionInUrl, storage, storageKey, flowType, debug, }, headers, fetch) {
170
+ var _a;
171
+ const authHeaders = {
172
+ Authorization: `Bearer ${this.supabaseKey}`,
173
+ apikey: `${this.supabaseKey}`,
174
+ };
175
+ return new SupabaseAuthClient({
176
+ url: this.authUrl,
177
+ headers: Object.assign(Object.assign({}, authHeaders), headers),
178
+ storageKey: storageKey,
179
+ autoRefreshToken,
180
+ persistSession,
181
+ detectSessionInUrl,
182
+ storage,
183
+ flowType,
184
+ debug,
185
+ fetch,
186
+ // auth checks if there is a custom authorizaiton header using this flag
187
+ // so it knows whether to return an error when getUser is called with no session
188
+ hasCustomAuthorizationHeader: (_a = 'Authorization' in this.headers) !== null && _a !== void 0 ? _a : false,
189
+ });
190
+ }
191
+ _initRealtimeClient(options) {
192
+ return new RealtimeClient(this.realtimeUrl, Object.assign(Object.assign({}, options), { params: Object.assign({ apikey: this.supabaseKey }, options === null || options === void 0 ? void 0 : options.params) }));
193
+ }
194
+ _listenForAuthEvents() {
195
+ let data = this.auth.onAuthStateChange((event, session) => {
196
+ this._handleTokenChanged(event, 'CLIENT', session === null || session === void 0 ? void 0 : session.access_token);
197
+ });
198
+ return data;
199
+ }
200
+ _handleTokenChanged(event, source, token) {
201
+ if ((event === 'TOKEN_REFRESHED' || event === 'SIGNED_IN') &&
202
+ this.changedAccessToken !== token) {
203
+ // Token has changed
204
+ this.realtime.setAuth(token !== null && token !== void 0 ? token : null);
205
+ this.changedAccessToken = token;
206
+ }
207
+ else if (event === 'SIGNED_OUT') {
208
+ // Token is removed
209
+ this.realtime.setAuth(this.supabaseKey);
210
+ if (source == 'STORAGE')
211
+ this.auth.signOut();
212
+ this.changedAccessToken = undefined;
213
+ }
214
+ }
215
+ }
216
+ //# sourceMappingURL=SupabaseClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupabaseClient.js","sourceRoot":"","sources":["../../src/SupabaseClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import SupabaseClient from './SupabaseClient';
2
+ import type { GenericSchema, SupabaseClientOptions } from './lib/types';
3
+ export * from '@supabase/auth-js';
4
+ export type { User as AuthUser, Session as AuthSession } from '@supabase/auth-js';
5
+ export type { PostgrestResponse, PostgrestSingleResponse, PostgrestMaybeSingleResponse, PostgrestError, } from '@supabase/postgrest-js';
6
+ export { FunctionsHttpError, FunctionsFetchError, FunctionsRelayError, FunctionsError, type FunctionInvokeOptions, FunctionRegion, } from '@supabase/functions-js';
7
+ export * from '@supabase/realtime-js';
8
+ export { default as SupabaseClient } from './SupabaseClient';
9
+ export type { SupabaseClientOptions, QueryResult, QueryData, QueryError } from './lib/types';
10
+ /**
11
+ * Creates a new Supabase Client.
12
+ */
13
+ export declare const createClient: <Database = any, SchemaName extends string & keyof Database = "public" extends keyof Database ? "public" : string & keyof Database, Schema extends GenericSchema = Database[SchemaName] extends GenericSchema ? Database[SchemaName] : any>(supabaseUrl: string, supabaseKey: string, options?: SupabaseClientOptions<SchemaName> | undefined) => SupabaseClient<Database, SchemaName, Schema>;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEvE,cAAc,mBAAmB,CAAA;AACjC,YAAY,EAAE,IAAI,IAAI,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACjF,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC5D,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE5F;;GAEG;AACH,eAAO,MAAM,YAAY,2PASV,MAAM,eACN,MAAM,0GAIpB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import SupabaseClient from './SupabaseClient';
2
+ export * from '@supabase/auth-js';
3
+ export { FunctionsHttpError, FunctionsFetchError, FunctionsRelayError, FunctionsError, FunctionRegion, } from '@supabase/functions-js';
4
+ export * from '@supabase/realtime-js';
5
+ export { default as SupabaseClient } from './SupabaseClient';
6
+ /**
7
+ * Creates a new Supabase Client.
8
+ */
9
+ export const createClient = (supabaseUrl, supabaseKey, options) => {
10
+ return new SupabaseClient(supabaseUrl, supabaseKey, options);
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C,cAAc,mBAAmB,CAAA;AAQjC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EAEd,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAG5D;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAS1B,WAAmB,EACnB,WAAmB,EACnB,OAA2C,EACG,EAAE;IAChD,OAAO,IAAI,cAAc,CAA+B,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;AAC5F,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { AuthClient } from '@supabase/auth-js';
2
+ import { SupabaseAuthClientOptions } from './types';
3
+ export declare class SupabaseAuthClient extends AuthClient {
4
+ constructor(options: SupabaseAuthClientOptions);
5
+ }
6
+ //# sourceMappingURL=SupabaseAuthClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupabaseAuthClient.d.ts","sourceRoot":"","sources":["../../../src/lib/SupabaseAuthClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEnD,qBAAa,kBAAmB,SAAQ,UAAU;gBACpC,OAAO,EAAE,yBAAyB;CAG/C"}
@@ -0,0 +1,7 @@
1
+ import { AuthClient } from '@supabase/auth-js';
2
+ export class SupabaseAuthClient extends AuthClient {
3
+ constructor(options) {
4
+ super(options);
5
+ }
6
+ }
7
+ //# sourceMappingURL=SupabaseAuthClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupabaseAuthClient.js","sourceRoot":"","sources":["../../../src/lib/SupabaseAuthClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG9C,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,YAAY,OAAkC;QAC5C,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import { RealtimeClientOptions } from '@supabase/realtime-js';
2
+ import { SupabaseAuthClientOptions } from './types';
3
+ export declare const DEFAULT_HEADERS: {
4
+ 'X-Client-Info': string;
5
+ };
6
+ export declare const DEFAULT_GLOBAL_OPTIONS: {
7
+ headers: {
8
+ 'X-Client-Info': string;
9
+ };
10
+ };
11
+ export declare const DEFAULT_DB_OPTIONS: {
12
+ schema: string;
13
+ };
14
+ export declare const DEFAULT_AUTH_OPTIONS: SupabaseAuthClientOptions;
15
+ export declare const DEFAULT_REALTIME_OPTIONS: RealtimeClientOptions;
16
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAenD,eAAO,MAAM,eAAe;;CAA0D,CAAA;AAEtF,eAAO,MAAM,sBAAsB;;;;CAElC,CAAA;AAED,eAAO,MAAM,kBAAkB;;CAE9B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,yBAKlC,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,qBAA0B,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { version } from './version';
2
+ let JS_ENV = '';
3
+ // @ts-ignore
4
+ if (typeof Deno !== 'undefined') {
5
+ JS_ENV = 'deno';
6
+ }
7
+ else if (typeof document !== 'undefined') {
8
+ JS_ENV = 'web';
9
+ }
10
+ else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
11
+ JS_ENV = 'react-native';
12
+ }
13
+ else {
14
+ JS_ENV = 'node';
15
+ }
16
+ export const DEFAULT_HEADERS = { 'X-Client-Info': `supabase-js-${JS_ENV}/${version}` };
17
+ export const DEFAULT_GLOBAL_OPTIONS = {
18
+ headers: DEFAULT_HEADERS,
19
+ };
20
+ export const DEFAULT_DB_OPTIONS = {
21
+ schema: 'public',
22
+ };
23
+ export const DEFAULT_AUTH_OPTIONS = {
24
+ autoRefreshToken: true,
25
+ persistSession: true,
26
+ detectSessionInUrl: true,
27
+ flowType: 'implicit',
28
+ };
29
+ export const DEFAULT_REALTIME_OPTIONS = {};
30
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,IAAI,MAAM,GAAG,EAAE,CAAA;AACf,aAAa;AACb,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;IAC/B,MAAM,GAAG,MAAM,CAAA;CAChB;KAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC1C,MAAM,GAAG,KAAK,CAAA;CACf;KAAM,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,OAAO,KAAK,aAAa,EAAE;IAClF,MAAM,GAAG,cAAc,CAAA;CACxB;KAAM;IACL,MAAM,GAAG,MAAM,CAAA;CAChB;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,eAAe,EAAE,eAAe,MAAM,IAAI,OAAO,EAAE,EAAE,CAAA;AAEtF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,eAAe;CACzB,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,QAAQ;CACjB,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAA8B;IAC7D,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,IAAI;IACpB,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE,UAAU;CACrB,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAA0B,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ declare type Fetch = typeof fetch;
2
+ export declare const resolveFetch: (customFetch?: Fetch) => Fetch;
3
+ export declare const resolveHeadersConstructor: () => any;
4
+ export declare const fetchWithAuth: (supabaseKey: string, getAccessToken: () => Promise<string | null>, customFetch?: Fetch) => Fetch;
5
+ export {};
6
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/lib/fetch.ts"],"names":[],"mappings":"AAGA,aAAK,KAAK,GAAG,OAAO,KAAK,CAAA;AAEzB,eAAO,MAAM,YAAY,iBAAkB,KAAK,KAAG,KAUlD,CAAA;AAED,eAAO,MAAM,yBAAyB,WAMrC,CAAA;AAED,eAAO,MAAM,aAAa,gBACX,MAAM,kBACH,MAAM,QAAQ,MAAM,GAAG,IAAI,CAAC,gBAC9B,KAAK,KAClB,KAkBF,CAAA"}
@@ -0,0 +1,47 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ // @ts-ignore
11
+ import nodeFetch, { Headers as NodeFetchHeaders } from '@supabase/node-fetch';
12
+ export const resolveFetch = (customFetch) => {
13
+ let _fetch;
14
+ if (customFetch) {
15
+ _fetch = customFetch;
16
+ }
17
+ else if (typeof fetch === 'undefined') {
18
+ _fetch = nodeFetch;
19
+ }
20
+ else {
21
+ _fetch = fetch;
22
+ }
23
+ return (...args) => _fetch(...args);
24
+ };
25
+ export const resolveHeadersConstructor = () => {
26
+ if (typeof Headers === 'undefined') {
27
+ return NodeFetchHeaders;
28
+ }
29
+ return Headers;
30
+ };
31
+ export const fetchWithAuth = (supabaseKey, getAccessToken, customFetch) => {
32
+ const fetch = resolveFetch(customFetch);
33
+ const HeadersConstructor = resolveHeadersConstructor();
34
+ return (input, init) => __awaiter(void 0, void 0, void 0, function* () {
35
+ var _a;
36
+ const accessToken = (_a = (yield getAccessToken())) !== null && _a !== void 0 ? _a : supabaseKey;
37
+ let headers = new HeadersConstructor(init === null || init === void 0 ? void 0 : init.headers);
38
+ if (!headers.has('apikey')) {
39
+ headers.set('apikey', supabaseKey);
40
+ }
41
+ if (!headers.has('Authorization')) {
42
+ headers.set('Authorization', `Bearer ${accessToken}`);
43
+ }
44
+ return fetch(input, Object.assign(Object.assign({}, init), { headers }));
45
+ });
46
+ };
47
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/lib/fetch.ts"],"names":[],"mappings":";;;;;;;;;AAAA,aAAa;AACb,OAAO,SAAS,EAAE,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAI7E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAS,EAAE;IACzD,IAAI,MAAa,CAAA;IACjB,IAAI,WAAW,EAAE;QACf,MAAM,GAAG,WAAW,CAAA;KACrB;SAAM,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;QACvC,MAAM,GAAG,SAA6B,CAAA;KACvC;SAAM;QACL,MAAM,GAAG,KAAK,CAAA;KACf;IACD,OAAO,CAAC,GAAG,IAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC5C,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAClC,OAAO,gBAAgB,CAAA;KACxB;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,WAAmB,EACnB,cAA4C,EAC5C,WAAmB,EACZ,EAAE;IACT,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;IACvC,MAAM,kBAAkB,GAAG,yBAAyB,EAAE,CAAA;IAEtD,OAAO,CAAO,KAAK,EAAE,IAAI,EAAE,EAAE;;QAC3B,MAAM,WAAW,GAAG,MAAA,CAAC,MAAM,cAAc,EAAE,CAAC,mCAAI,WAAW,CAAA;QAC3D,IAAI,OAAO,GAAG,IAAI,kBAAkB,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,CAAA;QAEnD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;SACnC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;YACjC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,WAAW,EAAE,CAAC,CAAA;SACtD;QAED,OAAO,KAAK,CAAC,KAAK,kCAAO,IAAI,KAAE,OAAO,IAAG,CAAA;IAC3C,CAAC,CAAA,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { SupabaseClientOptions } from './types';
2
+ export declare function uuid(): string;
3
+ export declare function stripTrailingSlash(url: string): string;
4
+ export declare const isBrowser: () => boolean;
5
+ export declare function applySettingDefaults<Database = any, SchemaName extends string & keyof Database = 'public' extends keyof Database ? 'public' : string & keyof Database>(options: SupabaseClientOptions<SchemaName>, defaults: SupabaseClientOptions<any>): Required<SupabaseClientOptions<SchemaName>>;
6
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE/C,wBAAgB,IAAI,WAMnB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,eAAO,MAAM,SAAS,eAAsC,CAAA;AAE5D,wBAAgB,oBAAoB,CAClC,QAAQ,GAAG,GAAG,EACd,UAAU,SAAS,MAAM,GAAG,MAAM,QAAQ,GAAG,QAAQ,SAAS,MAAM,QAAQ,GACxE,QAAQ,GACR,MAAM,GAAG,MAAM,QAAQ,EAE3B,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC,EAC1C,QAAQ,EAAE,qBAAqB,CAAC,GAAG,CAAC,GACnC,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAgC7C"}
@@ -0,0 +1,21 @@
1
+ export function uuid() {
2
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
3
+ var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;
4
+ return v.toString(16);
5
+ });
6
+ }
7
+ export function stripTrailingSlash(url) {
8
+ return url.replace(/\/$/, '');
9
+ }
10
+ export const isBrowser = () => typeof window !== 'undefined';
11
+ export function applySettingDefaults(options, defaults) {
12
+ const { db: dbOptions, auth: authOptions, realtime: realtimeOptions, global: globalOptions, } = options;
13
+ const { db: DEFAULT_DB_OPTIONS, auth: DEFAULT_AUTH_OPTIONS, realtime: DEFAULT_REALTIME_OPTIONS, global: DEFAULT_GLOBAL_OPTIONS, } = defaults;
14
+ return {
15
+ db: Object.assign(Object.assign({}, DEFAULT_DB_OPTIONS), dbOptions),
16
+ auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), authOptions),
17
+ realtime: Object.assign(Object.assign({}, DEFAULT_REALTIME_OPTIONS), realtimeOptions),
18
+ global: Object.assign(Object.assign({}, DEFAULT_GLOBAL_OPTIONS), globalOptions),
19
+ };
20
+ }
21
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AAGA,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;AAE5D,MAAM,UAAU,oBAAoB,CAMlC,OAA0C,EAC1C,QAAoC;IAEpC,MAAM,EACJ,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,aAAa,GACtB,GAAG,OAAO,CAAA;IACX,MAAM,EACJ,EAAE,EAAE,kBAAkB,EACtB,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,wBAAwB,EAClC,MAAM,EAAE,sBAAsB,GAC/B,GAAG,QAAQ,CAAA;IAEZ,OAAO;QACL,EAAE,kCACG,kBAAkB,GAClB,SAAS,CACb;QACD,IAAI,kCACC,oBAAoB,GACpB,WAAW,CACf;QACD,QAAQ,kCACH,wBAAwB,GACxB,eAAe,CACnB;QACD,MAAM,kCACD,sBAAsB,GACtB,aAAa,CACjB;KACF,CAAA;AACH,CAAC"}