@chainpatrol/sdk 1.0.0 → 1.2.0

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/index.mjs CHANGED
@@ -7009,6 +7009,20 @@ var SubscriptionStatus = {
7009
7009
  INTEGRATION: "INTEGRATION",
7010
7010
  INACTIVE: "INACTIVE"
7011
7011
  };
7012
+ var OrganizationPortalVisibility = {
7013
+ PUBLIC: "PUBLIC",
7014
+ PRIVATE: "PRIVATE",
7015
+ DISABLED: "DISABLED"
7016
+ };
7017
+ var MetricsVisibility = {
7018
+ PUBLIC: "PUBLIC",
7019
+ PRIVATE: "PRIVATE",
7020
+ DISABLED: "DISABLED"
7021
+ };
7022
+ var ReportVisibility = {
7023
+ PUBLIC: "PUBLIC",
7024
+ PRIVATE: "PRIVATE"
7025
+ };
7012
7026
  var AssetType = {
7013
7027
  URL: "URL",
7014
7028
  PAGE: "PAGE",
@@ -8013,6 +8027,36 @@ var UserOrgTrademarkRegistrationSchema = z.object({
8013
8027
  "Direct URL to view or download the certificate PDF (null when no certificate is attached)"
8014
8028
  )
8015
8029
  });
8030
+ var UserOrgBrandMetadataSchema = z.object({
8031
+ websiteUrl: z.string().nullable().describe("Public website URL of the brand (linked from the portal header)"),
8032
+ twitterHandle: z.string().nullable().describe(
8033
+ "Public Twitter/X handle of the brand, stored with the leading `@` (e.g. `@acme`)"
8034
+ ),
8035
+ securityContactEmail: z.string().nullable().describe(
8036
+ "Email address for security correspondence \u2014 used by takedown providers and researchers, distinct from the internal customer POC email"
8037
+ ),
8038
+ industry: z.string().nullable().describe('Free-form industry label (e.g. "DeFi", "CEX", "NFT", "Wallet")')
8039
+ });
8040
+ var UserOrgPortalCustomizationSchema = z.object({
8041
+ useCustomDetails: z.boolean().describe(
8042
+ "When true, the portal uses `name`/`slug`/`avatarUrl` from this object instead of the org's own name/slug/avatar"
8043
+ ),
8044
+ name: z.string().nullable().describe(
8045
+ "Custom display name shown on the portal (used only when `useCustomDetails=true`)"
8046
+ ),
8047
+ slug: z.string().nullable().describe(
8048
+ "Custom URL slug (`chainpatrol.io/<slug>`) \u2014 takes precedence over the org's own slug when set, regardless of `useCustomDetails`"
8049
+ ),
8050
+ avatarUrl: z.string().nullable().describe(
8051
+ "Custom avatar URL shown on the portal (used only when `useCustomDetails=true`)"
8052
+ ),
8053
+ bannerEnabled: z.boolean().describe(
8054
+ "When true, the portal renders `bannerContent` as a highlighted banner at the top of the page"
8055
+ ),
8056
+ bannerContent: z.string().nullable().describe(
8057
+ "Markdown body of the portal banner. Null (or empty) with `bannerEnabled=true` means the toggle is on but no content has been written yet"
8058
+ )
8059
+ });
8016
8060
  var UserOrgSchema = z.object({
8017
8061
  id: z.number(),
8018
8062
  name: z.string(),
@@ -8020,6 +8064,21 @@ var UserOrgSchema = z.object({
8020
8064
  avatarUrl: z.string().nullable(),
8021
8065
  contactUrl: z.string().nullable(),
8022
8066
  subscriptionStatus: z.nativeEnum(SubscriptionStatus),
8067
+ portalVisibility: z.nativeEnum(OrganizationPortalVisibility).describe(
8068
+ "Visibility of the org's public security portal (chainpatrol.io/<slug>). `PUBLIC` is discoverable; `PRIVATE` renders only the report form (no metrics or listings); `DISABLED` returns a 404."
8069
+ ),
8070
+ reportVisibility: z.nativeEnum(ReportVisibility).describe(
8071
+ "Whether the report listings on the public portal are visible to visitors. `PUBLIC` shows the org's reports; `PRIVATE` hides the report list even when the portal is discoverable."
8072
+ ),
8073
+ metricsVisibility: z.nativeEnum(MetricsVisibility).describe(
8074
+ "Whether the metrics/threats-blocked stats render on the public portal. `PUBLIC` shows the metrics tab; `PRIVATE` hides it from anonymous visitors; `DISABLED` doesn't compute metrics at all."
8075
+ ),
8076
+ brandMetadata: UserOrgBrandMetadataSchema.describe(
8077
+ "Public brand-facing metadata (website, twitter, security contact, industry) shown on the portal and used by staff for outbound"
8078
+ ),
8079
+ portalCustomization: UserOrgPortalCustomizationSchema.describe(
8080
+ "Customer-configurable presentation of the public security portal \u2014 custom name/slug/avatar and the banner content"
8081
+ ),
8023
8082
  services: z.object({
8024
8083
  reporting: singleServiceSchema,
8025
8084
  reviewing: singleServiceSchema,