nitro-patcher 0.1.0

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.
Files changed (44) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +22 -0
  3. package/dist/browser.d.ts +34 -0
  4. package/dist/browser.js +4616 -0
  5. package/dist/browser.js.LEGAL.txt +147 -0
  6. package/dist/browser.js.map +7 -0
  7. package/dist/chunk-ANN47R34.js +1 -0
  8. package/dist/chunk-ANN47R34.js.map +1 -0
  9. package/dist/chunk-GFF67HX4.js +1181 -0
  10. package/dist/chunk-GFF67HX4.js.map +1 -0
  11. package/dist/chunk-L7ZM4LLP.js +396 -0
  12. package/dist/chunk-L7ZM4LLP.js.map +1 -0
  13. package/dist/cli.d.ts +1 -0
  14. package/dist/cli.js +76 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/index.d.ts +2 -0
  17. package/dist/index.js +56 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/nitro-helper.d.ts +315 -0
  20. package/dist/nitro-helper.js +44 -0
  21. package/dist/nitro-helper.js.map +1 -0
  22. package/dist/nitro-patch-helper.d.ts +46 -0
  23. package/dist/nitro-patch-helper.js +16 -0
  24. package/dist/nitro-patch-helper.js.map +1 -0
  25. package/package.json +86 -0
  26. package/src/browser/buffer.ts +1 -0
  27. package/src/browser.ts +60 -0
  28. package/src/cli.ts +76 -0
  29. package/src/index.ts +2 -0
  30. package/src/nitro/banner.ts +77 -0
  31. package/src/nitro/binary.ts +80 -0
  32. package/src/nitro/blz.ts +163 -0
  33. package/src/nitro/crc.ts +23 -0
  34. package/src/nitro/crypto.ts +178 -0
  35. package/src/nitro/filesystem.ts +183 -0
  36. package/src/nitro/header.ts +254 -0
  37. package/src/nitro/nds-file.ts +285 -0
  38. package/src/nitro/twl.ts +338 -0
  39. package/src/nitro-helper.ts +14 -0
  40. package/src/nitro-patch-helper.ts +95 -0
  41. package/src/patch/xdelta.ts +214 -0
  42. package/src/patch/zip.ts +206 -0
  43. package/src/runtime/browser.ts +40 -0
  44. package/src/runtime/node.ts +28 -0
package/README.md ADDED
@@ -0,0 +1,22 @@
1
+ # nitro-patcher
2
+
3
+ 使用 TypeScript 编写的原生 Node.js NDS ROM 补丁工具,迁移自 [NitroPatcher](https://github.com/Xzonn/NitroPatcher) 和 [NitroHelper](https://github.com/Xzonn/NitroHelper)。
4
+
5
+ 运行环境:Node.js 22 或更高版本。
6
+
7
+ ## 安装与 CLI
8
+
9
+ ```sh
10
+ pnpm add nitro-patcher
11
+ npx nitro-patcher original.nds patch.zip patched.nds
12
+ ```
13
+
14
+ 也可以直接运行:
15
+
16
+ ```sh
17
+ npx nitro-patcher --json original.nds patch.zip patched.nds
18
+ ```
19
+
20
+ ## License
21
+
22
+ GPL v3,见 [LICENSE](LICENSE)。
@@ -0,0 +1,34 @@
1
+ export interface BrowserPatchOptions {
2
+ maxOutputSize?: number;
3
+ maxWindowSize?: number;
4
+ maxUncompressedSize?: number;
5
+ maxEntries?: number;
6
+ }
7
+ export interface BrowserPatchResult {
8
+ buffer: Uint8Array<ArrayBuffer>;
9
+ returnValue: 'SUCCESS' | 'MD5_MISMATCH';
10
+ inputMd5: string;
11
+ outputMd5: string;
12
+ }
13
+ export interface RomInfo {
14
+ gameTitle: string;
15
+ gameCode: string;
16
+ size: number;
17
+ fileCount: number;
18
+ checksums: {
19
+ header: boolean;
20
+ logo: boolean;
21
+ secureArea: boolean;
22
+ banner: boolean;
23
+ };
24
+ }
25
+ /** Parse ROM metadata entirely in memory. No filesystem or Node types required. */
26
+ export declare const inspectRom: (bytes: Uint8Array) => RomInfo;
27
+ /** Synchronous CPU work; call in a Web Worker for responsive browser UIs. */
28
+ export declare const patchBuffer: (original: Uint8Array, archive: Uint8Array, options?: BrowserPatchOptions) => BrowserPatchResult;
29
+ export declare const PatchHelper: Readonly<{
30
+ patchBuffer: (original: Uint8Array, archive: Uint8Array, options?: BrowserPatchOptions) => BrowserPatchResult;
31
+ }>;
32
+ export declare const NitroHelper: Readonly<{
33
+ inspectRom: (bytes: Uint8Array) => RomInfo;
34
+ }>;