@codama/renderers-rust 1.2.7 → 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,3 +1,13 @@
1
+ import { CodamaError, CODAMA_ERROR__RENDERERS__UNSUPPORTED_NODE, logWarn, logError, CODAMA_ERROR__UNEXPECTED_NODE_KIND } from '@codama/errors';
2
+ import { REGISTERED_TYPE_NODE_KINDS, definedTypeNode, pascalCase, snakeCase, parseDocs, resolveNestedTypeNode, isNode, remainderCountNode, fixedCountNode, prefixedCountNode, arrayTypeNode, numberTypeNode, getAllPrograms, getAllAccounts, getAllInstructionsWithSubs, getAllDefinedTypes, VALUE_NODES, structTypeNodeFromInstructionArgumentNodes, isNodeFilter, camelCase, kebabCase, titleCase, assertIsNode, bytesValueNode, numberValueNode, arrayValueNode, isScalarEnum } from '@codama/nodes';
3
+ import { createRenderMap, mergeRenderMaps, addToRenderMap, deleteDirectory, writeRenderMapVisitor } from '@codama/renderers-core';
4
+ import { pipe, mergeVisitor, extendVisitor, visit, LinkableDictionary, NodeStack, staticVisitor, recordNodeStackVisitor, recordLinkablesOnFirstVisitVisitor, rootNodeVisitor } from '@codama/visitors-core';
5
+ import { getBase64Encoder, getBase58Encoder, getBase16Encoder, getUtf8Encoder } from '@solana/codecs-strings';
6
+ import { dirname, join } from 'path';
7
+ import { fileURLToPath } from 'url';
8
+ import nunjucks from 'nunjucks';
9
+ import { spawnSync } from 'child_process';
10
+
1
11
  // src/ImportMap.ts
2
12
  var DEFAULT_MODULE_MAP = {
3
13
  generated: "crate::generated",
@@ -68,54 +78,6 @@ var ImportMap = class _ImportMap {
68
78
  return importStatements.join("\n");
69
79
  }
70
80
  };
