ipa-resign 0.0.5 → 0.0.7

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.
package/LICENSE ADDED
@@ -0,0 +1,47 @@
1
+ Copyright (c) 2026 650 Industries, Inc. All rights reserved.
2
+
3
+ PROPRIETARY SOFTWARE LICENSE
4
+
5
+ This software, including the package published as "ipa-resign" and all of its
6
+ source code, compiled bundles, native helper binaries, and accompanying files
7
+ (the "Software"), is the confidential and proprietary property of 650
8
+ Industries, Inc. ("650 Industries").
9
+
10
+ 1. No license granted. No license or right to the Software is granted to you,
11
+ whether by implication, estoppel, or otherwise, except under a separate
12
+ written agreement signed by 650 Industries. Absent such an agreement, you may
13
+ not use, copy, install, execute, or retain the Software.
14
+
15
+ 2. Restrictions. You may not, and may not permit any third party to:
16
+ (a) reverse engineer, decompile, disassemble, deobfuscate, or otherwise
17
+ attempt to derive the source code, structure, algorithms, or protocols of
18
+ the Software, in whole or in part;
19
+ (b) copy, distribute, republish, sublicense, sell, rent, lease, or otherwise
20
+ make the Software available to any third party;
21
+ (c) modify, adapt, translate, or create derivative works of the Software; or
22
+ (d) remove, obscure, or alter any proprietary notice in the Software.
23
+
24
+ Any circumvention or attempted circumvention of the technical protection
25
+ measures in the Software (including its obfuscation) is a material breach of
26
+ this license and may violate applicable law.
27
+
28
+ 3. Third-party components. The Software bundles third-party open-source
29
+ components that remain licensed under their own respective terms. Those terms,
30
+ and the required copyright and permission notices, are reproduced in
31
+ dist/THIRD-PARTY-LICENSES.txt. Nothing in this license limits your rights, or
32
+ enlarges your obligations, under those third-party licenses with respect to
33
+ those components. The restrictions in Section 2 apply only to the proprietary
34
+ portions of the Software authored by 650 Industries.
35
+
36
+ 4. Reservation of rights. All rights not expressly granted are reserved by 650
37
+ Industries. This license does not transfer any ownership, title, or
38
+ intellectual property right in the Software.
39
+
40
+ 5. No warranty. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
42
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
43
+
44
+ 6. Limitation of liability. IN NO EVENT SHALL 650 INDUSTRIES BE LIABLE FOR ANY
45
+ CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR
46
+ OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE
47
+ OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -81,9 +81,10 @@ The protocol is transport-agnostic — it depends only on a small injected `Plat
81
81
  - **`ipa-resign/sign-browser`** — browser-side IPA re-signing via zsign compiled to WASM
82
82
  (the `zsign-wasm` package; its glue is served same-origin by the host app). Browser-only; the web
83
83
  counterpart to the Node `zsign` binary path.
84
- - **`ipa-resign/assets/anisette`** — the vendored [anisette-js](https://github.com/lbr77/anisette-js)
85
- + Unicorn WASM the browser generator fetches at runtime (source of truth; the web app syncs
86
- these into its `public/`).
84
+ - **`ipa-resign/assets/anisette`** — the anisette ADI emulator (Rust→WASM + a TS API) the
85
+ browser generator fetches at runtime. Built from the source under `anisette/wasm/` (not
86
+ committed run `yarn build:anisette`, or the release workflow rebuilds it before publishing;
87
+ see [RELEASING.md](RELEASING.md)). The web app syncs it into its `public/`.
87
88
 
88
89
  Internally the Node protocol modules (`src/auth/gsa.ts`, `src/devPortal.ts`, `src/auth/srp.ts`,
89
90
  `src/sign/csr.ts`) are thin adapters that wrap `core` with the Node `Platform` (`src/platform.ts`)
@@ -95,33 +96,36 @@ and re-wrap bytes as `Buffer` for the CLI. Full design:
95
96
 
96
97
  ```bash
97
98
  yarn install
98
- yarn build # dist/: bytecode CLI bundle (index.jsc) + the ipa-resign/core and
99
+ yarn build # dist/: obfuscated CLI bundle (index.js) + the ipa-resign/core and
99
100
  # ipa-resign/anisette-browser subpath builds + bundled .d.ts
100
101
  ```
101
102
 
102
- `yarn build` is platform-agnostic — it just bundles TypeScript (via esbuild). It runs
103
- three steps: the bytecode CLI build, then `build:core` and `build:anisette-browser` (the
104
- two browser-consumable subpaths, which you can also run on their own). The native helper
105
- binaries are built separately because they require platform-specific toolchains:
103
+ `yarn build` is platform-agnostic — it bundles TypeScript (via esbuild) and runs each
104
+ bundle through `javascript-obfuscator` (`scripts/obfuscate.mjs`). It runs several
105
+ steps: the obfuscated CLI build, then `build:core`, `build:anisette-browser`,
106
+ `build:sign-browser`, and `build:browser` (the browser-consumable subpaths, which you
107
+ can also run on their own). The native helper binaries are built separately because
108
+ they require platform-specific toolchains:
106
109
 
107
110
  ```bash
108
111
  # Build the macOS anisette helper (only works on macOS — needs swiftc, i.e. Xcode CLT).
109
112
  # Produces bin/anisette as a universal arm64 + x86_64 Mach-O.
110
113
  yarn build:helper:macos
111
114
 
112
- # Cross-compile the Rust anisette helper for Windows + Linux from any host.
113
- # Produces bin/anisette-{linux,win}-{x64,arm64}{.exe}. Requires zig + cargo-zigbuild
114
- # for the Linux targets and cross + Docker for the Windows targets. See
115
- # anisette/orbit-anisette-rs/README.md for setup.
116
- yarn build:helper:rust
115
+ # Rebuild the anisette WASM assets (assets/anisette/) from the anisette/wasm
116
+ # source. This is the Windows/Linux anisette provider. Needs emsdk + Rust nightly
117
+ # + the Unicorn fork; the release workflow runs it. See RELEASING.md.
118
+ yarn build:anisette
117
119
  ```
118
120
 
119
121
  End users installing the package via npm don't run any of the helper scripts —
120
- the published package ships the macOS binaries already built (`bin/anisette`
121
- for OTP headers, `bin/zsign` for code signing). On Windows and Linux, use the
122
- WASM subpath exports (`ipa-resign/browser`, `ipa-resign/sign-browser`); the
123
- cross-compiled native helpers are not published. `src/auth/anisette.ts` and
124
- `src/sign/codesign.ts` pick the right binary at runtime by inspecting
122
+ the published package ships the macOS binary (`bin/anisette` for OTP headers) and
123
+ `bin/zsign` for code signing, plus the anisette WASM assets. **Anisette** uses the
124
+ native Swift helper on macOS and the anisette WASM emulator
125
+ (`src/auth/anisette-wasm.ts`, running the `assets/anisette/` build) on Windows and
126
+ Linux no native helper is cross-compiled anymore. **Code signing** on Windows and
127
+ Linux uses the WASM subpath exports (`ipa-resign/sign-browser`). `src/auth/anisette.ts`
128
+ and `src/sign/codesign.ts` pick the right path at runtime by inspecting
125
129
  `process.platform` + `process.arch`.
126
130
 
127
131
  Releasing a new version: see [RELEASING.md](./RELEASING.md).