@metaplex-foundation/kinobi 0.10.0 → 0.10.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/cjs/renderers/js/templates/instructionsPageResolvedInputs.njk +1 -1
- package/dist/cjs/visitors/transformers/UnwrapTupleEnumWithSingleStructVisitor.js +88 -0
- package/dist/cjs/visitors/transformers/UnwrapTupleEnumWithSingleStructVisitor.js.map +1 -0
- package/dist/cjs/visitors/transformers/index.js +1 -0
- package/dist/cjs/visitors/transformers/index.js.map +1 -1
- package/dist/types/visitors/transformers/UnwrapTupleEnumWithSingleStructVisitor.d.ts +9 -0
- package/dist/types/visitors/transformers/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/renderers/js/templates/instructionsPageResolvedInputs.njk +1 -1
- package/src/visitors/transformers/UnwrapTupleEnumWithSingleStructVisitor.ts +70 -0
- package/src/visitors/transformers/index.ts +1 -0
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
{% elif input.defaultsTo.kind === 'value' %}
|
|
81
81
|
{% set inputDefault %}{{ input.defaultsTo.render }}{% endset %}
|
|
82
82
|
{% elif input.defaultsTo.kind === 'resolver' %}
|
|
83
|
-
{% set inputDefault %}{{ input.defaultsTo.name | camelCase }}(context, resolvedAccounts, { ...{{ argsObj }}, ...resolvingArgs }, programId, {{ inputDefaultIsWritable }}){% endset %}
|
|
83
|
+
{% set inputDefault %}{{ input.defaultsTo.name | camelCase }}(context, { ...{{ accountsObj }}, ...resolvedAccounts }, { ...{{ argsObj }}, ...resolvingArgs }, programId, {{ inputDefaultIsWritable }}){% endset %}
|
|
84
84
|
{% else %}
|
|
85
85
|
{% set inputDefault %}programId /* Unrecognized default kind [{{ input.defaultsTo.kind }}]. */{% endset %}
|
|
86
86
|
{% set inputDefaultIsWritable %}false{% endset %}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.UnwrapTupleEnumWithSingleStructVisitor = void 0;
|
|
27
|
+
const nodes = __importStar(require("../../nodes"));
|
|
28
|
+
const BaseThrowVisitor_1 = require("../BaseThrowVisitor");
|
|
29
|
+
const Visitor_1 = require("../Visitor");
|
|
30
|
+
const aggregators_1 = require("../aggregators");
|
|
31
|
+
const TransformNodesVisitor_1 = require("./TransformNodesVisitor");
|
|
32
|
+
const UnwrapDefinedTypesVisitor_1 = require("./UnwrapDefinedTypesVisitor");
|
|
33
|
+
class UnwrapTupleEnumWithSingleStructVisitor extends BaseThrowVisitor_1.BaseThrowVisitor {
|
|
34
|
+
constructor(enumsOrVariantsToUnwrap = '*') {
|
|
35
|
+
super();
|
|
36
|
+
this.enumsOrVariantsToUnwrap = enumsOrVariantsToUnwrap;
|
|
37
|
+
this.enumsOrVariantsToUnwrap = enumsOrVariantsToUnwrap;
|
|
38
|
+
}
|
|
39
|
+
shouldUnwrap(node, stack) {
|
|
40
|
+
const stackWithNode = stack.clone();
|
|
41
|
+
stackWithNode.push(node);
|
|
42
|
+
if (this.enumsOrVariantsToUnwrap === '*')
|
|
43
|
+
return true;
|
|
44
|
+
return this.enumsOrVariantsToUnwrap.some((selector) => stackWithNode.matchesWithNames(selector.split('.')));
|
|
45
|
+
}
|
|
46
|
+
visitRoot(root) {
|
|
47
|
+
const typesToPotentiallyUnwrap = [];
|
|
48
|
+
const definedTypes = new Map();
|
|
49
|
+
nodes.getAllDefinedTypes(root).forEach((definedType) => {
|
|
50
|
+
definedTypes.set(definedType.name, definedType);
|
|
51
|
+
});
|
|
52
|
+
let newRoot = (0, Visitor_1.visit)(root, new TransformNodesVisitor_1.TransformNodesVisitor([
|
|
53
|
+
{
|
|
54
|
+
selector: { kind: 'enumTupleVariantTypeNode' },
|
|
55
|
+
transformer: (node, stack) => {
|
|
56
|
+
nodes.assertEnumTupleVariantTypeNode(node);
|
|
57
|
+
if (!this.shouldUnwrap(node, stack))
|
|
58
|
+
return node;
|
|
59
|
+
if (node.tuple.children.length !== 1)
|
|
60
|
+
return node;
|
|
61
|
+
let child = node.tuple.children[0];
|
|
62
|
+
if (nodes.isLinkTypeNode(child)) {
|
|
63
|
+
if (child.importFrom !== 'generated')
|
|
64
|
+
return node;
|
|
65
|
+
const definedType = definedTypes.get(child.name);
|
|
66
|
+
if (!definedType)
|
|
67
|
+
return node;
|
|
68
|
+
if (!nodes.isStructTypeNode(definedType.data))
|
|
69
|
+
return node;
|
|
70
|
+
typesToPotentiallyUnwrap.push(child.name);
|
|
71
|
+
child = definedType.data;
|
|
72
|
+
}
|
|
73
|
+
if (!nodes.isStructTypeNode(child))
|
|
74
|
+
return node;
|
|
75
|
+
return nodes.enumStructVariantTypeNode(node.name, child);
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
]));
|
|
79
|
+
nodes.assertRootNode(newRoot);
|
|
80
|
+
const histogram = (0, Visitor_1.visit)(newRoot, new aggregators_1.GetDefinedTypeHistogramVisitor());
|
|
81
|
+
const typesToUnwrap = typesToPotentiallyUnwrap.filter((type) => !histogram[type] || histogram[type].total === 0);
|
|
82
|
+
newRoot = (0, Visitor_1.visit)(newRoot, new UnwrapDefinedTypesVisitor_1.UnwrapDefinedTypesVisitor(typesToUnwrap));
|
|
83
|
+
nodes.assertRootNode(newRoot);
|
|
84
|
+
return newRoot;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.UnwrapTupleEnumWithSingleStructVisitor = UnwrapTupleEnumWithSingleStructVisitor;
|
|
88
|
+
//# sourceMappingURL=UnwrapTupleEnumWithSingleStructVisitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnwrapTupleEnumWithSingleStructVisitor.js","sourceRoot":"","sources":["../../../../src/visitors/transformers/UnwrapTupleEnumWithSingleStructVisitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ __exportStar(require("./TransformNodesVisitor"), exports);
|
|
|
32
32
|
__exportStar(require("./TransformU8ArraysToBytesVisitor"), exports);
|
|
33
33
|
__exportStar(require("./UnwrapDefinedTypesVisitor"), exports);
|
|
34
34
|
__exportStar(require("./UnwrapInstructionArgsDefinedTypesVisitor"), exports);
|
|
35
|
+
__exportStar(require("./UnwrapTupleEnumWithSingleStructVisitor"), exports);
|
|
35
36
|
__exportStar(require("./UnwrapTypeDefinedLinksVisitor"), exports);
|
|
36
37
|
__exportStar(require("./UpdateAccountsVisitor"), exports);
|
|
37
38
|
__exportStar(require("./UpdateDefinedTypesVisitor"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/visitors/transformers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uEAAqD;AACrD,oEAAkD;AAClD,6EAA2D;AAC3D,4EAA0D;AAC1D,uDAAqC;AACrC,wEAAsD;AACtD,yDAAuC;AACvC,4EAA0D;AAC1D,8EAA4D;AAC5D,wEAAsD;AACtD,kEAAgD;AAChD,6DAA2C;AAC3C,kEAAgD;AAChD,6EAA2D;AAC3D,0DAAwC;AACxC,oEAAkD;AAClD,8DAA4C;AAC5C,6EAA2D;AAC3D,kEAAgD;AAChD,0DAAwC;AACxC,8DAA4C;AAC5C,wDAAsC;AACtC,8DAA4C;AAC5C,0DAAwC;AACxC,sEAAoD;AACpD,0EAAwD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/visitors/transformers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uEAAqD;AACrD,oEAAkD;AAClD,6EAA2D;AAC3D,4EAA0D;AAC1D,uDAAqC;AACrC,wEAAsD;AACtD,yDAAuC;AACvC,4EAA0D;AAC1D,8EAA4D;AAC5D,wEAAsD;AACtD,kEAAgD;AAChD,6DAA2C;AAC3C,kEAAgD;AAChD,6EAA2D;AAC3D,0DAAwC;AACxC,oEAAkD;AAClD,8DAA4C;AAC5C,6EAA2D;AAC3D,2EAAyD;AACzD,kEAAgD;AAChD,0DAAwC;AACxC,8DAA4C;AAC5C,wDAAsC;AACtC,8DAA4C;AAC5C,0DAAwC;AACxC,sEAAoD;AACpD,0EAAwD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as nodes from '../../nodes';
|
|
2
|
+
import { BaseThrowVisitor } from '../BaseThrowVisitor';
|
|
3
|
+
import { NodeStack } from '../NodeStack';
|
|
4
|
+
export declare class UnwrapTupleEnumWithSingleStructVisitor extends BaseThrowVisitor<nodes.RootNode> {
|
|
5
|
+
readonly enumsOrVariantsToUnwrap: string[] | '*';
|
|
6
|
+
constructor(enumsOrVariantsToUnwrap?: string[] | '*');
|
|
7
|
+
shouldUnwrap(node: nodes.EnumTupleVariantTypeNode, stack: NodeStack): boolean;
|
|
8
|
+
visitRoot(root: nodes.RootNode): nodes.RootNode;
|
|
9
|
+
}
|
|
@@ -16,6 +16,7 @@ export * from './TransformNodesVisitor';
|
|
|
16
16
|
export * from './TransformU8ArraysToBytesVisitor';
|
|
17
17
|
export * from './UnwrapDefinedTypesVisitor';
|
|
18
18
|
export * from './UnwrapInstructionArgsDefinedTypesVisitor';
|
|
19
|
+
export * from './UnwrapTupleEnumWithSingleStructVisitor';
|
|
19
20
|
export * from './UnwrapTypeDefinedLinksVisitor';
|
|
20
21
|
export * from './UpdateAccountsVisitor';
|
|
21
22
|
export * from './UpdateDefinedTypesVisitor';
|
package/package.json
CHANGED
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
{% elif input.defaultsTo.kind === 'value' %}
|
|
81
81
|
{% set inputDefault %}{{ input.defaultsTo.render }}{% endset %}
|
|
82
82
|
{% elif input.defaultsTo.kind === 'resolver' %}
|
|
83
|
-
{% set inputDefault %}{{ input.defaultsTo.name | camelCase }}(context, resolvedAccounts, { ...{{ argsObj }}, ...resolvingArgs }, programId, {{ inputDefaultIsWritable }}){% endset %}
|
|
83
|
+
{% set inputDefault %}{{ input.defaultsTo.name | camelCase }}(context, { ...{{ accountsObj }}, ...resolvedAccounts }, { ...{{ argsObj }}, ...resolvingArgs }, programId, {{ inputDefaultIsWritable }}){% endset %}
|
|
84
84
|
{% else %}
|
|
85
85
|
{% set inputDefault %}programId /* Unrecognized default kind [{{ input.defaultsTo.kind }}]. */{% endset %}
|
|
86
86
|
{% set inputDefaultIsWritable %}false{% endset %}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as nodes from '../../nodes';
|
|
2
|
+
import { BaseThrowVisitor } from '../BaseThrowVisitor';
|
|
3
|
+
import { NodeStack } from '../NodeStack';
|
|
4
|
+
import { visit } from '../Visitor';
|
|
5
|
+
import { GetDefinedTypeHistogramVisitor } from '../aggregators';
|
|
6
|
+
import { TransformNodesVisitor } from './TransformNodesVisitor';
|
|
7
|
+
import { UnwrapDefinedTypesVisitor } from './UnwrapDefinedTypesVisitor';
|
|
8
|
+
|
|
9
|
+
export class UnwrapTupleEnumWithSingleStructVisitor extends BaseThrowVisitor<nodes.RootNode> {
|
|
10
|
+
constructor(readonly enumsOrVariantsToUnwrap: string[] | '*' = '*') {
|
|
11
|
+
super();
|
|
12
|
+
this.enumsOrVariantsToUnwrap = enumsOrVariantsToUnwrap;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
shouldUnwrap(
|
|
16
|
+
node: nodes.EnumTupleVariantTypeNode,
|
|
17
|
+
stack: NodeStack
|
|
18
|
+
): boolean {
|
|
19
|
+
const stackWithNode = stack.clone();
|
|
20
|
+
stackWithNode.push(node);
|
|
21
|
+
if (this.enumsOrVariantsToUnwrap === '*') return true;
|
|
22
|
+
return this.enumsOrVariantsToUnwrap.some((selector) =>
|
|
23
|
+
stackWithNode.matchesWithNames(selector.split('.'))
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
visitRoot(root: nodes.RootNode): nodes.RootNode {
|
|
28
|
+
const typesToPotentiallyUnwrap: string[] = [];
|
|
29
|
+
const definedTypes: Map<string, nodes.DefinedTypeNode> = new Map();
|
|
30
|
+
nodes.getAllDefinedTypes(root).forEach((definedType) => {
|
|
31
|
+
definedTypes.set(definedType.name, definedType);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
let newRoot = visit(
|
|
35
|
+
root,
|
|
36
|
+
new TransformNodesVisitor([
|
|
37
|
+
{
|
|
38
|
+
selector: { kind: 'enumTupleVariantTypeNode' },
|
|
39
|
+
transformer: (node, stack) => {
|
|
40
|
+
nodes.assertEnumTupleVariantTypeNode(node);
|
|
41
|
+
if (!this.shouldUnwrap(node, stack)) return node;
|
|
42
|
+
if (node.tuple.children.length !== 1) return node;
|
|
43
|
+
let child = node.tuple.children[0];
|
|
44
|
+
if (nodes.isLinkTypeNode(child)) {
|
|
45
|
+
if (child.importFrom !== 'generated') return node;
|
|
46
|
+
const definedType = definedTypes.get(child.name);
|
|
47
|
+
if (!definedType) return node;
|
|
48
|
+
if (!nodes.isStructTypeNode(definedType.data)) return node;
|
|
49
|
+
typesToPotentiallyUnwrap.push(child.name);
|
|
50
|
+
child = definedType.data;
|
|
51
|
+
}
|
|
52
|
+
if (!nodes.isStructTypeNode(child)) return node;
|
|
53
|
+
return nodes.enumStructVariantTypeNode(node.name, child);
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
])
|
|
57
|
+
);
|
|
58
|
+
nodes.assertRootNode(newRoot);
|
|
59
|
+
|
|
60
|
+
const histogram = visit(newRoot, new GetDefinedTypeHistogramVisitor());
|
|
61
|
+
const typesToUnwrap = typesToPotentiallyUnwrap.filter(
|
|
62
|
+
(type) => !histogram[type] || histogram[type].total === 0
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
newRoot = visit(newRoot, new UnwrapDefinedTypesVisitor(typesToUnwrap));
|
|
66
|
+
nodes.assertRootNode(newRoot);
|
|
67
|
+
|
|
68
|
+
return newRoot;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -16,6 +16,7 @@ export * from './TransformNodesVisitor';
|
|
|
16
16
|
export * from './TransformU8ArraysToBytesVisitor';
|
|
17
17
|
export * from './UnwrapDefinedTypesVisitor';
|
|
18
18
|
export * from './UnwrapInstructionArgsDefinedTypesVisitor';
|
|
19
|
+
export * from './UnwrapTupleEnumWithSingleStructVisitor';
|
|
19
20
|
export * from './UnwrapTypeDefinedLinksVisitor';
|
|
20
21
|
export * from './UpdateAccountsVisitor';
|
|
21
22
|
export * from './UpdateDefinedTypesVisitor';
|