@superyachttimes/cli 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/collapse-last-modified.d.ts.map +1 -1
- package/dist/commands/collapse-last-modified.js +3 -3
- package/dist/commands/collapse-last-modified.js.map +1 -1
- package/dist/commands/create-api-key.d.ts.map +1 -1
- package/dist/commands/create-api-key.js +18 -25
- package/dist/commands/create-api-key.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -0
- package/dist/config.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapse-last-modified.d.ts","sourceRoot":"","sources":["../../src/commands/collapse-last-modified.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collapse-last-modified.d.ts","sourceRoot":"","sources":["../../src/commands/collapse-last-modified.ts"],"names":[],"mappings":"AAEA,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B1D"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { loadConfig } from "../config.js";
|
|
2
|
-
const URL = "https://api0.superyachtapi.com/api/yachtlikes/last-modified/collapse";
|
|
3
2
|
export async function collapseLastModified() {
|
|
4
3
|
const config = loadConfig();
|
|
4
|
+
const url = `${config.sytApiUrl}/api/yachtlikes/last-modified/collapse`;
|
|
5
5
|
console.log("Collapsing last-modified yacht likes...");
|
|
6
|
-
const res = await fetch(
|
|
6
|
+
const res = await fetch(url, {
|
|
7
7
|
method: "POST",
|
|
8
8
|
headers: {
|
|
9
9
|
Authorization: `Bearer ${config.sytApiKey}`,
|
|
@@ -11,7 +11,7 @@ export async function collapseLastModified() {
|
|
|
11
11
|
});
|
|
12
12
|
if (!res.ok) {
|
|
13
13
|
const body = await res.text().catch(() => "");
|
|
14
|
-
throw new Error(`POST ${
|
|
14
|
+
throw new Error(`POST ${url} failed: ${res.status} ${res.statusText}${body ? ` — ${body}` : ""}`);
|
|
15
15
|
}
|
|
16
16
|
const contentType = res.headers.get("content-type") ?? "";
|
|
17
17
|
const result = contentType.includes("application/json")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapse-last-modified.js","sourceRoot":"","sources":["../../src/commands/collapse-last-modified.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,
|
|
1
|
+
{"version":3,"file":"collapse-last-modified.js","sourceRoot":"","sources":["../../src/commands/collapse-last-modified.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,SAAS,wCAAwC,CAAC;IAExE,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IAEvD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,CAAC,SAAS,EAAE;SAC5C;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,QAAQ,GAAG,YAAY,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACjF,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACrD,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE;QAClB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAErB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-api-key.d.ts","sourceRoot":"","sources":["../../src/commands/create-api-key.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-api-key.d.ts","sourceRoot":"","sources":["../../src/commands/create-api-key.ts"],"names":[],"mappings":"AAKA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAsDlD"}
|
|
@@ -1,59 +1,52 @@
|
|
|
1
|
-
import { input, number, checkbox } from
|
|
2
|
-
import { loadConfig } from
|
|
3
|
-
const
|
|
4
|
-
const AVAILABLE_SCOPES = [
|
|
5
|
-
"internal",
|
|
6
|
-
"yachteye",
|
|
7
|
-
"position_data",
|
|
8
|
-
"extended-yacht-data",
|
|
9
|
-
];
|
|
1
|
+
import { input, number, checkbox } from '@inquirer/prompts';
|
|
2
|
+
import { loadConfig } from '../config.js';
|
|
3
|
+
const AVAILABLE_SCOPES = ['internal', 'yachteye', 'position_data', 'extended_yacht_data'];
|
|
10
4
|
export async function createApiKey() {
|
|
11
5
|
const config = loadConfig();
|
|
6
|
+
const url = `${config.sytApiUrl}/api/api-keys/create`;
|
|
12
7
|
const comment = await input({
|
|
13
|
-
message:
|
|
8
|
+
message: 'Comment (required)',
|
|
14
9
|
validate: (value) => {
|
|
15
10
|
if (!value.trim())
|
|
16
|
-
return
|
|
11
|
+
return 'Comment is required';
|
|
17
12
|
return true;
|
|
18
13
|
},
|
|
19
14
|
});
|
|
20
15
|
const recordLimit = await number({
|
|
21
|
-
message:
|
|
16
|
+
message: 'Record limit (leave empty to skip)',
|
|
22
17
|
required: false,
|
|
23
18
|
validate: (value) => {
|
|
24
19
|
if (value === undefined)
|
|
25
20
|
return true;
|
|
26
21
|
if (!Number.isInteger(value) || value < 1 || value > 100) {
|
|
27
|
-
return
|
|
22
|
+
return 'Record limit must be a number between 1 and 100';
|
|
28
23
|
}
|
|
29
24
|
return true;
|
|
30
25
|
},
|
|
31
26
|
});
|
|
32
27
|
const scopes = await checkbox({
|
|
33
|
-
message:
|
|
28
|
+
message: 'Select scopes',
|
|
34
29
|
choices: AVAILABLE_SCOPES.map((scope) => ({ name: scope, value: scope })),
|
|
35
30
|
});
|
|
36
31
|
const body = { comment, scopes };
|
|
37
32
|
if (recordLimit !== undefined) {
|
|
38
|
-
body.
|
|
33
|
+
body.record_limit = recordLimit;
|
|
39
34
|
}
|
|
40
|
-
console.log(
|
|
41
|
-
const res = await fetch(
|
|
42
|
-
method:
|
|
35
|
+
console.log('Creating API key...');
|
|
36
|
+
const res = await fetch(url, {
|
|
37
|
+
method: 'POST',
|
|
43
38
|
headers: {
|
|
44
39
|
Authorization: `Bearer ${config.sytApiKey}`,
|
|
45
|
-
|
|
40
|
+
'Content-Type': 'application/json',
|
|
46
41
|
},
|
|
47
42
|
body: JSON.stringify(body),
|
|
48
43
|
});
|
|
49
44
|
if (!res.ok) {
|
|
50
|
-
const text = await res.text().catch(() =>
|
|
51
|
-
throw new Error(`POST ${
|
|
45
|
+
const text = await res.text().catch(() => '');
|
|
46
|
+
throw new Error(`POST ${url} failed: ${res.status} ${res.statusText}${text ? ` — ${text}` : ''}`);
|
|
52
47
|
}
|
|
53
|
-
const contentType = res.headers.get(
|
|
54
|
-
const result = contentType.includes(
|
|
55
|
-
? await res.json()
|
|
56
|
-
: await res.text();
|
|
48
|
+
const contentType = res.headers.get('content-type') ?? '';
|
|
49
|
+
const result = contentType.includes('application/json') ? await res.json() : await res.text();
|
|
57
50
|
console.log(result);
|
|
58
51
|
}
|
|
59
52
|
//# sourceMappingURL=create-api-key.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-api-key.js","sourceRoot":"","sources":["../../src/commands/create-api-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"create-api-key.js","sourceRoot":"","sources":["../../src/commands/create-api-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,qBAAqB,CAAU,CAAA;AAElG,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,SAAS,sBAAsB,CAAA;IAErD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC;QAC1B,OAAO,EAAE,oBAAoB;QAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBAAE,OAAO,qBAAqB,CAAA;YAC/C,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC;QAC/B,OAAO,EAAE,oCAAoC;QAC7C,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAA;YACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;gBACzD,OAAO,iDAAiD,CAAA;YAC1D,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;QAC5B,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;KAC1E,CAAC,CAAA;IAEF,MAAM,IAAI,GAA4B,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;IACzD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAElC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,CAAC,SAAS,EAAE;YAC3C,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAA;IAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7C,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,YAAY,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACnG,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;IACzD,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAE7F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC"}
|
package/dist/config.d.ts
CHANGED
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAID,wBAAgB,UAAU,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAID,wBAAgB,UAAU,IAAI,MAAM,CAmDnC"}
|
package/dist/config.js
CHANGED
|
@@ -11,6 +11,10 @@ export function loadConfig() {
|
|
|
11
11
|
throw new Error(`Config file not found at ${CONFIG_PATH}`);
|
|
12
12
|
}
|
|
13
13
|
const config = JSON.parse(raw);
|
|
14
|
+
if (config.sytApiUrl == null ||
|
|
15
|
+
String(config.sytApiUrl).trim().length === 0) {
|
|
16
|
+
throw new Error(`Config file at ${CONFIG_PATH} must contain a non-empty "sytApiUrl" string`);
|
|
17
|
+
}
|
|
14
18
|
if (config.sytApiKey == null ||
|
|
15
19
|
String(config.sytApiKey).trim().length === 0) {
|
|
16
20
|
throw new Error(`Config file at ${CONFIG_PATH} must contain a non-empty "sytApiKey" string`);
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAgBlC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAErD,MAAM,UAAU,UAAU;IACxB,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,MAAM,GAAW,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEvC,IACE,MAAM,CAAC,SAAS,IAAI,IAAI;QACxB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAC5C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,kBAAkB,WAAW,8CAA8C,CAC5E,CAAC;IACJ,CAAC;IAED,IACE,MAAM,CAAC,SAAS,IAAI,IAAI;QACxB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAC5C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,kBAAkB,WAAW,8CAA8C,CAC5E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CACb,kBAAkB,WAAW,6CAA6C,CAC3E,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI;YAChB,cAAc;YACd,qBAAqB;YACrB,iBAAiB;YACjB,wBAAwB;SAChB,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,gCAAgC,GAAG,GAAG,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QACD,gEAAgE;QAChE,QAAQ,CAAC,mBAAmB,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|