@prosopo/account 0.3.1

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.
Files changed (40) hide show
  1. package/dist/cjs/common/dist/array.cjs +8 -0
  2. package/dist/cjs/common/dist/asyncFactory.cjs +13 -0
  3. package/dist/cjs/common/dist/custom.cjs +1 -0
  4. package/dist/cjs/common/dist/error.cjs +92 -0
  5. package/dist/cjs/common/dist/hash.cjs +14 -0
  6. package/dist/cjs/common/dist/i18n.cjs +29 -0
  7. package/dist/cjs/common/dist/index.cjs +40 -0
  8. package/dist/cjs/common/dist/locales/en.json.cjs +191 -0
  9. package/dist/cjs/common/dist/logger.cjs +91 -0
  10. package/dist/cjs/common/dist/node/UrlConverter.cjs +215 -0
  11. package/dist/cjs/common/dist/node/i18nMiddleware.cjs +8 -0
  12. package/dist/cjs/common/dist/node/index.cjs +4 -0
  13. package/dist/cjs/common/dist/react/index.cjs +4 -0
  14. package/dist/cjs/common/dist/react/useTranslation.cjs +8 -0
  15. package/dist/cjs/common/dist/string.cjs +6 -0
  16. package/dist/cjs/common/dist/utils.cjs +38 -0
  17. package/dist/cjs/extension/Extension.cjs +5 -0
  18. package/dist/cjs/extension/ExtensionWeb2.cjs +104 -0
  19. package/dist/cjs/index.cjs +6 -0
  20. package/dist/cjs/util/dist/canvas.cjs +326 -0
  21. package/dist/cjs/util/dist/index.cjs +26 -0
  22. package/dist/cjs/util/dist/isMain.cjs +13 -0
  23. package/dist/cjs/util/dist/lodash.cjs +35 -0
  24. package/dist/cjs/util/dist/ofLen.cjs +526 -0
  25. package/dist/cjs/util/dist/url.cjs +9 -0
  26. package/dist/cjs/util/dist/util.cjs +153 -0
  27. package/dist/extension/Extension.d.ts +5 -0
  28. package/dist/extension/Extension.d.ts.map +1 -0
  29. package/dist/extension/Extension.js +3 -0
  30. package/dist/extension/Extension.js.map +1 -0
  31. package/dist/extension/ExtensionWeb2.d.ts +18 -0
  32. package/dist/extension/ExtensionWeb2.d.ts.map +1 -0
  33. package/dist/extension/ExtensionWeb2.js +100 -0
  34. package/dist/extension/ExtensionWeb2.js.map +1 -0
  35. package/dist/index.d.ts +3 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +3 -0
  38. package/dist/index.js.map +1 -0
  39. package/package.json +58 -0
  40. package/vite.cjs.config.ts +6 -0
