@xcodekit/xcode-node 0.6.8 → 0.6.10
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/README.md +302 -0
- package/index.d.ts +2 -0
- package/index.js +18 -18
- package/package.json +6 -6
package/README.md
ADDED
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
# @xcodekit/xcode
|
|
2
|
+
|
|
3
|
+
Super fast Xcode `.pbxproj` parser and serializer written in Rust.
|
|
4
|
+
|
|
5
|
+
Drop-in replacement for the low-level API of [`@bacons/xcode`](https://github.com/EvanBacon/xcode) — same `parse()` and `build()` interface, **3-15x faster parsing**, byte-identical output.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Recommended — auto-selects native or WASM
|
|
11
|
+
npm install @xcodekit/xcode
|
|
12
|
+
|
|
13
|
+
# Native only (Node.js, fastest)
|
|
14
|
+
npm install @xcodekit/xcode-node
|
|
15
|
+
|
|
16
|
+
# WASM only (universal — Bun, CF Workers, any bundler)
|
|
17
|
+
npm install @xcodekit/xcode-wasm
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
`@xcodekit/xcode` is a thin auto-selector — in Node.js/Bun it tries the native addon first, everywhere else it uses WASM. You get optimal performance without choosing.
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
```js
|
|
25
|
+
import { parse, build } from "@xcodekit/xcode";
|
|
26
|
+
import { readFileSync, writeFileSync } from "fs";
|
|
27
|
+
|
|
28
|
+
// Parse a .pbxproj file
|
|
29
|
+
const text = readFileSync("project.pbxproj", "utf8");
|
|
30
|
+
const project = parse(text);
|
|
31
|
+
|
|
32
|
+
// Modify it
|
|
33
|
+
project.objects["YOUR_UUID"] = {
|
|
34
|
+
isa: "PBXFileReference",
|
|
35
|
+
path: "NewFile.swift",
|
|
36
|
+
sourceTree: "<group>",
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// Write it back
|
|
40
|
+
const output = build(project);
|
|
41
|
+
writeFileSync("project.pbxproj", output);
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## API
|
|
45
|
+
|
|
46
|
+
### Low-Level (JSON)
|
|
47
|
+
|
|
48
|
+
#### `parse(text: string): object`
|
|
49
|
+
|
|
50
|
+
Parse a `.pbxproj` string into a JSON-compatible object. Matches the output of `@bacons/xcode/json`'s `parse()`.
|
|
51
|
+
|
|
52
|
+
```js
|
|
53
|
+
const project = parse(readFileSync("project.pbxproj", "utf8"));
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### `build(project: object): string`
|
|
57
|
+
|
|
58
|
+
Serialize a JSON object back to `.pbxproj` format. Produces byte-identical output to `@bacons/xcode/json`'s `build()`.
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
writeFileSync("project.pbxproj", build(project));
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
#### `parseAndBuild(text: string): string`
|
|
65
|
+
|
|
66
|
+
Parse and immediately re-serialize. Stays entirely in Rust/WASM with zero JS marshalling — the fastest possible round-trip path.
|
|
67
|
+
|
|
68
|
+
```js
|
|
69
|
+
const output = parseAndBuild(readFileSync("project.pbxproj", "utf8"));
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### High-Level (XcodeProject)
|
|
73
|
+
|
|
74
|
+
#### `XcodeProject.open(filePath)` / `XcodeProject.fromString(content)`
|
|
75
|
+
|
|
76
|
+
Open from disk or parse from a string.
|
|
77
|
+
|
|
78
|
+
```js
|
|
79
|
+
import { XcodeProject } from "@xcodekit/xcode";
|
|
80
|
+
|
|
81
|
+
// From disk
|
|
82
|
+
const project = XcodeProject.open("ios/MyApp.xcodeproj/project.pbxproj");
|
|
83
|
+
|
|
84
|
+
// From string (no file on disk needed)
|
|
85
|
+
const project = XcodeProject.fromString(pbxprojContent);
|
|
86
|
+
|
|
87
|
+
// Properties
|
|
88
|
+
project.archiveVersion; // 1
|
|
89
|
+
project.objectVersion; // 46
|
|
90
|
+
project.filePath; // path if opened from disk, null if fromString
|
|
91
|
+
project.mainGroupUuid; // root group UUID
|
|
92
|
+
|
|
93
|
+
// Targets
|
|
94
|
+
const targets = project.getNativeTargets(); // UUID[]
|
|
95
|
+
const mainApp = project.findMainAppTarget("ios"); // UUID | null
|
|
96
|
+
project.getTargetName(mainApp); // "MyApp"
|
|
97
|
+
project.setTargetName(mainApp, "NewName");
|
|
98
|
+
project.renameTarget(mainApp, "OldName", "NewName"); // cascades to groups, product refs, proxies
|
|
99
|
+
|
|
100
|
+
// Build settings
|
|
101
|
+
project.getBuildSetting(targetUuid, "PRODUCT_BUNDLE_IDENTIFIER");
|
|
102
|
+
project.setBuildSetting(targetUuid, "SWIFT_VERSION", "5.0");
|
|
103
|
+
project.removeBuildSetting(targetUuid, "CODE_SIGN_IDENTITY");
|
|
104
|
+
|
|
105
|
+
// Files & groups
|
|
106
|
+
const fileUuid = project.addFile(project.mainGroupUuid, "Sources/App.swift");
|
|
107
|
+
const groupUuid = project.addGroup(project.mainGroupUuid, "Features");
|
|
108
|
+
const children = project.getGroupChildren(groupUuid);
|
|
109
|
+
|
|
110
|
+
// Build phases
|
|
111
|
+
const phase = project.ensureBuildPhase(targetUuid, "PBXSourcesBuildPhase");
|
|
112
|
+
project.addBuildFile(phase, fileUuid);
|
|
113
|
+
|
|
114
|
+
// Frameworks
|
|
115
|
+
project.addFramework(targetUuid, "SwiftUI");
|
|
116
|
+
|
|
117
|
+
// Create targets
|
|
118
|
+
const widgetTarget = project.createNativeTarget(
|
|
119
|
+
"MyWidget",
|
|
120
|
+
"com.apple.product-type.app-extension",
|
|
121
|
+
"com.example.mywidget",
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
// Embed extension into host app
|
|
125
|
+
project.addDependency(mainApp, widgetTarget);
|
|
126
|
+
project.embedExtension(mainApp, widgetTarget);
|
|
127
|
+
|
|
128
|
+
// Xcode 16+ file system sync groups
|
|
129
|
+
project.addFileSystemSyncGroup(widgetTarget, "MyWidget");
|
|
130
|
+
|
|
131
|
+
// Generic object access
|
|
132
|
+
project.getObjectProperty(uuid, "path");
|
|
133
|
+
project.setObjectProperty(uuid, "path", "new/path");
|
|
134
|
+
const proxies = project.findObjectsByIsa("PBXContainerItemProxy");
|
|
135
|
+
|
|
136
|
+
// Validation
|
|
137
|
+
const orphans = project.findOrphanedReferences();
|
|
138
|
+
// [{ referrerUuid, referrerIsa, property, orphanUuid }]
|
|
139
|
+
|
|
140
|
+
// Serialize
|
|
141
|
+
const pbxproj = project.toBuild(); // string
|
|
142
|
+
const json = project.toJSON(); // object
|
|
143
|
+
|
|
144
|
+
// Write back to disk
|
|
145
|
+
project.save();
|
|
146
|
+
|
|
147
|
+
// Deterministic UUID generation
|
|
148
|
+
const uuid = project.getUniqueId("my-seed-string"); // 24-char hex
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
All `XcodeProject` methods operate in Rust/WASM — only primitive strings cross the boundary. This is the fastest path for project manipulation.
|
|
152
|
+
|
|
153
|
+
## Packages
|
|
154
|
+
|
|
155
|
+
| Package | What | Size | Runtime |
|
|
156
|
+
| ---------------------- | ------------------------------------------------ | ------- | ---------------------------------- |
|
|
157
|
+
| `@xcodekit/xcode` | Auto-selector (tries native, falls back to WASM) | ~4 KB | Node.js, Bun, CF Workers, browsers |
|
|
158
|
+
| `@xcodekit/xcode-node` | Native napi-rs addon | ~600 KB | Node.js only |
|
|
159
|
+
| `@xcodekit/xcode-wasm` | WASM with inlined base64 | ~370 KB | Everywhere |
|
|
160
|
+
|
|
161
|
+
`@xcodekit/xcode` uses [exports conditions](https://nodejs.org/api/packages.html#conditional-exports): the `node` condition loads native, `default` loads WASM. No try/catch at runtime for most environments.
|
|
162
|
+
|
|
163
|
+
### When to use which
|
|
164
|
+
|
|
165
|
+
| Environment | Recommended |
|
|
166
|
+
| ------------------------- | ---------------------------------------------------- |
|
|
167
|
+
| Node.js / Bun | `@xcodekit/xcode` (auto-selects native) |
|
|
168
|
+
| Cloudflare Workers / edge | `@xcodekit/xcode` or `@xcodekit/xcode-wasm` |
|
|
169
|
+
| Bundled app (single file) | `@xcodekit/xcode-wasm` (inlined, no file resolution) |
|
|
170
|
+
| Need max performance | `@xcodekit/xcode-node` (direct, no facade overhead) |
|
|
171
|
+
|
|
172
|
+
## Performance
|
|
173
|
+
|
|
174
|
+
Benchmarked on Apple M4 Pro, Node.js v24. Median of 200 iterations.
|
|
175
|
+
|
|
176
|
+
- **xcode-wasm** — `@xcodekit/xcode-wasm`
|
|
177
|
+
- **xcode-node** — `@xcodekit/xcode-node`
|
|
178
|
+
- **@bacons/xcode** — `@bacons/xcode/json`
|
|
179
|
+
|
|
180
|
+
### Parse
|
|
181
|
+
|
|
182
|
+
| Fixture | xcode-wasm | xcode-node | @bacons/xcode | wasm speedup | node speedup |
|
|
183
|
+
| -------------------------- | ---------- | ---------- | ------------- | ------------ | ------------ |
|
|
184
|
+
| swift-protobuf (257 KB) | 2.9 ms | 3.7 ms | 43.9 ms | **15.2x** | **11.8x** |
|
|
185
|
+
| Cocoa-Application (166 KB) | 2.4 ms | 3.2 ms | 17.2 ms | **7.3x** | **5.4x** |
|
|
186
|
+
| AFNetworking (99 KB) | 1.3 ms | 1.7 ms | 6.6 ms | **5.1x** | **3.9x** |
|
|
187
|
+
| watch (48 KB) | 0.7 ms | 0.9 ms | 2.1 ms | **3.0x** | **2.3x** |
|
|
188
|
+
| project (19 KB) | 0.3 ms | 0.4 ms | 0.8 ms | **2.9x** | **2.2x** |
|
|
189
|
+
|
|
190
|
+
### Build
|
|
191
|
+
|
|
192
|
+
| Fixture | xcode-wasm | xcode-node | @bacons/xcode | wasm speedup | node speedup |
|
|
193
|
+
| -------------------------- | ---------- | ---------- | ------------- | ------------ | ------------ |
|
|
194
|
+
| swift-protobuf (257 KB) | 4.1 ms | 5.2 ms | 12.0 ms | **2.9x** | **2.3x** |
|
|
195
|
+
| Cocoa-Application (166 KB) | 3.3 ms | 4.5 ms | 2.7 ms | 1.2x slower | 1.7x slower |
|
|
196
|
+
| AFNetworking (99 KB) | 1.6 ms | 2.3 ms | 1.8 ms | **1.1x** | 1.3x slower |
|
|
197
|
+
| watch (48 KB) | 0.8 ms | 1.1 ms | 0.4 ms | 1.9x slower | 2.7x slower |
|
|
198
|
+
| project (19 KB) | 0.3 ms | 0.4 ms | 0.2 ms | 1.9x slower | 2.7x slower |
|
|
199
|
+
|
|
200
|
+
> [!NOTE]
|
|
201
|
+
> TypeScript wins `build()` on smaller files because it operates directly on native JS objects with zero serialization cost. On large files (>100 KB) where actual serialization work dominates, Rust wins.
|
|
202
|
+
|
|
203
|
+
### Round-Trip (parse + build)
|
|
204
|
+
|
|
205
|
+
| Fixture | xcode-wasm | xcode-node | @bacons/xcode | wasm speedup | node speedup |
|
|
206
|
+
| -------------------------- | ---------- | ---------- | ------------- | ------------ | ------------ |
|
|
207
|
+
| swift-protobuf (257 KB) | 7.0 ms | 9.0 ms | 55.9 ms | **8.0x** | **6.2x** |
|
|
208
|
+
| Cocoa-Application (166 KB) | 5.7 ms | 7.7 ms | 19.9 ms | **3.5x** | **2.6x** |
|
|
209
|
+
| AFNetworking (99 KB) | 2.9 ms | 4.0 ms | 8.4 ms | **2.9x** | **2.1x** |
|
|
210
|
+
| watch (48 KB) | 1.5 ms | 2.0 ms | 2.5 ms | **1.7x** | **1.3x** |
|
|
211
|
+
| project (19 KB) | 0.6 ms | 0.8 ms | 1.0 ms | **1.7x** | **1.3x** |
|
|
212
|
+
|
|
213
|
+
### Round-Trip (parseAndBuild — zero marshalling)
|
|
214
|
+
|
|
215
|
+
| Fixture | xcode-wasm | xcode-node | @bacons/xcode | wasm speedup | node speedup |
|
|
216
|
+
| -------------------------- | ---------- | ---------- | ------------- | ------------ | ------------ |
|
|
217
|
+
| swift-protobuf (257 KB) | 4.8 ms | 4.4 ms | 62.7 ms | **13.1x** | **14.2x** |
|
|
218
|
+
| Cocoa-Application (166 KB) | 3.7 ms | 3.7 ms | 22.4 ms | **6.0x** | **6.1x** |
|
|
219
|
+
| AFNetworking (99 KB) | 1.9 ms | 1.8 ms | 9.2 ms | **4.7x** | **5.1x** |
|
|
220
|
+
| watch (48 KB) | 0.9 ms | 0.9 ms | 2.8 ms | **3.0x** | **3.1x** |
|
|
221
|
+
| project (19 KB) | 0.4 ms | 0.3 ms | 1.0 ms | **2.8x** | **2.9x** |
|
|
222
|
+
|
|
223
|
+
### Package Size
|
|
224
|
+
|
|
225
|
+
| | xcode-wasm | xcode-node | @bacons/xcode |
|
|
226
|
+
| ------------ | ---------- | ---------- | ------------- |
|
|
227
|
+
| Uncompressed | ~370 KB | 559 KB | 1.1 MB |
|
|
228
|
+
| Gzipped | ~96 KB | 270 KB | ~400 KB |
|
|
229
|
+
|
|
230
|
+
## Compatibility
|
|
231
|
+
|
|
232
|
+
- Full feature parity with `@bacons/xcode/json` (parse/build)
|
|
233
|
+
- 13/13 round-trip fixtures produce **byte-identical** output
|
|
234
|
+
- All escape sequences: standard (`\n`, `\t`, etc.), Unicode (`\Uxxxx`), octal, NeXTSTEP (128 entries)
|
|
235
|
+
- Xcode 16+ file system synchronized groups
|
|
236
|
+
- Swift Package Manager references
|
|
237
|
+
|
|
238
|
+
## Supported Platforms
|
|
239
|
+
|
|
240
|
+
### Native (`@xcodekit/xcode-node`)
|
|
241
|
+
|
|
242
|
+
| Platform | Architecture |
|
|
243
|
+
| -------- | ---------------------------------- |
|
|
244
|
+
| macOS | arm64 (Apple Silicon), x64 (Intel) |
|
|
245
|
+
| Linux | x64 (glibc), arm64 (glibc) |
|
|
246
|
+
| Windows | x64 (MSVC) |
|
|
247
|
+
|
|
248
|
+
### WASM (`@xcodekit/xcode-wasm`)
|
|
249
|
+
|
|
250
|
+
Any environment that supports WebAssembly — Node.js, Bun, Deno, Cloudflare Workers, browsers, etc. WASM binary is inlined as base64 — no file resolution needed, works in single-file bundles.
|
|
251
|
+
|
|
252
|
+
## Development
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
# Prerequisites: Rust toolchain, Node.js >= 18, wasm-pack, binaryen
|
|
256
|
+
|
|
257
|
+
npm install
|
|
258
|
+
|
|
259
|
+
# Tests
|
|
260
|
+
make test # all (Rust + native JS + WASM JS)
|
|
261
|
+
make test-rust # Rust unit + integration tests
|
|
262
|
+
make test-js # native napi tests (vitest)
|
|
263
|
+
make test-wasm # WASM tests (vitest)
|
|
264
|
+
|
|
265
|
+
# Build
|
|
266
|
+
make build # native napi release
|
|
267
|
+
make build-debug # native napi debug (faster compilation)
|
|
268
|
+
make build-wasm # WASM → pkg/xcode-wasm/
|
|
269
|
+
make build-node # native → pkg/xcode-node/
|
|
270
|
+
make build-all # all packages
|
|
271
|
+
|
|
272
|
+
# Other
|
|
273
|
+
make check # type-check all targets
|
|
274
|
+
make fmt # cargo fmt + prettier
|
|
275
|
+
make lint # cargo clippy
|
|
276
|
+
make bench # all benchmarks
|
|
277
|
+
make clean # remove all artifacts
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Project Structure
|
|
281
|
+
|
|
282
|
+
```
|
|
283
|
+
src/ # Rust source (parser, writer, project API)
|
|
284
|
+
tests/
|
|
285
|
+
integration_tests.rs # Rust integration tests
|
|
286
|
+
node.test.mjs # Native napi JS tests (vitest)
|
|
287
|
+
wasm.test.mjs # WASM JS tests (vitest)
|
|
288
|
+
fixtures/ # 20 real-world .pbxproj files
|
|
289
|
+
npm/ # Publishable package metadata
|
|
290
|
+
xcode/ # @xcodekit/xcode (auto-selector facade)
|
|
291
|
+
xcode-node/ # @xcodekit/xcode-node (native napi)
|
|
292
|
+
platforms/ # Platform binary packages (darwin-arm64, etc.)
|
|
293
|
+
xcode-wasm/ # @xcodekit/xcode-wasm (WASM wrapper + types)
|
|
294
|
+
scripts/ # Build scripts
|
|
295
|
+
build-node-pkg.sh # Assembles pkg/xcode-node/
|
|
296
|
+
build-wasm-pkg.sh # Assembles pkg/xcode-wasm/ (wasm-opt, base64 inline)
|
|
297
|
+
pkg/ # Generated build output (gitignored)
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
## License
|
|
301
|
+
|
|
302
|
+
MIT
|
package/index.d.ts
CHANGED
|
@@ -103,6 +103,8 @@ export declare class XcodeProject {
|
|
|
103
103
|
* Returns the UUID of the sync group.
|
|
104
104
|
*/
|
|
105
105
|
addFileSystemSyncGroup(targetUuid: string, path: string): string | null
|
|
106
|
+
/** Get the on-disk paths of a target's file system sync groups. */
|
|
107
|
+
getTargetSyncGroupPaths(targetUuid: string): Array<string>
|
|
106
108
|
/** Get a string property from any object. */
|
|
107
109
|
getObjectProperty(uuid: string, key: string): string | null
|
|
108
110
|
/** Set a string property on any object. */
|
package/index.js
CHANGED
|
@@ -37,7 +37,7 @@ switch (platform) {
|
|
|
37
37
|
if (localFileExisted) {
|
|
38
38
|
nativeBinding = require('./xcode.android-arm64.node')
|
|
39
39
|
} else {
|
|
40
|
-
nativeBinding = require('
|
|
40
|
+
nativeBinding = require('@xcodekit/xcode-android-arm64')
|
|
41
41
|
}
|
|
42
42
|
} catch (e) {
|
|
43
43
|
loadError = e
|
|
@@ -49,7 +49,7 @@ switch (platform) {
|
|
|
49
49
|
if (localFileExisted) {
|
|
50
50
|
nativeBinding = require('./xcode.android-arm-eabi.node')
|
|
51
51
|
} else {
|
|
52
|
-
nativeBinding = require('
|
|
52
|
+
nativeBinding = require('@xcodekit/xcode-android-arm-eabi')
|
|
53
53
|
}
|
|
54
54
|
} catch (e) {
|
|
55
55
|
loadError = e
|
|
@@ -69,7 +69,7 @@ switch (platform) {
|
|
|
69
69
|
if (localFileExisted) {
|
|
70
70
|
nativeBinding = require('./xcode.win32-x64-msvc.node')
|
|
71
71
|
} else {
|
|
72
|
-
nativeBinding = require('
|
|
72
|
+
nativeBinding = require('@xcodekit/xcode-win32-x64-msvc')
|
|
73
73
|
}
|
|
74
74
|
} catch (e) {
|
|
75
75
|
loadError = e
|
|
@@ -83,7 +83,7 @@ switch (platform) {
|
|
|
83
83
|
if (localFileExisted) {
|
|
84
84
|
nativeBinding = require('./xcode.win32-ia32-msvc.node')
|
|
85
85
|
} else {
|
|
86
|
-
nativeBinding = require('
|
|
86
|
+
nativeBinding = require('@xcodekit/xcode-win32-ia32-msvc')
|
|
87
87
|
}
|
|
88
88
|
} catch (e) {
|
|
89
89
|
loadError = e
|
|
@@ -97,7 +97,7 @@ switch (platform) {
|
|
|
97
97
|
if (localFileExisted) {
|
|
98
98
|
nativeBinding = require('./xcode.win32-arm64-msvc.node')
|
|
99
99
|
} else {
|
|
100
|
-
nativeBinding = require('
|
|
100
|
+
nativeBinding = require('@xcodekit/xcode-win32-arm64-msvc')
|
|
101
101
|
}
|
|
102
102
|
} catch (e) {
|
|
103
103
|
loadError = e
|
|
@@ -113,7 +113,7 @@ switch (platform) {
|
|
|
113
113
|
if (localFileExisted) {
|
|
114
114
|
nativeBinding = require('./xcode.darwin-universal.node')
|
|
115
115
|
} else {
|
|
116
|
-
nativeBinding = require('
|
|
116
|
+
nativeBinding = require('@xcodekit/xcode-darwin-universal')
|
|
117
117
|
}
|
|
118
118
|
break
|
|
119
119
|
} catch {}
|
|
@@ -124,7 +124,7 @@ switch (platform) {
|
|
|
124
124
|
if (localFileExisted) {
|
|
125
125
|
nativeBinding = require('./xcode.darwin-x64.node')
|
|
126
126
|
} else {
|
|
127
|
-
nativeBinding = require('
|
|
127
|
+
nativeBinding = require('@xcodekit/xcode-darwin-x64')
|
|
128
128
|
}
|
|
129
129
|
} catch (e) {
|
|
130
130
|
loadError = e
|
|
@@ -138,7 +138,7 @@ switch (platform) {
|
|
|
138
138
|
if (localFileExisted) {
|
|
139
139
|
nativeBinding = require('./xcode.darwin-arm64.node')
|
|
140
140
|
} else {
|
|
141
|
-
nativeBinding = require('
|
|
141
|
+
nativeBinding = require('@xcodekit/xcode-darwin-arm64')
|
|
142
142
|
}
|
|
143
143
|
} catch (e) {
|
|
144
144
|
loadError = e
|
|
@@ -157,7 +157,7 @@ switch (platform) {
|
|
|
157
157
|
if (localFileExisted) {
|
|
158
158
|
nativeBinding = require('./xcode.freebsd-x64.node')
|
|
159
159
|
} else {
|
|
160
|
-
nativeBinding = require('
|
|
160
|
+
nativeBinding = require('@xcodekit/xcode-freebsd-x64')
|
|
161
161
|
}
|
|
162
162
|
} catch (e) {
|
|
163
163
|
loadError = e
|
|
@@ -174,7 +174,7 @@ switch (platform) {
|
|
|
174
174
|
if (localFileExisted) {
|
|
175
175
|
nativeBinding = require('./xcode.linux-x64-musl.node')
|
|
176
176
|
} else {
|
|
177
|
-
nativeBinding = require('
|
|
177
|
+
nativeBinding = require('@xcodekit/xcode-linux-x64-musl')
|
|
178
178
|
}
|
|
179
179
|
} catch (e) {
|
|
180
180
|
loadError = e
|
|
@@ -187,7 +187,7 @@ switch (platform) {
|
|
|
187
187
|
if (localFileExisted) {
|
|
188
188
|
nativeBinding = require('./xcode.linux-x64-gnu.node')
|
|
189
189
|
} else {
|
|
190
|
-
nativeBinding = require('
|
|
190
|
+
nativeBinding = require('@xcodekit/xcode-linux-x64-gnu')
|
|
191
191
|
}
|
|
192
192
|
} catch (e) {
|
|
193
193
|
loadError = e
|
|
@@ -203,7 +203,7 @@ switch (platform) {
|
|
|
203
203
|
if (localFileExisted) {
|
|
204
204
|
nativeBinding = require('./xcode.linux-arm64-musl.node')
|
|
205
205
|
} else {
|
|
206
|
-
nativeBinding = require('
|
|
206
|
+
nativeBinding = require('@xcodekit/xcode-linux-arm64-musl')
|
|
207
207
|
}
|
|
208
208
|
} catch (e) {
|
|
209
209
|
loadError = e
|
|
@@ -216,7 +216,7 @@ switch (platform) {
|
|
|
216
216
|
if (localFileExisted) {
|
|
217
217
|
nativeBinding = require('./xcode.linux-arm64-gnu.node')
|
|
218
218
|
} else {
|
|
219
|
-
nativeBinding = require('
|
|
219
|
+
nativeBinding = require('@xcodekit/xcode-linux-arm64-gnu')
|
|
220
220
|
}
|
|
221
221
|
} catch (e) {
|
|
222
222
|
loadError = e
|
|
@@ -232,7 +232,7 @@ switch (platform) {
|
|
|
232
232
|
if (localFileExisted) {
|
|
233
233
|
nativeBinding = require('./xcode.linux-arm-musleabihf.node')
|
|
234
234
|
} else {
|
|
235
|
-
nativeBinding = require('
|
|
235
|
+
nativeBinding = require('@xcodekit/xcode-linux-arm-musleabihf')
|
|
236
236
|
}
|
|
237
237
|
} catch (e) {
|
|
238
238
|
loadError = e
|
|
@@ -245,7 +245,7 @@ switch (platform) {
|
|
|
245
245
|
if (localFileExisted) {
|
|
246
246
|
nativeBinding = require('./xcode.linux-arm-gnueabihf.node')
|
|
247
247
|
} else {
|
|
248
|
-
nativeBinding = require('
|
|
248
|
+
nativeBinding = require('@xcodekit/xcode-linux-arm-gnueabihf')
|
|
249
249
|
}
|
|
250
250
|
} catch (e) {
|
|
251
251
|
loadError = e
|
|
@@ -261,7 +261,7 @@ switch (platform) {
|
|
|
261
261
|
if (localFileExisted) {
|
|
262
262
|
nativeBinding = require('./xcode.linux-riscv64-musl.node')
|
|
263
263
|
} else {
|
|
264
|
-
nativeBinding = require('
|
|
264
|
+
nativeBinding = require('@xcodekit/xcode-linux-riscv64-musl')
|
|
265
265
|
}
|
|
266
266
|
} catch (e) {
|
|
267
267
|
loadError = e
|
|
@@ -274,7 +274,7 @@ switch (platform) {
|
|
|
274
274
|
if (localFileExisted) {
|
|
275
275
|
nativeBinding = require('./xcode.linux-riscv64-gnu.node')
|
|
276
276
|
} else {
|
|
277
|
-
nativeBinding = require('
|
|
277
|
+
nativeBinding = require('@xcodekit/xcode-linux-riscv64-gnu')
|
|
278
278
|
}
|
|
279
279
|
} catch (e) {
|
|
280
280
|
loadError = e
|
|
@@ -289,7 +289,7 @@ switch (platform) {
|
|
|
289
289
|
if (localFileExisted) {
|
|
290
290
|
nativeBinding = require('./xcode.linux-s390x-gnu.node')
|
|
291
291
|
} else {
|
|
292
|
-
nativeBinding = require('
|
|
292
|
+
nativeBinding = require('@xcodekit/xcode-linux-s390x-gnu')
|
|
293
293
|
}
|
|
294
294
|
} catch (e) {
|
|
295
295
|
loadError = e
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xcodekit/xcode-node",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.10",
|
|
4
4
|
"description": "Parse, manipulate, and serialize Xcode .pbxproj files — native Node.js addon (napi-rs)",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
"types.d.ts"
|
|
11
11
|
],
|
|
12
12
|
"optionalDependencies": {
|
|
13
|
-
"@xcodekit/xcode-darwin-arm64": "0.6.
|
|
14
|
-
"@xcodekit/xcode-darwin-x64": "0.6.
|
|
15
|
-
"@xcodekit/xcode-linux-arm64-gnu": "0.6.
|
|
16
|
-
"@xcodekit/xcode-linux-x64-gnu": "0.6.
|
|
17
|
-
"@xcodekit/xcode-win32-x64-msvc": "0.6.
|
|
13
|
+
"@xcodekit/xcode-darwin-arm64": "0.6.10",
|
|
14
|
+
"@xcodekit/xcode-darwin-x64": "0.6.10",
|
|
15
|
+
"@xcodekit/xcode-linux-arm64-gnu": "0.6.10",
|
|
16
|
+
"@xcodekit/xcode-linux-x64-gnu": "0.6.10",
|
|
17
|
+
"@xcodekit/xcode-win32-x64-msvc": "0.6.10"
|
|
18
18
|
},
|
|
19
19
|
"repository": {
|
|
20
20
|
"type": "git",
|