From 52c9666dff984cf33e75c824809c9ad78912388a Mon Sep 17 00:00:00 2001 From: Jaco Date: Mon, 27 Dec 2021 14:25:44 +0100 Subject: [PATCH] Add detectPackage for extension-* (#946) * Bump deps * Add detectPackage for extension-* * Add missing util deps --- packages/extension-base/package.json | 5 ++++- packages/extension-base/src/detectPackage.ts | 11 +++++++++++ packages/extension-base/src/index.ts | 4 +++- packages/extension-chains/package.json | 6 +++++- packages/extension-chains/src/detectPackage.ts | 9 +++++++++ packages/extension-chains/src/index.ts | 4 ++++ packages/extension-compat-metamask/package.json | 5 ++++- .../extension-compat-metamask/src/detectPackage.ts | 9 +++++++++ packages/extension-compat-metamask/src/index.ts | 4 ++++ packages/extension-dapp/package.json | 5 ++++- packages/extension-dapp/src/detectPackage.ts | 9 +++++++++ packages/extension-dapp/src/index.ts | 3 +++ packages/extension-inject/package.json | 1 + packages/extension-inject/src/detectPackage.ts | 8 ++++++++ packages/extension-inject/src/index.ts | 4 ++++ packages/extension/src/detectPackage.ts | 8 ++++++++ yarn.lock | 2 ++ 17 files changed, 92 insertions(+), 5 deletions(-) create mode 100644 packages/extension-base/src/detectPackage.ts create mode 100644 packages/extension-chains/src/detectPackage.ts create mode 100644 packages/extension-compat-metamask/src/detectPackage.ts create mode 100644 packages/extension-dapp/src/detectPackage.ts create mode 100644 packages/extension-inject/src/detectPackage.ts create mode 100644 packages/extension/src/detectPackage.ts diff --git a/packages/extension-base/package.json b/packages/extension-base/package.json index bd922751..4bbd8124 100644 --- a/packages/extension-base/package.json +++ b/packages/extension-base/package.json @@ -12,7 +12,10 @@ "type": "git", "url": "https://github.com/polkadot-js/extension.git" }, - "sideEffects": false, + "sideEffects": [ + "./detectPackage.js", + "./detectPackage.cjs" + ], "type": "module", "version": "0.42.4", "main": "index.js", diff --git a/packages/extension-base/src/detectPackage.ts b/packages/extension-base/src/detectPackage.ts new file mode 100644 index 00000000..24af38a7 --- /dev/null +++ b/packages/extension-base/src/detectPackage.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2021 @polkadot/extension-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { packageInfo as chainsInfo } from '@polkadot/extension-chains/packageInfo'; +import { packageInfo as dappInfo } from '@polkadot/extension-dapp/packageInfo'; +import { packageInfo as injectInfo } from '@polkadot/extension-inject/packageInfo'; +import { detectPackage } from '@polkadot/util'; + +import { packageInfo } from './packageInfo'; + +detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname, [chainsInfo, dappInfo, injectInfo]); diff --git a/packages/extension-base/src/index.ts b/packages/extension-base/src/index.ts index 5075605e..876701e9 100644 --- a/packages/extension-base/src/index.ts +++ b/packages/extension-base/src/index.ts @@ -1,4 +1,6 @@ // Copyright 2019-2021 @polkadot/extension-base authors & contributors // SPDX-License-Identifier: Apache-2.0 -// no direct exports +import './detectPackage'; + +export { packageInfo } from './packageInfo'; diff --git a/packages/extension-chains/package.json b/packages/extension-chains/package.json index 08f8e606..f7951806 100644 --- a/packages/extension-chains/package.json +++ b/packages/extension-chains/package.json @@ -12,7 +12,10 @@ "type": "git", "url": "https://github.com/polkadot-js/extension.git" }, - "sideEffects": false, + "sideEffects": [ + "./detectPackage.js", + "./detectPackage.cjs" + ], "type": "module", "version": "0.42.4", "main": "index.js", @@ -20,6 +23,7 @@ "@babel/runtime": "^7.16.5", "@polkadot/extension-inject": "^0.42.4", "@polkadot/networks": "^8.2.2", + "@polkadot/util": "^8.2.2", "@polkadot/util-crypto": "^8.2.2" }, "peerDependencies": { diff --git a/packages/extension-chains/src/detectPackage.ts b/packages/extension-chains/src/detectPackage.ts new file mode 100644 index 00000000..303075bd --- /dev/null +++ b/packages/extension-chains/src/detectPackage.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2021 @polkadot/extension-chains authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { packageInfo as injectInfo } from '@polkadot/extension-inject/packageInfo'; +import { detectPackage } from '@polkadot/util'; + +import { packageInfo } from './packageInfo'; + +detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname, [injectInfo]); diff --git a/packages/extension-chains/src/index.ts b/packages/extension-chains/src/index.ts index d0f89cd2..27cec0ae 100644 --- a/packages/extension-chains/src/index.ts +++ b/packages/extension-chains/src/index.ts @@ -1,6 +1,8 @@ // Copyright 2019-2021 @polkadot/extension-chains authors & contributors // SPDX-License-Identifier: Apache-2.0 +import './detectPackage'; + import type { MetadataDef } from '@polkadot/extension-inject/types'; import type { ChainProperties } from '@polkadot/types/interfaces'; import type { Chain } from './types'; @@ -8,6 +10,8 @@ import type { Chain } from './types'; import { Metadata, TypeRegistry } from '@polkadot/types'; import { base64Decode } from '@polkadot/util-crypto'; +export { packageInfo } from './packageInfo'; + // imports chain details, generally metadata. For the generation of these, // inside the api, run `yarn chain:info --ws ` diff --git a/packages/extension-compat-metamask/package.json b/packages/extension-compat-metamask/package.json index 81561fa8..9227aa6a 100644 --- a/packages/extension-compat-metamask/package.json +++ b/packages/extension-compat-metamask/package.json @@ -12,7 +12,10 @@ "type": "git", "url": "https://github.com/polkadot-js/extension.git" }, - "sideEffects": false, + "sideEffects": [ + "./detectPackage.js", + "./detectPackage.cjs" + ], "type": "module", "version": "0.42.4", "main": "index.js", diff --git a/packages/extension-compat-metamask/src/detectPackage.ts b/packages/extension-compat-metamask/src/detectPackage.ts new file mode 100644 index 00000000..303075bd --- /dev/null +++ b/packages/extension-compat-metamask/src/detectPackage.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2021 @polkadot/extension-chains authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { packageInfo as injectInfo } from '@polkadot/extension-inject/packageInfo'; +import { detectPackage } from '@polkadot/util'; + +import { packageInfo } from './packageInfo'; + +detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname, [injectInfo]); diff --git a/packages/extension-compat-metamask/src/index.ts b/packages/extension-compat-metamask/src/index.ts index fa47bf7d..3f3a5655 100644 --- a/packages/extension-compat-metamask/src/index.ts +++ b/packages/extension-compat-metamask/src/index.ts @@ -1,6 +1,8 @@ // Copyright 2019-2020 @polkadot/extension-compat-metamask authors & contributors // SPDX-License-Identifier: Apache-2.0 +import './detectPackage'; + import type { Injected, InjectedAccount, InjectedWindow } from '@polkadot/extension-inject/types'; import type { SignerPayloadRaw, SignerResult } from '@polkadot/types/types'; import type { HexString } from '@polkadot/util/types'; @@ -10,6 +12,8 @@ import Web3 from 'web3'; import { assert } from '@polkadot/util'; +export { packageInfo } from './packageInfo'; + interface RequestArguments { method: string; params?: unknown[]; diff --git a/packages/extension-dapp/package.json b/packages/extension-dapp/package.json index 131ce56e..313fa064 100644 --- a/packages/extension-dapp/package.json +++ b/packages/extension-dapp/package.json @@ -12,7 +12,10 @@ "type": "git", "url": "https://github.com/polkadot-js/extension.git" }, - "sideEffects": false, + "sideEffects": [ + "./detectPackage.js", + "./detectPackage.cjs" + ], "type": "module", "version": "0.42.4", "main": "index.js", diff --git a/packages/extension-dapp/src/detectPackage.ts b/packages/extension-dapp/src/detectPackage.ts new file mode 100644 index 00000000..69e8252e --- /dev/null +++ b/packages/extension-dapp/src/detectPackage.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2021 @polkadot/extension-dapp authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { packageInfo as injectInfo } from '@polkadot/extension-inject/packageInfo'; +import { detectPackage } from '@polkadot/util'; + +import { packageInfo } from './packageInfo'; + +detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname, [injectInfo]); diff --git a/packages/extension-dapp/src/index.ts b/packages/extension-dapp/src/index.ts index ae5e70cf..43cc01c6 100644 --- a/packages/extension-dapp/src/index.ts +++ b/packages/extension-dapp/src/index.ts @@ -1,6 +1,8 @@ // Copyright 2019-2021 @polkadot/extension-dapp authors & contributors // SPDX-License-Identifier: Apache-2.0 +import './detectPackage'; + import type { Injected, InjectedAccount, InjectedAccountWithMeta, InjectedExtension, InjectedExtensionInfo, InjectedProviderWithMeta, InjectedWindow, ProviderList, Unsubcall, Web3AccountsOptions } from '@polkadot/extension-inject/types'; import { u8aEq } from '@polkadot/util'; @@ -9,6 +11,7 @@ import { decodeAddress, encodeAddress } from '@polkadot/util-crypto'; import { documentReadyPromise } from './util'; // expose utility functions +export { packageInfo } from './packageInfo'; export { unwrapBytes, wrapBytes } from './wrapBytes'; // just a helper (otherwise we cast all-over, so shorter and more readable) diff --git a/packages/extension-inject/package.json b/packages/extension-inject/package.json index 695421d3..32327434 100644 --- a/packages/extension-inject/package.json +++ b/packages/extension-inject/package.json @@ -20,6 +20,7 @@ "@babel/runtime": "^7.16.5", "@polkadot/rpc-provider": "^7.1.1", "@polkadot/types": "^7.1.1", + "@polkadot/util": "^8.2.2", "@polkadot/util-crypto": "^8.2.2" }, "devDependencies": { diff --git a/packages/extension-inject/src/detectPackage.ts b/packages/extension-inject/src/detectPackage.ts new file mode 100644 index 00000000..90ebe696 --- /dev/null +++ b/packages/extension-inject/src/detectPackage.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2021 @polkadot/extension-inject authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { detectPackage } from '@polkadot/util'; + +import { packageInfo } from './packageInfo'; + +detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname, []); diff --git a/packages/extension-inject/src/index.ts b/packages/extension-inject/src/index.ts index c7f9ee74..f5cf3f33 100644 --- a/packages/extension-inject/src/index.ts +++ b/packages/extension-inject/src/index.ts @@ -1,8 +1,12 @@ // Copyright 2019-2021 @polkadot/extension-inject authors & contributors // SPDX-License-Identifier: Apache-2.0 +import './detectPackage'; + import type { Injected, InjectedWindow, InjectOptions } from './types'; +export { packageInfo } from './packageInfo'; + // It is recommended to always use the function below to shield the extension and dapp from // any future changes. The exposed interface will manage access between the 2 environments, // be it via window (current), postMessage (under consideration) or any other mechanism diff --git a/packages/extension/src/detectPackage.ts b/packages/extension/src/detectPackage.ts new file mode 100644 index 00000000..5703d0d5 --- /dev/null +++ b/packages/extension/src/detectPackage.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2021 @polkadot/extension authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { detectPackage } from '@polkadot/util'; + +import { packageInfo } from './packageInfo'; + +detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname, []); diff --git a/yarn.lock b/yarn.lock index 2d708ebf..31b952e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2505,6 +2505,7 @@ __metadata: "@babel/runtime": ^7.16.5 "@polkadot/extension-inject": ^0.42.4 "@polkadot/networks": ^8.2.2 + "@polkadot/util": ^8.2.2 "@polkadot/util-crypto": ^8.2.2 peerDependencies: "@polkadot/api": "*" @@ -2549,6 +2550,7 @@ __metadata: "@babel/runtime": ^7.16.5 "@polkadot/rpc-provider": ^7.1.1 "@polkadot/types": ^7.1.1 + "@polkadot/util": ^8.2.2 "@polkadot/util-crypto": ^8.2.2 "@types/chrome": ^0.0.173 "@types/firefox-webext-browser": ^94.0.0