@sitepong/fastnode 0.2.0 → 0.2.2
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/dist/actions/index.cjs +70 -24
- package/dist/actions/index.cjs.map +1 -1
- package/dist/actions/index.mjs +70 -24
- package/dist/actions/index.mjs.map +1 -1
- package/dist/cert/index.cjs +17822 -24
- package/dist/cert/index.cjs.map +1 -1
- package/dist/cert/index.d.cts +3 -3
- package/dist/cert/index.d.ts +3 -3
- package/dist/cert/index.mjs +17807 -6
- package/dist/cert/index.mjs.map +1 -1
- package/dist/{cert-DtYDJBjG.d.ts → cert-Ddl7FpFT.d.ts} +1 -1
- package/dist/{cert-6m1R8UeW.d.cts → cert-FehieKeb.d.cts} +1 -1
- package/dist/cli/index.cjs +70 -24
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.mjs +70 -24
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/index.cjs +64 -6
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.mjs +64 -6
- package/dist/client/index.mjs.map +1 -1
- package/dist/deliver/index.d.cts +2 -2
- package/dist/deliver/index.d.ts +2 -2
- package/dist/{index-CojSGJ7m.d.ts → index-B8FOfxOw.d.ts} +1 -1
- package/dist/{index-CdYdwxpQ.d.cts → index-B9QeTpQK.d.cts} +1 -1
- package/dist/{index-AD8QXY1T.d.cts → index-BICa8odo.d.cts} +1 -1
- package/dist/{index-CMH_GpN9.d.cts → index-BKUapQP2.d.cts} +30 -0
- package/dist/{index-Ce-WMV7c.d.cts → index-BZWmOTWE.d.cts} +1 -1
- package/dist/{index-BWK-T2-S.d.cts → index-Bk1Gd-qE.d.cts} +1 -1
- package/dist/{index-D2z7RiAM.d.ts → index-CCtYhPN9.d.ts} +30 -0
- package/dist/{index-CCs5irG7.d.cts → index-CNHf7I4v.d.cts} +1 -1
- package/dist/{index-CQKpbHZt.d.ts → index-CplRWSUc.d.ts} +1 -1
- package/dist/{index-BpiEBPVd.d.ts → index-CtPyeMLH.d.ts} +1 -1
- package/dist/{index-BW8wQUGC.d.cts → index-D13sn8DO.d.cts} +1 -1
- package/dist/{index-Kq3rbG0u.d.ts → index-DFni8oZt.d.ts} +1 -1
- package/dist/{index-D82CmjMP.d.ts → index-DI1ZHr-3.d.ts} +1 -1
- package/dist/{index-DZaPkUnC.d.ts → index-DZoPGCbE.d.ts} +3 -3
- package/dist/{index-KCB2q1-8.d.cts → index-OelCoOth.d.cts} +1 -1
- package/dist/{index-CLsvyTkh.d.ts → index-YcKz4aRS.d.ts} +1 -1
- package/dist/{index-CQd4bo3G.d.cts → index-oVyLLIEK.d.cts} +3 -3
- package/dist/{index-CsFIp7OO.d.ts → index-xykpq6Lz.d.ts} +1 -1
- package/dist/index.cjs +18237 -202
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +81 -21
- package/dist/index.d.ts +81 -21
- package/dist/index.mjs +18237 -201
- package/dist/index.mjs.map +1 -1
- package/dist/lane/index.cjs +70 -24
- package/dist/lane/index.cjs.map +1 -1
- package/dist/lane/index.mjs +70 -24
- package/dist/lane/index.mjs.map +1 -1
- package/dist/match/index.d.cts +4 -4
- package/dist/match/index.d.ts +4 -4
- package/dist/pem/index.d.cts +2 -2
- package/dist/pem/index.d.ts +2 -2
- package/dist/pilot/index.d.cts +2 -2
- package/dist/pilot/index.d.ts +2 -2
- package/dist/precheck/index.d.cts +2 -2
- package/dist/precheck/index.d.ts +2 -2
- package/dist/produce/index.cjs +6 -18
- package/dist/produce/index.cjs.map +1 -1
- package/dist/produce/index.d.cts +2 -2
- package/dist/produce/index.d.ts +2 -2
- package/dist/produce/index.mjs +6 -18
- package/dist/produce/index.mjs.map +1 -1
- package/dist/sigh/index.d.cts +2 -2
- package/dist/sigh/index.d.ts +2 -2
- package/package.json +1 -1
package/dist/client/index.cjs
CHANGED
|
@@ -982,6 +982,43 @@ var AppsResource = class {
|
|
|
982
982
|
});
|
|
983
983
|
return results[0] ?? null;
|
|
984
984
|
}
|
|
985
|
+
/**
|
|
986
|
+
* Create an App Store Connect **app record** (the thing that shows up
|
|
987
|
+
* under "My Apps" and that TestFlight / App Store uploads require).
|
|
988
|
+
*
|
|
989
|
+
* This is distinct from registering an App ID in the Developer Portal —
|
|
990
|
+
* you need BOTH. The Developer Portal App ID unlocks provisioning
|
|
991
|
+
* profiles and entitlements; the App Store Connect app record unlocks
|
|
992
|
+
* uploads. `upload_to_testflight` fails with "Couldn't find app
|
|
993
|
+
* 'com.foo.bar' on the account…" when this record is missing.
|
|
994
|
+
*
|
|
995
|
+
* `bundleIdId` is the REST API primary key of the bundle id resource
|
|
996
|
+
* (not the identifier string) — fetch it via `bundleIds.find(identifier)`
|
|
997
|
+
* or from the response of `bundleIds.create()`.
|
|
998
|
+
*
|
|
999
|
+
* `sku` is an arbitrary unique string Apple uses to identify the app in
|
|
1000
|
+
* their internal records. If you don't have a meaningful one, pass the
|
|
1001
|
+
* bundle identifier itself or append a timestamp for uniqueness.
|
|
1002
|
+
*/
|
|
1003
|
+
async create(params) {
|
|
1004
|
+
const response = await this.http.post("/v1/apps", {
|
|
1005
|
+
data: {
|
|
1006
|
+
type: "apps",
|
|
1007
|
+
attributes: {
|
|
1008
|
+
bundleId: params.bundleIdentifier,
|
|
1009
|
+
name: params.appName,
|
|
1010
|
+
sku: params.sku,
|
|
1011
|
+
primaryLocale: params.primaryLocale ?? "en-US"
|
|
1012
|
+
},
|
|
1013
|
+
relationships: {
|
|
1014
|
+
bundleId: {
|
|
1015
|
+
data: { type: "bundleIds", id: params.bundleIdId }
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
});
|
|
1020
|
+
return response.data;
|
|
1021
|
+
}
|
|
985
1022
|
};
|
|
986
1023
|
|
|
987
1024
|
// src/resources/builds.ts
|
|
@@ -2269,6 +2306,12 @@ var XcodeMetricsResource = class {
|
|
|
2269
2306
|
|
|
2270
2307
|
// src/client/portal.ts
|
|
2271
2308
|
var PORTAL_BASE = "https://developer.apple.com/services-account/QH65B2";
|
|
2309
|
+
function pickUniqueKeyName(base, taken) {
|
|
2310
|
+
if (!taken.has(base)) return base;
|
|
2311
|
+
let n = 1;
|
|
2312
|
+
while (taken.has(`${base} - ${n}`)) n++;
|
|
2313
|
+
return `${base} - ${n}`;
|
|
2314
|
+
}
|
|
2272
2315
|
var PortalClient = class _PortalClient {
|
|
2273
2316
|
session;
|
|
2274
2317
|
teamId;
|
|
@@ -2382,12 +2425,17 @@ var PortalClient = class _PortalClient {
|
|
|
2382
2425
|
* + period and collapse whitespace.
|
|
2383
2426
|
*/
|
|
2384
2427
|
async createApiKey(rawName, serviceConfigurations = {}) {
|
|
2385
|
-
const
|
|
2386
|
-
if (!
|
|
2428
|
+
const baseName = rawName.replace(/[^A-Za-z0-9 _\-.]/g, " ").replace(/\s+/g, " ").trim().slice(0, 45);
|
|
2429
|
+
if (!baseName) throw new Error("createApiKey: name is empty after sanitization");
|
|
2430
|
+
let existingNames = /* @__PURE__ */ new Set();
|
|
2387
2431
|
try {
|
|
2388
|
-
await this.listApiKeys();
|
|
2432
|
+
const list = await this.listApiKeys();
|
|
2433
|
+
existingNames = new Set(
|
|
2434
|
+
(list.keys ?? []).map((k) => String(k.keyName ?? "").trim())
|
|
2435
|
+
);
|
|
2389
2436
|
} catch {
|
|
2390
2437
|
}
|
|
2438
|
+
const name = pickUniqueKeyName(baseName, existingNames);
|
|
2391
2439
|
const body = {
|
|
2392
2440
|
teamId: this.teamId,
|
|
2393
2441
|
name,
|
|
@@ -2442,14 +2490,24 @@ var PortalClient = class _PortalClient {
|
|
|
2442
2490
|
* The exact body comes from @expo/apple-utils v2.1.21 — both fields
|
|
2443
2491
|
* are produced by separate functions (`d` for the map, `h` for the
|
|
2444
2492
|
* array) and merged into the create payload.
|
|
2493
|
+
*
|
|
2494
|
+
* Apple also rejects duplicate key names ("Another key with same
|
|
2495
|
+
* name exists") — we dedupe by listing existing keys first and
|
|
2496
|
+
* appending " (N)" until we find a free slot, mirroring the
|
|
2497
|
+
* provisioning profile dedup.
|
|
2445
2498
|
*/
|
|
2446
2499
|
async createApnsAuthKey(rawName) {
|
|
2447
|
-
const
|
|
2448
|
-
if (!
|
|
2500
|
+
const baseName = rawName.replace(/[^A-Za-z0-9 _\-.]/g, " ").replace(/\s+/g, " ").trim().slice(0, 45);
|
|
2501
|
+
if (!baseName) throw new Error("createApnsAuthKey: name is empty after sanitization");
|
|
2502
|
+
let existingNames = /* @__PURE__ */ new Set();
|
|
2449
2503
|
try {
|
|
2450
|
-
await this.listApiKeys();
|
|
2504
|
+
const list = await this.listApiKeys();
|
|
2505
|
+
existingNames = new Set(
|
|
2506
|
+
(list.keys ?? []).map((k) => String(k.keyName ?? "").trim())
|
|
2507
|
+
);
|
|
2451
2508
|
} catch {
|
|
2452
2509
|
}
|
|
2510
|
+
const name = pickUniqueKeyName(baseName, existingNames);
|
|
2453
2511
|
const body = {
|
|
2454
2512
|
teamId: this.teamId,
|
|
2455
2513
|
name,
|