@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,5 +1,5 @@
1
1
  import { Command } from 'commander';
2
- import { a as AppStoreConnectClient } from '../index-CMH_GpN9.cjs';
2
+ import { a as AppStoreConnectClient } from '../index-BKUapQP2.cjs';
3
3
  import '../enums-B609j2rb.cjs';
4
4
 
5
5
  declare function resolveClientFromEnv(): Promise<AppStoreConnectClient>;
@@ -1,5 +1,5 @@
1
1
  import { Command } from 'commander';
2
- import { a as AppStoreConnectClient } from '../index-D2z7RiAM.js';
2
+ import { a as AppStoreConnectClient } from '../index-CCtYhPN9.js';
3
3
  import '../enums-B609j2rb.js';
4
4
 
5
5
  declare function resolveClientFromEnv(): Promise<AppStoreConnectClient>;
@@ -3097,25 +3097,13 @@ async function createApp(options) {
3097
3097
  });
3098
3098
  }
3099
3099
  }
3100
- const sku = options.sku ?? `${options.bundleIdentifier}.${Date.now()}`;
3101
- const primaryLocale = options.primaryLocale ?? "en-US";
3102
- const response = await options.client.http.post("/v1/apps", {
3103
- data: {
3104
- type: "apps",
3105
- attributes: {
3106
- bundleId: options.bundleIdentifier,
3107
- name: options.appName,
3108
- sku,
3109
- primaryLocale
3110
- },
3111
- relationships: {
3112
- bundleId: {
3113
- data: { type: "bundleIds", id: bundleId.id }
3114
- }
3115
- }
3116
- }
3100
+ return options.client.apps.create({
3101
+ bundleIdentifier: options.bundleIdentifier,
3102
+ bundleIdId: bundleId.id,
3103
+ appName: options.appName,
3104
+ sku: options.sku ?? `${options.bundleIdentifier}.${Date.now()}`,
3105
+ primaryLocale: options.primaryLocale
3117
3106
  });
3118
- return response.data;
3119
3107
  }
3120
3108
  var SERVICE_NAME_TO_CAPABILITY;
3121
3109
  var init_produce = __esm({
@@ -4909,6 +4897,43 @@ var init_apps = __esm({
4909
4897
  });
4910
4898
  return results[0] ?? null;
4911
4899
  }
4900
+ /**
4901
+ * Create an App Store Connect **app record** (the thing that shows up
4902
+ * under "My Apps" and that TestFlight / App Store uploads require).
4903
+ *
4904
+ * This is distinct from registering an App ID in the Developer Portal —
4905
+ * you need BOTH. The Developer Portal App ID unlocks provisioning
4906
+ * profiles and entitlements; the App Store Connect app record unlocks
4907
+ * uploads. `upload_to_testflight` fails with "Couldn't find app
4908
+ * 'com.foo.bar' on the account…" when this record is missing.
4909
+ *
4910
+ * `bundleIdId` is the REST API primary key of the bundle id resource
4911
+ * (not the identifier string) — fetch it via `bundleIds.find(identifier)`
4912
+ * or from the response of `bundleIds.create()`.
4913
+ *
4914
+ * `sku` is an arbitrary unique string Apple uses to identify the app in
4915
+ * their internal records. If you don't have a meaningful one, pass the
4916
+ * bundle identifier itself or append a timestamp for uniqueness.
4917
+ */
4918
+ async create(params) {
4919
+ const response = await this.http.post("/v1/apps", {
4920
+ data: {
4921
+ type: "apps",
4922
+ attributes: {
4923
+ bundleId: params.bundleIdentifier,
4924
+ name: params.appName,
4925
+ sku: params.sku,
4926
+ primaryLocale: params.primaryLocale ?? "en-US"
4927
+ },
4928
+ relationships: {
4929
+ bundleId: {
4930
+ data: { type: "bundleIds", id: params.bundleIdId }
4931
+ }
4932
+ }
4933
+ }
4934
+ });
4935
+ return response.data;
4936
+ }
4912
4937
  };
4913
4938
  }
4914
4939
  });
@@ -6342,6 +6367,12 @@ var init_xcode_metrics = __esm({
6342
6367
  });
6343
6368
 
6344
6369
  // src/client/portal.ts
6370
+ function pickUniqueKeyName(base, taken) {
6371
+ if (!taken.has(base)) return base;
6372
+ let n = 1;
6373
+ while (taken.has(`${base} - ${n}`)) n++;
6374
+ return `${base} - ${n}`;
6375
+ }
6345
6376
  var PORTAL_BASE, PortalClient;
6346
6377
  var init_portal = __esm({
6347
6378
  "src/client/portal.ts"() {
@@ -6460,12 +6491,17 @@ var init_portal = __esm({
6460
6491
  * + period and collapse whitespace.
6461
6492
  */
6462
6493
  async createApiKey(rawName, serviceConfigurations = {}) {
6463
- const name = rawName.replace(/[^A-Za-z0-9 _\-.]/g, " ").replace(/\s+/g, " ").trim().slice(0, 50);
6464
- if (!name) throw new Error("createApiKey: name is empty after sanitization");
6494
+ const baseName = rawName.replace(/[^A-Za-z0-9 _\-.]/g, " ").replace(/\s+/g, " ").trim().slice(0, 45);
6495
+ if (!baseName) throw new Error("createApiKey: name is empty after sanitization");
6496
+ let existingNames = /* @__PURE__ */ new Set();
6465
6497
  try {
6466
- await this.listApiKeys();
6498
+ const list = await this.listApiKeys();
6499
+ existingNames = new Set(
6500
+ (list.keys ?? []).map((k) => String(k.keyName ?? "").trim())
6501
+ );
6467
6502
  } catch {
6468
6503
  }
6504
+ const name = pickUniqueKeyName(baseName, existingNames);
6469
6505
  const body = {
6470
6506
  teamId: this.teamId,
6471
6507
  name,
@@ -6520,14 +6556,24 @@ var init_portal = __esm({
6520
6556
  * The exact body comes from @expo/apple-utils v2.1.21 — both fields
6521
6557
  * are produced by separate functions (`d` for the map, `h` for the
6522
6558
  * array) and merged into the create payload.
6559
+ *
6560
+ * Apple also rejects duplicate key names ("Another key with same
6561
+ * name exists") — we dedupe by listing existing keys first and
6562
+ * appending " (N)" until we find a free slot, mirroring the
6563
+ * provisioning profile dedup.
6523
6564
  */
6524
6565
  async createApnsAuthKey(rawName) {
6525
- const name = rawName.replace(/[^A-Za-z0-9 _\-.]/g, " ").replace(/\s+/g, " ").trim().slice(0, 50);
6526
- if (!name) throw new Error("createApnsAuthKey: name is empty after sanitization");
6566
+ const baseName = rawName.replace(/[^A-Za-z0-9 _\-.]/g, " ").replace(/\s+/g, " ").trim().slice(0, 45);
6567
+ if (!baseName) throw new Error("createApnsAuthKey: name is empty after sanitization");
6568
+ let existingNames = /* @__PURE__ */ new Set();
6527
6569
  try {
6528
- await this.listApiKeys();
6570
+ const list = await this.listApiKeys();
6571
+ existingNames = new Set(
6572
+ (list.keys ?? []).map((k) => String(k.keyName ?? "").trim())
6573
+ );
6529
6574
  } catch {
6530
6575
  }
6576
+ const name = pickUniqueKeyName(baseName, existingNames);
6531
6577
  const body = {
6532
6578
  teamId: this.teamId,
6533
6579
  name,