@supabase-community/vue-supabase 3.0.0 → 3.0.1

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,4 +1,4 @@
1
- # @supabase-community/vue
1
+ # @supabase-community/vue-supabase
2
2
 
3
3
  This package provides a typed wrapper around the official Supabase JavaScript client for Vue 3 applications. It keeps the API close to the official SDK so you can use `supabase.auth`, `supabase.from`, and other features directly.
4
4
 
@@ -16,7 +16,7 @@ _This package is aimed to work with modern Vue 3. To use it with Vue 2, check ou
16
16
  1. Install the plugin
17
17
 
18
18
  ```bash
19
- npm install @supabase-community/vue
19
+ npm install @supabase-community/vue-supabase
20
20
  ```
21
21
 
22
22
  2. Add required environment variables:
@@ -31,7 +31,7 @@ VITE_SUPABASE_ANON_KEY="<your_publishable_key>"
31
31
 
32
32
  ```ts
33
33
  // main.ts
34
- import { useSupabaseClient } from "@supabase-community/vue";
34
+ import { useSupabaseClient } from "@supabase-community/vue-supabase";
35
35
 
36
36
  const supabase = useSupabaseClient({
37
37
  supabaseUrl: import.meta.env.VITE_SUPABASE_URL,
@@ -44,7 +44,7 @@ const supabase = useSupabaseClient({
44
44
  ```ts
45
45
  // App.vue
46
46
  <script setup lang="ts">
47
- import { useSupabaseClient } from "@supabase-community/vue";
47
+ import { useSupabaseClient } from "@supabase-community/vue-supabase";
48
48
 
49
49
  const supabase = useSupabaseClient();
50
50
  const { data, error } = await supabase.from("profiles").select("*");
@@ -92,7 +92,7 @@ You can either define your own local types or generate them from your Supabase p
92
92
  Local type registration:
93
93
 
94
94
  ```ts
95
- import { useSupabaseClient } from "@supabase-community/vue";
95
+ import { useSupabaseClient } from "@supabase-community/vue-supabase";
96
96
 
97
97
  interface Database {
98
98
  public: {
@@ -123,7 +123,7 @@ npx supabase gen types typescript --project-id <project-id> --schema public > sr
123
123
  Then use the generated types in your app:
124
124
 
125
125
  ```ts
126
- import { useSupabaseClient } from "@supabase-community/vue";
126
+ import { useSupabaseClient } from "@supabase-community/vue-supabase";
127
127
  import type { Database } from "./types/supabase";
128
128
 
