@outbuild/supa-store 0.0.18 → 0.0.20

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.
@@ -9,10 +9,10 @@ export const INITIAL_STATE = new InjectionToken('SupaStoreState', {
9
9
  auth: {
10
10
  session: undefined,
11
11
  user: undefined,
12
- userMetadata: undefined,
12
+ metadata: undefined,
13
13
  state: { prev: null, curr: null }
14
14
  }
15
15
  };
16
16
  },
17
17
  });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC1zdGF0ZS50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL2xpYi9jb21tb24vdG9rZW4vaW5pdGlhbC1zdGF0ZS50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHcEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFpQixnQkFBZ0IsRUFBRTtJQUNoRixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBRVosTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUvRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLFlBQVksQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO1lBQzlDLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsU0FBUztnQkFDbEIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTthQUNsQztTQUNGLENBQUE7SUFFSCxDQUFDO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcclxuaW1wb3J0IHsgU1VQQV9TVE9SRV9PUFRJT05TIH0gZnJvbSBcIi4vc3VwYWJhc2UtY3JlZGVudGlhbHMudG9rZW5cIlxyXG5pbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tIFwiQHN1cGFiYXNlL3N1cGFiYXNlLWpzXCJcclxuaW1wb3J0IHsgU3VwYVN0b3JlU3RhdGUgfSBmcm9tIFwiLi4vdHlwZS9zdXBhLXN0b3JlLnR5cGVzXCJcclxuXHJcbmV4cG9ydCBjb25zdCBJTklUSUFMX1NUQVRFID0gbmV3IEluamVjdGlvblRva2VuPFN1cGFTdG9yZVN0YXRlPignU3VwYVN0b3JlU3RhdGUnLCB7XHJcbiAgZmFjdG9yeTogKCkgPT4ge1xyXG5cclxuICAgIGNvbnN0IHsgc3VwYWJhc2VVcmwsIHN1cGFiYXNlS2V5IH0gPSBpbmplY3QoU1VQQV9TVE9SRV9PUFRJT05TKVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNsaWVudDogY3JlYXRlQ2xpZW50KHN1cGFiYXNlVXJsLCBzdXBhYmFzZUtleSksXHJcbiAgICAgIGF1dGg6IHtcclxuICAgICAgICBzZXNzaW9uOiB1bmRlZmluZWQsXHJcbiAgICAgICAgdXNlcjogdW5kZWZpbmVkLFxyXG4gICAgICAgIHVzZXJNZXRhZGF0YTogdW5kZWZpbmVkLFxyXG4gICAgICAgIHN0YXRlOiB7IHByZXY6IG51bGwsIGN1cnI6IG51bGwgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH0sXHJcbn0pXHJcbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC1zdGF0ZS50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL2xpYi9jb21tb24vdG9rZW4vaW5pdGlhbC1zdGF0ZS50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHcEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFpQixnQkFBZ0IsRUFBRTtJQUNoRixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBRVosTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUvRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLFlBQVksQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO1lBQzlDLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsU0FBUztnQkFDbEIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTthQUNsQztTQUNGLENBQUE7SUFFSCxDQUFDO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcclxuaW1wb3J0IHsgU1VQQV9TVE9SRV9PUFRJT05TIH0gZnJvbSBcIi4vc3VwYWJhc2UtY3JlZGVudGlhbHMudG9rZW5cIlxyXG5pbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tIFwiQHN1cGFiYXNlL3N1cGFiYXNlLWpzXCJcclxuaW1wb3J0IHsgU3VwYVN0b3JlU3RhdGUgfSBmcm9tIFwiLi4vdHlwZS9zdXBhLXN0b3JlLnR5cGVzXCJcclxuXHJcbmV4cG9ydCBjb25zdCBJTklUSUFMX1NUQVRFID0gbmV3IEluamVjdGlvblRva2VuPFN1cGFTdG9yZVN0YXRlPignU3VwYVN0b3JlU3RhdGUnLCB7XHJcbiAgZmFjdG9yeTogKCkgPT4ge1xyXG5cclxuICAgIGNvbnN0IHsgc3VwYWJhc2VVcmwsIHN1cGFiYXNlS2V5IH0gPSBpbmplY3QoU1VQQV9TVE9SRV9PUFRJT05TKVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNsaWVudDogY3JlYXRlQ2xpZW50KHN1cGFiYXNlVXJsLCBzdXBhYmFzZUtleSksXHJcbiAgICAgIGF1dGg6IHtcclxuICAgICAgICBzZXNzaW9uOiB1bmRlZmluZWQsXHJcbiAgICAgICAgdXNlcjogdW5kZWZpbmVkLFxyXG4gICAgICAgIG1ldGFkYXRhOiB1bmRlZmluZWQsXHJcbiAgICAgICAgc3RhdGU6IHsgcHJldjogbnVsbCwgY3VycjogbnVsbCB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfSxcclxufSlcclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwYS1zdG9yZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL2xpYi9jb21tb24vdHlwZS9zdXBhLXN0b3JlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoQ2hhbmdlRXZlbnQsIFNlc3Npb24sIFN1cGFiYXNlQ2xpZW50LCBVc2VyIH0gZnJvbSBcIkBzdXBhYmFzZS9zdXBhYmFzZS1qc1wiXHJcblxyXG5leHBvcnQgdHlwZSBTdXBhU3RvcmVTdGF0ZSA9IHtcclxuICBjbGllbnQ6IFN1cGFiYXNlQ2xpZW50XHJcbiAgYXV0aDoge1xyXG4gICAgc2Vzc2lvbjogU2Vzc2lvbiB8IHVuZGVmaW5lZCB8IG51bGxcclxuICAgIHVzZXI6IFVzZXIgfCB1bmRlZmluZWQgfCBudWxsXHJcbiAgICB1c2VyTWV0YWRhdGE6IHVua25vd24gfCB1bmRlZmluZWQgfCBudWxsXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICBwcmV2OiBBdXRoQ2hhbmdlRXZlbnQgfCBudWxsLFxyXG4gICAgICBjdXJyOiBBdXRoQ2hhbmdlRXZlbnQgfCBudWxsLFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU3VwYVN0b3JlT3B0aW9ucyA9IHtcclxuICBzdXBhYmFzZVVybDogc3RyaW5nLFxyXG4gIHN1cGFiYXNlS2V5OiBzdHJpbmcsXHJcbiAgdXNlck1ldGFkYXRhPzoge1xyXG4gICAgbG9hZD86IGJvb2xlYW4sXHJcbiAgICB0YWJsZT86IHN0cmluZyxcclxuICB9XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwYS1zdG9yZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL2xpYi9jb21tb24vdHlwZS9zdXBhLXN0b3JlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoQ2hhbmdlRXZlbnQsIFNlc3Npb24sIFN1cGFiYXNlQ2xpZW50LCBVc2VyIH0gZnJvbSBcIkBzdXBhYmFzZS9zdXBhYmFzZS1qc1wiXHJcblxyXG5leHBvcnQgdHlwZSBTdXBhU3RvcmVTdGF0ZSA9IHtcclxuICBjbGllbnQ6IFN1cGFiYXNlQ2xpZW50XHJcbiAgYXV0aDoge1xyXG4gICAgc2Vzc2lvbjogU2Vzc2lvbiB8IHVuZGVmaW5lZCB8IG51bGxcclxuICAgIHVzZXI6IFVzZXIgfCB1bmRlZmluZWQgfCBudWxsXHJcbiAgICBtZXRhZGF0YTogdW5rbm93biB8IHVuZGVmaW5lZCB8IG51bGxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgIHByZXY6IEF1dGhDaGFuZ2VFdmVudCB8IG51bGwsXHJcbiAgICAgIGN1cnI6IEF1dGhDaGFuZ2VFdmVudCB8IG51bGwsXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTdXBhU3RvcmVPcHRpb25zID0ge1xyXG4gIHN1cGFiYXNlVXJsOiBzdHJpbmcsXHJcbiAgc3VwYWJhc2VLZXk6IHN0cmluZyxcclxuICBhdXRoUG9zdExvYWQ/OiB7XHJcbiAgICB1c2VyVGFibGU6IHN0cmluZyxcclxuICAgIHJwYzogc3RyaW5nXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2,12 +2,7 @@ import { makeEnvironmentProviders } from "@angular/core";
