@inkbox/cli 0.2.1 → 0.2.2
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 +29 -1
- package/dist/commands/number.js +6 -0
- package/dist/commands/number.js.map +1 -1
- package/dist/commands/text.js +162 -0
- package/dist/commands/text.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @inkbox/cli
|
|
2
2
|
|
|
3
|
-
Command-line interface for the [Inkbox API](https://inkbox.ai/docs) — email, phone,
|
|
3
|
+
Command-line interface for the [Inkbox API](https://inkbox.ai/docs) — identities, email, phone, and encrypted vault for AI agents.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -134,6 +134,34 @@ inkbox phone search-transcripts -i <handle> # Search transcripts
|
|
|
134
134
|
--limit <n> # Max results (default: 50)
|
|
135
135
|
```
|
|
136
136
|
|
|
137
|
+
### text
|
|
138
|
+
|
|
139
|
+
Text message (SMS/MMS) operations, scoped to an identity. Requires `-i <handle>`.
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
inkbox text list -i <handle> # List text messages
|
|
143
|
+
--limit <n> # Max results (default: 50)
|
|
144
|
+
--offset <n> # Pagination offset (default: 0)
|
|
145
|
+
--unread-only # Show only unread messages
|
|
146
|
+
|
|
147
|
+
inkbox text get <text-id> -i <handle> # Get a single text message
|
|
148
|
+
|
|
149
|
+
inkbox text conversations -i <handle> # List conversation summaries
|
|
150
|
+
--limit <n> # Max results (default: 50)
|
|
151
|
+
--offset <n> # Pagination offset (default: 0)
|
|
152
|
+
|
|
153
|
+
inkbox text conversation <remote-number> -i <handle> # Get messages in a conversation
|
|
154
|
+
--limit <n> # Max results (default: 50)
|
|
155
|
+
--offset <n> # Pagination offset (default: 0)
|
|
156
|
+
|
|
157
|
+
inkbox text search -i <handle> # Search text messages
|
|
158
|
+
-q, --query <query> # Search query (required)
|
|
159
|
+
--limit <n> # Max results (default: 50)
|
|
160
|
+
|
|
161
|
+
inkbox text mark-read <text-id> -i <handle> # Mark a text as read
|
|
162
|
+
inkbox text mark-conversation-read <remote-number> -i <handle> # Mark conversation as read
|
|
163
|
+
```
|
|
164
|
+
|
|
137
165
|
### vault
|
|
138
166
|
|
|
139
167
|
Encrypted vault operations. `get`, `create`, and credential listing require a vault key.
|
package/dist/commands/number.js
CHANGED
|
@@ -23,6 +23,7 @@ export function registerNumberCommands(program) {
|
|
|
23
23
|
.requiredOption("--handle <handle>", "Agent handle to provision for")
|
|
24
24
|
.option("--type <type>", "Number type: toll_free or local", "toll_free")
|
|
25
25
|
.option("--state <state>", "US state abbreviation (for local numbers)")
|
|
26
|
+
.option("--incoming-text-webhook-url <url>", "Webhook URL for incoming text messages")
|
|
26
27
|
.action(withErrorHandler(async function (cmdOpts) {
|
|
27
28
|
const opts = getGlobalOpts(this);
|
|
28
29
|
const inkbox = createClient(opts);
|
|
@@ -30,6 +31,7 @@ export function registerNumberCommands(program) {
|
|
|
30
31
|
agentHandle: cmdOpts.handle,
|
|
31
32
|
type: cmdOpts.type,
|
|
32
33
|
state: cmdOpts.state,
|
|
34
|
+
incomingTextWebhookUrl: cmdOpts.incomingTextWebhookUrl,
|
|
33
35
|
});
|
|
34
36
|
output({
|
|
35
37
|
number: num.number,
|
|
@@ -53,6 +55,7 @@ export function registerNumberCommands(program) {
|
|
|
53
55
|
incomingCallAction: num.incomingCallAction ?? null,
|
|
54
56
|
clientWebsocketUrl: num.clientWebsocketUrl ?? null,
|
|
55
57
|
incomingCallWebhookUrl: num.incomingCallWebhookUrl ?? null,
|
|
58
|
+
incomingTextWebhookUrl: num.incomingTextWebhookUrl ?? null,
|
|
56
59
|
createdAt: num.createdAt,
|
|
57
60
|
}, { json: !!opts.json });
|
|
58
61
|
}));
|
|
@@ -62,6 +65,7 @@ export function registerNumberCommands(program) {
|
|
|
62
65
|
.option("--incoming-call-action <action>", "Incoming call action: auto_accept, auto_reject, or webhook")
|
|
63
66
|
.option("--client-websocket-url <url>", "Client WebSocket URL for audio bridging")
|
|
64
67
|
.option("--incoming-call-webhook-url <url>", "Webhook URL for incoming calls")
|
|
68
|
+
.option("--incoming-text-webhook-url <url>", "Webhook URL for incoming text messages")
|
|
65
69
|
.action(withErrorHandler(async function (id, cmdOpts) {
|
|
66
70
|
const opts = getGlobalOpts(this);
|
|
67
71
|
const inkbox = createClient(opts);
|
|
@@ -69,6 +73,7 @@ export function registerNumberCommands(program) {
|
|
|
69
73
|
incomingCallAction: cmdOpts.incomingCallAction,
|
|
70
74
|
clientWebsocketUrl: cmdOpts.clientWebsocketUrl,
|
|
71
75
|
incomingCallWebhookUrl: cmdOpts.incomingCallWebhookUrl,
|
|
76
|
+
incomingTextWebhookUrl: cmdOpts.incomingTextWebhookUrl,
|
|
72
77
|
});
|
|
73
78
|
output({
|
|
74
79
|
number: num.number,
|
|
@@ -78,6 +83,7 @@ export function registerNumberCommands(program) {
|
|
|
78
83
|
incomingCallAction: num.incomingCallAction ?? null,
|
|
79
84
|
clientWebsocketUrl: num.clientWebsocketUrl ?? null,
|
|
80
85
|
incomingCallWebhookUrl: num.incomingCallWebhookUrl ?? null,
|
|
86
|
+
incomingTextWebhookUrl: num.incomingTextWebhookUrl ?? null,
|
|
81
87
|
}, { json: !!opts.json });
|
|
82
88
|
}));
|
|
83
89
|
number
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/commands/number.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mCAAmC,CAAC,CAAC;IAEpD,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CACL,gBAAgB,CAAC,KAAK;QACpB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,CAAC,OAAO,EAAE;YACd,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;YACjB,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC;SACzD,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEJ,MAAM;SACH,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,cAAc,CAAC,mBAAmB,EAAE,+BAA+B,CAAC;SACpE,MAAM,CAAC,eAAe,EAAE,iCAAiC,EAAE,WAAW,CAAC;SACvE,MAAM,CAAC,iBAAiB,EAAE,2CAA2C,CAAC;SACtE,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,
|
|
1
|
+
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/commands/number.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { createClient, getGlobalOpts } from "../client.js";
|
|
2
|
+
import { output } from "../output.js";
|
|
3
|
+
import { withErrorHandler } from "../errors.js";
|
|
4
|
+
export function registerTextCommands(program) {
|
|
5
|
+
const text = program
|
|
6
|
+
.command("text")
|
|
7
|
+
.description("Text message (SMS/MMS) operations (identity-scoped)");
|
|
8
|
+
text
|
|
9
|
+
.command("list")
|
|
10
|
+
.description("List text messages")
|
|
11
|
+
.requiredOption("-i, --identity <handle>", "Agent identity handle")
|
|
12
|
+
.option("--limit <n>", "Max results", "50")
|
|
13
|
+
.option("--offset <n>", "Pagination offset", "0")
|
|
14
|
+
.option("--unread-only", "Show only unread messages")
|
|
15
|
+
.action(withErrorHandler(async function (cmdOpts) {
|
|
16
|
+
const opts = getGlobalOpts(this);
|
|
17
|
+
const inkbox = createClient(opts);
|
|
18
|
+
const identity = await inkbox.getIdentity(cmdOpts.identity);
|
|
19
|
+
const texts = await identity.listTexts({
|
|
20
|
+
limit: parseInt(cmdOpts.limit, 10),
|
|
21
|
+
offset: parseInt(cmdOpts.offset, 10),
|
|
22
|
+
isRead: cmdOpts.unreadOnly ? false : undefined,
|
|
23
|
+
});
|
|
24
|
+
output(texts, {
|
|
25
|
+
json: !!opts.json,
|
|
26
|
+
columns: [
|
|
27
|
+
"id",
|
|
28
|
+
"direction",
|
|
29
|
+
"remotePhoneNumber",
|
|
30
|
+
"type",
|
|
31
|
+
"text",
|
|
32
|
+
"isRead",
|
|
33
|
+
"createdAt",
|
|
34
|
+
],
|
|
35
|
+
});
|
|
36
|
+
}));
|
|
37
|
+
text
|
|
38
|
+
.command("get <text-id>")
|
|
39
|
+
.description("Get a single text message")
|
|
40
|
+
.requiredOption("-i, --identity <handle>", "Agent identity handle")
|
|
41
|
+
.action(withErrorHandler(async function (textId, cmdOpts) {
|
|
42
|
+
const opts = getGlobalOpts(this);
|
|
43
|
+
const inkbox = createClient(opts);
|
|
44
|
+
const identity = await inkbox.getIdentity(cmdOpts.identity);
|
|
45
|
+
const msg = await identity.getText(textId);
|
|
46
|
+
output({
|
|
47
|
+
id: msg.id,
|
|
48
|
+
direction: msg.direction,
|
|
49
|
+
local: msg.localPhoneNumber,
|
|
50
|
+
remote: msg.remotePhoneNumber,
|
|
51
|
+
type: msg.type,
|
|
52
|
+
text: msg.text,
|
|
53
|
+
isRead: msg.isRead,
|
|
54
|
+
createdAt: msg.createdAt,
|
|
55
|
+
media: msg.media,
|
|
56
|
+
}, { json: !!opts.json });
|
|
57
|
+
}));
|
|
58
|
+
text
|
|
59
|
+
.command("conversations")
|
|
60
|
+
.description("List conversation summaries")
|
|
61
|
+
.requiredOption("-i, --identity <handle>", "Agent identity handle")
|
|
62
|
+
.option("--limit <n>", "Max results", "50")
|
|
63
|
+
.option("--offset <n>", "Pagination offset", "0")
|
|
64
|
+
.action(withErrorHandler(async function (cmdOpts) {
|
|
65
|
+
const opts = getGlobalOpts(this);
|
|
66
|
+
const inkbox = createClient(opts);
|
|
67
|
+
const identity = await inkbox.getIdentity(cmdOpts.identity);
|
|
68
|
+
const convos = await identity.listTextConversations({
|
|
69
|
+
limit: parseInt(cmdOpts.limit, 10),
|
|
70
|
+
offset: parseInt(cmdOpts.offset, 10),
|
|
71
|
+
});
|
|
72
|
+
output(convos, {
|
|
73
|
+
json: !!opts.json,
|
|
74
|
+
columns: [
|
|
75
|
+
"remotePhoneNumber",
|
|
76
|
+
"latestText",
|
|
77
|
+
"latestDirection",
|
|
78
|
+
"unreadCount",
|
|
79
|
+
"totalCount",
|
|
80
|
+
"latestMessageAt",
|
|
81
|
+
],
|
|
82
|
+
});
|
|
83
|
+
}));
|
|
84
|
+
text
|
|
85
|
+
.command("conversation <remote-number>")
|
|
86
|
+
.description("Get messages in a conversation")
|
|
87
|
+
.requiredOption("-i, --identity <handle>", "Agent identity handle")
|
|
88
|
+
.option("--limit <n>", "Max results", "50")
|
|
89
|
+
.option("--offset <n>", "Pagination offset", "0")
|
|
90
|
+
.action(withErrorHandler(async function (remoteNumber, cmdOpts) {
|
|
91
|
+
const opts = getGlobalOpts(this);
|
|
92
|
+
const inkbox = createClient(opts);
|
|
93
|
+
const identity = await inkbox.getIdentity(cmdOpts.identity);
|
|
94
|
+
const msgs = await identity.getTextConversation(remoteNumber, {
|
|
95
|
+
limit: parseInt(cmdOpts.limit, 10),
|
|
96
|
+
offset: parseInt(cmdOpts.offset, 10),
|
|
97
|
+
});
|
|
98
|
+
output(msgs, {
|
|
99
|
+
json: !!opts.json,
|
|
100
|
+
columns: [
|
|
101
|
+
"id",
|
|
102
|
+
"direction",
|
|
103
|
+
"remotePhoneNumber",
|
|
104
|
+
"text",
|
|
105
|
+
"type",
|
|
106
|
+
"createdAt",
|
|
107
|
+
],
|
|
108
|
+
});
|
|
109
|
+
}));
|
|
110
|
+
text
|
|
111
|
+
.command("search")
|
|
112
|
+
.description("Full-text search across text messages")
|
|
113
|
+
.requiredOption("-i, --identity <handle>", "Agent identity handle")
|
|
114
|
+
.requiredOption("-q, --query <query>", "Search query")
|
|
115
|
+
.option("--limit <n>", "Max results", "50")
|
|
116
|
+
.action(withErrorHandler(async function (cmdOpts) {
|
|
117
|
+
const opts = getGlobalOpts(this);
|
|
118
|
+
const inkbox = createClient(opts);
|
|
119
|
+
const identity = await inkbox.getIdentity(cmdOpts.identity);
|
|
120
|
+
if (!identity.phoneNumber) {
|
|
121
|
+
console.error(`Identity '${cmdOpts.identity}' has no phone number assigned.`);
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
const results = await inkbox.texts.search(identity.phoneNumber.id, {
|
|
125
|
+
q: cmdOpts.query,
|
|
126
|
+
limit: parseInt(cmdOpts.limit, 10),
|
|
127
|
+
});
|
|
128
|
+
output(results, {
|
|
129
|
+
json: !!opts.json,
|
|
130
|
+
columns: [
|
|
131
|
+
"id",
|
|
132
|
+
"direction",
|
|
133
|
+
"remotePhoneNumber",
|
|
134
|
+
"text",
|
|
135
|
+
"createdAt",
|
|
136
|
+
],
|
|
137
|
+
});
|
|
138
|
+
}));
|
|
139
|
+
text
|
|
140
|
+
.command("mark-read <text-id>")
|
|
141
|
+
.description("Mark a text message as read")
|
|
142
|
+
.requiredOption("-i, --identity <handle>", "Agent identity handle")
|
|
143
|
+
.action(withErrorHandler(async function (textId, cmdOpts) {
|
|
144
|
+
const opts = getGlobalOpts(this);
|
|
145
|
+
const inkbox = createClient(opts);
|
|
146
|
+
const identity = await inkbox.getIdentity(cmdOpts.identity);
|
|
147
|
+
await identity.markTextRead(textId);
|
|
148
|
+
console.log(`Marked text ${textId} as read.`);
|
|
149
|
+
}));
|
|
150
|
+
text
|
|
151
|
+
.command("mark-conversation-read <remote-number>")
|
|
152
|
+
.description("Mark all messages in a conversation as read")
|
|
153
|
+
.requiredOption("-i, --identity <handle>", "Agent identity handle")
|
|
154
|
+
.action(withErrorHandler(async function (remoteNumber, cmdOpts) {
|
|
155
|
+
const opts = getGlobalOpts(this);
|
|
156
|
+
const inkbox = createClient(opts);
|
|
157
|
+
const identity = await inkbox.getIdentity(cmdOpts.identity);
|
|
158
|
+
const result = await identity.markTextConversationRead(remoteNumber);
|
|
159
|
+
console.log(`Marked ${result.updatedCount} message(s) in conversation with ${remoteNumber} as read.`);
|
|
160
|
+
}));
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/commands/text.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { Command } from "commander";
|
|
|
3
3
|
import { registerIdentityCommands } from "./commands/identity.js";
|
|
4
4
|
import { registerEmailCommands } from "./commands/email.js";
|
|
5
5
|
import { registerPhoneCommands } from "./commands/phone.js";
|
|
6
|
+
import { registerTextCommands } from "./commands/text.js";
|
|
6
7
|
import { registerVaultCommands } from "./commands/vault.js";
|
|
7
8
|
import { registerMailboxCommands } from "./commands/mailbox.js";
|
|
8
9
|
import { registerNumberCommands } from "./commands/number.js";
|
|
@@ -19,6 +20,7 @@ const program = new Command()
|
|
|
19
20
|
registerIdentityCommands(program);
|
|
20
21
|
registerEmailCommands(program);
|
|
21
22
|
registerPhoneCommands(program);
|
|
23
|
+
registerTextCommands(program);
|
|
22
24
|
registerVaultCommands(program);
|
|
23
25
|
registerMailboxCommands(program);
|
|
24
26
|
registerNumberCommands(program);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,4EAA4E,CAAC;KACzF,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,iBAAiB,EAAE,wCAAwC,CAAC;KACnE,MAAM,CAAC,mBAAmB,EAAE,4DAA4D,CAAC;KACzF,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;KACnD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAE7C,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEjC,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,4EAA4E,CAAC;KACzF,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,iBAAiB,EAAE,wCAAwC,CAAC;KACnE,MAAM,CAAC,mBAAmB,EAAE,4DAA4D,CAAC;KACzF,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;KACnD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAE7C,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEjC,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inkbox/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "CLI for the Inkbox API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"prepublishOnly": "npm run build"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@inkbox/sdk": "^0.2.
|
|
20
|
+
"@inkbox/sdk": "^0.2.2",
|
|
21
21
|
"commander": "^13.0.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|