@chainpatrol/sdk 1.2.0 → 1.4.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.
@@ -14,9 +14,37 @@ interface ChainPatrolApiClientOptions {
14
14
  interface ConfigEntry {
15
15
  id: number;
16
16
  title: string;
17
+ /**
18
+ * Human-readable description of what the config does. `null` when unset
19
+ * — most configs seeded before this field existed do not have one.
20
+ */
21
+ description: string | null;
17
22
  status: string;
18
23
  cron: string | null;
19
24
  config: Record<string, unknown>;
25
+ /**
26
+ * Optional brand connection. Present only for org-scoped configs when the
27
+ * config targets a specific brand.
28
+ */
29
+ brandId?: number | null;
30
+ brand?: {
31
+ id: number;
32
+ name: string;
33
+ slug: string;
34
+ } | null;
35
+ /** When the config was first created (ISO 8601, UTC). */
36
+ createdAt: string;
37
+ /**
38
+ * When the config was last updated (ISO 8601, UTC). Pair with the drift
39
+ * healthcheck to spot silent configs untouched in months.
40
+ */
41
+ updatedAt: string;
42
+ /**
43
+ * When the most recent `ThreatDetectionResult` for this config was created
44
+ * (ISO 8601, UTC). Null when the config has never produced a hit. A config
45
+ * with no recent `lastResultAt` is going silent regardless of `updatedAt`.
46
+ */
47
+ lastResultAt: string | null;
20
48
  }
21
49
  interface DetectionSource {
22
50
  source: string;
@@ -82,6 +110,16 @@ interface AssetSearchResultItem {
82
110
  type: string;
83
111
  status: string;
84
112
  watchStatus: string;
113
+ /**
114
+ * Whether the asset is currently reachable (`"ALIVE"`), gone
115
+ * (`"DEAD"`), or unchecked (`"UNKNOWN"`). Null when never evaluated.
116
+ */
117
+ livenessStatus: LivenessStatus | null;
118
+ /**
119
+ * When the asset transitioned to BLOCKED (ISO 8601, UTC). Null for
120
+ * non-blocked assets or blocks predating the field.
121
+ */
122
+ blockedAt: string | null;
85
123
  createdAt: string;
86
124
  updatedAt: string;
87
125
  } | null;
@@ -130,10 +168,22 @@ interface AssetListInput {
130
168
  nextPage?: string;
131
169
  }
132
170
  interface AssetListItem {
171
+ /** Asset ID — reference in follow-up calls (was previously stripped from the response). */
172
+ id: number;
133
173
  content: string;
134
174
  type: string;
135
175
  status: string;
136
176
  watchStatus: string;
177
+ /**
178
+ * Whether the asset is currently reachable (`"ALIVE"`), gone
179
+ * (`"DEAD"`), or unchecked (`"UNKNOWN"`). Null when never evaluated.
180
+ */
181
+ livenessStatus: LivenessStatus | null;
182
+ /**
183
+ * When the asset transitioned to BLOCKED (ISO 8601, UTC). Null for
184
+ * non-blocked assets.
185
+ */
186
+ blockedAt: string | null;
137
187
  updatedAt: string;
138
188
  }
139
189
  interface AssetListResult {
@@ -401,6 +451,8 @@ declare const REPORT_REVIEW_DECISIONS: readonly ["APPROVE", "REJECT", "SKIP", "E
401
451
  type ReportReviewDecision = (typeof REPORT_REVIEW_DECISIONS)[number];
402
452
  declare const REPORT_STATUSES: readonly ["TODO", "IN_PROGRESS", "CLOSED"];
403
453
  type ReportStatus = (typeof REPORT_STATUSES)[number];
454
+ declare const ACTOR_KINDS: readonly ["human", "automation"];
455
+ type ActorKind = (typeof ACTOR_KINDS)[number];
404
456
  interface OrganizationReportsListInput {
405
457
  slug: string;
406
458
  limit?: number;
@@ -409,7 +461,12 @@ interface OrganizationReportsListInput {
409
461
  searchQuery?: string;
410
462
  reporterQuery?: string;
411
463
  reportedByCustomer?: boolean;
464
+ /** @deprecated Prefer `reporterKind: "human"`. */
412
465
  excludeAutomation?: boolean;
466
+ /** Filter by whether the report was submitted by a human or automation. */
467
+ reporterKind?: ActorKind;
468
+ /** Filter by whether the report was approved by a human or automation. */
469
+ reviewerKind?: ActorKind;
413
470
  onlyRejected?: boolean;
414
471
  reviewStatuses?: ReportReviewDecision[];
415
472
  assetTypes?: string[];
@@ -420,16 +477,69 @@ interface OrganizationReportsListInput {
420
477
  endDate?: string;
421
478
  updatedAtStartDate?: string;
422
479
  updatedAtEndDate?: string;
480
+ /**
481
+ * Filter to reports waiting on the organization's own approval — the reports
482
+ * a customer admin still has to sign off on before the assets in them can be
483
+ * blocked. `true` returns only those reports; `false` returns only reports
484
+ * that are not waiting on them.
485
+ *
486
+ * When "Obligatory Organization Admin Approval" is on for the organization,
487
+ * that means every report with a pending proposal whose asset type is in the
488
+ * approval scope (all asset types when the scope has not been narrowed), plus
489
+ * anything ChainPatrol staff escalated to the organization. When the setting
490
+ * is off, only reports staff escalated to the organization are returned.
491
+ * Reports the organization submitted itself are never included — staff can
492
+ * action those without customer sign-off.
493
+ */
494
+ needsCustomerReview?: boolean;
495
+ }
496
+ interface OrganizationReportAssetScanEnrichment {
497
+ id: number;
498
+ type: string;
499
+ output: unknown;
500
+ status: string;
501
+ }
502
+ interface OrganizationReportAssetScan {
503
+ id: number;
504
+ status: string;
505
+ output: unknown;
506
+ createdAt: string;
507
+ enrichments: OrganizationReportAssetScanEnrichment[];
508
+ }
509
+ interface OrganizationReportAttachment {
510
+ id: number;
511
+ url: string;
423
512
  }
424
513
  interface OrganizationReportsListResult {
425
514
  reports: Array<{
426
515
  id: number;
427
516
  title: string;
428
517
  description: string;
518
+ /** Whether the report's images render inline or are hidden by default. */
519
+ imageDisplay: string;
520
+ /** When the report was starred/favorited (ISO 8601, UTC). Null when not favorited. */
521
+ favoritedAt: string | null;
429
522
  status: string | null;
430
523
  reportedByCustomer: boolean;
524
+ /**
525
+ * SLA deadline for this report (ISO 8601, UTC). Null when no SLA
526
+ * applies (e.g. staff-created reports).
527
+ */
528
+ slaDueAt: string | null;
529
+ /**
530
+ * URL to the original external source of the report when submitted
531
+ * from a third-party surface (Discord/Twitter link, forwarded webform).
532
+ * Null for reports created directly in ChainPatrol.
533
+ */
534
+ externalSubmissionLink: string | null;
535
+ /**
536
+ * ID of the canonical report this one duplicates. Null when the
537
+ * report is not a duplicate.
538
+ */
539
+ duplicateOfId: number | null;
431
540
  createdAt: string;
432
541
  updatedAt: string;
542
+ attachments: OrganizationReportAttachment[];
433
543
  proposals: Array<{
434
544
  reviewStatus: string;
435
545
  asset: {
@@ -437,6 +547,12 @@ interface OrganizationReportsListResult {
437
547
  type: string;
438
548
  content: string;
439
549
  status: string;
550
+ /**
551
+ * Per-scan enrichment data. Large (Apple App Store enrichments run
552
+ * 50–200 KB each) — the agent42 tool strips these by default when
553
+ * relaying results. Present in the raw handler response.
554
+ */
555
+ scans: OrganizationReportAssetScan[];
440
556
  };
441
557
  }>;
442
558
  reporter: {
@@ -482,12 +598,42 @@ interface DetectionListInput {
482
598
  countryCodes?: string[];
483
599
  onlyDeleted?: boolean;
484
600
  }
601
+ interface DetectionBrand {
602
+ id: number;
603
+ name: string;
604
+ slug: string;
605
+ }
485
606
  interface DetectionListItem {
486
607
  id: number;
487
608
  threatContent: string;
488
609
  source: string;
489
610
  createdAt: string;
490
611
  confidence: DetectionConfidence;
612
+ /**
613
+ * Raw model score (0–1). `confidence` buckets this into low/medium/high
614
+ * using the org's thresholds; use `score` when the buckets are too coarse.
615
+ */
616
+ score: number;
617
+ /**
618
+ * Free-text explanation of why the detection fired (e.g. "matches
619
+ * brand-name typo squat", "TLS cert issued by known lookalike CA").
620
+ */
621
+ reason: string;
622
+ /**
623
+ * ID of the `ThreatDetectionConfig` that produced this hit. Pair with
624
+ * `listDetectionConfigs` to drill back into the config.
625
+ */
626
+ configId: number;
627
+ /**
628
+ * When the detection was reported (ISO 8601, UTC). Null when the
629
+ * detection has not been reported yet.
630
+ */
631
+ reportedAt: string | null;
632
+ /**
633
+ * Brands the detection was associated with. Empty when the detection
634
+ * was not linked to any brand at classification time.
635
+ */
636
+ brands: DetectionBrand[];
491
637
  reportStatus: DetectionReportStatus;
492
638
  asset: {
493
639
  id: number;
@@ -516,6 +662,11 @@ interface ThreatItem {
516
662
  id: number;
517
663
  content: string;
518
664
  type: string;
665
+ /**
666
+ * Liveness of the blocked threat. `"ALIVE"` still reachable, `"DEAD"`
667
+ * gone, `"UNKNOWN"` unchecked. Null when never evaluated.
668
+ */
669
+ livenessStatus: LivenessStatus | null;
519
670
  blockedAt: string;
520
671
  }
521
672
  interface ThreatsListResult {
@@ -540,6 +691,16 @@ interface OrganizationAssetItem {
540
691
  id: number;
541
692
  name: string;
542
693
  } | null;
694
+ /**
695
+ * Whether the asset is currently reachable (`"ALIVE"`), gone
696
+ * (`"DEAD"`), or unchecked (`"UNKNOWN"`). Null when never evaluated.
697
+ */
698
+ livenessStatus: LivenessStatus | null;
699
+ /**
700
+ * When the asset transitioned to BLOCKED (ISO 8601, UTC). Null for
701
+ * non-blocked assets.
702
+ */
703
+ blockedAt: string | null;
543
704
  createdAt: string;
544
705
  updatedAt: string;
545
706
  }
@@ -600,16 +761,39 @@ interface OrganizationBrandsListResult {
600
761
  }
601
762
  interface ReportsSearchInput {
602
763
  assetContents: string[];
764
+ /**
765
+ * Organization slug. Optional for organization-scoped API keys, which resolve
766
+ * the organization from the key itself. Required when your credentials can
767
+ * reach more than one organization — including the bearer token issued by
768
+ * `chainpatrol login`.
769
+ */
770
+ slug?: string;
603
771
  reportedByCustomer?: boolean;
772
+ /**
773
+ * Maximum number of reports to return, newest first. Defaults to 50, maximum
774
+ * 100. Compare with `totalCount` to tell whether results were truncated.
775
+ */
776
+ limit?: number;
604
777
  }
605
778
  interface ReportsSearchResultItem {
606
779
  id: number;
780
+ /**
781
+ * Report title. Null for external / anonymous reports without one.
782
+ */
783
+ title: string | null;
607
784
  status: string;
608
785
  reportedByCustomer: boolean;
786
+ /** When the report was created (ISO 8601, UTC). */
787
+ createdAt: string;
609
788
  assets: string[];
610
789
  }
611
790
  interface ReportsSearchResult {
612
791
  reports: ReportsSearchResultItem[];
792
+ /**
793
+ * Total number of reports matching the search, ignoring `limit`. Greater than
794
+ * `reports.length` means the results were truncated.
795
+ */
796
+ totalCount: number;
613
797
  }
614
798
  interface UserMeResult {
615
799
  user: {
@@ -659,6 +843,24 @@ interface TakedownsListInput {
659
843
  interface TakedownItem {
660
844
  id: number;
661
845
  status: TakedownStatus;
846
+ /**
847
+ * Provider's own reference for this takedown (e.g. CleanDNS report ID,
848
+ * registrar ticket). Reconcile with the vendor's dashboard. `null` when
849
+ * no vendor has picked it up yet.
850
+ */
851
+ externalId: string | null;
852
+ /**
853
+ * Manually set by staff to exclude the takedown from median-time metrics
854
+ * when its filing was delayed for reasons unrelated to platform
855
+ * performance.
856
+ */
857
+ hasFilingDelay: boolean;
858
+ /**
859
+ * Manually set by staff to exclude the takedown from median-time metrics
860
+ * when the liveness-check step was delayed for reasons unrelated to
861
+ * platform performance.
862
+ */
863
+ hasLivenessCheckDelay: boolean;
662
864
  createdAt: string;
663
865
  updatedAt: string;
664
866
  asset: {
@@ -666,6 +868,11 @@ interface TakedownItem {
666
868
  content: string;
667
869
  type: string;
668
870
  livenessStatus: LivenessStatus | null;
871
+ /**
872
+ * When the asset transitioned to BLOCKED (ISO 8601, UTC). Null if the
873
+ * asset was never blocked (rare for takedown rows).
874
+ */
875
+ blockedAt: string | null;
669
876
  };
670
877
  assignee: {
671
878
  id: number;
@@ -676,6 +883,26 @@ interface TakedownItem {
676
883
  name: string;
677
884
  slug: string | null;
678
885
  } | null;
886
+ /**
887
+ * Domain registrar assigned to this takedown (e.g. Namecheap, GoDaddy).
888
+ * Null when unresolved. Distinct from per-task `takedownProvider` — this
889
+ * is the takedown-level assignment for the domain itself.
890
+ */
891
+ domainRegistrar: TakedownProviderRef | null;
892
+ /**
893
+ * Hosting provider assigned to this takedown (e.g. Cloudflare, AWS).
894
+ * Answers "who hosts this?" without a follow-up call. Null when unresolved.
895
+ */
896
+ hostingProvider: TakedownProviderRef | null;
897
+ /**
898
+ * Top-level-domain registrar assigned to this takedown (e.g. Verisign).
899
+ * Null when unresolved.
900
+ */
901
+ tldRegistrar: TakedownProviderRef | null;
902
+ }
903
+ interface TakedownProviderRef {
904
+ id: number;
905
+ name: string;
679
906
  }
680
907
  interface TakedownsListResult {
681
908
  takedowns: TakedownItem[];
@@ -1033,4 +1260,4 @@ declare class ChainPatrolApiClient implements ApiClient {
1033
1260
  declare function parseIsoDate(value: string | undefined): Date | undefined;
1034
1261
  declare function parseIsoDateString(value: string | undefined): string | undefined;
1035
1262
 
1036
- export { type ApiClient, type ApiCredential, type AssetCheckInput, type AssetCheckResult, type AssetCheckSourceEntry, type AssetCheckStatus, type AssetGroupItem, type AssetListInput, type AssetListItem, type AssetListResult, type AssetSearchInput, type AssetSearchResult, type AssetSearchResultItem, type BrandItem, type BrandLegalDocument, type BrandLegalDocuments, type BrandTrademarkRegistrationItem, type BrandType, ChainPatrolApiClient, type ChainPatrolApiClientOptions, type ConfigEntry, type CredentialProvider, DETECTION_CONFIDENCE_LEVELS, DETECTION_REPORTED_FILTERS, type DetectionConfidence, type DetectionConfigRunInput, type DetectionConfigRunResult, type DetectionConfigUpdateInput, type DetectionConfigUpdateResult, type DetectionConfigValidateInput, type DetectionConfigValidateResult, type DetectionDriftInput, type DetectionDriftResult, type DetectionListInput, type DetectionListItem, type DetectionListResult, type DetectionReportStatus, type DetectionReportedFilter, type DetectionSource, type HealthcheckCategory, type HealthcheckFinding, type HealthcheckRegistryEntry, type HealthcheckResult, type HealthcheckSeverity, type HealthchecksListResult, LIVENESS_FILTER_VALUES, LIVENESS_STATUSES, type LivenessFilterValue, type LivenessStatus, type MetricsBreakdownInput, type MetricsBreakdownResult, type MetricsFoundInput, type MetricsFoundResult, type MetricsSummaryInput, type MetricsSummaryResult, ORGANIZATION_METRICS_INCLUDE_FIELDS, type OperationsQueuesSnapshotInput, type OperationsQueuesSnapshotResult, type OrganizationAssetGroupsListResult, type OrganizationAssetItem, type OrganizationAssetsListInput, type OrganizationAssetsListResult, type OrganizationBrandsListResult, type OrganizationMetricsIncludeField, type OrganizationMetricsInput, type OrganizationMetricsResult, type OrganizationMetricsResultMetrics, type OrganizationMetricsServicesFilter, type OrganizationMetricsVisibility, type OrganizationPortalVisibility, type OrganizationReportVisibility, type OrganizationReportsListInput, type OrganizationReportsListResult, type PendingApprovalService, type PendingServiceApproval, REPORT_REVIEW_DECISIONS, REPORT_STATUSES, type ReportAssetInput, type ReportCreateInput, type ReportCreateResult, type ReportReviewDecision, type ReportStatus, type ReportsSearchInput, type ReportsSearchResult, type ReportsSearchResultItem, TAKEDOWN_SORT_KEYS, TAKEDOWN_STATUSES, type TakedownItem, type TakedownSortKey, type TakedownStatus, type TakedownsListInput, type TakedownsListResult, type ThreatItem, type ThreatsListInput, type ThreatsListResult, type UserMeResult, type UserOrg, type UserOrgBrandMetadata, type UserOrgGetInput, type UserOrgGetResult, type UserOrgIntegrations, type UserOrgLegalDocument, type UserOrgLegalDocuments, type UserOrgPortalCustomization, type UserOrgTrademarkRegistration, type UserOrgsInput, type UserOrgsObligatoryAdminApprovalFilter, type UserOrgsPendingServiceApprovalFilter, type UserOrgsResult, type UserOrgsServiceFilters, type UserOrgsSubscriptionStatus, type ValidateApiKeyResult, WATCHLIST_FILTER_VALUES, type WatchlistFilterValue, parseIsoDate, parseIsoDateString, staticApiKey, staticBearerToken };
1263
+ export { ACTOR_KINDS, type ActorKind, type ApiClient, type ApiCredential, type AssetCheckInput, type AssetCheckResult, type AssetCheckSourceEntry, type AssetCheckStatus, type AssetGroupItem, type AssetListInput, type AssetListItem, type AssetListResult, type AssetSearchInput, type AssetSearchResult, type AssetSearchResultItem, type BrandItem, type BrandLegalDocument, type BrandLegalDocuments, type BrandTrademarkRegistrationItem, type BrandType, ChainPatrolApiClient, type ChainPatrolApiClientOptions, type ConfigEntry, type CredentialProvider, DETECTION_CONFIDENCE_LEVELS, DETECTION_REPORTED_FILTERS, type DetectionBrand, type DetectionConfidence, type DetectionConfigRunInput, type DetectionConfigRunResult, type DetectionConfigUpdateInput, type DetectionConfigUpdateResult, type DetectionConfigValidateInput, type DetectionConfigValidateResult, type DetectionDriftInput, type DetectionDriftResult, type DetectionListInput, type DetectionListItem, type DetectionListResult, type DetectionReportStatus, type DetectionReportedFilter, type DetectionSource, type HealthcheckCategory, type HealthcheckFinding, type HealthcheckRegistryEntry, type HealthcheckResult, type HealthcheckSeverity, type HealthchecksListResult, LIVENESS_FILTER_VALUES, LIVENESS_STATUSES, type LivenessFilterValue, type LivenessStatus, type MetricsBreakdownInput, type MetricsBreakdownResult, type MetricsFoundInput, type MetricsFoundResult, type MetricsSummaryInput, type MetricsSummaryResult, ORGANIZATION_METRICS_INCLUDE_FIELDS, type OperationsQueuesSnapshotInput, type OperationsQueuesSnapshotResult, type OrganizationAssetGroupsListResult, type OrganizationAssetItem, type OrganizationAssetsListInput, type OrganizationAssetsListResult, type OrganizationBrandsListResult, type OrganizationMetricsIncludeField, type OrganizationMetricsInput, type OrganizationMetricsResult, type OrganizationMetricsResultMetrics, type OrganizationMetricsServicesFilter, type OrganizationMetricsVisibility, type OrganizationPortalVisibility, type OrganizationReportAssetScan, type OrganizationReportAssetScanEnrichment, type OrganizationReportAttachment, type OrganizationReportVisibility, type OrganizationReportsListInput, type OrganizationReportsListResult, type PendingApprovalService, type PendingServiceApproval, REPORT_REVIEW_DECISIONS, REPORT_STATUSES, type ReportAssetInput, type ReportCreateInput, type ReportCreateResult, type ReportReviewDecision, type ReportStatus, type ReportsSearchInput, type ReportsSearchResult, type ReportsSearchResultItem, TAKEDOWN_SORT_KEYS, TAKEDOWN_STATUSES, type TakedownItem, type TakedownProviderRef, type TakedownSortKey, type TakedownStatus, type TakedownsListInput, type TakedownsListResult, type ThreatItem, type ThreatsListInput, type ThreatsListResult, type UserMeResult, type UserOrg, type UserOrgBrandMetadata, type UserOrgGetInput, type UserOrgGetResult, type UserOrgIntegrations, type UserOrgLegalDocument, type UserOrgLegalDocuments, type UserOrgPortalCustomization, type UserOrgTrademarkRegistration, type UserOrgsInput, type UserOrgsObligatoryAdminApprovalFilter, type UserOrgsPendingServiceApprovalFilter, type UserOrgsResult, type UserOrgsServiceFilters, type UserOrgsSubscriptionStatus, type ValidateApiKeyResult, WATCHLIST_FILTER_VALUES, type WatchlistFilterValue, parseIsoDate, parseIsoDateString, staticApiKey, staticBearerToken };
package/dist/api/index.js CHANGED
@@ -43,6 +43,7 @@ var __async = (__this, __arguments, generator) => {
43
43
  // src/api/types.ts
44
44
  var REPORT_REVIEW_DECISIONS = ["APPROVE", "REJECT", "SKIP", "ESCALATE"];
45
45
  var REPORT_STATUSES = ["TODO", "IN_PROGRESS", "CLOSED"];
46
+ var ACTOR_KINDS = ["human", "automation"];
46
47
  var DETECTION_CONFIDENCE_LEVELS = ["none", "low", "medium", "high"];
47
48
  var DETECTION_REPORTED_FILTERS = ["reported", "not_reported"];
48
49
  var LIVENESS_FILTER_VALUES = ["ALIVE", "DEAD", "UNKNOWN"];
@@ -111,6 +112,12 @@ var DEFAULT_TIMEOUT_MS = 3e4;
111
112
  function trimTrailingSlashes(url) {
112
113
  return url.replace(/\/+$/, "");
113
114
  }
115
+ function optionalBooleanParam(value) {
116
+ return value === void 0 ? void 0 : String(value);
117
+ }
118
+ function optionalNumberParam(value) {
119
+ return value === void 0 ? void 0 : String(value);
120
+ }
114
121
  function staticApiKey(key) {
115
122
  return () => ({ kind: "api-key", value: key });
116
123
  }
@@ -286,25 +293,28 @@ var ChainPatrolApiClient = class {
286
293
  }
287
294
  listOrganizationReports(input) {
288
295
  var _a, _b, _c, _d, _e;
289
- return this.request("/public/getOrganizationReports", {
296
+ return this.requestGet("/organization/reports", {
290
297
  slug: input.slug,
291
- limit: (_a = input.limit) != null ? _a : 10,
292
- cursor: input.cursor,
298
+ limit: String((_a = input.limit) != null ? _a : 10),
299
+ cursor: optionalNumberParam(input.cursor),
293
300
  status: input.status,
294
301
  searchQuery: input.searchQuery,
295
302
  reporterQuery: input.reporterQuery,
296
- reportedByCustomer: input.reportedByCustomer,
297
- excludeAutomation: input.excludeAutomation,
298
- onlyRejected: input.onlyRejected,
303
+ reportedByCustomer: optionalBooleanParam(input.reportedByCustomer),
304
+ excludeAutomation: optionalBooleanParam(input.excludeAutomation),
305
+ reporterKind: input.reporterKind,
306
+ reviewerKind: input.reviewerKind,
307
+ onlyRejected: optionalBooleanParam(input.onlyRejected),
299
308
  reviewStatuses: ((_b = input.reviewStatuses) == null ? void 0 : _b.length) ? input.reviewStatuses : void 0,
300
309
  assetTypes: ((_c = input.assetTypes) == null ? void 0 : _c.length) ? input.assetTypes : void 0,
301
- brandIds: ((_d = input.brandIds) == null ? void 0 : _d.length) ? input.brandIds : void 0,
310
+ brandIds: ((_d = input.brandIds) == null ? void 0 : _d.length) ? input.brandIds.map(String) : void 0,
302
311
  countryCodes: ((_e = input.countryCodes) == null ? void 0 : _e.length) ? input.countryCodes : void 0,
303
- reviewedByUserId: input.reviewedByUserId,
312
+ reviewedByUserId: optionalNumberParam(input.reviewedByUserId),
304
313
  startDate: parseIsoDateString(input.startDate),
305
314
  endDate: parseIsoDateString(input.endDate),
306
315
  updatedAtStartDate: parseIsoDateString(input.updatedAtStartDate),
307
- updatedAtEndDate: parseIsoDateString(input.updatedAtEndDate)
316
+ updatedAtEndDate: parseIsoDateString(input.updatedAtEndDate),
317
+ needsCustomerReview: optionalBooleanParam(input.needsCustomerReview)
308
318
  });
309
319
  }
310
320
  listTakedowns(input) {
@@ -457,6 +467,7 @@ var ChainPatrolApiClient = class {
457
467
  }
458
468
  };
459
469
 
470
+ exports.ACTOR_KINDS = ACTOR_KINDS;
460
471
  exports.ChainPatrolApiClient = ChainPatrolApiClient;
461
472
  exports.DETECTION_CONFIDENCE_LEVELS = DETECTION_CONFIDENCE_LEVELS;
462
473
  exports.DETECTION_REPORTED_FILTERS = DETECTION_REPORTED_FILTERS;