2026-08-27 13:23:31 -03:00
# decord — data branch
2026-08-27 13:24:15 -03:00
Auto-generated by `main` 's `update (hourly)` workflow (`src/update/tasks/decompile.ts` + `code.ts` ). Do not edit manually.
2026-08-27 13:23:31 -03:00
2026-09-18 14:30:03 -03:00
## Layout
Data is split per Discord release channel: `alpha/` , `beta/` , `stable/` . Each channel has the same contents:
2026-08-27 13:23:31 -03:00
2026-08-27 13:24:15 -03:00
- `code.js.gz` — full decompiled bundle (`hermes-decomp decompile` )
- `index.android.bundle` / `.hdcache`
- `module-paths.json` — `[{id, path}]` extracted from `code.js` via `fileFinishedImporting("...")`
- `source.jsonl` — `{file, size}` index
- `source/` — `16492` modules (`hermes-decomp extract` + path mapping)
- `version.txt`
2026-08-27 13:23:31 -03:00
2026-09-18 14:30:03 -03:00
`version.txt` is written only after a successful decompile. A placeholder `0` signals "never decompiled" (forces the first run).
2026-08-27 13:24:15 -03:00
## `source/` layout
2026-08-27 13:23:31 -03:00
2026-09-18 14:30:03 -03:00
`10030` Discord-owned modules have a real path (`fileFinishedImporting` ) and are placed at their source path: `modules/` (7291), `discord_common/` (501), `discord_assets/` , `utils/` , `actions/` , etc.
2026-08-27 13:23:31 -03:00
2026-08-27 13:24:15 -03:00
`6468` modules have no path in the bundle and are sharded semantically to avoid GitHub's 1000-file dir limit (`NNxxx = id//1000` ):
2026-08-27 13:23:31 -03:00
2026-08-27 13:24:15 -03:00
- `__helpers/NNxxx/` — `~460` Babel/RN helpers (`_typeof` , `_isNativeReflectConstruct:182` , `__INTERNAL_VIEW_CONFIG` )
- `__vendor/NNxxx/` — `~2558` vendor/barrels (`1000_feedbackAsyncIntegration` , `items` , `prop` , `formatDistance` , Sentry/Reanimated)
- `__polyfill/NNxxx/` — `~3439` opaque `module_*.js`
- `6` root files with path but no `/` (`index.native.tsx:0` , `Constants.tsx:653` etc) stay at root
2026-08-27 13:23:31 -03:00
2026-08-27 13:24:15 -03:00
Each `NNxxx` bucket is `<1000` (max `961` in `02xxx` polyfill).
2026-08-27 13:23:31 -03:00
## Why some are "unmapped"
2026-08-27 13:24:15 -03:00
`fileFinishedImporting` is only emitted for Discord source. Helpers/vendor are required at runtime (`dependencyMap` ) but are not part of Discord's repo, so no path exists. See `src/update/tasks/code.ts:54 resolveDest()` and `classifyUnmapped()` .
2026-08-27 13:23:31 -03:00
## Links
- Main: https://github.com/lvwmwm/decord
2026-09-18 14:30:03 -03:00
- Workflow: `.github/workflows/update.yml` (`workflow_dispatch force=true` to re-shard)