diff --git a/.github/workflows/deploy-doc.yml b/.github/workflows/deploy-doc.yml new file mode 100644 index 0000000..a9f80b9 --- /dev/null +++ b/.github/workflows/deploy-doc.yml @@ -0,0 +1,41 @@ +name: Deploy API docs to GitHub Pages + +on: + release: + types: [published] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 + - name: Setup + uses: ./.github/actions/setup + - name: Generate API docs + run: yarn docs + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v3 + with: + path: docs + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index 27b2c71..abcf32e 100644 --- a/.gitignore +++ b/.gitignore @@ -79,6 +79,9 @@ android/keystores/debug.keystore # generated by bob lib/ +# generated by typedoc +docs/ + .env # React Native Codegen diff --git a/package.json b/package.json index 36d85ca..82ec0df 100644 --- a/package.json +++ b/package.json @@ -40,9 +40,10 @@ "test": "jest", "typecheck": "tsc", "lint": "eslint \"**/*.{js,ts,tsx}\"", - "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib", + "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib docs", "prepare": "node scripts/generate-version.js && bob build", - "release": "release-it" + "release": "release-it", + "docs": "typedoc" }, "keywords": [ "react-native", @@ -81,6 +82,7 @@ "react-native-builder-bob": "^0.30.2", "release-it": "^15.0.0", "turbo": "^1.10.7", + "typedoc": "^0.28.19", "typescript": "^5.2.2" }, "resolutions": { diff --git a/typedoc.json b/typedoc.json new file mode 100644 index 0000000..05a62e9 --- /dev/null +++ b/typedoc.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://typedoc.org/schema.json", + "entryPoints": ["src/index.tsx"], + "out": "docs", + "tsconfig": "tsconfig.json", + "readme": "README.md", + "name": "airwallex-payment-react-native", + "excludePrivate": true, + "excludeInternal": true, + "excludeExternals": true, + "includeVersion": true, + "hideGenerator": true, + "navigationLinks": { + "GitHub": "https://github.com/airwallex/airwallex-payment-react-native", + "npm": "https://www.npmjs.com/package/airwallex-payment-react-native" + } +} diff --git a/yarn.lock b/yarn.lock index 3257654..0309d25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1780,6 +1780,19 @@ __metadata: languageName: node linkType: hard +"@gerrit0/mini-shiki@npm:^3.23.0": + version: 3.23.0 + resolution: "@gerrit0/mini-shiki@npm:3.23.0" + dependencies: + "@shikijs/engine-oniguruma": ^3.23.0 + "@shikijs/langs": ^3.23.0 + "@shikijs/themes": ^3.23.0 + "@shikijs/types": ^3.23.0 + "@shikijs/vscode-textmate": ^10.0.2 + checksum: 197d54e0699f205ac9a7169bb3887c749bbc5d77a2bfc91ad4ace77ed6a1276feb281623713d2e6df5aed1946b1ff4cbacc1ed392d2a6d3e8abc8e381a75bb86 + languageName: node + linkType: hard + "@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0": version: 9.3.0 resolution: "@hapi/hoek@npm:9.3.0" @@ -2940,6 +2953,51 @@ __metadata: languageName: node linkType: hard +"@shikijs/engine-oniguruma@npm:^3.23.0": + version: 3.23.0 + resolution: "@shikijs/engine-oniguruma@npm:3.23.0" + dependencies: + "@shikijs/types": 3.23.0 + "@shikijs/vscode-textmate": ^10.0.2 + checksum: 5aa631ab41149241118262e28f2deb9d37c3384d32251ecef868cd71a03f5e6b85103c31ac331741ecb24734d20329487cba40a3af8bd22485b3f696770d6226 + languageName: node + linkType: hard + +"@shikijs/langs@npm:^3.23.0": + version: 3.23.0 + resolution: "@shikijs/langs@npm:3.23.0" + dependencies: + "@shikijs/types": 3.23.0 + checksum: 0b96f5c7c5760fad5f9be6250a9d2fcca4c9dc5f406c6c05bc620869b73467ab1bfd93e7c0ed7c0ad9d51e5b57238f73cfbcb5c6eb9ea064b4f38112dd490696 + languageName: node + linkType: hard + +"@shikijs/themes@npm:^3.23.0": + version: 3.23.0 + resolution: "@shikijs/themes@npm:3.23.0" + dependencies: + "@shikijs/types": 3.23.0 + checksum: 997ad314204386b59362c82004c43656af4d4190ee0811710f7bdce5b6387e30b449193fc6a3e0d1c72b0b09b1ec5a03d0aeb7edacb834bee133125edc2d714f + languageName: node + linkType: hard + +"@shikijs/types@npm:3.23.0, @shikijs/types@npm:^3.23.0": + version: 3.23.0 + resolution: "@shikijs/types@npm:3.23.0" + dependencies: + "@shikijs/vscode-textmate": ^10.0.2 + "@types/hast": ^3.0.4 + checksum: 261a2c0b815f640f89e8e312e3ed1044c8c693053ef2096966b5c682ff0fd0694099006e9b6c245971ada4bdb720f610ca393074f5e1ee74de6fc8b2b6f91ff2 + languageName: node + linkType: hard + +"@shikijs/vscode-textmate@npm:^10.0.2": + version: 10.0.2 + resolution: "@shikijs/vscode-textmate@npm:10.0.2" + checksum: e68f27a3dc1584d7414b8acafb9c177a2181eb0b06ef178d8609142f49d28d85fd10ab129affde40a45a7d9238997e457ce47931b3a3815980e2b98b2d26724c + languageName: node + linkType: hard + "@sideway/address@npm:^4.1.5": version: 4.1.5 resolution: "@sideway/address@npm:4.1.5" @@ -3082,6 +3140,15 @@ __metadata: languageName: node linkType: hard +"@types/hast@npm:^3.0.4": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" + dependencies: + "@types/unist": "*" + checksum: 7a973e8d16fcdf3936090fa2280f408fb2b6a4f13b42edeb5fbd614efe042b82eac68e298e556d50f6b4ad585a3a93c353e9c826feccdc77af59de8dd400d044 + languageName: node + linkType: hard + "@types/hoist-non-react-statics@npm:^3.3.1": version: 3.3.7 resolution: "@types/hoist-non-react-statics@npm:3.3.7" @@ -3195,6 +3262,13 @@ __metadata: languageName: node linkType: hard +"@types/unist@npm:*": + version: 3.0.3 + resolution: "@types/unist@npm:3.0.3" + checksum: 96e6453da9e075aaef1dc22482463898198acdc1eeb99b465e65e34303e2ec1e3b1ed4469a9118275ec284dc98019f63c3f5d49422f0e4ac707e5ab90fb3b71a + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 21.0.3 resolution: "@types/yargs-parser@npm:21.0.3" @@ -3502,6 +3576,7 @@ __metadata: react-native-builder-bob: ^0.30.2 release-it: ^15.0.0 turbo: ^1.10.7 + typedoc: ^0.28.19 typescript: ^5.2.2 peerDependencies: react: "*" @@ -4016,6 +4091,13 @@ __metadata: languageName: node linkType: hard +"balanced-match@npm:^4.0.2": + version: 4.0.4 + resolution: "balanced-match@npm:4.0.4" + checksum: fb07bb66a0959c2843fc055838047e2a95ccebb837c519614afb067ebfdf2fa967ca8d712c35ced07f2cd26fc6f07964230b094891315ad74f11eba3d53178a0 + languageName: node + linkType: hard + "base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -4130,6 +4212,15 @@ __metadata: languageName: node linkType: hard +"brace-expansion@npm:^5.0.5": + version: 5.0.6 + resolution: "brace-expansion@npm:5.0.6" + dependencies: + balanced-match: ^4.0.2 + checksum: b5a0e54a5d5f66d0acb88f297e1f3e74732f9c8a35ab6c87b96bd60f6e390697f099b747dd053b9017bd1a38225ff3f60632de09a723a99f2144740b7fbda66b + languageName: node + linkType: hard + "braces@npm:^3.0.3": version: 3.0.3 resolution: "braces@npm:3.0.3" @@ -5592,6 +5683,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -8872,6 +8970,15 @@ __metadata: languageName: node linkType: hard +"linkify-it@npm:^5.0.1": + version: 5.0.1 + resolution: "linkify-it@npm:5.0.1" + dependencies: + uc.micro: ^2.0.0 + checksum: bd5b4ebaca5495d5c2f41d284f0c8c42bffaa9e38223628f6b17038256302e4cba1e5161cf3e336a13963430cb2b37eca5ad0a595195bb5e54d051d73539210f + languageName: node + linkType: hard + "load-json-file@npm:^4.0.0": version: 4.0.0 resolution: "load-json-file@npm:4.0.0" @@ -9131,6 +9238,13 @@ __metadata: languageName: node linkType: hard +"lunr@npm:^2.3.9": + version: 2.3.9 + resolution: "lunr@npm:2.3.9" + checksum: 176719e24fcce7d3cf1baccce9dd5633cd8bdc1f41ebe6a180112e5ee99d80373fe2454f5d4624d437e5a8319698ca6837b9950566e15d2cae5f2a543a3db4b8 + languageName: node + linkType: hard + "macos-release@npm:^3.1.0": version: 3.4.0 resolution: "macos-release@npm:3.4.0" @@ -9196,6 +9310,22 @@ __metadata: languageName: node linkType: hard +"markdown-it@npm:^14.1.1": + version: 14.2.0 + resolution: "markdown-it@npm:14.2.0" + dependencies: + argparse: ^2.0.1 + entities: ^4.4.0 + linkify-it: ^5.0.1 + mdurl: ^2.0.0 + punycode.js: ^2.3.1 + uc.micro: ^2.1.0 + bin: + markdown-it: bin/markdown-it.mjs + checksum: 693269ccf502a461f13ffed54f6d47c05e1a2ceb0c31bfb0edcba5e54cb1e6000444b712fab1857493e43cfdded5d5d91f05dcb63a4db7a6990788340266b749 + languageName: node + linkType: hard + "marky@npm:^1.2.2": version: 1.3.0 resolution: "marky@npm:1.3.0" @@ -9210,6 +9340,13 @@ __metadata: languageName: node linkType: hard +"mdurl@npm:^2.0.0": + version: 2.0.0 + resolution: "mdurl@npm:2.0.0" + checksum: 880bc289ef668df0bb34c5b2b5aaa7b6ea755052108cdaf4a5e5968ad01cf27e74927334acc9ebcc50a8628b65272ae6b1fd51fae1330c130e261c0466e1a3b2 + languageName: node + linkType: hard + "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -9829,6 +9966,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^10.2.5": + version: 10.2.5 + resolution: "minimatch@npm:10.2.5" + dependencies: + brace-expansion: ^5.0.5 + checksum: 000423875fecbc7da1d74bf63c9081363a71291ef2588c376c45647ac004582cb5bc8cc09ef84420b26bfb490f4d0818d328e78569c6228e20d90271283f73ba + languageName: node + linkType: hard + "minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -11008,6 +11154,13 @@ __metadata: languageName: node linkType: hard +"punycode.js@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode.js@npm:2.3.1" + checksum: 13466d7ed5e8dacdab8c4cc03837e7dd14218a59a40eb14a837f1f53ca396e18ef2c4ee6d7766b8ed2fc391d6a3ac489eebf2de83b3596f5a54e86df4a251b72 + languageName: node + linkType: hard + "punycode@npm:^2.1.0": version: 2.3.1 resolution: "punycode@npm:2.3.1" @@ -13051,6 +13204,23 @@ __metadata: languageName: node linkType: hard +"typedoc@npm:^0.28.19": + version: 0.28.19 + resolution: "typedoc@npm:0.28.19" + dependencies: + "@gerrit0/mini-shiki": ^3.23.0 + lunr: ^2.3.9 + markdown-it: ^14.1.1 + minimatch: ^10.2.5 + yaml: ^2.8.3 + peerDependencies: + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x + bin: + typedoc: bin/typedoc + checksum: 2c5f8534567726d9ff89e5b9faeef08dbbc5411043b9f9237570ee7f21ebc8b45579ed0387845d1e95ab576b2bf421ceb0f56419a825f01664eec09b167d73d2 + languageName: node + linkType: hard + "typescript@npm:^4.6.4 || ^5.2.2, typescript@npm:^5.2.2": version: 5.8.3 resolution: "typescript@npm:5.8.3" @@ -13071,6 +13241,13 @@ __metadata: languageName: node linkType: hard +"uc.micro@npm:^2.0.0, uc.micro@npm:^2.1.0": + version: 2.1.0 + resolution: "uc.micro@npm:2.1.0" + checksum: 37197358242eb9afe367502d4638ac8c5838b78792ab218eafe48287b0ed28aaca268ec0392cc5729f6c90266744de32c06ae938549aee041fc93b0f9672d6b2 + languageName: node + linkType: hard + "uglify-js@npm:^3.1.4": version: 3.19.3 resolution: "uglify-js@npm:3.19.3" @@ -13650,6 +13827,15 @@ __metadata: languageName: node linkType: hard +"yaml@npm:^2.8.3": + version: 2.9.0 + resolution: "yaml@npm:2.9.0" + bin: + yaml: bin.mjs + checksum: f0f74b349c126bb9acf649be1e7efaec5869b1567bdc047e43b176bcdd7730a9bc7ab8fc9c6b1c358e611fab0fe0a0d8933393f1af383a7dc0b4755a1d5f31f9 + languageName: node + linkType: hard + "yargs-parser@npm:21.1.1, yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1"