@signa-so/sdk 0.2.2 → 0.7.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.
Files changed (137) hide show
  1. package/README.md +22 -14
  2. package/dist/_internals/fetch-with-retry.d.ts.map +1 -1
  3. package/dist/_internals/fetch-with-retry.js +11 -3
  4. package/dist/_internals/fetch-with-retry.js.map +1 -1
  5. package/dist/_internals/query-string.d.ts +5 -4
  6. package/dist/_internals/query-string.d.ts.map +1 -1
  7. package/dist/_internals/query-string.js +6 -14
  8. package/dist/_internals/query-string.js.map +1 -1
  9. package/dist/category-nice.d.ts +22 -0
  10. package/dist/category-nice.d.ts.map +1 -0
  11. package/dist/category-nice.js +109 -0
  12. package/dist/category-nice.js.map +1 -0
  13. package/dist/client.d.ts +80 -10
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +110 -13
  16. package/dist/client.js.map +1 -1
  17. package/dist/errors.d.ts +7 -0
  18. package/dist/errors.d.ts.map +1 -1
  19. package/dist/errors.js +10 -1
  20. package/dist/errors.js.map +1 -1
  21. package/dist/generated/api-types.d.ts +9700 -2920
  22. package/dist/generated/api-types.d.ts.map +1 -1
  23. package/dist/index.d.ts +6 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +5 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/pagination.d.ts +24 -2
  28. package/dist/pagination.d.ts.map +1 -1
  29. package/dist/pagination.js +28 -1
  30. package/dist/pagination.js.map +1 -1
  31. package/dist/resources/alerts.d.ts +18 -13
  32. package/dist/resources/alerts.d.ts.map +1 -1
  33. package/dist/resources/alerts.js +28 -20
  34. package/dist/resources/alerts.js.map +1 -1
  35. package/dist/resources/analytics.d.ts +8 -0
  36. package/dist/resources/analytics.d.ts.map +1 -0
  37. package/dist/resources/analytics.js +13 -0
  38. package/dist/resources/analytics.js.map +1 -0
  39. package/dist/resources/assignments.d.ts +25 -0
  40. package/dist/resources/assignments.d.ts.map +1 -0
  41. package/dist/resources/assignments.js +33 -0
  42. package/dist/resources/assignments.js.map +1 -0
  43. package/dist/resources/attorneys.d.ts +7 -3
  44. package/dist/resources/attorneys.d.ts.map +1 -1
  45. package/dist/resources/attorneys.js +10 -5
  46. package/dist/resources/attorneys.js.map +1 -1
  47. package/dist/resources/compare.d.ts +29 -0
  48. package/dist/resources/compare.d.ts.map +1 -0
  49. package/dist/resources/compare.js +30 -0
  50. package/dist/resources/compare.js.map +1 -0
  51. package/dist/resources/deadlines.d.ts +24 -0
  52. package/dist/resources/deadlines.d.ts.map +1 -0
  53. package/dist/resources/deadlines.js +26 -0
  54. package/dist/resources/deadlines.js.map +1 -0
  55. package/dist/resources/entities.d.ts +53 -0
  56. package/dist/resources/entities.d.ts.map +1 -0
  57. package/dist/resources/entities.js +74 -0
  58. package/dist/resources/entities.js.map +1 -0
  59. package/dist/resources/events.d.ts +2 -2
  60. package/dist/resources/events.d.ts.map +1 -1
  61. package/dist/resources/events.js +2 -2
  62. package/dist/resources/events.js.map +1 -1
  63. package/dist/resources/feedback.d.ts +19 -0
  64. package/dist/resources/feedback.d.ts.map +1 -0
  65. package/dist/resources/feedback.js +29 -0
  66. package/dist/resources/feedback.js.map +1 -0
  67. package/dist/resources/firms.d.ts +7 -6
  68. package/dist/resources/firms.d.ts.map +1 -1
  69. package/dist/resources/firms.js +9 -5
  70. package/dist/resources/firms.js.map +1 -1
  71. package/dist/resources/goods-services.d.ts +56 -0
  72. package/dist/resources/goods-services.d.ts.map +1 -0
  73. package/dist/resources/goods-services.js +60 -0
  74. package/dist/resources/goods-services.js.map +1 -0
  75. package/dist/resources/oppositions.d.ts +18 -0
  76. package/dist/resources/oppositions.d.ts.map +1 -0
  77. package/dist/resources/oppositions.js +20 -0
  78. package/dist/resources/oppositions.js.map +1 -0
  79. package/dist/resources/organization.d.ts +56 -0
  80. package/dist/resources/organization.d.ts.map +1 -0
  81. package/dist/resources/organization.js +89 -0
  82. package/dist/resources/organization.js.map +1 -0
  83. package/dist/resources/owners.d.ts +7 -3
  84. package/dist/resources/owners.d.ts.map +1 -1
  85. package/dist/resources/owners.js +10 -5
  86. package/dist/resources/owners.js.map +1 -1
  87. package/dist/resources/portfolios.d.ts +3 -3
  88. package/dist/resources/portfolios.d.ts.map +1 -1
  89. package/dist/resources/portfolios.js +4 -4
  90. package/dist/resources/portfolios.js.map +1 -1
  91. package/dist/resources/proceedings.d.ts +1 -1
  92. package/dist/resources/proceedings.js +1 -1
  93. package/dist/resources/reconcile.d.ts +22 -0
  94. package/dist/resources/reconcile.d.ts.map +1 -0
  95. package/dist/resources/reconcile.js +24 -0
  96. package/dist/resources/reconcile.js.map +1 -0
  97. package/dist/resources/references.d.ts +51 -12
  98. package/dist/resources/references.d.ts.map +1 -1
  99. package/dist/resources/references.js +33 -15
  100. package/dist/resources/references.js.map +1 -1
  101. package/dist/resources/screening.d.ts +63 -0
  102. package/dist/resources/screening.d.ts.map +1 -0
  103. package/dist/resources/screening.js +66 -0
  104. package/dist/resources/screening.js.map +1 -0
  105. package/dist/resources/suggest.d.ts +16 -0
  106. package/dist/resources/suggest.d.ts.map +1 -0
  107. package/dist/resources/suggest.js +18 -0
  108. package/dist/resources/suggest.js.map +1 -0
  109. package/dist/resources/trademarks.d.ts +82 -6
  110. package/dist/resources/trademarks.d.ts.map +1 -1
  111. package/dist/resources/trademarks.js +132 -5
  112. package/dist/resources/trademarks.js.map +1 -1
  113. package/dist/resources/watches.d.ts +68 -9
  114. package/dist/resources/watches.d.ts.map +1 -1
  115. package/dist/resources/watches.js +111 -12
  116. package/dist/resources/watches.js.map +1 -1
  117. package/dist/resources/webhooks.d.ts +57 -0
  118. package/dist/resources/webhooks.d.ts.map +1 -0
  119. package/dist/resources/webhooks.js +86 -0
  120. package/dist/resources/webhooks.js.map +1 -0
  121. package/dist/types.d.ts +2781 -239
  122. package/dist/types.d.ts.map +1 -1
  123. package/dist/version.d.ts +1 -1
  124. package/dist/version.js +1 -1
  125. package/dist/webhooks.d.ts +57 -0
  126. package/dist/webhooks.d.ts.map +1 -0
  127. package/dist/webhooks.js +76 -0
  128. package/dist/webhooks.js.map +1 -0
  129. package/package.json +9 -3
  130. package/dist/resources/platform.d.ts +0 -29
  131. package/dist/resources/platform.d.ts.map +0 -1
  132. package/dist/resources/platform.js +0 -50
  133. package/dist/resources/platform.js.map +0 -1
  134. package/dist/resources/search.d.ts +0 -27
  135. package/dist/resources/search.d.ts.map +0 -1
  136. package/dist/resources/search.js +0 -36
  137. package/dist/resources/search.js.map +0 -1
