@w3ux/observables-connect 0.9.5 → 0.9.6

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.
@@ -1,3 +1,5 @@
1
- import type { ExtensionEnableResults, RawExtensionEnable } from '@w3ux/types';
1
+ import type { ExtensionEnableResults, ExtensionInterface, RawExtensionEnable, RawExtensions } from '@w3ux/types';
2
2
  export declare const enableExtensions: (ids: string[], dappName: string) => Promise<ExtensionEnableResults>;
3
3
  export declare const getExtensionsById: (ids: string[]) => Map<string, RawExtensionEnable>;
4
+ export declare const formatEnabledExtensions: (extensions: RawExtensions, results: PromiseSettledResult<ExtensionInterface>[]) => ExtensionEnableResults;
5
+ export declare const doEnableExtensions: (extensions: RawExtensions, dappName: string) => Promise<PromiseSettledResult<ExtensionInterface>[]>;
@@ -18,7 +18,7 @@ export const getExtensionsById = (ids) => {
18
18
  });
19
19
  return extensions;
20
20
  };
21
- const formatEnabledExtensions = (extensions, results) => {
21
+ export const formatEnabledExtensions = (extensions, results) => {
22
22
  const extensionsState = new Map();
23
23
  for (let i = 0; i < results.length; i++) {
24
24
  const result = results[i];
@@ -38,7 +38,7 @@ const formatEnabledExtensions = (extensions, results) => {
38
38
  }
39
39
  return extensionsState;
40
40
  };
41
- const doEnableExtensions = async (extensions, dappName) => {
41
+ export const doEnableExtensions = async (extensions, dappName) => {
42
42
  try {
43
43
  return await Promise.allSettled(Array.from(extensions.values()).map((fn) => fn(dappName)));
44
44
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/extensions/enable.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAGpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAa,EAAE,QAAgB,EAAE,EAAE;IACxE,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACzC,OAAO,uBAAuB,CAC5B,UAAU,EACV,MAAM,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAC/C,CAAA;AACH,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAa,EAAE,EAAE;IACjD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAA;IACxD,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACvB,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;YAChD,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACzD,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;YAC5B,CAAC;iBAAM,CAAC;gBACN,wBAAwB,CAAC,EAAE,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAGD,MAAM,uBAAuB,GAAG,CAC9B,UAAyB,EACzB,OAAmD,EAC3B,EAAE;IAC1B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAiC,CAAA;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAE3C,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE;gBACtB,SAAS,EAAE,MAAM,CAAC,KAAK;gBACvB,SAAS,EAAE,IAAI;aAChB,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACxC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE;gBACtB,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,MAAM,CAAC,MAAM;aACrB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AAGD,MAAM,kBAAkB,GAAG,KAAK,EAC9B,UAAyB,EACzB,QAAgB,EAChB,EAAE;IACF,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,UAAU,CAC7B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAC1D,CAAA;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAA;QAC3D,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA","file":"enable.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type {\n ExtensionEnableResult,\n ExtensionEnableResults,\n ExtensionInterface,\n RawExtensionEnable,\n RawExtensions,\n} from '@w3ux/types'\nimport { isExtensionLocal, removeExtensionFromLocal } from './local'\n\n// Get extensions and enable them\nexport const enableExtensions = async (ids: string[], dappName: string) => {\n const extensions = getExtensionsById(ids)\n return formatEnabledExtensions(\n extensions,\n await doEnableExtensions(extensions, dappName)\n )\n}\n\n// Gets extensions from injectedWeb3 by their ids\nexport const getExtensionsById = (ids: string[]) => {\n const extensions = new Map<string, RawExtensionEnable>()\n ids.forEach(async (id) => {\n if (isExtensionLocal(id)) {\n const enable = window.injectedWeb3?.[id]?.enable\n if (enable !== undefined && typeof enable === 'function') {\n extensions.set(id, enable)\n } else {\n removeExtensionFromLocal(id)\n }\n }\n })\n return extensions\n}\n\n// Formats the results of an extension's enable function\nconst formatEnabledExtensions = (\n extensions: RawExtensions,\n results: PromiseSettledResult<ExtensionInterface>[]\n): ExtensionEnableResults => {\n const extensionsState = new Map<string, ExtensionEnableResult>()\n\n for (let i = 0; i < results.length; i++) {\n const result = results[i]\n const id = Array.from(extensions.keys())[i]\n\n if (result.status === 'fulfilled') {\n extensionsState.set(id, {\n extension: result.value,\n connected: true,\n })\n } else if (result.status === 'rejected') {\n extensionsState.set(id, {\n connected: false,\n error: result.reason,\n })\n }\n }\n return extensionsState\n}\n\n// Calls enable for the provided extensions\nconst doEnableExtensions = async (\n extensions: RawExtensions,\n dappName: string\n) => {\n try {\n return await Promise.allSettled(\n Array.from(extensions.values()).map((fn) => fn(dappName))\n )\n } catch (e) {\n console.error(\"Error during 'enable' extensions call: \", e)\n return []\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/extensions/enable.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAGpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAa,EAAE,QAAgB,EAAE,EAAE;IACxE,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACzC,OAAO,uBAAuB,CAC5B,UAAU,EACV,MAAM,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAC/C,CAAA;AACH,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAa,EAAE,EAAE;IACjD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAA;IACxD,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACvB,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;YAChD,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACzD,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;YAC5B,CAAC;iBAAM,CAAC;gBACN,wBAAwB,CAAC,EAAE,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,UAAyB,EACzB,OAAmD,EAC3B,EAAE;IAC1B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAiC,CAAA;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAE3C,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE;gBACtB,SAAS,EAAE,MAAM,CAAC,KAAK;gBACvB,SAAS,EAAE,IAAI;aAChB,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACxC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE;gBACtB,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,MAAM,CAAC,MAAM;aACrB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,UAAyB,EACzB,QAAgB,EAChB,EAAE;IACF,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,UAAU,CAC7B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAC1D,CAAA;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAA;QAC3D,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA","file":"enable.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type {\n ExtensionEnableResult,\n ExtensionEnableResults,\n ExtensionInterface,\n RawExtensionEnable,\n RawExtensions,\n} from '@w3ux/types'\nimport { isExtensionLocal, removeExtensionFromLocal } from './local'\n\n// Get extensions and enable them\nexport const enableExtensions = async (ids: string[], dappName: string) => {\n const extensions = getExtensionsById(ids)\n return formatEnabledExtensions(\n extensions,\n await doEnableExtensions(extensions, dappName)\n )\n}\n\n// Gets extensions from injectedWeb3 by their ids\nexport const getExtensionsById = (ids: string[]) => {\n const extensions = new Map<string, RawExtensionEnable>()\n ids.forEach(async (id) => {\n if (isExtensionLocal(id)) {\n const enable = window.injectedWeb3?.[id]?.enable\n if (enable !== undefined && typeof enable === 'function') {\n extensions.set(id, enable)\n } else {\n removeExtensionFromLocal(id)\n }\n }\n })\n return extensions\n}\n\n// Formats the results of an extension's enable function\nexport const formatEnabledExtensions = (\n extensions: RawExtensions,\n results: PromiseSettledResult<ExtensionInterface>[]\n): ExtensionEnableResults => {\n const extensionsState = new Map<string, ExtensionEnableResult>()\n\n for (let i = 0; i < results.length; i++) {\n const result = results[i]\n const id = Array.from(extensions.keys())[i]\n\n if (result.status === 'fulfilled') {\n extensionsState.set(id, {\n extension: result.value,\n connected: true,\n })\n } else if (result.status === 'rejected') {\n extensionsState.set(id, {\n connected: false,\n error: result.reason,\n })\n }\n }\n return extensionsState\n}\n\n// Calls enable for the provided extensions\nexport const doEnableExtensions = async (\n extensions: RawExtensions,\n dappName: string\n) => {\n try {\n return await Promise.allSettled(\n Array.from(extensions.values()).map((fn) => fn(dappName))\n )\n } catch (e) {\n console.error(\"Error during 'enable' extensions call: \", e)\n return []\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@w3ux/observables-connect",
3
- "version": "0.9.5",
3
+ "version": "0.9.6",
4
4
  "license": "GPL-3.0-only",
5
5
  "dependencies": {
6
6
  "@w3ux/extension-assets": "^2.2.0",