@postman-cse/onboarding-bootstrap 2.1.1 → 2.1.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/action.cjs CHANGED
@@ -299522,7 +299522,7 @@ function extractGitRepoUrl(value) {
299522
299522
  }
299523
299523
  var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
299524
299524
  static GENERATION_LOCKED_MAX_RETRIES = 5;
299525
- static GENERATION_POLL_ATTEMPTS = 45;
299525
+ static GENERATION_POLL_ATTEMPTS = 90;
299526
299526
  static GENERATION_POLL_DELAY_MS = 2e3;
299527
299527
  gateway;
299528
299528
  sleep;
@@ -299897,6 +299897,40 @@ var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
299897
299897
  const u = String(uid ?? "").trim();
299898
299898
  return u.includes("-") ? u.slice(u.indexOf("-") + 1) : u;
299899
299899
  }
299900
+ /**
299901
+ * PATCH a freshly-created item's `/scripts`, tolerating the two transient
299902
+ * failures this immediate-after-create write is prone to on the shared gateway:
299903
+ * - `404 RESOURCE_NOT_FOUND` — the create write returns the assigned id, but
299904
+ * an immediate PATCH can hit a replica that has not yet observed the create
299905
+ * (read-after-write lag, live-observed on org-mode teams).
299906
+ * - a downstream `5xx` (e.g. `500 ESOCKETTIMEDOUT`) — a Bifrost/gateway read
299907
+ * timeout, not a durable rejection.
299908
+ * `op:add /scripts` is idempotent (overwrites), so retrying either is safe.
299909
+ * This is a deeper, longer-backoff budget than the gateway client's inner
299910
+ * transient retry, to wait out a longer platform hiccup on this fragile write.
299911
+ * Non-transient errors (e.g. 4xx schema rejections) surface immediately.
299912
+ */
299913
+ async patchNewItemScripts(cid, itemId, scripts) {
299914
+ const maxAttempts = 6;
299915
+ for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
299916
+ try {
299917
+ await this.gateway.requestJson({
299918
+ service: "collection",
299919
+ method: "patch",
299920
+ path: `/v3/collections/${cid}/items/${itemId}`,
299921
+ headers: { "X-Entity-Type": "http-request" },
299922
+ body: [{ op: "add", path: "/scripts", value: scripts }]
299923
+ });
299924
+ return;
299925
+ } catch (error2) {
299926
+ const retriable = error2 instanceof HttpError && (error2.status === 404 || error2.status >= 500);
299927
+ if (!retriable || attempt === maxAttempts - 1) {
299928
+ throw error2;
299929
+ }
299930
+ await this.sleep(Math.min(2e3, 300 * 2 ** attempt));
299931
+ }
299932
+ }
299933
+ }
299900
299934
  /**
299901
299935
  * Apply tag slugs via the dedicated `tagging` service:
299902
299936
  * `PUT /v1/tags/collections/:uid` (full uid), body `{ tags:[{ slug }] }` — the
@@ -300014,26 +300048,14 @@ var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
300014
300048
  });
300015
300049
  const newItemId = String(asRecord7(created?.data)?.id ?? "").trim();
300016
300050
  if (!newItemId) return;
300017
- await this.gateway.requestJson({
300018
- service: "collection",
300019
- method: "patch",
300020
- path: `/v3/collections/${cid}/items/${newItemId}`,
300021
- headers: { "X-Entity-Type": "http-request" },
300022
- body: [
300023
- {
300024
- op: "add",
300025
- path: "/scripts",
300026
- value: toV3Scripts([
300027
- 'if (pm.environment.get("CI") === "true") { return; }',
300028
- "const body = pm.response.json();",
300029
- "if (body.SecretString) {",
300030
- " const secrets = JSON.parse(body.SecretString);",
300031
- " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
300032
- "}"
300033
- ])
300034
- }
300035
- ]
300036
- });
300051
+ await this.patchNewItemScripts(cid, newItemId, toV3Scripts([
300052
+ 'if (pm.environment.get("CI") === "true") { return; }',
300053
+ "const body = pm.response.json();",
300054
+ "if (body.SecretString) {",
300055
+ " const secrets = JSON.parse(body.SecretString);",
300056
+ " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
300057
+ "}"
300058
+ ]));
300037
300059
  }
300038
300060
  // --- workspace roles + member resolution (live-proven 2026-06-30) ---
300039
300061
  //
@@ -300192,26 +300214,14 @@ var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
300192
300214
  });
300193
300215
  const newItemId = String(asRecord7(created?.data)?.id ?? "").trim();
300194
300216
  if (newItemId) {
300195
- await this.gateway.requestJson({
300196
- service: "collection",
300197
- method: "patch",
300198
- path: `/v3/collections/${cid}/items/${newItemId}`,
300199
- headers: { "X-Entity-Type": "http-request" },
300200
- body: [
300201
- {
300202
- op: "add",
300203
- path: "/scripts",
300204
- value: toV3Scripts([
300205
- 'if (pm.environment.get("CI") === "true") { return; }',
300206
- "const body = pm.response.json();",
300207
- "if (body.SecretString) {",
300208
- " const secrets = JSON.parse(body.SecretString);",
300209
- " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
300210
- "}"
300211
- ])
300212
- }
300213
- ]
300214
- });
300217
+ await this.patchNewItemScripts(cid, newItemId, toV3Scripts([
300218
+ 'if (pm.environment.get("CI") === "true") { return; }',
300219
+ "const body = pm.response.json();",
300220
+ "if (body.SecretString) {",
300221
+ " const secrets = JSON.parse(body.SecretString);",
300222
+ " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
300223
+ "}"
300224
+ ]));
300215
300225
  }
300216
300226
  }
300217
300227
  return plan.warnings;
@@ -301047,7 +301057,7 @@ function resolveActionVersion(explicit) {
301047
301057
  if (explicit) {
301048
301058
  return explicit;
301049
301059
  }
301050
- return "2.1.1" ? "2.1.1" : "unknown";
301060
+ return "2.1.2" ? "2.1.2" : "unknown";
301051
301061
  }
301052
301062
  function telemetryDisabled(env) {
301053
301063
  const flag = String(env.POSTMAN_ACTIONS_TELEMETRY ?? "").trim().toLowerCase();
package/dist/cli.cjs CHANGED
@@ -297840,7 +297840,7 @@ function extractGitRepoUrl(value) {
297840
297840
  }
297841
297841
  var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
297842
297842
  static GENERATION_LOCKED_MAX_RETRIES = 5;
297843
- static GENERATION_POLL_ATTEMPTS = 45;
297843
+ static GENERATION_POLL_ATTEMPTS = 90;
297844
297844
  static GENERATION_POLL_DELAY_MS = 2e3;
297845
297845
  gateway;
297846
297846
  sleep;
@@ -298215,6 +298215,40 @@ var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
298215
298215
  const u = String(uid ?? "").trim();
298216
298216
  return u.includes("-") ? u.slice(u.indexOf("-") + 1) : u;
298217
298217
  }
298218
+ /**
298219
+ * PATCH a freshly-created item's `/scripts`, tolerating the two transient
298220
+ * failures this immediate-after-create write is prone to on the shared gateway:
298221
+ * - `404 RESOURCE_NOT_FOUND` — the create write returns the assigned id, but
298222
+ * an immediate PATCH can hit a replica that has not yet observed the create
298223
+ * (read-after-write lag, live-observed on org-mode teams).
298224
+ * - a downstream `5xx` (e.g. `500 ESOCKETTIMEDOUT`) — a Bifrost/gateway read
298225
+ * timeout, not a durable rejection.
298226
+ * `op:add /scripts` is idempotent (overwrites), so retrying either is safe.
298227
+ * This is a deeper, longer-backoff budget than the gateway client's inner
298228
+ * transient retry, to wait out a longer platform hiccup on this fragile write.
298229
+ * Non-transient errors (e.g. 4xx schema rejections) surface immediately.
298230
+ */
298231
+ async patchNewItemScripts(cid, itemId, scripts) {
298232
+ const maxAttempts = 6;
298233
+ for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
298234
+ try {
298235
+ await this.gateway.requestJson({
298236
+ service: "collection",
298237
+ method: "patch",
298238
+ path: `/v3/collections/${cid}/items/${itemId}`,
298239
+ headers: { "X-Entity-Type": "http-request" },
298240
+ body: [{ op: "add", path: "/scripts", value: scripts }]
298241
+ });
298242
+ return;
298243
+ } catch (error) {
298244
+ const retriable = error instanceof HttpError && (error.status === 404 || error.status >= 500);
298245
+ if (!retriable || attempt === maxAttempts - 1) {
298246
+ throw error;
298247
+ }
298248
+ await this.sleep(Math.min(2e3, 300 * 2 ** attempt));
298249
+ }
298250
+ }
298251
+ }
298218
298252
  /**
298219
298253
  * Apply tag slugs via the dedicated `tagging` service:
298220
298254
  * `PUT /v1/tags/collections/:uid` (full uid), body `{ tags:[{ slug }] }` — the
@@ -298332,26 +298366,14 @@ var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
298332
298366
  });
298333
298367
  const newItemId = String(asRecord7(created?.data)?.id ?? "").trim();
298334
298368
  if (!newItemId) return;
298335
- await this.gateway.requestJson({
298336
- service: "collection",
298337
- method: "patch",
298338
- path: `/v3/collections/${cid}/items/${newItemId}`,
298339
- headers: { "X-Entity-Type": "http-request" },
298340
- body: [
298341
- {
298342
- op: "add",
298343
- path: "/scripts",
298344
- value: toV3Scripts([
298345
- 'if (pm.environment.get("CI") === "true") { return; }',
298346
- "const body = pm.response.json();",
298347
- "if (body.SecretString) {",
298348
- " const secrets = JSON.parse(body.SecretString);",
298349
- " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
298350
- "}"
298351
- ])
298352
- }
298353
- ]
298354
- });
298369
+ await this.patchNewItemScripts(cid, newItemId, toV3Scripts([
298370
+ 'if (pm.environment.get("CI") === "true") { return; }',
298371
+ "const body = pm.response.json();",
298372
+ "if (body.SecretString) {",
298373
+ " const secrets = JSON.parse(body.SecretString);",
298374
+ " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
298375
+ "}"
298376
+ ]));
298355
298377
  }
298356
298378
  // --- workspace roles + member resolution (live-proven 2026-06-30) ---
298357
298379
  //
@@ -298510,26 +298532,14 @@ var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
298510
298532
  });
298511
298533
  const newItemId = String(asRecord7(created?.data)?.id ?? "").trim();
298512
298534
  if (newItemId) {
298513
- await this.gateway.requestJson({
298514
- service: "collection",
298515
- method: "patch",
298516
- path: `/v3/collections/${cid}/items/${newItemId}`,
298517
- headers: { "X-Entity-Type": "http-request" },
298518
- body: [
298519
- {
298520
- op: "add",
298521
- path: "/scripts",
298522
- value: toV3Scripts([
298523
- 'if (pm.environment.get("CI") === "true") { return; }',
298524
- "const body = pm.response.json();",
298525
- "if (body.SecretString) {",
298526
- " const secrets = JSON.parse(body.SecretString);",
298527
- " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
298528
- "}"
298529
- ])
298530
- }
298531
- ]
298532
- });
298535
+ await this.patchNewItemScripts(cid, newItemId, toV3Scripts([
298536
+ 'if (pm.environment.get("CI") === "true") { return; }',
298537
+ "const body = pm.response.json();",
298538
+ "if (body.SecretString) {",
298539
+ " const secrets = JSON.parse(body.SecretString);",
298540
+ " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
298541
+ "}"
298542
+ ]));
298533
298543
  }
298534
298544
  }
298535
298545
  return plan.warnings;
@@ -299365,7 +299375,7 @@ function resolveActionVersion(explicit) {
299365
299375
  if (explicit) {
299366
299376
  return explicit;
299367
299377
  }
299368
- return "2.1.1" ? "2.1.1" : "unknown";
299378
+ return "2.1.2" ? "2.1.2" : "unknown";
299369
299379
  }
299370
299380
  function telemetryDisabled(env) {
299371
299381
  const flag = String(env.POSTMAN_ACTIONS_TELEMETRY ?? "").trim().toLowerCase();
package/dist/index.cjs CHANGED
@@ -299539,7 +299539,7 @@ function extractGitRepoUrl(value) {
299539
299539
  }
299540
299540
  var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
299541
299541
  static GENERATION_LOCKED_MAX_RETRIES = 5;
299542
- static GENERATION_POLL_ATTEMPTS = 45;
299542
+ static GENERATION_POLL_ATTEMPTS = 90;
299543
299543
  static GENERATION_POLL_DELAY_MS = 2e3;
299544
299544
  gateway;
299545
299545
  sleep;
@@ -299914,6 +299914,40 @@ var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
299914
299914
  const u = String(uid ?? "").trim();
299915
299915
  return u.includes("-") ? u.slice(u.indexOf("-") + 1) : u;
299916
299916
  }
299917
+ /**
299918
+ * PATCH a freshly-created item's `/scripts`, tolerating the two transient
299919
+ * failures this immediate-after-create write is prone to on the shared gateway:
299920
+ * - `404 RESOURCE_NOT_FOUND` — the create write returns the assigned id, but
299921
+ * an immediate PATCH can hit a replica that has not yet observed the create
299922
+ * (read-after-write lag, live-observed on org-mode teams).
299923
+ * - a downstream `5xx` (e.g. `500 ESOCKETTIMEDOUT`) — a Bifrost/gateway read
299924
+ * timeout, not a durable rejection.
299925
+ * `op:add /scripts` is idempotent (overwrites), so retrying either is safe.
299926
+ * This is a deeper, longer-backoff budget than the gateway client's inner
299927
+ * transient retry, to wait out a longer platform hiccup on this fragile write.
299928
+ * Non-transient errors (e.g. 4xx schema rejections) surface immediately.
299929
+ */
299930
+ async patchNewItemScripts(cid, itemId, scripts) {
299931
+ const maxAttempts = 6;
299932
+ for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
299933
+ try {
299934
+ await this.gateway.requestJson({
299935
+ service: "collection",
299936
+ method: "patch",
299937
+ path: `/v3/collections/${cid}/items/${itemId}`,
299938
+ headers: { "X-Entity-Type": "http-request" },
299939
+ body: [{ op: "add", path: "/scripts", value: scripts }]
299940
+ });
299941
+ return;
299942
+ } catch (error2) {
299943
+ const retriable = error2 instanceof HttpError && (error2.status === 404 || error2.status >= 500);
299944
+ if (!retriable || attempt === maxAttempts - 1) {
299945
+ throw error2;
299946
+ }
299947
+ await this.sleep(Math.min(2e3, 300 * 2 ** attempt));
299948
+ }
299949
+ }
299950
+ }
299917
299951
  /**
299918
299952
  * Apply tag slugs via the dedicated `tagging` service:
299919
299953
  * `PUT /v1/tags/collections/:uid` (full uid), body `{ tags:[{ slug }] }` — the
@@ -300031,26 +300065,14 @@ var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
300031
300065
  });
300032
300066
  const newItemId = String(asRecord7(created?.data)?.id ?? "").trim();
300033
300067
  if (!newItemId) return;
300034
- await this.gateway.requestJson({
300035
- service: "collection",
300036
- method: "patch",
300037
- path: `/v3/collections/${cid}/items/${newItemId}`,
300038
- headers: { "X-Entity-Type": "http-request" },
300039
- body: [
300040
- {
300041
- op: "add",
300042
- path: "/scripts",
300043
- value: toV3Scripts([
300044
- 'if (pm.environment.get("CI") === "true") { return; }',
300045
- "const body = pm.response.json();",
300046
- "if (body.SecretString) {",
300047
- " const secrets = JSON.parse(body.SecretString);",
300048
- " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
300049
- "}"
300050
- ])
300051
- }
300052
- ]
300053
- });
300068
+ await this.patchNewItemScripts(cid, newItemId, toV3Scripts([
300069
+ 'if (pm.environment.get("CI") === "true") { return; }',
300070
+ "const body = pm.response.json();",
300071
+ "if (body.SecretString) {",
300072
+ " const secrets = JSON.parse(body.SecretString);",
300073
+ " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
300074
+ "}"
300075
+ ]));
300054
300076
  }
300055
300077
  // --- workspace roles + member resolution (live-proven 2026-06-30) ---
300056
300078
  //
@@ -300209,26 +300231,14 @@ var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
300209
300231
  });
300210
300232
  const newItemId = String(asRecord7(created?.data)?.id ?? "").trim();
300211
300233
  if (newItemId) {
300212
- await this.gateway.requestJson({
300213
- service: "collection",
300214
- method: "patch",
300215
- path: `/v3/collections/${cid}/items/${newItemId}`,
300216
- headers: { "X-Entity-Type": "http-request" },
300217
- body: [
300218
- {
300219
- op: "add",
300220
- path: "/scripts",
300221
- value: toV3Scripts([
300222
- 'if (pm.environment.get("CI") === "true") { return; }',
300223
- "const body = pm.response.json();",
300224
- "if (body.SecretString) {",
300225
- " const secrets = JSON.parse(body.SecretString);",
300226
- " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
300227
- "}"
300228
- ])
300229
- }
300230
- ]
300231
- });
300234
+ await this.patchNewItemScripts(cid, newItemId, toV3Scripts([
300235
+ 'if (pm.environment.get("CI") === "true") { return; }',
300236
+ "const body = pm.response.json();",
300237
+ "if (body.SecretString) {",
300238
+ " const secrets = JSON.parse(body.SecretString);",
300239
+ " Object.entries(secrets).forEach(([k, v]) => pm.collectionVariables.set(k, v));",
300240
+ "}"
300241
+ ]));
300232
300242
  }
300233
300243
  }
300234
300244
  return plan.warnings;
@@ -301064,7 +301074,7 @@ function resolveActionVersion(explicit) {
301064
301074
  if (explicit) {
301065
301075
  return explicit;
301066
301076
  }
301067
- return "2.1.1" ? "2.1.1" : "unknown";
301077
+ return "2.1.2" ? "2.1.2" : "unknown";
301068
301078
  }
301069
301079
  function telemetryDisabled(env) {
301070
301080
  const flag = String(env.POSTMAN_ACTIONS_TELEMETRY ?? "").trim().toLowerCase();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postman-cse/onboarding-bootstrap",
3
- "version": "2.1.1",
3
+ "version": "2.1.2",
4
4
  "description": "Bootstrap Postman workspaces, specs, and collections from OpenAPI.",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",