@signa-so/sdk 0.16.0 → 0.21.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 +19 -9
- package/dist/_internals/query-string.d.ts +16 -2
- package/dist/_internals/query-string.d.ts.map +1 -1
- package/dist/_internals/query-string.js +26 -6
- package/dist/_internals/query-string.js.map +1 -1
- package/dist/generated/api-types.d.ts +1049 -266
- package/dist/generated/api-types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/presets.d.ts +23 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +19 -0
- package/dist/presets.js.map +1 -0
- package/dist/resources/trademarks.d.ts +21 -15
- package/dist/resources/trademarks.d.ts.map +1 -1
- package/dist/resources/trademarks.js +99 -78
- package/dist/resources/trademarks.js.map +1 -1
- package/dist/resources/watches.d.ts +21 -3
- package/dist/resources/watches.d.ts.map +1 -1
- package/dist/resources/watches.js +21 -3
- package/dist/resources/watches.js.map +1 -1
- package/dist/types.d.ts +302 -129
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -19,11 +19,14 @@ const signa = new Signa({ api_key: 'sig_xxx' });
|
|
|
19
19
|
const tm = await signa.trademarks.retrieve('tm_abc123');
|
|
20
20
|
|
|
21
21
|
// Search trademarks (POST with structured filters)
|
|
22
|
-
const results = await signa.trademarks.search({
|
|
22
|
+
const results = await signa.trademarks.search({ q: 'nike', filters: { offices: ['US'] } });
|
|
23
23
|
|
|
24
24
|
// Text search via GET
|
|
25
25
|
const searched = await signa.trademarks.list({ q: 'nike', offices: 'US' });
|
|
26
26
|
|
|
27
|
+
// Exact marks, excluding one owner (lists go on the wire as repeated keys)
|
|
28
|
+
const variants = await signa.trademarks.list({ mark_text_is: ['nike', 'nikey'], owner_id_not: ['own_xxx'] });
|
|
29
|
+
|
|
27
30
|
// List with auto-pagination
|
|
28
31
|
const page = await signa.trademarks.list({ limit: 50 });
|
|
29
32
|
for (const tm of page.data) {
|
|
@@ -61,7 +64,7 @@ await signa.trademarks.events('tm_xxx');
|
|
|
61
64
|
|
|
62
65
|
```ts
|
|
63
66
|
await signa.owners.retrieve('own_xxx');
|
|
64
|
-
await signa.owners.list({
|
|
67
|
+
await signa.owners.list({ q: 'Nike', country_code: 'US' });
|
|
65
68
|
await signa.owners.trademarks('own_xxx');
|
|
66
69
|
```
|
|
67
70
|
|
|
@@ -69,7 +72,7 @@ await signa.owners.trademarks('own_xxx');
|
|
|
69
72
|
|
|
70
73
|
```ts
|
|
71
74
|
await signa.attorneys.retrieve('att_xxx');
|
|
72
|
-
await signa.attorneys.list({
|
|
75
|
+
await signa.attorneys.list({ q: 'Smith' });
|
|
73
76
|
await signa.attorneys.trademarks('att_xxx');
|
|
74
77
|
```
|
|
75
78
|
|
|
@@ -77,7 +80,7 @@ await signa.attorneys.trademarks('att_xxx');
|
|
|
77
80
|
|
|
78
81
|
```ts
|
|
79
82
|
await signa.firms.retrieve('firm_xxx');
|
|
80
|
-
await signa.firms.list({
|
|
83
|
+
await signa.firms.list({ q: 'Baker McKenzie' });
|
|
81
84
|
await signa.firms.attorneys('firm_xxx');
|
|
82
85
|
await signa.firms.trademarks('firm_xxx');
|
|
83
86
|
```
|
|
@@ -91,19 +94,26 @@ await signa.proceedings.list({ trademark_id: 'tm_xxx' });
|
|
|
91
94
|
|
|
92
95
|
### `signa.trademarks.search()` (POST)
|
|
93
96
|
|
|
94
|
-
For
|
|
97
|
+
For structured filters, `mark_text` operators, exclusions and aggregations.
|
|
98
|
+
`q` ranks through the `similarity` channels; `Presets.knockout` and
|
|
99
|
+
`Presets.clearance` spread into any search request:
|
|
95
100
|
|
|
96
101
|
```ts
|
|
102
|
+
import Signa, { Presets } from '@signa-so/sdk';
|
|
103
|
+
|
|
97
104
|
await signa.trademarks.search({
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
filters: { offices: ['US'], status_primary: 'active', nice_classes: [25, 35] },
|
|
105
|
+
q: 'nike',
|
|
106
|
+
...Presets.clearance,
|
|
107
|
+
filters: { offices: ['US'], status_primary: 'active', nice_classes: [25, 35], mark_text: { starts_with: ['ni'] } },
|
|
108
|
+
exclude: { owner_id: ['own_xxx'] },
|
|
101
109
|
options: { aggregations: ['status_stage', 'office_code'], include_total: true },
|
|
102
|
-
sort: '-filing_date',
|
|
103
110
|
limit: 20,
|
|
104
111
|
});
|
|
105
112
|
```
|
|
106
113
|
|
|
114
|
+
Upgrading from 0.16 or earlier: see the 0.17.0 migration table in
|
|
115
|
+
[CHANGELOG.md](./CHANGELOG.md).
|
|
116
|
+
|
|
107
117
|
### `signa.references`
|
|
108
118
|
|
|
109
119
|
```ts
|
|
@@ -1,11 +1,25 @@
|
|
|
1
|
+
/** The six trademark search text operators (`mark_text_<op>`, `mark_text_not_<op>`). */
|
|
2
|
+
export declare const MARK_TEXT_OPERATORS: readonly ["is", "word", "starts_with", "ends_with", "contains", "pattern"];
|
|
3
|
+
/** The id exclusions (`<key>_not` on GET, `exclude.<key>` on POST). */
|
|
4
|
+
export declare const ID_EXCLUSION_KEYS: readonly ["entity_id", "entity_group", "owner_id", "trademark_ids"];
|
|
5
|
+
/**
|
|
6
|
+
* GET list params sent as repeated keys (`mark_text_is=a&mark_text_is=b`),
|
|
7
|
+
* never comma-joined: commas are legal inside marks, and the API does not
|
|
8
|
+
* split these keys on commas.
|
|
9
|
+
*/
|
|
10
|
+
export declare const REPEATED_LIST_KEYS: ReadonlySet<string>;
|
|
1
11
|
/**
|
|
2
12
|
* Build a URL query string from a params object.
|
|
3
13
|
*
|
|
4
14
|
* Conventions (see `.signa/docs/decisions/query-parameter-conventions.md`):
|
|
5
15
|
* - Arrays serialize as comma-separated: `?offices=US,EM`
|
|
16
|
+
* - Keys in `repeatedKeys` (default {@link REPEATED_LIST_KEYS}) serialize as
|
|
17
|
+
* repeated keys instead: `?mark_text_is=a&mark_text_is=b`
|
|
6
18
|
* - Date ranges live on flat underscore keys: `?filing_date_gte=2020-01-01`
|
|
7
|
-
* - Undefined/null values are omitted
|
|
19
|
+
* - Undefined/null values and empty arrays are omitted
|
|
8
20
|
* - Numbers and booleans are stringified
|
|
9
21
|
*/
|
|
10
|
-
export declare function buildQueryString(params: Record<string, unknown
|
|
22
|
+
export declare function buildQueryString(params: Record<string, unknown>, { repeatedKeys }?: {
|
|
23
|
+
repeatedKeys?: ReadonlySet<string>;
|
|
24
|
+
}): string;
|
|
11
25
|
//# 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
|
|
1
|
+
{"version":3,"file":"query-string.d.ts","sourceRoot":"","sources":["../../src/_internals/query-string.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,4EAA6E,CAAC;AAE9G,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,qEAAsE,CAAC;AAErG;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAIjD,CAAC;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,EAAE,YAAiC,EAAE,GAAE;IAAE,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAO,GACjF,MAAM,CAkBR"}
|
|
@@ -1,24 +1,44 @@
|
|
|
1
|
+
/** The six trademark search text operators (`mark_text_<op>`, `mark_text_not_<op>`). */
|
|
2
|
+
export const MARK_TEXT_OPERATORS = ['is', 'word', 'starts_with', 'ends_with', 'contains', 'pattern'];
|
|
3
|
+
/** The id exclusions (`<key>_not` on GET, `exclude.<key>` on POST). */
|
|
4
|
+
export const ID_EXCLUSION_KEYS = ['entity_id', 'entity_group', 'owner_id', 'trademark_ids'];
|
|
5
|
+
/**
|
|
6
|
+
* GET list params sent as repeated keys (`mark_text_is=a&mark_text_is=b`),
|
|
7
|
+
* never comma-joined: commas are legal inside marks, and the API does not
|
|
8
|
+
* split these keys on commas.
|
|
9
|
+
*/
|
|
10
|
+
export const REPEATED_LIST_KEYS = new Set([
|
|
11
|
+
...MARK_TEXT_OPERATORS.map((op) => `mark_text_${op}`),
|
|
12
|
+
...MARK_TEXT_OPERATORS.map((op) => `mark_text_not_${op}`),
|
|
13
|
+
...ID_EXCLUSION_KEYS.map((key) => `${key}_not`),
|
|
14
|
+
]);
|
|
1
15
|
/**
|
|
2
16
|
* Build a URL query string from a params object.
|
|
3
17
|
*
|
|
4
18
|
* Conventions (see `.signa/docs/decisions/query-parameter-conventions.md`):
|
|
5
19
|
* - Arrays serialize as comma-separated: `?offices=US,EM`
|
|
20
|
+
* - Keys in `repeatedKeys` (default {@link REPEATED_LIST_KEYS}) serialize as
|
|
21
|
+
* repeated keys instead: `?mark_text_is=a&mark_text_is=b`
|
|
6
22
|
* - Date ranges live on flat underscore keys: `?filing_date_gte=2020-01-01`
|
|
7
|
-
* - Undefined/null values are omitted
|
|
23
|
+
* - Undefined/null values and empty arrays are omitted
|
|
8
24
|
* - Numbers and booleans are stringified
|
|
9
25
|
*/
|
|
10
|
-
export function buildQueryString(params) {
|
|
26
|
+
export function buildQueryString(params, { repeatedKeys = REPEATED_LIST_KEYS } = {}) {
|
|
11
27
|
const parts = [];
|
|
28
|
+
const pair = (key, value) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`;
|
|
12
29
|
for (const [key, value] of Object.entries(params)) {
|
|
13
30
|
if (value === undefined || value === null)
|
|
14
31
|
continue;
|
|
15
32
|
if (Array.isArray(value)) {
|
|
16
|
-
if (value.length
|
|
17
|
-
|
|
18
|
-
|
|
33
|
+
if (value.length === 0)
|
|
34
|
+
continue;
|
|
35
|
+
if (repeatedKeys.has(key))
|
|
36
|
+
parts.push(...value.map((item) => pair(key, item)));
|
|
37
|
+
else
|
|
38
|
+
parts.push(pair(key, value.map(String).join(',')));
|
|
19
39
|
}
|
|
20
40
|
else {
|
|
21
|
-
parts.push(
|
|
41
|
+
parts.push(pair(key, value));
|
|
22
42
|
}
|
|
23
43
|
}
|
|
24
44
|
return parts.length > 0 ? `?${parts.join('&')}` : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-string.js","sourceRoot":"","sources":["../../src/_internals/query-string.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"query-string.js","sourceRoot":"","sources":["../../src/_internals/query-string.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AAE9G,uEAAuE;AACvE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,CAAU,CAAC;AAErG;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IAC7D,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;IACrD,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;IACzD,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC;CAChD,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAA+B,EAC/B,EAAE,YAAY,GAAG,kBAAkB,KAA6C,EAAE;IAElF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,KAAc,EAAE,EAAE,CAC3C,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IAEpE,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,KAAK,CAAC;gBAAE,SAAS;YACjC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;gBAC1E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/B,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"}
|