I’m trying to use blockstack with vanilla client-side TypeScript. When I first ‘npm install blockstack,’ I get the following 37 errors:
eleanor@demo-machine:~/workbench/opendar/opendar/public/javascripts/typescript$ tsc
src/TodoRepository.ts:2:22 - error TS2307: Cannot find module 'Todo.js'.
2 import { Todo } from 'Todo.js';
~~~~~~~~~
src/node_modules/blockstack/lib/auth/userSession.d.ts:1:23 - error TS2688: Cannot find type definition file for 'node'.
1 /// <reference types="node" />
~~~~
src/node_modules/blockstack/lib/auth/userSession.d.ts:146:38 - error TS2580: Cannot findname 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
146 encryptContent(content: string | Buffer, options?: {
~~~~~~
src/node_modules/blockstack/lib/auth/userSession.d.ts:159:18 - error TS2580: Cannot findname 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
159 }): string | Buffer;
~~~~~~
src/node_modules/blockstack/lib/auth/userSession.d.ts:169:45 - error TS2580: Cannot findname 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
169 putFile(path: string, content: string | Buffer, options?: import('../storage').PutFileOptions): Promise<string>;
~~~~~~
src/node_modules/blockstack/lib/encryption/ec.d.ts:1:23 - error TS2688: Cannot find typedefinition file for 'node'.
1 /// <reference types="node" />
~~~~
src/node_modules/blockstack/lib/encryption/ec.d.ts:2:16 - error TS7016: Could not find adeclaration file for module 'bn.js'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/src/node_modules/bn.js/lib/bn.js' implicitly has an 'any' type.
Try `npm install @types/bn.js` if it exists or add a new declaration (.d.ts) file containing `declare module 'bn.js';`
2 import BN from 'bn.js';
~~~~~~~
src/node_modules/blockstack/lib/encryption/ec.d.ts:29:75 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
29 export declare function encryptECIES(publicKey: string, content: string | Buffer): CipherObject;
~~~~~~
src/node_modules/blockstack/lib/encryption/ec.d.ts:42:87 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
42 export declare function decryptECIES(privateKey: string, cipherObject: CipherObject):Buffer | string;
~~~~~~
src/node_modules/blockstack/lib/encryption/ec.d.ts:54:73 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
54 export declare function signECDSA(privateKey: string, content: string | Buffer): {
~~~~~~
src/node_modules/blockstack/lib/encryption/ec.d.ts:67:69 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
67 export declare function verifyECDSA(content: string | ArrayBuffer | Buffer, publicKey: string, signature: string): boolean;
~~~~~~
src/node_modules/blockstack/lib/encryption/wallet.d.ts:1:23 - error TS2688: Cannot find type definition file for 'node'.
1 /// <reference types="node" />
~~~~
src/node_modules/blockstack/lib/encryption/wallet.d.ts:10:84 - error TS2580: Cannot findname 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
10 export declare function encryptMnemonic(phrase: string, password: string): Promise<Buffer>;
~~~~~~
src/node_modules/blockstack/lib/encryption/wallet.d.ts:19:57 - error TS2580: Cannot findname 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
19 export declare function decryptMnemonic(data: (string | Buffer), password: string): Promise<string>;
~~~~~~
src/node_modules/blockstack/lib/keys.d.ts:1:23 - error TS2688: Cannot find type definition file for 'node'.
1 /// <reference types="node" />
~~~~
src/node_modules/blockstack/lib/keys.d.ts:8:60 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
8 export declare function getEntropy(numberOfBytes: number): Buffer;
~~~~~~
src/node_modules/blockstack/lib/network.d.ts:1:23 - error TS7016: Could not find a declaration file for module 'bitcoinjs-lib'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/src/node_modules/bitcoinjs-lib/src/index.js' implicitly has an 'any' type.
Try `npm install @types/bitcoinjs-lib` if it exists or add a new declaration (.d.ts) file containing `declare module 'bitcoinjs-lib';`
1 import bitcoinjs from 'bitcoinjs-lib';
~~~~~~~~~~~~~~~
src/node_modules/blockstack/lib/network.d.ts:2:16 - error TS7016: Could not find a declaration file for module 'bn.js'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/src/node_modules/bn.js/lib/bn.js' implicitly has an 'any' type.
Try `npm install @types/bn.js` if it exists or add a new declaration (.d.ts) file containing `declare module 'bn.js';`
2 import BN from 'bn.js';
~~~~~~~
src/node_modules/blockstack/lib/operations/signers.d.ts:1:23 - error TS7016: Could not find a declaration file for module 'bitcoinjs-lib'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/src/node_modules/bitcoinjs-lib/src/index.js' implicitly has an 'any' type.
Try `npm install @types/bitcoinjs-lib` if it exists or add a new declaration (.d.ts) file containing `declare module 'bitcoinjs-lib';`
1 import bitcoinjs from 'bitcoinjs-lib';
~~~~~~~~~~~~~~~
src/node_modules/blockstack/lib/operations/skeletons.d.ts:1:21 - error TS7016: Could notfind a declaration file for module 'bitcoinjs-lib'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/src/node_modules/bitcoinjs-lib/src/index.js' implicitly has an 'any' type.
Try `npm install @types/bitcoinjs-lib` if it exists or add a new declaration (.d.ts) file containing `declare module 'bitcoinjs-lib';`
1 import bitcoin from 'bitcoinjs-lib';
~~~~~~~~~~~~~~~
src/node_modules/blockstack/lib/operations/skeletons.d.ts:2:16 - error TS7016: Could notfind a declaration file for module 'bn.js'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/src/node_modules/bn.js/lib/bn.js' implicitly has an 'any' type.
Try `npm install @types/bn.js` if it exists or add a new declaration (.d.ts) file containing `declare module 'bn.js';`
2 import BN from 'bn.js';
~~~~~~~
src/node_modules/blockstack/lib/operations/txbuild.d.ts:1:16 - error TS7016: Could not find a declaration file for module 'bn.js'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/src/node_modules/bn.js/lib/bn.js' implicitly has an 'any' type.
Try `npm install @types/bn.js` if it exists or add a new declaration (.d.ts) file containing `declare module 'bn.js';`
1 import BN from 'bn.js';
~~~~~~~
src/node_modules/blockstack/lib/operations/utils.d.ts:1:23 - error TS2688: Cannot find type definition file for 'node'.
1 /// <reference types="node" />
~~~~
src/node_modules/blockstack/lib/operations/utils.d.ts:2:23 - error TS7016: Could not find a declaration file for module 'bitcoinjs-lib'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/src/node_modules/bitcoinjs-lib/src/index.js' implicitly has an 'any' type.
Try `npm install @types/bitcoinjs-lib` if it exists or add a new declaration (.d.ts) file containing `declare module 'bitcoinjs-lib';`
2 import bitcoinjs from 'bitcoinjs-lib';
~~~~~~~~~~~~~~~
src/node_modules/blockstack/lib/operations/utils.d.ts:14:39 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
14 export declare function hash160(buff: Buffer): Buffer;
~~~~~~
src/node_modules/blockstack/lib/operations/utils.d.ts:14:48 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
14 export declare function hash160(buff: Buffer): Buffer;
~~~~~~
src/node_modules/blockstack/lib/operations/utils.d.ts:19:39 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
19 export declare function hash128(buff: Buffer): Buffer;
~~~~~~
src/node_modules/blockstack/lib/operations/utils.d.ts:19:48 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
19 export declare function hash128(buff: Buffer): Buffer;
~~~~~~
src/node_modules/blockstack/lib/public.d.ts:10:29 - error TS7016: Could not find a declaration file for module 'jsontokens'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/src/node_modules/jsontokens/lib/index.js' implicitly has an 'any' type.
Try `npm install @types/jsontokens` if it exists or add a new declaration (.d.ts) filecontaining `declare module 'jsontokens';`
10 export { decodeToken } from 'jsontokens';
~~~~~~~~~~~~
src/node_modules/blockstack/lib/storage/index.d.ts:1:23 - error TS2688: Cannot find typedefinition file for 'node'.
1 /// <reference types="node" />
~~~~
src/node_modules/blockstack/lib/storage/index.d.ts:51:58 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
51 export declare function encryptContent(content: string | Buffer, options?: {
~~~~~~
src/node_modules/blockstack/lib/storage/index.d.ts:69:36 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
69 }, caller?: UserSession): string | Buffer;
~~~~~~
src/node_modules/blockstack/lib/storage/index.d.ts:126:65 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
126 export declare function putFile(path: string, content: string | Buffer, options?: PutFileOptions, caller?: UserSession): Promise<string>;
~~~~~~
src/node_modules/blockstack/lib/utils.d.ts:1:24 - error TS7016: Could not find a declaration file for module 'bitcoinjs-lib'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/src/node_modules/bitcoinjs-lib/src/index.js' implicitly has an 'any' type.
Try `npm install @types/bitcoinjs-lib` if it exists or add a new declaration (.d.ts) file containing `declare module 'bitcoinjs-lib';`
1 import { ECPair } from 'bitcoinjs-lib';
~~~~~~~~~~~~~~~
src/node_modules/blockstack/lib/wallet.d.ts:1:23 - error TS2688: Cannot find type definition file for 'node'.
1 /// <reference types="node" />
~~~~
src/node_modules/blockstack/lib/wallet.d.ts:2:23 - error TS7016: Could not find a declaration file for module 'bip32'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/src/node_modules/bip32/index.js' implicitly has an 'any' type.
Try `npm install @types/bip32` if it exists or add a new declaration (.d.ts) file containing `declare module 'bip32';`
2 import { BIP32 } from 'bip32';
~~~~~~~
src/node_modules/blockstack/lib/wallet.d.ts:32:33 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
32 static fromSeedBuffer(seed: Buffer): BlockstackWallet;
~~~~~~
Found 37 errors.
eleanor@demo-machine:~/workbench/opendar/opendar/public/javascripts/typescript$
After installing each dependency, I still get the following 9 errors:
eleanor@demo-machine:~/workbench/opendar/opendar/public/javascripts/typescript$ tsc
node_modules/blockstack/lib/encryption/ec.d.ts:2:8 - error TS1192: Module '"/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/node_modules/@types/bn.js/index"' has no default export.
2 import BN from 'bn.js';
~~
node_modules/blockstack/lib/network.d.ts:1:8 - error TS1192: Module '"/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/node_modules/@types/bitcoinjs-lib/index"' has no default export.
1 import bitcoinjs from 'bitcoinjs-lib';
~~~~~~~~~
node_modules/blockstack/lib/network.d.ts:2:8 - error TS1192: Module '"/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/node_modules/@types/bn.js/index"' hasno default export.
2 import BN from 'bn.js';
~~
node_modules/blockstack/lib/operations/signers.d.ts:1:8 - error TS1192: Module '"/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/node_modules/@types/bitcoinjs-lib/index"' has no default export.
1 import bitcoinjs from 'bitcoinjs-lib';
~~~~~~~~~
node_modules/blockstack/lib/operations/skeletons.d.ts:1:8 - error TS1192: Module '"/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/node_modules/@types/bitcoinjs-lib/index"' has no default export.
1 import bitcoin from 'bitcoinjs-lib';
~~~~~~~
node_modules/blockstack/lib/operations/skeletons.d.ts:2:8 - error TS1192: Module '"/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/node_modules/@types/bn.js/index"' has no default export.
2 import BN from 'bn.js';
~~
node_modules/blockstack/lib/operations/txbuild.d.ts:1:8 - error TS1192: Module '"/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/node_modules/@types/bn.js/index"' has no default export.
1 import BN from 'bn.js';
~~
node_modules/blockstack/lib/operations/utils.d.ts:2:8 - error TS1192: Module '"/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/node_modules/@types/bitcoinjs-lib/index"' has no default export.
2 import bitcoinjs from 'bitcoinjs-lib';
~~~~~~~~~
node_modules/blockstack/lib/public.d.ts:10:29 - error TS7016: Could not find a declaration file for module 'jsontokens'. '/home/eleanor/workbench/opendar/opendar/public/javascripts/typescript/node_modules/jsontokens/lib/index.js' implicitly has an 'any' type.
Try `npm install @types/jsontokens` if it exists or add a new declaration (.d.ts) filecontaining `declare module 'jsontokens';`
10 export { decodeToken } from 'jsontokens';
~~~~~~~~~~~~
Found 9 errors.
eleanor@demo-machine:~/workbench/opendar/opendar/public/javascripts/typescript$
How does one build a TypeScript project with blockstack?Preformatted text