npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ton-source-map

v0.2.2

Published

TypeScript type definitions and functions for TON Source Map format used by Tolk and FunC compilers

Downloads

6,951

Readme

TON Source Map

CI

TypeScript type definitions and utilities for the TON Source Map format used by Tolk and FunC compilers.

What is TON Source Map?

TON Source Map provides debugging capabilities for smart contracts compiled to TVM (TON Virtual Machine). It enables source-level debugging by mapping between:

  • High-level source code (Tolk/FunC) and TVM bitcode (Cells)
  • Debug locations with variable state information
  • Source files and their compiled representations

Architecture

The source map consists of two main components:

High-Level Mapping

Maps DEBUGMARK IDs (debug sections) to high-level language constructs:

  • Source code locations (file, line, column)
  • Variable states at each debug point
  • Function context and inlining information
  • AST node types and execution context

Assembly Mapping

Maps TVM Cells to assembly instructions:

  • Cell hash to instruction sequences
  • Instruction locations and debug sections
  • Offset-based navigation in bitcode

How Mappings Work Together

The two mappings form a complete debugging bridge between TVM bitcode and source code through debug sections:

  1. High-level → Debug Sections: Each HighLevelSourceMapEntry has an idx field that represents a debug section number. This connects source locations to logical code blocks.

  2. Assembly → Debug Sections: Each InstructionInfo contains a debugSections array that links TVM instructions to the same debug section numbers.

  3. Complete Mapping: When TVM executes an instruction, you can:

    • Find the instruction in assembly mapping by (cell hash + offset)
    • Get debug section numbers from that instruction
    • Look up corresponding source locations in high-level mapping

Example flow:

TVM Execution Data (hash + offset)
    ↓ findInstructionInfo()
Assembly Mapping → InstructionInfo.debugSections[]
    ↓ findHighlevelLocationBySection()
High-Level Mapping → HighLevelSourceMapEntry.loc (file, line, column)

This architecture enables bidirectional debugging: from bitcode to source code and vice versa.

Usage

import {SourceMap, findHighlevelLocations} from "ton-source-map"

// Find source location from TVM execution data
const locations = findHighlevelLocations(sourceMap, cellHash, offset)

Development

This project uses Corepack to manage Yarn version. Make sure to enable it first:

# Enable corepack (one time setup)
corepack enable

# Run tests
yarn test

# Run linter check
yarn fmt:check

# Run full pre-commit checks
yarn precommit

License

MIT