Kit SDK - #179
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings. WalkthroughAdds a new JavaScript Kit client package (code, config, tests, docs), updates CI to build/test the Kit and bump Node versions in CI, introduces a deploy workflow to publish the Kit and deploy docs to Vercel, and expands file-filtering to include Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant User
participant GH as "GitHub Actions\n(deploy-js-kit-client)"
participant Repo as "GitHub Repo"
participant NPM as "npm Registry"
participant Vercel as "Vercel"
Note over GH: Deploy workflow (manual trigger with inputs)
User->>GH: trigger workflow
GH->>Repo: checkout code
GH->>GH: load env, setup Node, install deps (clients/js-kit)
GH->>GH: build client (pnpm build)
alt version bump requested
GH->>GH: compute new version (pnpm version)
GH->>Repo: commit & tag new version
end
GH->>NPM: set auth & publish package (with tag)
opt create_release
GH->>Repo: create GitHub release
end
Note over GH,Vercel: docs deployment (post-publish)
GH->>Vercel: deploy docs (uses VERCEL_* secrets)
Vercel-->>GH: deploy status / URL
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes 🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 7
🤖 Fix all issues with AI Agents
In @clients/js-kit/package.json:
- Line 23: The package.json contains a duplicate declaration of the dependency
"@solana-program/token" in both devDependencies and dependencies; decide whether
it is needed at runtime or only for tests and remove the duplicate entry
accordingly — if it's only for testing keep it in devDependencies and delete the
entry under dependencies, otherwise keep it in dependencies and delete the
devDependencies entry; update the package.json so "@solana-program/token"
appears only once in the appropriate section and run a quick install to verify
no other tooling warnings.
In @clients/js-kit/package/package.json:
- Around line 1-33: The package.json in this diff contains incorrect metadata
for the package (fields like "name", "repository.url", "bugs.url", and
"homepage" reference @solana-program/token and its repo) instead of the
mpl-token-metadata-kit values; update the "name" to
"@metaplex-foundation/mpl-token-metadata-kit", correct "repository.url",
"bugs.url", and "homepage" to the proper Metaplex repo/issue URLs and ensure
"publishConfig" and "exports"/"types" reflect this package's build outputs, or
if this file was an accidental copy, remove this duplicate package.json under
the package/ subdirectory and keep only the canonical
clients/js-kit/package.json — confirm which file should remain and apply changes
accordingly.
In @clients/js-kit/package/README.md:
- Line 3: The README line "A generated JavaScript library for the Token
program." uses the wrong program name; update the README.md description to read
"A generated JavaScript library for the Token Metadata program." so the
documentation correctly reflects this client’s target program.
- Around line 24-25: The README contains an incorrect directory path: update the
command string "cd clients/js" to the correct "cd clients/js-kit" so
instructions in clients/js-kit/README.md point to the actual directory; locate
the README.md entry with the line containing the cd command and replace the
target directory accordingly.
In @clients/js-kit/README.md:
- Around line 7-18: The README contains contradictory status statements: the
earlier bullet "Create, compile, sign, and send transactions using @solana/kit
v5" conflicts with the later note "Skip transaction sending (not yet
implemented)". Decide which is accurate and make the README consistent by
updating either the initial status bullet or the later note so both reflect the
true behavior; specifically edit the sentences mentioning "Create, compile,
sign, and send transactions using @solana/kit v5" and "Skip transaction sending
(not yet implemented)" to be consistent, and optionally add a brief clarifying
note about the remaining "Attempt to debit an account" simulation/signing issue
if transaction sending is partially implemented.
In @clients/js-kit/SETUP.md:
- Line 18: Update the SETUP.md entry to remove or clarify the outdated "Stub
implementation of `@solana/kit`" reference: edit the line that mentions
`src/kit/index.ts` and either delete the stub description or change it to
indicate that the project now uses the real `@solana/kit` v5.0.0 (e.g., note
that `src/kit/index.ts` is deprecated/kept for compatibility), and ensure the
paragraph that currently states "now uses the real `@solana/kit` v5.0.0 package"
is consistent with the revised line so readers are not confused.
- Around line 84-86: The SETUP.md references an updated CLAUDE.md that isn't
actually changed in this PR; either add the corresponding edits to CLAUDE.md
(update wording to state js-kit uses @solana/kit not Umi and mark WIP with
runnable tests) or remove the sentence in SETUP.md that claims CLAUDE.md was
updated—update the document(s) accordingly and ensure the commit includes the
modified CLAUDE.md if you choose to keep the reference.
📜 Review details
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (166)
clients/js-kit/package-lock.jsonis excluded by!**/package-lock.jsonclients/js-kit/src/generated/accounts/collectionAuthorityRecord.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/deprecatedMasterEditionV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/edition.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/editionMarker.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/editionMarkerV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/holderDelegateRecord.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/index.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/masterEdition.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/metadata.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/metadataDelegateRecord.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/tokenOwnedEscrow.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/tokenRecord.tsis excluded by!**/generated/**clients/js-kit/src/generated/accounts/useAuthorityRecord.tsis excluded by!**/generated/**clients/js-kit/src/generated/errors/index.tsis excluded by!**/generated/**clients/js-kit/src/generated/errors/mplTokenMetadata.tsis excluded by!**/generated/**clients/js-kit/src/generated/index.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/approveCollectionAuthority.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/approveUseAuthority.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/bubblegumSetCollectionSize.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/burnEditionNft.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/burnNft.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/burnV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/closeAccounts.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/closeEscrowAccount.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/collect.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/convertMasterEditionV1ToV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/createEscrowAccount.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/createMasterEditionV3.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/createMetadataAccountV3.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/createV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateAuthorityItemV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateCollectionItemV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateCollectionV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateDataItemV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateDataV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateLockedTransferV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegatePrintDelegateV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateProgrammableConfigItemV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateProgrammableConfigV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateSaleV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateStakingV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateStandardV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateTransferV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/delegateUtilityV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/deprecatedMintNewEditionFromMasterEditionViaPrintingToken.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/freezeDelegatedAccount.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/index.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/lockV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/migrate.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/mintNewEditionFromMasterEditionViaToken.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/mintNewEditionFromMasterEditionViaVaultProxy.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/mintV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/printV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/printV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/puffMetadata.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/removeCreatorVerification.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/resize.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeAuthorityItemV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeCollectionAuthority.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeCollectionItemV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeCollectionV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeDataItemV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeDataV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeLockedTransferV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeMigrationV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokePrintDelegateV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeProgrammableConfigItemV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeProgrammableConfigV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeSaleV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeStakingV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeStandardV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeTransferV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeUseAuthority.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/revokeUtilityV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/setAndVerifyCollection.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/setAndVerifySizedCollectionItem.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/setCollectionSize.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/setTokenStandard.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/signMetadata.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/thawDelegatedAccount.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/transferOutOfEscrow.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/transferV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/unlockV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/unverifyCollection.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/unverifyCollectionV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/unverifyCreatorV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/unverifySizedCollectionItem.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/updateAsAuthorityItemDelegateV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/updateAsCollectionDelegateV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/updateAsCollectionItemDelegateV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/updateAsDataDelegateV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/updateAsDataItemDelegateV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/updateAsProgrammableConfigDelegateV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/updateAsProgrammableConfigItemDelegateV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/updateAsUpdateAuthorityV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/updateMetadataAccountV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/updatePrimarySaleHappenedViaToken.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/updateV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/useV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/utilize.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/verifyCollection.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/verifyCollectionV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/verifyCreatorV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/instructions/verifySizedCollectionItem.tsis excluded by!**/generated/**clients/js-kit/src/generated/pdas/collectionAuthorityRecord.tsis excluded by!**/generated/**clients/js-kit/src/generated/pdas/deprecatedMasterEditionV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/pdas/editionMarker.tsis excluded by!**/generated/**clients/js-kit/src/generated/pdas/editionMarkerV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/pdas/holderDelegateRecord.tsis excluded by!**/generated/**clients/js-kit/src/generated/pdas/index.tsis excluded by!**/generated/**clients/js-kit/src/generated/pdas/masterEdition.tsis excluded by!**/generated/**clients/js-kit/src/generated/pdas/metadata.tsis excluded by!**/generated/**clients/js-kit/src/generated/pdas/metadataDelegateRecord.tsis excluded by!**/generated/**clients/js-kit/src/generated/pdas/tokenRecord.tsis excluded by!**/generated/**clients/js-kit/src/generated/pdas/useAuthorityRecord.tsis excluded by!**/generated/**clients/js-kit/src/generated/programs/index.tsis excluded by!**/generated/**clients/js-kit/src/generated/programs/mplTokenMetadata.tsis excluded by!**/generated/**clients/js-kit/src/generated/shared/index.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/authorityType.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/authorizationData.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/burnArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/collection.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/collectionDetails.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/collectionDetailsToggle.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/collectionToggle.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/createArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/creator.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/data.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/dataV2.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/delegateArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/escrowAuthority.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/holderDelegateRole.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/index.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/key.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/lockArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/metadataDelegateRole.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/migrationType.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/mintArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/mintNewEditionFromMasterEditionViaTokenArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/payload.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/payloadKey.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/payloadType.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/printArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/printSupply.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/programmableConfig.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/proofInfo.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/reservation.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/reservationV1.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/revokeArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/ruleSetToggle.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/seedsVec.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/setCollectionSizeArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/tokenDelegateRole.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/tokenStandard.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/tokenState.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/transferArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/unlockArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/updateArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/useArgs.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/useMethod.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/uses.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/usesToggle.tsis excluded by!**/generated/**clients/js-kit/src/generated/types/verificationArgs.tsis excluded by!**/generated/**clients/js/src/generated/instructions/deprecatedMintNewEditionFromMasterEditionViaPrintingToken.tsis excluded by!**/generated/**pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (78)
.github/file-filters.ymlclients/js-kit/.prettierrc.jsonclients/js-kit/README.mdclients/js-kit/SETUP.mdclients/js-kit/package.jsonclients/js-kit/package/README.mdclients/js-kit/package/package.jsonclients/js-kit/src/hooked/createHelpers.tsclients/js-kit/src/hooked/digitalAsset.tsclients/js-kit/src/hooked/digitalAssetWithToken.tsclients/js-kit/src/hooked/holderDelegateRoleSeed.tsclients/js-kit/src/hooked/index.tsclients/js-kit/src/hooked/metadataDelegateRoleSeed.tsclients/js-kit/src/hooked/pdas.tsclients/js-kit/src/hooked/resolvers.tsclients/js-kit/src/index.tsclients/js-kit/test/_ava-setup.jsclients/js-kit/test/_setup.tsclients/js-kit/test/_transaction.tsclients/js-kit/test/approveCollectionAuthority.test.tsclients/js-kit/test/authorityDefault.test.tsclients/js-kit/test/burnV1.test.tsclients/js-kit/test/closeEscrowAccount.test.tsclients/js-kit/test/createEscrowAccount.test.tsclients/js-kit/test/createHelpers.test.tsclients/js-kit/test/createV1.test.tsclients/js-kit/test/delegateAuthorityItemV1.test.tsclients/js-kit/test/delegateCollectionItemV1.test.tsclients/js-kit/test/delegateCollectionV1.test.tsclients/js-kit/test/delegateDataItemV1.test.tsclients/js-kit/test/delegateDataV1.test.tsclients/js-kit/test/delegateLockedTransferV1.test.tsclients/js-kit/test/delegatePrintDelegateV1.test.tsclients/js-kit/test/delegateProgrammableConfigItemV1.test.tsclients/js-kit/test/delegateProgrammableConfigV1.test.tsclients/js-kit/test/delegateSaleV1.test.tsclients/js-kit/test/delegateStakingV1.test.tsclients/js-kit/test/delegateStandardV1.test.tsclients/js-kit/test/delegateTransferV1.test.tsclients/js-kit/test/delegateUtilityV1.test.tsclients/js-kit/test/fetchDigitalAsset.test.tsclients/js-kit/test/fetchDigitalAssetWithToken.test.tsclients/js-kit/test/fetchMetadata.test.tsclients/js-kit/test/freezeDelegatedAccount.test.tsclients/js-kit/test/lockV1.test.tsclients/js-kit/test/mintV1.test.tsclients/js-kit/test/printV1.test.tsclients/js-kit/test/printV2.test.tsclients/js-kit/test/revokeAuthorityItemV1.test.tsclients/js-kit/test/revokeCollectionAuthority.test.tsclients/js-kit/test/revokeCollectionItemV1.test.tsclients/js-kit/test/revokeCollectionV1.test.tsclients/js-kit/test/revokeDataItemV1.test.tsclients/js-kit/test/revokeDataV1.test.tsclients/js-kit/test/revokeLockedTransferV1.test.tsclients/js-kit/test/revokePrintDelegateV1.test.tsclients/js-kit/test/revokeProgrammableConfigItemV1.test.tsclients/js-kit/test/revokeProgrammableConfigV1.test.tsclients/js-kit/test/revokeSaleV1.test.tsclients/js-kit/test/revokeStakingV1.test.tsclients/js-kit/test/revokeStandardV1.test.tsclients/js-kit/test/revokeTransferV1.test.tsclients/js-kit/test/revokeUtilityV1.test.tsclients/js-kit/test/thawDelegatedAccount.test.tsclients/js-kit/test/transferOutOfEscrow.test.tsclients/js-kit/test/transferV1.test.tsclients/js-kit/test/unlockV1.test.tsclients/js-kit/test/unverifyCollectionV1.test.tsclients/js-kit/test/unverifyCreatorV1.test.tsclients/js-kit/test/updateAsDelegateV2.test.tsclients/js-kit/test/updateV1.test.tsclients/js-kit/test/verifyCollectionV1.test.tsclients/js-kit/test/verifyCreatorV1.test.tsclients/js-kit/tsconfig.jsonconfigs/codama.cjsconfigs/kinobi.cjspackage.jsontrees/codama.json
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-08-07T18:02:24.214Z
Learnt from: mcintyre94
Repo: metaplex-foundation/mpl-token-metadata PR: 175
File: configs/codama.cjs:0-0
Timestamp: 2025-08-07T18:02:24.214Z
Learning: In configs/codama.cjs, the ts-expect-error TODO comments at lines 248, 284, and 934 are temporary workarounds for overly restrictive types in the Codama library that have been fixed upstream in https://github.com/codama-idl/codama/pull/747. The code functionality works correctly despite the type errors.
Applied to files:
clients/js-kit/README.md.github/file-filters.ymlclients/js-kit/SETUP.md
📚 Learning: 2025-08-08T13:30:33.674Z
Learnt from: mcintyre94
Repo: metaplex-foundation/mpl-token-metadata PR: 175
File: configs/codama.cjs:1120-1123
Timestamp: 2025-08-08T13:30:33.674Z
Learning: In mpl-token-metadata (PR #175), the trees/ directory and codama.json are committed to the repo. Therefore, configs/codama.cjs can write to trees/codama.json without creating the directory first; adding mkdirSync is unnecessary.
Applied to files:
clients/js-kit/package.json.github/file-filters.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Programs / Test (token-metadata)
- GitHub Check: Programs / Build
🔇 Additional comments (4)
.github/file-filters.yml (1)
34-34: LGTM!Adding
configs/codama.cjsto theclient_commonfilter ensures that changes to the Codama configuration will properly trigger client build and test workflows, consistent with the existingkinobi.cjsinclusion.clients/js-kit/.prettierrc.json (1)
1-8: LGTM!Standard Prettier configuration with reasonable settings.
clients/js-kit/package.json (1)
40-42: Verify AVA setup file path.The
requirearray references./test/_ava-setup.js, but since TypeScript compiles todist/, this file likely won't exist at runtime. AVA'srewritePathsonly affects test file resolution, not therequirearray.Verify whether the setup file should point to the compiled output:
"require": [ - "./test/_ava-setup.js" + "./dist/test/_ava-setup.js" ],clients/js-kit/README.md (1)
1-137: Documentation is comprehensive and well-structured.The README provides clear guidance on status, differences from the Umi-based client, test structure, and development workflow. The comparison table between
clients/js(Umi) andclients/js-kit(@solana/kit) is particularly helpful for understanding the migration path.
|
Can we add running kit tests to the testing script so it runs in CI as well as the umi ones? |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/test-js-client.yml (1)
62-91: Lint job missing Kit coverage.The lint job only formats and lints
./clients/js, but the Kit client (./clients/js-kit) hasformatandlintscripts defined in its package.json (lines 11-14). For consistency and complete CI coverage, the lint job should also validate the Kit client.🔎 Proposed fix to add Kit lint steps
Add the following steps after the existing lint steps:
- name: Lint working-directory: ./clients/js run: pnpm lint + + - name: Install Kit dependencies + uses: metaplex-foundation/actions/install-node-dependencies@v1 + with: + folder: ./clients/js-kit + cache: ${{ env.CACHE }} + key: clients-js-kit + + - name: Format Kit + working-directory: ./clients/js-kit + run: pnpm format + + - name: Lint Kit + working-directory: ./clients/js-kit + run: pnpm lint
🤖 Fix all issues with AI Agents
In @.github/workflows/test-js-client.yml:
- Line 15: Update the GitHub Actions test matrix to remove the EOL Node 18 entry
so CI only tests Node 20.x: replace the matrix node array node: ["18.x", "20.x"]
with a single-node entry for 20.x (e.g., node: ["20.x"] or node: "20.x") in the
workflow's matrix configuration so only Node 20 is tested.
📜 Review details
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
clients/js-kit/pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (2)
.github/workflows/test-js-client.ymlclients/js-kit/package.json
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-08T13:30:33.674Z
Learnt from: mcintyre94
Repo: metaplex-foundation/mpl-token-metadata PR: 175
File: configs/codama.cjs:1120-1123
Timestamp: 2025-08-08T13:30:33.674Z
Learning: In mpl-token-metadata (PR #175), the trees/ directory and codama.json are committed to the repo. Therefore, configs/codama.cjs can write to trees/codama.json without creating the directory first; adding mkdirSync is unnecessary.
Applied to files:
clients/js-kit/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Generate clients
- GitHub Check: Programs / Test (token-metadata)
🔇 Additional comments (2)
.github/workflows/test-js-client.yml (1)
47-60: Kit CI steps implemented correctly.The Kit test steps properly mirror the existing JS client workflow structure and successfully address the PR objective to add Kit tests to CI. The use of unique cache keys (
clients-js-kit) and consistent matrix node versions is appropriate.clients/js-kit/package.json (1)
1-20: Package structure and configuration look good.The package manifest follows standard conventions for a TypeScript project with appropriate scripts, file inclusions, and test configuration. The Ava setup with TypeScript path rewriting and the
_ava-setup.jshook is properly configured.Also applies to: 32-46
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI Agents
In @clients/js-kit/package.json:
- Around line 47-64: The dependency entries in clients/js-kit/package.json
reference non-existent versions (e.g., @solana/kit, @solana/accounts,
@solana/addresses, @solana/codecs*, @solana/functional, @solana/instructions,
@solana/keys, @solana/rpc*, @solana/signers, @solana/transaction-messages,
@solana/transactions) which will break installs; update those dependency
versions to the actual published versions (for example set @solana/kit to 3.0.2,
@solana/addresses to 2.2.0 and other @solana/* packages to their latest
npm-published versions) or switch to a valid workspace override/private registry
if you intend to use unpublished versions, then verify by running npm/yarn/pnpm
install to confirm resolution.
📜 Review details
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
clients/js-kit/pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (1)
clients/js-kit/package.json
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-08T13:30:33.674Z
Learnt from: mcintyre94
Repo: metaplex-foundation/mpl-token-metadata PR: 175
File: configs/codama.cjs:1120-1123
Timestamp: 2025-08-08T13:30:33.674Z
Learning: In mpl-token-metadata (PR #175), the trees/ directory and codama.json are committed to the repo. Therefore, configs/codama.cjs can write to trees/codama.json without creating the directory first; adding mkdirSync is unnecessary.
Applied to files:
clients/js-kit/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: JS Client / Test (18.x)
- GitHub Check: Rust Client / Test
- GitHub Check: JS Client / Test (20.x)
- GitHub Check: Programs / Test (token-metadata)
🔇 Additional comments (1)
clients/js-kit/package.json (1)
23-23: Duplicate dependency declaration.
@solana-program/tokenappears in bothdevDependencies(line 23) anddependencies(line 48). This should be resolved by keeping it in only one location based on whether it's needed at runtime or only for tests.Also applies to: 48-48
Likely an incorrect or invalid review comment.
Done! |
blockiosaurus
left a comment
There was a problem hiding this comment.
Perfect! Thank you for doing this!
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In @clients/js-kit/README.md:
- Around line 18-29: The README example uses generateKeypair, createV1, and
TokenStandard but ends with a vague "Send transaction with @solana/kit patterns"
that could be misused; update that trailing comment to explicitly mark the
transaction-sending step as a placeholder and not functional (e.g., "Placeholder
— transaction sending not implemented; do not copy/execute; implement
sendTransaction with @solana/kit when infra and sending are available"), and
ensure the example includes a short note that the library currently skips actual
transaction sending so readers know not to run it as-is.
📜 Review details
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
clients/js-kit/README.md
🔇 Additional comments (1)
clients/js-kit/README.md (1)
1-76: Documentation is well-structured and addresses prior inconsistency.The README clearly delineates implemented vs. future functionality. The earlier flagged contradiction regarding transaction status has been resolved: the example code is explicitly scoped to "once infrastructure is ready" (line 19), and line 66 unambiguously states "Skip transaction sending (not yet implemented)". The dev workflow instructions are comprehensive and helpful.
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Fix all issues with AI agents
In @.github/workflows/deploy-js-kit-client.yml:
- Around line 53-55: Replace the deprecated checkout action version string
"actions/checkout@v3" with "actions/checkout@v4" wherever it appears (e.g., the
job step containing the line starting with "uses: actions/checkout@v3" and the
similar occurrence in the docs deployment job), ensuring the corresponding
step(s) still pass the same "with: token: ${{ secrets.SVC_TOKEN }}" input
unchanged.
- Around line 103-105: Replace the step-level conditional that checks
github.event.inputs.create_release with the workflow inputs context: in the
"Create GitHub release" step (which uses ncipollo/release-action@v1) stop
comparing to the string 'true' and instead use the inputs.create_release context
directly so the step condition reads against inputs.create_release (using the
inputs context) to enable proper boolean handling.
- Around line 125-131: The "Deploy to Vercel" step sets the wrong environment
variable name: replace the env key VERCEL_PROJECT_ID_JS_KIT with
VERCEL_PROJECT_ID (keep the secret value if desired, e.g. VERCEL_PROJECT_ID: ${{
secrets.VERCEL_PROJECT_ID_JS_KIT }}) so the Vercel CLI receives the expected
VERCEL_PROJECT_ID variable when running vercel deploy in the Deploy to Vercel
step.
In @clients/js-kit/package.json:
- Line 10: The npm "test" script in package.json currently prefixes
NODE_OPTIONS='--experimental-global-webcrypto' which is unnecessary on Node.js
20+; remove the NODE_OPTIONS='--experimental-global-webcrypto' prefix so the
"test" script simply runs "ava" (or, if you must support older Node versions,
conditionally set that flag in CI rather than in the package.json script).
Target the "test" script entry and the literal "--experimental-global-webcrypto"
flag when making the change.
📜 Review details
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
clients/js-kit/pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (4)
.github/workflows/deploy-js-kit-client.ymlclients/js-kit/.gitignoreclients/js-kit/package.jsonclients/js-kit/typedoc.json
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-08T13:30:33.674Z
Learnt from: mcintyre94
Repo: metaplex-foundation/mpl-token-metadata PR: 175
File: configs/codama.cjs:1120-1123
Timestamp: 2025-08-08T13:30:33.674Z
Learning: In mpl-token-metadata (PR #175), the trees/ directory and codama.json are committed to the repo. Therefore, configs/codama.cjs can write to trees/codama.json without creating the directory first; adding mkdirSync is unnecessary.
Applied to files:
clients/js-kit/package.json
🪛 actionlint (1.7.9)
.github/workflows/deploy-js-kit-client.yml
53-53: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
118-118: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
- GitHub Check: JS Client / Test (18.x)
- GitHub Check: JS Client / Test (20.x)
- GitHub Check: JS Client / Lint
- GitHub Check: Rust Client / Build
- GitHub Check: Rust Client / Test
- GitHub Check: Programs / Test (token-metadata)
🔇 Additional comments (6)
clients/js-kit/.gitignore (1)
1-2: LGTM!Appropriate entries to ignore Vercel CLI artifacts and generated TypeDoc documentation, both of which are produced during build/deploy and should not be committed.
.github/workflows/deploy-js-kit-client.yml (1)
1-44: Well-structured deployment workflow.The workflow properly chains build → test → deploy with appropriate job dependencies, handles version bumping for both regular and pre-releases, and includes documentation deployment. The separation of concerns between the deploy and docs jobs is clean.
clients/js-kit/package.json (4)
1-26: Package structure and configuration look good.The package metadata, entry points, scripts, Ava test configuration (serial execution with 2-minute timeout is reasonable for Solana integration tests), and publishing configuration are well-defined.
Also applies to: 41-55
56-72: Verify@solana/*package versions exist on npm.Multiple
@solana/*packages are declared with versions^5.0.0or^5.1.0. A previous review flagged that these versions may not exist on npm (e.g., @solana/kit was at 3.0.2). If these are unpublished versions, installation will fail unless workspace overrides or a private registry is configured.Likely an incorrect or invalid review comment.
29-29: Duplicate dependency:@solana-program/tokendeclared in bothdevDependenciesanddependencies.This package appears at line 29 (devDependencies) and line 57 (dependencies). Determine whether it's a runtime or development dependency and keep it in only one location.
Also applies to: 57-57
Likely an incorrect or invalid review comment.
38-38: TypeScript5.9.3exists and is the current latest stable version on npm, so this dependency is valid and will install without issues.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In @.github/workflows/deploy-js-kit-client.yml:
- Around line 125-131: The "Deploy to Vercel" step uses the vercel CLI but
doesn't install Node.js or the Vercel CLI; update the job to install Node.js
(use actions/setup-node) before the step and either install the Vercel CLI (npm
install -g vercel) or invoke it via npx (npx vercel) in the "run" command;
target the existing step name/id "Deploy to Vercel" (id: deploy) and replace the
current run line that calls "vercel deploy" so it runs after Node is installed
and the CLI is available.
📜 Review details
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/deploy-js-kit-client.yml
🧰 Additional context used
🪛 actionlint (1.7.9)
.github/workflows/deploy-js-kit-client.yml
118-118: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: JS Client / Lint
- GitHub Check: JS Client / Test (18.x)
- GitHub Check: Rust Client / Build
- GitHub Check: JS Client / Test (20.x)
- GitHub Check: Programs / Test (token-metadata)
🔇 Additional comments (3)
.github/workflows/deploy-js-kit-client.yml (3)
1-32: LGTM!Workflow inputs are well-structured with appropriate types, defaults, and descriptions. The version bump options cover all standard npm versioning scenarios.
33-44: LGTM!Good job dependency chain ensuring programs are built before testing the JS client. Secret inheritance is appropriate for reusable workflows.
45-76: LGTM!Job setup is well-configured with appropriate permissions, dependency chain, and use of organizational actions for consistent Node.js/pnpm setup.
|
@blockiosaurus could you please create a new vercel project for the typedoc and add the ID to the repositories env? After that this should be good to be merged. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In @clients/js-kit/README.md:
- Around line 44-57: Update the "Running Tests with Validator" section heading
and opening sentence to state that the local validator enables generating and
validating instructions and testing airdrop flows, but does not actually
send/commit transactions (transaction sending is still unimplemented); reference
the existing heading "Running Tests with Validator" and the note "Skip
transaction sending (not yet implemented)" so the intro clarifies that running
the validator allows instruction generation and airdrop testing rather than full
transaction execution.
📜 Review details
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
clients/js-kit/README.md
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-07T18:02:24.214Z
Learnt from: mcintyre94
Repo: metaplex-foundation/mpl-token-metadata PR: 175
File: configs/codama.cjs:0-0
Timestamp: 2025-08-07T18:02:24.214Z
Learning: In configs/codama.cjs, the ts-expect-error TODO comments at lines 248, 284, and 934 are temporary workarounds for overly restrictive types in the Codama library that have been fixed upstream in https://github.com/codama-idl/codama/pull/747. The code functionality works correctly despite the type errors.
Applied to files:
clients/js-kit/README.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Generate clients
- GitHub Check: Programs / Test (token-metadata)
blockiosaurus
left a comment
There was a problem hiding this comment.
I can only change the root dir on vercel to directories on the main branch so I'd say merge first then we'll add the typedoc.
No description provided.