129
129
  const supabase = useSupabaseClient<Database>({
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAE1B,iCAIiB;AAHf,0GAAA,iBAAiB,OAAA;AACjB,4GAAA,mBAAmB,OAAA;AACnB,0GAAA,iBAAiB,OAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":";;AAIA,8CAIC;AAED,8CAIC;AAED,kDAEC;AAED,wEAQC;AA5BD,uDAA0E;AAE1E,IAAI,YAAY,GAAY,IAAI,CAAC;AAEjC,SAAgB,iBAAiB,CAC/B,MAAgC;IAEhC,YAAY,GAAG,MAAM,CAAC;AACxB,CAAC;AAED,SAAgB,iBAAiB;IAG/B,OAAO,YAA+C,CAAC;AACzD,CAAC;AAED,SAAgB,mBAAmB;IACjC,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC;AAED,SAAgB,8BAA8B,CAG5C,WAAmB,EACnB,WAAmB,EACnB,OAA4C;IAE5C,OAAO,IAAA,0BAAY,EAAW,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSupabaseClient.js","sourceRoot":"","sources":["../src/useSupabaseClient.ts"],"names":[],"mappings":";;AAeA,8CAsCC;AApDD,mCAIiB;AAGjB;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,OAA4C;IAE5C,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,IAAA,yBAAiB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,yBAAiB,GAAE,CAAC;IAC3C,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,CAAC;QACJ,CAAC;QACD,OAAO,cAA0C,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,sJAAsJ,CACvJ,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,sCAA8B,EAC3C,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,OAAO,CAChB,CAAC;IAEF,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase-community/vue-supabase",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "A minimal Vue 3 integration layer for Supabase.",
5
5
  "keywords": [
6
6
  "vue",
@@ -22,7 +22,7 @@
22
22
  "node": ">=22"
23
23
  },
24
24
  "scripts": {
25
- "build": "tsc -p tsconfig.json --outDir dist --declaration --declarationMap false",
25
+ "build": "tsc -p tsconfig.build.json",
26
26
  "test": "vitest run",
27
27
  "typecheck": "tsc --noEmit -p tsconfig.json",
28
28
  "typecheck:playground": "vue-tsc --noEmit -p playground/tsconfig.json",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAE1B,iCAIiB;AAHf,0GAAA,iBAAiB,OAAA;AACjB,4GAAA,mBAAmB,OAAA;AACnB,0GAAA,iBAAiB,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/state.ts"],"names":[],"mappings":";;AAIA,8CAIC;AAED,8CAIC;AAED,kDAEC;AAED,wEAQC;AA5BD,uDAA0E;AAE1E,IAAI,YAAY,GAAY,IAAI,CAAC;AAEjC,SAAgB,iBAAiB,CAC/B,MAAgC;IAEhC,YAAY,GAAG,MAAM,CAAC;AACxB,CAAC;AAED,SAAgB,iBAAiB;IAG/B,OAAO,YAA+C,CAAC;AACzD,CAAC;AAED,SAAgB,mBAAmB;IACjC,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC;AAED,SAAgB,8BAA8B,CAG5C,WAAmB,EACnB,WAAmB,EACnB,OAA4C;IAE5C,OAAO,IAAA,0BAAY,EAAW,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSupabaseClient.js","sourceRoot":"","sources":["../../src/useSupabaseClient.ts"],"names":[],"mappings":";;AAeA,8CAsCC;AApDD,mCAIiB;AAGjB;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,OAA4C;IAE5C,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,IAAA,yBAAiB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,yBAAiB,GAAE,CAAC;IAC3C,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,CAAC;QACJ,CAAC;QACD,OAAO,cAA0C,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,sJAAsJ,CACvJ,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,sCAA8B,EAC3C,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,OAAO,CAChB,CAAC;IAEF,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const src_1 = require("../src");
5
- (0, vitest_1.describe)("useSupabaseClient", () => {
6
- (0, vitest_1.beforeEach)(() => {
7
- (0, src_1.resetSupabaseClient)();
8
- });
9
- (0, vitest_1.it)("creates a client from supabaseUrl and supabaseKey", () => {
10
- const client = (0, src_1.useSupabaseClient)({
11
- supabaseUrl: "https://example.supabase.co",
12
- supabaseKey: "anon-key",
13
- });
14
- (0, vitest_1.expect)(client).toBeDefined();
15
- (0, vitest_1.expect)(client.auth).toBeDefined();
16
- });
17
- (0, vitest_1.it)("returns an existing client when provided", () => {
18
- const existingClient = {
19
- auth: {},
20
- };
21
- const client = (0, src_1.useSupabaseClient)({ client: existingClient });
22
- (0, vitest_1.expect)(client).toBe(existingClient);
23
- });
24
- (0, vitest_1.it)("stores the initialized client for later reuse", () => {
25
- const initialClient = (0, src_1.useSupabaseClient)({
26
- supabaseUrl: "https://example.supabase.co",
27
- supabaseKey: "anon-key",
28
- });
29
- const reusedClient = (0, src_1.useSupabaseClient)();
30
- (0, vitest_1.expect)(reusedClient).toBe(initialClient);
31
- });
32
- (0, vitest_1.it)("throws when configuration is incomplete", () => {
33
- (0, vitest_1.expect)(() => (0, src_1.useSupabaseClient)({
34
- supabaseUrl: "https://example.supabase.co",
35
- })).toThrowError(/Missing Supabase client configuration/);
36
- });
37
- (0, vitest_1.it)("throws when called without prior initialization and without options", () => {
38
- (0, vitest_1.expect)(() => (0, src_1.useSupabaseClient)()).toThrowError(/No Supabase client has been initialized/);
39
- });
40
- (0, vitest_1.it)("throws when reinitializing with a different configuration", () => {
41
- (0, src_1.useSupabaseClient)({
42
- supabaseUrl: "https://example.supabase.co",
43
- supabaseKey: "anon-key",
44
- });
45
- (0, vitest_1.expect)(() => (0, src_1.useSupabaseClient)({
46
- supabaseUrl: "https://second.supabase.co",
47
- supabaseKey: "another-key",
48
- })).toThrowError(/already been initialized/i);
49
- });
50
- (0, vitest_1.it)("supports typed database generics", () => {
51
- const client = (0, src_1.useSupabaseClient)({
52
- supabaseUrl: "https://example.supabase.co",
53
- supabaseKey: "anon-key",
54
- });
55
- void client.from("profiles").select("*");
56
- });
57
- });
58
- //# sourceMappingURL=useSupabaseClient.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSupabaseClient.test.js","sourceRoot":"","sources":["../../test/useSupabaseClient.test.ts"],"names":[],"mappings":";;AAAA,mCAA0D;AAE1D,gCAAgE;AAEhE,IAAA,iBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,IAAA,yBAAmB,GAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAG,IAAA,uBAAiB,EAAC;YAC/B,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,cAAc,GAAG;YACrB,IAAI,EAAE,EAAE;SACoB,CAAC;QAE/B,MAAM,MAAM,GAAG,IAAA,uBAAiB,EAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QAE7D,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,aAAa,GAAG,IAAA,uBAAiB,EAAC;YACtC,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAA,uBAAiB,GAAE,CAAC;QAEzC,IAAA,eAAM,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,uBAAiB,EAAC;YAChB,WAAW,EAAE,6BAA6B;SAClC,CAAC,CACZ,CAAC,YAAY,CAAC,uCAAuC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,uBAAiB,GAAE,CAAC,CAAC,YAAY,CAC5C,yCAAyC,CAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,IAAA,uBAAiB,EAAC;YAChB,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,uBAAiB,EAAC;YAChB,WAAW,EAAE,4BAA4B;YACzC,WAAW,EAAE,aAAa;SAC3B,CAAC,CACH,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,IAAA,uBAAiB,EAA+B;YAC7D,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const src_1 = require("../src");
5
- (0, vitest_1.describe)("useSupabaseClient generic typing", () => {
6
- (0, vitest_1.it)("accepts generated database types", async () => {
7
- const client = {
8
- auth: {},
9
- from: () => ({
10
- select: () => ({ data: [{ id: "1", name: "Ada" }], error: null }),
11
- }),
12
- };
13
- const typedClient = (0, src_1.useSupabaseClient)({ client });
14
- const result = await typedClient.from("profiles").select("*");
15
- (0, vitest_1.expect)(result.data).toEqual([{ id: "1", name: "Ada" }]);
16
- (0, vitest_1.expect)(result.error).toBeNull();
17
- });
18
- });
19
- //# sourceMappingURL=useSupabaseClient.types.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSupabaseClient.types.test.js","sourceRoot":"","sources":["../../test/useSupabaseClient.types.test.ts"],"names":[],"mappings":";;AACA,mCAA8C;AAC9C,gCAA2C;AAiB3C,IAAA,iBAAQ,EAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,IAAA,WAAE,EAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;gBACX,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aAClE,CAAC;SACoC,CAAC;QAEzC,MAAM,WAAW,GAAG,IAAA,uBAAiB,EAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE9D,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,IAAA,eAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes