@outbuild/supa-store 0.0.6 → 0.0.7
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/esm2022/lib/common/token/supabase-credentials.token.mjs +3 -0
- package/esm2022/lib/supa-store.provider.mjs +11 -0
- package/esm2022/lib/supa-store.store.mjs +32 -0
- package/esm2022/outbuild-supa-store.mjs +5 -0
- package/esm2022/public-api.mjs +6 -0
- package/fesm2022/outbuild-supa-store.mjs +52 -0
- package/fesm2022/outbuild-supa-store.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/common/token/supabase-credentials.token.d.ts +5 -0
- package/lib/supa-store.provider.d.ts +2 -0
- package/lib/supa-store.store.d.ts +16 -0
- package/package.json +31 -15
- package/public-api.d.ts +2 -0
- package/ng-package.json +0 -7
- package/src/lib/common/token/supabase-credentials.token.ts +0 -6
- package/src/lib/supa-store.provider.ts +0 -12
- package/src/lib/supa-store.store.ts +0 -51
- package/src/public-api.ts +0 -6
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -11
- package/tsconfig.spec.json +0 -15
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
export const SUPABASE_CREDENTIALS = new InjectionToken('SUPABASE_CREDENTIALS');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwYWJhc2UtY3JlZGVudGlhbHMudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYi1zdXBhLXN0b3JlL3NyYy9saWIvY29tbW9uL3Rva2VuL3N1cGFiYXNlLWNyZWRlbnRpYWxzLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFOUMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBR25ELHNCQUFzQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcclxuXHJcbmV4cG9ydCBjb25zdCBTVVBBQkFTRV9DUkVERU5USUFMUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjx7XHJcbiAgc3VwYWJhc2VVcmw6IHN0cmluZyxcclxuICBzdXBhYmFzZUtleTogc3RyaW5nXHJcbn0+KCdTVVBBQkFTRV9DUkVERU5USUFMUycpXHJcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { makeEnvironmentProviders } from "@angular/core";
|
|
2
|
+
import { SupaStore } from "./supa-store.store";
|
|
3
|
+
import { SUPABASE_CREDENTIALS } from "./common/token/supabase-credentials.token";
|
|
4
|
+
export const provideSupaStore = (supabaseUrl, supabaseKey) => makeEnvironmentProviders([
|
|
5
|
+
{
|
|
6
|
+
provide: SUPABASE_CREDENTIALS,
|
|
7
|
+
useValue: { supabaseUrl, supabaseKey }
|
|
8
|
+
},
|
|
9
|
+
SupaStore
|
|
10
|
+
]);
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwYS1zdG9yZS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL2xpYi9zdXBhLXN0b3JlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0Isd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBRWhGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsV0FBbUIsRUFBRSxXQUFtQixFQUF3QixFQUFFLENBQUMsd0JBQXdCLENBQUM7SUFDM0g7UUFDRSxPQUFPLEVBQUUsb0JBQW9CO1FBQzdCLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7S0FDdkM7SUFDRCxTQUFTO0NBQ1YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcclxuaW1wb3J0IHsgU3VwYVN0b3JlIH0gZnJvbSBcIi4vc3VwYS1zdG9yZS5zdG9yZVwiXHJcbmltcG9ydCB7IFNVUEFCQVNFX0NSRURFTlRJQUxTIH0gZnJvbSBcIi4vY29tbW9uL3Rva2VuL3N1cGFiYXNlLWNyZWRlbnRpYWxzLnRva2VuXCJcclxuXHJcbmV4cG9ydCBjb25zdCBwcm92aWRlU3VwYVN0b3JlID0gKHN1cGFiYXNlVXJsOiBzdHJpbmcsIHN1cGFiYXNlS2V5OiBzdHJpbmcpOiBFbnZpcm9ubWVudFByb3ZpZGVycyA9PiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xyXG4gIHtcclxuICAgIHByb3ZpZGU6IFNVUEFCQVNFX0NSRURFTlRJQUxTLFxyXG4gICAgdXNlVmFsdWU6IHsgc3VwYWJhc2VVcmwsIHN1cGFiYXNlS2V5IH1cclxuICB9LFxyXG4gIFN1cGFTdG9yZVxyXG5dKVxyXG5cclxuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
+
import { patchState, signalStore, signalStoreFeature, withHooks, withMethods, withState } from '@ngrx/signals';
|
|
3
|
+
import { createClient } from '@supabase/supabase-js';
|
|
4
|
+
import { SUPABASE_CREDENTIALS } from './common/token/supabase-credentials.token';
|
|
5
|
+
const INITIAL_STATE = new InjectionToken('SupaStoreState', {
|
|
6
|
+
factory: () => {
|
|
7
|
+
const { supabaseUrl, supabaseKey } = inject(SUPABASE_CREDENTIALS);
|
|
8
|
+
return {
|
|
9
|
+
client: createClient(supabaseUrl, supabaseKey),
|
|
10
|
+
session: undefined,
|
|
11
|
+
authState: null
|
|
12
|
+
};
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
function withSupaStore() {
|
|
16
|
+
return signalStoreFeature(withState(() => inject(INITIAL_STATE)), withMethods((store) => ({
|
|
17
|
+
initSession: async () => {
|
|
18
|
+
console.log('initSession');
|
|
19
|
+
console.log('store.client()', store.client());
|
|
20
|
+
const { data: { session } } = await store.client().auth.getSession();
|
|
21
|
+
console.log('session', session);
|
|
22
|
+
patchState(store, { session: session });
|
|
23
|
+
}
|
|
24
|
+
})), withHooks({
|
|
25
|
+
onInit(store) {
|
|
26
|
+
store.initSession();
|
|
27
|
+
store.client().auth.onAuthStateChange(res => patchState(store, { authState: res }));
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
export const SupaStore = signalStore(withSupaStore());
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwYS1zdG9yZS5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL2xpYi9zdXBhLXN0b3JlLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBNEMsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFRaEYsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQWlCLGdCQUFnQixFQUFFO0lBQ3pFLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBQ2pFLE9BQU87WUFDTCxNQUFNLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7WUFDOUMsT0FBTyxFQUFFLFNBQVM7WUFDbEIsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxTQUFTLGFBQWE7SUFFcEIsT0FBTyxrQkFBa0IsQ0FFdkIsU0FBUyxDQUFpQixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsRUFFdEQsV0FBVyxDQUFDLENBQUUsS0FBSyxFQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLFdBQVcsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDN0MsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFDLEdBQUcsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1lBQ25FLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQy9CLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBa0IsRUFBRSxDQUFDLENBQUE7UUFDcEQsQ0FBQztLQUNGLENBQUMsQ0FBQyxFQUVILFNBQVMsQ0FBQztRQUNSLE1BQU0sQ0FBQyxLQUFLO1lBQ1YsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ25CLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNyRixDQUFDO0tBQ0YsQ0FBQyxDQUVILENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FDbEMsYUFBYSxFQUFFLENBQ2hCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHBhdGNoU3RhdGUsIHNpZ25hbFN0b3JlLCBzaWduYWxTdG9yZUZlYXR1cmUsIHdpdGhIb29rcywgd2l0aE1ldGhvZHMsIHdpdGhTdGF0ZSB9IGZyb20gJ0BuZ3J4L3NpZ25hbHMnO1xyXG5pbXBvcnQgeyBBdXRoQ2hhbmdlRXZlbnQsIFNlc3Npb24sIFN1cGFiYXNlQ2xpZW50LCBjcmVhdGVDbGllbnQgfSBmcm9tICdAc3VwYWJhc2Uvc3VwYWJhc2UtanMnXHJcbmltcG9ydCB7IFNVUEFCQVNFX0NSRURFTlRJQUxTIH0gZnJvbSAnLi9jb21tb24vdG9rZW4vc3VwYWJhc2UtY3JlZGVudGlhbHMudG9rZW4nXHJcblxyXG5leHBvcnQgdHlwZSBTdXBhU3RvcmVTdGF0ZSA9IHtcclxuICBjbGllbnQ6IFN1cGFiYXNlQ2xpZW50XHJcbiAgc2Vzc2lvbjogU2Vzc2lvbiB8IHVuZGVmaW5lZCB8IG51bGxcclxuICBhdXRoU3RhdGU6IEF1dGhDaGFuZ2VFdmVudCB8IG51bGxcclxufVxyXG5cclxuY29uc3QgSU5JVElBTF9TVEFURSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTdXBhU3RvcmVTdGF0ZT4oJ1N1cGFTdG9yZVN0YXRlJywge1xyXG4gIGZhY3Rvcnk6ICgpID0+IHtcclxuICAgIGNvbnN0IHsgc3VwYWJhc2VVcmwsIHN1cGFiYXNlS2V5IH0gPSBpbmplY3QoU1VQQUJBU0VfQ1JFREVOVElBTFMpXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjbGllbnQ6IGNyZWF0ZUNsaWVudChzdXBhYmFzZVVybCwgc3VwYWJhc2VLZXkpLFxyXG4gICAgICBzZXNzaW9uOiB1bmRlZmluZWQsXHJcbiAgICAgIGF1dGhTdGF0ZTogbnVsbFxyXG4gICAgfVxyXG4gIH0sXHJcbn0pO1xyXG5cclxuZnVuY3Rpb24gd2l0aFN1cGFTdG9yZSgpIHtcclxuXHJcbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcclxuXHJcbiAgICB3aXRoU3RhdGU8U3VwYVN0b3JlU3RhdGU+KCgpID0+IGluamVjdChJTklUSUFMX1NUQVRFKSksXHJcblxyXG4gICAgd2l0aE1ldGhvZHMoKCBzdG9yZSApID0+ICh7XHJcbiAgICAgIGluaXRTZXNzaW9uOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2luaXRTZXNzaW9uJylcclxuICAgICAgICBjb25zb2xlLmxvZygnc3RvcmUuY2xpZW50KCknLCBzdG9yZS5jbGllbnQoKSlcclxuICAgICAgICBjb25zdCB7IGRhdGE6IHsgc2Vzc2lvbiB9fSA9IGF3YWl0IHN0b3JlLmNsaWVudCgpLmF1dGguZ2V0U2Vzc2lvbigpXHJcbiAgICAgICAgY29uc29sZS5sb2coJ3Nlc3Npb24nLCBzZXNzaW9uKVxyXG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgc2Vzc2lvbjogc2Vzc2lvbiBhcyBTZXNzaW9uIH0pXHJcbiAgICAgIH1cclxuICAgIH0pKSxcclxuXHJcbiAgICB3aXRoSG9va3Moe1xyXG4gICAgICBvbkluaXQoc3RvcmUpIHtcclxuICAgICAgICBzdG9yZS5pbml0U2Vzc2lvbigpXHJcbiAgICAgICAgc3RvcmUuY2xpZW50KCkuYXV0aC5vbkF1dGhTdGF0ZUNoYW5nZShyZXMgPT4gcGF0Y2hTdGF0ZShzdG9yZSwgeyBhdXRoU3RhdGU6IHJlcyB9KSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgKVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgU3VwYVN0b3JlID0gc2lnbmFsU3RvcmUoXHJcbiAgd2l0aFN1cGFTdG9yZSgpXHJcbilcclxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0YnVpbGQtc3VwYS1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL291dGJ1aWxkLXN1cGEtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ob-supa-store
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/supa-store.store';
|
|
5
|
+
export * from './lib/supa-store.provider';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygb2Itc3VwYS1zdG9yZVxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N1cGEtc3RvcmUuc3RvcmUnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N1cGEtc3RvcmUucHJvdmlkZXInXHJcbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { InjectionToken, inject, makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { signalStoreFeature, withState, withMethods, patchState, withHooks, signalStore } from '@ngrx/signals';
|
|
3
|
+
import { createClient } from '@supabase/supabase-js';
|
|
4
|
+
|
|
5
|
+
const SUPABASE_CREDENTIALS = new InjectionToken('SUPABASE_CREDENTIALS');
|
|
6
|
+
|
|
7
|
+
const INITIAL_STATE = new InjectionToken('SupaStoreState', {
|
|
8
|
+
factory: () => {
|
|
9
|
+
const { supabaseUrl, supabaseKey } = inject(SUPABASE_CREDENTIALS);
|
|
10
|
+
return {
|
|
11
|
+
client: createClient(supabaseUrl, supabaseKey),
|
|
12
|
+
session: undefined,
|
|
13
|
+
authState: null
|
|
14
|
+
};
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
function withSupaStore() {
|
|
18
|
+
return signalStoreFeature(withState(() => inject(INITIAL_STATE)), withMethods((store) => ({
|
|
19
|
+
initSession: async () => {
|
|
20
|
+
console.log('initSession');
|
|
21
|
+
console.log('store.client()', store.client());
|
|
22
|
+
const { data: { session } } = await store.client().auth.getSession();
|
|
23
|
+
console.log('session', session);
|
|
24
|
+
patchState(store, { session: session });
|
|
25
|
+
}
|
|
26
|
+
})), withHooks({
|
|
27
|
+
onInit(store) {
|
|
28
|
+
store.initSession();
|
|
29
|
+
store.client().auth.onAuthStateChange(res => patchState(store, { authState: res }));
|
|
30
|
+
}
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
const SupaStore = signalStore(withSupaStore());
|
|
34
|
+
|
|
35
|
+
const provideSupaStore = (supabaseUrl, supabaseKey) => makeEnvironmentProviders([
|
|
36
|
+
{
|
|
37
|
+
provide: SUPABASE_CREDENTIALS,
|
|
38
|
+
useValue: { supabaseUrl, supabaseKey }
|
|
39
|
+
},
|
|
40
|
+
SupaStore
|
|
41
|
+
]);
|
|
42
|
+
|
|
43
|
+
/*
|
|
44
|
+
* Public API Surface of ob-supa-store
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Generated bundle index. Do not edit.
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
export { SupaStore, provideSupaStore };
|
|
52
|
+
//# sourceMappingURL=outbuild-supa-store.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbuild-supa-store.mjs","sources":["../../../projects/ob-supa-store/src/lib/common/token/supabase-credentials.token.ts","../../../projects/ob-supa-store/src/lib/supa-store.store.ts","../../../projects/ob-supa-store/src/lib/supa-store.provider.ts","../../../projects/ob-supa-store/src/public-api.ts","../../../projects/ob-supa-store/src/outbuild-supa-store.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\"\r\n\r\nexport const SUPABASE_CREDENTIALS = new InjectionToken<{\r\n supabaseUrl: string,\r\n supabaseKey: string\r\n}>('SUPABASE_CREDENTIALS')\r\n","import { inject, InjectionToken } from '@angular/core';\r\nimport { patchState, signalStore, signalStoreFeature, withHooks, withMethods, withState } from '@ngrx/signals';\r\nimport { AuthChangeEvent, Session, SupabaseClient, createClient } from '@supabase/supabase-js'\r\nimport { SUPABASE_CREDENTIALS } from './common/token/supabase-credentials.token'\r\n\r\nexport type SupaStoreState = {\r\n client: SupabaseClient\r\n session: Session | undefined | null\r\n authState: AuthChangeEvent | null\r\n}\r\n\r\nconst INITIAL_STATE = new InjectionToken<SupaStoreState>('SupaStoreState', {\r\n factory: () => {\r\n const { supabaseUrl, supabaseKey } = inject(SUPABASE_CREDENTIALS)\r\n return {\r\n client: createClient(supabaseUrl, supabaseKey),\r\n session: undefined,\r\n authState: null\r\n }\r\n },\r\n});\r\n\r\nfunction withSupaStore() {\r\n\r\n return signalStoreFeature(\r\n\r\n withState<SupaStoreState>(() => inject(INITIAL_STATE)),\r\n\r\n withMethods(( store ) => ({\r\n initSession: async () => {\r\n console.log('initSession')\r\n console.log('store.client()', store.client())\r\n const { data: { session }} = await store.client().auth.getSession()\r\n console.log('session', session)\r\n patchState(store, { session: session as Session })\r\n }\r\n })),\r\n\r\n withHooks({\r\n onInit(store) {\r\n store.initSession()\r\n store.client().auth.onAuthStateChange(res => patchState(store, { authState: res }))\r\n }\r\n })\r\n\r\n )\r\n}\r\n\r\nexport const SupaStore = signalStore(\r\n withSupaStore()\r\n)\r\n","import { EnvironmentProviders, makeEnvironmentProviders } from \"@angular/core\"\r\nimport { SupaStore } from \"./supa-store.store\"\r\nimport { SUPABASE_CREDENTIALS } from \"./common/token/supabase-credentials.token\"\r\n\r\nexport const provideSupaStore = (supabaseUrl: string, supabaseKey: string): EnvironmentProviders => makeEnvironmentProviders([\r\n {\r\n provide: SUPABASE_CREDENTIALS,\r\n useValue: { supabaseUrl, supabaseKey }\r\n },\r\n SupaStore\r\n])\r\n\r\n","/*\r\n * Public API Surface of ob-supa-store\r\n */\r\n\r\nexport * from './lib/supa-store.store'\r\nexport * from './lib/supa-store.provider'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAEO,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAGnD,sBAAsB,CAAC;;ACM1B,MAAM,aAAa,GAAG,IAAI,cAAc,CAAiB,gBAAgB,EAAE;IACzE,OAAO,EAAE,MAAK;QACZ,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA;QACjE,OAAO;AACL,YAAA,MAAM,EAAE,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC;AAC9C,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,IAAI;SAChB,CAAA;KACF;AACF,CAAA,CAAC,CAAC;AAEH,SAAS,aAAa,GAAA;IAEpB,OAAO,kBAAkB,CAEvB,SAAS,CAAiB,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,EAEtD,WAAW,CAAC,CAAE,KAAK,MAAO;QACxB,WAAW,EAAE,YAAW;AACtB,YAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YAC1B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;AAC7C,YAAA,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAC,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;AACnE,YAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAC/B,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAkB,EAAE,CAAC,CAAA;SACnD;KACF,CAAC,CAAC,EAEH,SAAS,CAAC;AACR,QAAA,MAAM,CAAC,KAAK,EAAA;YACV,KAAK,CAAC,WAAW,EAAE,CAAA;YACnB,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;SACpF;AACF,KAAA,CAAC,CAEH,CAAA;AACH,CAAC;MAEY,SAAS,GAAG,WAAW,CAClC,aAAa,EAAE;;AC7CV,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAE,WAAmB,KAA2B,wBAAwB,CAAC;AAC3H,IAAA;AACE,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,QAAQ,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE;AACvC,KAAA;IACD,SAAS;AACV,CAAA;;ACVD;;AAEG;;ACFH;;AAEG;;;;"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AuthChangeEvent, Session, SupabaseClient } from '@supabase/supabase-js';
|
|
2
|
+
export type SupaStoreState = {
|
|
3
|
+
client: SupabaseClient;
|
|
4
|
+
session: Session | undefined | null;
|
|
5
|
+
authState: AuthChangeEvent | null;
|
|
6
|
+
};
|
|
7
|
+
export declare const SupaStore: import("@angular/core").Type<{
|
|
8
|
+
client: import("@ngrx/signals").DeepSignal<SupabaseClient<any, "public", any>>;
|
|
9
|
+
session: import("@angular/core").Signal<Session | null | undefined>;
|
|
10
|
+
authState: import("@angular/core").Signal<AuthChangeEvent | null>;
|
|
11
|
+
initSession: () => Promise<void>;
|
|
12
|
+
} & import("@ngrx/signals").StateSource<{
|
|
13
|
+
client: SupabaseClient;
|
|
14
|
+
session: Session | undefined | null;
|
|
15
|
+
authState: AuthChangeEvent | null;
|
|
16
|
+
}>>;
|
package/package.json
CHANGED
|
@@ -1,15 +1,31 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@outbuild/supa-store",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^18.2.0",
|
|
6
|
-
"@angular/core": "^18.2.0",
|
|
7
|
-
"@ngrx/signals": "^18.0.2",
|
|
8
|
-
"@supabase/supabase-js": "^2.45.3",
|
|
9
|
-
"@angular-architects/ngrx-toolkit": "18.0.3"
|
|
10
|
-
},
|
|
11
|
-
"dependencies": {
|
|
12
|
-
"tslib": "^2.3.0"
|
|
13
|
-
},
|
|
14
|
-
"
|
|
15
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@outbuild/supa-store",
|
|
3
|
+
"version": "0.0.7",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^18.2.0",
|
|
6
|
+
"@angular/core": "^18.2.0",
|
|
7
|
+
"@ngrx/signals": "^18.0.2",
|
|
8
|
+
"@supabase/supabase-js": "^2.45.3",
|
|
9
|
+
"@angular-architects/ngrx-toolkit": "18.0.3"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"tslib": "^2.3.0"
|
|
13
|
+
},
|
|
14
|
+
"resolutions": {
|
|
15
|
+
"@supabase/auth-js": "2.61.0"
|
|
16
|
+
},
|
|
17
|
+
"sideEffects": false,
|
|
18
|
+
"module": "fesm2022/outbuild-supa-store.mjs",
|
|
19
|
+
"typings": "index.d.ts",
|
|
20
|
+
"exports": {
|
|
21
|
+
"./package.json": {
|
|
22
|
+
"default": "./package.json"
|
|
23
|
+
},
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./index.d.ts",
|
|
26
|
+
"esm2022": "./esm2022/outbuild-supa-store.mjs",
|
|
27
|
+
"esm": "./esm2022/outbuild-supa-store.mjs",
|
|
28
|
+
"default": "./fesm2022/outbuild-supa-store.mjs"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
package/public-api.d.ts
ADDED
package/ng-package.json
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { EnvironmentProviders, makeEnvironmentProviders, ModuleWithProviders, NgModule } from "@angular/core"
|
|
2
|
-
import { SupaStore } from "./supa-store.store"
|
|
3
|
-
import { SUPABASE_CREDENTIALS } from "./common/token/supabase-credentials.token"
|
|
4
|
-
|
|
5
|
-
export const provideSupaStore = (supabaseUrl: string, supabaseKey: string): EnvironmentProviders => makeEnvironmentProviders([
|
|
6
|
-
{
|
|
7
|
-
provide: SUPABASE_CREDENTIALS,
|
|
8
|
-
useValue: { supabaseUrl, supabaseKey }
|
|
9
|
-
},
|
|
10
|
-
SupaStore
|
|
11
|
-
])
|
|
12
|
-
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
-
import { patchState, signalStore, signalStoreFeature, withHooks, withMethods, withState } from '@ngrx/signals';
|
|
3
|
-
import { AuthChangeEvent, Session, SupabaseClient, createClient } from '@supabase/supabase-js'
|
|
4
|
-
import { SUPABASE_CREDENTIALS } from './common/token/supabase-credentials.token'
|
|
5
|
-
|
|
6
|
-
export type SupaStoreState = {
|
|
7
|
-
client: SupabaseClient
|
|
8
|
-
session: Session | undefined | null
|
|
9
|
-
authState: AuthChangeEvent | null
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const INITIAL_STATE = new InjectionToken<SupaStoreState>('SupaStoreState', {
|
|
13
|
-
factory: () => {
|
|
14
|
-
const { supabaseUrl, supabaseKey } = inject(SUPABASE_CREDENTIALS)
|
|
15
|
-
return {
|
|
16
|
-
client: createClient(supabaseUrl, supabaseKey),
|
|
17
|
-
session: undefined,
|
|
18
|
-
authState: null
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
function withSupaStore() {
|
|
24
|
-
|
|
25
|
-
return signalStoreFeature(
|
|
26
|
-
|
|
27
|
-
withState<SupaStoreState>(() => inject(INITIAL_STATE)),
|
|
28
|
-
|
|
29
|
-
withMethods(( store ) => ({
|
|
30
|
-
initSession: async () => {
|
|
31
|
-
console.log('initSession')
|
|
32
|
-
console.log('store.client()', store.client())
|
|
33
|
-
const { data: { session }} = await store.client().auth.getSession()
|
|
34
|
-
console.log('session', session)
|
|
35
|
-
patchState(store, { session: session as Session })
|
|
36
|
-
}
|
|
37
|
-
})),
|
|
38
|
-
|
|
39
|
-
withHooks({
|
|
40
|
-
onInit(store) {
|
|
41
|
-
store.initSession()
|
|
42
|
-
store.client().auth.onAuthStateChange(res => patchState(store, { authState: res }))
|
|
43
|
-
}
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export const SupaStore = signalStore(
|
|
50
|
-
withSupaStore()
|
|
51
|
-
)
|
package/src/public-api.ts
DELETED
package/tsconfig.lib.json
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
|
|
2
|
-
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
|
|
3
|
-
{
|
|
4
|
-
"extends": "../../tsconfig.json",
|
|
5
|
-
"compilerOptions": {
|
|
6
|
-
"outDir": "../../out-tsc/lib",
|
|
7
|
-
"declaration": true,
|
|
8
|
-
"declarationMap": true,
|
|
9
|
-
"inlineSources": true,
|
|
10
|
-
"types": []
|
|
11
|
-
},
|
|
12
|
-
"exclude": [
|
|
13
|
-
"**/*.spec.ts"
|
|
14
|
-
]
|
|
15
|
-
}
|
package/tsconfig.lib.prod.json
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
|
|
2
|
-
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
|
|
3
|
-
{
|
|
4
|
-
"extends": "./tsconfig.lib.json",
|
|
5
|
-
"compilerOptions": {
|
|
6
|
-
"declarationMap": false
|
|
7
|
-
},
|
|
8
|
-
"angularCompilerOptions": {
|
|
9
|
-
"compilationMode": "partial"
|
|
10
|
-
}
|
|
11
|
-
}
|
package/tsconfig.spec.json
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
|
|
2
|
-
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
|
|
3
|
-
{
|
|
4
|
-
"extends": "../../tsconfig.json",
|
|
5
|
-
"compilerOptions": {
|
|
6
|
-
"outDir": "../../out-tsc/spec",
|
|
7
|
-
"types": [
|
|
8
|
-
"jasmine"
|
|
9
|
-
]
|
|
10
|
-
},
|
|
11
|
-
"include": [
|
|
12
|
-
"**/*.spec.ts",
|
|
13
|
-
"**/*.d.ts"
|
|
14
|
-
]
|
|
15
|
-
}
|