@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.
Files changed (71) hide show
  1. package/dist/actions/index.cjs +70 -24
  2. package/dist/actions/index.cjs.map +1 -1
  3. package/dist/actions/index.mjs +70 -24
  4. package/dist/actions/index.mjs.map +1 -1
  5. package/dist/cert/index.cjs +17822 -24
  6. package/dist/cert/index.cjs.map +1 -1
  7. package/dist/cert/index.d.cts +3 -3
  8. package/dist/cert/index.d.ts +3 -3
  9. package/dist/cert/index.mjs +17807 -6
  10. package/dist/cert/index.mjs.map +1 -1
  11. package/dist/{cert-DtYDJBjG.d.ts → cert-Ddl7FpFT.d.ts} +1 -1
  12. package/dist/{cert-6m1R8UeW.d.cts → cert-FehieKeb.d.cts} +1 -1
  13. package/dist/cli/index.cjs +70 -24
  14. package/dist/cli/index.cjs.map +1 -1
  15. package/dist/cli/index.d.cts +1 -1
  16. package/dist/cli/index.d.ts +1 -1
  17. package/dist/cli/index.mjs +70 -24
  18. package/dist/cli/index.mjs.map +1 -1
  19. package/dist/client/index.cjs +64 -6
  20. package/dist/client/index.cjs.map +1 -1
  21. package/dist/client/index.d.cts +1 -1
  22. package/dist/client/index.d.ts +1 -1
  23. package/dist/client/index.mjs +64 -6
  24. package/dist/client/index.mjs.map +1 -1
  25. package/dist/deliver/index.d.cts +2 -2
  26. package/dist/deliver/index.d.ts +2 -2
  27. package/dist/{index-CojSGJ7m.d.ts → index-B8FOfxOw.d.ts} +1 -1
  28. package/dist/{index-CdYdwxpQ.d.cts → index-B9QeTpQK.d.cts} +1 -1
  29. package/dist/{index-AD8QXY1T.d.cts → index-BICa8odo.d.cts} +1 -1
  30. package/dist/{index-CMH_GpN9.d.cts → index-BKUapQP2.d.cts} +30 -0
  31. package/dist/{index-Ce-WMV7c.d.cts → index-BZWmOTWE.d.cts} +1 -1
  32. package/dist/{index-BWK-T2-S.d.cts → index-Bk1Gd-qE.d.cts} +1 -1
  33. package/dist/{index-D2z7RiAM.d.ts → index-CCtYhPN9.d.ts} +30 -0
  34. package/dist/{index-CCs5irG7.d.cts → index-CNHf7I4v.d.cts} +1 -1
  35. package/dist/{index-CQKpbHZt.d.ts → index-CplRWSUc.d.ts} +1 -1
  36. package/dist/{index-BpiEBPVd.d.ts → index-CtPyeMLH.d.ts} +1 -1
  37. package/dist/{index-BW8wQUGC.d.cts → index-D13sn8DO.d.cts} +1 -1
  38. package/dist/{index-Kq3rbG0u.d.ts → index-DFni8oZt.d.ts} +1 -1
  39. package/dist/{index-D82CmjMP.d.ts → index-DI1ZHr-3.d.ts} +1 -1
  40. package/dist/{index-DZaPkUnC.d.ts → index-DZoPGCbE.d.ts} +3 -3
  41. package/dist/{index-KCB2q1-8.d.cts → index-OelCoOth.d.cts} +1 -1
  42. package/dist/{index-CLsvyTkh.d.ts → index-YcKz4aRS.d.ts} +1 -1
  43. package/dist/{index-CQd4bo3G.d.cts → index-oVyLLIEK.d.cts} +3 -3
  44. package/dist/{index-CsFIp7OO.d.ts → index-xykpq6Lz.d.ts} +1 -1
  45. package/dist/index.cjs +18237 -202
  46. package/dist/index.cjs.map +1 -1
  47. package/dist/index.d.cts +81 -21
  48. package/dist/index.d.ts +81 -21
  49. package/dist/index.mjs +18237 -201
  50. package/dist/index.mjs.map +1 -1
  51. package/dist/lane/index.cjs +70 -24
  52. package/dist/lane/index.cjs.map +1 -1
  53. package/dist/lane/index.mjs +70 -24
  54. package/dist/lane/index.mjs.map +1 -1
  55. package/dist/match/index.d.cts +4 -4
  56. package/dist/match/index.d.ts +4 -4
  57. package/dist/pem/index.d.cts +2 -2
  58. package/dist/pem/index.d.ts +2 -2
  59. package/dist/pilot/index.d.cts +2 -2
  60. package/dist/pilot/index.d.ts +2 -2
  61. package/dist/precheck/index.d.cts +2 -2
  62. package/dist/precheck/index.d.ts +2 -2
  63. package/dist/produce/index.cjs +6 -18
  64. package/dist/produce/index.cjs.map +1 -1
  65. package/dist/produce/index.d.cts +2 -2
  66. package/dist/produce/index.d.ts +2 -2
  67. package/dist/produce/index.mjs +6 -18
  68. package/dist/produce/index.mjs.map +1 -1
  69. package/dist/sigh/index.d.cts +2 -2
  70. package/dist/sigh/index.d.ts +2 -2
  71. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { a as AppStoreConnectClient, C as Certificate } from './index-D2z7RiAM.js';
