@codama/spec 1.6.0-rc.0 → 1.6.0-rc.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.
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.react-native.mjs"}
1
+ {"version":3,"sources":["../src/api/attribute.ts","../src/api/compounds.ts","../src/api/defineEnumeration.ts","../src/api/defineNode.ts","../src/api/defineUnion.ts","../src/api/primitives.ts","../src/api/semanticAliases.ts","../src/api/validate.ts","../src/v1/enumerations.ts","../src/v1/nestedTypeNodeWrappers.ts","../src/v1/nodes/AccountNode.ts","../src/v1/nodes/ConstantNode.ts","../src/v1/nodes/contextualValueNodes/AccountBumpValueNode.ts","../src/v1/nodes/contextualValueNodes/AccountValueNode.ts","../src/v1/nodes/contextualValueNodes/ArgumentValueNode.ts","../src/v1/nodes/contextualValueNodes/ConditionalValueNode.ts","../src/v1/nodes/contextualValueNodes/ContextualValueNode.ts","../src/v1/nodes/contextualValueNodes/IdentityValueNode.ts","../src/v1/nodes/contextualValueNodes/PayerValueNode.ts","../src/v1/nodes/contextualValueNodes/PdaSeedValueNode.ts","../src/v1/nodes/contextualValueNodes/PdaValueNode.ts","../src/v1/nodes/contextualValueNodes/ProgramIdValueNode.ts","../src/v1/nodes/contextualValueNodes/ResolverValueNode.ts","../src/v1/nodes/contextualValueNodes/index.ts","../src/v1/nodes/countNodes/CountNode.ts","../src/v1/nodes/countNodes/FixedCountNode.ts","../src/v1/nodes/countNodes/PrefixedCountNode.ts","../src/v1/nodes/countNodes/RemainderCountNode.ts","../src/v1/nodes/countNodes/index.ts","../src/v1/nodes/DefinedTypeNode.ts","../src/v1/nodes/discriminatorNodes/ConstantDiscriminatorNode.ts","../src/v1/nodes/discriminatorNodes/DiscriminatorNode.ts","../src/v1/nodes/discriminatorNodes/FieldDiscriminatorNode.ts","../src/v1/nodes/discriminatorNodes/SizeDiscriminatorNode.ts","../src/v1/nodes/discriminatorNodes/index.ts","../src/v1/nodes/ErrorNode.ts","../src/v1/nodes/EventNode.ts","../src/v1/nodes/InstructionAccountNode.ts","../src/v1/nodes/InstructionArgumentNode.ts","../src/v1/nodes/InstructionByteDeltaNode.ts","../src/v1/nodes/InstructionNode.ts","../src/v1/nodes/InstructionNodeUnions.ts","../src/v1/nodes/InstructionRemainingAccountsNode.ts","../src/v1/nodes/InstructionStatusNode.ts","../src/v1/nodes/linkNodes/AccountLinkNode.ts","../src/v1/nodes/linkNodes/DefinedTypeLinkNode.ts","../src/v1/nodes/linkNodes/InstructionAccountLinkNode.ts","../src/v1/nodes/linkNodes/InstructionArgumentLinkNode.ts","../src/v1/nodes/linkNodes/InstructionLinkNode.ts","../src/v1/nodes/linkNodes/LinkNode.ts","../src/v1/nodes/linkNodes/PdaLinkNode.ts","../src/v1/nodes/linkNodes/ProgramLinkNode.ts","../src/v1/nodes/linkNodes/index.ts","../src/v1/nodes/PdaNode.ts","../src/v1/nodes/pdaSeedNodes/ConstantPdaSeedNode.ts","../src/v1/nodes/pdaSeedNodes/PdaSeedNode.ts","../src/v1/nodes/pdaSeedNodes/VariablePdaSeedNode.ts","../src/v1/nodes/pdaSeedNodes/index.ts","../src/v1/nodes/ProgramNode.ts","../src/v1/nodes/RootNode.ts","../src/v1/nodes/typeNodes/AmountTypeNode.ts","../src/v1/nodes/typeNodes/ArrayTypeNode.ts","../src/v1/nodes/typeNodes/BooleanTypeNode.ts","../src/v1/nodes/typeNodes/BytesTypeNode.ts","../src/v1/nodes/typeNodes/DateTimeTypeNode.ts","../src/v1/nodes/typeNodes/EnumEmptyVariantTypeNode.ts","../src/v1/nodes/typeNodes/EnumStructVariantTypeNode.ts","../src/v1/nodes/typeNodes/EnumTupleVariantTypeNode.ts","../src/v1/nodes/typeNodes/EnumTypeNode.ts","../src/v1/nodes/typeNodes/FixedSizeTypeNode.ts","../src/v1/nodes/typeNodes/HiddenPrefixTypeNode.ts","../src/v1/nodes/typeNodes/HiddenSuffixTypeNode.ts","../src/v1/nodes/typeNodes/MapTypeNode.ts","../src/v1/nodes/typeNodes/NumberTypeNode.ts","../src/v1/nodes/typeNodes/OptionTypeNode.ts","../src/v1/nodes/typeNodes/PostOffsetTypeNode.ts","../src/v1/nodes/typeNodes/PreOffsetTypeNode.ts","../src/v1/nodes/typeNodes/PublicKeyTypeNode.ts","../src/v1/nodes/typeNodes/RemainderOptionTypeNode.ts","../src/v1/nodes/typeNodes/SentinelTypeNode.ts","../src/v1/nodes/typeNodes/SetTypeNode.ts","../src/v1/nodes/typeNodes/SizePrefixTypeNode.ts","../src/v1/nodes/typeNodes/SolAmountTypeNode.ts","../src/v1/nodes/typeNodes/StringTypeNode.ts","../src/v1/nodes/typeNodes/StructFieldTypeNode.ts","../src/v1/nodes/typeNodes/StructTypeNode.ts","../src/v1/nodes/typeNodes/TupleTypeNode.ts","../src/v1/nodes/typeNodes/TypeNode.ts","../src/v1/nodes/typeNodes/ZeroableOptionTypeNode.ts","../src/v1/nodes/typeNodes/index.ts","../src/v1/nodes/valueNodes/ArrayValueNode.ts","../src/v1/nodes/valueNodes/BooleanValueNode.ts","../src/v1/nodes/valueNodes/BytesValueNode.ts","../src/v1/nodes/valueNodes/ConstantValueNode.ts","../src/v1/nodes/valueNodes/EnumValueNode.ts","../src/v1/nodes/valueNodes/MapEntryValueNode.ts","../src/v1/nodes/valueNodes/MapValueNode.ts","../src/v1/nodes/valueNodes/NoneValueNode.ts","../src/v1/nodes/valueNodes/NumberValueNode.ts","../src/v1/nodes/valueNodes/PublicKeyValueNode.ts","../src/v1/nodes/valueNodes/SetValueNode.ts","../src/v1/nodes/valueNodes/SomeValueNode.ts","../src/v1/nodes/valueNodes/StringValueNode.ts","../src/v1/nodes/valueNodes/StructFieldValueNode.ts","../src/v1/nodes/valueNodes/StructValueNode.ts","../src/v1/nodes/valueNodes/TupleValueNode.ts","../src/v1/nodes/valueNodes/ValueNode.ts","../src/v1/nodes/valueNodes/index.ts","../src/v1/nodes/index.ts","../src/v1/index.ts"],"names":[],"mappings":"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","file":"index.react-native.mjs","sourcesContent":["/**\n * Attribute factories — produce frozen `AttributeSpec` values directly.\n *\n * Every attribute of a node MUST be constructed via one of these helpers.\n * The returned value IS the encoded form; `defineNode` consumes them as-is.\n */\n\nimport type { AttributeSpec, TypeExpr } from './types';\n\nexport interface AttributeOptions {\n /** Free-form prose description for codegen / docs. */\n readonly docs?: string;\n /** When `true`, the attribute may be absent in encoded values. */\n readonly optional?: boolean;\n}\n\n/**\n * Declare an attribute. The default is a required attribute; pass\n * `{ optional: true }` (or use `optionalAttribute`) to mark it optional.\n */\nexport function attribute(name: string, type: TypeExpr, options: AttributeOptions = {}): AttributeSpec {\n return Object.freeze({\n name,\n type,\n ...(options.optional ? { optional: true as const } : {}),\n ...(options.docs !== undefined ? { docs: options.docs } : {}),\n });\n}\n\n/**\n * Sugar for `attribute(name, type, { optional: true, ...rest })` — the most\n * common attribute shape after required ones.\n */\nexport function optionalAttribute(\n name: string,\n type: TypeExpr,\n options: Omit<AttributeOptions, 'optional'> = {},\n): AttributeSpec {\n return attribute(name, type, { ...options, optional: true });\n}\n","/**\n * Compound type-expression constructors — wrap or combine other type\n * expressions. Returned values are frozen.\n *\n * Optionality is intentionally NOT a compound: it's an attribute-level\n * concern, expressed via `optionalAttribute(...)` or\n * `attribute(..., { optional: true })`.\n */\n\nimport type { TypeExpr } from './types';\n\n/** An array (homogeneous list) of `inner`. */\nexport function array(inner: TypeExpr): TypeExpr {\n return Object.freeze({ kind: 'array' as const, of: inner });\n}\n\n/**\n * A heterogeneous fixed-length tuple. Each positional slot has its own type.\n *\n * Tuples use `items` (plural) rather than `of` to signal cardinality > 1.\n */\nexport function tuple(...items: TypeExpr[]): TypeExpr {\n return Object.freeze({ kind: 'tuple' as const, items: Object.freeze([...items]) });\n}\n","/**\n * `defineEnumeration(name, options)` — declares a named enumeration.\n *\n * Codegen emits a string-literal union (TS), a real `enum` (Rust), a class\n * (Python), etc., according to each language's idiom. Per-variant docs are\n * carried through to language-native member documentation.\n */\n\nimport type { EnumerationSpec, EnumerationVariantSpec } from './types';\n\nexport interface VariantOptions {\n readonly docs?: string;\n}\n\n/** Construct a single enumeration variant. */\nexport function variant(name: string, options: VariantOptions = {}): EnumerationVariantSpec {\n return Object.freeze({\n name,\n ...(options.docs !== undefined ? { docs: options.docs } : {}),\n });\n}\n\nexport interface DefineEnumerationOptions {\n readonly docs?: string;\n readonly variants: readonly EnumerationVariantSpec[];\n}\n\nexport function defineEnumeration(name: string, options: DefineEnumerationOptions): EnumerationSpec {\n if (options.variants.length === 0) {\n throw new Error(`defineEnumeration(\"${name}\"): variants must be non-empty`);\n }\n const seen = new Set<string>();\n for (const v of options.variants) {\n if (seen.has(v.name)) {\n throw new Error(`defineEnumeration(\"${name}\"): duplicate variant \"${v.name}\"`);\n }\n seen.add(v.name);\n }\n return Object.freeze({\n name,\n variants: Object.freeze([...options.variants]),\n ...(options.docs !== undefined ? { docs: options.docs } : {}),\n });\n}\n","/**\n * `defineNode(kind, options)` — declares a single Codama node.\n *\n * The `kind` string is the discriminator value. By convention it ends in\n * `Node` and uses camelCase (e.g. `accountNode`, `arrayTypeNode`).\n *\n * `attributes` is an ordered array of values produced by `attribute(...)` or\n * `optionalAttribute(...)`. Order is preserved in the encoded spec and, by\n * extension, in generated code. The `kind: literal(<kind>)` discriminator\n * is implicit and is NOT declared by authors.\n *\n * The data-vs-children distinction is derived at codegen time from each\n * attribute's type tree (see `isChildAttribute` in `validate.ts`); the\n * meta-model itself just stores a flat list.\n */\n\nimport type { AttributeSpec, NodeSpec } from './types';\n\nexport interface DefineNodeOptions {\n /** Free-form prose description for codegen / docs. */\n readonly docs?: string;\n /**\n * Attributes of the node, in declaration order. Construct each entry\n * via `attribute(...)` or `optionalAttribute(...)`.\n */\n readonly attributes: readonly AttributeSpec[];\n /** Free-form examples (shape defined per spec major version). */\n readonly examples?: readonly unknown[];\n}\n\nexport function defineNode(kind: string, options: DefineNodeOptions): NodeSpec {\n return Object.freeze({\n kind,\n ...(options.docs !== undefined ? { docs: options.docs } : {}),\n attributes: Object.freeze([...options.attributes]),\n examples: Object.freeze([...(options.examples ?? [])]),\n });\n}\n","/**\n * `defineUnion(name, options)` — declares a named union of nodes.\n *\n * Members can be:\n * - a node kind string (e.g. `'arrayTypeNode'`), or\n * - a `node(...)` / `union(...)` reference (a `TypeExpr` produced by\n * `primitives.ts`).\n *\n * Nested unions are preserved structurally in the encoded spec rather than\n * flattened. This serves two purposes:\n * - DRY authoring (`union('StandaloneTypeNode')` instead of repeating 23\n * kind names).\n * - A signal to the Rust codegen to emit `From`/`Into` trait impls between\n * the parent union and each nested union.\n */\n\nimport type { TypeExpr, UnionMember, UnionSpec } from './types';\n\nexport type UnionMemberInput = TypeExpr | string;\n\nexport interface DefineUnionOptions {\n readonly docs?: string;\n readonly members: readonly UnionMemberInput[];\n}\n\nexport function defineUnion(name: string, options: DefineUnionOptions): UnionSpec {\n const normalised: UnionMember[] = options.members.map(normaliseMember);\n return Object.freeze({\n name,\n members: Object.freeze(normalised),\n ...(options.docs !== undefined ? { docs: options.docs } : {}),\n });\n}\n\nfunction normaliseMember(input: UnionMemberInput): UnionMember {\n if (typeof input === 'string') {\n // Bare strings are treated as node kinds (the most common case).\n return Object.freeze({ kind: 'node' as const, name: input });\n }\n if (input.kind === 'node') return Object.freeze({ kind: 'node' as const, name: input.name });\n if (input.kind === 'union') return Object.freeze({ kind: 'union' as const, name: input.name });\n throw new Error(\n `defineUnion: members must be node kind strings, node(...) or union(...) references; got ${JSON.stringify(input)}`,\n );\n}\n","/**\n * Type-expression primitives — the leaves of any attribute's type tree.\n *\n * Each function returns a frozen `TypeExpr` value. The encoded spec stores\n * those objects verbatim; codegen targets read them and emit native types.\n */\n\nimport type { FloatWidth, IntegerWidth, LiteralValue, StringConstraint, TypeExpr } from './types';\n\n// ---------------------------------------------------------------------------\n// Strings\n// ---------------------------------------------------------------------------\n\n/** Plain UTF-8 string. */\nexport function string(): TypeExpr {\n return Object.freeze({ kind: 'string' as const });\n}\n\n/**\n * A string that must be a valid IDL identifier (stored canonically in\n * camelCase). Renderers may convert to other casings at output time.\n */\nexport function stringIdentifier(): TypeExpr {\n return Object.freeze({ kind: 'string' as const, constraint: 'identifier' as const });\n}\n\n/** A string that must be a valid version (e.g. `\"1.6.0\"`). */\nexport function stringVersion(): TypeExpr {\n return Object.freeze({ kind: 'string' as const, constraint: 'version' as const });\n}\n\n/**\n * The version string of the surrounding Codama spec. Treat as a brand on\n * top of `stringVersion()` — the value is always pinned to the spec\n * version of the IDL document. Codegen targets typically emit a literal\n * type or a constant.\n */\nexport function codamaVersion(): TypeExpr {\n return Object.freeze({ kind: 'codamaVersion' as const });\n}\n\n// ---------------------------------------------------------------------------\n// Integers (explicit bit widths — no machine-dependent usize/isize)\n// ---------------------------------------------------------------------------\n\nconst integer = (width: IntegerWidth): TypeExpr => Object.freeze({ kind: 'integer' as const, width });\n\nexport const u8 = (): TypeExpr => integer('u8');\nexport const u16 = (): TypeExpr => integer('u16');\nexport const u32 = (): TypeExpr => integer('u32');\nexport const u64 = (): TypeExpr => integer('u64');\nexport const u128 = (): TypeExpr => integer('u128');\nexport const i8 = (): TypeExpr => integer('i8');\nexport const i16 = (): TypeExpr => integer('i16');\nexport const i32 = (): TypeExpr => integer('i32');\nexport const i64 = (): TypeExpr => integer('i64');\nexport const i128 = (): TypeExpr => integer('i128');\n\n// ---------------------------------------------------------------------------\n// Floats\n// ---------------------------------------------------------------------------\n\nconst float = (width: FloatWidth): TypeExpr => Object.freeze({ kind: 'float' as const, width });\n\nexport const f32 = (): TypeExpr => float('f32');\nexport const f64 = (): TypeExpr => float('f64');\n\n// ---------------------------------------------------------------------------\n// Booleans, literals\n// ---------------------------------------------------------------------------\n\nexport function boolean(): TypeExpr {\n return Object.freeze({ kind: 'boolean' as const });\n}\n\n/** A single fixed value of a primitive type. */\nexport function literal(value: LiteralValue): TypeExpr {\n return Object.freeze({ kind: 'literal' as const, value });\n}\n\n/**\n * A heterogeneous union of literal values — for sum types like\n * `boolean | 'either'` that don't fit a string-only enumeration.\n *\n * Codegen targets render this as the appropriate language idiom (a literal\n * union in TS, a tagged enum with custom serde in Rust, etc.).\n */\nexport function literalUnion(...values: LiteralValue[]): TypeExpr {\n if (values.length === 0) {\n throw new Error('literalUnion: at least one value required');\n }\n const seen = new Set<LiteralValue>();\n for (const v of values) {\n if (seen.has(v)) {\n throw new Error(`literalUnion: duplicate value ${JSON.stringify(v)}`);\n }\n seen.add(v);\n }\n return Object.freeze({ kind: 'literalUnion' as const, values: Object.freeze([...values]) });\n}\n\n// ---------------------------------------------------------------------------\n// Named references\n// ---------------------------------------------------------------------------\n\n/** Reference to a named enumeration declared via `defineEnumeration`. */\nexport function enumeration(name: string): TypeExpr {\n return Object.freeze({ kind: 'enumeration' as const, name });\n}\n\n/** Reference to a named node declared via `defineNode`. */\nexport function node(name: string): TypeExpr {\n return Object.freeze({ kind: 'node' as const, name });\n}\n\n/** Reference to a named union declared via `defineUnion`. */\nexport function union(name: string): TypeExpr {\n return Object.freeze({ kind: 'union' as const, name });\n}\n\n/**\n * Reference to a named node, with implicit `NestedTypeNode<…>` wrapping.\n * The list of recognised wrapper nodes is supplied per spec major version;\n * see `v1/nestedTypeNodeWrappers.ts`.\n */\nexport function nestedTypeNode(name: string): TypeExpr {\n return Object.freeze({ kind: 'nestedTypeNode' as const, name });\n}\n\n// Re-exports for type ergonomics.\nexport type { FloatWidth, IntegerWidth, LiteralValue, StringConstraint, TypeExpr };\n","/**\n * Author-side semantic aliases over integer primitives. They desugar at call\n * time so the encoded spec only ever shows the underlying primitive (e.g.\n * `{ kind: \"integer\", width: \"u64\" }` for both `u64()` and `byteSize()`).\n *\n * Each language's codegen may further specialise rendering for these widths\n * (e.g. Rust may render `u64` as `usize` for byte-size fields if it wants).\n * Those are codegen policies — not spec content.\n */\n\nimport { array } from './compounds';\nimport { i64, string, u32, u64 } from './primitives';\nimport type { TypeExpr } from './types';\n\n/** Number of bytes; non-negative. Encoded as `u64`. */\nexport function byteSize(): TypeExpr {\n return u64();\n}\n\n/** Signed byte offset. Encoded as `i64`. */\nexport function byteOffset(): TypeExpr {\n return i64();\n}\n\n/** Count of items in a collection; non-negative. Encoded as `u32`. */\nexport function count(): TypeExpr {\n return u32();\n}\n\n/** Documentation for a node — an array of paragraph strings. */\nexport function docs(): TypeExpr {\n return array(string());\n}\n","/**\n * Self-consistency validation for an assembled spec.\n *\n * Returns an array of human-readable error strings. An empty array means\n * the spec is internally coherent — every reference resolves, no duplicate\n * names, naming conventions hold.\n */\n\nimport type { Spec, TypeExpr } from './types';\n\ntype RegistryKind = 'enumeration' | 'node' | 'union';\n\nexport function validate(spec: Spec): string[] {\n const errors: string[] = [];\n\n const nodeKinds = new Set(spec.nodes.map(n => n.kind));\n const unionNames = new Set(spec.unions.map(u => u.name));\n const enumerationNames = new Set(spec.enumerations.map(e => e.name));\n const wrappers = new Set(spec.nestedTypeNodeWrappers);\n\n // ---- Single-pass name-collision check -------------------------------\n //\n // Detects both within-kind duplicates (\"two nodes called `accountNode`\")\n // and cross-kind collisions (\"there's a node and a union both called\n // `TypeNode`\") in one report per offending name.\n\n const registrations = new Map<string, RegistryKind[]>();\n const record = (name: string, kind: RegistryKind): void => {\n const list = registrations.get(name);\n if (list) list.push(kind);\n else registrations.set(name, [kind]);\n };\n for (const n of spec.nodes) record(n.kind, 'node');\n for (const u of spec.unions) record(u.name, 'union');\n for (const e of spec.enumerations) record(e.name, 'enumeration');\n\n for (const [name, kinds] of registrations) {\n if (kinds.length > 1) errors.push(formatCollisionError(name, kinds));\n }\n\n // ---- Per-node validation --------------------------------------------\n\n for (const n of spec.nodes) {\n if (!/^[a-z][A-Za-z0-9]*Node$/.test(n.kind)) {\n errors.push(`Node kind \"${n.kind}\" does not match the camelCase ...Node naming convention.`);\n }\n const seenAttrs = new Set<string>();\n for (const a of n.attributes) {\n if (seenAttrs.has(a.name)) {\n errors.push(`Node \"${n.kind}\" declares attribute \"${a.name}\" more than once.`);\n }\n seenAttrs.add(a.name);\n walkTypeExpr(a.type, expr =>\n checkRef(expr, n.kind, a.name, errors, nodeKinds, unionNames, enumerationNames),\n );\n }\n }\n\n // ---- Union member resolution ----------------------------------------\n\n for (const u of spec.unions) {\n if (u.members.length === 0) {\n errors.push(`Union \"${u.name}\" has no members.`);\n }\n const seenMembers = new Set<string>();\n for (const m of u.members) {\n const key = `${m.kind}:${m.name}`;\n if (seenMembers.has(key)) {\n errors.push(`Union \"${u.name}\" lists member ${key} more than once.`);\n }\n seenMembers.add(key);\n if (m.kind === 'node' && !nodeKinds.has(m.name)) {\n errors.push(`Union \"${u.name}\" references undefined node \"${m.name}\".`);\n }\n if (m.kind === 'union' && !unionNames.has(m.name)) {\n errors.push(`Union \"${u.name}\" references undefined union \"${m.name}\".`);\n }\n }\n }\n\n // ---- nestedTypeNode wrapper sanity ----------------------------------\n\n for (const wrapper of wrappers) {\n if (!nodeKinds.has(wrapper)) {\n errors.push(`Nested-type-node wrapper \"${wrapper}\" is not a defined node.`);\n }\n }\n\n return errors;\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction formatCollisionError(name: string, kinds: RegistryKind[]): string {\n const counts = new Map<RegistryKind, number>();\n for (const k of kinds) counts.set(k, (counts.get(k) ?? 0) + 1);\n const breakdown = [...counts.entries()]\n .sort((a, b) => a[0].localeCompare(b[0]))\n .map(([k, n]) => `${n} ${k}${n > 1 ? 's' : ''}`)\n .join(', ');\n return `Name \"${name}\" is registered ${kinds.length} times (${breakdown}); names must be unique across nodes, unions, and enumerations.`;\n}\n\nfunction walkTypeExpr(expr: TypeExpr, visit: (expr: TypeExpr) => void): void {\n visit(expr);\n if (expr.kind === 'array') {\n walkTypeExpr(expr.of, visit);\n } else if (expr.kind === 'tuple') {\n for (const item of expr.items) walkTypeExpr(item, visit);\n }\n}\n\nfunction checkRef(\n expr: TypeExpr,\n nodeKind: string,\n attrName: string,\n errors: string[],\n nodeKinds: Set<string>,\n unionNames: Set<string>,\n enumerationNames: Set<string>,\n): void {\n const where = `Node \"${nodeKind}\", attribute \"${attrName}\":`;\n switch (expr.kind) {\n case 'node':\n if (!nodeKinds.has(expr.name)) {\n errors.push(`${where} references undefined node \"${expr.name}\".`);\n }\n break;\n case 'union':\n if (!unionNames.has(expr.name)) {\n errors.push(`${where} references undefined union \"${expr.name}\".`);\n }\n break;\n case 'enumeration':\n if (!enumerationNames.has(expr.name)) {\n errors.push(`${where} references undefined enumeration \"${expr.name}\".`);\n }\n break;\n case 'nestedTypeNode':\n if (!nodeKinds.has(expr.name)) {\n errors.push(`${where} nestedTypeNode references undefined node \"${expr.name}\".`);\n }\n break;\n default:\n break;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Child-detection (used by codegen / docs / visitor table generators)\n// ---------------------------------------------------------------------------\n\n/**\n * A \"child\" attribute is one whose value contains another node. Specifically,\n * any attribute whose type tree includes a `node`, `nestedTypeNode`, or\n * `union` is treated as a child. Optionality (the `optional` flag on the\n * attribute itself) is orthogonal to this classification.\n */\nexport function isChildAttribute(type: TypeExpr): boolean {\n switch (type.kind) {\n case 'node':\n case 'nestedTypeNode':\n case 'union':\n return true;\n case 'array':\n return isChildAttribute(type.of);\n case 'tuple':\n return type.items.some(isChildAttribute);\n default:\n return false;\n }\n}\n","/**\n * Named enumerations for the Codama v1 spec.\n *\n * Anywhere a node attribute would otherwise be an inline string-literal union\n * (e.g. `endian: 'be' | 'le'`), the union is lifted to a named enumeration\n * here. This keeps the meta-model language-agnostic — every multi-value\n * string union has a name that codegen targets can render as a real enum.\n */\n\nimport { defineEnumeration, variant } from '../api';\n\nexport const endianness = defineEnumeration('Endianness', {\n docs: 'The byte order of a numeric serialization.',\n variants: [\n variant('be', { docs: 'Big-endian: the most significant byte is written first.' }),\n variant('le', { docs: 'Little-endian: the least significant byte is written first.' }),\n ],\n});\n\nexport const numberFormat = defineEnumeration('NumberFormat', {\n docs: 'The wire format of a numeric serialization.',\n variants: [\n variant('f32', { docs: 'IEEE-754 32-bit floating point.' }),\n variant('f64', { docs: 'IEEE-754 64-bit floating point.' }),\n variant('i8', { docs: 'Signed 8-bit integer.' }),\n variant('i16', { docs: 'Signed 16-bit integer.' }),\n variant('i32', { docs: 'Signed 32-bit integer.' }),\n variant('i64', { docs: 'Signed 64-bit integer.' }),\n variant('i128', { docs: 'Signed 128-bit integer.' }),\n variant('shortU16', {\n docs: 'Solana compact-u16 encoding: a variable-length unsigned integer occupying 1 to 3 bytes.',\n }),\n variant('u8', { docs: 'Unsigned 8-bit integer.' }),\n variant('u16', { docs: 'Unsigned 16-bit integer.' }),\n variant('u32', { docs: 'Unsigned 32-bit integer.' }),\n variant('u64', { docs: 'Unsigned 64-bit integer.' }),\n variant('u128', { docs: 'Unsigned 128-bit integer.' }),\n ],\n});\n\nexport const bytesEncoding = defineEnumeration('BytesEncoding', {\n docs: 'How a string of bytes is encoded for transport.',\n variants: [\n variant('base16', { docs: 'Hexadecimal encoding (two characters per byte).' }),\n variant('base58', { docs: 'Base58 encoding, the standard for Solana addresses.' }),\n variant('base64', { docs: 'Base64 encoding (RFC 4648).' }),\n variant('utf8', { docs: 'UTF-8 text encoding.' }),\n ],\n});\n\nexport const instructionLifecycle = defineEnumeration('InstructionLifecycle', {\n docs: 'The lifecycle stage of an instruction.',\n variants: [\n variant('archived', {\n docs: 'No longer included in client SDKs. Retained in the IDL for historical reference only.',\n }),\n variant('deprecated', {\n docs: 'Still callable but discouraged. Clients should migrate to a replacement instruction.',\n }),\n variant('draft', {\n docs: 'Work-in-progress. The instruction may change before it stabilises.',\n }),\n variant('live', { docs: 'Stable and supported for production use.' }),\n ],\n});\n\nexport const defaultValueStrategy = defineEnumeration('DefaultValueStrategy', {\n docs: 'How an attribute that carries a default value is exposed in generated APIs.',\n variants: [\n variant('omitted', {\n docs: 'The attribute is not exposed as a parameter in the generated API; the default value is always used.',\n }),\n variant('optional', {\n docs: 'The attribute is exposed as an optional parameter; callers may override the default value.',\n }),\n ],\n});\n\nexport const optionalAccountStrategy = defineEnumeration('OptionalAccountStrategy', {\n docs: 'How an absent optional account is represented when serialising an instruction.',\n variants: [\n variant('omitted', {\n docs: 'The account slot is left out of the instruction entirely. Subsequent accounts shift up.',\n }),\n variant('programId', {\n docs: 'The account slot is filled with the program ID as a placeholder, preserving positional indices.',\n }),\n ],\n});\n\nexport const preOffsetStrategy = defineEnumeration('PreOffsetStrategy', {\n docs: 'How a pre-offset modifier interprets its offset value before serialising the wrapped type.',\n variants: [\n variant('absolute', {\n docs: 'Move the cursor to the absolute byte position given by the offset.',\n }),\n variant('padded', {\n docs: 'Pad with zero bytes from the current cursor up to the offset bytes ahead.',\n }),\n variant('relative', {\n docs: 'Advance the cursor by the offset bytes relative to its current position.',\n }),\n ],\n});\n\nexport const postOffsetStrategy = defineEnumeration('PostOffsetStrategy', {\n docs: 'How a post-offset modifier interprets its offset value after serialising the wrapped type.',\n variants: [\n variant('absolute', {\n docs: 'Move the cursor to the absolute byte position given by the offset.',\n }),\n variant('padded', {\n docs: 'Pad with zero bytes from the current cursor up to the offset bytes ahead.',\n }),\n variant('preOffset', {\n docs: 'Restore the cursor to where it was before the wrapped type ran (cancelling its pre-offset).',\n }),\n variant('relative', {\n docs: 'Advance the cursor by the offset bytes relative to its current position.',\n }),\n ],\n});\n\nexport const programOrigin = defineEnumeration('ProgramOrigin', {\n docs: 'The toolchain that originally generated a program description.',\n variants: [\n variant('anchor', { docs: 'The program was originally described by an Anchor IDL.' }),\n variant('shank', { docs: 'The program was originally described by a Shank IDL.' }),\n ],\n});\n\nexport const ALL_ENUMERATIONS = [\n bytesEncoding,\n defaultValueStrategy,\n endianness,\n instructionLifecycle,\n numberFormat,\n optionalAccountStrategy,\n postOffsetStrategy,\n preOffsetStrategy,\n programOrigin,\n] as const;\n","/**\n * The closed list of node kinds that act as wrappers in the\n * `NestedTypeNode<T>` recursion.\n *\n * Codegen for each language uses this list to emit the wrapping behaviour\n * (e.g. an enum or union covering \"T or any wrapper of NestedTypeNode<T>\").\n */\n\nexport const NESTED_TYPE_NODE_WRAPPERS = [\n 'fixedSizeTypeNode',\n 'sizePrefixTypeNode',\n 'preOffsetTypeNode',\n 'postOffsetTypeNode',\n 'sentinelTypeNode',\n 'hiddenPrefixTypeNode',\n 'hiddenSuffixTypeNode',\n] as const;\n\nexport type NestedTypeNodeWrapper = (typeof NESTED_TYPE_NODE_WRAPPERS)[number];\n","import {\n array,\n attribute,\n byteSize,\n defineNode,\n docs,\n nestedTypeNode,\n node,\n optionalAttribute,\n stringIdentifier,\n union,\n} from '../../api';\n\nexport const accountNode = defineNode('accountNode', {\n docs: 'An on-chain account: its name, data structure, optional fixed size, optional PDA, and optional discriminators.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the account.',\n }),\n optionalAttribute('size', byteSize(), {\n docs: 'The size of the account in bytes, when the data length is fixed.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the account.',\n }),\n attribute('data', nestedTypeNode('structTypeNode'), {\n docs: 'The struct describing the account data.',\n }),\n optionalAttribute('pda', node('pdaLinkNode'), {\n docs: 'A link to the PDA the account is derived from, if applicable.',\n }),\n optionalAttribute('discriminators', array(union('DiscriminatorNode')), {\n docs: 'Discriminators that distinguish this account from others in the program. When multiple are listed, they are combined with a logical AND.',\n }),\n ],\n});\n","import { attribute, defineNode, docs, optionalAttribute, stringIdentifier, union } from '../../api';\n\nexport const constantNode = defineNode('constantNode', {\n docs: 'A named constant exposed by the program: a typed value associated with a name.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the constant.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the constant.',\n }),\n attribute('type', union('TypeNode'), {\n docs: 'The type of the constant.',\n }),\n attribute('value', union('ValueNode'), {\n docs: 'The concrete value of the constant.',\n }),\n ],\n});\n","import { attribute, defineNode, stringIdentifier } from '../../../api';\n\nexport const accountBumpValueNode = defineNode('accountBumpValueNode', {\n docs: 'Refers to the bump seed of a named PDA-derived account in the surrounding instruction.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the account whose bump seed is referenced.',\n }),\n ],\n});\n","import { attribute, defineNode, stringIdentifier } from '../../../api';\n\nexport const accountValueNode = defineNode('accountValueNode', {\n docs: 'Refers to a named account in the surrounding instruction.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the referenced account.',\n }),\n ],\n});\n","import { attribute, defineNode, stringIdentifier } from '../../../api';\n\nexport const argumentValueNode = defineNode('argumentValueNode', {\n docs: 'Refers to a named argument of the surrounding instruction.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the referenced argument.',\n }),\n ],\n});\n","import { attribute, defineNode, optionalAttribute, union } from '../../../api';\n\nexport const conditionalValueNode = defineNode('conditionalValueNode', {\n docs: 'A branching contextual value. The condition resolves to a value at instruction time; that result selects between `ifTrue` and `ifFalse`.',\n attributes: [\n attribute('condition', union('ConditionalValueCondition'), {\n docs: 'The value whose evaluation drives the branch.',\n }),\n optionalAttribute('value', union('ValueNode'), {\n docs: 'When present, the condition result is compared for equality against this value; otherwise the result is treated as a boolean.',\n }),\n optionalAttribute('ifTrue', union('InstructionInputValueNode'), {\n docs: 'The value used when the condition resolves truthy (or matches `value`).',\n }),\n optionalAttribute('ifFalse', union('InstructionInputValueNode'), {\n docs: 'The value used when the condition resolves falsy (or does not match `value`).',\n }),\n ],\n});\n","/**\n * Named unions for the contextual-value-node category.\n *\n * `ConditionalValueCondition`, `ResolverDependency`, `PdaSeedValueValue`,\n * `PdaValuePda`, and `PdaValueProgramId` are inline-union helpers used by\n * specific contextual-value-node attributes.\n */\n\nimport { defineUnion, union } from '../../../api';\n\nconst STANDALONE_CONTEXTUAL_VALUE_NODE_KINDS = [\n 'accountBumpValueNode',\n 'accountValueNode',\n 'argumentValueNode',\n 'conditionalValueNode',\n 'identityValueNode',\n 'payerValueNode',\n 'pdaValueNode',\n 'programIdValueNode',\n 'resolverValueNode',\n] as const;\n\nexport const standaloneContextualValueNodeUnion = defineUnion('StandaloneContextualValueNode', {\n docs: 'Every contextual-value node usable as a top-level value.',\n members: [...STANDALONE_CONTEXTUAL_VALUE_NODE_KINDS],\n});\n\nexport const contextualValueNodeUnion = defineUnion('ContextualValueNode', {\n docs: 'The composable form: any standalone contextual-value node.',\n members: [union('StandaloneContextualValueNode')],\n});\n\nexport const registeredContextualValueNodeUnion = defineUnion('RegisteredContextualValueNode', {\n docs: 'Every node tagged as a contextual-value node, including helper variants.',\n members: [union('StandaloneContextualValueNode'), 'pdaSeedValueNode'],\n});\n\nexport const instructionInputValueNodeUnion = defineUnion('InstructionInputValueNode', {\n docs: 'Anything that can be used as the input value for an instruction account or argument default — a value, contextual reference, or program link.',\n members: [union('ContextualValueNode'), 'programLinkNode', union('ValueNode')],\n});\n\n// --- Inline unions used by contextual value nodes -------------------------\n\nexport const conditionalValueConditionUnion = defineUnion('ConditionalValueCondition', {\n docs: 'The condition forms accepted by a `conditionalValueNode`.',\n members: ['accountValueNode', 'argumentValueNode', 'resolverValueNode'],\n});\n\nexport const resolverDependencyUnion = defineUnion('ResolverDependency', {\n docs: 'The dependency forms accepted by a `resolverValueNode`.',\n members: ['accountValueNode', 'argumentValueNode'],\n});\n\nexport const pdaSeedValueValueUnion = defineUnion('PdaSeedValueValue', {\n docs: 'The value forms accepted by a `pdaSeedValueNode`.',\n members: ['accountValueNode', 'argumentValueNode', union('ValueNode')],\n});\n\nexport const pdaValuePdaUnion = defineUnion('PdaValuePda', {\n docs: 'A `pdaValueNode` may reference a PDA either by link or inline.',\n members: ['pdaLinkNode', 'pdaNode'],\n});\n\nexport const pdaValueProgramIdUnion = defineUnion('PdaValueProgramId', {\n docs: 'The program-id forms accepted by a `pdaValueNode`.',\n members: ['accountValueNode', 'argumentValueNode'],\n});\n","import { defineNode } from '../../../api';\n\nexport const identityValueNode = defineNode('identityValueNode', {\n docs: 'Refers to the wallet identity providing the instruction context.',\n attributes: [],\n});\n","import { defineNode } from '../../../api';\n\nexport const payerValueNode = defineNode('payerValueNode', {\n docs: 'Refers to the wallet paying for the surrounding transaction.',\n attributes: [],\n});\n","import { attribute, defineNode, stringIdentifier, union } from '../../../api';\n\nexport const pdaSeedValueNode = defineNode('pdaSeedValueNode', {\n docs: 'Pairs a PDA seed name with the value to substitute when deriving the PDA.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the seed being filled in.',\n }),\n attribute('value', union('PdaSeedValueValue'), {\n docs: 'The value to substitute for the seed.',\n }),\n ],\n});\n","import { array, attribute, defineNode, node, optionalAttribute, union } from '../../../api';\n\nexport const pdaValueNode = defineNode('pdaValueNode', {\n docs: 'Resolves to a PDA derived from a list of seed values.',\n attributes: [\n attribute('pda', union('PdaValuePda'), {\n docs: 'The PDA being derived — either a link to a defined PDA or an inline `pdaNode`.',\n }),\n attribute('seeds', array(node('pdaSeedValueNode')), {\n docs: 'The seed values used to derive the PDA, paired with their seed names.',\n }),\n optionalAttribute('programId', union('PdaValueProgramId'), {\n docs: 'The program ID used to derive the PDA. When omitted, the PDA\\u2019s declared program is used.',\n }),\n ],\n});\n","import { defineNode } from '../../../api';\n\nexport const programIdValueNode = defineNode('programIdValueNode', {\n docs: 'Refers to the program ID of the surrounding instruction.',\n attributes: [],\n});\n","import { array, attribute, defineNode, docs, optionalAttribute, stringIdentifier, union } from '../../../api';\n\nexport const resolverValueNode = defineNode('resolverValueNode', {\n docs: 'A custom resolver: a named function provided by the consumer that produces a value, optionally depending on other accounts and arguments.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the resolver function.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the resolver.',\n }),\n optionalAttribute('dependsOn', array(union('ResolverDependency')), {\n docs: 'The accounts and arguments the resolver depends on. Used by clients to ensure the dependencies are resolved first.',\n }),\n ],\n});\n","import { accountBumpValueNode } from './AccountBumpValueNode';\nimport { accountValueNode } from './AccountValueNode';\nimport { argumentValueNode } from './ArgumentValueNode';\nimport { conditionalValueNode } from './ConditionalValueNode';\nimport {\n conditionalValueConditionUnion,\n contextualValueNodeUnion,\n instructionInputValueNodeUnion,\n pdaSeedValueValueUnion,\n pdaValuePdaUnion,\n pdaValueProgramIdUnion,\n registeredContextualValueNodeUnion,\n resolverDependencyUnion,\n standaloneContextualValueNodeUnion,\n} from './ContextualValueNode';\nimport { identityValueNode } from './IdentityValueNode';\nimport { payerValueNode } from './PayerValueNode';\nimport { pdaSeedValueNode } from './PdaSeedValueNode';\nimport { pdaValueNode } from './PdaValueNode';\nimport { programIdValueNode } from './ProgramIdValueNode';\nimport { resolverValueNode } from './ResolverValueNode';\n\nexport const ALL_CONTEXTUAL_VALUE_NODES = [\n accountBumpValueNode,\n accountValueNode,\n argumentValueNode,\n conditionalValueNode,\n identityValueNode,\n payerValueNode,\n pdaSeedValueNode,\n pdaValueNode,\n programIdValueNode,\n resolverValueNode,\n] as const;\n\nexport const ALL_CONTEXTUAL_VALUE_NODE_UNIONS = [\n standaloneContextualValueNodeUnion,\n contextualValueNodeUnion,\n registeredContextualValueNodeUnion,\n instructionInputValueNodeUnion,\n conditionalValueConditionUnion,\n resolverDependencyUnion,\n pdaSeedValueValueUnion,\n pdaValuePdaUnion,\n pdaValueProgramIdUnion,\n] as const;\n","import { defineUnion, union } from '../../../api';\n\nexport const registeredCountNodeUnion = defineUnion('RegisteredCountNode', {\n docs: 'Every node tagged as a count strategy.',\n members: ['fixedCountNode', 'prefixedCountNode', 'remainderCountNode'],\n});\n\nexport const countNodeUnion = defineUnion('CountNode', {\n docs: 'The composable form: any registered count node.',\n members: [union('RegisteredCountNode')],\n});\n","import { attribute, defineNode, u64 } from '../../../api';\n\nexport const fixedCountNode = defineNode('fixedCountNode', {\n docs: 'A count strategy that fixes the number of items at a constant value.',\n attributes: [\n attribute('value', u64(), {\n docs: 'The fixed number of items.',\n }),\n ],\n});\n","import { attribute, defineNode, nestedTypeNode } from '../../../api';\n\nexport const prefixedCountNode = defineNode('prefixedCountNode', {\n docs: 'A count strategy where the number of items is read from a numeric prefix.',\n attributes: [\n attribute('prefix', nestedTypeNode('numberTypeNode'), {\n docs: 'The numeric type used as the count prefix.',\n }),\n ],\n});\n","import { defineNode } from '../../../api';\n\nexport const remainderCountNode = defineNode('remainderCountNode', {\n docs: 'A count strategy where items are read until the buffer is exhausted.',\n attributes: [],\n});\n","import { countNodeUnion, registeredCountNodeUnion } from './CountNode';\nimport { fixedCountNode } from './FixedCountNode';\nimport { prefixedCountNode } from './PrefixedCountNode';\nimport { remainderCountNode } from './RemainderCountNode';\n\nexport const ALL_COUNT_NODES = [fixedCountNode, prefixedCountNode, remainderCountNode] as const;\n\nexport const ALL_COUNT_NODE_UNIONS = [registeredCountNodeUnion, countNodeUnion] as const;\n","import { attribute, defineNode, docs, optionalAttribute, stringIdentifier, union } from '../../api';\n\nexport const definedTypeNode = defineNode('definedTypeNode', {\n docs: 'A reusable named type that can be referenced by `definedTypeLinkNode` from elsewhere in the IDL.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the defined type.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the type.',\n }),\n attribute('type', union('TypeNode'), {\n docs: 'The type definition.',\n }),\n ],\n});\n","import { attribute, defineNode, node, u64 } from '../../../api';\n\nexport const constantDiscriminatorNode = defineNode('constantDiscriminatorNode', {\n docs: 'Identifies a node by a constant value at a known byte offset (e.g. a magic header).',\n attributes: [\n attribute('offset', u64(), {\n docs: 'The byte offset at which the constant begins.',\n }),\n attribute('constant', node('constantValueNode'), {\n docs: 'The constant value expected at the offset.',\n }),\n ],\n});\n","import { defineUnion, union } from '../../../api';\n\nexport const registeredDiscriminatorNodeUnion = defineUnion('RegisteredDiscriminatorNode', {\n docs: 'Every node tagged as a discriminator strategy.',\n members: ['constantDiscriminatorNode', 'fieldDiscriminatorNode', 'sizeDiscriminatorNode'],\n});\n\nexport const discriminatorNodeUnion = defineUnion('DiscriminatorNode', {\n docs: 'The composable form: any registered discriminator node.',\n members: [union('RegisteredDiscriminatorNode')],\n});\n","import { attribute, defineNode, stringIdentifier, u64 } from '../../../api';\n\nexport const fieldDiscriminatorNode = defineNode('fieldDiscriminatorNode', {\n docs: 'Identifies a node by the value of a named field at a known byte offset.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the discriminating field.',\n }),\n attribute('offset', u64(), {\n docs: 'The byte offset of the field.',\n }),\n ],\n});\n","import { attribute, defineNode, u64 } from '../../../api';\n\nexport const sizeDiscriminatorNode = defineNode('sizeDiscriminatorNode', {\n docs: 'Identifies a node by its expected total byte size.',\n attributes: [\n attribute('size', u64(), {\n docs: 'The expected byte size.',\n }),\n ],\n});\n","import { constantDiscriminatorNode } from './ConstantDiscriminatorNode';\nimport { discriminatorNodeUnion, registeredDiscriminatorNodeUnion } from './DiscriminatorNode';\nimport { fieldDiscriminatorNode } from './FieldDiscriminatorNode';\nimport { sizeDiscriminatorNode } from './SizeDiscriminatorNode';\n\nexport const ALL_DISCRIMINATOR_NODES = [\n constantDiscriminatorNode,\n fieldDiscriminatorNode,\n sizeDiscriminatorNode,\n] as const;\n\nexport const ALL_DISCRIMINATOR_NODE_UNIONS = [registeredDiscriminatorNodeUnion, discriminatorNodeUnion] as const;\n","import { attribute, defineNode, docs, optionalAttribute, string, stringIdentifier, u32 } from '../../api';\n\nexport const errorNode = defineNode('errorNode', {\n docs: 'A program error — a numeric code paired with a name and human-readable message.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the error.',\n }),\n attribute('code', u32(), {\n docs: 'The numeric error code returned by the program.',\n }),\n attribute('message', string(), {\n docs: 'A human-readable description of the error.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the error.',\n }),\n ],\n});\n","import { array, attribute, defineNode, docs, optionalAttribute, stringIdentifier, union } from '../../api';\n\nexport const eventNode = defineNode('eventNode', {\n docs: 'A program event: its data shape and optional discriminators used to identify it on the wire.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the event.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the event.',\n }),\n attribute('data', union('TypeNode'), {\n docs: 'The type describing the event payload.',\n }),\n optionalAttribute('discriminators', array(union('DiscriminatorNode')), {\n docs: 'Discriminators that distinguish this event from others. When multiple are listed, they are combined with a logical AND.',\n }),\n ],\n});\n","import {\n attribute,\n boolean,\n defineNode,\n docs,\n literalUnion,\n optionalAttribute,\n stringIdentifier,\n union,\n} from '../../api';\n\nexport const instructionAccountNode = defineNode('instructionAccountNode', {\n docs: 'An account participating in an instruction, with its name, signing/writability flags, and an optional default value.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the account.',\n }),\n attribute('isWritable', boolean(), {\n docs: 'Whether the instruction may write to the account.',\n }),\n attribute('isSigner', literalUnion(true, false, 'either'), {\n docs: 'Whether the account must sign the transaction. The literal `\"either\"` indicates a slot that may or may not sign depending on context.',\n }),\n optionalAttribute('isOptional', boolean(), {\n docs: 'Whether the account slot may be omitted by callers.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the account slot.',\n }),\n optionalAttribute('defaultValue', union('InstructionInputValueNode'), {\n docs: 'A default value used to fill the slot when the caller does not provide one.',\n }),\n ],\n});\n","import { attribute, defineNode, docs, enumeration, optionalAttribute, stringIdentifier, union } from '../../api';\n\nexport const instructionArgumentNode = defineNode('instructionArgumentNode', {\n docs: 'A named argument of an instruction, with its type and an optional default value.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the argument.',\n }),\n optionalAttribute('defaultValueStrategy', enumeration('DefaultValueStrategy'), {\n docs: 'How a configured default value is exposed in generated APIs. Required when `defaultValue` is set.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the argument.',\n }),\n attribute('type', union('TypeNode'), {\n docs: 'The type of the argument.',\n }),\n optionalAttribute('defaultValue', union('InstructionInputValueNode'), {\n docs: 'A default value used when the argument is omitted by callers.',\n }),\n ],\n});\n","import { attribute, boolean, defineNode, optionalAttribute, union } from '../../api';\n\nexport const instructionByteDeltaNode = defineNode('instructionByteDeltaNode', {\n docs: 'A byte-size delta applied when computing rent or buffer size — typically used by instructions that resize accounts.',\n attributes: [\n attribute('withHeader', boolean(), {\n docs: 'Whether the delta includes the account header overhead.',\n }),\n optionalAttribute('subtract', boolean(), {\n docs: 'When `true`, the delta is subtracted from the running size instead of added. Defaults to `false`.',\n }),\n attribute('value', union('InstructionByteDeltaValue'), {\n docs: 'The source of the delta value — a literal number, a referenced account or argument, or a resolver.',\n }),\n ],\n});\n","import {\n array,\n attribute,\n defineNode,\n docs,\n enumeration,\n node,\n optionalAttribute,\n stringIdentifier,\n union,\n} from '../../api';\n\nexport const instructionNode = defineNode('instructionNode', {\n docs: 'A program instruction: its accounts, arguments, byte-delta hints, discriminators, optional status, and optional sub-instructions.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the instruction.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the instruction.',\n }),\n optionalAttribute('optionalAccountStrategy', enumeration('OptionalAccountStrategy'), {\n docs: 'How absent optional accounts are represented when serialising the instruction.',\n }),\n attribute('accounts', array(node('instructionAccountNode')), {\n docs: 'The accounts the instruction operates on, in order.',\n }),\n attribute('arguments', array(node('instructionArgumentNode')), {\n docs: 'The serialised arguments of the instruction, in order.',\n }),\n optionalAttribute('extraArguments', array(node('instructionArgumentNode')), {\n docs: 'Additional arguments exposed in the generated client API but not serialised on the wire.',\n }),\n optionalAttribute('remainingAccounts', array(node('instructionRemainingAccountsNode')), {\n docs: 'Variable-length tails of accounts appended after the named account slots.',\n }),\n optionalAttribute('byteDeltas', array(node('instructionByteDeltaNode')), {\n docs: 'Byte-size adjustments applied when computing rent or buffer size — for instructions that resize accounts.',\n }),\n optionalAttribute('discriminators', array(union('DiscriminatorNode')), {\n docs: 'Discriminators that distinguish this instruction from others. When multiple are listed, they are combined with a logical AND.',\n }),\n optionalAttribute('status', node('instructionStatusNode'), {\n docs: 'The lifecycle status of the instruction.',\n }),\n optionalAttribute('subInstructions', array(node('instructionNode')), {\n docs: 'Inner instructions invoked through CPI as part of executing this instruction.',\n }),\n ],\n});\n","/**\n * Inline-helper unions used by instruction-shaped nodes.\n */\n\nimport { defineUnion } from '../../api';\n\nexport const instructionByteDeltaValueUnion = defineUnion('InstructionByteDeltaValue', {\n docs: 'The value forms accepted by an `instructionByteDeltaNode`.',\n members: ['accountLinkNode', 'argumentValueNode', 'numberValueNode', 'resolverValueNode'],\n});\n\nexport const instructionRemainingAccountsValueUnion = defineUnion('InstructionRemainingAccountsValue', {\n docs: 'The value forms accepted by an `instructionRemainingAccountsNode`.',\n members: ['argumentValueNode', 'resolverValueNode'],\n});\n","import { attribute, boolean, defineNode, docs, literalUnion, optionalAttribute, union } from '../../api';\n\nexport const instructionRemainingAccountsNode = defineNode('instructionRemainingAccountsNode', {\n docs: 'A \"remaining accounts\" slot in an instruction — a variable-length tail of accounts derived from a value.',\n attributes: [\n optionalAttribute('isOptional', boolean(), {\n docs: 'Whether the remaining-accounts tail may be empty.',\n }),\n optionalAttribute('isSigner', literalUnion(true, false, 'either'), {\n docs: 'Whether each remaining account must sign the transaction. The literal `\"either\"` indicates a slot that may or may not sign depending on context.',\n }),\n optionalAttribute('isWritable', boolean(), {\n docs: 'Whether the instruction may write to each remaining account.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the remaining-accounts slot.',\n }),\n attribute('value', union('InstructionRemainingAccountsValue'), {\n docs: 'The source of the remaining-accounts list — a referenced argument or a resolver.',\n }),\n ],\n});\n","import { attribute, defineNode, enumeration, optionalAttribute, string } from '../../api';\n\nexport const instructionStatusNode = defineNode('instructionStatusNode', {\n docs: 'The lifecycle stage of an instruction (draft, live, deprecated, archived) with an optional accompanying message.',\n attributes: [\n attribute('lifecycle', enumeration('InstructionLifecycle'), {\n docs: 'The lifecycle stage.',\n }),\n optionalAttribute('message', string(), {\n docs: 'Free-form prose accompanying the status — e.g. a deprecation notice with migration guidance.',\n }),\n ],\n});\n","import { attribute, defineNode, node, optionalAttribute, stringIdentifier } from '../../../api';\n\nexport const accountLinkNode = defineNode('accountLinkNode', {\n docs: 'A reference to an account defined elsewhere — possibly in a different program.',\n attributes: [\n optionalAttribute('program', node('programLinkNode'), {\n docs: 'The program the referenced account belongs to. When omitted, the surrounding program is assumed.',\n }),\n attribute('name', stringIdentifier(), {\n docs: 'The name of the referenced account.',\n }),\n ],\n});\n","import { attribute, defineNode, node, optionalAttribute, stringIdentifier } from '../../../api';\n\nexport const definedTypeLinkNode = defineNode('definedTypeLinkNode', {\n docs: 'A reference to a defined type — possibly in a different program.',\n attributes: [\n optionalAttribute('program', node('programLinkNode'), {\n docs: 'The program the referenced type is defined in. When omitted, the surrounding program is assumed.',\n }),\n attribute('name', stringIdentifier(), {\n docs: 'The name of the referenced defined type.',\n }),\n ],\n});\n","import { attribute, defineNode, node, optionalAttribute, stringIdentifier } from '../../../api';\n\nexport const instructionAccountLinkNode = defineNode('instructionAccountLinkNode', {\n docs: 'A reference to an account of another instruction.',\n attributes: [\n optionalAttribute('instruction', node('instructionLinkNode'), {\n docs: 'The instruction the referenced account belongs to. When omitted, the surrounding instruction is assumed.',\n }),\n attribute('name', stringIdentifier(), {\n docs: 'The name of the referenced instruction account.',\n }),\n ],\n});\n","import { attribute, defineNode, node, optionalAttribute, stringIdentifier } from '../../../api';\n\nexport const instructionArgumentLinkNode = defineNode('instructionArgumentLinkNode', {\n docs: 'A reference to an argument of another instruction.',\n attributes: [\n optionalAttribute('instruction', node('instructionLinkNode'), {\n docs: 'The instruction the referenced argument belongs to. When omitted, the surrounding instruction is assumed.',\n }),\n attribute('name', stringIdentifier(), {\n docs: 'The name of the referenced instruction argument.',\n }),\n ],\n});\n","import { attribute, defineNode, node, optionalAttribute, stringIdentifier } from '../../../api';\n\nexport const instructionLinkNode = defineNode('instructionLinkNode', {\n docs: 'A reference to an instruction defined elsewhere — possibly in a different program.',\n attributes: [\n optionalAttribute('program', node('programLinkNode'), {\n docs: 'The program the referenced instruction belongs to. When omitted, the surrounding program is assumed.',\n }),\n attribute('name', stringIdentifier(), {\n docs: 'The name of the referenced instruction.',\n }),\n ],\n});\n","/**\n * Named unions for the link-node category.\n */\n\nimport { defineUnion, union } from '../../../api';\n\nexport const registeredLinkNodeUnion = defineUnion('RegisteredLinkNode', {\n docs: 'Every node tagged as a link to another part of the IDL.',\n members: [\n 'accountLinkNode',\n 'definedTypeLinkNode',\n 'instructionAccountLinkNode',\n 'instructionArgumentLinkNode',\n 'instructionLinkNode',\n 'pdaLinkNode',\n 'programLinkNode',\n ],\n});\n\nexport const linkNodeUnion = defineUnion('LinkNode', {\n docs: 'The composable form: any registered link node.',\n members: [union('RegisteredLinkNode')],\n});\n","import { attribute, defineNode, node, optionalAttribute, stringIdentifier } from '../../../api';\n\nexport const pdaLinkNode = defineNode('pdaLinkNode', {\n docs: 'A reference to a PDA defined elsewhere — possibly in a different program.',\n attributes: [\n optionalAttribute('program', node('programLinkNode'), {\n docs: 'The program the referenced PDA belongs to. When omitted, the surrounding program is assumed.',\n }),\n attribute('name', stringIdentifier(), {\n docs: 'The name of the referenced PDA.',\n }),\n ],\n});\n","import { attribute, defineNode, stringIdentifier } from '../../../api';\n\nexport const programLinkNode = defineNode('programLinkNode', {\n docs: 'A reference to a program by name.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the referenced program.',\n }),\n ],\n});\n","import { accountLinkNode } from './AccountLinkNode';\nimport { definedTypeLinkNode } from './DefinedTypeLinkNode';\nimport { instructionAccountLinkNode } from './InstructionAccountLinkNode';\nimport { instructionArgumentLinkNode } from './InstructionArgumentLinkNode';\nimport { instructionLinkNode } from './InstructionLinkNode';\nimport { linkNodeUnion, registeredLinkNodeUnion } from './LinkNode';\nimport { pdaLinkNode } from './PdaLinkNode';\nimport { programLinkNode } from './ProgramLinkNode';\n\nexport const ALL_LINK_NODES = [\n accountLinkNode,\n definedTypeLinkNode,\n instructionAccountLinkNode,\n instructionArgumentLinkNode,\n instructionLinkNode,\n pdaLinkNode,\n programLinkNode,\n] as const;\n\nexport const ALL_LINK_NODE_UNIONS = [registeredLinkNodeUnion, linkNodeUnion] as const;\n","import { array, attribute, defineNode, docs, optionalAttribute, string, stringIdentifier, union } from '../../api';\n\nexport const pdaNode = defineNode('pdaNode', {\n docs: 'A program-derived address: its name, optional program ID override, and the seeds used to derive it.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the PDA.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the PDA.',\n }),\n optionalAttribute('programId', string(), {\n docs: 'The base58-encoded program ID used to derive the PDA. When omitted, the surrounding program is assumed.',\n }),\n attribute('seeds', array(union('PdaSeedNode')), {\n docs: 'The seeds used to derive the PDA, in order.',\n }),\n ],\n});\n","import { attribute, defineNode, union } from '../../../api';\n\nexport const constantPdaSeedNode = defineNode('constantPdaSeedNode', {\n docs: 'A PDA seed with a constant value (e.g. a UTF-8 string or a fixed byte sequence).',\n attributes: [\n attribute('type', union('TypeNode'), {\n docs: 'The type of the seed value.',\n }),\n attribute('value', union('ConstantPdaSeedValue'), {\n docs: 'The constant value to use as the seed — either a literal value or the program ID placeholder.',\n }),\n ],\n});\n","/**\n * Named unions for the PDA-seed-node category.\n *\n * `ConstantPdaSeedValue` captures the inline `ProgramIdValueNode | ValueNode`\n * union used as the `value` attribute of `constantPdaSeedNode`.\n */\n\nimport { defineUnion, union } from '../../../api';\n\nexport const registeredPdaSeedNodeUnion = defineUnion('RegisteredPdaSeedNode', {\n docs: 'Every node tagged as a PDA seed.',\n members: ['constantPdaSeedNode', 'variablePdaSeedNode'],\n});\n\nexport const pdaSeedNodeUnion = defineUnion('PdaSeedNode', {\n docs: 'The composable form: any registered PDA seed node.',\n members: [union('RegisteredPdaSeedNode')],\n});\n\nexport const constantPdaSeedValueUnion = defineUnion('ConstantPdaSeedValue', {\n docs: 'The value forms a `constantPdaSeedNode` may carry — either a literal value or the program ID placeholder.',\n members: ['programIdValueNode', union('ValueNode')],\n});\n","import { attribute, defineNode, docs, optionalAttribute, stringIdentifier, union } from '../../../api';\n\nexport const variablePdaSeedNode = defineNode('variablePdaSeedNode', {\n docs: 'A PDA seed whose value is provided at derivation time, identified by name.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the seed variable.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the seed variable.',\n }),\n attribute('type', union('TypeNode'), {\n docs: 'The expected type of the seed value.',\n }),\n ],\n});\n","import { constantPdaSeedNode } from './ConstantPdaSeedNode';\nimport { constantPdaSeedValueUnion, pdaSeedNodeUnion, registeredPdaSeedNodeUnion } from './PdaSeedNode';\nimport { variablePdaSeedNode } from './VariablePdaSeedNode';\n\nexport const ALL_PDA_SEED_NODES = [constantPdaSeedNode, variablePdaSeedNode] as const;\n\nexport const ALL_PDA_SEED_NODE_UNIONS = [\n registeredPdaSeedNodeUnion,\n pdaSeedNodeUnion,\n constantPdaSeedValueUnion,\n] as const;\n","import {\n array,\n attribute,\n defineNode,\n docs,\n enumeration,\n node,\n optionalAttribute,\n string,\n stringIdentifier,\n stringVersion,\n} from '../../api';\n\nexport const programNode = defineNode('programNode', {\n docs: 'A Solana program: its identity, version, accounts, instructions, defined types, PDAs, events, errors, and constants.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the program.',\n }),\n attribute('publicKey', string(), {\n docs: 'The base58-encoded program ID.',\n }),\n attribute('version', stringVersion(), {\n docs: 'The version of the program, in semver form.',\n }),\n optionalAttribute('origin', enumeration('ProgramOrigin'), {\n docs: 'The toolchain that originally generated the program description, if known.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the program.',\n }),\n attribute('accounts', array(node('accountNode')), {\n docs: 'The accounts owned by the program.',\n }),\n attribute('instructions', array(node('instructionNode')), {\n docs: 'The instructions exposed by the program.',\n }),\n attribute('definedTypes', array(node('definedTypeNode')), {\n docs: 'The reusable types defined by the program.',\n }),\n attribute('pdas', array(node('pdaNode')), {\n docs: 'The PDAs derived by the program.',\n }),\n attribute('events', array(node('eventNode')), {\n docs: 'The events emitted by the program.',\n }),\n attribute('errors', array(node('errorNode')), {\n docs: 'The errors returned by the program.',\n }),\n attribute('constants', array(node('constantNode')), {\n docs: 'The constants exposed by the program.',\n }),\n ],\n});\n","import { array, attribute, codamaVersion, defineNode, literal, node } from '../../api';\n\nexport const rootNode = defineNode('rootNode', {\n docs: 'The root of a Codama IDL document. Pairs a primary program with any number of additional programs and tags the document with the spec version.',\n attributes: [\n attribute('standard', literal('codama'), {\n docs: 'A literal marker identifying the document as a Codama IDL.',\n }),\n attribute('version', codamaVersion(), {\n docs: 'The Codama spec version this document conforms to.',\n }),\n attribute('program', node('programNode'), {\n docs: 'The primary program described by the document.',\n }),\n attribute('additionalPrograms', array(node('programNode')), {\n docs: 'Additional programs referenced by the primary program.',\n }),\n ],\n});\n","import { attribute, defineNode, nestedTypeNode, optionalAttribute, string, u32 } from '../../../api';\n\nexport const amountTypeNode = defineNode('amountTypeNode', {\n docs: 'Wraps a number type to provide additional context such as decimal places and a unit. Useful for amounts representing financial values.',\n attributes: [\n attribute('decimals', u32(), {\n docs: 'The number of decimal places the wrapped integer carries. For example, an integer value of 12345 with 2 decimal places represents 123.45.',\n }),\n optionalAttribute('unit', string(), {\n docs: 'The unit of the amount — e.g. \"USD\" or \"%\".',\n }),\n attribute('number', nestedTypeNode('numberTypeNode'), {\n docs: 'The number type the amount wraps.',\n }),\n ],\n});\n","import { attribute, defineNode, union } from '../../../api';\n\nexport const arrayTypeNode = defineNode('arrayTypeNode', {\n docs: 'A homogeneous list of items. The item type is defined by `item`; the length is determined by the `count` strategy.',\n attributes: [\n attribute('item', union('TypeNode'), {\n docs: 'The type of each item in the array.',\n }),\n attribute('count', union('CountNode'), {\n docs: 'The strategy used to determine the number of items.',\n }),\n ],\n});\n","import { attribute, defineNode, nestedTypeNode } from '../../../api';\n\nexport const booleanTypeNode = defineNode('booleanTypeNode', {\n docs: 'A boolean serialised as a numeric value. The wrapped number type determines the byte width.',\n attributes: [\n attribute('size', nestedTypeNode('numberTypeNode'), {\n docs: 'The numeric type used to serialise the boolean.',\n }),\n ],\n});\n","import { defineNode } from '../../../api';\n\nexport const bytesTypeNode = defineNode('bytesTypeNode', {\n docs: 'A raw sequence of bytes. Typically used inside a fixed-size, size-prefixed, or sentinel-terminated wrapper.',\n attributes: [],\n});\n","import { attribute, defineNode, nestedTypeNode } from '../../../api';\n\nexport const dateTimeTypeNode = defineNode('dateTimeTypeNode', {\n docs: 'A timestamp encoded as a number, typically seconds since the Unix epoch. The wrapped number type determines the byte width.',\n attributes: [\n attribute('number', nestedTypeNode('numberTypeNode'), {\n docs: 'The numeric type used to serialise the timestamp.',\n }),\n ],\n});\n","import { attribute, defineNode, optionalAttribute, stringIdentifier, u32 } from '../../../api';\n\nexport const enumEmptyVariantTypeNode = defineNode('enumEmptyVariantTypeNode', {\n docs: 'A unit-style variant of an enum that carries no payload.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the variant.',\n }),\n optionalAttribute('discriminator', u32(), {\n docs: 'Explicit discriminator value. When omitted, the discriminator is inferred from the variant position.',\n }),\n ],\n});\n","import { attribute, defineNode, nestedTypeNode, optionalAttribute, stringIdentifier, u32 } from '../../../api';\n\nexport const enumStructVariantTypeNode = defineNode('enumStructVariantTypeNode', {\n docs: 'A variant of an enum that carries a struct payload (named fields).',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the variant.',\n }),\n optionalAttribute('discriminator', u32(), {\n docs: 'Explicit discriminator value. When omitted, the discriminator is inferred from the variant position.',\n }),\n attribute('struct', nestedTypeNode('structTypeNode'), {\n docs: 'The struct of named fields carried by the variant.',\n }),\n ],\n});\n","import { attribute, defineNode, nestedTypeNode, optionalAttribute, stringIdentifier, u32 } from '../../../api';\n\nexport const enumTupleVariantTypeNode = defineNode('enumTupleVariantTypeNode', {\n docs: 'A variant of an enum that carries a tuple payload (positional fields).',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the variant.',\n }),\n optionalAttribute('discriminator', u32(), {\n docs: 'Explicit discriminator value. When omitted, the discriminator is inferred from the variant position.',\n }),\n attribute('tuple', nestedTypeNode('tupleTypeNode'), {\n docs: 'The tuple of positional fields carried by the variant.',\n }),\n ],\n});\n","import { array, attribute, defineNode, nestedTypeNode, union } from '../../../api';\n\nexport const enumTypeNode = defineNode('enumTypeNode', {\n docs: 'A tagged union: a numeric discriminator followed by one of several variant payloads.',\n attributes: [\n attribute('variants', array(union('EnumVariantTypeNode')), {\n docs: 'The variants of the enum, in declaration order.',\n }),\n attribute('size', nestedTypeNode('numberTypeNode'), {\n docs: 'The numeric type used to serialise the discriminator.',\n }),\n ],\n});\n","import { attribute, defineNode, u64, union } from '../../../api';\n\nexport const fixedSizeTypeNode = defineNode('fixedSizeTypeNode', {\n docs: 'Wraps another type and asserts a fixed total byte size. Padding or truncation is applied as needed.',\n attributes: [\n attribute('size', u64(), {\n docs: 'The total byte size the wrapped type must occupy.',\n }),\n attribute('type', union('TypeNode'), {\n docs: 'The wrapped type whose serialisation is constrained.',\n }),\n ],\n});\n","import { array, attribute, defineNode, node, union } from '../../../api';\n\nexport const hiddenPrefixTypeNode = defineNode('hiddenPrefixTypeNode', {\n docs: 'Prefixes another type with a list of constant values that are written and read but not surfaced as fields to consumers.',\n attributes: [\n attribute('type', union('TypeNode'), {\n docs: 'The wrapped type whose serialisation is preceded by the hidden prefix.',\n }),\n attribute('prefix', array(node('constantValueNode')), {\n docs: 'The constant values written before the wrapped type, in order.',\n }),\n ],\n});\n","import { array, attribute, defineNode, node, union } from '../../../api';\n\nexport const hiddenSuffixTypeNode = defineNode('hiddenSuffixTypeNode', {\n docs: 'Suffixes another type with a list of constant values that are written and read but not surfaced as fields to consumers.',\n attributes: [\n attribute('type', union('TypeNode'), {\n docs: 'The wrapped type whose serialisation is followed by the hidden suffix.',\n }),\n attribute('suffix', array(node('constantValueNode')), {\n docs: 'The constant values written after the wrapped type, in order.',\n }),\n ],\n});\n","import { attribute, defineNode, union } from '../../../api';\n\nexport const mapTypeNode = defineNode('mapTypeNode', {\n docs: 'A keyed map. The key and value types are described by their respective type nodes; the entry count is determined by a count strategy.',\n attributes: [\n attribute('key', union('TypeNode'), {\n docs: 'The type of each entry key.',\n }),\n attribute('value', union('TypeNode'), {\n docs: 'The type of each entry value.',\n }),\n attribute('count', union('CountNode'), {\n docs: 'The strategy used to determine the number of entries.',\n }),\n ],\n});\n","import { attribute, defineNode, enumeration } from '../../../api';\n\nexport const numberTypeNode = defineNode('numberTypeNode', {\n docs: 'A numeric type with a fixed wire format and byte order.',\n attributes: [\n attribute('format', enumeration('NumberFormat'), {\n docs: 'The wire format used to serialise the number.',\n }),\n attribute('endian', enumeration('Endianness'), {\n docs: 'The byte order used to serialise the number.',\n }),\n ],\n});\n","import { attribute, boolean, defineNode, nestedTypeNode, optionalAttribute, union } from '../../../api';\n\nexport const optionTypeNode = defineNode('optionTypeNode', {\n docs: 'A value that may be present or absent (Some/None), with an explicit numeric prefix indicating presence.',\n attributes: [\n optionalAttribute('fixed', boolean(), {\n docs: 'When `true`, the absent variant still occupies the byte size of the present variant (zero-padded). Defaults to `false`.',\n }),\n attribute('item', union('TypeNode'), {\n docs: 'The type carried by the option when present.',\n }),\n attribute('prefix', nestedTypeNode('numberTypeNode'), {\n docs: 'The numeric type used as the presence flag.',\n }),\n ],\n});\n","import { attribute, defineNode, enumeration, i64, union } from '../../../api';\n\nexport const postOffsetTypeNode = defineNode('postOffsetTypeNode', {\n docs: 'After serialising the wrapped type, advance the cursor by `offset` bytes interpreted via the chosen strategy.',\n attributes: [\n attribute('offset', i64(), {\n docs: 'The signed byte offset to apply after the wrapped type runs.',\n }),\n attribute('strategy', enumeration('PostOffsetStrategy'), {\n docs: 'How the `offset` value is interpreted.',\n }),\n attribute('type', union('TypeNode'), {\n docs: 'The wrapped type whose serialisation is followed by the offset.',\n }),\n ],\n});\n","import { attribute, defineNode, enumeration, i64, union } from '../../../api';\n\nexport const preOffsetTypeNode = defineNode('preOffsetTypeNode', {\n docs: 'Before serialising the wrapped type, advance the cursor by `offset` bytes interpreted via the chosen strategy.',\n attributes: [\n attribute('offset', i64(), {\n docs: 'The signed byte offset to apply before the wrapped type runs.',\n }),\n attribute('strategy', enumeration('PreOffsetStrategy'), {\n docs: 'How the `offset` value is interpreted.',\n }),\n attribute('type', union('TypeNode'), {\n docs: 'The wrapped type whose serialisation is preceded by the offset.',\n }),\n ],\n});\n","import { defineNode } from '../../../api';\n\nexport const publicKeyTypeNode = defineNode('publicKeyTypeNode', {\n docs: 'A 32-byte Solana public key.',\n attributes: [],\n});\n","import { attribute, defineNode, union } from '../../../api';\n\nexport const remainderOptionTypeNode = defineNode('remainderOptionTypeNode', {\n docs: 'A value that may be present or absent. Presence is signalled by whether any bytes remain to be read, with no explicit prefix.',\n attributes: [\n attribute('item', union('TypeNode'), {\n docs: 'The type carried by the option when present.',\n }),\n ],\n});\n","import { attribute, defineNode, node, union } from '../../../api';\n\nexport const sentinelTypeNode = defineNode('sentinelTypeNode', {\n docs: 'Wraps another type and delimits it with a constant sentinel value written immediately after the wrapped type.',\n attributes: [\n attribute('type', union('TypeNode'), {\n docs: 'The wrapped type whose extent is delimited by the sentinel.',\n }),\n attribute('sentinel', node('constantValueNode'), {\n docs: 'The constant value written immediately after the wrapped type to mark its end.',\n }),\n ],\n});\n","import { attribute, defineNode, union } from '../../../api';\n\nexport const setTypeNode = defineNode('setTypeNode', {\n docs: 'A unique-valued collection. The item type is defined by `item`; the size is determined by the `count` strategy.',\n attributes: [\n attribute('item', union('TypeNode'), {\n docs: 'The type of each item in the set.',\n }),\n attribute('count', union('CountNode'), {\n docs: 'The strategy used to determine the number of items.',\n }),\n ],\n});\n","import { attribute, defineNode, nestedTypeNode, union } from '../../../api';\n\nexport const sizePrefixTypeNode = defineNode('sizePrefixTypeNode', {\n docs: 'Wraps another type with a numeric prefix indicating the byte length of the wrapped type.',\n attributes: [\n attribute('type', union('TypeNode'), {\n docs: 'The wrapped type whose serialisation is preceded by its size.',\n }),\n attribute('prefix', nestedTypeNode('numberTypeNode'), {\n docs: 'The numeric type used as the size prefix.',\n }),\n ],\n});\n","import { attribute, defineNode, nestedTypeNode } from '../../../api';\n\nexport const solAmountTypeNode = defineNode('solAmountTypeNode', {\n docs: 'A SOL amount expressed in lamports under the wrapped numeric type.',\n attributes: [\n attribute('number', nestedTypeNode('numberTypeNode'), {\n docs: 'The numeric type used to serialise the lamport amount.',\n }),\n ],\n});\n","import { attribute, defineNode, enumeration } from '../../../api';\n\nexport const stringTypeNode = defineNode('stringTypeNode', {\n docs: 'A string value. The encoding describes how its bytes are written; the byte length is determined by an enclosing wrapper such as `sizePrefixTypeNode` or `fixedSizeTypeNode`.',\n attributes: [\n attribute('encoding', enumeration('BytesEncoding'), {\n docs: 'The byte encoding used to serialise the string.',\n }),\n ],\n});\n","import { attribute, defineNode, docs, enumeration, optionalAttribute, stringIdentifier, union } from '../../../api';\n\nexport const structFieldTypeNode = defineNode('structFieldTypeNode', {\n docs: 'A named field within a struct type.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the field.',\n }),\n optionalAttribute('defaultValueStrategy', enumeration('DefaultValueStrategy'), {\n docs: 'How a configured default value is exposed in generated APIs. Required when `defaultValue` is set.',\n }),\n optionalAttribute('docs', docs(), {\n docs: 'Markdown documentation for the field.',\n }),\n attribute('type', union('TypeNode'), {\n docs: 'The type of the field.',\n }),\n optionalAttribute('defaultValue', union('ValueNode'), {\n docs: 'A default value used when the field is omitted by callers.',\n }),\n ],\n});\n","import { array, attribute, defineNode, node } from '../../../api';\n\nexport const structTypeNode = defineNode('structTypeNode', {\n docs: 'A composite type made of an ordered list of named fields. Fields are encoded and decoded in declaration order.',\n attributes: [\n attribute('fields', array(node('structFieldTypeNode')), {\n docs: 'The fields of the struct, in declaration order.',\n }),\n ],\n});\n","import { array, attribute, defineNode, union } from '../../../api';\n\nexport const tupleTypeNode = defineNode('tupleTypeNode', {\n docs: 'A heterogeneous fixed-length sequence in which each positional slot has its own type.',\n attributes: [\n attribute('items', array(union('TypeNode')), {\n docs: 'The type of each positional slot, in order.',\n }),\n ],\n});\n","/**\n * Named unions for the type-node category.\n *\n * - `StandaloneTypeNode` all type nodes that can stand alone as a type.\n * - `EnumVariantTypeNode` the three flavours of enum variant.\n * - `RegisteredTypeNode` every type-shaped node, including variants and struct fields.\n * - `TypeNode` StandaloneTypeNode + DefinedTypeLinkNode (the composable form).\n */\n\nimport { defineUnion, union } from '../../../api';\n\nconst STANDALONE_TYPE_NODE_KINDS = [\n 'amountTypeNode',\n 'arrayTypeNode',\n 'booleanTypeNode',\n 'bytesTypeNode',\n 'dateTimeTypeNode',\n 'enumTypeNode',\n 'fixedSizeTypeNode',\n 'hiddenPrefixTypeNode',\n 'hiddenSuffixTypeNode',\n 'mapTypeNode',\n 'numberTypeNode',\n 'optionTypeNode',\n 'postOffsetTypeNode',\n 'preOffsetTypeNode',\n 'publicKeyTypeNode',\n 'remainderOptionTypeNode',\n 'sentinelTypeNode',\n 'setTypeNode',\n 'sizePrefixTypeNode',\n 'solAmountTypeNode',\n 'stringTypeNode',\n 'structTypeNode',\n 'tupleTypeNode',\n 'zeroableOptionTypeNode',\n] as const;\n\nexport const standaloneTypeNodeUnion = defineUnion('StandaloneTypeNode', {\n docs: 'Every type node that can be used as a top-level type.',\n members: [...STANDALONE_TYPE_NODE_KINDS],\n});\n\nexport const enumVariantTypeNodeUnion = defineUnion('EnumVariantTypeNode', {\n docs: 'The variant flavours of an `enumTypeNode`.',\n members: ['enumEmptyVariantTypeNode', 'enumStructVariantTypeNode', 'enumTupleVariantTypeNode'],\n});\n\nexport const typeNodeUnion = defineUnion('TypeNode', {\n docs: 'The composable form: any standalone type, or a reference to a defined type via `definedTypeLinkNode`.',\n members: [union('StandaloneTypeNode'), 'definedTypeLinkNode'],\n});\n\nexport const registeredTypeNodeUnion = defineUnion('RegisteredTypeNode', {\n docs: 'Every node tagged as a type-shaped node, including variants and struct fields.',\n members: [union('StandaloneTypeNode'), union('EnumVariantTypeNode'), 'structFieldTypeNode'],\n});\n","import { attribute, defineNode, node, optionalAttribute, union } from '../../../api';\n\nexport const zeroableOptionTypeNode = defineNode('zeroableOptionTypeNode', {\n docs: 'An optional value whose absence is signalled by a designated zero value rather than a presence flag.',\n attributes: [\n attribute('item', union('TypeNode'), {\n docs: 'The type carried by the option when present.',\n }),\n optionalAttribute('zeroValue', node('constantValueNode'), {\n docs: 'The constant value that signals absence. When omitted, the all-zero byte pattern of the item type is used.',\n }),\n ],\n});\n","import { amountTypeNode } from './AmountTypeNode';\nimport { arrayTypeNode } from './ArrayTypeNode';\nimport { booleanTypeNode } from './BooleanTypeNode';\nimport { bytesTypeNode } from './BytesTypeNode';\nimport { dateTimeTypeNode } from './DateTimeTypeNode';\nimport { enumEmptyVariantTypeNode } from './EnumEmptyVariantTypeNode';\nimport { enumStructVariantTypeNode } from './EnumStructVariantTypeNode';\nimport { enumTupleVariantTypeNode } from './EnumTupleVariantTypeNode';\nimport { enumTypeNode } from './EnumTypeNode';\nimport { fixedSizeTypeNode } from './FixedSizeTypeNode';\nimport { hiddenPrefixTypeNode } from './HiddenPrefixTypeNode';\nimport { hiddenSuffixTypeNode } from './HiddenSuffixTypeNode';\nimport { mapTypeNode } from './MapTypeNode';\nimport { numberTypeNode } from './NumberTypeNode';\nimport { optionTypeNode } from './OptionTypeNode';\nimport { postOffsetTypeNode } from './PostOffsetTypeNode';\nimport { preOffsetTypeNode } from './PreOffsetTypeNode';\nimport { publicKeyTypeNode } from './PublicKeyTypeNode';\nimport { remainderOptionTypeNode } from './RemainderOptionTypeNode';\nimport { sentinelTypeNode } from './SentinelTypeNode';\nimport { setTypeNode } from './SetTypeNode';\nimport { sizePrefixTypeNode } from './SizePrefixTypeNode';\nimport { solAmountTypeNode } from './SolAmountTypeNode';\nimport { stringTypeNode } from './StringTypeNode';\nimport { structFieldTypeNode } from './StructFieldTypeNode';\nimport { structTypeNode } from './StructTypeNode';\nimport { tupleTypeNode } from './TupleTypeNode';\nimport { enumVariantTypeNodeUnion, registeredTypeNodeUnion, standaloneTypeNodeUnion, typeNodeUnion } from './TypeNode';\nimport { zeroableOptionTypeNode } from './ZeroableOptionTypeNode';\n\nexport const ALL_TYPE_NODES = [\n amountTypeNode,\n arrayTypeNode,\n booleanTypeNode,\n bytesTypeNode,\n dateTimeTypeNode,\n enumEmptyVariantTypeNode,\n enumStructVariantTypeNode,\n enumTupleVariantTypeNode,\n enumTypeNode,\n fixedSizeTypeNode,\n hiddenPrefixTypeNode,\n hiddenSuffixTypeNode,\n mapTypeNode,\n numberTypeNode,\n optionTypeNode,\n postOffsetTypeNode,\n preOffsetTypeNode,\n publicKeyTypeNode,\n remainderOptionTypeNode,\n sentinelTypeNode,\n setTypeNode,\n sizePrefixTypeNode,\n solAmountTypeNode,\n stringTypeNode,\n structFieldTypeNode,\n structTypeNode,\n tupleTypeNode,\n zeroableOptionTypeNode,\n] as const;\n\nexport const ALL_TYPE_NODE_UNIONS = [\n standaloneTypeNodeUnion,\n enumVariantTypeNodeUnion,\n typeNodeUnion,\n registeredTypeNodeUnion,\n] as const;\n","import { array, attribute, defineNode, union } from '../../../api';\n\nexport const arrayValueNode = defineNode('arrayValueNode', {\n docs: 'A concrete array value: a list of value nodes.',\n attributes: [\n attribute('items', array(union('ValueNode')), {\n docs: 'The items of the array, in order.',\n }),\n ],\n});\n","import { attribute, boolean, defineNode } from '../../../api';\n\nexport const booleanValueNode = defineNode('booleanValueNode', {\n docs: 'A concrete boolean value.',\n attributes: [\n attribute('boolean', boolean(), {\n docs: 'The boolean value.',\n }),\n ],\n});\n","import { attribute, defineNode, enumeration, string } from '../../../api';\n\nexport const bytesValueNode = defineNode('bytesValueNode', {\n docs: 'A concrete bytes value, encoded as text in the chosen encoding.',\n attributes: [\n attribute('data', string(), {\n docs: 'The bytes encoded as a text string per the `encoding` attribute.',\n }),\n attribute('encoding', enumeration('BytesEncoding'), {\n docs: 'The encoding used to represent the bytes as text.',\n }),\n ],\n});\n","import { attribute, defineNode, union } from '../../../api';\n\nexport const constantValueNode = defineNode('constantValueNode', {\n docs: 'A typed constant: a type node paired with a concrete value node.',\n attributes: [\n attribute('type', union('TypeNode'), {\n docs: 'The type of the constant.',\n }),\n attribute('value', union('ValueNode'), {\n docs: 'The concrete value of the constant.',\n }),\n ],\n});\n","import { attribute, defineNode, node, optionalAttribute, stringIdentifier, union } from '../../../api';\n\nexport const enumValueNode = defineNode('enumValueNode', {\n docs: 'A concrete value of a defined enum: a variant identifier plus an optional payload.',\n attributes: [\n attribute('variant', stringIdentifier(), {\n docs: 'The name of the selected variant.',\n }),\n attribute('enum', node('definedTypeLinkNode'), {\n docs: 'A link to the defined enum type the value belongs to.',\n }),\n optionalAttribute('value', union('EnumValuePayload'), {\n docs: 'The variant payload — a struct value for struct variants or a tuple value for tuple variants. Omitted for unit variants.',\n }),\n ],\n});\n","import { attribute, defineNode, union } from '../../../api';\n\nexport const mapEntryValueNode = defineNode('mapEntryValueNode', {\n docs: 'A single (key, value) pair inside a `mapValueNode`.',\n attributes: [\n attribute('key', union('ValueNode'), {\n docs: 'The entry key.',\n }),\n attribute('value', union('ValueNode'), {\n docs: 'The entry value.',\n }),\n ],\n});\n","import { array, attribute, defineNode, node } from '../../../api';\n\nexport const mapValueNode = defineNode('mapValueNode', {\n docs: 'A concrete map value: a list of (key, value) entries.',\n attributes: [\n attribute('entries', array(node('mapEntryValueNode')), {\n docs: 'The entries of the map, in order.',\n }),\n ],\n});\n","import { defineNode } from '../../../api';\n\nexport const noneValueNode = defineNode('noneValueNode', {\n docs: 'The \"absent\" value for an optional type.',\n attributes: [],\n});\n","import { attribute, defineNode, f64 } from '../../../api';\n\nexport const numberValueNode = defineNode('numberValueNode', {\n docs: 'A concrete numeric value. Stored as a 64-bit float; consumers narrow to a specific integer or float width based on the surrounding type context.',\n attributes: [\n attribute('number', f64(), {\n docs: 'The numeric value.',\n }),\n ],\n});\n","import { attribute, defineNode, optionalAttribute, string, stringIdentifier } from '../../../api';\n\nexport const publicKeyValueNode = defineNode('publicKeyValueNode', {\n docs: 'A concrete public key, with an optional symbolic identifier for the address.',\n attributes: [\n attribute('publicKey', string(), {\n docs: 'The base58-encoded public key.',\n }),\n optionalAttribute('identifier', stringIdentifier(), {\n docs: 'A symbolic name for the address, useful in generated client code.',\n }),\n ],\n});\n","import { array, attribute, defineNode, union } from '../../../api';\n\nexport const setValueNode = defineNode('setValueNode', {\n docs: 'A concrete set value: a list of unique value nodes.',\n attributes: [\n attribute('items', array(union('ValueNode')), {\n docs: 'The items of the set.',\n }),\n ],\n});\n","import { attribute, defineNode, union } from '../../../api';\n\nexport const someValueNode = defineNode('someValueNode', {\n docs: 'The \"present\" value for an optional type, wrapping a concrete value node.',\n attributes: [\n attribute('value', union('ValueNode'), {\n docs: 'The wrapped value.',\n }),\n ],\n});\n","import { attribute, defineNode, string } from '../../../api';\n\nexport const stringValueNode = defineNode('stringValueNode', {\n docs: 'A concrete string value.',\n attributes: [\n attribute('string', string(), {\n docs: 'The string value.',\n }),\n ],\n});\n","import { attribute, defineNode, stringIdentifier, union } from '../../../api';\n\nexport const structFieldValueNode = defineNode('structFieldValueNode', {\n docs: 'A named field of a `structValueNode`.',\n attributes: [\n attribute('name', stringIdentifier(), {\n docs: 'The name of the field.',\n }),\n attribute('value', union('ValueNode'), {\n docs: 'The concrete value of the field.',\n }),\n ],\n});\n","import { array, attribute, defineNode, node } from '../../../api';\n\nexport const structValueNode = defineNode('structValueNode', {\n docs: 'A concrete struct value: a list of named field values.',\n attributes: [\n attribute('fields', array(node('structFieldValueNode')), {\n docs: 'The named fields of the struct value.',\n }),\n ],\n});\n","import { array, attribute, defineNode, union } from '../../../api';\n\nexport const tupleValueNode = defineNode('tupleValueNode', {\n docs: 'A concrete tuple value: a fixed-length sequence of positional value nodes.',\n attributes: [\n attribute('items', array(union('ValueNode')), {\n docs: 'The positional items of the tuple, in order.',\n }),\n ],\n});\n","/**\n * Named unions for the value-node category.\n *\n * - `StandaloneValueNode` every value node usable as a top-level value.\n * - `ValueNode` the composable form (alias for `StandaloneValueNode` in v1).\n * - `RegisteredValueNode` every value-shaped node, including container variants like\n * `mapEntryValueNode` and `structFieldValueNode`.\n * - `EnumValuePayload` the inline `StructValueNode | TupleValueNode` union used\n * for `enumValueNode.value`.\n */\n\nimport { defineUnion, union } from '../../../api';\n\nconst STANDALONE_VALUE_NODE_KINDS = [\n 'arrayValueNode',\n 'booleanValueNode',\n 'bytesValueNode',\n 'constantValueNode',\n 'enumValueNode',\n 'mapValueNode',\n 'noneValueNode',\n 'numberValueNode',\n 'publicKeyValueNode',\n 'setValueNode',\n 'someValueNode',\n 'stringValueNode',\n 'structValueNode',\n 'tupleValueNode',\n] as const;\n\nexport const standaloneValueNodeUnion = defineUnion('StandaloneValueNode', {\n docs: 'Every value node that can be used as a top-level value.',\n members: [...STANDALONE_VALUE_NODE_KINDS],\n});\n\nexport const valueNodeUnion = defineUnion('ValueNode', {\n docs: 'The composable form: any standalone value node.',\n members: [union('StandaloneValueNode')],\n});\n\nexport const registeredValueNodeUnion = defineUnion('RegisteredValueNode', {\n docs: 'Every node tagged as a value-shaped node, including container variants.',\n members: [union('StandaloneValueNode'), 'mapEntryValueNode', 'structFieldValueNode'],\n});\n\nexport const enumValuePayloadUnion = defineUnion('EnumValuePayload', {\n docs: 'The payload kinds an `enumValueNode` may carry — struct fields or positional tuple slots.',\n members: ['structValueNode', 'tupleValueNode'],\n});\n","import { arrayValueNode } from './ArrayValueNode';\nimport { booleanValueNode } from './BooleanValueNode';\nimport { bytesValueNode } from './BytesValueNode';\nimport { constantValueNode } from './ConstantValueNode';\nimport { enumValueNode } from './EnumValueNode';\nimport { mapEntryValueNode } from './MapEntryValueNode';\nimport { mapValueNode } from './MapValueNode';\nimport { noneValueNode } from './NoneValueNode';\nimport { numberValueNode } from './NumberValueNode';\nimport { publicKeyValueNode } from './PublicKeyValueNode';\nimport { setValueNode } from './SetValueNode';\nimport { someValueNode } from './SomeValueNode';\nimport { stringValueNode } from './StringValueNode';\nimport { structFieldValueNode } from './StructFieldValueNode';\nimport { structValueNode } from './StructValueNode';\nimport { tupleValueNode } from './TupleValueNode';\nimport { enumValuePayloadUnion, registeredValueNodeUnion, standaloneValueNodeUnion, valueNodeUnion } from './ValueNode';\n\nexport const ALL_VALUE_NODES = [\n arrayValueNode,\n booleanValueNode,\n bytesValueNode,\n constantValueNode,\n enumValueNode,\n mapEntryValueNode,\n mapValueNode,\n noneValueNode,\n numberValueNode,\n publicKeyValueNode,\n setValueNode,\n someValueNode,\n stringValueNode,\n structFieldValueNode,\n structValueNode,\n tupleValueNode,\n] as const;\n\nexport const ALL_VALUE_NODE_UNIONS = [\n standaloneValueNodeUnion,\n valueNodeUnion,\n registeredValueNodeUnion,\n enumValuePayloadUnion,\n] as const;\n","import { accountNode } from './AccountNode';\nimport { constantNode } from './ConstantNode';\nimport { ALL_CONTEXTUAL_VALUE_NODE_UNIONS, ALL_CONTEXTUAL_VALUE_NODES } from './contextualValueNodes';\nimport { ALL_COUNT_NODE_UNIONS, ALL_COUNT_NODES } from './countNodes';\nimport { definedTypeNode } from './DefinedTypeNode';\nimport { ALL_DISCRIMINATOR_NODE_UNIONS, ALL_DISCRIMINATOR_NODES } from './discriminatorNodes';\nimport { errorNode } from './ErrorNode';\nimport { eventNode } from './EventNode';\nimport { instructionAccountNode } from './InstructionAccountNode';\nimport { instructionArgumentNode } from './InstructionArgumentNode';\nimport { instructionByteDeltaNode } from './InstructionByteDeltaNode';\nimport { instructionNode } from './InstructionNode';\nimport { instructionByteDeltaValueUnion, instructionRemainingAccountsValueUnion } from './InstructionNodeUnions';\nimport { instructionRemainingAccountsNode } from './InstructionRemainingAccountsNode';\nimport { instructionStatusNode } from './InstructionStatusNode';\nimport { ALL_LINK_NODE_UNIONS, ALL_LINK_NODES } from './linkNodes';\nimport { pdaNode } from './PdaNode';\nimport { ALL_PDA_SEED_NODE_UNIONS, ALL_PDA_SEED_NODES } from './pdaSeedNodes';\nimport { programNode } from './ProgramNode';\nimport { rootNode } from './RootNode';\nimport { ALL_TYPE_NODE_UNIONS, ALL_TYPE_NODES } from './typeNodes';\nimport { ALL_VALUE_NODE_UNIONS, ALL_VALUE_NODES } from './valueNodes';\n\nexport const ALL_NODES = [\n ...ALL_TYPE_NODES,\n ...ALL_VALUE_NODES,\n ...ALL_LINK_NODES,\n ...ALL_PDA_SEED_NODES,\n ...ALL_COUNT_NODES,\n ...ALL_DISCRIMINATOR_NODES,\n ...ALL_CONTEXTUAL_VALUE_NODES,\n\n // Top-level nodes — directly under `nodes/`, no subdirectory.\n accountNode,\n constantNode,\n definedTypeNode,\n errorNode,\n eventNode,\n instructionAccountNode,\n instructionArgumentNode,\n instructionByteDeltaNode,\n instructionNode,\n instructionRemainingAccountsNode,\n instructionStatusNode,\n pdaNode,\n programNode,\n rootNode,\n] as const;\n\nexport const ALL_UNIONS = [\n ...ALL_TYPE_NODE_UNIONS,\n ...ALL_VALUE_NODE_UNIONS,\n ...ALL_LINK_NODE_UNIONS,\n ...ALL_PDA_SEED_NODE_UNIONS,\n ...ALL_COUNT_NODE_UNIONS,\n ...ALL_DISCRIMINATOR_NODE_UNIONS,\n ...ALL_CONTEXTUAL_VALUE_NODE_UNIONS,\n\n // Inline-helper unions used by instruction-shaped nodes.\n instructionByteDeltaValueUnion,\n instructionRemainingAccountsValueUnion,\n] as const;\n","/**\n * `@codama/spec/v1` — public surface for Codama v1 spec consumers.\n *\n * Re-exports the version-agnostic types and utilities from the meta-model's\n * public barrel, plus the v1-specific accessors (`getSpec`, `getNode`,\n * `getUnion`, `getEnumeration`) and the `SPEC_VERSION` constant.\n *\n * Authoring helpers (`defineNode`, primitives, …) are NOT re-exported.\n */\n\nimport type { EnumerationSpec, NodeSpec, Spec, UnionSpec } from '../api';\nimport { validate } from '../api';\nimport { ALL_ENUMERATIONS } from './enumerations';\nimport { NESTED_TYPE_NODE_WRAPPERS } from './nestedTypeNodeWrappers';\nimport { ALL_NODES, ALL_UNIONS } from './nodes';\n\nexport * from '../api/public';\n\n/** The version string of the v1 spec. */\nexport const SPEC_VERSION = '1.6.0';\n\nlet cached: Spec | undefined;\n\n/**\n * Returns the assembled and validated v1 spec. The first call performs\n * validation; subsequent calls return the cached value by reference.\n *\n * Throws an `Error` if the spec is internally inconsistent — refs that don't\n * resolve, duplicate names, naming convention violations, etc.\n */\nexport function getSpec(): Spec {\n if (cached) return cached;\n const built: Spec = {\n version: SPEC_VERSION,\n enumerations: ALL_ENUMERATIONS,\n nodes: ALL_NODES,\n unions: ALL_UNIONS,\n nestedTypeNodeWrappers: NESTED_TYPE_NODE_WRAPPERS,\n };\n const errors = validate(built);\n if (errors.length > 0) {\n throw new Error(`Invalid Codama v1 spec:\\n${errors.map(e => ` - ${e}`).join('\\n')}`);\n }\n cached = built;\n return cached;\n}\n\n/** Lookup a single node by its `kind`, or `undefined` if absent. */\nexport function getNode(kind: string): NodeSpec | undefined {\n return getSpec().nodes.find(n => n.kind === kind);\n}\n\n/** Lookup a single union by its `name`, or `undefined` if absent. */\nexport function getUnion(name: string): UnionSpec | undefined {\n return getSpec().unions.find(u => u.name === name);\n}\n\n/** Lookup a single enumeration by its `name`, or `undefined` if absent. */\nexport function getEnumeration(name: string): EnumerationSpec | undefined {\n return getSpec().enumerations.find(e => e.name === name);\n}\n"]}