package/README.md CHANGED
@@ -13,13 +13,16 @@ npm install @signa-so/sdk
13
13
  ```ts
14
14
  import Signa from '@signa-so/sdk';
15
15
 
16
- const signa = new Signa({ api_key: 'sig_live_xxx' });
16
+ const signa = new Signa({ api_key: 'sig_xxx' });
17
17
 
18
18
  // Retrieve a trademark
19
19
  const tm = await signa.trademarks.retrieve('tm_abc123');
20
20
 
21
- // Search trademarks
22
- const results = await signa.search.query({ query: 'nike', office: 'USPTO' });
21
+ // Search trademarks (POST with structured filters)
22
+ const results = await signa.trademarks.search({ query: 'nike', filters: { offices: ['US'] } });
23
+
24
+ // Text search via GET
25
+ const searched = await signa.trademarks.list({ q: 'nike', offices: 'US' });
23
26
 
24
27
  // List with auto-pagination
25
28
  const page = await signa.trademarks.list({ limit: 50 });
@@ -32,7 +35,7 @@ for (const tm of page.data) {
32
35
 
33
36
  ```ts
34
37
  const signa = new Signa({
35
- api_key: 'sig_live_xxx', // Required (or set SIGNA_API_KEY env var)
38
+ api_key: 'sig_xxx', // Required (or set SIGNA_API_KEY env var)
36
39
  base_url: 'https://api.signa.so', // Default
37
40
  timeout: 30_000, // 30s default
38
41
  max_retries: 2, // Automatic retry with backoff
@@ -50,7 +53,7 @@ All resources follow the same pattern: `.retrieve(id)`, `.list(params)`, plus re
50
53
  ```ts
51
54
  await signa.trademarks.retrieve('tm_xxx');
52
55
  await signa.trademarks.retrieve('tm_xxx', { expand: ['owners', 'attorneys'] });
53
- await signa.trademarks.list({ office: 'USPTO', status: 'registered', limit: 50 });
56
+ await signa.trademarks.list({ office: 'US', status: 'registered', limit: 50 });
54
57
  await signa.trademarks.history('tm_xxx');
55
58
  ```
56
59
 
@@ -86,19 +89,25 @@ await signa.proceedings.retrieve('prc_xxx');
86
89
  await signa.proceedings.list({ trademark_id: 'tm_xxx' });
87
90
  ```
88
91
 
89
- ### `signa.search`
92
+ ### `signa.trademarks.search()` (POST)
93
+
94
+ For complex queries with structured filters, aggregations, and strategies:
90
95
 
91
96
  ```ts
92
- await signa.search.query({
97
+ await signa.trademarks.search({
93
98
  query: 'nike',
94
- office: 'USPTO',
95
- status: 'registered',
96
- nice_class: [25, 35],
97
- from: 0,
98
- size: 20,
99
+ strategies: ['exact', 'phonetic'],
100
+ filters: { offices: ['US'], status_primary: 'active', nice_classes: [25, 35] },
101
+ options: { aggregations: ['status_stage', 'office_code'], include_total: true },
102
+ sort: '-filing_date',
103
+ limit: 20,
99
104
  });
105
+ ```
100
106
 
101
- await signa.search.suggest({ query: 'nik', size: 5 });
107
+ ### `signa.suggest`
108
+
109
+ ```ts
110
+ await signa.suggest.crossEntity({ q: 'nik' });
102
111
  ```
103
112
 
104
113
  ### `signa.references`
@@ -107,7 +116,6 @@ await signa.search.suggest({ query: 'nik', size: 5 });
107
116
  await signa.references.classifications(); // Nice classes
108
117
  await signa.references.offices(); // Trademark offices
109
118
  await signa.references.jurisdictions(); // Jurisdictions
110
- await signa.references.statuses(); // Status codes
111
119
  await signa.references.eventTypes(); // Event types
112
120
  ```
113
121
 
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-with-retry.d.ts","sourceRoot":"","sources":["../../src/_internals/fetch-with-retry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAmI9D"}
1
+ {"version":3,"file":"fetch-with-retry.d.ts","sourceRoot":"","sources":["../../src/_internals/fetch-with-retry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA6I9D"}
@@ -9,12 +9,16 @@ export async function fetchWithRetry(config, request) {
9
9
  const timeout = request.options?.timeout ?? config.timeout;
10
10
  const maxRetries = Math.max(0, request.options?.max_retries ?? config.maxRetries);
11
11
  const url = `${config.baseUrl}${request.path}`;
12
+ // multipart/form-data uploads (image search): pass the FormData through
13
+ // untouched and let fetch set the `Content-Type` (with its boundary). A JSON
14
+ // body is stringified with an explicit `application/json` Content-Type.
15
+ const isMultipart = typeof FormData !== 'undefined' && request.body instanceof FormData;
12
16
  const headers = {
13
17
  'Authorization': `Bearer ${config.apiKey}`,
14
18
  'Accept': request.accept ?? 'application/json',
15
19
  'User-Agent': `signa-sdk-typescript/${SDK_VERSION}`,
16
20
  'X-Signa-Client': `typescript/${SDK_VERSION}`,
17
- ...(request.body !== undefined && { 'Content-Type': 'application/json' }),
21
+ ...(request.body !== undefined && !isMultipart && { 'Content-Type': 'application/json' }),
18
22
  ...request.options?.headers,
19
23
  };
20
24
  if (request.options?.idempotency_key) {
@@ -44,7 +48,11 @@ export async function fetchWithRetry(config, request) {
44
48
  response = await config.fetch(url, {
45
49
  method: request.method,
46
50
  headers,
47
- body: request.body !== undefined ? JSON.stringify(request.body) : undefined,
51
+ body: request.body === undefined
52
+ ? undefined
53
+ : isMultipart
54
+ ? request.body
55
+ : JSON.stringify(request.body),
48
56
  signal: controller.signal,
49
57
  redirect: request.redirect ?? 'follow',
50
58
  });
@@ -95,7 +103,7 @@ export async function fetchWithRetry(config, request) {
95
103
  catch {
96
104
  errorBody = {
97
105
  error: {
98
- type: 'https://api.signa.so/errors/unknown',
106
+ type: 'unknown',
99
107
  title: 'Unknown Error',
100
108
  status: response.status,
101
109
  detail: `HTTP ${response.status} ${response.statusText}`,
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-with-retry.js","sourceRoot":"","sources":["../../src/_internals/fetch-with-retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-with-retry.js","sourceRoot":"","sources":["../../src/_internals/fetch-with-retry.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Build a URL query string from a params object.
3
+ *
4
+ * Conventions (see `.signa/docs/decisions/query-parameter-conventions.md`):
5
+ * - Arrays serialize as comma-separated: `?offices=US,EM`
6
+ * - Date ranges live on flat underscore keys: `?filing_date_gte=2020-01-01`
3
7
  * - Undefined/null values are omitted
4
- * - Arrays with bracket keys (e.g., `jurisdictions[]`) emit repeated params
5
- * - Other arrays are serialized as comma-separated (e.g., `include`)
6
- * - Numbers are stringified
7
- * - Bracket-notation keys like 'filing_date[gte]' pass through as-is
8
+ * - Numbers and booleans are stringified
8
9
  */
9
10
  export declare function buildQueryString(params: Record<string, unknown>): string;
10
11
  //# sourceMappingURL=query-string.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-string.d.ts","sourceRoot":"","sources":["../../src/_internals/query-string.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAwBxE"}
1
+ {"version":3,"file":"query-string.d.ts","sourceRoot":"","sources":["../../src/_internals/query-string.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAkBxE"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Build a URL query string from a params object.
3
+ *
4
+ * Conventions (see `.signa/docs/decisions/query-parameter-conventions.md`):
5
+ * - Arrays serialize as comma-separated: `?offices=US,EM`
6
+ * - Date ranges live on flat underscore keys: `?filing_date_gte=2020-01-01`
3
7
  * - Undefined/null values are omitted
4
- * - Arrays with bracket keys (e.g., `jurisdictions[]`) emit repeated params
5
- * - Other arrays are serialized as comma-separated (e.g., `include`)
6
- * - Numbers are stringified
7
- * - Bracket-notation keys like 'filing_date[gte]' pass through as-is
8
+ * - Numbers and booleans are stringified
8
9
  */
9
10
  export function buildQueryString(params) {
10
11
  const parts = [];
@@ -13,16 +14,7 @@ export function buildQueryString(params) {
13
14
  continue;
14
15
  if (Array.isArray(value)) {
15
16
  if (value.length > 0) {
16
- if (key.endsWith('[]')) {
17
- // Repeated params for bracket-notation array keys
18
- for (const item of value) {
19
- parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(item))}`);
20
- }
21
- }
22
- else {
23
- // Comma-separated for non-bracket keys (e.g., include)
24
- parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(value.join(','))}`);
25
- }
17
+ parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(value.map(String).join(','))}`);
26
18
  }
27
19
  }
28
20
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"query-string.js","sourceRoot":"","sources":["../../src/_internals/query-string.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA+B;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAEpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,kDAAkD;oBAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC/E,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,uDAAuD;oBACvD,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"query-string.js","sourceRoot":"","sources":["../../src/_internals/query-string.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA+B;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAEpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CACR,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAChF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Keep in sync with
3
+ * api/src/modules/screening/listings/seed/category-nice-map-v1.ts (source of truth).
4
+ *
5
+ * The SDK ships a hand-maintained PUBLIC projection of the API's curated
6
+ * marketplace-category → Nice-class map: the `{keys, classes, label}` fields only
7
+ * (the internal `confidence` field is omitted). A test in the API package pins that
8
+ * this table equals the API map's projection entry-for-entry, in order.
9
+ *
10
+ * MATCH RULE (mirrors the API — ENG-22 W3): MULTI-WORD compound keys match CONTAINED
11
+ * (word-boundary); SINGLE-WORD keys match the leaf EXACTLY only (a bare token is
12
+ * trusted only when it IS the whole leaf, killing the suffix-of-compound hazard:
13
+ * "sleeping bags" never matches a bare bags-class key). The contained tie-break is
14
+ * CONTENT-DERIVED (length, then key, then class) so it is reorder-invariant.
15
+ */
16
+ export declare const CATEGORY_NICE_TABLE: ReadonlyArray<{
17
+ keys: string[];
18
+ classes: number[];
19
+ label: string;
20
+ }>;
21
+ export declare function categoryToNiceClasses(category: string): number[];
22
+ //# sourceMappingURL=category-nice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category-nice.d.ts","sourceRoot":"","sources":["../src/category-nice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC;IAC9C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CA6DS,CAAC;AAkCX,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAMhE"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Keep in sync with
3
+ * api/src/modules/screening/listings/seed/category-nice-map-v1.ts (source of truth).
4
+ *
5
+ * The SDK ships a hand-maintained PUBLIC projection of the API's curated
6
+ * marketplace-category → Nice-class map: the `{keys, classes, label}` fields only
7
+ * (the internal `confidence` field is omitted). A test in the API package pins that
8
+ * this table equals the API map's projection entry-for-entry, in order.
9
+ *
10
+ * MATCH RULE (mirrors the API — ENG-22 W3): MULTI-WORD compound keys match CONTAINED
11
+ * (word-boundary); SINGLE-WORD keys match the leaf EXACTLY only (a bare token is
12
+ * trusted only when it IS the whole leaf, killing the suffix-of-compound hazard:
13
+ * "sleeping bags" never matches a bare bags-class key). The contained tie-break is
14
+ * CONTENT-DERIVED (length, then key, then class) so it is reorder-invariant.
15
+ */
16
+ export const CATEGORY_NICE_TABLE = [
17
+ {
18
+ keys: ['greeting cards', 'postcards', 'note cards', 'notecards'],
19
+ classes: [16],
20
+ label: 'Cards',
21
+ },
22
+ { keys: ['stationery'], classes: [16], label: 'Stationery' },
23
+ { keys: ['stickers', 'decals'], classes: [16], label: 'Stickers' },
24
+ { keys: ['art prints', 'posters'], classes: [16], label: 'Printed art' },
25
+ { keys: ['gift wrap', 'wrapping paper'], classes: [16], label: 'Gift wrap' },
26
+ { keys: ['calendars'], classes: [16], label: 'Calendars' },
27
+ { keys: ['coloring books', 'colouring books'], classes: [16], label: 'Coloring books' },
28
+ { keys: ['planners', 'diaries'], classes: [16], label: 'Planners' },
29
+ { keys: ['t-shirts', 't-shirt', 't shirt', 'shirts'], classes: [25], label: 'Shirts' },
30
+ { keys: ['hoodies', 'sweatshirts', 'sweaters'], classes: [25], label: 'Sweatshirts' },
31
+ { keys: ['dresses', 'skirts', 'leggings'], classes: [25], label: 'Garments' },
32
+ { keys: ['socks'], classes: [25], label: 'Socks' },
33
+ { keys: ['hats', 'beanies'], classes: [25], label: 'Headwear' },
34
+ { keys: ['footwear', 'sneakers', 'shoes', 'sandals'], classes: [25], label: 'Footwear' },
35
+ { keys: ['swimwear', 'swimsuits'], classes: [25], label: 'Swimwear' },
36
+ {
37
+ keys: ['jewelry', 'jewellery', 'necklaces', 'earrings', 'bracelets'],
38
+ classes: [14],
39
+ label: 'Jewelry',
40
+ },
41
+ { keys: ['watches', 'wristwatches'], classes: [14], label: 'Watches' },
42
+ { keys: ['mugs', 'tumblers'], classes: [21], label: 'Drinkware' },
43
+ { keys: ['water bottles'], classes: [21], label: 'Water bottles' },
44
+ { keys: ['cookware', 'bakeware', 'cutting boards'], classes: [21], label: 'Kitchenware' },
45
+ { keys: ['dinnerware'], classes: [21], label: 'Dinnerware' },
46
+ { keys: ['handbags', 'tote bags', 'backpacks'], classes: [18], label: 'Bags' },
47
+ { keys: ['wallets', 'purses'], classes: [18], label: 'Wallets' },
48
+ { keys: ['luggage', 'suitcases'], classes: [18], label: 'Luggage' },
49
+ { keys: ['phone cases', 'phone case'], classes: [9], label: 'Phone cases' },
50
+ { keys: ['headphones', 'earbuds', 'earphones'], classes: [9], label: 'Audio electronics' },
51
+ { keys: ['laptops', 'computers'], classes: [9], label: 'Computers' },
52
+ { keys: ['chargers', 'power banks', 'charging cables'], classes: [9], label: 'Chargers' },
53
+ {
54
+ keys: ['mobile apps', 'downloadable software', 'ios apps', 'android apps'],
55
+ classes: [9],
56
+ label: 'Apps',
57
+ },
58
+ { keys: ['ebooks', 'e-books', 'kindle ebooks'], classes: [9], label: 'E-books' },
59
+ { keys: ['cosmetics', 'skincare', 'makeup', 'lip balm'], classes: [3], label: 'Cosmetics' },
60
+ { keys: ['perfume', 'fragrances', 'cologne'], classes: [3], label: 'Fragrances' },
61
+ { keys: ['shampoo', 'conditioner', 'hair care'], classes: [3], label: 'Hair care' },
62
+ { keys: ['nail polish'], classes: [3], label: 'Nail polish' },
63
+ { keys: ['supplements', 'vitamins'], classes: [5], label: 'Supplements' },
64
+ { keys: ['furniture', 'chairs'], classes: [20], label: 'Furniture' },
65
+ { keys: ['bed linen', 'duvet covers', 'blankets'], classes: [24], label: 'Bed textiles' },
66
+ { keys: ['bath towels', 'tea towels'], classes: [24], label: 'Towels' },
67
+ { keys: ['rugs', 'doormats'], classes: [27], label: 'Floor coverings' },
68
+ { keys: ['board games', 'jigsaw puzzles'], classes: [28], label: 'Games and puzzles' },
69
+ { keys: ['plush toys', 'stuffed animals'], classes: [28], label: 'Plush toys' },
70
+ { keys: ['action figures'], classes: [28], label: 'Action figures' },
71
+ { keys: ['coffee', 'chocolate', 'spices'], classes: [30], label: 'Foodstuffs' },
72
+ { keys: ['pet food'], classes: [31], label: 'Pet food' },
73
+ { keys: ['beer'], classes: [32], label: 'Beer' },
74
+ { keys: ['wine', 'spirits', 'whiskey'], classes: [33], label: 'Wine and spirits' },
75
+ { keys: ['musical instruments', 'guitars'], classes: [15], label: 'Musical instruments' },
76
+ { keys: ['yarn'], classes: [23], label: 'Yarn' },
77
+ ];
78
+ function normalizeCategory(category) {
79
+ const parts = category
80
+ .toLowerCase()
81
+ .trim()
82
+ .split(/[>\/|»]/);
83
+ return (parts.at(-1) ?? '').trim().replace(/\s+/g, ' ');
84
+ }
85
+ function escapeRegExp(value) {
86
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
87
+ }
88
+ function classesKey(classes) {
89
+ return [...new Set(classes)].sort((a, b) => a - b).join(',');
90
+ }
91
+ // Multi-word keys match CONTAINED; single-word keys match the leaf EXACTLY only.
92
+ const CATEGORY_MATCHERS = CATEGORY_NICE_TABLE.flatMap((entry) => entry.keys.map((key) => ({
93
+ entry,
94
+ key,
95
+ multiWord: key.includes(' '),
96
+ contained: new RegExp(`(?:^|[^a-z0-9])${escapeRegExp(key)}(?:$|[^a-z0-9])`),
97
+ })));
98
+ const CONTAINED_CATEGORY_MATCHERS = CATEGORY_MATCHERS.filter((m) => m.multiWord).sort((a, b) => b.key.length - a.key.length ||
99
+ a.key.localeCompare(b.key) ||
100
+ classesKey(a.entry.classes).localeCompare(classesKey(b.entry.classes)));
101
+ export function categoryToNiceClasses(category) {
102
+ const leaf = normalizeCategory(category);
103
+ if (!leaf)
104
+ return [];
105
+ const exact = CATEGORY_MATCHERS.find(({ key }) => key === leaf);
106
+ const match = exact ?? CONTAINED_CATEGORY_MATCHERS.find(({ contained }) => contained.test(leaf));
107
+ return match ? [...new Set(match.entry.classes)].sort((a, b) => a - b) : [];
108
+ }
109
+ //# sourceMappingURL=category-nice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category-nice.js","sourceRoot":"","sources":["../src/category-nice.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -2,26 +2,53 @@ import type { ClientOptions } from './types.js';
2
2
  import { SignaError, SignaAPIError, BadRequestError, AuthenticationError, PermissionError, NotFoundError, ConflictError, RateLimitError, InternalServerError, ConnectionError, TimeoutError } from './errors.js';
3
3
  import { Trademarks } from './resources/trademarks.js';
4
4
  import { Owners } from './resources/owners.js';
5
+ import { Entities } from './resources/entities.js';
5
6
  import { Attorneys } from './resources/attorneys.js';
6
7
  import { Firms } from './resources/firms.js';
7
8
  import { Proceedings } from './resources/proceedings.js';
8
- import { Search } from './resources/search.js';
9
+ import { Assignments } from './resources/assignments.js';
10
+ import { Suggest } from './resources/suggest.js';
9
11
  import { References } from './resources/references.js';
12
+ import { Analytics } from './resources/analytics.js';
13
+ import { Deadlines } from './resources/deadlines.js';
14
+ import { Oppositions } from './resources/oppositions.js';
15
+ import { Reconcile } from './resources/reconcile.js';
16
+ import { GoodsServices } from './resources/goods-services.js';
10
17
  import { Portfolios } from './resources/portfolios.js';
11
18
  import { SavedSearches } from './resources/saved-searches.js';
19
+ import { FeedbackResource } from './resources/feedback.js';
12
20
  import { Watches } from './resources/watches.js';
13
21
  import { Alerts } from './resources/alerts.js';
22
+ import { Webhooks } from './resources/webhooks.js';
14
23
  import { Events } from './resources/events.js';
15
- import { Platform } from './resources/platform.js';
24
+ import { Screening } from './resources/screening.js';
25
+ import { Compare } from './resources/compare.js';
26
+ import { Organization } from './resources/organization.js';
16
27
  /**
17
28
  * Signa API client.
18
29
  *
19
30
  * ```typescript
20
31
  * import Signa from '@signa-so/sdk';
21
32
  *
22
- * const signa = new Signa({ api_key: 'sig_live_xxx' });
33
+ * const signa = new Signa({ api_key: 'sig_xxx' });
23
34
  * const tm = await signa.trademarks.retrieve('tm_abc123');
24
35
  * ```
36
+ *
37
+ * ## Browser usage
38
+ *
39
+ * The Signa SDK is designed for **server-side use**. A Signa API key grants
40
+ * full access to the org's trademark data and usage — putting one in browser
41
+ * code exposes it to every visitor (including hostile ones) via the page
42
+ * source, the Network tab, and any third-party script running on the page.
43
+ * The correct architecture is to proxy Signa requests through your own
44
+ * backend and authenticate end-users with your own session layer.
45
+ *
46
+ * If the SDK is instantiated in an environment where `window` is defined it
47
+ * emits a single `console.warn` on construction. You can silence this warning
48
+ * in two ways (both signal you understand the risk and have accepted it):
49
+ *
50
+ * - pass `{ allowBrowser: true }` to the constructor, or
51
+ * - set the `SIGNA_ALLOW_BROWSER=1` environment variable at build time.
25
52
  */
26
53
  export declare class Signa {
27
54
  static readonly SignaError: typeof SignaError;
@@ -39,28 +66,71 @@ export declare class Signa {
39
66
  readonly trademarks: Trademarks;
40
67
  /** Owner operations: retrieve, list, trademarks. */
41
68
  readonly owners: Owners;
69
+ /** Entity operations: retrieve, list, trademarks, family (PLN-118). */
70
+ readonly entities: Entities;
42
71
  /** Attorney operations: retrieve, list, trademarks. */
43
72
  readonly attorneys: Attorneys;
44
73
  /** Firm operations: retrieve, list, attorneys, trademarks. */
45
74
  readonly firms: Firms;
46
75
  /** Proceeding operations: retrieve, list. */
47
76
  readonly proceedings: Proceedings;
48
- /** Search operations: query, suggest. */
49
- readonly search: Search;
50
- /** Reference data: classifications, offices, jurisdictions, statuses, event types, design codes. */
77
+ /** Assignment operations: retrieve, list. */
78
+ readonly assignments: Assignments;
79
+ /** Suggest operations: cross-entity typeahead. */
80
+ readonly suggest: Suggest;
81
+ /** Reference data: classifications, offices, jurisdictions, event types, design codes. */
51
82
  readonly references: References;
83
+ readonly analytics: Analytics;
84
+ /** Deadline computation: batch maintenance deadline calculations. */
85
+ readonly deadlines: Deadlines;
86
+ /** Opposition windows: batch opposition deadline calculations. */
87
+ readonly oppositions: Oppositions;
88
+ /** Reconciliation: compare caller records against register data. */
89
+ readonly reconcile: Reconcile;
90
+ /**
91
+ * Goods & services: accepted-terms catalog (browse/search) and AI-assisted
92
+ * G&S specification drafting.
93
+ */
94
+ readonly goodsServices: GoodsServices;
52
95
  /** Portfolio management: CRUD, marks, deadlines. */
53
96
  readonly portfolios: Portfolios;
54
97
  /** Saved search management: CRUD, re-execute. */
55
98
  readonly savedSearches: SavedSearches;
56
- /** Watch management: CRUD, watch-scoped alerts. */
99
+ /** Customer feedback: submit data issues, bug reports, and feature requests. */
100
+ readonly feedback: FeedbackResource;
101
+ /**
102
+ * Watch management — monitoring v1 (TSK-111).
103
+ *
104
+ * Five watch types (mark / portfolio / owner / class / similarity)
105
+ * compile to a single query DSL. Lifecycle: create, list, retrieve,
106
+ * update, pause/resume, replay, preview, bulk, soft-delete, plus
107
+ * per-watch alert listing.
108
+ */
57
109
  readonly watches: Watches;
58
- /** Alert operations: list, retrieve, acknowledge, dismiss, batch. */
110
+ /**
111
+ * Alerts — read-only. Alerts are immutable in monitoring v1
112
+ * (VAL-API-018b). Use `list`, `retrieve`, or `lookup(ids)` for
113
+ * polling. Track open work in your own systems.
114
+ */
59
115
  readonly alerts: Alerts;
116
+ /**
117
+ * Webhook endpoints — monitoring v1 push delivery. Standard Webhooks
118
+ * signed POSTs with rotation overlap and per-endpoint auto-disable on
119
+ * sustained 4xx/5xx. Verify deliveries with `verifyWebhookSignature`
120
+ * exported from the SDK root.
121
+ */
122
+ readonly webhooks: Webhooks;
60
123
  /** Event stream: list, retrieve with diffs. */
61
124
  readonly events: Events;
62
- /** Platform: identity, usage, API key management. */
63
- readonly platform: Platform;
125
+ /**
126
+ * Screening — INTERNAL/beta (`screening:read` scope). `checkListing` extracts
127
+ * candidate marks from listing text and returns a listing-level verdict.
128
+ */
129
+ readonly screening: Screening;
130
+ /** Pair comparison — PUBLIC beta (`screening:read` scope). */
131
+ readonly compare: Compare;
132
+ /** Organization: identity, usage, API key management. */
133
+ readonly organization: Organization;
64
134
  /** @internal */
65
135
  private readonly _config;
66
136
  constructor(opts?: ClientOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAMnD;;;;;;;;;GASG;AACH,qBAAa,KAAK;IAEhB,MAAM,CAAC,QAAQ,CAAC,UAAU,oBAAc;IACxC,MAAM,CAAC,QAAQ,CAAC,aAAa,uBAAiB;IAC9C,MAAM,CAAC,QAAQ,CAAC,eAAe,yBAAmB;IAClD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,6BAAuB;IAC1D,MAAM,CAAC,QAAQ,CAAC,eAAe,yBAAmB;IAClD,MAAM,CAAC,QAAQ,CAAC,aAAa,uBAAiB;IAC9C,MAAM,CAAC,QAAQ,CAAC,aAAa,uBAAiB;IAC9C,MAAM,CAAC,QAAQ,CAAC,cAAc,wBAAkB;IAChD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,6BAAuB;IAC1D,MAAM,CAAC,QAAQ,CAAC,eAAe,yBAAmB;IAClD,MAAM,CAAC,QAAQ,CAAC,YAAY,sBAAgB;IAE5C,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,oGAAoG;IACpG,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,iDAAiD;IACjD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEtC,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,IAAI,GAAE,aAAkB;CA2CrC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}