1
+ import { a as AppStoreConnectClient, C as Certificate } from './index-CCtYhPN9.js';
2
2
  import { C as CertificateType } from './enums-B609j2rb.js';
3
3
 
4
4
  interface CertOptions {
@@ -1,4 +1,4 @@
1
- import { a as AppStoreConnectClient, C as Certificate } from './index-CMH_GpN9.cjs';
1
+ import { a as AppStoreConnectClient, C as Certificate } from './index-BKUapQP2.cjs';
2
2
  import { C as CertificateType } from './enums-B609j2rb.cjs';
3
3
 
4
4
  interface CertOptions {
@@ -3122,25 +3122,13 @@ async function createApp(options) {
3122
3122
  });
3123
3123
  }
3124
3124
  }
3125
- const sku = options.sku ?? `${options.bundleIdentifier}.${Date.now()}`;
3126
- const primaryLocale = options.primaryLocale ?? "en-US";
3127
- const response = await options.client.http.post("/v1/apps", {
3128
- data: {
3129
- type: "apps",
3130
- attributes: {
3131
- bundleId: options.bundleIdentifier,
3132
- name: options.appName,
3133
- sku,
3134
- primaryLocale
3135
- },
3136
- relationships: {
3137
- bundleId: {
3138
- data: { type: "bundleIds", id: bundleId.id }
3139
- }
3140
- }
3141
- }
3125
+ return options.client.apps.create({
3126
+ bundleIdentifier: options.bundleIdentifier,
3127
+ bundleIdId: bundleId.id,
3128
+ appName: options.appName,
3129
+ sku: options.sku ?? `${options.bundleIdentifier}.${Date.now()}`,
3130
+ primaryLocale: options.primaryLocale
3142
3131
  });
3143
- return response.data;
3144
3132
  }
3145
3133
  var SERVICE_NAME_TO_CAPABILITY;
3146
3134
  var init_produce = __esm({
@@ -4934,6 +4922,43 @@ var init_apps = __esm({
4934
4922
  });
4935
4923
  return results[0] ?? null;
4936
4924
  }
4925
+ /**
4926
+ * Create an App Store Connect **app record** (the thing that shows up
4927
+ * under "My Apps" and that TestFlight / App Store uploads require).
4928
+ *
4929
+ * This is distinct from registering an App ID in the Developer Portal —
4930
+ * you need BOTH. The Developer Portal App ID unlocks provisioning
4931
+ * profiles and entitlements; the App Store Connect app record unlocks
4932
+ * uploads. `upload_to_testflight` fails with "Couldn't find app
4933
+ * 'com.foo.bar' on the account…" when this record is missing.
4934
+ *
4935
+ * `bundleIdId` is the REST API primary key of the bundle id resource
4936
+ * (not the identifier string) — fetch it via `bundleIds.find(identifier)`
4937
+ * or from the response of `bundleIds.create()`.
4938
+ *
4939
+ * `sku` is an arbitrary unique string Apple uses to identify the app in
4940
+ * their internal records. If you don't have a meaningful one, pass the
4941
+ * bundle identifier itself or append a timestamp for uniqueness.
4942
+ */
4943
+ async create(params) {
4944
+ const response = await this.http.post("/v1/apps", {
4945
+ data: {
4946
+ type: "apps",
4947
+ attributes: {
4948
+ bundleId: params.bundleIdentifier,
4949
+ name: params.appName,
4950
+ sku: params.sku,
4951
+ primaryLocale: params.primaryLocale ?? "en-US"
4952
+ },
4953
+ relationships: {
4954
+ bundleId: {
4955
+ data: { type: "bundleIds", id: params.bundleIdId }
4956
+ }
4957
+ }
4958
+ }
4959
+ });
4960
+ return response.data;
4961
+ }
4937
4962
  };
4938
4963
  }
