@codama/renderers-rust 1.2.8 → 1.2.9

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.
@@ -1,42 +1,20 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var errors = require('@codama/errors');
6
+ var nodes = require('@codama/nodes');
7
+ var renderersCore = require('@codama/renderers-core');
8
+ var visitorsCore = require('@codama/visitors-core');
9
+ var codecsStrings = require('@solana/codecs-strings');
10
+ var path = require('path');
11
+ require('url');
12
+ var nunjucks = require('nunjucks');
13
+ var child_process = require('child_process');
29
14
 
30
- // src/index.ts
31
- var index_exports = {};
32
- __export(index_exports, {
33
- ImportMap: () => ImportMap,
34
- default: () => renderVisitor,
35
- getRenderMapVisitor: () => getRenderMapVisitor,
36
- getTypeManifestVisitor: () => getTypeManifestVisitor,
37
- renderVisitor: () => renderVisitor
38
- });
39
- module.exports = __toCommonJS(index_exports);
15
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
16
+
17
+ var nunjucks__default = /*#__PURE__*/_interopDefault(nunjucks);
40
18
 
41
19
  // src/ImportMap.ts
42
20
  var DEFAULT_MODULE_MAP = {
@@ -108,48 +86,26 @@ var ImportMap = class _ImportMap {
108
86
  return importStatements.join("\n");
109
87
  }
110
88
  };
111
-
112
- // src/getRenderMapVisitor.ts
113
- var import_errors3 = require("@codama/errors");
114
- var import_nodes6 = require("@codama/nodes");
115
- var import_renderers_core = require("@codama/renderers-core");
116
- var import_visitors_core4 = require("@codama/visitors-core");
117
-
118
- // src/getTypeManifestVisitor.ts
119
- var import_errors2 = require("@codama/errors");
120
- var import_nodes5 = require("@codama/nodes");
121
- var import_visitors_core3 = require("@codama/visitors-core");
122
-
123
- // src/utils/codecs.ts
124
- var import_codecs_strings = require("@solana/codecs-strings");
125
89
  function getBytesFromBytesValueNode(node) {
126
90
  switch (node.encoding) {
127
91
  case "utf8":
128
- return (0, import_codecs_strings.getUtf8Encoder)().encode(node.data);
92
+ return codecsStrings.getUtf8Encoder().encode(node.data);
129
93
  case "base16":
130
- return (0, import_codecs_strings.getBase16Encoder)().encode(node.data);
94
+ return codecsStrings.getBase16Encoder().encode(node.data);
131
95
  case "base58":
132
- return (0, import_codecs_strings.getBase58Encoder)().encode(node.data);
96
+ return codecsStrings.getBase58Encoder().encode(node.data);
133
97
  case "base64":
134
98
  default:
135
- return (0, import_codecs_strings.getBase64Encoder)().encode(node.data);
99
+ return codecsStrings.getBase64Encoder().encode(node.data);
136
100
  }
137
101
  }
138
-
139
- // src/utils/discriminatorConstant.ts
140
- var import_nodes2 = require("@codama/nodes");
141
- var import_visitors_core2 = require("@codama/visitors-core");
142
-
143
- // src/renderValueNodeVisitor.ts
144
- var import_nodes = require("@codama/nodes");
145
- var import_visitors_core = require("@codama/visitors-core");
146
102
  function renderValueNode(value, getImportFrom, useStr = false) {
147
- return (0, import_visitors_core.visit)(value, renderValueNodeVisitor(getImportFrom, useStr));
103
+ return visitorsCore.visit(value, renderValueNodeVisitor(getImportFrom, useStr));
148
104
  }
