securewithtrace 0.25.0 → 0.26.1

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 (2) hide show
  1. package/dist/index.js +196 -17
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -4051,14 +4051,14 @@ var ye = (e) => {
4051
4051
  };
4052
4052
  var et2 = (e, i, s, r, u2) => {
4053
4053
  let n = i, o = 0;
4054
- for (let c26 = s; c26 < r; c26++) {
4055
- const a = e[c26];
4054
+ for (let c27 = s; c27 < r; c27++) {
4055
+ const a = e[c27];
4056
4056
  if (n = n - a.length, o++, n <= u2) break;
4057
4057
  }
4058
4058
  return { lineCount: n, removals: o };
4059
4059
  };
4060
4060
  var Y2 = ({ cursor: e, options: i, style: s, output: r = process.stdout, maxItems: u2 = Number.POSITIVE_INFINITY, columnPadding: n = 0, rowPadding: o = 4 }) => {
4061
- const c26 = O(r) - n, a = A(r), l = t("dim", "..."), $2 = Math.max(a - o, 0), y2 = Math.max(Math.min(u2, $2), 5);
4061
+ const c27 = O(r) - n, a = A(r), l = t("dim", "..."), $2 = Math.max(a - o, 0), y2 = Math.max(Math.min(u2, $2), 5);
4062
4062
  let p2 = 0;
4063
4063
  e >= y2 - 3 && (p2 = Math.max(Math.min(e - y2 + 3, i.length - y2), 0));
4064
4064
  let m = y2 < i.length && p2 > 0, g = y2 < i.length && p2 + y2 < i.length;
@@ -4067,7 +4067,7 @@ var Y2 = ({ cursor: e, options: i, style: s, output: r = process.stdout, maxItem
4067
4067
  m && f++, g && f++;
4068
4068
  const v = p2 + (m ? 1 : 0), T = S2 - (g ? 1 : 0);
4069
4069
  for (let b = v; b < T; b++) {
4070
- const x = wrapAnsi(s(i[b], b === e), c26, { hard: true, trim: false }).split(`
4070
+ const x = wrapAnsi(s(i[b], b === e), c27, { hard: true, trim: false }).split(`
4071
4071
  `);
4072
4072
  h.push(x), f += x.length;
4073
4073
  }
@@ -4108,19 +4108,19 @@ var _t = (e) => {
4108
4108
  `;
4109
4109
  switch (this.state) {
4110
4110
  case "submit": {
4111
- const c26 = s ? `${t("gray", d2)} ` : "", a = R(e.output, i(this.options[this.cursor], "selected"), c26);
4111
+ const c27 = s ? `${t("gray", d2)} ` : "", a = R(e.output, i(this.options[this.cursor], "selected"), c27);
4112
4112
  return `${o}${a}`;
4113
4113
  }
4114
4114
  case "cancel": {
4115
- const c26 = s ? `${t("gray", d2)} ` : "", a = R(e.output, i(this.options[this.cursor], "cancelled"), c26);
4115
+ const c27 = s ? `${t("gray", d2)} ` : "", a = R(e.output, i(this.options[this.cursor], "cancelled"), c27);
4116
4116
  return `${o}${a}${s ? `
4117
4117
  ${t("gray", d2)}` : ""}`;
4118
4118
  }
4119
4119
  default: {
4120
- const c26 = s ? `${t("cyan", d2)} ` : "", a = s ? t("cyan", E2) : "", l = o.split(`
4120
+ const c27 = s ? `${t("cyan", d2)} ` : "", a = s ? t("cyan", E2) : "", l = o.split(`
4121
4121
  `).length, $2 = s ? 2 : 1;
4122
- return `${o}${c26}${Y2({ output: e.output, cursor: this.cursor, options: this.options, maxItems: e.maxItems, columnPadding: c26.length, rowPadding: l + $2, style: (y2, p2) => i(y2, y2.disabled ? "disabled" : p2 ? "active" : "inactive") }).join(`
4123
- ${c26}`)}
4122
+ return `${o}${c27}${Y2({ output: e.output, cursor: this.cursor, options: this.options, maxItems: e.maxItems, columnPadding: c27.length, rowPadding: l + $2, style: (y2, p2) => i(y2, y2.disabled ? "disabled" : p2 ? "active" : "inactive") }).join(`
4123
+ ${c27}`)}
4124
4124
  ${a}
4125
4125
  `;
4126
4126
  }
@@ -10897,7 +10897,7 @@ var $ZodBase64 = /* @__PURE__ */ $constructor("$ZodBase64", (inst, def) => {
10897
10897
  function isValidBase64URL(data) {
10898
10898
  if (!base64url.test(data))
10899
10899
  return false;
10900
- const base643 = data.replace(/[-_]/g, (c26) => c26 === "-" ? "+" : "/");
10900
+ const base643 = data.replace(/[-_]/g, (c27) => c27 === "-" ? "+" : "/");
10901
10901
  const padded = base643.padEnd(Math.ceil(base643.length / 4) * 4, "=");
10902
10902
  return isValidBase64(padded);
10903
10903
  }
@@ -20941,9 +20941,9 @@ var ZodDate2 = /* @__PURE__ */ $constructor("ZodDate", (inst, def) => {
20941
20941
  inst._zod.processJSONSchema = (ctx, json2, params) => dateProcessor(inst, ctx, json2, params);
20942
20942
  inst.min = (value, params) => inst.check(_gte(value, params));
20943
20943
  inst.max = (value, params) => inst.check(_lte(value, params));
20944
- const c26 = inst._zod.bag;
20945
- inst.minDate = c26.minimum ? new Date(c26.minimum) : null;
20946
- inst.maxDate = c26.maximum ? new Date(c26.maximum) : null;
20944
+ const c27 = inst._zod.bag;
20945
+ inst.minDate = c27.minimum ? new Date(c27.minimum) : null;
20946
+ inst.maxDate = c27.maximum ? new Date(c27.maximum) : null;
20947
20947
  });
20948
20948
  function date3(params) {
20949
20949
  return _date(ZodDate2, params);
@@ -24767,6 +24767,93 @@ var BulkUpdateVulnerabilitiesResponseSchema = external_exports.object({
24767
24767
  )
24768
24768
  });
24769
24769
 
24770
+ // ../../packages/api-contracts/src/schemas/api/v1/vulnerability-share.api.ts
24771
+ var VulnerabilityShareAccessModeSchema = external_exports.enum(["ANYONE_WITH_LINK", "ALLOWED_EMAILS"]);
24772
+ var VulnerabilityShareTokenSchema = external_exports.string().min(32).max(512).regex(/^[A-Za-z0-9_-]+$/, {
24773
+ message: "shareToken must contain only URL-safe base64 characters"
24774
+ });
24775
+ var VulnerabilityShareLookupParamsSchema = OrgIdParamsSchema.extend({
24776
+ vulnerabilityId: VulnerabilityLookupIdSchema
24777
+ });
24778
+ var VulnerabilityShareLinkParamsSchema = VulnerabilityShareLookupParamsSchema.extend({
24779
+ shareLinkId: external_exports.uuid()
24780
+ });
24781
+ var VulnerabilityShareTokenParamsSchema = external_exports.object({
24782
+ shareToken: VulnerabilityShareTokenSchema
24783
+ });
24784
+ var VulnerabilityShareResolveQuerySchema = external_exports.object({
24785
+ viewerToken: external_exports.string().min(32).max(512).optional()
24786
+ });
24787
+ var CreateVulnerabilityShareLinkRequestSchema = external_exports.object({
24788
+ accessMode: VulnerabilityShareAccessModeSchema,
24789
+ allowedEmails: external_exports.array(external_exports.string().email().max(320)).max(100).default([]).optional()
24790
+ });
24791
+ var VulnerabilityShareLinkResponseSchema = external_exports.object({
24792
+ shareLinkId: external_exports.uuid(),
24793
+ vulnerabilityId: external_exports.uuid(),
24794
+ organizationId: external_exports.uuid(),
24795
+ createdById: external_exports.uuid(),
24796
+ createdByName: external_exports.string(),
24797
+ createdByEmail: external_exports.string().email(),
24798
+ accessMode: VulnerabilityShareAccessModeSchema,
24799
+ allowedEmails: external_exports.array(external_exports.string().email()),
24800
+ revokedAt: external_exports.coerce.date().nullable(),
24801
+ createdAt: external_exports.coerce.date(),
24802
+ updatedAt: external_exports.coerce.date()
24803
+ });
24804
+ var CreateVulnerabilityShareLinkResponseSchema = VulnerabilityShareLinkResponseSchema.extend({
24805
+ shareUrl: external_exports.url()
24806
+ });
24807
+ var ListVulnerabilityShareLinksResponseSchema = external_exports.array(
24808
+ VulnerabilityShareLinkResponseSchema
24809
+ );
24810
+ var SharedVulnerabilityResponseSchema = external_exports.object({
24811
+ vulnerabilityId: external_exports.uuid(),
24812
+ traceId: external_exports.string(),
24813
+ title: external_exports.string(),
24814
+ description: external_exports.string(),
24815
+ severity: VulnerabilitySeverity,
24816
+ status: VulnerabilityStatus,
24817
+ vulnerabilityType: VulnerabilityType,
24818
+ repositoryName: external_exports.string(),
24819
+ repositoryHtmlUrl: external_exports.string().nullable(),
24820
+ cweId: external_exports.string().nullable(),
24821
+ explanation: external_exports.string().nullable(),
24822
+ codeSnippet: external_exports.object({
24823
+ filePath: external_exports.string(),
24824
+ startLine: external_exports.number(),
24825
+ endLine: external_exports.number().nullable(),
24826
+ snippet: external_exports.string().nullable()
24827
+ }),
24828
+ createdAt: external_exports.coerce.date(),
24829
+ updatedAt: external_exports.coerce.date()
24830
+ });
24831
+ var ResolveSharedVulnerabilityResponseSchema = external_exports.object({
24832
+ shareLinkId: external_exports.uuid(),
24833
+ accessMode: VulnerabilityShareAccessModeSchema,
24834
+ requiresEmailVerification: external_exports.boolean(),
24835
+ viewerEmail: external_exports.string().email().nullable(),
24836
+ vulnerability: SharedVulnerabilityResponseSchema.nullable()
24837
+ });
24838
+ var RequestSharedVulnerabilityEmailVerificationSchema = external_exports.object({
24839
+ email: external_exports.string().email().max(320)
24840
+ });
24841
+ var RequestSharedVulnerabilityEmailVerificationResponseSchema = external_exports.object({
24842
+ verificationId: external_exports.uuid(),
24843
+ email: external_exports.string().email(),
24844
+ expiresAt: external_exports.coerce.date()
24845
+ });
24846
+ var VerifySharedVulnerabilityEmailCodeSchema = external_exports.object({
24847
+ verificationId: external_exports.uuid(),
24848
+ email: external_exports.string().email().max(320),
24849
+ code: external_exports.string().trim().min(4).max(16)
24850
+ });
24851
+ var VerifySharedVulnerabilityEmailCodeResponseSchema = external_exports.object({
24852
+ viewerToken: external_exports.string().min(32).max(512),
24853
+ email: external_exports.string().email(),
24854
+ expiresAt: external_exports.coerce.date()
24855
+ });
24856
+
24770
24857
  // ../../packages/api-contracts/src/contracts/v1/vulnerability.ts
24771
24858
  var c17 = initContract();
24772
24859
  var vulnerabilityContract = c17.router({
@@ -24899,6 +24986,47 @@ var vulnerabilityContract = c17.router({
24899
24986
  404: ErrorResponseSchema,
24900
24987
  500: ErrorResponseSchema
24901
24988
  }
24989
+ },
24990
+ createShareLink: {
24991
+ method: "POST",
24992
+ path: "/organizations/:organizationId/vulnerabilities/:vulnerabilityId/share-links",
24993
+ pathParams: VulnerabilityLookupIdParamsSchema,
24994
+ body: CreateVulnerabilityShareLinkRequestSchema,
24995
+ responses: {
24996
+ 201: CreateVulnerabilityShareLinkResponseSchema,
24997
+ 400: ErrorResponseSchema,
24998
+ 401: ErrorResponseSchema,
24999
+ 403: ErrorResponseSchema,
25000
+ 404: ErrorResponseSchema,
25001
+ 500: ErrorResponseSchema
25002
+ }
25003
+ },
25004
+ listShareLinks: {
25005
+ method: "GET",
25006
+ path: "/organizations/:organizationId/vulnerabilities/:vulnerabilityId/share-links",
25007
+ pathParams: VulnerabilityLookupIdParamsSchema,
25008
+ responses: {
25009
+ 200: ListVulnerabilityShareLinksResponseSchema,
25010
+ 400: ErrorResponseSchema,
25011
+ 401: ErrorResponseSchema,
25012
+ 403: ErrorResponseSchema,
25013
+ 404: ErrorResponseSchema,
25014
+ 500: ErrorResponseSchema
25015
+ }
25016
+ },
25017
+ revokeShareLink: {
25018
+ method: "POST",
25019
+ path: "/organizations/:organizationId/vulnerabilities/:vulnerabilityId/share-links/:shareLinkId/revoke",
25020
+ pathParams: VulnerabilityShareLinkParamsSchema,
25021
+ body: null,
25022
+ responses: {
25023
+ 200: VulnerabilityShareLinkResponseSchema,
25024
+ 400: ErrorResponseSchema,
25025
+ 401: ErrorResponseSchema,
25026
+ 403: ErrorResponseSchema,
25027
+ 404: ErrorResponseSchema,
25028
+ 500: ErrorResponseSchema
25029
+ }
24902
25030
  }
24903
25031
  });
24904
25032
 
@@ -25361,6 +25489,57 @@ var healthContract = c24.router({
25361
25489
  }
25362
25490
  });
25363
25491
 
25492
+ // ../../packages/api-contracts/src/contracts/v1/vulnerability-share.ts
25493
+ var c25 = initContract();
25494
+ var vulnerabilityShareContract = c25.router(
25495
+ {
25496
+ resolveShareLink: {
25497
+ method: "GET",
25498
+ path: "/vulnerabilities/share/:shareToken/resolve",
25499
+ pathParams: VulnerabilityShareTokenParamsSchema,
25500
+ responses: {
25501
+ 200: ResolveSharedVulnerabilityResponseSchema,
25502
+ 400: ErrorResponseSchema,
25503
+ 401: ErrorResponseSchema,
25504
+ 403: ErrorResponseSchema,
25505
+ 404: ErrorResponseSchema,
25506
+ 500: ErrorResponseSchema
25507
+ }
25508
+ },
25509
+ requestShareEmailVerification: {
25510
+ method: "POST",
25511
+ path: "/vulnerabilities/share/:shareToken/verify/start",
25512
+ pathParams: VulnerabilityShareTokenParamsSchema,
25513
+ body: RequestSharedVulnerabilityEmailVerificationSchema,
25514
+ responses: {
25515
+ 200: RequestSharedVulnerabilityEmailVerificationResponseSchema,
25516
+ 400: ErrorResponseSchema,
25517
+ 401: ErrorResponseSchema,
25518
+ 403: ErrorResponseSchema,
25519
+ 404: ErrorResponseSchema,
25520
+ 500: ErrorResponseSchema
25521
+ }
25522
+ },
25523
+ verifyShareEmailCode: {
25524
+ method: "POST",
25525
+ path: "/vulnerabilities/share/:shareToken/verify/complete",
25526
+ pathParams: VulnerabilityShareTokenParamsSchema,
25527
+ body: VerifySharedVulnerabilityEmailCodeSchema,
25528
+ responses: {
25529
+ 200: VerifySharedVulnerabilityEmailCodeResponseSchema,
25530
+ 400: ErrorResponseSchema,
25531
+ 401: ErrorResponseSchema,
25532
+ 403: ErrorResponseSchema,
25533
+ 404: ErrorResponseSchema,
25534
+ 500: ErrorResponseSchema
25535
+ }
25536
+ }
25537
+ },
25538
+ {
25539
+ pathPrefix: "/v1"
25540
+ }
25541
+ );
25542
+
25364
25543
  // ../../packages/api-contracts/src/schemas/api/v1/pr-vulnerability.api.ts
25365
25544
  var PrParamsSchema = external_exports.object({
25366
25545
  owner: external_exports.string(),
@@ -25399,8 +25578,8 @@ var UpdatePrVulnerabilityRequestSchema = external_exports.object({
25399
25578
  });
25400
25579
 
25401
25580
  // ../../packages/api-contracts/src/contracts/v1/pr-vulnerability.ts
25402
- var c25 = initContract();
25403
- var prVulnerabilityContract = c25.router(
25581
+ var c26 = initContract();
25582
+ var prVulnerabilityContract = c26.router(
25404
25583
  {
25405
25584
  listPrVulnerabilities: {
25406
25585
  method: "GET",
@@ -27333,7 +27512,7 @@ function extractCommandTree(cmd) {
27333
27512
  description: o.description,
27334
27513
  takesValue: o.required || o.optional
27335
27514
  }));
27336
- const subcommands = cmd.commands.filter((c26) => !c26._hidden).map((c26) => extractCommandTree(c26));
27515
+ const subcommands = cmd.commands.filter((c27) => !c27._hidden).map((c27) => extractCommandTree(c27));
27337
27516
  return {
27338
27517
  name: cmd.name(),
27339
27518
  description: cmd.description(),
@@ -27399,7 +27578,7 @@ function generateBashCompletion(tree, binName) {
27399
27578
  }
27400
27579
  function collectBashCases(tree, prefix) {
27401
27580
  const cases = /* @__PURE__ */ new Map();
27402
- const subcommandNames = tree.subcommands.map((c26) => c26.name);
27581
+ const subcommandNames = tree.subcommands.map((c27) => c27.name);
27403
27582
  const optionNames = tree.options.flatMap((o) => o.short ? [o.long, o.short] : [o.long]);
27404
27583
  const extraOptions = prefix === "" ? ["--help", "--version"] : ["--help"];
27405
27584
  const allOptions = [.../* @__PURE__ */ new Set([...optionNames, ...extraOptions])];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "securewithtrace",
3
- "version": "0.25.0",
3
+ "version": "0.26.1",
4
4
  "description": "Official Trace CLI for vulnerability intelligence in your terminal",
5
5
  "type": "module",
6
6
  "bin": {