4939
4964
  });
@@ -6367,6 +6392,12 @@ var init_xcode_metrics = __esm({
6367
6392
  });
6368
6393
 
6369
6394
  // src/client/portal.ts
6395
+ function pickUniqueKeyName(base, taken) {
6396
+ if (!taken.has(base)) return base;
6397
+ let n = 1;
6398
+ while (taken.has(`${base} - ${n}`)) n++;
6399
+ return `${base} - ${n}`;
6400
+ }
6370
6401
  var PORTAL_BASE, PortalClient;
6371
6402
  var init_portal = __esm({
6372
6403
  "src/client/portal.ts"() {
@@ -6485,12 +6516,17 @@ var init_portal = __esm({
6485
6516
  * + period and collapse whitespace.
6486
6517
  */
6487
6518
  async createApiKey(rawName, serviceConfigurations = {}) {
6488
- const name = rawName.replace(/[^A-Za-z0-9 _\-.]/g, " ").replace(/\s+/g, " ").trim().slice(0, 50);
6489
- if (!name) throw new Error("createApiKey: name is empty after sanitization");
6519
+ const baseName = rawName.replace(/[^A-Za-z0-9 _\-.]/g, " ").replace(/\s+/g, " ").trim().slice(0, 45);
6520
+ if (!baseName) throw new Error("createApiKey: name is empty after sanitization");
6521
+ let existingNames = /* @__PURE__ */ new Set();
6490
6522
  try {
6491
- await this.listApiKeys();
6523
+ const list = await this.listApiKeys();
6524
+ existingNames = new Set(
6525
+ (list.keys ?? []).map((k) => String(k.keyName ?? "").trim())
6526
+ );
6492
6527
  } catch {
6493
6528
  }
6529
+ const name = pickUniqueKeyName(baseName, existingNames);
6494
6530
  const body = {
6495
6531
  teamId: this.teamId,
6496
6532
  name,
@@ -6545,14 +6581,24 @@ var init_portal = __esm({
6545
6581
  * The exact body comes from @expo/apple-utils v2.1.21 — both fields
6546
6582
  * are produced by separate functions (`d` for the map, `h` for the
6547
6583
  * array) and merged into the create payload.
6584
+ *
6585
+ * Apple also rejects duplicate key names ("Another key with same
6586
+ * name exists") — we dedupe by listing existing keys first and
6587
+ * appending " (N)" until we find a free slot, mirroring the
6588
+ * provisioning profile dedup.
6548
6589
  */
6549
6590
  async createApnsAuthKey(rawName) {
6550
- const name = rawName.replace(/[^A-Za-z0-9 _\-.]/g, " ").replace(/\s+/g, " ").trim().slice(0, 50);
6551
- if (!name) throw new Error("createApnsAuthKey: name is empty after sanitization");
6591
+ const baseName = rawName.replace(/[^A-Za-z0-9 _\-.]/g, " ").replace(/\s+/g, " ").trim().slice(0, 45);
6592
+ if (!baseName) throw new Error("createApnsAuthKey: name is empty after sanitization");
6593
+ let existingNames = /* @__PURE__ */ new Set();
6552
6594
  try {
6553
- await this.listApiKeys();
6595
+ const list = await this.listApiKeys();
6596
+ existingNames = new Set(
6597
+ (list.keys ?? []).map((k) => String(k.keyName ?? "").trim())
6598
+ );
6554
6599
  } catch {
6555
6600
  }
6601
+ const name = pickUniqueKeyName(baseName, existingNames);
6556
6602
  const body = {
6557
6603
  teamId: this.teamId,
6558
6604
  name,