71
-
72
- // src/getRenderMapVisitor.ts
73
- import { logWarn } from "@codama/errors";
74
- import {
75
- getAllAccounts,
76
- getAllDefinedTypes,
77
- getAllInstructionsWithSubs,
78
- getAllPrograms,
79
- isNode as isNode5,
80
- isNodeFilter as isNodeFilter2,
81
- pascalCase as pascalCase4,
82
- resolveNestedTypeNode as resolveNestedTypeNode2,
83
- snakeCase as snakeCase4,
84
- structTypeNodeFromInstructionArgumentNodes,
85
- VALUE_NODES as VALUE_NODES2
86
- } from "@codama/nodes";
87
- import { addToRenderMap, createRenderMap, mergeRenderMaps } from "@codama/renderers-core";
88
- import {
89
- extendVisitor as extendVisitor2,
90
- LinkableDictionary,
91
- NodeStack,
92
- pipe as pipe2,
93
- recordLinkablesOnFirstVisitVisitor,
94
- recordNodeStackVisitor,
95
- staticVisitor,
96
- visit as visit4
97
- } from "@codama/visitors-core";
98
-
99
- // src/getTypeManifestVisitor.ts
100
- import { CODAMA_ERROR__RENDERERS__UNSUPPORTED_NODE, CodamaError as CodamaError2 } from "@codama/errors";
101
- import {
102
- arrayTypeNode,
103
- definedTypeNode,
104
- fixedCountNode,
105
- isNode as isNode4,
106
- numberTypeNode,
107
- parseDocs,
108
- pascalCase as pascalCase3,
109
- prefixedCountNode,
110
- REGISTERED_TYPE_NODE_KINDS,
111
- remainderCountNode,
112
- resolveNestedTypeNode,
113
- snakeCase as snakeCase3
114
- } from "@codama/nodes";
115
- import { extendVisitor, mergeVisitor, pipe, visit as visit3 } from "@codama/visitors-core";
116
-
117
- // src/utils/codecs.ts
118
- import { getBase16Encoder, getBase58Encoder, getBase64Encoder, getUtf8Encoder } from "@solana/codecs-strings";
119
81
  function getBytesFromBytesValueNode(node) {
120
82
  switch (node.encoding) {
121
83
  case "utf8":
@@ -129,26 +91,6 @@ function getBytesFromBytesValueNode(node) {
129
91
  return getBase64Encoder().encode(node.data);
130
92
  }
131
93
  }
132
-
133
- // src/utils/discriminatorConstant.ts
134
- import {
135
- camelCase,
136
- isNode as isNode2,
137
- isNodeFilter,
138
- snakeCase,
139
- VALUE_NODES
140
- } from "@codama/nodes";
141
- import { visit as visit2 } from "@codama/visitors-core";
142
-
143
- // src/renderValueNodeVisitor.ts
144
- import {
145
- arrayValueNode,
146
- bytesValueNode,
147
- isNode,
148
- numberValueNode,
149
- pascalCase
150
- } from "@codama/nodes";
151
- import { visit } from "@codama/visitors-core";
152
94
  function renderValueNode(value, getImportFrom, useStr = false) {
153
95
  return visit(value, renderValueNodeVisitor(getImportFrom, useStr));
154
96
  }
@@ -308,18 +250,18 @@ function getConstantDiscriminatorConstant(discriminatorNode, scope) {
308
250
  const index = discriminatorNodes.filter(isNodeFilter("constantDiscriminatorNode")).indexOf(discriminatorNode);
309
251
  const suffix = index <= 0 ? "" : `_${index + 1}`;
310
252
  const name = camelCase(`${prefix}_discriminator${suffix}`);
311
- const typeManifest = visit2(discriminatorNode.constant.type, typeManifestVisitor);
253
+ const typeManifest = visit(discriminatorNode.constant.type, typeManifestVisitor);
312
254
  const value = renderValueNode(discriminatorNode.constant.value, getImportFrom);
313
255
  return getConstant(name, typeManifest, value);
314
256
  }
315
257
  function getFieldDiscriminatorConstant(discriminatorNode, scope) {
316
258
  const { fields, prefix, getImportFrom, typeManifestVisitor } = scope;
317
259
  const field = fields.find((f) => f.name === discriminatorNode.name);
318
- if (!field || !field.defaultValue || !isNode2(field.defaultValue, VALUE_NODES)) {
260
+ if (!field || !field.defaultValue || !isNode(field.defaultValue, VALUE_NODES)) {
319
261
  return null;
320
262
  }
321
263
  const name = camelCase(`${prefix}_${discriminatorNode.name}`);
322
- const typeManifest = visit2(field.type, typeManifestVisitor);
264
+ const typeManifest = visit(field.type, typeManifestVisitor);
323
265
  const value = renderValueNode(field.defaultValue, getImportFrom);
324
266
  return getConstant(name, typeManifest, value);
325
267
  }
@@ -327,9 +269,6 @@ function getConstant(name, typeManifest, value) {
327
269
  const type = { imports: typeManifest.imports, render: typeManifest.type };
328
270
  return mergeFragments([type, value], ([t, v]) => `pub const ${snakeCase(name).toUpperCase()}: ${t} = ${v};`);
329
271
  }
330
-
331
- // src/utils/linkOverrides.ts
332
- import { CODAMA_ERROR__UNEXPECTED_NODE_KIND, CodamaError } from "@codama/errors";
333
272
  function getImportFromFactory(overrides) {
334
273
  const linkOverrides = {
335
274
  accounts: overrides.accounts ?? {},
@@ -370,12 +309,6 @@ function getImportFromFactory(overrides) {
370
309
  }
371
310
  };
372
311
  }
373
-
374
- // src/utils/render.ts
375
- import { dirname as pathDirname, join } from "path";
376
- import { fileURLToPath } from "url";
377
- import { camelCase as camelCase2, kebabCase, pascalCase as pascalCase2, snakeCase as snakeCase2, titleCase } from "@codama/nodes";
378
- import nunjucks from "nunjucks";
379
312
  function rustDocblock(docs) {
380
313
  if (docs.length <= 0) return "";
381
314
  const lines = docs.map((doc) => `/// ${doc}`);
@@ -383,12 +316,12 @@ function rustDocblock(docs) {
383
316
  `;
384
317
  }
385
318
  var render = (template, context, options) => {
386
- const dirname = true ? pathDirname(fileURLToPath(import.meta.url)) : __dirname;
387
- const templates = false ? join(dirname, "..", "..", "public", "templates") : join(dirname, "templates");
319
+ const dirname$1 = dirname(fileURLToPath(import.meta.url)) ;
320
+ const templates = join(dirname$1, "templates");
388
321
  const env = nunjucks.configure(templates, { autoescape: false, trimBlocks: true, ...options });
389
- env.addFilter("pascalCase", pascalCase2);
390
- env.addFilter("camelCase", camelCase2);
391
- env.addFilter("snakeCase", snakeCase2);
322
+ env.addFilter("pascalCase", pascalCase);
323
+ env.addFilter("camelCase", camelCase);
324
+ env.addFilter("snakeCase", snakeCase);
392
325
  env.addFilter("kebabCase", kebabCase);
393
326
  env.addFilter("titleCase", titleCase);
394
327
  env.addFilter("rustDocblock", rustDocblock);
@@ -398,14 +331,6 @@ var render = (template, context, options) => {
398
331
  });
399
332
  return env.render(template, context);
400
333
  };
401
-
402
- // src/utils/traitOptions.ts
403
- import {
404
- assertIsNode,
405
- camelCase as camelCase3,
406
- isNode as isNode3,
407
- isScalarEnum
408
- } from "@codama/nodes";
409
334
  var DEFAULT_TRAIT_OPTIONS = {
410
335
  baseDefaults: [
411
336
  "borsh::BorshSerialize",
@@ -435,7 +360,7 @@ function getTraitsFromNode(node, userOptions = {}) {
435
360
  return { imports: new ImportMap(), render: "" };
436
361
  }
437
362
  const sanitizedOverrides = Object.fromEntries(
438
- Object.entries(options.overrides).map(([key, value]) => [camelCase3(key), value])
363
+ Object.entries(options.overrides).map(([key, value]) => [camelCase(key), value])
439
364
  );
440
365
  const nodeOverrides = sanitizedOverrides[node.name];
441
366
  const allTraits = nodeOverrides === void 0 ? getDefaultTraits(nodeType, options) : nodeOverrides;
@@ -457,9 +382,9 @@ function getTraitsFromNode(node, userOptions = {}) {
457
382
  return { imports, render: traitLines.join("") };
458
383
  }
459
384
  function getNodeType(node) {
460
- if (isNode3(node, ["accountNode", "instructionNode"])) return "struct";
461
- if (isNode3(node.type, "structTypeNode")) return "struct";
462
- if (isNode3(node.type, "enumTypeNode")) {
385
+ if (isNode(node, ["accountNode", "instructionNode"])) return "struct";
386
+ if (isNode(node.type, "structTypeNode")) return "struct";
387
+ if (isNode(node.type, "enumTypeNode")) {
463
388
  return isScalarEnum(node.type) ? "scalarEnum" : "dataEnum";
464
389
  }
465
390
  return "alias";
@@ -513,7 +438,7 @@ function getSerdeFieldAttribute(serdeWith, node, userOptions = {}) {
513
438
  return "";
514
439
  }
515
440
  const sanitizedOverrides = Object.fromEntries(
516
- Object.entries(options.overrides).map(([key, value]) => [camelCase3(key), value])
441
+ Object.entries(options.overrides).map(([key, value]) => [camelCase(key), value])
517
442
  );
518
443
  const nodeOverrides = sanitizedOverrides[node.name];
519
444
  const allTraits = nodeOverrides === void 0 ? getDefaultTraits(nodeType, options) : nodeOverrides;
@@ -561,9 +486,9 @@ function getTypeManifestVisitor(options) {
561
486
  ),
562
487
  (v) => extendVisitor(v, {
563
488
  visitAccount(account, { self }) {
564
- parentName = pascalCase3(account.name);
489
+ parentName = pascalCase(account.name);
565
490
  parentNode = account;
566
- const manifest = visit3(account.data, self);
491
+ const manifest = visit(account.data, self);
567
492
  const traits = getTraitsFromNode2(account);
568
493
  manifest.imports.mergeWith(traits.imports);
569
494
  parentName = null;
@@ -574,14 +499,14 @@ function getTypeManifestVisitor(options) {
574
499
  };
575
500
  },
576
501
  visitArrayType(arrayType, { self }) {
577
- const childManifest = visit3(arrayType.item, self);
578
- if (isNode4(arrayType.count, "fixedCountNode")) {
502
+ const childManifest = visit(arrayType.item, self);
503
+ if (isNode(arrayType.count, "fixedCountNode")) {
579
504
  return {
580
505
  ...childManifest,
581
506
  type: `[${childManifest.type}; ${arrayType.count.value}]`
582
507
  };
583
508
  }
584
- if (isNode4(arrayType.count, "remainderCountNode")) {
509
+ if (isNode(arrayType.count, "remainderCountNode")) {
585
510
  childManifest.imports.add("kaigan::types::RemainderVec");
586
511
  return {
587
512
  ...childManifest,
@@ -638,21 +563,21 @@ function getTypeManifestVisitor(options) {
638
563
  arraySize = prefixedCountNode(parentSize);
639
564
  }
640
565
  const arrayType = arrayTypeNode(numberTypeNode("u8"), arraySize);
641
- return visit3(arrayType, self);
566
+ return visit(arrayType, self);
642
567
  },
643
568
  visitDefinedType(definedType, { self }) {
644
- parentName = pascalCase3(definedType.name);
569
+ parentName = pascalCase(definedType.name);
645
570
  parentNode = definedType;
646
- const manifest = visit3(definedType.type, self);
571
+ const manifest = visit(definedType.type, self);
647
572
  const traits = getTraitsFromNode2(definedType);
648
573
  manifest.imports.mergeWith(traits.imports);
649
574
  parentName = null;
650
575
  parentNode = null;
651
- const renderedType = isNode4(definedType.type, ["enumTypeNode", "structTypeNode"]) ? manifest.type : `pub type ${pascalCase3(definedType.name)} = ${manifest.type};`;
576
+ const renderedType = isNode(definedType.type, ["enumTypeNode", "structTypeNode"]) ? manifest.type : `pub type ${pascalCase(definedType.name)} = ${manifest.type};`;
652
577
  return { ...manifest, type: `${traits.render}${renderedType}` };
653
578
  },
654
579
  visitDefinedTypeLink(node) {
655
- const pascalCaseDefinedType = pascalCase3(node.name);
580
+ const pascalCaseDefinedType = pascalCase(node.name);
656
581
  const importFrom = getImportFrom(node);
657
582
  return {
658
583
  imports: new ImportMap().add(`${importFrom}::${pascalCaseDefinedType}`),
@@ -661,7 +586,7 @@ function getTypeManifestVisitor(options) {
661
586
  };
662
587
  },
663
588
  visitEnumEmptyVariantType(enumEmptyVariantType) {
664
- const name = pascalCase3(enumEmptyVariantType.name);
589
+ const name = pascalCase(enumEmptyVariantType.name);
665
590
  return {
666
591
  imports: new ImportMap(),
667
592
  nestedStructs: [],
@@ -669,14 +594,14 @@ function getTypeManifestVisitor(options) {
669
594
  };
670
595
  },
671
596
  visitEnumStructVariantType(enumStructVariantType, { self }) {
672
- const name = pascalCase3(enumStructVariantType.name);
597
+ const name = pascalCase(enumStructVariantType.name);
673
598
  const originalParentName = parentName;
674
599
  if (!originalParentName) {
675
600
  throw new Error("Enum struct variant type must have a parent name.");
676
601
  }
677
602
  inlineStruct = true;
678
- parentName = pascalCase3(originalParentName) + name;
679
- const typeManifest = visit3(enumStructVariantType.struct, self);
603
+ parentName = pascalCase(originalParentName) + name;
604
+ const typeManifest = visit(enumStructVariantType.struct, self);
680
605
  inlineStruct = false;
681
606
  parentName = originalParentName;
682
607
  return {
@@ -685,13 +610,13 @@ function getTypeManifestVisitor(options) {
685
610
  };
686
611
  },
687
612
  visitEnumTupleVariantType(enumTupleVariantType, { self }) {
688
- const name = pascalCase3(enumTupleVariantType.name);
613
+ const name = pascalCase(enumTupleVariantType.name);
689
614
  const originalParentName = parentName;
690
615
  if (!originalParentName) {
691
616
  throw new Error("Enum struct variant type must have a parent name.");
692
617
  }
693
- parentName = pascalCase3(originalParentName) + name;
694
- const childManifest = visit3(enumTupleVariantType.tuple, self);
618
+ parentName = pascalCase(originalParentName) + name;
619
+ const childManifest = visit(enumTupleVariantType.tuple, self);
695
620
  parentName = originalParentName;
696
621
  let derive = "";
697
622
  if (parentNode && childManifest.type === "(Pubkey)") {
@@ -717,25 +642,25 @@ function getTypeManifestVisitor(options) {
717
642
  if (!originalParentName) {
718
643
  throw new Error("Enum type must have a parent name.");
719
644
  }
720
- const variants = enumType.variants.map((variant) => visit3(variant, self));
645
+ const variants = enumType.variants.map((variant) => visit(variant, self));
721
646
  const variantNames = variants.map((variant) => variant.type).join("\n");
722
647
  const mergedManifest = mergeManifests(variants);
723
648
  return {
724
649
  ...mergedManifest,
725
- type: `pub enum ${pascalCase3(originalParentName)} {
650
+ type: `pub enum ${pascalCase(originalParentName)} {
726
651
  ${variantNames}
727
652
  }`
728
653
  };
729
654
  },
730
655
  visitFixedSizeType(fixedSizeType, { self }) {
731
656
  parentSize = fixedSizeType.size;
732
- const manifest = visit3(fixedSizeType.type, self);
657
+ const manifest = visit(fixedSizeType.type, self);
733
658
  parentSize = null;
734
659
  return manifest;
735
660
  },
736
661
  visitMapType(mapType, { self }) {
737
- const key = visit3(mapType.key, self);
738
- const value = visit3(mapType.value, self);
662
+ const key = visit(mapType.key, self);
663
+ const value = visit(mapType.value, self);
739
664
  const mergedManifest = mergeManifests([key, value]);
740
665
  mergedManifest.imports.add("std::collections::HashMap");
741
666
  return {
@@ -761,7 +686,7 @@ ${variantNames}
761
686
  };
762
687
  },
763
688
  visitOptionType(optionType, { self }) {
764
- const childManifest = visit3(optionType.item, self);
689
+ const childManifest = visit(optionType.item, self);
765
690
  const optionPrefix = resolveNestedTypeNode(optionType.prefix);
766
691
  if (optionPrefix.format === "u8" && optionPrefix.endian === "le") {
767
692
  return {
@@ -779,10 +704,10 @@ ${variantNames}
779
704
  };
780
705
  },
781
706
  visitRemainderOptionType(node) {
782
- throw new CodamaError2(CODAMA_ERROR__RENDERERS__UNSUPPORTED_NODE, { kind: node.kind, node });
707
+ throw new CodamaError(CODAMA_ERROR__RENDERERS__UNSUPPORTED_NODE, { kind: node.kind, node });
783
708
  },
784
709
  visitSetType(setType, { self }) {
785
- const childManifest = visit3(setType.item, self);
710
+ const childManifest = visit(setType.item, self);
786
711
  childManifest.imports.add("std::collections::HashSet");
787
712
  return {
788
713
  ...childManifest,
@@ -791,7 +716,7 @@ ${variantNames}
791
716
  },
792
717
  visitSizePrefixType(sizePrefixType, { self }) {
793
718
  parentSize = resolveNestedTypeNode(sizePrefixType.prefix);
794
- const manifest = visit3(sizePrefixType.type, self);
719
+ const manifest = visit(sizePrefixType.type, self);
795
720
  parentSize = null;
796
721
  return manifest;
797
722
  },
@@ -810,7 +735,7 @@ ${variantNames}
810
735
  type: `[u8; ${parentSize}]`
811
736
  };
812
737
  }
813
- if (isNode4(parentSize, "numberTypeNode") && parentSize.endian === "le") {
738
+ if (isNode(parentSize, "numberTypeNode") && parentSize.endian === "le") {
814
739
  switch (parentSize.format) {
815
740
  case "u32":
816
741
  return {
@@ -841,14 +766,14 @@ ${variantNames}
841
766
  if (!originalParentName) {
842
767
  throw new Error("Struct field type must have a parent name.");
843
768
  }
844
- parentName = pascalCase3(originalParentName) + pascalCase3(structFieldType.name);
769
+ parentName = pascalCase(originalParentName) + pascalCase(structFieldType.name);
845
770
  nestedStruct = true;
846
771
  inlineStruct = false;
847
- const fieldManifest = visit3(structFieldType.type, self);
772
+ const fieldManifest = visit(structFieldType.type, self);
848
773
  parentName = originalParentName;
849
774
  inlineStruct = originalInlineStruct;
850
775
  nestedStruct = originalNestedStruct;
851
- const fieldName = snakeCase3(structFieldType.name);
776
+ const fieldName = snakeCase(structFieldType.name);
852
777
  const docblock = rustDocblock(parseDocs(structFieldType.docs));
853
778
  const resolvedNestedType = resolveNestedTypeNode(structFieldType.type);
854
779
  let derive = "";
@@ -865,9 +790,9 @@ ${variantNames}
865
790
  parentNode,
866
791
  traitOptions
867
792
  );
868
- } else if (isNode4(resolvedNestedType, "arrayTypeNode") && isNode4(resolvedNestedType.count, "fixedCountNode") && resolvedNestedType.count.value > 32) {
793
+ } else if (isNode(resolvedNestedType, "arrayTypeNode") && isNode(resolvedNestedType.count, "fixedCountNode") && resolvedNestedType.count.value > 32) {
869
794
  derive = getSerdeFieldAttribute("serde_big_array::BigArray", parentNode, traitOptions);
870
- } else if (isNode4(resolvedNestedType, ["bytesTypeNode", "stringTypeNode"]) && isNode4(structFieldType.type, "fixedSizeTypeNode") && structFieldType.type.size > 32) {
795
+ } else if (isNode(resolvedNestedType, ["bytesTypeNode", "stringTypeNode"]) && isNode(structFieldType.type, "fixedSizeTypeNode") && structFieldType.type.size > 32) {
871
796
  derive = getSerdeFieldAttribute(
872
797
  "serde_with::As::<serde_with::Bytes>",
873
798
  parentNode,
@@ -885,7 +810,7 @@ ${variantNames}
885
810
  if (!originalParentName) {
886
811
  throw new Error("Struct type must have a parent name.");
887
812
  }
888
- const fields = structType.fields.map((field) => visit3(field, self));
813
+ const fields = structType.fields.map((field) => visit(field, self));
889
814
  const fieldTypes = fields.map((field) => field.type).join("\n");
890
815
  const mergedManifest = mergeManifests(fields);
891
816
  if (nestedStruct) {
@@ -897,11 +822,11 @@ ${variantNames}
897
822
  ...mergedManifest,
898
823
  nestedStructs: [
899
824
  ...mergedManifest.nestedStructs,
900
- `${nestedTraits.render}pub struct ${pascalCase3(originalParentName)} {
825
+ `${nestedTraits.render}pub struct ${pascalCase(originalParentName)} {
901
826
  ${fieldTypes}
902
827
  }`
903
828
  ],
904
- type: pascalCase3(originalParentName)
829
+ type: pascalCase(originalParentName)
905
830
  };
906
831
  }
907
832
  if (inlineStruct) {
@@ -911,13 +836,13 @@ ${fieldTypes}
911
836
  }
912
837
  return {
913
838
  ...mergedManifest,
914
- type: `pub struct ${pascalCase3(originalParentName)} {
839
+ type: `pub struct ${pascalCase(originalParentName)} {
915
840
  ${fieldTypes}
916
841
  }`
917
842
  };
918
843
  },
919
844
  visitTupleType(tupleType, { self }) {
920
- const items = tupleType.items.map((item) => visit3(item, self));
845
+ const items = tupleType.items.map((item) => visit(item, self));
921
846
  const mergedManifest = mergeManifests(items);
922
847
  return {
923
848
  ...mergedManifest,
@@ -925,7 +850,7 @@ ${fieldTypes}
925
850
  };
926
851
  },
927
852
  visitZeroableOptionType(node) {
928
- throw new CodamaError2(CODAMA_ERROR__RENDERERS__UNSUPPORTED_NODE, { kind: node.kind, node });
853
+ throw new CodamaError(CODAMA_ERROR__RENDERERS__UNSUPPORTED_NODE, { kind: node.kind, node });
929
854
  }
930
855
  })
931
856
  );
@@ -952,14 +877,14 @@ function getRenderMapVisitor(options = {}) {
952
877
  traitOptions: options.traitOptions
953
878
  });
954
879
  const anchorTraits = options.anchorTraits ?? true;
955
- return pipe2(
880
+ return pipe(
956
881
  staticVisitor(() => createRenderMap(), {
957
882
  keys: ["rootNode", "programNode", "instructionNode", "accountNode", "definedTypeNode"]
958
883
  }),
959
- (v) => extendVisitor2(v, {
884
+ (v) => extendVisitor(v, {
960
885
  visitAccount(node) {
961
- const typeManifest = visit4(node, typeManifestVisitor);
962
- const fields = resolveNestedTypeNode2(node.data).fields;
886
+ const typeManifest = visit(node, typeManifestVisitor);
887
+ const fields = resolveNestedTypeNode(node.data).fields;
963
888
  const discriminatorConstants = getDiscriminatorConstants({
964
889
  discriminatorNodes: node.discriminators ?? [],
965
890
  fields,
@@ -971,54 +896,52 @@ function getRenderMapVisitor(options = {}) {
971
896
  const pda = node.pda ? linkables.get([...stack.getPath(), node.pda]) : void 0;
972
897
  const pdaSeeds = pda?.seeds ?? [];
973
898
  const seeds = pdaSeeds.map((seed) => {
974
- if (isNode5(seed, "variablePdaSeedNode")) {
975
- const seedManifest2 = visit4(seed.type, typeManifestVisitor);
899
+ if (isNode(seed, "variablePdaSeedNode")) {
900
+ const seedManifest2 = visit(seed.type, typeManifestVisitor);
976
901
  seedsImports.mergeWith(seedManifest2.imports);
977
- const resolvedType2 = resolveNestedTypeNode2(seed.type);
902
+ const resolvedType2 = resolveNestedTypeNode(seed.type);
978
903
  return { ...seed, resolvedType: resolvedType2, typeManifest: seedManifest2 };
979
904
  }
980
- if (isNode5(seed.value, "programIdValueNode")) {
905
+ if (isNode(seed.value, "programIdValueNode")) {
981
906
  return seed;
982
907
  }
983
- const seedManifest = visit4(seed.type, typeManifestVisitor);
908
+ const seedManifest = visit(seed.type, typeManifestVisitor);
984
909
  const valueManifest = renderValueNode(seed.value, getImportFrom, true);
985
910
  seedsImports.mergeWith(valueManifest.imports);
986
- const resolvedType = resolveNestedTypeNode2(seed.type);
911
+ const resolvedType = resolveNestedTypeNode(seed.type);
987
912
  return { ...seed, resolvedType, typeManifest: seedManifest, valueManifest };
988
913
  });
989
- const hasVariableSeeds = pdaSeeds.filter(isNodeFilter2("variablePdaSeedNode")).length > 0;
990
- const constantSeeds = seeds.filter(isNodeFilter2("constantPdaSeedNode")).filter((seed) => !isNode5(seed.value, "programIdValueNode"));
914
+ const hasVariableSeeds = pdaSeeds.filter(isNodeFilter("variablePdaSeedNode")).length > 0;
915
+ const constantSeeds = seeds.filter(isNodeFilter("constantPdaSeedNode")).filter((seed) => !isNode(seed.value, "programIdValueNode"));
991
916
  const { imports } = typeManifest;
992
917
  if (hasVariableSeeds) {
993
918
  imports.mergeWith(seedsImports);
994
919
  }
995
- return createRenderMap(
996
- `accounts/${snakeCase4(node.name)}.rs`,
997
- render("accountsPage.njk", {
920
+ return createRenderMap(`accounts/${snakeCase(node.name)}.rs`, {
921
+ content: render("accountsPage.njk", {
998
922
  account: node,
999
923
  anchorTraits,
1000
924
  constantSeeds,
1001
925
  discriminatorConstants: discriminatorConstants.render,
1002
926
  hasVariableSeeds,
1003
- imports: imports.mergeWith(discriminatorConstants.imports).remove(`generatedAccounts::${pascalCase4(node.name)}`).toString(dependencyMap),
927
+ imports: imports.mergeWith(discriminatorConstants.imports).remove(`generatedAccounts::${pascalCase(node.name)}`).toString(dependencyMap),
1004
928
  pda,
1005
929
  program,
1006
930
  seeds,
1007
931
  typeManifest
1008
932
  })
1009
- );
933
+ });
1010
934
  },
1011
935
  visitDefinedType(node) {
1012
- const typeManifest = visit4(node, typeManifestVisitor);
936
+ const typeManifest = visit(node, typeManifestVisitor);
1013
937
  const imports = new ImportMap().mergeWithManifest(typeManifest);
1014
- return createRenderMap(
1015
- `types/${snakeCase4(node.name)}.rs`,
1016
- render("definedTypesPage.njk", {
938
+ return createRenderMap(`types/${snakeCase(node.name)}.rs`, {
939
+ content: render("definedTypesPage.njk", {
1017
940
  definedType: node,
1018
- imports: imports.remove(`generatedTypes::${pascalCase4(node.name)}`).toString(dependencyMap),
941
+ imports: imports.remove(`generatedTypes::${pascalCase(node.name)}`).toString(dependencyMap),
1019
942
  typeManifest
1020
943
  })
1021
- );
944
+ });
1022
945
  },
1023
946
  visitInstruction(node) {
1024
947
  const imports = new ImportMap();
@@ -1043,12 +966,12 @@ function getRenderMapVisitor(options = {}) {
1043
966
  getImportFrom,
1044
967
  getTraitsFromNode: getTraitsFromNode2,
1045
968
  nestedStruct: true,
1046
- parentName: `${pascalCase4(node.name)}InstructionData`
969
+ parentName: `${pascalCase(node.name)}InstructionData`
1047
970
  });
1048
- const manifest = visit4(argument.type, argumentVisitor);
971
+ const manifest = visit(argument.type, argumentVisitor);
1049
972
  imports.mergeWith(manifest.imports);
1050
- const innerOptionType = isNode5(argument.type, "optionTypeNode") ? manifest.type.slice("Option<".length, -1) : null;
1051
- const hasDefaultValue = !!argument.defaultValue && isNode5(argument.defaultValue, VALUE_NODES2);
973
+ const innerOptionType = isNode(argument.type, "optionTypeNode") ? manifest.type.slice("Option<".length, -1) : null;
974
+ const hasDefaultValue = !!argument.defaultValue && isNode(argument.defaultValue, VALUE_NODES);
1052
975
  let renderValue = null;
1053
976
  if (hasDefaultValue) {
1054
977
  const { imports: argImports, render: value } = renderValueNode(
@@ -1074,45 +997,42 @@ function getRenderMapVisitor(options = {}) {
1074
997
  const structVisitor = getTypeManifestVisitor({
1075
998
  getImportFrom,
1076
999
  getTraitsFromNode: getTraitsFromNode2,
1077
- parentName: `${pascalCase4(node.name)}InstructionData`
1000
+ parentName: `${pascalCase(node.name)}InstructionData`
1078
1001
  });
1079
- const typeManifest = visit4(struct, structVisitor);
1002
+ const typeManifest = visit(struct, structVisitor);
1080
1003
  const dataTraits = getTraitsFromNode2(node);
1081
1004
  imports.mergeWith(dataTraits.imports);
1082
- return createRenderMap(
1083
- `instructions/${snakeCase4(node.name)}.rs`,
1084
- render("instructionsPage.njk", {
1005
+ return createRenderMap(`instructions/${snakeCase(node.name)}.rs`, {
1006
+ content: render("instructionsPage.njk", {
1085
1007
  dataTraits: dataTraits.render,
1086
1008
  discriminatorConstants: discriminatorConstants.render,
1087
1009
  hasArgs,
1088
1010
  hasOptional,
1089
- imports: imports.mergeWith(discriminatorConstants.imports).remove(`generatedInstructions::${pascalCase4(node.name)}`).toString(dependencyMap),
1011
+ imports: imports.mergeWith(discriminatorConstants.imports).remove(`generatedInstructions::${pascalCase(node.name)}`).toString(dependencyMap),
1090
1012
  instruction: node,
1091
1013
  instructionArgs,
1092
1014
  program,
1093
1015
  typeManifest
1094
1016
  })
1095
- );
1017
+ });
1096
1018
  },
1097
1019
  visitProgram(node, { self }) {
1098
1020
  program = node;
1099
1021
  let renders = mergeRenderMaps([
1100
- ...node.accounts.map((account) => visit4(account, self)),
1101
- ...node.definedTypes.map((type) => visit4(type, self)),
1022
+ ...node.accounts.map((account) => visit(account, self)),
1023
+ ...node.definedTypes.map((type) => visit(type, self)),
1102
1024
  ...getAllInstructionsWithSubs(node, {
1103
1025
  leavesOnly: !renderParentInstructions
1104
- }).map((ix) => visit4(ix, self))
1026
+ }).map((ix) => visit(ix, self))
1105
1027
  ]);
1106
1028
  if (node.errors.length > 0) {
1107
- renders = addToRenderMap(
1108
- renders,
1109
- `errors/${snakeCase4(node.name)}.rs`,
1110
- render("errorsPage.njk", {
1029
+ renders = addToRenderMap(renders, `errors/${snakeCase(node.name)}.rs`, {
1030
+ content: render("errorsPage.njk", {
1111
1031
  errors: node.errors,
1112
1032
  imports: new ImportMap().toString(dependencyMap),
1113
1033
  program: node
1114
1034
  })
1115
- );
1035
+ });
1116
1036
  }
1117
1037
  program = null;
1118
1038
  return renders;
@@ -1135,15 +1055,15 @@ function getRenderMapVisitor(options = {}) {
1135
1055
  };
1136
1056
  return mergeRenderMaps([
1137
1057
  createRenderMap({
1138
- ["accounts/mod.rs"]: accountsToExport.length > 0 ? render("accountsMod.njk", ctx) : void 0,
1139
- ["errors/mod.rs"]: programsToExport.length > 0 ? render("errorsMod.njk", ctx) : void 0,
1140
- ["instructions/mod.rs"]: instructionsToExport.length > 0 ? render("instructionsMod.njk", ctx) : void 0,
1141
- ["mod.rs"]: render("rootMod.njk", ctx),
1142
- ["programs.rs"]: programsToExport.length > 0 ? render("programsMod.njk", ctx) : void 0,
1143
- ["shared.rs"]: accountsToExport.length > 0 ? render("sharedPage.njk", ctx) : void 0,
1144
- ["types/mod.rs"]: definedTypesToExport.length > 0 ? render("definedTypesMod.njk", ctx) : void 0
1058
+ ["accounts/mod.rs"]: accountsToExport.length > 0 ? { content: render("accountsMod.njk", ctx) } : void 0,
1059
+ ["errors/mod.rs"]: programsToExport.length > 0 ? { content: render("errorsMod.njk", ctx) } : void 0,
1060
+ ["instructions/mod.rs"]: instructionsToExport.length > 0 ? { content: render("instructionsMod.njk", ctx) } : void 0,
1061
+ ["mod.rs"]: { content: render("rootMod.njk", ctx) },
1062
+ ["programs.rs"]: programsToExport.length > 0 ? { content: render("programsMod.njk", ctx) } : void 0,
1063
+ ["shared.rs"]: accountsToExport.length > 0 ? { content: render("sharedPage.njk", ctx) } : void 0,
1064
+ ["types/mod.rs"]: definedTypesToExport.length > 0 ? { content: render("definedTypesMod.njk", ctx) } : void 0
1145
1065
  }),
1146
- ...getAllPrograms(node).map((p) => visit4(p, self))
1066
+ ...getAllPrograms(node).map((p) => visit(p, self))
1147
1067
  ]);
1148
1068
  }
1149
1069
  }),
@@ -1159,18 +1079,12 @@ function getConflictsForInstructionAccountsAndArgs(instruction) {
1159
1079
  const duplicates = allNames.filter((e, i, a) => a.indexOf(e) !== i);
1160
1080
  return [...new Set(duplicates)];
1161
1081
  }
1162
-
1163
- // src/renderVisitor.ts
1164
- import { logError, logWarn as logWarn2 } from "@codama/errors";
1165
- import { deleteDirectory, writeRenderMapVisitor } from "@codama/renderers-core";
1166
- import { rootNodeVisitor, visit as visit5 } from "@codama/visitors-core";
1167
- import { spawnSync } from "child_process";
1168
1082
  function renderVisitor(path, options = {}) {
1169
1083
  return rootNodeVisitor((root) => {
1170
1084
  if (options.deleteFolderBeforeRendering ?? true) {
1171
1085
  deleteDirectory(path);
1172
1086
  }
1173
- visit5(root, writeRenderMapVisitor(getRenderMapVisitor(options), path));
1087
+ visit(root, writeRenderMapVisitor(getRenderMapVisitor(options), path));
1174
1088
  if (options.formatCode) {
1175
1089
  if (options.crateFolder) {
1176
1090
  const removeFalsy = (arg) => Boolean(arg);
@@ -1181,7 +1095,7 @@ function renderVisitor(path, options = {}) {
1181
1095
  )
1182
1096
  );
1183
1097
  } else {
1184
- logWarn2("No crate folder specified, skipping formatting.");
1098
+ logWarn("No crate folder specified, skipping formatting.");
1185
1099
  }
1186
1100
  }
1187
1101
  });
@@ -1189,21 +1103,17 @@ function renderVisitor(path, options = {}) {
1189
1103
  function runFormatter(cmd, args) {
1190
1104
  const { stdout, stderr, error } = spawnSync(cmd, args);
1191
1105
  if (error?.message?.includes("ENOENT")) {
1192
- logWarn2(`Could not find ${cmd}, skipping formatting.`);
1106
+ logWarn(`Could not find ${cmd}, skipping formatting.`);
1193
1107
  return;
1194
1108
  }
1195
1109
  if (stdout.length > 0) {
1196
- logWarn2(`(cargo-fmt) ${stdout ? stdout?.toString() : error}`);
1110
+ logWarn(`(cargo-fmt) ${stdout ? stdout?.toString() : error}`);
1197
1111
  }
1198
1112
  if (stderr.length > 0) {
1199
1113
  logError(`(cargo-fmt) ${stderr ? stderr.toString() : error}`);
1200
1114
  }
1201
1115
  }
1202
- export {
1203
- ImportMap,
1204
- renderVisitor as default,
1205
- getRenderMapVisitor,
1206
- getTypeManifestVisitor,
1207
- renderVisitor
1208
- };
1116
+
1117
+ export { ImportMap, renderVisitor as default, getRenderMapVisitor, getTypeManifestVisitor, renderVisitor };
1118
+ //# sourceMappingURL=index.node.mjs.map
1209
1119
  //# sourceMappingURL=index.node.mjs.map