38 lines
No EOL
1.9 KiB
Markdown
38 lines
No EOL
1.9 KiB
Markdown
# decord — data branch
|
|
|
|
Auto-generated by `main`'s `update (hourly)` workflow (`src/update/tasks/decompile.ts` + `code.ts`). Do not edit manually.
|
|
|
|
## Layout
|
|
|
|
Data is split per Discord release channel: `alpha/`, `beta/`, `stable/`. Each channel has the same contents:
|
|
|
|
- `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`
|
|
|
|
`version.txt` is written only after a successful decompile. A placeholder `0` signals "never decompiled" (forces the first run).
|
|
|
|
## `source/` layout
|
|
|
|
`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.
|
|
|
|
`6468` modules have no path in the bundle and are sharded semantically to avoid GitHub's 1000-file dir limit (`NNxxx = id//1000`):
|
|
|
|
- `__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
|
|
|
|
Each `NNxxx` bucket is `<1000` (max `961` in `02xxx` polyfill).
|
|
|
|
## Why some are "unmapped"
|
|
|
|
`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()`.
|
|
|
|
## Links
|
|
|
|
- Main: https://github.com/lvwmwm/decord
|
|
- Workflow: `.github/workflows/update.yml` (`workflow_dispatch force=true` to re-shard) |