@@ -0,0 +1,100 @@
1
+ import { ApiPromise } from '@polkadot/api/promise/Api';
2
+ import { Extension } from './Extension.js';
3
+ import { Keyring } from '@polkadot/keyring';
4
+ import { ProsopoEnvError, hexHash } from '@prosopo/common';
5
+ import { WsProvider } from '@polkadot/rpc-provider/ws';
6
+ import { decodeAddress, encodeAddress } from '@polkadot/util-crypto/address';
7
+ import { entropyToMnemonic } from '@polkadot/util-crypto/mnemonic/bip39';
8
+ import { hashComponents, load } from '@fingerprintjs/fingerprintjs';
9
+ import { picassoCanvas } from '@prosopo/util';
10
+ import { stringToU8a } from '@polkadot/util/string';
11
+ import { u8aToHex } from '@polkadot/util/u8a';
12
+ import Signer from '@polkadot/extension-base/page/Signer';
13
+ export class ExtensionWeb2 extends Extension {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.getNetwork = (config) => {
17
+ const network = config.networks[config.defaultNetwork];
18
+ if (!network) {
19
+ throw new ProsopoEnvError('DEVELOPER.NETWORK_NOT_FOUND', {
20
+ context: { error: `No network found for environment ${config.defaultEnvironment}` },
21
+ });
22
+ }
23
+ return network;
24
+ };
25
+ }
26
+ async getAccount(config) {
27
+ const network = this.getNetwork(config);
28
+ const wsProvider = new WsProvider(network.endpoint);
29
+ const account = await this.createAccount(wsProvider);
30
+ const extension = await this.createExtension(account);
31
+ return {
32
+ account,
33
+ extension,
34
+ };
35
+ }
36
+ async createExtension(account) {
37
+ const signer = new Signer(async () => {
38
+ return;
39
+ });
40
+ signer.signRaw = async (payload) => {
41
+ const signature = account.keypair.sign(payload.data);
42
+ return {
43
+ id: 1,
44
+ signature: u8aToHex(signature),
45
+ };
46
+ };
47
+ return {
48
+ accounts: {
49
+ get: async () => {
50
+ return [account];
51
+ },
52
+ subscribe: () => {
53
+ return () => {
54
+ return;
55
+ };
56
+ },
57
+ },
58
+ name: 'procaptcha-web2',
59
+ version: '0.1.11',
60
+ signer,
61
+ };
62
+ }
63
+ async createAccount(wsProvider) {
64
+ const params = {
65
+ area: { width: 300, height: 300 },
66
+ offsetParameter: 2001000001,
67
+ multiplier: 15000,
68
+ fontSizeFactor: 1.5,
69
+ maxShadowBlur: 50,
70
+ numberOfRounds: 5,
71
+ seed: 42,
72
+ };
73
+ const browserEntropy = await this.getFingerprint();
74
+ const canvasEntropy = picassoCanvas(params.numberOfRounds, params.seed, params);
75
+ const entropy = hexHash([canvasEntropy, browserEntropy].join(''), 128).slice(2);
76
+ const u8Entropy = stringToU8a(entropy);
77
+ const mnemonic = entropyToMnemonic(u8Entropy);
78
+ const api = await ApiPromise.create({ provider: wsProvider, initWasm: false });
79
+ const type = 'ed25519';
80
+ const keyring = new Keyring({ type, ss58Format: api.registry.chainSS58 });
81
+ const keypair = keyring.addFromMnemonic(mnemonic);
82
+ const address = keypair.address.length === 42
83
+ ? keypair.address
84
+ : encodeAddress(decodeAddress(keypair.address), api.registry.chainSS58);
85
+ return {
86
+ address,
87
+ type,
88
+ name: address,
89
+ keypair,
90
+ };
91
+ }
92
+ async getFingerprint() {
93
+ const fpPromise = load();
94
+ const fp = await fpPromise;
95
+ const result = await fp.get();
96
+ const { screenFrame, ...componentsReduced } = result.components;
97
+ return hashComponents(componentsReduced);
98
+ }
99
+ }
100
+ //# sourceMappingURL=ExtensionWeb2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionWeb2.js","sourceRoot":"","sources":["../../src/extension/ExtensionWeb2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './extension/Extension.js';
2
+ export * from './extension/ExtensionWeb2.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './extension/Extension.js';
2
+ export * from './extension/ExtensionWeb2.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@prosopo/account",
3
+ "version": "0.3.1",
4
+ "description": "Services and Utils for Prosopo account gen and management",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "engines": {
8
+ "node": ">=18",
9
+ "npm": ">=9"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.js",
14
+ "require": "./dist/cjs/index.cjs"
15
+ }
16
+ },
17
+ "scripts": {
18
+ "clean": "tsc --build --clean",
19
+ "build": "tsc --build --verbose tsconfig.json",
20
+ "build:cjs": "npx vite --config vite.cjs.config.ts build",
21
+ "eslint": "npx eslint . --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore",
22
+ "eslint:fix": "npm run eslint -- --fix",
23
+ "prettier": "npx prettier . --check --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore",
24
+ "prettier:fix": "npm run prettier -- --write",
25
+ "lint": "npm run eslint && npm run prettier",
26
+ "lint:fix": "npm run eslint:fix && npm run prettier:fix"
27
+ },
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "git+ssh://git@github.com/prosopo/types.git"
31
+ },
32
+ "author": "Prosopo Limited",
33
+ "license": "Apache-2.0",
34
+ "bugs": {
35
+ "url": "https://github.com/prosopo/captcha/issues"
36
+ },
37
+ "homepage": "https://github.com/prosopo/captcha#readme",
38
+ "dependencies": {
39
+ "react": "^18.2.0",
40
+ "@fingerprintjs/fingerprintjs": "^3.3.6",
41
+ "@polkadot/api": "10.11.2",
42
+ "@polkadot/extension-base": "0.46.6",
43
+ "@polkadot/extension-inject": "0.46.6",
44
+ "@polkadot/keyring": "12.6.2",
45
+ "@polkadot/rpc-provider": "10.11.2",
46
+ "@polkadot/util": "12.6.2",
47
+ "@polkadot/util-crypto": "12.6.2",
48
+ "@prosopo/common": "0.3.1",
49
+ "@prosopo/types": "0.3.1",
50
+ "@prosopo/util": "0.3.1"
51
+ },
52
+ "devDependencies": {
53
+ "@prosopo/config": "0.3.1",
54
+ "tslib": "2.6.2",
55
+ "typescript": "5.1.6"
56
+ },
57
+ "sideEffects": false
58
+ }
@@ -0,0 +1,6 @@
1
+ import { ViteCommonJSConfig } from '@prosopo/config'
2
+ import path from 'path'
3
+
4
+ export default function () {
5
+ return ViteCommonJSConfig('util', path.resolve('./tsconfig.cjs.json'))
6
+ }