149
105
  function renderValueNodeVisitor(getImportFrom, useStr = false) {
150
106
  return {
151
107
  visitArrayValue(node) {
152
- const list = node.items.map((v) => (0, import_visitors_core.visit)(v, this));
108
+ const list = node.items.map((v) => visitorsCore.visit(v, this));
153
109
  return {
154
110
  imports: new ImportMap().mergeWith(...list.map((c) => c.imports)),
155
111
  render: `[${list.map((c) => c.render).join(", ")}]`
@@ -163,18 +119,18 @@ function renderValueNodeVisitor(getImportFrom, useStr = false) {
163
119
  },
164
120
  visitBytesValue(node) {
165
121
  const bytes = getBytesFromBytesValueNode(node);
166
- const numbers = Array.from(bytes).map(import_nodes.numberValueNode);
167
- return (0, import_visitors_core.visit)((0, import_nodes.arrayValueNode)(numbers), this);
122
+ const numbers = Array.from(bytes).map(nodes.numberValueNode);
123
+ return visitorsCore.visit(nodes.arrayValueNode(numbers), this);
168
124
  },
169
125
  visitConstantValue(node) {
170
- if ((0, import_nodes.isNode)(node.value, "bytesValueNode")) {
171
- return (0, import_visitors_core.visit)(node.value, this);
126
+ if (nodes.isNode(node.value, "bytesValueNode")) {
127
+ return visitorsCore.visit(node.value, this);
172
128
  }
173
- if ((0, import_nodes.isNode)(node.type, "stringTypeNode") && (0, import_nodes.isNode)(node.value, "stringValueNode")) {
174
- return (0, import_visitors_core.visit)((0, import_nodes.bytesValueNode)(node.type.encoding, node.value.string), this);
129
+ if (nodes.isNode(node.type, "stringTypeNode") && nodes.isNode(node.value, "stringValueNode")) {
130
+ return visitorsCore.visit(nodes.bytesValueNode(node.type.encoding, node.value.string), this);
175
131
  }
176
- if ((0, import_nodes.isNode)(node.type, "numberTypeNode") && (0, import_nodes.isNode)(node.value, "numberValueNode")) {
177
- const numberManifest = (0, import_visitors_core.visit)(node.value, this);
132
+ if (nodes.isNode(node.type, "numberTypeNode") && nodes.isNode(node.value, "numberValueNode")) {
133
+ const numberManifest = visitorsCore.visit(node.value, this);
178
134
  const { format, endian } = node.type;
179
135
  const byteFunction = endian === "le" ? "to_le_bytes" : "to_be_bytes";
180
136
  numberManifest.render = `${numberManifest.render}${format}.${byteFunction}()`;
@@ -184,14 +140,14 @@ function renderValueNodeVisitor(getImportFrom, useStr = false) {
184
140
  },
185
141
  visitEnumValue(node) {
186
142
  const imports = new ImportMap();
187
- const enumName = (0, import_nodes.pascalCase)(node.enum.name);
188
- const variantName = (0, import_nodes.pascalCase)(node.variant);
143
+ const enumName = nodes.pascalCase(node.enum.name);
144
+ const variantName = nodes.pascalCase(node.variant);
189
145
  const importFrom = getImportFrom(node.enum);
190
146
  imports.add(`${importFrom}::${enumName}`);
191
147
  if (!node.value) {
192
148
  return { imports, render: `${enumName}::${variantName}` };
193
149
  }
194
- const enumValue = (0, import_visitors_core.visit)(node.value, this);
150
+ const enumValue = visitorsCore.visit(node.value, this);
195
151
  const fields = enumValue.render;
196
152
  return {
197
153
  imports: imports.mergeWith(enumValue.imports),
@@ -199,15 +155,15 @@ function renderValueNodeVisitor(getImportFrom, useStr = false) {
199
155
  };
200
156
  },
201
157
  visitMapEntryValue(node) {
202
- const mapKey = (0, import_visitors_core.visit)(node.key, this);
203
- const mapValue = (0, import_visitors_core.visit)(node.value, this);
158
+ const mapKey = visitorsCore.visit(node.key, this);
159
+ const mapValue = visitorsCore.visit(node.value, this);
204
160
  return {
205
161
  imports: mapKey.imports.mergeWith(mapValue.imports),
206
162
  render: `[${mapKey.render}, ${mapValue.render}]`
207
163
  };
208
164
  },
209
165
  visitMapValue(node) {
210
- const map = node.entries.map((entry) => (0, import_visitors_core.visit)(entry, this));
166
+ const map = node.entries.map((entry) => visitorsCore.visit(entry, this));
211
167
  const imports = new ImportMap().add("std::collection::HashMap");
212
168
  return {
213
169
  imports: imports.mergeWith(...map.map((c) => c.imports)),
@@ -233,7 +189,7 @@ function renderValueNodeVisitor(getImportFrom, useStr = false) {
233
189
  };
234
190
  },
235
191
  visitSetValue(node) {
236
- const set = node.items.map((v) => (0, import_visitors_core.visit)(v, this));
192
+ const set = node.items.map((v) => visitorsCore.visit(v, this));
237
193
  const imports = new ImportMap().add("std::collection::HashSet");
238
194
  return {
239
195
  imports: imports.mergeWith(...set.map((c) => c.imports)),
@@ -241,7 +197,7 @@ function renderValueNodeVisitor(getImportFrom, useStr = false) {
241
197
  };
242
198
  },
243
199
  visitSomeValue(node) {
244
- const child = (0, import_visitors_core.visit)(node.value, this);
200
+ const child = visitorsCore.visit(node.value, this);
245
201
  return {
246
202
  ...child,
247
203
  render: `Some(${child.render})`
@@ -254,21 +210,21 @@ function renderValueNodeVisitor(getImportFrom, useStr = false) {
254
210
  };
255
211
  },
256
212
  visitStructFieldValue(node) {
257
- const structValue = (0, import_visitors_core.visit)(node.value, this);
213
+ const structValue = visitorsCore.visit(node.value, this);
258
214
  return {
259
215
  imports: structValue.imports,
260
216
  render: `${node.name}: ${structValue.render}`
261
217
  };
262
218
  },
263
219
  visitStructValue(node) {
264
- const struct = node.fields.map((field) => (0, import_visitors_core.visit)(field, this));
220
+ const struct = node.fields.map((field) => visitorsCore.visit(field, this));
265
221
  return {
266
222
  imports: new ImportMap().mergeWith(...struct.map((c) => c.imports)),
267
223
  render: `{ ${struct.map((c) => c.render).join(", ")} }`
268
224
  };
269
225
  },
270
226
  visitTupleValue(node) {
271
- const tuple = node.items.map((v) => (0, import_visitors_core.visit)(v, this));
227
+ const tuple = node.items.map((v) => visitorsCore.visit(v, this));
272
228
  return {
273
229
  imports: new ImportMap().mergeWith(...tuple.map((c) => c.imports)),
274
230
  render: `(${tuple.map((c) => c.render).join(", ")})`
@@ -299,31 +255,28 @@ function getDiscriminatorConstant(discriminatorNode, scope) {
299
255
  }
300
256
  function getConstantDiscriminatorConstant(discriminatorNode, scope) {
301
257
  const { discriminatorNodes, getImportFrom, prefix, typeManifestVisitor } = scope;
302
- const index = discriminatorNodes.filter((0, import_nodes2.isNodeFilter)("constantDiscriminatorNode")).indexOf(discriminatorNode);
258
+ const index = discriminatorNodes.filter(nodes.isNodeFilter("constantDiscriminatorNode")).indexOf(discriminatorNode);
303
259
  const suffix = index <= 0 ? "" : `_${index + 1}`;
304
- const name = (0, import_nodes2.camelCase)(`${prefix}_discriminator${suffix}`);
305
- const typeManifest = (0, import_visitors_core2.visit)(discriminatorNode.constant.type, typeManifestVisitor);
260
+ const name = nodes.camelCase(`${prefix}_discriminator${suffix}`);
261
+ const typeManifest = visitorsCore.visit(discriminatorNode.constant.type, typeManifestVisitor);
306
262
  const value = renderValueNode(discriminatorNode.constant.value, getImportFrom);
307
263
  return getConstant(name, typeManifest, value);
308
264
  }
309
265
  function getFieldDiscriminatorConstant(discriminatorNode, scope) {
310
266
  const { fields, prefix, getImportFrom, typeManifestVisitor } = scope;
311
267
  const field = fields.find((f) => f.name === discriminatorNode.name);
312
- if (!field || !field.defaultValue || !(0, import_nodes2.isNode)(field.defaultValue, import_nodes2.VALUE_NODES)) {
268
+ if (!field || !field.defaultValue || !nodes.isNode(field.defaultValue, nodes.VALUE_NODES)) {
313
269
  return null;
314
270
  }
315
- const name = (0, import_nodes2.camelCase)(`${prefix}_${discriminatorNode.name}`);
316
- const typeManifest = (0, import_visitors_core2.visit)(field.type, typeManifestVisitor);
271
+ const name = nodes.camelCase(`${prefix}_${discriminatorNode.name}`);
272
+ const typeManifest = visitorsCore.visit(field.type, typeManifestVisitor);
317
273
  const value = renderValueNode(field.defaultValue, getImportFrom);
318
274
  return getConstant(name, typeManifest, value);
319
275
  }
320
276
  function getConstant(name, typeManifest, value) {
321
277
  const type = { imports: typeManifest.imports, render: typeManifest.type };
322
- return mergeFragments([type, value], ([t, v]) => `pub const ${(0, import_nodes2.snakeCase)(name).toUpperCase()}: ${t} = ${v};`);
278
+ return mergeFragments([type, value], ([t, v]) => `pub const ${nodes.snakeCase(name).toUpperCase()}: ${t} = ${v};`);
323
279
  }
324
-
325
- // src/utils/linkOverrides.ts
326
- var import_errors = require("@codama/errors");
327
280
  function getImportFromFactory(overrides) {
328
281
  const linkOverrides = {
329
282
  accounts: overrides.accounts ?? {},
@@ -349,7 +302,7 @@ function getImportFromFactory(overrides) {
349
302
  case "resolverValueNode":
350
303
  return linkOverrides.resolvers[node.name] ?? "hooked";
351
304
  default:
352
- throw new import_errors.CodamaError(import_errors.CODAMA_ERROR__UNEXPECTED_NODE_KIND, {
305
+ throw new errors.CodamaError(errors.CODAMA_ERROR__UNEXPECTED_NODE_KIND, {
353
306
  expectedKinds: [
354
307
  "AccountLinkNode",
355
308
  "DefinedTypeLinkNode",
@@ -364,12 +317,6 @@ function getImportFromFactory(overrides) {
364
317
  }
365
318
  };
366
319
  }
367
-
368
- // src/utils/render.ts
369
- var import_node_path = require("path");
370
- var import_node_url = require("url");
371
- var import_nodes3 = require("@codama/nodes");
372
- var import_nunjucks = __toESM(require("nunjucks"));
373
320
  function rustDocblock(docs) {
374
321
  if (docs.length <= 0) return "";
375
322
  const lines = docs.map((doc) => `/// ${doc}`);
@@ -377,14 +324,14 @@ function rustDocblock(docs) {
377
324
  `;
378
325
  }
379
326
  var render = (template, context, options) => {
380
- const dirname = false ? pathDirname(fileURLToPath(import_meta.url)) : __dirname;
381
- const templates = false ? (0, import_node_path.join)(dirname, "..", "..", "public", "templates") : (0, import_node_path.join)(dirname, "templates");
382
- const env = import_nunjucks.default.configure(templates, { autoescape: false, trimBlocks: true, ...options });
383
- env.addFilter("pascalCase", import_nodes3.pascalCase);
384
- env.addFilter("camelCase", import_nodes3.camelCase);
385
- env.addFilter("snakeCase", import_nodes3.snakeCase);
386
- env.addFilter("kebabCase", import_nodes3.kebabCase);
387
- env.addFilter("titleCase", import_nodes3.titleCase);
327
+ const dirname = __dirname;
328
+ const templates = path.join(dirname, "templates");
329
+ const env = nunjucks__default.default.configure(templates, { autoescape: false, trimBlocks: true, ...options });
330
+ env.addFilter("pascalCase", nodes.pascalCase);
331
+ env.addFilter("camelCase", nodes.camelCase);
332
+ env.addFilter("snakeCase", nodes.snakeCase);
333
+ env.addFilter("kebabCase", nodes.kebabCase);
334
+ env.addFilter("titleCase", nodes.titleCase);
388
335
  env.addFilter("rustDocblock", rustDocblock);
389
336
  env.addFilter("hasTrait", (traits, ...traitNames) => {
390
337
  if (typeof traits !== "string") return false;
@@ -392,9 +339,6 @@ var render = (template, context, options) => {
392
339
  });
393
340
  return env.render(template, context);
394
341
  };
395
-
396
- // src/utils/traitOptions.ts
397
- var import_nodes4 = require("@codama/nodes");
398
342
  var DEFAULT_TRAIT_OPTIONS = {
399
343
  baseDefaults: [
400
344
  "borsh::BorshSerialize",
@@ -417,14 +361,14 @@ function getTraitsFromNodeFactory(options = {}) {
417
361
  return (node) => getTraitsFromNode(node, options);
418
362
  }
419
363
  function getTraitsFromNode(node, userOptions = {}) {
420
- (0, import_nodes4.assertIsNode)(node, ["accountNode", "definedTypeNode", "instructionNode"]);
364
+ nodes.assertIsNode(node, ["accountNode", "definedTypeNode", "instructionNode"]);
421
365
  const options = { ...DEFAULT_TRAIT_OPTIONS, ...userOptions };
422
366
  const nodeType = getNodeType(node);
423
367
  if (nodeType === "alias") {
424
368
  return { imports: new ImportMap(), render: "" };
425
369
  }
426
370
  const sanitizedOverrides = Object.fromEntries(
427
- Object.entries(options.overrides).map(([key, value]) => [(0, import_nodes4.camelCase)(key), value])
371
+ Object.entries(options.overrides).map(([key, value]) => [nodes.camelCase(key), value])
428
372
  );
429
373
  const nodeOverrides = sanitizedOverrides[node.name];
430
374
  const allTraits = nodeOverrides === void 0 ? getDefaultTraits(nodeType, options) : nodeOverrides;
@@ -446,10 +390,10 @@ function getTraitsFromNode(node, userOptions = {}) {
446
390
  return { imports, render: traitLines.join("") };
447
391
  }
448
392
  function getNodeType(node) {
449
- if ((0, import_nodes4.isNode)(node, ["accountNode", "instructionNode"])) return "struct";
450
- if ((0, import_nodes4.isNode)(node.type, "structTypeNode")) return "struct";
451
- if ((0, import_nodes4.isNode)(node.type, "enumTypeNode")) {
452
- return (0, import_nodes4.isScalarEnum)(node.type) ? "scalarEnum" : "dataEnum";
393
+ if (nodes.isNode(node, ["accountNode", "instructionNode"])) return "struct";
394
+ if (nodes.isNode(node.type, "structTypeNode")) return "struct";
395
+ if (nodes.isNode(node.type, "enumTypeNode")) {
396
+ return nodes.isScalarEnum(node.type) ? "scalarEnum" : "dataEnum";
453
397
  }
454
398
  return "alias";
455
399
  }
@@ -495,14 +439,14 @@ function extractFullyQualifiedNames(traits, imports) {
495
439
  });
496
440
  }
497
441
  function getSerdeFieldAttribute(serdeWith, node, userOptions = {}) {
498
- (0, import_nodes4.assertIsNode)(node, ["accountNode", "definedTypeNode", "instructionNode"]);
442
+ nodes.assertIsNode(node, ["accountNode", "definedTypeNode", "instructionNode"]);
499
443
  const options = { ...DEFAULT_TRAIT_OPTIONS, ...userOptions };
500
444
  const nodeType = getNodeType(node);
501
445
  if (nodeType === "alias") {
502
446
  return "";
503
447
  }
504
448
  const sanitizedOverrides = Object.fromEntries(
505
- Object.entries(options.overrides).map(([key, value]) => [(0, import_nodes4.camelCase)(key), value])
449
+ Object.entries(options.overrides).map(([key, value]) => [nodes.camelCase(key), value])
506
450
  );
507
451
  const nodeOverrides = sanitizedOverrides[node.name];
508
452
  const allTraits = nodeOverrides === void 0 ? getDefaultTraits(nodeType, options) : nodeOverrides;
@@ -539,20 +483,20 @@ function getTypeManifestVisitor(options) {
539
483
  let inlineStruct = false;
540
484
  let parentSize = null;
541
485
  let parentNode = null;
542
- return (0, import_visitors_core3.pipe)(
543
- (0, import_visitors_core3.mergeVisitor)(
486
+ return visitorsCore.pipe(
487
+ visitorsCore.mergeVisitor(
544
488
  () => ({ imports: new ImportMap(), nestedStructs: [], type: "" }),
545
489
  (_, values) => ({
546
490
  ...mergeManifests(values),
547
491
  type: values.map((v) => v.type).join("\n")
548
492
  }),
549
- { keys: [...import_nodes5.REGISTERED_TYPE_NODE_KINDS, "definedTypeLinkNode", "definedTypeNode", "accountNode"] }
493
+ { keys: [...nodes.REGISTERED_TYPE_NODE_KINDS, "definedTypeLinkNode", "definedTypeNode", "accountNode"] }
550
494
  ),
551
- (v) => (0, import_visitors_core3.extendVisitor)(v, {
495
+ (v) => visitorsCore.extendVisitor(v, {
552
496
  visitAccount(account, { self }) {
553
- parentName = (0, import_nodes5.pascalCase)(account.name);
497
+ parentName = nodes.pascalCase(account.name);
554
498
  parentNode = account;
555
- const manifest = (0, import_visitors_core3.visit)(account.data, self);
499
+ const manifest = visitorsCore.visit(account.data, self);
556
500
  const traits = getTraitsFromNode2(account);
557
501
  manifest.imports.mergeWith(traits.imports);
558
502
  parentName = null;
@@ -563,21 +507,21 @@ function getTypeManifestVisitor(options) {
563
507
  };
564
508
  },
565
509
  visitArrayType(arrayType, { self }) {
566
- const childManifest = (0, import_visitors_core3.visit)(arrayType.item, self);
567
- if ((0, import_nodes5.isNode)(arrayType.count, "fixedCountNode")) {
510
+ const childManifest = visitorsCore.visit(arrayType.item, self);
511
+ if (nodes.isNode(arrayType.count, "fixedCountNode")) {
568
512
  return {
569
513
  ...childManifest,
570
514
  type: `[${childManifest.type}; ${arrayType.count.value}]`
571
515
  };
572
516
  }
573
- if ((0, import_nodes5.isNode)(arrayType.count, "remainderCountNode")) {
517
+ if (nodes.isNode(arrayType.count, "remainderCountNode")) {
574
518
  childManifest.imports.add("kaigan::types::RemainderVec");
575
519
  return {
576
520
  ...childManifest,
577
521
  type: `RemainderVec<${childManifest.type}>`
578
522
  };
579
523
  }
580
- const prefix = (0, import_nodes5.resolveNestedTypeNode)(arrayType.count.prefix);
524
+ const prefix = nodes.resolveNestedTypeNode(arrayType.count.prefix);
581
525
  if (prefix.endian === "le") {
582
526
  switch (prefix.format) {
583
527
  case "u32":
@@ -609,7 +553,7 @@ function getTypeManifestVisitor(options) {
609
553
  throw new Error("Array size not supported by Borsh");
610
554
  },
611
555
  visitBooleanType(booleanType) {
612
- const resolvedSize = (0, import_nodes5.resolveNestedTypeNode)(booleanType.size);
556
+ const resolvedSize = nodes.resolveNestedTypeNode(booleanType.size);
613
557
  if (resolvedSize.format === "u8" && resolvedSize.endian === "le") {
614
558
  return {
615
559
  imports: new ImportMap(),
@@ -620,28 +564,28 @@ function getTypeManifestVisitor(options) {
620
564
  throw new Error("Bool size not supported by Borsh");
621
565
  },
622
566
  visitBytesType(_bytesType, { self }) {
623
- let arraySize = (0, import_nodes5.remainderCountNode)();
567
+ let arraySize = nodes.remainderCountNode();
624
568
  if (typeof parentSize === "number") {
625
- arraySize = (0, import_nodes5.fixedCountNode)(parentSize);
569
+ arraySize = nodes.fixedCountNode(parentSize);
626
570
  } else if (parentSize && typeof parentSize === "object") {
627
- arraySize = (0, import_nodes5.prefixedCountNode)(parentSize);
571
+ arraySize = nodes.prefixedCountNode(parentSize);
628
572
  }
629
- const arrayType = (0, import_nodes5.arrayTypeNode)((0, import_nodes5.numberTypeNode)("u8"), arraySize);
630
- return (0, import_visitors_core3.visit)(arrayType, self);
573
+ const arrayType = nodes.arrayTypeNode(nodes.numberTypeNode("u8"), arraySize);
574
+ return visitorsCore.visit(arrayType, self);
631
575
  },
632
576
  visitDefinedType(definedType, { self }) {
633
- parentName = (0, import_nodes5.pascalCase)(definedType.name);
577
+ parentName = nodes.pascalCase(definedType.name);
634
578
  parentNode = definedType;
635
- const manifest = (0, import_visitors_core3.visit)(definedType.type, self);
579
+ const manifest = visitorsCore.visit(definedType.type, self);
636
580
  const traits = getTraitsFromNode2(definedType);
637
581
  manifest.imports.mergeWith(traits.imports);
638
582
  parentName = null;
639
583
  parentNode = null;
640
- const renderedType = (0, import_nodes5.isNode)(definedType.type, ["enumTypeNode", "structTypeNode"]) ? manifest.type : `pub type ${(0, import_nodes5.pascalCase)(definedType.name)} = ${manifest.type};`;
584
+ const renderedType = nodes.isNode(definedType.type, ["enumTypeNode", "structTypeNode"]) ? manifest.type : `pub type ${nodes.pascalCase(definedType.name)} = ${manifest.type};`;
641
585
  return { ...manifest, type: `${traits.render}${renderedType}` };
642
586
  },
643
587
  visitDefinedTypeLink(node) {
644
- const pascalCaseDefinedType = (0, import_nodes5.pascalCase)(node.name);
588
+ const pascalCaseDefinedType = nodes.pascalCase(node.name);
645
589
  const importFrom = getImportFrom(node);
646
590
  return {
647
591
  imports: new ImportMap().add(`${importFrom}::${pascalCaseDefinedType}`),
@@ -650,7 +594,7 @@ function getTypeManifestVisitor(options) {
650
594
  };
651
595
  },
652
596
  visitEnumEmptyVariantType(enumEmptyVariantType) {
653
- const name = (0, import_nodes5.pascalCase)(enumEmptyVariantType.name);
597
+ const name = nodes.pascalCase(enumEmptyVariantType.name);
654
598
  return {
655
599
  imports: new ImportMap(),
656
600
  nestedStructs: [],
@@ -658,14 +602,14 @@ function getTypeManifestVisitor(options) {
658
602
  };
659
603
  },
660
604
  visitEnumStructVariantType(enumStructVariantType, { self }) {
661
- const name = (0, import_nodes5.pascalCase)(enumStructVariantType.name);
605
+ const name = nodes.pascalCase(enumStructVariantType.name);
662
606
  const originalParentName = parentName;
663
607
  if (!originalParentName) {
664
608
  throw new Error("Enum struct variant type must have a parent name.");
665
609
  }
666
610
  inlineStruct = true;
667
- parentName = (0, import_nodes5.pascalCase)(originalParentName) + name;
668
- const typeManifest = (0, import_visitors_core3.visit)(enumStructVariantType.struct, self);
611
+ parentName = nodes.pascalCase(originalParentName) + name;
612
+ const typeManifest = visitorsCore.visit(enumStructVariantType.struct, self);
669
613
  inlineStruct = false;
670
614
  parentName = originalParentName;
671
615
  return {
@@ -674,13 +618,13 @@ function getTypeManifestVisitor(options) {
674
618
  };
675
619
  },
676
620
  visitEnumTupleVariantType(enumTupleVariantType, { self }) {
677
- const name = (0, import_nodes5.pascalCase)(enumTupleVariantType.name);
621
+ const name = nodes.pascalCase(enumTupleVariantType.name);
678
622
  const originalParentName = parentName;
679
623
  if (!originalParentName) {
680
624
  throw new Error("Enum struct variant type must have a parent name.");
681
625
  }
682
- parentName = (0, import_nodes5.pascalCase)(originalParentName) + name;
683
- const childManifest = (0, import_visitors_core3.visit)(enumTupleVariantType.tuple, self);
626
+ parentName = nodes.pascalCase(originalParentName) + name;
627
+ const childManifest = visitorsCore.visit(enumTupleVariantType.tuple, self);
684
628
  parentName = originalParentName;
685
629
  let derive = "";
686
630
  if (parentNode && childManifest.type === "(Pubkey)") {
@@ -706,25 +650,25 @@ function getTypeManifestVisitor(options) {
706
650
  if (!originalParentName) {
707
651
  throw new Error("Enum type must have a parent name.");
708
652
  }
709
- const variants = enumType.variants.map((variant) => (0, import_visitors_core3.visit)(variant, self));
653
+ const variants = enumType.variants.map((variant) => visitorsCore.visit(variant, self));
710
654
  const variantNames = variants.map((variant) => variant.type).join("\n");
711
655
  const mergedManifest = mergeManifests(variants);
712
656
  return {
713
657
  ...mergedManifest,
714
- type: `pub enum ${(0, import_nodes5.pascalCase)(originalParentName)} {
658
+ type: `pub enum ${nodes.pascalCase(originalParentName)} {
715
659
  ${variantNames}
716
660
  }`
717
661
  };
718
662
  },
719
663
  visitFixedSizeType(fixedSizeType, { self }) {
720
664
  parentSize = fixedSizeType.size;
721
- const manifest = (0, import_visitors_core3.visit)(fixedSizeType.type, self);
665
+ const manifest = visitorsCore.visit(fixedSizeType.type, self);
722
666
  parentSize = null;
723
667
  return manifest;
724
668
  },
725
669
  visitMapType(mapType, { self }) {
726
- const key = (0, import_visitors_core3.visit)(mapType.key, self);
727
- const value = (0, import_visitors_core3.visit)(mapType.value, self);
670
+ const key = visitorsCore.visit(mapType.key, self);
671
+ const value = visitorsCore.visit(mapType.value, self);
728
672
  const mergedManifest = mergeManifests([key, value]);
729
673
  mergedManifest.imports.add("std::collections::HashMap");
730
674
  return {
@@ -750,8 +694,8 @@ ${variantNames}
750
694
  };
751
695
  },
752
696
  visitOptionType(optionType, { self }) {
753
- const childManifest = (0, import_visitors_core3.visit)(optionType.item, self);
754
- const optionPrefix = (0, import_nodes5.resolveNestedTypeNode)(optionType.prefix);
697
+ const childManifest = visitorsCore.visit(optionType.item, self);
698
+ const optionPrefix = nodes.resolveNestedTypeNode(optionType.prefix);
755
699
  if (optionPrefix.format === "u8" && optionPrefix.endian === "le") {
756
700
  return {
757
701
  ...childManifest,
@@ -768,10 +712,10 @@ ${variantNames}
768
712
  };
769
713
  },
770
714
  visitRemainderOptionType(node) {
771
- throw new import_errors2.CodamaError(import_errors2.CODAMA_ERROR__RENDERERS__UNSUPPORTED_NODE, { kind: node.kind, node });
715
+ throw new errors.CodamaError(errors.CODAMA_ERROR__RENDERERS__UNSUPPORTED_NODE, { kind: node.kind, node });
772
716
  },
773
717
  visitSetType(setType, { self }) {
774
- const childManifest = (0, import_visitors_core3.visit)(setType.item, self);
718
+ const childManifest = visitorsCore.visit(setType.item, self);
775
719
  childManifest.imports.add("std::collections::HashSet");
776
720
  return {
777
721
  ...childManifest,
@@ -779,8 +723,8 @@ ${variantNames}
779
723
  };
780
724
  },
781
725
  visitSizePrefixType(sizePrefixType, { self }) {
782
- parentSize = (0, import_nodes5.resolveNestedTypeNode)(sizePrefixType.prefix);
783
- const manifest = (0, import_visitors_core3.visit)(sizePrefixType.type, self);
726
+ parentSize = nodes.resolveNestedTypeNode(sizePrefixType.prefix);
727
+ const manifest = visitorsCore.visit(sizePrefixType.type, self);
784
728
  parentSize = null;
785
729
  return manifest;
786
730
  },
@@ -799,7 +743,7 @@ ${variantNames}
799
743
  type: `[u8; ${parentSize}]`
800
744
  };
801
745
  }
802
- if ((0, import_nodes5.isNode)(parentSize, "numberTypeNode") && parentSize.endian === "le") {
746
+ if (nodes.isNode(parentSize, "numberTypeNode") && parentSize.endian === "le") {
803
747
  switch (parentSize.format) {
804
748
  case "u32":
805
749
  return {
@@ -830,16 +774,16 @@ ${variantNames}
830
774
  if (!originalParentName) {
831
775
  throw new Error("Struct field type must have a parent name.");
832
776
  }
833
- parentName = (0, import_nodes5.pascalCase)(originalParentName) + (0, import_nodes5.pascalCase)(structFieldType.name);
777
+ parentName = nodes.pascalCase(originalParentName) + nodes.pascalCase(structFieldType.name);
834
778
  nestedStruct = true;
835
779
  inlineStruct = false;
836
- const fieldManifest = (0, import_visitors_core3.visit)(structFieldType.type, self);
780
+ const fieldManifest = visitorsCore.visit(structFieldType.type, self);
837
781
  parentName = originalParentName;
838
782
  inlineStruct = originalInlineStruct;
839
783
  nestedStruct = originalNestedStruct;
840
- const fieldName = (0, import_nodes5.snakeCase)(structFieldType.name);
841
- const docblock = rustDocblock((0, import_nodes5.parseDocs)(structFieldType.docs));
842
- const resolvedNestedType = (0, import_nodes5.resolveNestedTypeNode)(structFieldType.type);
784
+ const fieldName = nodes.snakeCase(structFieldType.name);
785
+ const docblock = rustDocblock(nodes.parseDocs(structFieldType.docs));
786
+ const resolvedNestedType = nodes.resolveNestedTypeNode(structFieldType.type);
843
787
  let derive = "";
844
788
  if (parentNode) {
845
789
  if (fieldManifest.type === "Pubkey") {
@@ -854,9 +798,9 @@ ${variantNames}
854
798
  parentNode,
855
799
  traitOptions
856
800
  );
857
- } else if ((0, import_nodes5.isNode)(resolvedNestedType, "arrayTypeNode") && (0, import_nodes5.isNode)(resolvedNestedType.count, "fixedCountNode") && resolvedNestedType.count.value > 32) {
801
+ } else if (nodes.isNode(resolvedNestedType, "arrayTypeNode") && nodes.isNode(resolvedNestedType.count, "fixedCountNode") && resolvedNestedType.count.value > 32) {
858
802
  derive = getSerdeFieldAttribute("serde_big_array::BigArray", parentNode, traitOptions);
859
- } else if ((0, import_nodes5.isNode)(resolvedNestedType, ["bytesTypeNode", "stringTypeNode"]) && (0, import_nodes5.isNode)(structFieldType.type, "fixedSizeTypeNode") && structFieldType.type.size > 32) {
803
+ } else if (nodes.isNode(resolvedNestedType, ["bytesTypeNode", "stringTypeNode"]) && nodes.isNode(structFieldType.type, "fixedSizeTypeNode") && structFieldType.type.size > 32) {
860
804
  derive = getSerdeFieldAttribute(
861
805
  "serde_with::As::<serde_with::Bytes>",
862
806
  parentNode,
@@ -874,23 +818,23 @@ ${variantNames}
874
818
  if (!originalParentName) {
875
819
  throw new Error("Struct type must have a parent name.");
876
820
  }
877
- const fields = structType.fields.map((field) => (0, import_visitors_core3.visit)(field, self));
821
+ const fields = structType.fields.map((field) => visitorsCore.visit(field, self));
878
822
  const fieldTypes = fields.map((field) => field.type).join("\n");
879
823
  const mergedManifest = mergeManifests(fields);
880
824
  if (nestedStruct) {
881
825
  const nestedTraits = getTraitsFromNode2(
882
- (0, import_nodes5.definedTypeNode)({ name: originalParentName, type: structType })
826
+ nodes.definedTypeNode({ name: originalParentName, type: structType })
883
827
  );
884
828
  mergedManifest.imports.mergeWith(nestedTraits.imports);
885
829
  return {
886
830
  ...mergedManifest,
887
831
  nestedStructs: [
888
832
  ...mergedManifest.nestedStructs,
889
- `${nestedTraits.render}pub struct ${(0, import_nodes5.pascalCase)(originalParentName)} {
833
+ `${nestedTraits.render}pub struct ${nodes.pascalCase(originalParentName)} {
890
834
  ${fieldTypes}
891
835
  }`
892
836
  ],
893
- type: (0, import_nodes5.pascalCase)(originalParentName)
837
+ type: nodes.pascalCase(originalParentName)
894
838
  };
895
839
  }
896
840
  if (inlineStruct) {
@@ -900,13 +844,13 @@ ${fieldTypes}
900
844
  }
901
845
  return {
902
846
  ...mergedManifest,
903
- type: `pub struct ${(0, import_nodes5.pascalCase)(originalParentName)} {
847
+ type: `pub struct ${nodes.pascalCase(originalParentName)} {
904
848
  ${fieldTypes}
905
849
  }`
906
850
  };
907
851
  },
908
852
  visitTupleType(tupleType, { self }) {
909
- const items = tupleType.items.map((item) => (0, import_visitors_core3.visit)(item, self));
853
+ const items = tupleType.items.map((item) => visitorsCore.visit(item, self));
910
854
  const mergedManifest = mergeManifests(items);
911
855
  return {
912
856
  ...mergedManifest,
@@ -914,7 +858,7 @@ ${fieldTypes}
914
858
  };
915
859
  },
916
860
  visitZeroableOptionType(node) {
917
- throw new import_errors2.CodamaError(import_errors2.CODAMA_ERROR__RENDERERS__UNSUPPORTED_NODE, { kind: node.kind, node });
861
+ throw new errors.CodamaError(errors.CODAMA_ERROR__RENDERERS__UNSUPPORTED_NODE, { kind: node.kind, node });
918
862
  }
919
863
  })
920
864
  );
@@ -928,8 +872,8 @@ function mergeManifests(manifests) {
928
872
 
929
873
  // src/getRenderMapVisitor.ts
930
874
  function getRenderMapVisitor(options = {}) {
931
- const linkables = new import_visitors_core4.LinkableDictionary();
932
- const stack = new import_visitors_core4.NodeStack();
875
+ const linkables = new visitorsCore.LinkableDictionary();
876
+ const stack = new visitorsCore.NodeStack();
933
877
  let program = null;
934
878
  const renderParentInstructions = options.renderParentInstructions ?? false;
935
879
  const dependencyMap = options.dependencyMap ?? {};
@@ -941,14 +885,14 @@ function getRenderMapVisitor(options = {}) {
941
885
  traitOptions: options.traitOptions
942
886
  });
943
887
  const anchorTraits = options.anchorTraits ?? true;
944
- return (0, import_visitors_core4.pipe)(
945
- (0, import_visitors_core4.staticVisitor)(() => (0, import_renderers_core.createRenderMap)(), {
888
+ return visitorsCore.pipe(
889
+ visitorsCore.staticVisitor(() => renderersCore.createRenderMap(), {
946
890
  keys: ["rootNode", "programNode", "instructionNode", "accountNode", "definedTypeNode"]
947
891
  }),
948
- (v) => (0, import_visitors_core4.extendVisitor)(v, {
892
+ (v) => visitorsCore.extendVisitor(v, {
949
893
  visitAccount(node) {
950
- const typeManifest = (0, import_visitors_core4.visit)(node, typeManifestVisitor);
951
- const fields = (0, import_nodes6.resolveNestedTypeNode)(node.data).fields;
894
+ const typeManifest = visitorsCore.visit(node, typeManifestVisitor);
895
+ const fields = nodes.resolveNestedTypeNode(node.data).fields;
952
896
  const discriminatorConstants = getDiscriminatorConstants({
953
897
  discriminatorNodes: node.discriminators ?? [],
954
898
  fields,
@@ -960,35 +904,35 @@ function getRenderMapVisitor(options = {}) {
960
904
  const pda = node.pda ? linkables.get([...stack.getPath(), node.pda]) : void 0;
961
905
  const pdaSeeds = pda?.seeds ?? [];
962
906
  const seeds = pdaSeeds.map((seed) => {
963
- if ((0, import_nodes6.isNode)(seed, "variablePdaSeedNode")) {
964
- const seedManifest2 = (0, import_visitors_core4.visit)(seed.type, typeManifestVisitor);
907
+ if (nodes.isNode(seed, "variablePdaSeedNode")) {
908
+ const seedManifest2 = visitorsCore.visit(seed.type, typeManifestVisitor);
965
909
  seedsImports.mergeWith(seedManifest2.imports);
966
- const resolvedType2 = (0, import_nodes6.resolveNestedTypeNode)(seed.type);
910
+ const resolvedType2 = nodes.resolveNestedTypeNode(seed.type);
967
911
  return { ...seed, resolvedType: resolvedType2, typeManifest: seedManifest2 };
968
912
  }
969
- if ((0, import_nodes6.isNode)(seed.value, "programIdValueNode")) {
913
+ if (nodes.isNode(seed.value, "programIdValueNode")) {
970
914
  return seed;
971
915
  }
972
- const seedManifest = (0, import_visitors_core4.visit)(seed.type, typeManifestVisitor);
916
+ const seedManifest = visitorsCore.visit(seed.type, typeManifestVisitor);
973
917
  const valueManifest = renderValueNode(seed.value, getImportFrom, true);
974
918
  seedsImports.mergeWith(valueManifest.imports);
975
- const resolvedType = (0, import_nodes6.resolveNestedTypeNode)(seed.type);
919
+ const resolvedType = nodes.resolveNestedTypeNode(seed.type);
976
920
  return { ...seed, resolvedType, typeManifest: seedManifest, valueManifest };
977
921
  });
978
- const hasVariableSeeds = pdaSeeds.filter((0, import_nodes6.isNodeFilter)("variablePdaSeedNode")).length > 0;
979
- const constantSeeds = seeds.filter((0, import_nodes6.isNodeFilter)("constantPdaSeedNode")).filter((seed) => !(0, import_nodes6.isNode)(seed.value, "programIdValueNode"));
922
+ const hasVariableSeeds = pdaSeeds.filter(nodes.isNodeFilter("variablePdaSeedNode")).length > 0;
923
+ const constantSeeds = seeds.filter(nodes.isNodeFilter("constantPdaSeedNode")).filter((seed) => !nodes.isNode(seed.value, "programIdValueNode"));
980
924
  const { imports } = typeManifest;
981
925
  if (hasVariableSeeds) {
982
926
  imports.mergeWith(seedsImports);
983
927
  }
984
- return (0, import_renderers_core.createRenderMap)(`accounts/${(0, import_nodes6.snakeCase)(node.name)}.rs`, {
928
+ return renderersCore.createRenderMap(`accounts/${nodes.snakeCase(node.name)}.rs`, {
985
929
  content: render("accountsPage.njk", {
986
930
  account: node,
987
931
  anchorTraits,
988
932
  constantSeeds,
989
933
  discriminatorConstants: discriminatorConstants.render,
990
934
  hasVariableSeeds,
991
- imports: imports.mergeWith(discriminatorConstants.imports).remove(`generatedAccounts::${(0, import_nodes6.pascalCase)(node.name)}`).toString(dependencyMap),
935
+ imports: imports.mergeWith(discriminatorConstants.imports).remove(`generatedAccounts::${nodes.pascalCase(node.name)}`).toString(dependencyMap),
992
936
  pda,
993
937
  program,
994
938
  seeds,
@@ -997,12 +941,12 @@ function getRenderMapVisitor(options = {}) {
997
941
  });
998
942
  },
999
943
  visitDefinedType(node) {
1000
- const typeManifest = (0, import_visitors_core4.visit)(node, typeManifestVisitor);
944
+ const typeManifest = visitorsCore.visit(node, typeManifestVisitor);
1001
945
  const imports = new ImportMap().mergeWithManifest(typeManifest);
1002
- return (0, import_renderers_core.createRenderMap)(`types/${(0, import_nodes6.snakeCase)(node.name)}.rs`, {
946
+ return renderersCore.createRenderMap(`types/${nodes.snakeCase(node.name)}.rs`, {
1003
947
  content: render("definedTypesPage.njk", {
1004
948
  definedType: node,
1005
- imports: imports.remove(`generatedTypes::${(0, import_nodes6.pascalCase)(node.name)}`).toString(dependencyMap),
949
+ imports: imports.remove(`generatedTypes::${nodes.pascalCase(node.name)}`).toString(dependencyMap),
1006
950
  typeManifest
1007
951
  })
1008
952
  });
@@ -1011,7 +955,7 @@ function getRenderMapVisitor(options = {}) {
1011
955
  const imports = new ImportMap();
1012
956
  const accountsAndArgsConflicts = getConflictsForInstructionAccountsAndArgs(node);
1013
957
  if (accountsAndArgsConflicts.length > 0) {
1014
- (0, import_errors3.logWarn)(
958
+ errors.logWarn(
1015
959
  `[Rust] Accounts and args of instruction [${node.name}] have the following conflicting attributes [${accountsAndArgsConflicts.join(", ")}]. Thus, the conflicting arguments will be suffixed with "_arg". You may want to rename the conflicting attributes.`
1016
960
  );
1017
961
  }
@@ -1030,12 +974,12 @@ function getRenderMapVisitor(options = {}) {
1030
974
  getImportFrom,
1031
975
  getTraitsFromNode: getTraitsFromNode2,
1032
976
  nestedStruct: true,
1033
- parentName: `${(0, import_nodes6.pascalCase)(node.name)}InstructionData`
977
+ parentName: `${nodes.pascalCase(node.name)}InstructionData`
1034
978
  });
1035
- const manifest = (0, import_visitors_core4.visit)(argument.type, argumentVisitor);
979
+ const manifest = visitorsCore.visit(argument.type, argumentVisitor);
1036
980
  imports.mergeWith(manifest.imports);
1037
- const innerOptionType = (0, import_nodes6.isNode)(argument.type, "optionTypeNode") ? manifest.type.slice("Option<".length, -1) : null;
1038
- const hasDefaultValue = !!argument.defaultValue && (0, import_nodes6.isNode)(argument.defaultValue, import_nodes6.VALUE_NODES);
981
+ const innerOptionType = nodes.isNode(argument.type, "optionTypeNode") ? manifest.type.slice("Option<".length, -1) : null;
982
+ const hasDefaultValue = !!argument.defaultValue && nodes.isNode(argument.defaultValue, nodes.VALUE_NODES);
1039
983
  let renderValue = null;
1040
984
  if (hasDefaultValue) {
1041
985
  const { imports: argImports, render: value } = renderValueNode(
@@ -1057,22 +1001,22 @@ function getRenderMapVisitor(options = {}) {
1057
1001
  value: renderValue
1058
1002
  });
1059
1003
  });
1060
- const struct = (0, import_nodes6.structTypeNodeFromInstructionArgumentNodes)(node.arguments);
1004
+ const struct = nodes.structTypeNodeFromInstructionArgumentNodes(node.arguments);
1061
1005
  const structVisitor = getTypeManifestVisitor({
1062
1006
  getImportFrom,
1063
1007
  getTraitsFromNode: getTraitsFromNode2,
1064
- parentName: `${(0, import_nodes6.pascalCase)(node.name)}InstructionData`
1008
+ parentName: `${nodes.pascalCase(node.name)}InstructionData`
1065
1009
  });
1066
- const typeManifest = (0, import_visitors_core4.visit)(struct, structVisitor);
1010
+ const typeManifest = visitorsCore.visit(struct, structVisitor);
1067
1011
  const dataTraits = getTraitsFromNode2(node);
1068
1012
  imports.mergeWith(dataTraits.imports);
1069
- return (0, import_renderers_core.createRenderMap)(`instructions/${(0, import_nodes6.snakeCase)(node.name)}.rs`, {
1013
+ return renderersCore.createRenderMap(`instructions/${nodes.snakeCase(node.name)}.rs`, {
1070
1014
  content: render("instructionsPage.njk", {
1071
1015
  dataTraits: dataTraits.render,
1072
1016
  discriminatorConstants: discriminatorConstants.render,
1073
1017
  hasArgs,
1074
1018
  hasOptional,
1075
- imports: imports.mergeWith(discriminatorConstants.imports).remove(`generatedInstructions::${(0, import_nodes6.pascalCase)(node.name)}`).toString(dependencyMap),
1019
+ imports: imports.mergeWith(discriminatorConstants.imports).remove(`generatedInstructions::${nodes.pascalCase(node.name)}`).toString(dependencyMap),
1076
1020
  instruction: node,
1077
1021
  instructionArgs,
1078
1022
  program,
@@ -1082,15 +1026,15 @@ function getRenderMapVisitor(options = {}) {
1082
1026
  },
1083
1027
  visitProgram(node, { self }) {
1084
1028
  program = node;
1085
- let renders = (0, import_renderers_core.mergeRenderMaps)([
1086
- ...node.accounts.map((account) => (0, import_visitors_core4.visit)(account, self)),
1087
- ...node.definedTypes.map((type) => (0, import_visitors_core4.visit)(type, self)),
1088
- ...(0, import_nodes6.getAllInstructionsWithSubs)(node, {
1029
+ let renders = renderersCore.mergeRenderMaps([
1030
+ ...node.accounts.map((account) => visitorsCore.visit(account, self)),
1031
+ ...node.definedTypes.map((type) => visitorsCore.visit(type, self)),
1032
+ ...nodes.getAllInstructionsWithSubs(node, {
1089
1033
  leavesOnly: !renderParentInstructions
1090
- }).map((ix) => (0, import_visitors_core4.visit)(ix, self))
1034
+ }).map((ix) => visitorsCore.visit(ix, self))
1091
1035
  ]);
1092
1036
  if (node.errors.length > 0) {
1093
- renders = (0, import_renderers_core.addToRenderMap)(renders, `errors/${(0, import_nodes6.snakeCase)(node.name)}.rs`, {
1037
+ renders = renderersCore.addToRenderMap(renders, `errors/${nodes.snakeCase(node.name)}.rs`, {
1094
1038
  content: render("errorsPage.njk", {
1095
1039
  errors: node.errors,
1096
1040
  imports: new ImportMap().toString(dependencyMap),
@@ -1102,12 +1046,12 @@ function getRenderMapVisitor(options = {}) {
1102
1046
  return renders;
1103
1047
  },
1104
1048
  visitRoot(node, { self }) {
1105
- const programsToExport = (0, import_nodes6.getAllPrograms)(node);
1106
- const accountsToExport = (0, import_nodes6.getAllAccounts)(node);
1107
- const instructionsToExport = (0, import_nodes6.getAllInstructionsWithSubs)(node, {
1049
+ const programsToExport = nodes.getAllPrograms(node);
1050
+ const accountsToExport = nodes.getAllAccounts(node);
1051
+ const instructionsToExport = nodes.getAllInstructionsWithSubs(node, {
1108
1052
  leavesOnly: !renderParentInstructions
1109
1053
  });
1110
- const definedTypesToExport = (0, import_nodes6.getAllDefinedTypes)(node);
1054
+ const definedTypesToExport = nodes.getAllDefinedTypes(node);
1111
1055
  const hasAnythingToExport = programsToExport.length > 0 || accountsToExport.length > 0 || instructionsToExport.length > 0 || definedTypesToExport.length > 0;
1112
1056
  const ctx = {
1113
1057
  accountsToExport,
@@ -1117,8 +1061,8 @@ function getRenderMapVisitor(options = {}) {
1117
1061
  programsToExport,
1118
1062
  root: node
1119
1063
  };
1120
- return (0, import_renderers_core.mergeRenderMaps)([
1121
- (0, import_renderers_core.createRenderMap)({
1064
+ return renderersCore.mergeRenderMaps([
1065
+ renderersCore.createRenderMap({
1122
1066
  ["accounts/mod.rs"]: accountsToExport.length > 0 ? { content: render("accountsMod.njk", ctx) } : void 0,
1123
1067
  ["errors/mod.rs"]: programsToExport.length > 0 ? { content: render("errorsMod.njk", ctx) } : void 0,
1124
1068
  ["instructions/mod.rs"]: instructionsToExport.length > 0 ? { content: render("instructionsMod.njk", ctx) } : void 0,
@@ -1127,12 +1071,12 @@ function getRenderMapVisitor(options = {}) {
1127
1071
  ["shared.rs"]: accountsToExport.length > 0 ? { content: render("sharedPage.njk", ctx) } : void 0,
1128
1072
  ["types/mod.rs"]: definedTypesToExport.length > 0 ? { content: render("definedTypesMod.njk", ctx) } : void 0
1129
1073
  }),
1130
- ...(0, import_nodes6.getAllPrograms)(node).map((p) => (0, import_visitors_core4.visit)(p, self))
1074
+ ...nodes.getAllPrograms(node).map((p) => visitorsCore.visit(p, self))
1131
1075
  ]);
1132
1076
  }
1133
1077
  }),
1134
- (v) => (0, import_visitors_core4.recordNodeStackVisitor)(v, stack),
1135
- (v) => (0, import_visitors_core4.recordLinkablesOnFirstVisitVisitor)(v, linkables)
1078
+ (v) => visitorsCore.recordNodeStackVisitor(v, stack),
1079
+ (v) => visitorsCore.recordLinkablesOnFirstVisitVisitor(v, linkables)
1136
1080
  );
1137
1081
  }
1138
1082
  function getConflictsForInstructionAccountsAndArgs(instruction) {
@@ -1143,18 +1087,12 @@ function getConflictsForInstructionAccountsAndArgs(instruction) {
1143
1087
  const duplicates = allNames.filter((e, i, a) => a.indexOf(e) !== i);
1144
1088
  return [...new Set(duplicates)];
1145
1089
  }
1146
-
1147
- // src/renderVisitor.ts
1148
- var import_errors4 = require("@codama/errors");
1149
- var import_renderers_core2 = require("@codama/renderers-core");
1150
- var import_visitors_core5 = require("@codama/visitors-core");
1151
- var import_child_process = require("child_process");
1152
1090
  function renderVisitor(path, options = {}) {
1153
- return (0, import_visitors_core5.rootNodeVisitor)((root) => {
1091
+ return visitorsCore.rootNodeVisitor((root) => {
1154
1092
  if (options.deleteFolderBeforeRendering ?? true) {
1155
- (0, import_renderers_core2.deleteDirectory)(path);
1093
+ renderersCore.deleteDirectory(path);
1156
1094
  }
1157
- (0, import_visitors_core5.visit)(root, (0, import_renderers_core2.writeRenderMapVisitor)(getRenderMapVisitor(options), path));
1095
+ visitorsCore.visit(root, renderersCore.writeRenderMapVisitor(getRenderMapVisitor(options), path));
1158
1096
  if (options.formatCode) {
1159
1097
  if (options.crateFolder) {
1160
1098
  const removeFalsy = (arg) => Boolean(arg);
@@ -1165,29 +1103,29 @@ function renderVisitor(path, options = {}) {
1165
1103
  )
1166
1104
  );
1167
1105
  } else {
1168
- (0, import_errors4.logWarn)("No crate folder specified, skipping formatting.");
1106
+ errors.logWarn("No crate folder specified, skipping formatting.");
1169
1107
  }
1170
1108
  }
1171
1109
  });
1172
1110
  }
1173
1111
  function runFormatter(cmd, args) {
1174
- const { stdout, stderr, error } = (0, import_child_process.spawnSync)(cmd, args);
1112
+ const { stdout, stderr, error } = child_process.spawnSync(cmd, args);
1175
1113
  if (error?.message?.includes("ENOENT")) {
1176
- (0, import_errors4.logWarn)(`Could not find ${cmd}, skipping formatting.`);
1114
+ errors.logWarn(`Could not find ${cmd}, skipping formatting.`);
1177
1115
  return;
1178
1116
  }
1179
1117
  if (stdout.length > 0) {
1180
- (0, import_errors4.logWarn)(`(cargo-fmt) ${stdout ? stdout?.toString() : error}`);
1118
+ errors.logWarn(`(cargo-fmt) ${stdout ? stdout?.toString() : error}`);
1181
1119
  }
1182
1120
  if (stderr.length > 0) {
1183
- (0, import_errors4.logError)(`(cargo-fmt) ${stderr ? stderr.toString() : error}`);
1121
+ errors.logError(`(cargo-fmt) ${stderr ? stderr.toString() : error}`);
1184
1122
  }
1185
1123
  }
1186
- // Annotate the CommonJS export names for ESM import in node:
1187
- 0 && (module.exports = {
1188
- ImportMap,
1189
- getRenderMapVisitor,
1190
- getTypeManifestVisitor,
1191
- renderVisitor
1192
- });
1124
+
1125
+ exports.ImportMap = ImportMap;
1126
+ exports.default = renderVisitor;
1127
+ exports.getRenderMapVisitor = getRenderMapVisitor;
1128
+ exports.getTypeManifestVisitor = getTypeManifestVisitor;
1129
+ exports.renderVisitor = renderVisitor;
1130
+ //# sourceMappingURL=index.node.cjs.map
1193
1131
  //# sourceMappingURL=index.node.cjs.map