2
2
  import { SupaStore } from "./supa-store.store";
3
3
  import { SUPA_STORE_OPTIONS } from "./common/token/supabase-credentials.token";
4
4
  import { merge } from "lodash-es";
5
- const defaultOptions = {
6
- userMetadata: {
7
- load: false,
8
- table: 'users',
9
- }
10
- };
5
+ const defaultOptions = {};
11
6
  export const provideSupaStore = (opts) => {
12
7
  const options = merge(defaultOptions, opts);
13
8
  return makeEnvironmentProviders([
@@ -18,4 +13,4 @@ export const provideSupaStore = (opts) => {
18
13
  SupaStore
19
14
  ]);
20
15
  };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwYS1zdG9yZS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL2xpYi9zdXBhLXN0b3JlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0Isd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBRTlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFakMsTUFBTSxjQUFjLEdBQThCO0lBQ2hELFlBQVksRUFBRTtRQUNaLElBQUksRUFBRSxLQUFLO1FBQ1gsS0FBSyxFQUFFLE9BQU87S0FDZjtDQUNGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQXNCLEVBQXdCLEVBQUU7SUFFL0UsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUUzQyxPQUFPLHdCQUF3QixDQUFDO1FBQzlCO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixRQUFRLEVBQUUsT0FBTztTQUNsQjtRQUNELFNBQVM7S0FDVixDQUFDLENBQUE7QUFDSixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxyXG5pbXBvcnQgeyBTdXBhU3RvcmUgfSBmcm9tIFwiLi9zdXBhLXN0b3JlLnN0b3JlXCJcclxuaW1wb3J0IHsgU1VQQV9TVE9SRV9PUFRJT05TIH0gZnJvbSBcIi4vY29tbW9uL3Rva2VuL3N1cGFiYXNlLWNyZWRlbnRpYWxzLnRva2VuXCJcclxuaW1wb3J0IHsgU3VwYVN0b3JlT3B0aW9ucyB9IGZyb20gXCIuL2NvbW1vbi90eXBlL3N1cGEtc3RvcmUudHlwZXNcIlxyXG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gXCJsb2Rhc2gtZXNcIlxyXG5cclxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IFBhcnRpYWw8U3VwYVN0b3JlT3B0aW9ucz4gPSB7XHJcbiAgdXNlck1ldGFkYXRhOiB7XHJcbiAgICBsb2FkOiBmYWxzZSxcclxuICAgIHRhYmxlOiAndXNlcnMnLFxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHByb3ZpZGVTdXBhU3RvcmUgPSAob3B0czogU3VwYVN0b3JlT3B0aW9ucyk6IEVudmlyb25tZW50UHJvdmlkZXJzID0+IHtcclxuXHJcbiAgY29uc3Qgb3B0aW9ucyA9IG1lcmdlKGRlZmF1bHRPcHRpb25zLCBvcHRzKVxyXG5cclxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogU1VQQV9TVE9SRV9PUFRJT05TLFxyXG4gICAgICB1c2VWYWx1ZTogb3B0aW9uc1xyXG4gICAgfSxcclxuICAgIFN1cGFTdG9yZVxyXG4gIF0pXHJcbn1cclxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwYS1zdG9yZS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL2xpYi9zdXBhLXN0b3JlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0Isd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBRTlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFakMsTUFBTSxjQUFjLEdBQThCLEVBQUUsQ0FBQTtBQUVwRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQXNCLEVBQXdCLEVBQUU7SUFFL0UsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUUzQyxPQUFPLHdCQUF3QixDQUFDO1FBQzlCO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixRQUFRLEVBQUUsT0FBTztTQUNsQjtRQUNELFNBQVM7S0FDVixDQUFDLENBQUE7QUFDSixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxyXG5pbXBvcnQgeyBTdXBhU3RvcmUgfSBmcm9tIFwiLi9zdXBhLXN0b3JlLnN0b3JlXCJcclxuaW1wb3J0IHsgU1VQQV9TVE9SRV9PUFRJT05TIH0gZnJvbSBcIi4vY29tbW9uL3Rva2VuL3N1cGFiYXNlLWNyZWRlbnRpYWxzLnRva2VuXCJcclxuaW1wb3J0IHsgU3VwYVN0b3JlT3B0aW9ucyB9IGZyb20gXCIuL2NvbW1vbi90eXBlL3N1cGEtc3RvcmUudHlwZXNcIlxyXG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gXCJsb2Rhc2gtZXNcIlxyXG5cclxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IFBhcnRpYWw8U3VwYVN0b3JlT3B0aW9ucz4gPSB7fVxyXG5cclxuZXhwb3J0IGNvbnN0IHByb3ZpZGVTdXBhU3RvcmUgPSAob3B0czogU3VwYVN0b3JlT3B0aW9ucyk6IEVudmlyb25tZW50UHJvdmlkZXJzID0+IHtcclxuXHJcbiAgY29uc3Qgb3B0aW9ucyA9IG1lcmdlKGRlZmF1bHRPcHRpb25zLCBvcHRzKVxyXG5cclxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogU1VQQV9TVE9SRV9PUFRJT05TLFxyXG4gICAgICB1c2VWYWx1ZTogb3B0aW9uc1xyXG4gICAgfSxcclxuICAgIFN1cGFTdG9yZVxyXG4gIF0pXHJcbn1cclxuIl19
@@ -5,7 +5,7 @@ import { patchState, signalStore, signalStoreFeature, withHooks, withMethods, wi
5
5
  import { SUPA_STORE_OPTIONS } from './common/token/supabase-credentials.token';
6
6
  import { filter, firstValueFrom } from 'rxjs';
7
7
  import { toObservable } from "@angular/core/rxjs-interop";
8
- export const withSupaStore = () => signalStoreFeature(withDevtools('supaStore'), withState(() => inject(INITIAL_STATE)), withMethods((store, { userMetadata } = inject(SUPA_STORE_OPTIONS)) => ({
8
+ export const withSupaStore = () => signalStoreFeature(withDevtools('supaStore'), withState(() => inject(INITIAL_STATE)), withMethods((store, { authPostLoad } = inject(SUPA_STORE_OPTIONS)) => ({
9
9
  initSession: async () => {
10
10
  const { data: { session } } = await store.client().auth.getSession();
11
11
  patchState(store, { auth: { ...store.auth(), session } });
@@ -14,23 +14,24 @@ export const withSupaStore = () => signalStoreFeature(withDevtools('supaStore'),
14
14
  const { data: { user } } = await store.client().auth.getUser();
15
15
  patchState(store, { auth: { ...store.auth(), user } });
16
16
  },
17
- setMetadata: async (id) => {
18
- const { data } = await store.client().from(userMetadata?.table).select('*').eq('id', id).single();
19
- patchState(store, { auth: { ...store.auth(), userMetadata: data } });
17
+ loadMetadata: async (id, table) => {
18
+ const { data } = await store.client().from(table).select('*').eq('id', id).single();
19
+ patchState(store, { auth: { ...store.auth(), metadata: data } });
20
20
  }
21
21
  })), withHooks({
22
- async onInit(store, { userMetadata } = inject(SUPA_STORE_OPTIONS)) {
22
+ async onInit(store, { authPostLoad } = inject(SUPA_STORE_OPTIONS)) {
23
23
  store.initSession();
24
24
  store.initUser();
25
25
  store.client().auth.onAuthStateChange(state => patchState(store, { auth: { ...store.auth(), state: { prev: store.auth.state.curr(), curr: state } } }));
26
- if (userMetadata?.load) {
26
+ // Load basic user from defined table name
27
+ if (authPostLoad?.userTable) {
27
28
  const session = await firstValueFrom(toObservable(store.auth.session).pipe(filter(res => res !== undefined)));
28
- session?.user ? store.setMetadata(session?.user?.id) : patchState(store, { auth: { ...store.auth(), userMetadata: null } });
29
+ session?.user ? store.loadMetadata(session?.user?.id, authPostLoad?.userTable) : patchState(store, { auth: { ...store.auth(), metadata: null } });
29
30
  }
30
31
  else {
31
- patchState(store, { auth: { ...store.auth(), userMetadata: null } });
32
+ patchState(store, { auth: { ...store.auth(), metadata: null } });
32
33
  }
33
34
  }
34
35
  }));
35
36
  export const SupaStore = signalStore(withSupaStore());
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwYS1zdG9yZS5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL2xpYi9zdXBhLXN0b3JlLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFekQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUVuRCxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQ3pCLFNBQVMsQ0FBaUIsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBRXRELFdBQVcsQ0FBQyxDQUFFLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXRFLFdBQVcsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN0QixNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUMsR0FBRyxNQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDbkUsVUFBVSxDQUFDLEtB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b3J0IHsgd2l0aERldnRvb2xzIH0gZnJvbSAnQGFuZ3VsYXItYXJjaGl0ZWN0cy9uZ3J4LXRvb2xraXQnXHJcbmltcG9ydCB7IElOSVRJQUxfU1RBVEUgfSBmcm9tICcuL2NvbW1vbi90b2tlbi9pbml0aWFsLXN0YXRlLnRva2VuJ1xyXG5pbXBvcnQgeyBTdXBhU3RvcmVTdGF0ZSB9IGZyb20gJy4vY29tbW9uL3R5cGUvc3VwYS1zdG9yZS50eXBlcydcclxuaW1wb3J0IHsgcGF0Y2hTdGF0ZSwgc2lnbmFsU3RvcmUsIHNpZ25hbFN0b3JlRmVhdHVyZSwgd2l0aEhvb2tzLCB3aXRoTWV0aG9kcywgd2l0aFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscydcclxuaW1wb3J0IHsgU1VQQV9TVE9SRV9PUFRJT05TIH0gZnJvbSAnLi9jb21tb24vdG9rZW4vc3VwYWJhc2UtY3JlZGVudGlhbHMudG9rZW4nXHJcbmltcG9ydCB7IGZpbHRlciwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIlxyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhTdXBhU3RvcmUgPSAoKSA9PiBzaWduYWxTdG9yZUZlYXR1cmUoXHJcblxyXG4gIHdpdGhEZXZ0b29scygnc3VwYVN0b3JlJyksXHJcbiAgd2l0aFN0YXRlPFN1cGFTdG9yZVN0YXRlPigoKSA9PiBpbmplY3QoSU5JVElBTF9TVEFURSkpLFxyXG5cclxuICB3aXRoTWV0aG9kcygoIHN0b3JlLCB7IHVzZXJNZXRhZGF0YSB9ID0gaW5qZWN0KFNVUEFfU1RPUkVfT1BUSU9OUykpID0+ICh7XHJcblxyXG4gICAgaW5pdFNlc3Npb246IGFzeW5jICgpID0+IHtcclxuICAgICAgY29uc3QgeyBkYXRhOiB7IHNlc3Npb24gfX0gPSBhd2FpdCBzdG9yZS5jbGllbnQoKS5hdXRoLmdldFNlc3Npb24oKVxyXG4gICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IGF1dGg6IHsgLi4uc3RvcmUuYXV0aCgpLCBzZXNzaW9uIH19KVxyXG4gICAgfSxcclxuXHJcbiAgICBpbml0VXNlcjogYXN5bmMgKCkgPT4ge1xyXG4gICAgICBjb25zdCB7IGRhdGE6IHsgdXNlciB9fSA9IGF3YWl0IHN0b3JlLmNsaWVudCgpLmF1dGguZ2V0VXNlcigpXHJcbiAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgYXV0aDogeyAuLi5zdG9yZS5hdXRoKCksIHVzZXIgfX0pXHJcbiAgICB9LFxyXG5cclxuICAgIHNldE1ldGFkYXRhOiBhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHN0b3JlLmNsaWVudCgpLmZyb20odXNlck1ldGFkYXRhPy50YWJsZSBhcyBzdHJpbmcpLnNlbGVjdCgnKicpLmVxKCdpZCcsIGlkKS5zaW5nbGUoKVxyXG4gICAgICBwYXRjaFN0YXRlKHN0b3JlLCAgeyBhdXRoOiB7IC4uLnN0b3JlLmF1dGgoKSwgdXNlck1ldGFkYXRhOiBkYXRhIH19KVxyXG4gICAgfVxyXG5cclxuICB9KSksXHJcblxyXG4gIHdpdGhIb29rcyh7XHJcbiAgICBhc3luYyBvbkluaXQoc3RvcmUsIHsgdXNlck1ldGFkYXRhIH0gPSBpbmplY3QoU1VQQV9TVE9SRV9PUFRJT05TKSkge1xyXG5cclxuICAgICAgc3RvcmUuaW5pdFNlc3Npb24oKVxyXG4gICAgICBzdG9yZS5pbml0VXNlcigpXHJcbiAgICAgIHN0b3JlLmNsaWVudCgpLmF1dGgub25BdXRoU3RhdGVDaGFuZ2Uoc3RhdGUgPT4gcGF0Y2hTdGF0ZShzdG9yZSwgeyBhdXRoOiB7IC4uLnN0b3JlLmF1dGgoKSwgc3RhdGU6IHsgcHJldjogc3RvcmUuYXV0aC5zdGF0ZS5jdXJyKCksIGN1cnI6IHN0YXRlIH0gfX0pKVxyXG5cclxuICAgICAgaWYgKHVzZXJNZXRhZGF0YT8ubG9hZCkge1xyXG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0b09ic2VydmFibGUoc3RvcmUuYXV0aC5zZXNzaW9uKS5waXBlKGZpbHRlcihyZXMgPT4gcmVzICE9PSB1bmRlZmluZWQpKSlcclxuICAgICAgICBzZXNzaW9uPy51c2VyID8gc3RvcmUuc2V0TWV0YWRhdGEoc2Vzc2lvbj8udXNlcj8uaWQpIDogcGF0Y2hTdGF0ZShzdG9yZSwgeyBhdXRoOiB7IC4uLnN0b3JlLmF1dGgoKSwgdXNlck1ldGFkYXRhOiBudWxsfX0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgIHsgYXV0aDogeyAuLi5zdG9yZS5hdXRoKCksIHVzZXJNZXRhZGF0YTogbnVsbH19KVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH0pXHJcblxyXG4pXHJcblxyXG5leHBvcnQgY29uc3QgU3VwYVN0b3JlID0gc2lnbmFsU3RvcmUoXHJcbiAgd2l0aFN1cGFTdG9yZSgpXHJcbilcclxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwYS1zdG9yZS5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL2xpYi9zdXBhLXN0b3JlLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFekQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUVuRCxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQ3pCLFNBQVMsQ0FBaUIsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBRXRELFdBQVcsQ0FBQyxDQUFFLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXRFLFdBQVcsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN0QixNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUMsR0FBRyxNQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDbkUsVUFBVSxDQUFDLEtB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Y3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgd2l0aERldnRvb2xzIH0gZnJvbSAnQGFuZ3VsYXItYXJjaGl0ZWN0cy9uZ3J4LXRvb2xraXQnXHJcbmltcG9ydCB7IElOSVRJQUxfU1RBVEUgfSBmcm9tICcuL2NvbW1vbi90b2tlbi9pbml0aWFsLXN0YXRlLnRva2VuJ1xyXG5pbXBvcnQgeyBTdXBhU3RvcmVTdGF0ZSB9IGZyb20gJy4vY29tbW9uL3R5cGUvc3VwYS1zdG9yZS50eXBlcydcclxuaW1wb3J0IHsgcGF0Y2hTdGF0ZSwgc2lnbmFsU3RvcmUsIHNpZ25hbFN0b3JlRmVhdHVyZSwgd2l0aEhvb2tzLCB3aXRoTWV0aG9kcywgd2l0aFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscydcclxuaW1wb3J0IHsgU1VQQV9TVE9SRV9PUFRJT05TIH0gZnJvbSAnLi9jb21tb24vdG9rZW4vc3VwYWJhc2UtY3JlZGVudGlhbHMudG9rZW4nXHJcbmltcG9ydCB7IGZpbHRlciwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIlxyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhTdXBhU3RvcmUgPSAoKSA9PiBzaWduYWxTdG9yZUZlYXR1cmUoXHJcblxyXG4gIHdpdGhEZXZ0b29scygnc3VwYVN0b3JlJyksXHJcbiAgd2l0aFN0YXRlPFN1cGFTdG9yZVN0YXRlPigoKSA9PiBpbmplY3QoSU5JVElBTF9TVEFURSkpLFxyXG5cclxuICB3aXRoTWV0aG9kcygoIHN0b3JlLCB7IGF1dGhQb3N0TG9hZCB9ID0gaW5qZWN0KFNVUEFfU1RPUkVfT1BUSU9OUykpID0+ICh7XHJcblxyXG4gICAgaW5pdFNlc3Npb246IGFzeW5jICgpID0+IHtcclxuICAgICAgY29uc3QgeyBkYXRhOiB7IHNlc3Npb24gfX0gPSBhd2FpdCBzdG9yZS5jbGllbnQoKS5hdXRoLmdldFNlc3Npb24oKVxyXG4gICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IGF1dGg6IHsgLi4uc3RvcmUuYXV0aCgpLCBzZXNzaW9uIH19KVxyXG4gICAgfSxcclxuXHJcbiAgICBpbml0VXNlcjogYXN5bmMgKCkgPT4ge1xyXG4gICAgICBjb25zdCB7IGRhdGE6IHsgdXNlciB9fSA9IGF3YWl0IHN0b3JlLmNsaWVudCgpLmF1dGguZ2V0VXNlcigpXHJcbiAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgYXV0aDogeyAuLi5zdG9yZS5hdXRoKCksIHVzZXIgfX0pXHJcbiAgICB9LFxyXG5cclxuICAgIGxvYWRNZXRhZGF0YTogYXN5bmMgKGlkOiBzdHJpbmcsIHRhYmxlOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBzdG9yZS5jbGllbnQoKS5mcm9tKHRhYmxlKS5zZWxlY3QoJyonKS5lcSgnaWQnLCBpZCkuc2luZ2xlKClcclxuICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgIHsgYXV0aDogeyAuLi5zdG9yZS5hdXRoKCksIG1ldGFkYXRhOiBkYXRhIH19KVxyXG4gICAgfVxyXG5cclxuICB9KSksXHJcblxyXG4gIHdpdGhIb29rcyh7XHJcbiAgICBhc3luYyBvbkluaXQoc3RvcmUsIHsgYXV0aFBvc3RMb2FkIH0gPSBpbmplY3QoU1VQQV9TVE9SRV9PUFRJT05TKSkge1xyXG5cclxuICAgICAgc3RvcmUuaW5pdFNlc3Npb24oKVxyXG4gICAgICBzdG9yZS5pbml0VXNlcigpXHJcbiAgICAgIHN0b3JlLmNsaWVudCgpLmF1dGgub25BdXRoU3RhdGVDaGFuZ2Uoc3RhdGUgPT4gcGF0Y2hTdGF0ZShzdG9yZSwgeyBhdXRoOiB7IC4uLnN0b3JlLmF1dGgoKSwgc3RhdGU6IHsgcHJldjogc3RvcmUuYXV0aC5zdGF0ZS5jdXJyKCksIGN1cnI6IHN0YXRlIH0gfX0pKVxyXG5cclxuICAgICAgLy8gTG9hZCBiYXNpYyB1c2VyIGZyb20gZGVmaW5lZCB0YWJsZSBuYW1lXHJcbiAgICAgIGlmIChhdXRoUG9zdExvYWQ/LnVzZXJUYWJsZSkge1xyXG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0b09ic2VydmFibGUoc3RvcmUuYXV0aC5zZXNzaW9uKS5waXBlKGZpbHRlcihyZXMgPT4gcmVzICE9PSB1bmRlZmluZWQpKSlcclxuICAgICAgICBzZXNzaW9uPy51c2VyID8gc3RvcmUubG9hZE1ldGFkYXRhKHNlc3Npb24/LnVzZXI/LmlkLCBhdXRoUG9zdExvYWQ/LnVzZXJUYWJsZSkgOiBwYXRjaFN0YXRlKHN0b3JlLCB7IGF1dGg6IHsgLi4uc3RvcmUuYXV0aCgpLCBtZXRhZGF0YTogbnVsbH19KVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsICB7IGF1dGg6IHsgLi4uc3RvcmUuYXV0aCgpLCBtZXRhZGF0YTogbnVsbH19KVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH0pXHJcblxyXG4pXHJcblxyXG5leHBvcnQgY29uc3QgU3VwYVN0b3JlID0gc2lnbmFsU3RvcmUoXHJcbiAgd2l0aFN1cGFTdG9yZSgpXHJcbilcclxuIl19
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Public API Surface of ob-supa-store
3
- */
3
+ */
4
4
  export * from './lib/supa-store.store';
5
5
  export * from './lib/supa-store.provider';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygb2Itc3VwYS1zdG9yZVxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N1cGEtc3RvcmUuc3RvcmUnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N1cGEtc3RvcmUucHJvdmlkZXInXHJcbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL29iLXN1cGEtc3RvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0VBRUU7QUFFRixjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygb2Itc3VwYS1zdG9yZVxyXG4qL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3VwYS1zdG9yZS5zdG9yZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3VwYS1zdG9yZS5wcm92aWRlcidcclxuIl19
@@ -16,14 +16,14 @@ const INITIAL_STATE = new InjectionToken('SupaStoreState', {
16
16
  auth: {
17
17
  session: undefined,
18
18
  user: undefined,
19
- userMetadata: undefined,
19
+ metadata: undefined,
20
20
  state: { prev: null, curr: null }
21
21
  }
22
22
  };
23
23
  },
24
24
  });
25
25
 
26
- const withSupaStore = () => signalStoreFeature(withDevtools('supaStore'), withState(() => inject(INITIAL_STATE)), withMethods((store, { userMetadata } = inject(SUPA_STORE_OPTIONS)) => ({
26
+ const withSupaStore = () => signalStoreFeature(withDevtools('supaStore'), withState(() => inject(INITIAL_STATE)), withMethods((store, { authPostLoad } = inject(SUPA_STORE_OPTIONS)) => ({
27
27
  initSession: async () => {
28
28
  const { data: { session } } = await store.client().auth.getSession();
29
29
  patchState(store, { auth: { ...store.auth(), session } });
@@ -32,32 +32,28 @@ const withSupaStore = () => signalStoreFeature(withDevtools('supaStore'), withSt
32
32
  const { data: { user } } = await store.client().auth.getUser();
33
33
  patchState(store, { auth: { ...store.auth(), user } });
34
34
  },
35
- setMetadata: async (id) => {
36
- const { data } = await store.client().from(userMetadata?.table).select('*').eq('id', id).single();
37
- patchState(store, { auth: { ...store.auth(), userMetadata: data } });
35
+ loadMetadata: async (id, table) => {
36
+ const { data } = await store.client().from(table).select('*').eq('id', id).single();
37
+ patchState(store, { auth: { ...store.auth(), metadata: data } });
38
38
  }
39
39
  })), withHooks({
40
- async onInit(store, { userMetadata } = inject(SUPA_STORE_OPTIONS)) {
40
+ async onInit(store, { authPostLoad } = inject(SUPA_STORE_OPTIONS)) {
41
41
  store.initSession();
42
42
  store.initUser();
43
43
  store.client().auth.onAuthStateChange(state => patchState(store, { auth: { ...store.auth(), state: { prev: store.auth.state.curr(), curr: state } } }));
44
- if (userMetadata?.load) {
44
+ // Load basic user from defined table name
45
+ if (authPostLoad?.userTable) {
45
46
  const session = await firstValueFrom(toObservable(store.auth.session).pipe(filter(res => res !== undefined)));
46
- session?.user ? store.setMetadata(session?.user?.id) : patchState(store, { auth: { ...store.auth(), userMetadata: null } });
47
+ session?.user ? store.loadMetadata(session?.user?.id, authPostLoad?.userTable) : patchState(store, { auth: { ...store.auth(), metadata: null } });
47
48
  }
48
49
  else {
49
- patchState(store, { auth: { ...store.auth(), userMetadata: null } });
50
+ patchState(store, { auth: { ...store.auth(), metadata: null } });
50
51
  }
51
52
  }
52
53
  }));
53
54
  const SupaStore = signalStore(withSupaStore());
54
55
 
55
- const defaultOptions = {
56
- userMetadata: {
57
- load: false,
58
- table: 'users',
59
- }
60
- };
56
+ const defaultOptions = {};
61
57
  const provideSupaStore = (opts) => {
62
58
  const options = merge(defaultOptions, opts);
63
59
  return makeEnvironmentProviders([
@@ -71,7 +67,7 @@ const provideSupaStore = (opts) => {
71
67
 
72
68
  /*
73
69
  * Public API Surface of ob-supa-store
74
- */
70
+ */
75
71
 
76
72
  /**
77
73
  * Generated bundle index. Do not edit.
@@ -1 +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/common/token/initial-state.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\nimport { SupaStoreOptions } from \"../type/supa-store.types\"\r\n\r\nexport const SUPA_STORE_OPTIONS = new InjectionToken<SupaStoreOptions>('SUPA_STORE_OPTIONS')\r\n","import { inject, InjectionToken } from \"@angular/core\"\r\nimport { SUPA_STORE_OPTIONS } from \"./supabase-credentials.token\"\r\nimport { createClient } from \"@supabase/supabase-js\"\r\nimport { SupaStoreState } from \"../type/supa-store.types\"\r\n\r\nexport const INITIAL_STATE = new InjectionToken<SupaStoreState>('SupaStoreState', {\r\n factory: () => {\r\n\r\n const { supabaseUrl, supabaseKey } = inject(SUPA_STORE_OPTIONS)\r\n\r\n return {\r\n client: createClient(supabaseUrl, supabaseKey),\r\n auth: {\r\n session: undefined,\r\n user: undefined,\r\n userMetadata: undefined,\r\n state: { prev: null, curr: null }\r\n }\r\n }\r\n\r\n },\r\n})\r\n","import { inject } from '@angular/core';\r\nimport { withDevtools } from '@angular-architects/ngrx-toolkit'\r\nimport { INITIAL_STATE } from './common/token/initial-state.token'\r\nimport { SupaStoreState } from './common/type/supa-store.types'\r\nimport { patchState, signalStore, signalStoreFeature, withHooks, withMethods, withState } from '@ngrx/signals'\r\nimport { SUPA_STORE_OPTIONS } from './common/token/supabase-credentials.token'\r\nimport { filter, firstValueFrom } from 'rxjs'\r\nimport { toObservable } from \"@angular/core/rxjs-interop\"\r\n\r\nexport const withSupaStore = () => signalStoreFeature(\r\n\r\n withDevtools('supaStore'),\r\n withState<SupaStoreState>(() => inject(INITIAL_STATE)),\r\n\r\n withMethods(( store, { userMetadata } = inject(SUPA_STORE_OPTIONS)) => ({\r\n\r\n initSession: async () => {\r\n const { data: { session }} = await store.client().auth.getSession()\r\n patchState(store, { auth: { ...store.auth(), session }})\r\n },\r\n\r\n initUser: async () => {\r\n const { data: { user }} = await store.client().auth.getUser()\r\n patchState(store, { auth: { ...store.auth(), user }})\r\n },\r\n\r\n setMetadata: async (id: string) => {\r\n const { data } = await store.client().from(userMetadata?.table as string).select('*').eq('id', id).single()\r\n patchState(store, { auth: { ...store.auth(), userMetadata: data }})\r\n }\r\n\r\n })),\r\n\r\n withHooks({\r\n async onInit(store, { userMetadata } = inject(SUPA_STORE_OPTIONS)) {\r\n\r\n store.initSession()\r\n store.initUser()\r\n store.client().auth.onAuthStateChange(state => patchState(store, { auth: { ...store.auth(), state: { prev: store.auth.state.curr(), curr: state } }}))\r\n\r\n if (userMetadata?.load) {\r\n const session = await firstValueFrom(toObservable(store.auth.session).pipe(filter(res => res !== undefined)))\r\n session?.user ? store.setMetadata(session?.user?.id) : patchState(store, { auth: { ...store.auth(), userMetadata: null}})\r\n } else {\r\n patchState(store, { auth: { ...store.auth(), userMetadata: null}})\r\n }\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 { SUPA_STORE_OPTIONS } from \"./common/token/supabase-credentials.token\"\r\nimport { SupaStoreOptions } from \"./common/type/supa-store.types\"\r\nimport { merge } from \"lodash-es\"\r\n\r\nconst defaultOptions: Partial<SupaStoreOptions> = {\r\n userMetadata: {\r\n load: false,\r\n table: 'users',\r\n }\r\n}\r\n\r\nexport const provideSupaStore = (opts: SupaStoreOptions): EnvironmentProviders => {\r\n\r\n const options = merge(defaultOptions, opts)\r\n\r\n return makeEnvironmentProviders([\r\n {\r\n provide: SUPA_STORE_OPTIONS,\r\n useValue: options\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":"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"}
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/common/token/initial-state.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\nimport { SupaStoreOptions } from \"../type/supa-store.types\"\r\n\r\nexport const SUPA_STORE_OPTIONS = new InjectionToken<SupaStoreOptions>('SUPA_STORE_OPTIONS')\r\n","import { inject, InjectionToken } from \"@angular/core\"\r\nimport { SUPA_STORE_OPTIONS } from \"./supabase-credentials.token\"\r\nimport { createClient } from \"@supabase/supabase-js\"\r\nimport { SupaStoreState } from \"../type/supa-store.types\"\r\n\r\nexport const INITIAL_STATE = new InjectionToken<SupaStoreState>('SupaStoreState', {\r\n factory: () => {\r\n\r\n const { supabaseUrl, supabaseKey } = inject(SUPA_STORE_OPTIONS)\r\n\r\n return {\r\n client: createClient(supabaseUrl, supabaseKey),\r\n auth: {\r\n session: undefined,\r\n user: undefined,\r\n metadata: undefined,\r\n state: { prev: null, curr: null }\r\n }\r\n }\r\n\r\n },\r\n})\r\n","import { inject } from '@angular/core';\r\nimport { withDevtools } from '@angular-architects/ngrx-toolkit'\r\nimport { INITIAL_STATE } from './common/token/initial-state.token'\r\nimport { SupaStoreState } from './common/type/supa-store.types'\r\nimport { patchState, signalStore, signalStoreFeature, withHooks, withMethods, withState } from '@ngrx/signals'\r\nimport { SUPA_STORE_OPTIONS } from './common/token/supabase-credentials.token'\r\nimport { filter, firstValueFrom } from 'rxjs'\r\nimport { toObservable } from \"@angular/core/rxjs-interop\"\r\n\r\nexport const withSupaStore = () => signalStoreFeature(\r\n\r\n withDevtools('supaStore'),\r\n withState<SupaStoreState>(() => inject(INITIAL_STATE)),\r\n\r\n withMethods(( store, { authPostLoad } = inject(SUPA_STORE_OPTIONS)) => ({\r\n\r\n initSession: async () => {\r\n const { data: { session }} = await store.client().auth.getSession()\r\n patchState(store, { auth: { ...store.auth(), session }})\r\n },\r\n\r\n initUser: async () => {\r\n const { data: { user }} = await store.client().auth.getUser()\r\n patchState(store, { auth: { ...store.auth(), user }})\r\n },\r\n\r\n loadMetadata: async (id: string, table: string) => {\r\n const { data } = await store.client().from(table).select('*').eq('id', id).single()\r\n patchState(store, { auth: { ...store.auth(), metadata: data }})\r\n }\r\n\r\n })),\r\n\r\n withHooks({\r\n async onInit(store, { authPostLoad } = inject(SUPA_STORE_OPTIONS)) {\r\n\r\n store.initSession()\r\n store.initUser()\r\n store.client().auth.onAuthStateChange(state => patchState(store, { auth: { ...store.auth(), state: { prev: store.auth.state.curr(), curr: state } }}))\r\n\r\n // Load basic user from defined table name\r\n if (authPostLoad?.userTable) {\r\n const session = await firstValueFrom(toObservable(store.auth.session).pipe(filter(res => res !== undefined)))\r\n session?.user ? store.loadMetadata(session?.user?.id, authPostLoad?.userTable) : patchState(store, { auth: { ...store.auth(), metadata: null}})\r\n } else {\r\n patchState(store, { auth: { ...store.auth(), metadata: null}})\r\n }\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 { SUPA_STORE_OPTIONS } from \"./common/token/supabase-credentials.token\"\r\nimport { SupaStoreOptions } from \"./common/type/supa-store.types\"\r\nimport { merge } from \"lodash-es\"\r\n\r\nconst defaultOptions: Partial<SupaStoreOptions> = {}\r\n\r\nexport const provideSupaStore = (opts: SupaStoreOptions): EnvironmentProviders => {\r\n\r\n const options = merge(defaultOptions, opts)\r\n\r\n return makeEnvironmentProviders([\r\n {\r\n provide: SUPA_STORE_OPTIONS,\r\n useValue: options\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":";;;;;;;;AAGO,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAAmB,oBAAoB,CAAC;;ACErF,MAAM,aAAa,GAAG,IAAI,cAAc,CAAiB,gBAAgB,EAAE;IAChF,OAAO,EAAE,MAAK;QAEZ,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAE/D,OAAO;AACL,YAAA,MAAM,EAAE,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC;AAC9C,YAAA,IAAI,EAAE;AACJ,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAClC,aAAA;SACF,CAAA;KAEF;AACF,CAAA,CAAC;;ACZW,MAAA,aAAa,GAAG,MAAM,kBAAkB,CAEnD,YAAY,CAAC,WAAW,CAAC,EACzB,SAAS,CAAiB,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,EAEtD,WAAW,CAAC,CAAE,KAAK,EAAE,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM;IAEtE,WAAW,EAAE,YAAW;AACtB,QAAA,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAC,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;AACnE,QAAA,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAC,CAAC,CAAA;KACzD;IAED,QAAQ,EAAE,YAAW;AACnB,QAAA,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAC,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;AAC7D,QAAA,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAC,CAAC,CAAA;KACtD;AAED,IAAA,YAAY,EAAE,OAAO,EAAU,EAAE,KAAa,KAAI;AAChD,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAA;AACnF,QAAA,UAAU,CAAC,KAAK,EAAG,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAC,CAAC,CAAA;KACjE;CAEF,CAAC,CAAC,EAEH,SAAS,CAAC;AACR,IAAA,MAAM,MAAM,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAA;QAE/D,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,KAAK,CAAC,QAAQ,EAAE,CAAA;QAChB,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC,CAAA;;AAGtJ,QAAA,IAAI,YAAY,EAAE,SAAS,EAAE;AAC3B,YAAA,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAA;AAC7G,YAAA,OAAO,EAAE,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAC,EAAC,CAAC,CAAA;SAChJ;aAAM;AACL,YAAA,UAAU,CAAC,KAAK,EAAG,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAC,EAAC,CAAC,CAAA;SAChE;KAEF;AACF,CAAA,CAAC,EAEH;MAEY,SAAS,GAAG,WAAW,CAClC,aAAa,EAAE;;AChDjB,MAAM,cAAc,GAA8B,EAAE,CAAA;AAEvC,MAAA,gBAAgB,GAAG,CAAC,IAAsB,KAA0B;IAE/E,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;AAE3C,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,kBAAkB;AAC3B,YAAA,QAAQ,EAAE,OAAO;AAClB,SAAA;QACD,SAAS;AACV,KAAA,CAAC,CAAA;AACJ;;ACnBA;;AAEE;;ACFF;;AAEG;;;;"}
@@ -4,7 +4,7 @@ export type SupaStoreState = {
4
4
  auth: {
5
5
  session: Session | undefined | null;
6
6
  user: User | undefined | null;
7
- userMetadata: unknown | undefined | null;
7
+ metadata: unknown | undefined | null;
8
8
  state: {
9
9
  prev: AuthChangeEvent | null;
10
10
  curr: AuthChangeEvent | null;
@@ -14,8 +14,8 @@ export type SupaStoreState = {
14
14
  export type SupaStoreOptions = {
15
15
  supabaseUrl: string;
16
16
  supabaseKey: string;
17
- userMetadata?: {
18
- load?: boolean;
19
- table?: string;
17
+ authPostLoad?: {
18
+ userTable: string;
19
+ rpc: string;
20
20
  };
21
21
  };
@@ -4,7 +4,7 @@ export declare const withSupaStore: () => import("@ngrx/signals").SignalStoreFea
4
4
  auth: {
5
5
  session: import("@supabase/auth-js").Session | undefined | null;
6
6
  user: import("@supabase/auth-js").User | undefined | null;
7
- userMetadata: unknown | undefined | null;
7
+ metadata: unknown | undefined | null;
8
8
  state: {
9
9
  prev: import("@supabase/auth-js").AuthChangeEvent | null;
10
10
  curr: import("@supabase/auth-js").AuthChangeEvent | null;
@@ -15,7 +15,7 @@ export declare const withSupaStore: () => import("@ngrx/signals").SignalStoreFea
15
15
  methods: {
16
16
  initSession: () => Promise<void>;
17
17
  initUser: () => Promise<void>;
18
- setMetadata: (id: string) => Promise<void>;
18
+ loadMetadata: (id: string, table: string) => Promise<void>;
19
19
  };
20
20
  }>;
21
21
  export declare const SupaStore: import("@angular/core").Type<{
@@ -23,7 +23,7 @@ export declare const SupaStore: import("@angular/core").Type<{
23
23
  auth: import("@ngrx/signals").DeepSignal<{
24
24
  session: import("@supabase/auth-js").Session | undefined | null;
25
25
  user: import("@supabase/auth-js").User | undefined | null;
26
- userMetadata: unknown | undefined | null;
26
+ metadata: unknown | undefined | null;
27
27
  state: {
28
28
  prev: import("@supabase/auth-js").AuthChangeEvent | null;
29
29
  curr: import("@supabase/auth-js").AuthChangeEvent | null;
@@ -31,13 +31,13 @@ export declare const SupaStore: import("@angular/core").Type<{
31
31
  }>;
32
32
  initSession: () => Promise<void>;
33
33
  initUser: () => Promise<void>;
34
- setMetadata: (id: string) => Promise<void>;
34
+ loadMetadata: (id: string, table: string) => Promise<void>;
35
35
  } & import("@ngrx/signals").StateSource<{
36
36
  client: import("@supabase/supabase-js").SupabaseClient;
37
37
  auth: {
38
38
  session: import("@supabase/auth-js").Session | undefined | null;
39
39
  user: import("@supabase/auth-js").User | undefined | null;
40
- userMetadata: unknown | undefined | null;
40
+ metadata: unknown | undefined | null;
41
41
  state: {
42
42
  prev: import("@supabase/auth-js").AuthChangeEvent | null;
43
43
  curr: import("@supabase/auth-js").AuthChangeEvent | null;
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@outbuild/supa-store",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "peerDependencies": {
5
+ "@angular-architects/ngrx-toolkit": "18.0.3",
5
6
  "@angular/common": "^18.2.0",
6
7
  "@angular/core": "^18.2.0",
7
8
  "@ngrx/signals": "^18.0.2",
8
9
  "@supabase/supabase-js": "^2.45.3",
9
- "@angular-architects/ngrx-toolkit": "18.0.3",
10
10
  "lodash-es": "^4.17.21"
11
11
  },
12
12
  "dependencies": {
@@ -29,4 +29,4 @@
29
29
  "default": "./fesm2022/outbuild-supa-store.mjs"
30
30
  }
31
31
  }
32
- }
32
+ }