@w3ux/observables-connect 0.9.35 → 0.9.37

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/accounts/util.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { formatAccountSs58, isValidAddress } from '@w3ux/utils';
2
- import { defaultProcessExtensionResult } from '../consts';
2
+ import { DefaultProcessExtensionResult } from '../consts';
3
3
  import { _extensionAccounts } from '../subjects';
4
4
  export const processExtensionAccounts = (config, signer, newAccounts) => {
5
5
  const { source, ss58 } = config;
6
6
  if (!newAccounts.length) {
7
- return defaultProcessExtensionResult;
7
+ return DefaultProcessExtensionResult;
8
8
  }
9
9
  newAccounts = formatExtensionAccounts(newAccounts, ss58);
10
10
  const removedAccounts = _extensionAccounts
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/accounts/util.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAQhD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,MAAc,EACd,MAAe,EACf,WAA+B,EACC,EAAE;IAClC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,6BAA6B,CAAA;IACtC,CAAC;IAGD,WAAW,GAAG,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAGxD,MAAM,eAAe,GAAG,kBAAkB;SACvC,QAAQ,EAAE;SACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAGnE,WAAW,GAAG,WAAW,CAAC,MAAM,CAC9B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACd,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CACpE,CAAA;IAGD,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;KACP,CAAC,CAAC,CAAA;IAGH,cAAc,CAAC;QACb,GAAG,EAAE,WAAW;QAChB,MAAM,EAAE,eAAe;KACxB,CAAC,CAAA;IAEF,OAAO;QACL,WAAW;QACX,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;KACtC,CAAA;AACH,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,QAA4B,EAC5B,IAAY,EACZ,EAAE;IACF,QAAQ,GAAG,QAAQ;SAEhB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAEhD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAA;QAClC,OAAO,OAAO,CAAA;IAChB,CAAC,CAAC;SAED,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAA;IAExC,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,GAAG,EACH,MAAM,GAIP,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,CAAC,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC;SACnD,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAA;IAC3E,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACtC,CAAC,CAAA","file":"util.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type {\n ExtensionAccount,\n ProcessExtensionAccountsResult,\n} from '@w3ux/types'\nimport { formatAccountSs58, isValidAddress } from '@w3ux/utils'\nimport { defaultProcessExtensionResult } from '../consts'\nimport { _extensionAccounts } from '../subjects'\n\n// Gets accounts to be imported and commits them to state\n\ninterface Config {\n source: string\n ss58: number\n}\nexport const processExtensionAccounts = (\n config: Config,\n signer: unknown,\n newAccounts: ExtensionAccount[]\n): ProcessExtensionAccountsResult => {\n const { source, ss58 } = config\n if (!newAccounts.length) {\n return defaultProcessExtensionResult\n }\n\n // Get valid accounts from extension\n newAccounts = formatExtensionAccounts(newAccounts, ss58)\n\n // Find any accounts that have been removed from this extension\n const removedAccounts = _extensionAccounts\n .getValue()\n .filter((j) => j.source === source)\n .filter((j) => !newAccounts.find((i) => i.address === j.address))\n\n // Remove accounts that have already been imported\n newAccounts = newAccounts.filter(\n ({ address }) =>\n !_extensionAccounts.getValue().find((j) => j.address === address)\n )\n\n // Format accounts properties\n newAccounts = newAccounts.map(({ address, name }) => ({\n address,\n name,\n source,\n signer,\n }))\n\n // Update observable state\n updateAccounts({\n add: newAccounts,\n remove: removedAccounts,\n })\n\n return {\n newAccounts,\n removedAccounts: [...removedAccounts],\n }\n}\n\n// Formats accounts to correct ss58 and removes invalid accounts\nexport const formatExtensionAccounts = (\n accounts: ExtensionAccount[],\n ss58: number\n) => {\n accounts = accounts\n // Remove accounts that do not contain correctly formatted addresses\n .filter(({ address }) => isValidAddress(address))\n // Reformat addresses to ensure default ss58 format\n .map((account) => {\n const formattedAddress = formatAccountSs58(account.address, ss58)\n if (!formattedAddress) {\n return null\n }\n account.address = formattedAddress\n return account\n })\n // Remove null entries resulting from invalid formatted addresses\n .filter((account) => account !== null)\n\n return accounts\n}\n\n// Updates accounts observable based on removed and added accounts\nexport const updateAccounts = ({\n add,\n remove,\n}: {\n add: ExtensionAccount[]\n remove: ExtensionAccount[]\n}) => {\n const newAccounts = [..._extensionAccounts.getValue()]\n .concat(add)\n .filter((a) => remove.find((s) => s.address === a.address) === undefined)\n _extensionAccounts.next(newAccounts)\n}\n"]}
1
+ {"version":3,"sources":["../src/accounts/util.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAQhD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,MAAc,EACd,MAAe,EACf,WAA+B,EACC,EAAE;IAClC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,6BAA6B,CAAA;IACtC,CAAC;IAGD,WAAW,GAAG,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAGxD,MAAM,eAAe,GAAG,kBAAkB;SACvC,QAAQ,EAAE;SACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAGnE,WAAW,GAAG,WAAW,CAAC,MAAM,CAC9B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACd,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CACpE,CAAA;IAGD,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;KACP,CAAC,CAAC,CAAA;IAGH,cAAc,CAAC;QACb,GAAG,EAAE,WAAW;QAChB,MAAM,EAAE,eAAe;KACxB,CAAC,CAAA;IAEF,OAAO;QACL,WAAW;QACX,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;KACtC,CAAA;AACH,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,QAA4B,EAC5B,IAAY,EACZ,EAAE;IACF,QAAQ,GAAG,QAAQ;SAEhB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAEhD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAA;QAClC,OAAO,OAAO,CAAA;IAChB,CAAC,CAAC;SAED,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAA;IAExC,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,GAAG,EACH,MAAM,GAIP,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,CAAC,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC;SACnD,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAA;IAC3E,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACtC,CAAC,CAAA","file":"util.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type {\n ExtensionAccount,\n ProcessExtensionAccountsResult,\n} from '@w3ux/types'\nimport { formatAccountSs58, isValidAddress } from '@w3ux/utils'\nimport { DefaultProcessExtensionResult } from '../consts'\nimport { _extensionAccounts } from '../subjects'\n\n// Gets accounts to be imported and commits them to state\n\ninterface Config {\n source: string\n ss58: number\n}\nexport const processExtensionAccounts = (\n config: Config,\n signer: unknown,\n newAccounts: ExtensionAccount[]\n): ProcessExtensionAccountsResult => {\n const { source, ss58 } = config\n if (!newAccounts.length) {\n return DefaultProcessExtensionResult\n }\n\n // Get valid accounts from extension\n newAccounts = formatExtensionAccounts(newAccounts, ss58)\n\n // Find any accounts that have been removed from this extension\n const removedAccounts = _extensionAccounts\n .getValue()\n .filter((j) => j.source === source)\n .filter((j) => !newAccounts.find((i) => i.address === j.address))\n\n // Remove accounts that have already been imported\n newAccounts = newAccounts.filter(\n ({ address }) =>\n !_extensionAccounts.getValue().find((j) => j.address === address)\n )\n\n // Format accounts properties\n newAccounts = newAccounts.map(({ address, name }) => ({\n address,\n name,\n source,\n signer,\n }))\n\n // Update observable state\n updateAccounts({\n add: newAccounts,\n remove: removedAccounts,\n })\n\n return {\n newAccounts,\n removedAccounts: [...removedAccounts],\n }\n}\n\n// Formats accounts to correct ss58 and removes invalid accounts\nexport const formatExtensionAccounts = (\n accounts: ExtensionAccount[],\n ss58: number\n) => {\n accounts = accounts\n // Remove accounts that do not contain correctly formatted addresses\n .filter(({ address }) => isValidAddress(address))\n // Reformat addresses to ensure default ss58 format\n .map((account) => {\n const formattedAddress = formatAccountSs58(account.address, ss58)\n if (!formattedAddress) {\n return null\n }\n account.address = formattedAddress\n return account\n })\n // Remove null entries resulting from invalid formatted addresses\n .filter((account) => account !== null)\n\n return accounts\n}\n\n// Updates accounts observable based on removed and added accounts\nexport const updateAccounts = ({\n add,\n remove,\n}: {\n add: ExtensionAccount[]\n remove: ExtensionAccount[]\n}) => {\n const newAccounts = [..._extensionAccounts.getValue()]\n .concat(add)\n .filter((a) => remove.find((s) => s.address === a.address) === undefined)\n _extensionAccounts.next(newAccounts)\n}\n"]}
package/consts.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import type { ProcessExtensionAccountsResult } from '@w3ux/types';
2
- export declare const defaultProcessExtensionResult: ProcessExtensionAccountsResult;
3
- export declare const activeExtensionsKey = "active_extensions";
4
- export declare const hardwareAccountsKey = "hardware_accounts";
2
+ export declare const DefaultProcessExtensionResult: ProcessExtensionAccountsResult;
3
+ export declare const ActiveExtensionsKey = "active_extensions";
4
+ export declare const HardwareAccountsKey = "hardware_accounts";
package/consts.js CHANGED
@@ -1,9 +1,9 @@
1
- export const defaultProcessExtensionResult = {
1
+ export const DefaultProcessExtensionResult = {
2
2
  newAccounts: [],
3
3
  removedAccounts: [],
4
4
  };
5
- export const activeExtensionsKey = 'active_extensions';
6
- export const hardwareAccountsKey = 'hardware_accounts';
5
+ export const ActiveExtensionsKey = 'active_extensions';
6
+ export const HardwareAccountsKey = 'hardware_accounts';
7
7
 
8
8
  //# sourceMappingURL=consts.js.map
9
9
 
package/consts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/consts.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,6BAA6B,GAAmC;IAC3E,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,EAAE;CACpB,CAAA;AAGD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAA;AACtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAA","file":"consts.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type { ProcessExtensionAccountsResult } from '@w3ux/types'\n\nexport const defaultProcessExtensionResult: ProcessExtensionAccountsResult = {\n newAccounts: [],\n removedAccounts: [],\n}\n\n// Local storage active extensions key\nexport const activeExtensionsKey = 'active_extensions'\nexport const hardwareAccountsKey = 'hardware_accounts'\n"]}
1
+ {"version":3,"sources":["../src/consts.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,6BAA6B,GAAmC;IAC3E,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,EAAE;CACpB,CAAA;AAGD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAA;AACtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAA","file":"consts.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type { ProcessExtensionAccountsResult } from '@w3ux/types'\n\nexport const DefaultProcessExtensionResult: ProcessExtensionAccountsResult = {\n newAccounts: [],\n removedAccounts: [],\n}\n\n// Local storage active extensions key\nexport const ActiveExtensionsKey = 'active_extensions'\nexport const HardwareAccountsKey = 'hardware_accounts'\n"]}
package/local.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { HardwareAccount } from '@w3ux/types';
2
- export declare const isExtensionLocal: (id: string) => boolean;
3
2
  export declare const getActiveExtensionsLocal: () => string[];
3
+ export declare const isExtensionLocal: (id: string) => boolean;
4
4
  export declare const addExtensionToLocal: (id: string) => void;
5
5
  export declare const removeExtensionFromLocal: (id: string) => void;
6
6
  export declare const getHardwareAccountsLocal: () => HardwareAccount[];
package/local.js CHANGED
@@ -1,27 +1,22 @@
1
1
  import { localStorageOrDefault } from '@w3ux/utils';
2
- import { activeExtensionsKey, hardwareAccountsKey } from './consts';
3
- export const isExtensionLocal = (id) => {
4
- const current = localStorageOrDefault(activeExtensionsKey, [], true);
5
- return Array.isArray(current) && current.includes(id);
6
- };
2
+ import { ActiveExtensionsKey, HardwareAccountsKey } from './consts';
7
3
  export const getActiveExtensionsLocal = () => {
8
- const current = localStorageOrDefault(activeExtensionsKey, [], true);
4
+ const current = localStorageOrDefault(ActiveExtensionsKey, [], true);
9
5
  return Array.isArray(current) ? current : [];
10
6
  };
7
+ export const isExtensionLocal = (id) => getActiveExtensionsLocal().includes(id);
11
8
  export const addExtensionToLocal = (id) => {
12
- const current = localStorageOrDefault(activeExtensionsKey, [], true);
13
- if (Array.isArray(current) && !current.includes(id)) {
14
- localStorage.setItem(activeExtensionsKey, JSON.stringify([...current, id]));
9
+ const current = getActiveExtensionsLocal();
10
+ if (!current.includes(id)) {
11
+ localStorage.setItem(ActiveExtensionsKey, JSON.stringify([...current, id]));
15
12
  }
16
13
  };
17
14
  export const removeExtensionFromLocal = (id) => {
18
- const current = localStorageOrDefault(activeExtensionsKey, [], true);
19
- if (Array.isArray(current)) {
20
- localStorage.setItem(activeExtensionsKey, JSON.stringify(current.filter((localId) => localId !== id)));
21
- }
15
+ const current = getActiveExtensionsLocal();
16
+ localStorage.setItem(ActiveExtensionsKey, JSON.stringify(current.filter((localId) => localId !== id)));
22
17
  };
23
18
  export const getHardwareAccountsLocal = () => {
24
- const accounts = localStorageOrDefault(hardwareAccountsKey, [], true);
19
+ const accounts = localStorageOrDefault(HardwareAccountsKey, [], true);
25
20
  return accounts;
26
21
  };
27
22
 
package/local.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/local.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAGnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAW,EAAE;IACtD,MAAM,OAAO,GAAG,qBAAqB,CAAW,mBAAmB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC9E,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAa,EAAE;IACrD,MAAM,OAAO,GAAG,qBAAqB,CAAW,mBAAmB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC9E,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9C,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAQ,EAAE;IACtD,MAAM,OAAO,GAAG,qBAAqB,CAAW,mBAAmB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACpD,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EAAU,EAAQ,EAAE;IAC3D,MAAM,OAAO,GAAG,qBAAqB,CAAW,mBAAmB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,YAAY,CAAC,OAAO,CAClB,mBAAmB,EACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAC5D,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAsB,EAAE;IAC9D,MAAM,QAAQ,GAAG,qBAAqB,CACpC,mBAAmB,EACnB,EAAE,EACF,IAAI,CACgB,CAAA;IAEtB,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA","file":"local.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type { HardwareAccount } from '@w3ux/types'\nimport { localStorageOrDefault } from '@w3ux/utils'\nimport { activeExtensionsKey, hardwareAccountsKey } from './consts'\n\n// Check if an extension exists in local storage\nexport const isExtensionLocal = (id: string): boolean => {\n const current = localStorageOrDefault<string[]>(activeExtensionsKey, [], true)\n return Array.isArray(current) && current.includes(id)\n}\n\n// Gets all active extensions from local storage\nexport const getActiveExtensionsLocal = (): string[] => {\n const current = localStorageOrDefault<string[]>(activeExtensionsKey, [], true)\n return Array.isArray(current) ? current : []\n}\n\n// Adds an extension to local storage\nexport const addExtensionToLocal = (id: string): void => {\n const current = localStorageOrDefault<string[]>(activeExtensionsKey, [], true)\n if (Array.isArray(current) && !current.includes(id)) {\n localStorage.setItem(activeExtensionsKey, JSON.stringify([...current, id]))\n }\n}\n\n// Removes extension from local storage\nexport const removeExtensionFromLocal = (id: string): void => {\n const current = localStorageOrDefault<string[]>(activeExtensionsKey, [], true)\n if (Array.isArray(current)) {\n localStorage.setItem(\n activeExtensionsKey,\n JSON.stringify(current.filter((localId) => localId !== id))\n )\n }\n}\n\n// Gets imported hardware accounts from local storage\nexport const getHardwareAccountsLocal = (): HardwareAccount[] => {\n const accounts = localStorageOrDefault(\n hardwareAccountsKey,\n [],\n true\n ) as HardwareAccount[]\n\n return accounts\n}\n"]}
1
+ {"version":3,"sources":["../src/local.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAGnE,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAa,EAAE;IACrD,MAAM,OAAO,GAAG,qBAAqB,CAAW,mBAAmB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC9E,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9C,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAW,EAAE,CACtD,wBAAwB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAGzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAQ,EAAE;IACtD,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAA;IAC1C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1B,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EAAU,EAAQ,EAAE;IAC3D,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAA;IAC1C,YAAY,CAAC,OAAO,CAClB,mBAAmB,EACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAC5D,CAAA;AACH,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAsB,EAAE;IAC9D,MAAM,QAAQ,GAAG,qBAAqB,CACpC,mBAAmB,EACnB,EAAE,EACF,IAAI,CACgB,CAAA;IAEtB,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA","file":"local.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type { HardwareAccount } from '@w3ux/types'\nimport { localStorageOrDefault } from '@w3ux/utils'\nimport { ActiveExtensionsKey, HardwareAccountsKey } from './consts'\n\n// Gets all active extensions from local storage\nexport const getActiveExtensionsLocal = (): string[] => {\n const current = localStorageOrDefault<string[]>(ActiveExtensionsKey, [], true)\n return Array.isArray(current) ? current : []\n}\n\n// Check if an extension exists in local storage\nexport const isExtensionLocal = (id: string): boolean =>\n getActiveExtensionsLocal().includes(id)\n\n// Adds an extension to local storage\nexport const addExtensionToLocal = (id: string): void => {\n const current = getActiveExtensionsLocal()\n if (!current.includes(id)) {\n localStorage.setItem(ActiveExtensionsKey, JSON.stringify([...current, id]))\n }\n}\n\n// Removes extension from local storage\nexport const removeExtensionFromLocal = (id: string): void => {\n const current = getActiveExtensionsLocal()\n localStorage.setItem(\n ActiveExtensionsKey,\n JSON.stringify(current.filter((localId) => localId !== id))\n )\n}\n\n// Gets imported hardware accounts from local storage\nexport const getHardwareAccountsLocal = (): HardwareAccount[] => {\n const accounts = localStorageOrDefault(\n HardwareAccountsKey,\n [],\n true\n ) as HardwareAccount[]\n\n return accounts\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@w3ux/observables-connect",
3
- "version": "0.9.35",
3
+ "version": "0.9.37",
4
4
  "license": "GPL-3.0-only",
5
5
  "type": "module",
6
6
  "exports": {