@codama/renderers-js 2.0.0 → 2.0.2
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.
- package/dist/index.browser.cjs +46 -37
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.mjs +46 -37
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.node.cjs +46 -37
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +46 -37
- package/dist/index.node.mjs.map +1 -1
- package/dist/index.react-native.mjs +46 -37
- package/dist/index.react-native.mjs.map +1 -1
- package/dist/types/utils/packageJson.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -315,15 +315,20 @@ var DEFAULT_NAME_TRANSFORMERS = {
|
|
|
315
315
|
// src/utils/options.ts
|
|
316
316
|
var DEFAULT_KIT_IMPORT_STRATEGY = "preferRoot";
|
|
317
317
|
var DEFAULT_DEPENDENCY_VERSIONS = {
|
|
318
|
-
"@solana/accounts": "^6.
|
|
319
|
-
"@solana/addresses": "^6.
|
|
320
|
-
"@solana/codecs": "^6.
|
|
321
|
-
"@solana/errors": "^6.
|
|
322
|
-
"@solana/
|
|
323
|
-
"@solana/
|
|
324
|
-
"@solana/
|
|
325
|
-
"@solana/
|
|
326
|
-
"@solana/
|
|
318
|
+
"@solana/accounts": "^6.1.0",
|
|
319
|
+
"@solana/addresses": "^6.1.0",
|
|
320
|
+
"@solana/codecs": "^6.1.0",
|
|
321
|
+
"@solana/errors": "^6.1.0",
|
|
322
|
+
"@solana/instruction-plans": "^6.1.0",
|
|
323
|
+
"@solana/instructions": "^6.1.0",
|
|
324
|
+
"@solana/kit": "^6.1.0",
|
|
325
|
+
"@solana/plugin-core": "^6.1.0",
|
|
326
|
+
"@solana/plugin-interfaces": "^6.1.0",
|
|
327
|
+
"@solana/program-client-core": "^6.1.0",
|
|
328
|
+
"@solana/programs": "^6.1.0",
|
|
329
|
+
"@solana/rpc-api": "^6.1.0",
|
|
330
|
+
"@solana/rpc-types": "^6.1.0",
|
|
331
|
+
"@solana/signers": "^6.1.0"
|
|
327
332
|
};
|
|
328
333
|
async function syncPackageJson(renderMap, formatCode, packageFolder, options) {
|
|
329
334
|
const shouldSyncPackageJson = options.syncPackageJson ?? true;
|
|
@@ -2293,10 +2298,14 @@ function getProgramPluginInstructionsTypeFragment(scope) {
|
|
|
2293
2298
|
programNode.instructions.map((instruction) => {
|
|
2294
2299
|
const name = nameApi.programPluginInstructionKey(instruction.name);
|
|
2295
2300
|
const isAsync = asyncInstructions.includes(instruction.name);
|
|
2296
|
-
|
|
2297
|
-
const
|
|
2298
|
-
const
|
|
2299
|
-
|
|
2301
|
+
let instructionInputType = isAsync ? use("type " + nameApi.instructionAsyncInputType(instruction.name), "generatedInstructions") : use("type " + nameApi.instructionSyncInputType(instruction.name), "generatedInstructions");
|
|
2302
|
+
const instructionFunction = isAsync ? use("type " + nameApi.instructionAsyncFunction(instruction.name), "generatedInstructions") : use("type " + nameApi.instructionSyncFunction(instruction.name), "generatedInstructions");
|
|
2303
|
+
const payerDefaultValues = getPayerDefaultValues(instruction);
|
|
2304
|
+
if (payerDefaultValues.length > 0) {
|
|
2305
|
+
const fieldStringUnion = payerDefaultValues.map(({ name: name2 }) => `"${name2}"`).join(" | ");
|
|
2306
|
+
instructionInputType = fragment`MakeOptional<${instructionInputType}, ${fieldStringUnion}>`;
|
|
2307
|
+
}
|
|
2308
|
+
return fragment`${name}: (input: ${instructionInputType}) => ReturnType<typeof ${instructionFunction}> & ${selfPlanAndSendFunctions};`;
|
|
2300
2309
|
}),
|
|
2301
2310
|
(c) => c.join(" ")
|
|
2302
2311
|
);
|
|
@@ -2314,7 +2323,7 @@ function getProgramPluginRequirementsTypeFragment(scope) {
|
|
|
2314
2323
|
const requirements = mergeFragments(
|
|
2315
2324
|
[
|
|
2316
2325
|
hasAccounts ? clientWithRpc : void 0,
|
|
2317
|
-
|
|
2326
|
+
hasPayerDefaultValues(programNode) ? clientWithPayer : void 0,
|
|
2318
2327
|
hasInstructions ? clientWithTransactionPlanning : void 0,
|
|
2319
2328
|
hasInstructions ? clientWithTransactionSending : void 0
|
|
2320
2329
|
],
|
|
@@ -2334,7 +2343,7 @@ function getProgramPluginFunctionFragment(scope) {
|
|
|
2334
2343
|
);
|
|
2335
2344
|
return fragment`export function ${programPluginFunction}() {
|
|
2336
2345
|
return <T extends ${programPluginRequirementsType}>(client: T) => {
|
|
2337
|
-
return { ...client, ${programPluginKey}: { ${fields}
|
|
2346
|
+
return { ...client, ${programPluginKey}: <${programPluginType}>{ ${fields} } };
|
|
2338
2347
|
};
|
|
2339
2348
|
}`;
|
|
2340
2349
|
}
|
|
@@ -2359,40 +2368,40 @@ function getProgramPluginInstructionsObjectFragment(scope) {
|
|
|
2359
2368
|
programNode.instructions.map((instruction) => {
|
|
2360
2369
|
const name = nameApi.programPluginInstructionKey(instruction.name);
|
|
2361
2370
|
const isAsync = asyncInstructions.includes(instruction.name);
|
|
2362
|
-
const instructionInputType = isAsync ? use("type " + nameApi.instructionAsyncInputType(instruction.name), "generatedInstructions") : use("type " + nameApi.instructionSyncInputType(instruction.name), "generatedInstructions");
|
|
2363
2371
|
const instructionFunction = isAsync ? use(nameApi.instructionAsyncFunction(instruction.name), "generatedInstructions") : use(nameApi.instructionSyncFunction(instruction.name), "generatedInstructions");
|
|
2364
2372
|
const addSelfPlanAndSendFunctions = use("addSelfPlanAndSendFunctions", "solanaProgramClientCore");
|
|
2365
|
-
const
|
|
2366
|
-
|
|
2367
|
-
|
|
2373
|
+
const payerDefaultValues = getPayerDefaultValues(instruction);
|
|
2374
|
+
let input = fragment`input`;
|
|
2375
|
+
if (payerDefaultValues.length > 0) {
|
|
2376
|
+
const fieldOverrides = mergeFragments(
|
|
2377
|
+
payerDefaultValues.map(({ name: name2, signer }) => {
|
|
2378
|
+
const signerDefault = signer ? "client.payer" : "client.payer.address";
|
|
2379
|
+
return fragment`${name2}: input.${name2} ?? ${signerDefault}`;
|
|
2380
|
+
}),
|
|
2381
|
+
(c) => c.join(", ")
|
|
2382
|
+
);
|
|
2383
|
+
input = fragment`{ ...input, ${fieldOverrides} }`;
|
|
2368
2384
|
}
|
|
2369
|
-
|
|
2370
|
-
const processedInputWithDefaultPayerValues = inputWithDefaultPayerValues.map((inputNode) => {
|
|
2371
|
-
return isNode(inputNode, "instructionAccountNode") ? { name: inputNode.name, signer: inputNode.isSigner !== false } : { name: renamedArgs.get(inputNode.name) ?? inputNode.name, signer: false };
|
|
2372
|
-
});
|
|
2373
|
-
const fieldStringUnion = processedInputWithDefaultPayerValues.map(({ name: name2 }) => `"${name2}"`).join(" | ");
|
|
2374
|
-
const instructionInputTypeWithPayer = fragment`MakeOptional<${instructionInputType}, ${fieldStringUnion}>`;
|
|
2375
|
-
const fieldOverrides = mergeFragments(
|
|
2376
|
-
processedInputWithDefaultPayerValues.map(
|
|
2377
|
-
({ name: name2, signer }) => fragment`${name2}: input.${name2} ?? ${signer ? "client.payer" : "client.payer.address"}`
|
|
2378
|
-
),
|
|
2379
|
-
(c) => c.join(", ")
|
|
2380
|
-
);
|
|
2381
|
-
const inputWithPayer = fragment`{ ...input, ${fieldOverrides} }`;
|
|
2382
|
-
return fragment`${name}: (input: ${instructionInputTypeWithPayer}) => ${addSelfPlanAndSendFunctions}(client, ${instructionFunction}(${inputWithPayer}))`;
|
|
2385
|
+
return fragment`${name}: input => ${addSelfPlanAndSendFunctions}(client, ${instructionFunction}(${input}))`;
|
|
2383
2386
|
}),
|
|
2384
2387
|
(c) => c.join(", ")
|
|
2385
2388
|
);
|
|
2386
2389
|
return fragment`instructions: { ${fields} }`;
|
|
2387
2390
|
}
|
|
2388
2391
|
function getMakeOptionalHelperTypeFragment(scope) {
|
|
2389
|
-
if (!
|
|
2392
|
+
if (!hasPayerDefaultValues(scope.programNode)) return;
|
|
2390
2393
|
return fragment`type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;`;
|
|
2391
2394
|
}
|
|
2392
|
-
function
|
|
2393
|
-
return programNode.instructions.some((instruction) =>
|
|
2395
|
+
function hasPayerDefaultValues(programNode) {
|
|
2396
|
+
return programNode.instructions.some((instruction) => getPayerDefaultValueNodes(instruction).length > 0);
|
|
2397
|
+
}
|
|
2398
|
+
function getPayerDefaultValues(instructionNode) {
|
|
2399
|
+
const renamedArgs = getRenamedArgsMap(instructionNode);
|
|
2400
|
+
return getPayerDefaultValueNodes(instructionNode).map((inputNode) => {
|
|
2401
|
+
return isNode(inputNode, "instructionAccountNode") ? { name: inputNode.name, signer: inputNode.isSigner !== false } : { name: renamedArgs.get(inputNode.name) ?? inputNode.name, signer: false };
|
|
2402
|
+
});
|
|
2394
2403
|
}
|
|
2395
|
-
function
|
|
2404
|
+
function getPayerDefaultValueNodes(instructionNode) {
|
|
2396
2405
|
return [
|
|
2397
2406
|
...instructionNode.accounts.filter((a) => !a.isOptional && isNode(a.defaultValue, "payerValueNode")),
|
|
2398
2407
|
...instructionNode.arguments.filter((a) => isNode(a.defaultValue, "payerValueNode"))
|