LedgerHQ / wallet-api

Wallet API Monorepo
https://wallet.api.live.ledger.com/
39 stars 17 forks source link

Investigate and fix Vercel deployment build errors #92

Closed chabroA closed 1 year ago

chabroA commented 1 year ago

Vercel build job is failing often. It builds fine locally. This is not consistent since when re-deploying on Vercel UI, the build proceeds fine.

cf. this deployment for example (logs copy pasted bellow for reference)

Investigate and fix this building issue

Logs ``` [10:15:48.028] Cloning github.com/LedgerHQ/wallet-api (Branch: added-wallet-info, Commit: aa8b569) [10:15:48.422] Cloning completed: 394.049ms [10:15:48.422] Running "npx turbo-ignore" [10:15:48.506] Warning: Detected "engines": { "node": ">=16.0.0" } in your `package.json` that will automatically upgrade when a new major Node.js Version is released. Learn More: http://vercel.link/node-version [10:15:49.563] npm WARN exec The following package was not found and will be installed: turbo-ignore@0.5.0 [10:15:49.801] ≫ Using Turborepo to determine if this project is affected by the commit... [10:15:49.801] [10:15:49.802] ≫ inferred "wallet-api" as workspace from "package.json" [10:15:49.803] ≫ no previous deployments found for "wallet-api" on branch "added-wallet-info". [10:15:49.804] [10:15:49.804] ✅ proceeding with deployment [10:15:51.728] Restored build cache [10:15:51.767] Running "vercel build" [10:15:52.230] Vercel CLI 28.11.1 [10:15:52.848] Warning: Detected "engines": { "node": ">=16.0.0" } in your `package.json` that will automatically upgrade when a new major Node.js Version is released. Learn More: http://vercel.link/node-version [10:15:52.887] Detected `pnpm-lock.yaml` generated by pnpm 7... [10:15:52.887] Running "install" command: `pnpm i`... [10:15:53.414] Scope: all 10 workspace projects [10:15:53.625] Lockfile is up to date, resolution step is skipped [10:15:53.884] Already up to date [10:15:54.781] [10:15:54.782] . prepare$ husky install [10:15:54.861] . prepare: husky - Git hooks installed [10:15:54.865] . prepare: Done [10:15:54.868] Done in 1.9s [10:15:55.402] [10:15:55.402] > wallet-api@0.0.0 build /vercel/path0 [10:15:55.403] > turbo run build [10:15:55.403] [10:15:55.539] • Packages in scope: @ledgerhq/wallet-api-client, @ledgerhq/wallet-api-core, @ledgerhq/wallet-api-manifest-validator, @ledgerhq/wallet-api-manifest-validator-cli, @ledgerhq/wallet-api-server, @ledgerhq/wallet-api-simulator, eslint-config-custom, jest-shared-config, wallet-api-website [10:15:55.539] • Running build in 9 packages [10:15:55.540] • Remote caching enabled [10:15:55.826] @ledgerhq/wallet-api-core:build: cache miss, executing a552bcd288e1c4f8 [10:15:55.883] wallet-api-website:build: cache hit, replaying output e354bc2b1d4d1ec2 [10:15:55.883] wallet-api-website:build: [10:15:55.884] wallet-api-website:build: > wallet-api-website@0.0.0 build /vercel/path0/website [10:15:55.884] wallet-api-website:build: > docusaurus build [10:15:55.884] wallet-api-website:build: [10:15:55.884] wallet-api-website:build: [INFO] [en] Creating an optimized production build... [10:15:55.884] wallet-api-website:build: Loaded plugin typedoc-plugin-rename-defaults [10:15:55.884] wallet-api-website:build: ../packages/client/src/TransportWalletAPI.ts:5:8 - error TS2307: Cannot find module '@ledgerhq/wallet-api-core' or its corresponding type declarations. [10:15:55.884] wallet-api-website:build: [10:15:55.885] wallet-api-website:build: 5 } from "@ledgerhq/wallet-api-core"; [10:15:55.885] wallet-api-website:build: ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [10:15:55.885] wallet-api-website:build: [10:15:55.885] wallet-api-website:build: ../packages/client/src/TransportWalletAPI.ts:58:55 - error TS2339: Property 'request' does not exist on type 'WalletAPIClient'. [10:15:55.886] wallet-api-website:build: [10:15:55.886] wallet-api-website:build: 58 const deviceExchangeResult = await this.walletApi.request( [10:15:55.886] wallet-api-website:build: ~~~~~~~ [10:15:55.886] wallet-api-website:build: [10:15:55.886] wallet-api-website:build: ../packages/client/src/TransportWalletAPI.ts:80:52 - error TS2339: Property 'request' does not exist on type 'WalletAPIClient'. [10:15:55.886] wallet-api-website:build: [10:15:55.886] wallet-api-website:build: 80 const deviceCloseResult = await this.walletApi.request("device.close", { [10:15:55.887] wallet-api-website:build: ~~~~~~~ [10:15:55.887] wallet-api-website:build: [10:15:55.888] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:29:8 - error TS2307: Cannot find module '@ledgerhq/wallet-api-core' or its corresponding type declarations. [10:15:55.888] wallet-api-website:build: [10:15:55.888] wallet-api-website:build: 29 } from "@ledgerhq/wallet-api-core"; [10:15:55.888] wallet-api-website:build: ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [10:15:55.888] wallet-api-website:build: [10:15:55.888] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:67:12 - error TS2339: Property 'requestHandlers' does not exist on type 'WalletAPIClient'. [10:15:55.888] wallet-api-website:build: [10:15:55.888] wallet-api-website:build: 67 this.requestHandlers[request.method as keyof typeof this.requestHandlers]; [10:15:55.889] wallet-api-website:build: ~~~~~~~~~~~~~~~ [10:15:55.889] wallet-api-website:build: [10:15:55.889] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:67:64 - error TS2339: Property 'requestHandlers' does not exist on type 'WalletAPIClient'. [10:15:55.889] wallet-api-website:build: [10:15:55.889] wallet-api-website:build: 67 this.requestHandlers[request.method as keyof typeof this.requestHandlers]; [10:15:55.889] wallet-api-website:build: ~~~~~~~~~~~~~~~ [10:15:55.889] wallet-api-website:build: [10:15:55.889] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:93:46 - error TS2551: Property 'request' does not exist on type 'WalletAPIClient'. Did you mean 'onRequest'? [10:15:55.890] wallet-api-website:build: [10:15:55.890] wallet-api-website:build: 93 const transactionSignResult = await this.request("transaction.sign", { [10:15:55.890] wallet-api-website:build: ~~~~~~~ [10:15:55.890] wallet-api-website:build: [10:15:55.890] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:64:13 [10:15:55.890] wallet-api-website:build: 64 protected onRequest(request: RpcRequest) { [10:15:55.891] wallet-api-website:build: ~~~~~~~~~ [10:15:55.891] wallet-api-website:build: 'onRequest' is declared here. [10:15:55.891] wallet-api-website:build: [10:15:55.891] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:120:46 - error TS2551: Property 'request' does not exist on type 'WalletAPIClient'. Did you mean 'onRequest'? [10:15:55.891] wallet-api-website:build: [10:15:55.891] wallet-api-website:build: 120 const transactionSignResult = await this.request( [10:15:55.891] wallet-api-website:build: ~~~~~~~ [10:15:55.891] wallet-api-website:build: [10:15:55.891] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:64:13 [10:15:55.892] wallet-api-website:build: 64 protected onRequest(request: RpcRequest) { [10:15:55.892] wallet-api-website:build: ~~~~~~~~~ [10:15:55.892] wallet-api-website:build: 'onRequest' is declared here. [10:15:55.892] wallet-api-website:build: [10:15:55.892] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:147:42 - error TS2551: Property 'request' does not exist on type 'WalletAPIClient'. Did you mean 'onRequest'? [10:15:55.892] wallet-api-website:build: [10:15:55.892] wallet-api-website:build: 147 const messageSignResult = await this.request("message.sign", { [10:15:55.892] wallet-api-website:build: ~~~~~~~ [10:15:55.893] wallet-api-website:build: [10:15:55.893] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:64:13 [10:15:55.893] wallet-api-website:build: 64 protected onRequest(request: RpcRequest) { [10:15:55.893] wallet-api-website:build: ~~~~~~~~~ [10:15:55.893] wallet-api-website:build: 'onRequest' is declared here. [10:15:55.893] wallet-api-website:build: [10:15:55.893] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:171:43 - error TS2551: Property 'request' does not exist on type 'WalletAPIClient'. Did you mean 'onRequest'? [10:15:55.893] wallet-api-website:build: [10:15:55.893] wallet-api-website:build: 171 const listAccountsResult = await this.request("account.list", { [10:15:55.894] wallet-api-website:build: ~~~~~~~ [10:15:55.894] wallet-api-website:build: [10:15:55.894] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:64:13 [10:15:55.894] wallet-api-website:build: 64 protected onRequest(request: RpcRequest) { [10:15:55.894] wallet-api-website:build: ~~~~~~~~~ [10:15:55.894] wallet-api-website:build: 'onRequest' is declared here. [10:15:55.894] wallet-api-website:build: [10:15:55.894] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:194:46 - error TS2551: Property 'request' does not exist on type 'WalletAPIClient'. Did you mean 'onRequest'? [10:15:55.894] wallet-api-website:build: [10:15:55.894] wallet-api-website:build: 194 const requestAccountsResult = await this.request("account.request", { [10:15:55.894] wallet-api-website:build: ~~~~~~~ [10:15:55.894] wallet-api-website:build: [10:15:55.894] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:64:13 [10:15:55.894] wallet-api-website:build: 64 protected onRequest(request: RpcRequest) { [10:15:55.894] wallet-api-website:build: ~~~~~~~~~ [10:15:55.895] wallet-api-website:build: 'onRequest' is declared here. [10:15:55.895] wallet-api-website:build: [10:15:55.895] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:213:46 - error TS2551: Property 'request' does not exist on type 'WalletAPIClient'. Did you mean 'onRequest'? [10:15:55.895] wallet-api-website:build: [10:15:55.895] wallet-api-website:build: 213 const receiveAccountsResult = await this.request("account.receive", { [10:15:55.895] wallet-api-website:build: ~~~~~~~ [10:15:55.895] wallet-api-website:build: [10:15:55.895] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:64:13 [10:15:55.895] wallet-api-website:build: 64 protected onRequest(request: RpcRequest) { [10:15:55.895] wallet-api-website:build: ~~~~~~~~~ [10:15:55.895] wallet-api-website:build: 'onRequest' is declared here. [10:15:55.895] wallet-api-website:build: [10:15:55.895] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:240:45 - error TS2551: Property 'request' does not exist on type 'WalletAPIClient'. Did you mean 'onRequest'? [10:15:55.895] wallet-api-website:build: [10:15:55.896] wallet-api-website:build: 240 const listCurrenciesResult = await this.request("currency.list", { [10:15:55.896] wallet-api-website:build: ~~~~~~~ [10:15:55.896] wallet-api-website:build: [10:15:55.896] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:64:13 [10:15:55.896] wallet-api-website:build: 64 protected onRequest(request: RpcRequest) { [10:15:55.896] wallet-api-website:build: ~~~~~~~~~ [10:15:55.897] wallet-api-website:build: 'onRequest' is declared here. [10:15:55.897] wallet-api-website:build: [10:15:55.897] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:260:46 - error TS2551: Property 'request' does not exist on type 'WalletAPIClient'. Did you mean 'onRequest'? [10:15:55.897] wallet-api-website:build: [10:15:55.897] wallet-api-website:build: 260 const deviceTransportResult = await this.request( [10:15:55.897] wallet-api-website:build: ~~~~~~~ [10:15:55.897] wallet-api-website:build: [10:15:55.897] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:64:13 [10:15:55.897] wallet-api-website:build: 64 protected onRequest(request: RpcRequest) { [10:15:55.897] wallet-api-website:build: ~~~~~~~~~ [10:15:55.897] wallet-api-website:build: 'onRequest' is declared here. [10:15:55.898] wallet-api-website:build: [10:15:55.898] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:284:49 - error TS2551: Property 'request' does not exist on type 'WalletAPIClient'. Did you mean 'onRequest'? [10:15:55.898] wallet-api-website:build: [10:15:55.898] wallet-api-website:build: 284 const walletCapabilitiesResult = await this.request( [10:15:55.898] wallet-api-website:build: ~~~~~~~ [10:15:55.898] wallet-api-website:build: [10:15:55.898] wallet-api-website:build: ../packages/client/src/WalletAPIClient.ts:64:13 [10:15:55.898] wallet-api-website:build: 64 protected onRequest(request: RpcRequest) { [10:15:55.898] wallet-api-website:build: ~~~~~~~~~ [10:15:55.898] wallet-api-website:build: 'onRequest' is declared here. [10:15:55.898] wallet-api-website:build: [10:15:55.899] wallet-api-website:build: ../packages/client/src/index.ts:4:15 - error TS2307: Cannot find module '@ledgerhq/wallet-api-core' or its corresponding type declarations. [10:15:55.899] wallet-api-website:build: [10:15:55.899] wallet-api-website:build: 4 export * from "@ledgerhq/wallet-api-core"; [10:15:55.899] wallet-api-website:build: ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [10:15:55.899] wallet-api-website:build: [10:15:55.899] wallet-api-website:build: ../packages/client/src/modules/Bitcoin.ts:1:38 - error TS2307: Cannot find module '@ledgerhq/wallet-api-core' or its corresponding type declarations. [10:15:55.899] wallet-api-website:build: [10:15:55.899] wallet-api-website:build: 1 import { schemaBitcoinGetXPub } from "@ledgerhq/wallet-api-core"; [10:15:55.899] wallet-api-website:build: ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [10:15:55.899] wallet-api-website:build: [10:15:55.899] wallet-api-website:build: ../packages/client/src/modules/Bitcoin.ts:19:45 - error TS2339: Property 'request' does not exist on type 'WalletAPIClient'. [10:15:55.899] wallet-api-website:build: [10:15:55.899] wallet-api-website:build: 19 const getXPupResult = await this.client.request("bitcoin.getXPub", { [10:15:55.900] wallet-api-website:build: ~~~~~~~ [10:15:55.900] wallet-api-website:build: [10:15:55.900] wallet-api-website:build: Loaded plugin typedoc-plugin-rename-defaults [10:15:55.900] wallet-api-website:build: warning The provided git remote "origin" was not valid. Source links will be broken. [10:15:55.900] wallet-api-website:build: Documentation generated at ./docs/reference/api/server [10:15:55.900] wallet-api-website:build: [info] [webpackbar] Compiling Client [10:15:55.900] wallet-api-website:build: [info] [webpackbar] Compiling Server [10:15:55.900] wallet-api-website:build: [success] [webpackbar] Client: Compiled successfully in 52.71s [10:15:55.900] wallet-api-website:build: [success] [webpackbar] Server: Compiled successfully in 56.79s [10:15:55.900] wallet-api-website:build: [SUCCESS] Generated static files in "build". [10:15:55.900] wallet-api-website:build: [INFO] Use `npm run serve` command to test your build locally. [10:15:56.318] @ledgerhq/wallet-api-core:build: [10:15:56.318] @ledgerhq/wallet-api-core:build: > @ledgerhq/wallet-api-core@0.11.0 build /vercel/path0/packages/core [10:15:56.318] @ledgerhq/wallet-api-core:build: > rm -rf lib/* lib-es/* && tsc -p prod.tsconfig.json && tsc -p prod-esm.tsconfig.json [10:15:56.318] @ledgerhq/wallet-api-core:build: [10:16:02.638] @ledgerhq/wallet-api-client:build: cache miss, executing 4eb41b7680382786 [10:16:03.145] @ledgerhq/wallet-api-client:build: [10:16:03.145] @ledgerhq/wallet-api-client:build: > @ledgerhq/wallet-api-client@0.11.1 build /vercel/path0/packages/client [10:16:03.145] @ledgerhq/wallet-api-client:build: > rm -rf lib/* lib-es/* && tsc -p prod.tsconfig.json && tsc -p prod-esm.tsconfig.json [10:16:03.145] @ledgerhq/wallet-api-client:build: [10:16:03.299] @ledgerhq/wallet-api-manifest-validator:build: cache miss, executing 6c45840d399e0f57 [10:16:03.322] @ledgerhq/wallet-api-server:build: cache miss, executing cae576abf679b4ef [10:16:04.041] @ledgerhq/wallet-api-manifest-validator:build: [10:16:04.041] @ledgerhq/wallet-api-manifest-validator:build: > @ledgerhq/wallet-api-manifest-validator@0.2.5 build /vercel/path0/packages/manifest-validator [10:16:04.042] @ledgerhq/wallet-api-manifest-validator:build: > rm -rf bin/* lib/* lib-es/* && tsc -p prod.tsconfig.json && tsc -p prod-esm.tsconfig.json [10:16:04.042] @ledgerhq/wallet-api-manifest-validator:build: [10:16:04.077] @ledgerhq/wallet-api-server:build: [10:16:04.077] @ledgerhq/wallet-api-server:build: > @ledgerhq/wallet-api-server@0.10.1 build /vercel/path0/packages/server [10:16:04.078] @ledgerhq/wallet-api-server:build: > rm -rf lib/* lib-es/* && tsc -p prod.tsconfig.json && tsc -p prod-esm.tsconfig.json [10:16:04.078] @ledgerhq/wallet-api-server:build: [10:16:10.393] @ledgerhq/wallet-api-manifest-validator-cli:build: cache miss, executing eabd006c87d02a41 [10:16:10.987] @ledgerhq/wallet-api-manifest-validator-cli:build: [10:16:10.988] @ledgerhq/wallet-api-manifest-validator-cli:build: > @ledgerhq/wallet-api-manifest-validator-cli@0.1.7 build /vercel/path0/packages/manifest-validator-cli [10:16:10.988] @ledgerhq/wallet-api-manifest-validator-cli:build: > rm -rf bin/* && tsc [10:16:10.988] @ledgerhq/wallet-api-manifest-validator-cli:build: [10:16:11.048] @ledgerhq/wallet-api-simulator:build: cache miss, executing e483ae8448bc7a88 [10:16:11.696] @ledgerhq/wallet-api-simulator:build: [10:16:11.696] @ledgerhq/wallet-api-simulator:build: > @ledgerhq/wallet-api-simulator@0.9.1 build /vercel/path0/packages/simulator [10:16:11.697] @ledgerhq/wallet-api-simulator:build: > rm -rf lib/* lib-es/* && tsc -p prod.tsconfig.json && tsc -p prod-esm.tsconfig.json [10:16:11.697] @ledgerhq/wallet-api-simulator:build: [10:16:15.739] [10:16:15.740] Tasks: 7 successful, 7 total [10:16:15.740] Cached: 1 cached, 7 total [10:16:15.740] Time: 20.321s [10:16:15.740] [10:16:16.147] Error: No Output Directory named "build" found after the Build completed. You can configure the Output Directory in your Project Settings. [10:16:16.149] Learn More: https://vercel.link/missing-public-directory ```
chabroA commented 1 year ago

FYI there are also TS build errors happening locally:

Screenshot 2023-01-18 at 17 48 16