@signa-so/sdk 0.7.0 → 0.8.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/README.md +44 -3
- package/dist/_internals/fetch-with-retry.d.ts +0 -2
- package/dist/_internals/fetch-with-retry.d.ts.map +1 -1
- package/dist/_internals/fetch-with-retry.js +1 -6
- package/dist/_internals/fetch-with-retry.js.map +1 -1
- package/dist/generated/api-types.d.ts +149 -606
- package/dist/generated/api-types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/resource.d.ts +0 -2
- package/dist/resource.d.ts.map +1 -1
- package/dist/resource.js +0 -10
- package/dist/resource.js.map +1 -1
- package/dist/resources/trademarks.d.ts +28 -28
- package/dist/resources/trademarks.d.ts.map +1 -1
- package/dist/resources/trademarks.js +29 -44
- package/dist/resources/trademarks.js.map +1 -1
- package/dist/types.d.ts +5 -26
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -335,7 +335,7 @@ export interface paths {
|
|
|
335
335
|
};
|
|
336
336
|
get?: never;
|
|
337
337
|
put?: never;
|
|
338
|
-
/** @description INTERNAL/beta — requires the `image-search:read` scope (internal + design-partner keys only until GA). Search trademarks by logo/image similarity. Accepts a multipart `image` upload, an `{image_url}` (https, SSRF-guarded), or a `{media_id}` (reuse an existing mark logo). Returns mark-level hits with named signal channels + thumbnails.
|
|
338
|
+
/** @description INTERNAL/beta — requires the `image-search:read` scope (internal + design-partner keys only until GA). Search trademarks by logo/image similarity. Accepts a multipart `image` upload, an `{image_url}` (https, SSRF-guarded), or a `{media_id}` (reuse an existing mark logo). Returns mark-level hits with named signal channels + thumbnails. Metered as `image_search`: **0 credits by default** while the image index is being built, 5 credits once image-search billing is enabled. Zero-billed calls carry no `X-Credits-*` headers (nothing is debited). Bounded top-K (limit ≤ 100). The query image is never stored. */
|
|
339
339
|
post: operations["searchTrademarksByImage"];
|
|
340
340
|
delete?: never;
|
|
341
341
|
options?: never;
|
|
@@ -467,66 +467,15 @@ export interface paths {
|
|
|
467
467
|
patch?: never;
|
|
468
468
|
trace?: never;
|
|
469
469
|
};
|
|
470
|
-
"/v1/trademarks/{id}/
|
|
470
|
+
"/v1/trademarks/{id}/events": {
|
|
471
471
|
parameters: {
|
|
472
472
|
query?: never;
|
|
473
473
|
header?: never;
|
|
474
474
|
path?: never;
|
|
475
475
|
cookie?: never;
|
|
476
476
|
};
|
|
477
|
-
/** @description Paginated prosecution event timeline, reverse chronological
|
|
478
|
-
get: operations["
|
|
479
|
-
put?: never;
|
|
480
|
-
post?: never;
|
|
481
|
-
delete?: never;
|
|
482
|
-
options?: never;
|
|
483
|
-
head?: never;
|
|
484
|
-
patch?: never;
|
|
485
|
-
trace?: never;
|
|
486
|
-
};
|
|
487
|
-
"/v1/trademarks/{id}/changes": {
|
|
488
|
-
parameters: {
|
|
489
|
-
query?: never;
|
|
490
|
-
header?: never;
|
|
491
|
-
path?: never;
|
|
492
|
-
cookie?: never;
|
|
493
|
-
};
|
|
494
|
-
/** @description Version-level change history from the trademark_changes ledger, reverse chronological. This is an OBSERVED-changes feed: each entry records a mutation Signa observed to the record (office re-ingest diffs, Madrid ir_id link/unlink, retractions), not the office's own filing history. Entries are retained for a rolling 12-month window; older changes are pruned. The top-level `observed_since` field is the record's first-observation date (when Signa first ingested it) — the effective start of the visible history is max(observed_since, now − 12 months). */
|
|
495
|
-
get: operations["listTrademarkChanges"];
|
|
496
|
-
put?: never;
|
|
497
|
-
post?: never;
|
|
498
|
-
delete?: never;
|
|
499
|
-
options?: never;
|
|
500
|
-
head?: never;
|
|
501
|
-
patch?: never;
|
|
502
|
-
trace?: never;
|
|
503
|
-
};
|
|
504
|
-
"/v1/trademarks/{id}/related": {
|
|
505
|
-
parameters: {
|
|
506
|
-
query?: never;
|
|
507
|
-
header?: never;
|
|
508
|
-
path?: never;
|
|
509
|
-
cookie?: never;
|
|
510
|
-
};
|
|
511
|
-
/** @description Mark-to-mark relationships: Madrid designations, divisionals, seniority claims. Maps to trademark_relationship table. */
|
|
512
|
-
get: operations["listTrademarkRelated"];
|
|
513
|
-
put?: never;
|
|
514
|
-
post?: never;
|
|
515
|
-
delete?: never;
|
|
516
|
-
options?: never;
|
|
517
|
-
head?: never;
|
|
518
|
-
patch?: never;
|
|
519
|
-
trace?: never;
|
|
520
|
-
};
|
|
521
|
-
"/v1/trademarks/{id}/source": {
|
|
522
|
-
parameters: {
|
|
523
|
-
query?: never;
|
|
524
|
-
header?: never;
|
|
525
|
-
path?: never;
|
|
526
|
-
cookie?: never;
|
|
527
|
-
};
|
|
528
|
-
/** @description Raw-record provenance metadata. Returns where the data came from and when. Falls back to trademark-record metadata when no raw-record version is available — in that case some fields (e.g. the full raw payload reference and response-type classification) are omitted but the response is still 200. Only returns 404 when the trademark itself does not exist. */
|
|
529
|
-
get: operations["getTrademarkSource"];
|
|
477
|
+
/** @description Paginated prosecution event timeline for THIS mark, reverse chronological (maps to the trademark_event table): filings, publications, registrations, status changes. This is the office-reported history of a single trademark — not the org-level `/v1/events` activity feed. */
|
|
478
|
+
get: operations["listTrademarkEvents"];
|
|
530
479
|
put?: never;
|
|
531
480
|
post?: never;
|
|
532
481
|
delete?: never;
|
|
@@ -586,40 +535,6 @@ export interface paths {
|
|
|
586
535
|
patch?: never;
|
|
587
536
|
trace?: never;
|
|
588
537
|
};
|
|
589
|
-
"/v1/trademarks/{id}/coverage": {
|
|
590
|
-
parameters: {
|
|
591
|
-
query?: never;
|
|
592
|
-
header?: never;
|
|
593
|
-
path?: never;
|
|
594
|
-
cookie?: never;
|
|
595
|
-
};
|
|
596
|
-
/** @description Madrid designation territories. Maps to trademark_coverage table. Meaningful only for marks with filing_route = madrid_ir. */
|
|
597
|
-
get: operations["listTrademarkCoverage"];
|
|
598
|
-
put?: never;
|
|
599
|
-
post?: never;
|
|
600
|
-
delete?: never;
|
|
601
|
-
options?: never;
|
|
602
|
-
head?: never;
|
|
603
|
-
patch?: never;
|
|
604
|
-
trace?: never;
|
|
605
|
-
};
|
|
606
|
-
"/v1/trademarks/{id}/media/{mediaId}": {
|
|
607
|
-
parameters: {
|
|
608
|
-
query?: never;
|
|
609
|
-
header?: never;
|
|
610
|
-
path?: never;
|
|
611
|
-
cookie?: never;
|
|
612
|
-
};
|
|
613
|
-
/** @description Proxy endpoint serving trademark images. Fetches the image server-side from the upstream office or CDN and streams it back. Unauthenticated — suitable for use in <img> tags. */
|
|
614
|
-
get: operations["getTrademarkMedia"];
|
|
615
|
-
put?: never;
|
|
616
|
-
post?: never;
|
|
617
|
-
delete?: never;
|
|
618
|
-
options?: never;
|
|
619
|
-
head?: never;
|
|
620
|
-
patch?: never;
|
|
621
|
-
trace?: never;
|
|
622
|
-
};
|
|
623
538
|
"/v1/owners/{id}/analytics": {
|
|
624
539
|
parameters: {
|
|
625
540
|
query?: never;
|
|
@@ -1556,6 +1471,118 @@ export interface paths {
|
|
|
1556
1471
|
export type webhooks = Record<string, never>;
|
|
1557
1472
|
export interface components {
|
|
1558
1473
|
schemas: {
|
|
1474
|
+
SourceRecordRef: {
|
|
1475
|
+
/** @example WO */
|
|
1476
|
+
source_office_code: string | null;
|
|
1477
|
+
/** @example US */
|
|
1478
|
+
territory_code: string | null;
|
|
1479
|
+
trademark?: {
|
|
1480
|
+
id: string;
|
|
1481
|
+
href: string;
|
|
1482
|
+
};
|
|
1483
|
+
};
|
|
1484
|
+
DetailCoverageTerritory: {
|
|
1485
|
+
/** @example US */
|
|
1486
|
+
territory: string;
|
|
1487
|
+
/** @example active */
|
|
1488
|
+
primary: string;
|
|
1489
|
+
/** @example registered */
|
|
1490
|
+
stage: string;
|
|
1491
|
+
/** @example protected */
|
|
1492
|
+
protection_status: string | null;
|
|
1493
|
+
/** @example 2024-06-01 */
|
|
1494
|
+
designation_date: string | null;
|
|
1495
|
+
/** @example 2025-01-20 */
|
|
1496
|
+
protection_date: string | null;
|
|
1497
|
+
/**
|
|
1498
|
+
* @description The designation record covering this territory. Always present.
|
|
1499
|
+
* @example tm_7d4e1f2a-3b8c-4d0e-9f1a-2b3c4d5e6f70
|
|
1500
|
+
*/
|
|
1501
|
+
trademark_id: string;
|
|
1502
|
+
/** @example United States of America */
|
|
1503
|
+
territory_name: string | null;
|
|
1504
|
+
/** @example 2025-03-11 */
|
|
1505
|
+
refusal_date: string | null;
|
|
1506
|
+
/** @example 2025-06-01 */
|
|
1507
|
+
status_effective_date: string | null;
|
|
1508
|
+
/** @example false */
|
|
1509
|
+
is_subsequent_designation: boolean | null;
|
|
1510
|
+
/** @example madrid_protocol */
|
|
1511
|
+
designation_protocol: string | null;
|
|
1512
|
+
/** @description Reconciliation alternates for a dual-feed territory (the WIPO-feed record folded into a winning national-feed record, or vice versa). Empty for a single-feed territory. */
|
|
1513
|
+
source_records: components["schemas"]["SourceRecordRef"][];
|
|
1514
|
+
};
|
|
1515
|
+
DetailCoverage: {
|
|
1516
|
+
/** @example 50 */
|
|
1517
|
+
territory_count: number;
|
|
1518
|
+
/**
|
|
1519
|
+
* @example {
|
|
1520
|
+
* "active": 46,
|
|
1521
|
+
* "pending": 2,
|
|
1522
|
+
* "inactive": 2
|
|
1523
|
+
* }
|
|
1524
|
+
*/
|
|
1525
|
+
by_primary: {
|
|
1526
|
+
[key: string]: number;
|
|
1527
|
+
};
|
|
1528
|
+
/**
|
|
1529
|
+
* @example {
|
|
1530
|
+
* "registered": 46,
|
|
1531
|
+
* "pending": 2,
|
|
1532
|
+
* "refused": 2
|
|
1533
|
+
* }
|
|
1534
|
+
*/
|
|
1535
|
+
by_stage: {
|
|
1536
|
+
[key: string]: number;
|
|
1537
|
+
};
|
|
1538
|
+
territories: components["schemas"]["DetailCoverageTerritory"][];
|
|
1539
|
+
};
|
|
1540
|
+
TrademarkRelationship: {
|
|
1541
|
+
/** @example based_on_basic_registration */
|
|
1542
|
+
type: string;
|
|
1543
|
+
/**
|
|
1544
|
+
* @example child
|
|
1545
|
+
* @enum {string}
|
|
1546
|
+
*/
|
|
1547
|
+
direction: "child" | "parent";
|
|
1548
|
+
/** @example tm_7d4e1f2a-3b8c-4d0e-9f1a-2b3c4d5e6f70 */
|
|
1549
|
+
trademark_id: string | null;
|
|
1550
|
+
/**
|
|
1551
|
+
* @description ST.3 office code of the counterpart as reported by the office. Null on `parent` edges (the counterpart is identified by `trademark_id`).
|
|
1552
|
+
* @example US
|
|
1553
|
+
*/
|
|
1554
|
+
target_office_code: string | null;
|
|
1555
|
+
/**
|
|
1556
|
+
* @description Office-native identifier of the counterpart. Null on `parent` edges (the counterpart is identified by `trademark_id`).
|
|
1557
|
+
* @example 97123456
|
|
1558
|
+
*/
|
|
1559
|
+
target_record_id: string | null;
|
|
1560
|
+
/** @example US */
|
|
1561
|
+
office_code: string | null;
|
|
1562
|
+
/** @example SIGNA */
|
|
1563
|
+
mark_text: string | null;
|
|
1564
|
+
/** @example registered */
|
|
1565
|
+
status_stage: string | null;
|
|
1566
|
+
/** @example 2024-03-15 */
|
|
1567
|
+
effective_date: string | null;
|
|
1568
|
+
};
|
|
1569
|
+
Provenance: {
|
|
1570
|
+
/**
|
|
1571
|
+
* @description Date of the office data file/response this record was built from.
|
|
1572
|
+
* @example 2026-03-18
|
|
1573
|
+
*/
|
|
1574
|
+
source_data_date: string | null;
|
|
1575
|
+
/**
|
|
1576
|
+
* @description The office's own last-modified timestamp for the record, when it publishes one.
|
|
1577
|
+
* @example 2026-03-17T00:00:00Z
|
|
1578
|
+
*/
|
|
1579
|
+
office_updated_at: string | null;
|
|
1580
|
+
/**
|
|
1581
|
+
* @description When Signa last fetched the full detail record from the office.
|
|
1582
|
+
* @example 2026-03-18T04:00:00Z
|
|
1583
|
+
*/
|
|
1584
|
+
retrieved_at: string | null;
|
|
1585
|
+
};
|
|
1559
1586
|
TrademarkDetailV1: {
|
|
1560
1587
|
/** @example tm_7d4e1f2a3b8c9d0e */
|
|
1561
1588
|
id: string;
|
|
@@ -1620,16 +1647,6 @@ export interface components {
|
|
|
1620
1647
|
publication_date: string | null;
|
|
1621
1648
|
priority_date: string | null;
|
|
1622
1649
|
termination_date: string | null;
|
|
1623
|
-
/**
|
|
1624
|
-
* @description Timestamp reported by the source office for the record, when available.
|
|
1625
|
-
* @example 2026-03-18T04:00:00Z
|
|
1626
|
-
*/
|
|
1627
|
-
office_updated_at: string | null;
|
|
1628
|
-
/**
|
|
1629
|
-
* @description Timestamp of the most recent detail enrichment fetch when that office populates it; null otherwise.
|
|
1630
|
-
* @example 2026-03-18T04:30:00Z
|
|
1631
|
-
*/
|
|
1632
|
-
retrieved_at: string | null;
|
|
1633
1650
|
protection_effective_date: string | null;
|
|
1634
1651
|
designation_date: string | null;
|
|
1635
1652
|
dependency_period_end_date: string | null;
|
|
@@ -1899,29 +1916,18 @@ export interface components {
|
|
|
1899
1916
|
} | null;
|
|
1900
1917
|
} | null;
|
|
1901
1918
|
has_media: boolean;
|
|
1919
|
+
/**
|
|
1920
|
+
* @description Media-proxy URL for the primary mark image. Null when the mark has no media.
|
|
1921
|
+
* @example https://api.signa.so/v1/trademarks/tm_abc/media/01234567-89ab-cdef-0123-456789abcdef
|
|
1922
|
+
*/
|
|
1923
|
+
primary_image_url: string | null;
|
|
1924
|
+
/** @description Per-territory coverage for a grouped Madrid IR (the same reconciled rollup the search row carries, plus per-designation detail). Null on designation legs and on direct/regional marks. */
|
|
1925
|
+
coverage: components["schemas"]["DetailCoverage"] | null;
|
|
1926
|
+
/** @description Mark-to-mark relationships. Excludes Madrid designations (see coverage.territories[]) and seniority claims (see seniority_claims[]). Capped at 200 per mark. */
|
|
1927
|
+
relationships: components["schemas"]["TrademarkRelationship"][];
|
|
1902
1928
|
events_count: number;
|
|
1903
1929
|
proceedings_count: number;
|
|
1904
|
-
|
|
1905
|
-
relationships_count: number;
|
|
1906
|
-
data_freshness: {
|
|
1907
|
-
/** @example 2026-03-18 */
|
|
1908
|
-
source_data_date: string | null;
|
|
1909
|
-
/** @example dtd_v2.0 */
|
|
1910
|
-
source_format: string | null;
|
|
1911
|
-
/** @example 2026-03-18T04:00:00Z */
|
|
1912
|
-
last_updated_at: string;
|
|
1913
|
-
};
|
|
1914
|
-
madrid?: {
|
|
1915
|
-
ir_number: string;
|
|
1916
|
-
holder_name: string | null;
|
|
1917
|
-
origin_office: string | null;
|
|
1918
|
-
expiry_date: string | null;
|
|
1919
|
-
designation_count: number;
|
|
1920
|
-
designated_countries: string[];
|
|
1921
|
-
nice_classes: number[];
|
|
1922
|
-
status_stage: string | null;
|
|
1923
|
-
fetched_at: string | null;
|
|
1924
|
-
} | null;
|
|
1930
|
+
provenance: components["schemas"]["Provenance"];
|
|
1925
1931
|
/** @example 2024-03-16T00:00:00Z */
|
|
1926
1932
|
created_at: string;
|
|
1927
1933
|
/** @example 2026-03-18T04:00:00Z */
|
|
@@ -2096,18 +2102,6 @@ export interface components {
|
|
|
2096
2102
|
/** @example 2025-01-20 */
|
|
2097
2103
|
protection_date: string | null;
|
|
2098
2104
|
}[];
|
|
2099
|
-
/** @example /v1/trademarks/tm_IR1293856/coverage */
|
|
2100
|
-
href: string;
|
|
2101
|
-
};
|
|
2102
|
-
SourceRecordRef: {
|
|
2103
|
-
/** @example WO */
|
|
2104
|
-
source_office_code: string | null;
|
|
2105
|
-
/** @example US */
|
|
2106
|
-
territory_code: string | null;
|
|
2107
|
-
trademark?: {
|
|
2108
|
-
id: string;
|
|
2109
|
-
href: string;
|
|
2110
|
-
};
|
|
2111
2105
|
};
|
|
2112
2106
|
TerritoryMatch: {
|
|
2113
2107
|
/**
|
|
@@ -3511,7 +3505,7 @@ export interface components {
|
|
|
3511
3505
|
international_registrations: "grouped" | "expanded";
|
|
3512
3506
|
/**
|
|
3513
3507
|
* @description Present when a grouped request falls back to expanded because a filter, sort, or option cannot be served by the grouped index.
|
|
3514
|
-
* @example filter:
|
|
3508
|
+
* @example filter:filing_date forced expanded
|
|
3515
3509
|
*/
|
|
3516
3510
|
fallback_reason?: string;
|
|
3517
3511
|
/**
|
|
@@ -3575,7 +3569,11 @@ export interface components {
|
|
|
3575
3569
|
aggregation_metadata?: components["schemas"]["AggregationMetadata"];
|
|
3576
3570
|
request_id: string;
|
|
3577
3571
|
};
|
|
3578
|
-
|
|
3572
|
+
TrademarkEvent: {
|
|
3573
|
+
/** @example evt_7d4e1f2a-3b8c-4d0e-9f1a-2b3c4d5e6f70 */
|
|
3574
|
+
id: string;
|
|
3575
|
+
/** @enum {string} */
|
|
3576
|
+
object: "event";
|
|
3579
3577
|
/** @example 2025-01-20 */
|
|
3580
3578
|
event_date: string | null;
|
|
3581
3579
|
/** @example registration */
|
|
@@ -3599,108 +3597,10 @@ export interface components {
|
|
|
3599
3597
|
/** @example 12 */
|
|
3600
3598
|
sequence_no: number | null;
|
|
3601
3599
|
};
|
|
3602
|
-
|
|
3603
|
-
/** @enum {string} */
|
|
3604
|
-
object: "list";
|
|
3605
|
-
data: components["schemas"]["TrademarkHistoryEvent"][];
|
|
3606
|
-
has_more: boolean;
|
|
3607
|
-
pagination: {
|
|
3608
|
-
cursor: string | null;
|
|
3609
|
-
total_count?: number;
|
|
3610
|
-
total_count_approximate?: boolean;
|
|
3611
|
-
};
|
|
3612
|
-
request_id: string;
|
|
3613
|
-
};
|
|
3614
|
-
TrademarkChange: {
|
|
3615
|
-
/** @example evt_019d2141-6ce9-771b-872e-bc8b20e49fcf */
|
|
3616
|
-
id: string;
|
|
3617
|
-
/** @enum {string} */
|
|
3618
|
-
object: "trademark_change";
|
|
3619
|
-
/** @example 12 */
|
|
3620
|
-
version: number;
|
|
3621
|
-
/** @example updated */
|
|
3622
|
-
change_type: string;
|
|
3623
|
-
/**
|
|
3624
|
-
* @example [
|
|
3625
|
-
* "status_stage",
|
|
3626
|
-
* "registration_date"
|
|
3627
|
-
* ]
|
|
3628
|
-
*/
|
|
3629
|
-
changed_fields: string[];
|
|
3630
|
-
/**
|
|
3631
|
-
* @example {
|
|
3632
|
-
* "status_stage": "examining",
|
|
3633
|
-
* "registration_date": null
|
|
3634
|
-
* }
|
|
3635
|
-
*/
|
|
3636
|
-
old_values: {
|
|
3637
|
-
[key: string]: string | number | boolean | unknown[] | {
|
|
3638
|
-
[key: string]: unknown;
|
|
3639
|
-
} | null;
|
|
3640
|
-
} | null;
|
|
3641
|
-
/**
|
|
3642
|
-
* @example {
|
|
3643
|
-
* "status_stage": "registered",
|
|
3644
|
-
* "registration_date": "2026-03-15"
|
|
3645
|
-
* }
|
|
3646
|
-
*/
|
|
3647
|
-
new_values: {
|
|
3648
|
-
[key: string]: string | number | boolean | unknown[] | {
|
|
3649
|
-
[key: string]: unknown;
|
|
3650
|
-
} | null;
|
|
3651
|
-
};
|
|
3652
|
-
/** @example 2026-03-15 */
|
|
3653
|
-
source_data_date: string | null;
|
|
3654
|
-
/** @example US */
|
|
3655
|
-
office_code: string | null;
|
|
3656
|
-
/** @example 2026-03-15T12:00:00Z */
|
|
3657
|
-
created_at: string;
|
|
3658
|
-
};
|
|
3659
|
-
TrademarkChangesResponse: {
|
|
3660
|
-
/** @enum {string} */
|
|
3661
|
-
object: "list";
|
|
3662
|
-
data: components["schemas"]["TrademarkChange"][];
|
|
3663
|
-
has_more: boolean;
|
|
3664
|
-
pagination: {
|
|
3665
|
-
cursor: string | null;
|
|
3666
|
-
total_count?: number;
|
|
3667
|
-
total_count_approximate?: boolean;
|
|
3668
|
-
};
|
|
3669
|
-
/**
|
|
3670
|
-
* Format: date-time
|
|
3671
|
-
* @description ISO 8601 date-time the trademark was first observed by Signa (first ingest). Changes older than the rolling 12-month retention window are pruned.
|
|
3672
|
-
*/
|
|
3673
|
-
observed_since: string | null;
|
|
3674
|
-
request_id: string;
|
|
3675
|
-
};
|
|
3676
|
-
TrademarkRelated: {
|
|
3677
|
-
/** @example tm_xyz */
|
|
3678
|
-
related_trademark_id: string | null;
|
|
3679
|
-
/** @example madrid_designation_of */
|
|
3680
|
-
relationship_type: string;
|
|
3681
|
-
/** @example 2024-06-01 */
|
|
3682
|
-
effective_date: string | null;
|
|
3683
|
-
/** @example SIGNA */
|
|
3684
|
-
mark_text: string | null;
|
|
3685
|
-
/** @example EM */
|
|
3686
|
-
office_code: string | null;
|
|
3687
|
-
/** @example registered */
|
|
3688
|
-
status_stage: string | null;
|
|
3689
|
-
/** @example child */
|
|
3690
|
-
direction: string;
|
|
3691
|
-
/** @example null */
|
|
3692
|
-
target_office_code: string | null;
|
|
3693
|
-
/** @example null */
|
|
3694
|
-
target_record_id: string | null;
|
|
3695
|
-
/** @example null */
|
|
3696
|
-
metadata: string | number | boolean | unknown[] | {
|
|
3697
|
-
[key: string]: unknown;
|
|
3698
|
-
} | null;
|
|
3699
|
-
};
|
|
3700
|
-
TrademarkRelatedResponse: {
|
|
3600
|
+
TrademarkEventsResponse: {
|
|
3701
3601
|
/** @enum {string} */
|
|
3702
3602
|
object: "list";
|
|
3703
|
-
data: components["schemas"]["
|
|
3603
|
+
data: components["schemas"]["TrademarkEvent"][];
|
|
3704
3604
|
has_more: boolean;
|
|
3705
3605
|
pagination: {
|
|
3706
3606
|
cursor: string | null;
|
|
@@ -3709,27 +3609,6 @@ export interface components {
|
|
|
3709
3609
|
};
|
|
3710
3610
|
request_id: string;
|
|
3711
3611
|
};
|
|
3712
|
-
TrademarkSource: {
|
|
3713
|
-
/** @enum {string} */
|
|
3714
|
-
object: "trademark_source";
|
|
3715
|
-
/** @example tm_abc */
|
|
3716
|
-
trademark_id: string;
|
|
3717
|
-
/** @example US */
|
|
3718
|
-
office_code: string | null;
|
|
3719
|
-
/** @example 2026-03-18T04:00:00Z */
|
|
3720
|
-
observed_at: string;
|
|
3721
|
-
/** @example dtd_v2.0 */
|
|
3722
|
-
source_format: string;
|
|
3723
|
-
/** @example daily_bulk_xml */
|
|
3724
|
-
source_response_type: string | null;
|
|
3725
|
-
/** @example apc18840407-20251231-01.zip/entry-1234.xml */
|
|
3726
|
-
source_locator: string | null;
|
|
3727
|
-
/** @example sha256:a1b2c3d4... */
|
|
3728
|
-
payload_hash: string;
|
|
3729
|
-
};
|
|
3730
|
-
TrademarkSourceResponse: components["schemas"]["TrademarkSource"] & {
|
|
3731
|
-
request_id: string;
|
|
3732
|
-
};
|
|
3733
3612
|
TrademarkProceedingParty: {
|
|
3734
3613
|
/** @example own_xyz */
|
|
3735
3614
|
owner_id: string | null;
|
|
@@ -3930,57 +3809,6 @@ export interface components {
|
|
|
3930
3809
|
source_sync: components["schemas"]["TrademarkDocumentSourceSync"];
|
|
3931
3810
|
request_id: string;
|
|
3932
3811
|
};
|
|
3933
|
-
TrademarkCoverage: {
|
|
3934
|
-
/** @example GB */
|
|
3935
|
-
territory_code: string | null;
|
|
3936
|
-
/** @example United Kingdom */
|
|
3937
|
-
territory_name: string | null;
|
|
3938
|
-
/** @example active */
|
|
3939
|
-
primary: string | null;
|
|
3940
|
-
/** @example registered */
|
|
3941
|
-
stage: string | null;
|
|
3942
|
-
/** @example protected */
|
|
3943
|
-
protection_status: string | null;
|
|
3944
|
-
/** @example 2024-06-01 */
|
|
3945
|
-
designation_date: string | null;
|
|
3946
|
-
/** @example 2025-02-15 */
|
|
3947
|
-
protection_date: string | null;
|
|
3948
|
-
/** @example null */
|
|
3949
|
-
refusal_date: string | null;
|
|
3950
|
-
/** @example 2025-02-15 */
|
|
3951
|
-
status_effective_date: string | null;
|
|
3952
|
-
/** @example false */
|
|
3953
|
-
is_subsequent_designation: boolean | null;
|
|
3954
|
-
/** @example madrid */
|
|
3955
|
-
designation_protocol: string | null;
|
|
3956
|
-
/** @example null */
|
|
3957
|
-
goods_limitations: string | number | boolean | unknown[] | {
|
|
3958
|
-
[key: string]: unknown;
|
|
3959
|
-
} | null;
|
|
3960
|
-
/** @example null */
|
|
3961
|
-
status_detail: string | number | boolean | unknown[] | {
|
|
3962
|
-
[key: string]: unknown;
|
|
3963
|
-
} | null;
|
|
3964
|
-
/** @description WIPO/national reconciliation alternates for this territory (§12.1) on grouped IR-parent rows — additive, never a duplicate row. Empty/absent for single-feed territories and non-IR marks. */
|
|
3965
|
-
source_records?: {
|
|
3966
|
-
/** @example WO */
|
|
3967
|
-
source_office_code: string | null;
|
|
3968
|
-
/** @example US */
|
|
3969
|
-
territory_code: string | null;
|
|
3970
|
-
}[];
|
|
3971
|
-
};
|
|
3972
|
-
TrademarkCoverageResponse: {
|
|
3973
|
-
/** @enum {string} */
|
|
3974
|
-
object: "list";
|
|
3975
|
-
data: components["schemas"]["TrademarkCoverage"][];
|
|
3976
|
-
has_more: boolean;
|
|
3977
|
-
pagination: {
|
|
3978
|
-
cursor: string | null;
|
|
3979
|
-
total_count?: number;
|
|
3980
|
-
total_count_approximate?: boolean;
|
|
3981
|
-
};
|
|
3982
|
-
request_id: string;
|
|
3983
|
-
};
|
|
3984
3812
|
AnalyticsPortfolioBlock: {
|
|
3985
3813
|
mark_count: number;
|
|
3986
3814
|
active_count: number;
|
|
@@ -4395,7 +4223,7 @@ export interface components {
|
|
|
4395
4223
|
international_registrations: "grouped" | "expanded";
|
|
4396
4224
|
/**
|
|
4397
4225
|
* @description Present when a grouped request falls back to expanded because a filter, sort, or option cannot be served by the grouped index.
|
|
4398
|
-
* @example filter:
|
|
4226
|
+
* @example filter:filing_date forced expanded
|
|
4399
4227
|
*/
|
|
4400
4228
|
fallback_reason?: string;
|
|
4401
4229
|
/**
|
|
@@ -4633,7 +4461,7 @@ export interface components {
|
|
|
4633
4461
|
international_registrations: "grouped" | "expanded";
|
|
4634
4462
|
/**
|
|
4635
4463
|
* @description Present when a grouped request falls back to expanded because a filter, sort, or option cannot be served by the grouped index.
|
|
4636
|
-
* @example filter:
|
|
4464
|
+
* @example filter:filing_date forced expanded
|
|
4637
4465
|
*/
|
|
4638
4466
|
fallback_reason?: string;
|
|
4639
4467
|
/**
|
|
@@ -4872,7 +4700,7 @@ export interface components {
|
|
|
4872
4700
|
international_registrations: "grouped" | "expanded";
|
|
4873
4701
|
/**
|
|
4874
4702
|
* @description Present when a grouped request falls back to expanded because a filter, sort, or option cannot be served by the grouped index.
|
|
4875
|
-
* @example filter:
|
|
4703
|
+
* @example filter:filing_date forced expanded
|
|
4876
4704
|
*/
|
|
4877
4705
|
fallback_reason?: string;
|
|
4878
4706
|
/**
|
|
@@ -5167,7 +4995,7 @@ export interface components {
|
|
|
5167
4995
|
international_registrations: "grouped" | "expanded";
|
|
5168
4996
|
/**
|
|
5169
4997
|
* @description Present when a grouped request falls back to expanded because a filter, sort, or option cannot be served by the grouped index.
|
|
5170
|
-
* @example filter:
|
|
4998
|
+
* @example filter:filing_date forced expanded
|
|
5171
4999
|
*/
|
|
5172
5000
|
fallback_reason?: string;
|
|
5173
5001
|
/**
|
|
@@ -6396,6 +6224,8 @@ export interface components {
|
|
|
6396
6224
|
*/
|
|
6397
6225
|
status: "active" | "revoked" | "expired";
|
|
6398
6226
|
expires_at: string | null;
|
|
6227
|
+
/** @description When this key was rotated (superseded). Non-null means expires_at is a rotation grace deadline, not a customer-set expiry. */
|
|
6228
|
+
rotated_at: string | null;
|
|
6399
6229
|
last_used_at: string | null;
|
|
6400
6230
|
metadata: {
|
|
6401
6231
|
[key: string]: string;
|
|
@@ -6427,6 +6257,8 @@ export interface components {
|
|
|
6427
6257
|
*/
|
|
6428
6258
|
status: "active" | "revoked" | "expired";
|
|
6429
6259
|
expires_at: string | null;
|
|
6260
|
+
/** @description When this key was rotated (superseded). Non-null means expires_at is a rotation grace deadline, not a customer-set expiry. */
|
|
6261
|
+
rotated_at: string | null;
|
|
6430
6262
|
last_used_at: string | null;
|
|
6431
6263
|
metadata: {
|
|
6432
6264
|
[key: string]: string;
|
|
@@ -6577,16 +6409,19 @@ export interface components {
|
|
|
6577
6409
|
StripeCheckoutSessionResponse: {
|
|
6578
6410
|
checkout_url: string | null;
|
|
6579
6411
|
session_id: string;
|
|
6412
|
+
request_id: string;
|
|
6580
6413
|
};
|
|
6581
6414
|
StripeBillingPortalResponse: {
|
|
6582
6415
|
portal_url: string;
|
|
6583
6416
|
session_id: string;
|
|
6417
|
+
request_id: string;
|
|
6584
6418
|
};
|
|
6585
6419
|
StripeCreditPackCheckoutResponse: {
|
|
6586
6420
|
checkout_url: string | null;
|
|
6587
6421
|
session_id: string;
|
|
6588
6422
|
credits: number;
|
|
6589
6423
|
plan: string;
|
|
6424
|
+
request_id: string;
|
|
6590
6425
|
};
|
|
6591
6426
|
AutoTopUpConfigResponse: {
|
|
6592
6427
|
enabled: boolean;
|
|
@@ -6597,6 +6432,7 @@ export interface components {
|
|
|
6597
6432
|
saved_payment_method: string | null;
|
|
6598
6433
|
month_to_date_spend_usd: number;
|
|
6599
6434
|
last_failure_reason: string | null;
|
|
6435
|
+
request_id: string;
|
|
6600
6436
|
};
|
|
6601
6437
|
NotificationCategory: {
|
|
6602
6438
|
key: string;
|
|
@@ -8398,7 +8234,7 @@ export interface operations {
|
|
|
8398
8234
|
};
|
|
8399
8235
|
};
|
|
8400
8236
|
};
|
|
8401
|
-
|
|
8237
|
+
listTrademarkEvents: {
|
|
8402
8238
|
parameters: {
|
|
8403
8239
|
query?: {
|
|
8404
8240
|
event_type?: string[] | null;
|
|
@@ -8416,196 +8252,13 @@ export interface operations {
|
|
|
8416
8252
|
};
|
|
8417
8253
|
requestBody?: never;
|
|
8418
8254
|
responses: {
|
|
8419
|
-
/** @description Trademark
|
|
8420
|
-
200: {
|
|
8421
|
-
headers: {
|
|
8422
|
-
[name: string]: unknown;
|
|
8423
|
-
};
|
|
8424
|
-
content: {
|
|
8425
|
-
"application/json": components["schemas"]["TrademarkHistoryResponse"];
|
|
8426
|
-
};
|
|
8427
|
-
};
|
|
8428
|
-
/** @description Invalid ID */
|
|
8429
|
-
400: {
|
|
8430
|
-
headers: {
|
|
8431
|
-
[name: string]: unknown;
|
|
8432
|
-
};
|
|
8433
|
-
content: {
|
|
8434
|
-
"application/json": components["schemas"]["Error"];
|
|
8435
|
-
};
|
|
8436
|
-
};
|
|
8437
|
-
/** @description Missing or invalid API key */
|
|
8438
|
-
401: {
|
|
8439
|
-
headers: {
|
|
8440
|
-
[name: string]: unknown;
|
|
8441
|
-
};
|
|
8442
|
-
content: {
|
|
8443
|
-
"application/json": components["schemas"]["Error"];
|
|
8444
|
-
};
|
|
8445
|
-
};
|
|
8446
|
-
/** @description Missing required scope */
|
|
8447
|
-
403: {
|
|
8448
|
-
headers: {
|
|
8449
|
-
[name: string]: unknown;
|
|
8450
|
-
};
|
|
8451
|
-
content: {
|
|
8452
|
-
"application/json": components["schemas"]["Error"];
|
|
8453
|
-
};
|
|
8454
|
-
};
|
|
8455
|
-
/** @description Trademark not found */
|
|
8456
|
-
404: {
|
|
8457
|
-
headers: {
|
|
8458
|
-
[name: string]: unknown;
|
|
8459
|
-
};
|
|
8460
|
-
content: {
|
|
8461
|
-
"application/json": components["schemas"]["Error"];
|
|
8462
|
-
};
|
|
8463
|
-
};
|
|
8464
|
-
};
|
|
8465
|
-
};
|
|
8466
|
-
listTrademarkChanges: {
|
|
8467
|
-
parameters: {
|
|
8468
|
-
query?: {
|
|
8469
|
-
changed_field?: string;
|
|
8470
|
-
sort?: "-changed_at" | "changed_at";
|
|
8471
|
-
limit?: number;
|
|
8472
|
-
cursor?: string;
|
|
8473
|
-
};
|
|
8474
|
-
header?: never;
|
|
8475
|
-
path: {
|
|
8476
|
-
id: string;
|
|
8477
|
-
};
|
|
8478
|
-
cookie?: never;
|
|
8479
|
-
};
|
|
8480
|
-
requestBody?: never;
|
|
8481
|
-
responses: {
|
|
8482
|
-
/** @description Trademark change history */
|
|
8483
|
-
200: {
|
|
8484
|
-
headers: {
|
|
8485
|
-
[name: string]: unknown;
|
|
8486
|
-
};
|
|
8487
|
-
content: {
|
|
8488
|
-
"application/json": components["schemas"]["TrademarkChangesResponse"];
|
|
8489
|
-
};
|
|
8490
|
-
};
|
|
8491
|
-
/** @description Invalid ID */
|
|
8492
|
-
400: {
|
|
8493
|
-
headers: {
|
|
8494
|
-
[name: string]: unknown;
|
|
8495
|
-
};
|
|
8496
|
-
content: {
|
|
8497
|
-
"application/json": components["schemas"]["Error"];
|
|
8498
|
-
};
|
|
8499
|
-
};
|
|
8500
|
-
/** @description Missing or invalid API key */
|
|
8501
|
-
401: {
|
|
8502
|
-
headers: {
|
|
8503
|
-
[name: string]: unknown;
|
|
8504
|
-
};
|
|
8505
|
-
content: {
|
|
8506
|
-
"application/json": components["schemas"]["Error"];
|
|
8507
|
-
};
|
|
8508
|
-
};
|
|
8509
|
-
/** @description Missing required scope */
|
|
8510
|
-
403: {
|
|
8511
|
-
headers: {
|
|
8512
|
-
[name: string]: unknown;
|
|
8513
|
-
};
|
|
8514
|
-
content: {
|
|
8515
|
-
"application/json": components["schemas"]["Error"];
|
|
8516
|
-
};
|
|
8517
|
-
};
|
|
8518
|
-
/** @description Trademark not found */
|
|
8519
|
-
404: {
|
|
8520
|
-
headers: {
|
|
8521
|
-
[name: string]: unknown;
|
|
8522
|
-
};
|
|
8523
|
-
content: {
|
|
8524
|
-
"application/json": components["schemas"]["Error"];
|
|
8525
|
-
};
|
|
8526
|
-
};
|
|
8527
|
-
};
|
|
8528
|
-
};
|
|
8529
|
-
listTrademarkRelated: {
|
|
8530
|
-
parameters: {
|
|
8531
|
-
query?: {
|
|
8532
|
-
relationship_type?: string;
|
|
8533
|
-
limit?: number;
|
|
8534
|
-
cursor?: string;
|
|
8535
|
-
};
|
|
8536
|
-
header?: never;
|
|
8537
|
-
path: {
|
|
8538
|
-
id: string;
|
|
8539
|
-
};
|
|
8540
|
-
cookie?: never;
|
|
8541
|
-
};
|
|
8542
|
-
requestBody?: never;
|
|
8543
|
-
responses: {
|
|
8544
|
-
/** @description Trademark relationships */
|
|
8545
|
-
200: {
|
|
8546
|
-
headers: {
|
|
8547
|
-
[name: string]: unknown;
|
|
8548
|
-
};
|
|
8549
|
-
content: {
|
|
8550
|
-
"application/json": components["schemas"]["TrademarkRelatedResponse"];
|
|
8551
|
-
};
|
|
8552
|
-
};
|
|
8553
|
-
/** @description Invalid ID */
|
|
8554
|
-
400: {
|
|
8555
|
-
headers: {
|
|
8556
|
-
[name: string]: unknown;
|
|
8557
|
-
};
|
|
8558
|
-
content: {
|
|
8559
|
-
"application/json": components["schemas"]["Error"];
|
|
8560
|
-
};
|
|
8561
|
-
};
|
|
8562
|
-
/** @description Missing or invalid API key */
|
|
8563
|
-
401: {
|
|
8564
|
-
headers: {
|
|
8565
|
-
[name: string]: unknown;
|
|
8566
|
-
};
|
|
8567
|
-
content: {
|
|
8568
|
-
"application/json": components["schemas"]["Error"];
|
|
8569
|
-
};
|
|
8570
|
-
};
|
|
8571
|
-
/** @description Missing required scope */
|
|
8572
|
-
403: {
|
|
8573
|
-
headers: {
|
|
8574
|
-
[name: string]: unknown;
|
|
8575
|
-
};
|
|
8576
|
-
content: {
|
|
8577
|
-
"application/json": components["schemas"]["Error"];
|
|
8578
|
-
};
|
|
8579
|
-
};
|
|
8580
|
-
/** @description Trademark not found */
|
|
8581
|
-
404: {
|
|
8582
|
-
headers: {
|
|
8583
|
-
[name: string]: unknown;
|
|
8584
|
-
};
|
|
8585
|
-
content: {
|
|
8586
|
-
"application/json": components["schemas"]["Error"];
|
|
8587
|
-
};
|
|
8588
|
-
};
|
|
8589
|
-
};
|
|
8590
|
-
};
|
|
8591
|
-
getTrademarkSource: {
|
|
8592
|
-
parameters: {
|
|
8593
|
-
query?: never;
|
|
8594
|
-
header?: never;
|
|
8595
|
-
path: {
|
|
8596
|
-
id: string;
|
|
8597
|
-
};
|
|
8598
|
-
cookie?: never;
|
|
8599
|
-
};
|
|
8600
|
-
requestBody?: never;
|
|
8601
|
-
responses: {
|
|
8602
|
-
/** @description Source provenance (synthesized from trademark-record metadata when no raw-record version exists — reduced field set) */
|
|
8255
|
+
/** @description Trademark prosecution events */
|
|
8603
8256
|
200: {
|
|
8604
8257
|
headers: {
|
|
8605
8258
|
[name: string]: unknown;
|
|
8606
8259
|
};
|
|
8607
8260
|
content: {
|
|
8608
|
-
"application/json": components["schemas"]["
|
|
8261
|
+
"application/json": components["schemas"]["TrademarkEventsResponse"];
|
|
8609
8262
|
};
|
|
8610
8263
|
};
|
|
8611
8264
|
/** @description Invalid ID */
|
|
@@ -8836,116 +8489,6 @@ export interface operations {
|
|
|
8836
8489
|
};
|
|
8837
8490
|
};
|
|
8838
8491
|
};
|
|
8839
|
-
listTrademarkCoverage: {
|
|
8840
|
-
parameters: {
|
|
8841
|
-
query?: {
|
|
8842
|
-
protection_status?: string;
|
|
8843
|
-
limit?: number;
|
|
8844
|
-
cursor?: string;
|
|
8845
|
-
};
|
|
8846
|
-
header?: never;
|
|
8847
|
-
path: {
|
|
8848
|
-
id: string;
|
|
8849
|
-
};
|
|
8850
|
-
cookie?: never;
|
|
8851
|
-
};
|
|
8852
|
-
requestBody?: never;
|
|
8853
|
-
responses: {
|
|
8854
|
-
/** @description Trademark coverage territories */
|
|
8855
|
-
200: {
|
|
8856
|
-
headers: {
|
|
8857
|
-
[name: string]: unknown;
|
|
8858
|
-
};
|
|
8859
|
-
content: {
|
|
8860
|
-
"application/json": components["schemas"]["TrademarkCoverageResponse"];
|
|
8861
|
-
};
|
|
8862
|
-
};
|
|
8863
|
-
/** @description Invalid ID */
|
|
8864
|
-
400: {
|
|
8865
|
-
headers: {
|
|
8866
|
-
[name: string]: unknown;
|
|
8867
|
-
};
|
|
8868
|
-
content: {
|
|
8869
|
-
"application/json": components["schemas"]["Error"];
|
|
8870
|
-
};
|
|
8871
|
-
};
|
|
8872
|
-
/** @description Missing or invalid API key */
|
|
8873
|
-
401: {
|
|
8874
|
-
headers: {
|
|
8875
|
-
[name: string]: unknown;
|
|
8876
|
-
};
|
|
8877
|
-
content: {
|
|
8878
|
-
"application/json": components["schemas"]["Error"];
|
|
8879
|
-
};
|
|
8880
|
-
};
|
|
8881
|
-
/** @description Missing required scope */
|
|
8882
|
-
403: {
|
|
8883
|
-
headers: {
|
|
8884
|
-
[name: string]: unknown;
|
|
8885
|
-
};
|
|
8886
|
-
content: {
|
|
8887
|
-
"application/json": components["schemas"]["Error"];
|
|
8888
|
-
};
|
|
8889
|
-
};
|
|
8890
|
-
/** @description Trademark not found */
|
|
8891
|
-
404: {
|
|
8892
|
-
headers: {
|
|
8893
|
-
[name: string]: unknown;
|
|
8894
|
-
};
|
|
8895
|
-
content: {
|
|
8896
|
-
"application/json": components["schemas"]["Error"];
|
|
8897
|
-
};
|
|
8898
|
-
};
|
|
8899
|
-
};
|
|
8900
|
-
};
|
|
8901
|
-
getTrademarkMedia: {
|
|
8902
|
-
parameters: {
|
|
8903
|
-
query?: never;
|
|
8904
|
-
header?: never;
|
|
8905
|
-
path: {
|
|
8906
|
-
id: string;
|
|
8907
|
-
mediaId: string;
|
|
8908
|
-
};
|
|
8909
|
-
cookie?: never;
|
|
8910
|
-
};
|
|
8911
|
-
requestBody?: never;
|
|
8912
|
-
responses: {
|
|
8913
|
-
/** @description Image content */
|
|
8914
|
-
200: {
|
|
8915
|
-
headers: {
|
|
8916
|
-
[name: string]: unknown;
|
|
8917
|
-
};
|
|
8918
|
-
content?: never;
|
|
8919
|
-
};
|
|
8920
|
-
/** @description Invalid ID */
|
|
8921
|
-
400: {
|
|
8922
|
-
headers: {
|
|
8923
|
-
[name: string]: unknown;
|
|
8924
|
-
};
|
|
8925
|
-
content: {
|
|
8926
|
-
"application/json": components["schemas"]["Error"];
|
|
8927
|
-
};
|
|
8928
|
-
};
|
|
8929
|
-
/** @description Media not found */
|
|
8930
|
-
404: {
|
|
8931
|
-
headers: {
|
|
8932
|
-
[name: string]: unknown;
|
|
8933
|
-
};
|
|
8934
|
-
content: {
|
|
8935
|
-
"application/json": components["schemas"]["Error"];
|
|
8936
|
-
};
|
|
8937
|
-
};
|
|
8938
|
-
/** @description Upstream image unavailable */
|
|
8939
|
-
502: {
|
|
8940
|
-
headers: {
|
|
8941
|
-
[name: string]: unknown;
|
|
8942
|
-
};
|
|
8943
|
-
content: {
|
|
8944
|
-
"application/json": components["schemas"]["Error"];
|
|
8945
|
-
};
|
|
8946
|
-
};
|
|
8947
|
-
};
|
|
8948
|
-
};
|
|
8949
8492
|
retrieveOwnerAnalytics: {
|
|
8950
8493
|
parameters: {
|
|
8951
8494
|
query?: never;
|