@1msg/cli 0.1.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/ARCHITECTURE.md +21 -0
- package/LICENSE +21 -0
- package/README.md +69 -0
- package/dist/commands.d.ts +8 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +90 -0
- package/dist/commands.js.map +1 -0
- package/dist/completion.d.ts +11 -0
- package/dist/completion.d.ts.map +1 -0
- package/dist/completion.js +205 -0
- package/dist/completion.js.map +1 -0
- package/dist/config.d.ts +37 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +185 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +30 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +111 -0
- package/dist/context.js.map +1 -0
- package/dist/dest.d.ts +27 -0
- package/dist/dest.d.ts.map +1 -0
- package/dist/dest.js +63 -0
- package/dist/dest.js.map +1 -0
- package/dist/errors.d.ts +34 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +133 -0
- package/dist/errors.js.map +1 -0
- package/dist/execute.d.ts +11 -0
- package/dist/execute.d.ts.map +1 -0
- package/dist/execute.js +89 -0
- package/dist/execute.js.map +1 -0
- package/dist/help-text.d.ts +3 -0
- package/dist/help-text.d.ts.map +1 -0
- package/dist/help-text.js +55 -0
- package/dist/help-text.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/io.d.ts +14 -0
- package/dist/io.d.ts.map +1 -0
- package/dist/io.js +128 -0
- package/dist/io.js.map +1 -0
- package/dist/local.d.ts +30 -0
- package/dist/local.d.ts.map +1 -0
- package/dist/local.js +247 -0
- package/dist/local.js.map +1 -0
- package/dist/output.d.ts +20 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +118 -0
- package/dist/output.js.map +1 -0
- package/dist/paths.d.ts +5 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +33 -0
- package/dist/paths.js.map +1 -0
- package/dist/program.d.ts +5 -0
- package/dist/program.d.ts.map +1 -0
- package/dist/program.js +507 -0
- package/dist/program.js.map +1 -0
- package/dist/rest.d.ts +112 -0
- package/dist/rest.d.ts.map +1 -0
- package/dist/rest.js +549 -0
- package/dist/rest.js.map +1 -0
- package/dist/run.d.ts +3 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +33 -0
- package/dist/run.js.map +1 -0
- package/dist/send.d.ts +188 -0
- package/dist/send.d.ts.map +1 -0
- package/dist/send.js +498 -0
- package/dist/send.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +50 -0
package/dist/config.js
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.normalizeBaseUrl = normalizeBaseUrl;
|
|
7
|
+
exports.envChannel = envChannel;
|
|
8
|
+
exports.envBaseUrl = envBaseUrl;
|
|
9
|
+
exports.envInstanceId = envInstanceId;
|
|
10
|
+
exports.envToken = envToken;
|
|
11
|
+
exports.loadConfig = loadConfig;
|
|
12
|
+
exports.saveConfig = saveConfig;
|
|
13
|
+
exports.emptyConfig = emptyConfig;
|
|
14
|
+
exports.resolveChannel = resolveChannel;
|
|
15
|
+
exports.lookupChannelName = lookupChannelName;
|
|
16
|
+
exports.channelNames = channelNames;
|
|
17
|
+
const path_1 = __importDefault(require("path"));
|
|
18
|
+
const yaml_1 = require("yaml");
|
|
19
|
+
const errors_1 = require("./errors");
|
|
20
|
+
const paths_1 = require("./paths");
|
|
21
|
+
const PUBLIC_API_HOST_ALIASES = {
|
|
22
|
+
'api.1msg.io': 'api.1msg.io',
|
|
23
|
+
'www.api.1msg.io': 'api.1msg.io',
|
|
24
|
+
'sandbox.1msg.io': 'sandbox.1msg.io',
|
|
25
|
+
'www.sandbox.1msg.io': 'sandbox.1msg.io',
|
|
26
|
+
'api.sandbox.1msg.io': 'sandbox.1msg.io',
|
|
27
|
+
};
|
|
28
|
+
function normalizeBaseUrl(raw) {
|
|
29
|
+
const trimmed = raw.trim();
|
|
30
|
+
if (!trimmed) {
|
|
31
|
+
throw new errors_1.UsageError('base URL must not be empty');
|
|
32
|
+
}
|
|
33
|
+
const withScheme = /^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(trimmed)
|
|
34
|
+
? trimmed
|
|
35
|
+
: `https://${trimmed}`;
|
|
36
|
+
let parsed;
|
|
37
|
+
try {
|
|
38
|
+
parsed = new URL(withScheme);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
throw new errors_1.UsageError(`Invalid base URL '${raw}'. Use https://api.1msg.io or https://sandbox.1msg.io`);
|
|
42
|
+
}
|
|
43
|
+
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
|
|
44
|
+
throw new errors_1.UsageError(`Invalid base URL protocol '${parsed.protocol}'`);
|
|
45
|
+
}
|
|
46
|
+
const hostname = parsed.hostname.toLowerCase();
|
|
47
|
+
const canonical = PUBLIC_API_HOST_ALIASES[hostname];
|
|
48
|
+
if (canonical)
|
|
49
|
+
return `https://${canonical}`;
|
|
50
|
+
const protocol = hostname.endsWith('.1msg.io') ? 'https:' : parsed.protocol;
|
|
51
|
+
const host = parsed.port ? `${hostname}:${parsed.port}` : hostname;
|
|
52
|
+
return `${protocol}//${host}`;
|
|
53
|
+
}
|
|
54
|
+
function readEnv(ctx, name, aliases = []) {
|
|
55
|
+
for (const key of [name, ...aliases]) {
|
|
56
|
+
const value = ctx.env[key]?.trim();
|
|
57
|
+
if (value)
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
function envChannel(ctx) {
|
|
63
|
+
return readEnv(ctx, 'ONE_MSG_CHANNEL');
|
|
64
|
+
}
|
|
65
|
+
function envBaseUrl(ctx) {
|
|
66
|
+
return readEnv(ctx, 'ONE_MSG_BASE_URL', [
|
|
67
|
+
'CHAT_API_BASE_URL',
|
|
68
|
+
'CHAT_API_ROOT_URL',
|
|
69
|
+
'CHAT_API_URL',
|
|
70
|
+
]);
|
|
71
|
+
}
|
|
72
|
+
function envInstanceId(ctx) {
|
|
73
|
+
return readEnv(ctx, 'ONE_MSG_INSTANCE_ID', ['CHAT_API_INSTANCE_ID', 'INSTANCE_ID']);
|
|
74
|
+
}
|
|
75
|
+
function envToken(ctx) {
|
|
76
|
+
return readEnv(ctx, 'ONE_MSG_TOKEN', ['CHAT_API_TOKEN', 'CHAT_API_KEY', 'TOKEN']);
|
|
77
|
+
}
|
|
78
|
+
function loadConfig(ctx) {
|
|
79
|
+
const filePath = (0, paths_1.configFilePath)(ctx);
|
|
80
|
+
if (!ctx.fs.existsSync(filePath))
|
|
81
|
+
return null;
|
|
82
|
+
const raw = ctx.fs.readFileSync(filePath, 'utf8');
|
|
83
|
+
if (!String(raw).trim())
|
|
84
|
+
return null;
|
|
85
|
+
const parsed = (0, yaml_1.parse)(String(raw));
|
|
86
|
+
if (!parsed || typeof parsed !== 'object')
|
|
87
|
+
return null;
|
|
88
|
+
const channels = parsed.channels && typeof parsed.channels === 'object' ? parsed.channels : {};
|
|
89
|
+
return {
|
|
90
|
+
version: 1,
|
|
91
|
+
default_channel: parsed.default_channel,
|
|
92
|
+
channels,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function saveConfig(ctx, config) {
|
|
96
|
+
const filePath = (0, paths_1.configFilePath)(ctx);
|
|
97
|
+
const parent = path_1.default.dirname(filePath);
|
|
98
|
+
ctx.fs.mkdirSync(parent, { recursive: true, mode: 0o700 });
|
|
99
|
+
const yaml = (0, yaml_1.stringify)({
|
|
100
|
+
version: 1,
|
|
101
|
+
default_channel: config.default_channel,
|
|
102
|
+
channels: config.channels,
|
|
103
|
+
});
|
|
104
|
+
ctx.fs.writeFileSync(filePath, yaml, { encoding: 'utf8', mode: 0o600 });
|
|
105
|
+
try {
|
|
106
|
+
ctx.fs.chmodSync(filePath, 0o600);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// Windows may ignore mode.
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function emptyConfig() {
|
|
113
|
+
return { version: 1, channels: {} };
|
|
114
|
+
}
|
|
115
|
+
function resolveChannel(ctx, flags) {
|
|
116
|
+
const file = loadConfig(ctx);
|
|
117
|
+
const channelName = flags.channel ||
|
|
118
|
+
envChannel(ctx) ||
|
|
119
|
+
file?.default_channel ||
|
|
120
|
+
(file && Object.keys(file.channels).length === 1
|
|
121
|
+
? Object.keys(file.channels)[0]
|
|
122
|
+
: undefined);
|
|
123
|
+
if (channelName) {
|
|
124
|
+
const block = file?.channels[channelName];
|
|
125
|
+
if (!block) {
|
|
126
|
+
throw new errors_1.UsageError(`channel "${channelName}" not in config`, '1msg channel list');
|
|
127
|
+
}
|
|
128
|
+
return fillChannel(ctx, flags, block, channelName);
|
|
129
|
+
}
|
|
130
|
+
const baseUrl = flags.baseUrl || envBaseUrl(ctx);
|
|
131
|
+
const instanceId = flags.instanceId || envInstanceId(ctx);
|
|
132
|
+
const token = flags.token || envToken(ctx);
|
|
133
|
+
if (baseUrl && instanceId && token) {
|
|
134
|
+
return {
|
|
135
|
+
baseUrl: normalizeBaseUrl(baseUrl),
|
|
136
|
+
instanceId,
|
|
137
|
+
token,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
throw new errors_1.NotConfiguredError();
|
|
141
|
+
}
|
|
142
|
+
function fillChannel(ctx, flags, block, name) {
|
|
143
|
+
let baseUrl = block.base_url?.trim() || '';
|
|
144
|
+
let instanceId = block.instance_id?.trim() || '';
|
|
145
|
+
let token = block.token?.trim() || '';
|
|
146
|
+
if (!baseUrl)
|
|
147
|
+
baseUrl = envBaseUrl(ctx) || '';
|
|
148
|
+
if (!instanceId)
|
|
149
|
+
instanceId = envInstanceId(ctx) || '';
|
|
150
|
+
if (!token)
|
|
151
|
+
token = envToken(ctx) || '';
|
|
152
|
+
if (flags.baseUrl)
|
|
153
|
+
baseUrl = flags.baseUrl;
|
|
154
|
+
if (flags.instanceId)
|
|
155
|
+
instanceId = flags.instanceId;
|
|
156
|
+
if (flags.token)
|
|
157
|
+
token = flags.token;
|
|
158
|
+
if (!baseUrl || !instanceId || !token) {
|
|
159
|
+
throw new errors_1.NotConfiguredError();
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
name,
|
|
163
|
+
baseUrl: normalizeBaseUrl(baseUrl),
|
|
164
|
+
instanceId,
|
|
165
|
+
token,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
function lookupChannelName(config, nameOrId) {
|
|
169
|
+
if (config.channels[nameOrId])
|
|
170
|
+
return nameOrId;
|
|
171
|
+
const matches = Object.entries(config.channels)
|
|
172
|
+
.filter(([, block]) => block.instance_id === nameOrId)
|
|
173
|
+
.map(([name]) => name);
|
|
174
|
+
if (matches.length === 1)
|
|
175
|
+
return matches[0];
|
|
176
|
+
if (matches.length === 0) {
|
|
177
|
+
throw new errors_1.UsageError(`channel "${nameOrId}" not in config`, '1msg channel list');
|
|
178
|
+
}
|
|
179
|
+
throw new errors_1.UsageError(`instance id ${nameOrId} matches ${matches.join(' and ')}; pass a config name`);
|
|
180
|
+
}
|
|
181
|
+
function channelNames(ctx) {
|
|
182
|
+
const file = loadConfig(ctx);
|
|
183
|
+
return file ? Object.keys(file.channels) : [];
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { Writable } from 'stream';
|
|
3
|
+
import { type Client, type ClientConfigOptions } from '@1msg/sdk';
|
|
4
|
+
export interface CliFs {
|
|
5
|
+
readFileSync: typeof fs.readFileSync;
|
|
6
|
+
writeFileSync: typeof fs.writeFileSync;
|
|
7
|
+
mkdirSync: typeof fs.mkdirSync;
|
|
8
|
+
existsSync: typeof fs.existsSync;
|
|
9
|
+
chmodSync: typeof fs.chmodSync;
|
|
10
|
+
}
|
|
11
|
+
export interface CliContext {
|
|
12
|
+
env: NodeJS.ProcessEnv;
|
|
13
|
+
cwd: string;
|
|
14
|
+
homedir: string;
|
|
15
|
+
platform: NodeJS.Platform;
|
|
16
|
+
stdout: Writable;
|
|
17
|
+
stderr: Writable;
|
|
18
|
+
stdin: NodeJS.ReadableStream;
|
|
19
|
+
stdinIsTTY: boolean;
|
|
20
|
+
createClient: (options: ClientConfigOptions) => Client;
|
|
21
|
+
now: () => Date;
|
|
22
|
+
fs: CliFs;
|
|
23
|
+
prompt: {
|
|
24
|
+
question: (query: string) => Promise<string>;
|
|
25
|
+
hidden: (query: string) => Promise<string>;
|
|
26
|
+
};
|
|
27
|
+
readStdin: () => Promise<string>;
|
|
28
|
+
}
|
|
29
|
+
export declare function createDefaultContext(overrides?: Partial<CliContext>): CliContext;
|
|
30
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhF,MAAM,WAAW,KAAK;IACpB,YAAY,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC;IACrC,aAAa,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC;IACvC,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC;IAC/B,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACjC,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,MAAM,CAAC;IACvD,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE;QACN,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAC5C,CAAC;IACF,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;AAiFD,wBAAgB,oBAAoB,CAAC,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,UAAU,CA6BpF"}
|
package/dist/context.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createDefaultContext = createDefaultContext;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const os_1 = __importDefault(require("os"));
|
|
9
|
+
const sdk_1 = require("@1msg/sdk");
|
|
10
|
+
function collectStream(stream) {
|
|
11
|
+
return new Promise((resolve, reject) => {
|
|
12
|
+
const chunks = [];
|
|
13
|
+
stream.on('data', (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
|
|
14
|
+
stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
15
|
+
stream.on('error', reject);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function question(stdin, stdout, query) {
|
|
19
|
+
stdout.write(query);
|
|
20
|
+
return new Promise((resolve, reject) => {
|
|
21
|
+
const readable = stdin;
|
|
22
|
+
readable.setEncoding?.('utf8');
|
|
23
|
+
const onData = (chunk) => {
|
|
24
|
+
cleanup();
|
|
25
|
+
resolve(String(chunk).replace(/\r?\n$/, ''));
|
|
26
|
+
};
|
|
27
|
+
const onError = (err) => {
|
|
28
|
+
cleanup();
|
|
29
|
+
reject(err);
|
|
30
|
+
};
|
|
31
|
+
const cleanup = () => {
|
|
32
|
+
stdin.off('data', onData);
|
|
33
|
+
stdin.off('error', onError);
|
|
34
|
+
};
|
|
35
|
+
stdin.on('data', onData);
|
|
36
|
+
stdin.on('error', onError);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async function hiddenQuestion(stdin, stdout, query) {
|
|
40
|
+
const tty = stdin;
|
|
41
|
+
stdout.write(query);
|
|
42
|
+
if (typeof tty.setRawMode !== 'function') {
|
|
43
|
+
return question(stdin, stdout, '');
|
|
44
|
+
}
|
|
45
|
+
tty.setRawMode(true);
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
let value = '';
|
|
48
|
+
const onData = (chunk) => {
|
|
49
|
+
const text = String(chunk);
|
|
50
|
+
if (text === '\n' || text === '\r' || text === '\u0004') {
|
|
51
|
+
cleanup();
|
|
52
|
+
stdout.write('\n');
|
|
53
|
+
resolve(value);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (text === '\u0003') {
|
|
57
|
+
cleanup();
|
|
58
|
+
reject(new Error('cancelled'));
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (text === '\u007f' || text === '\b') {
|
|
62
|
+
value = value.slice(0, -1);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
value += text;
|
|
66
|
+
};
|
|
67
|
+
const onError = (err) => {
|
|
68
|
+
cleanup();
|
|
69
|
+
reject(err);
|
|
70
|
+
};
|
|
71
|
+
const cleanup = () => {
|
|
72
|
+
if (typeof tty.setRawMode === 'function')
|
|
73
|
+
tty.setRawMode(false);
|
|
74
|
+
stdin.off('data', onData);
|
|
75
|
+
stdin.off('error', onError);
|
|
76
|
+
};
|
|
77
|
+
stdin.on('data', onData);
|
|
78
|
+
stdin.on('error', onError);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function createDefaultContext(overrides = {}) {
|
|
82
|
+
const stdin = overrides.stdin ?? process.stdin;
|
|
83
|
+
const stdout = overrides.stdout ?? process.stdout;
|
|
84
|
+
const stderr = overrides.stderr ?? process.stderr;
|
|
85
|
+
const env = overrides.env ?? process.env;
|
|
86
|
+
return {
|
|
87
|
+
env,
|
|
88
|
+
cwd: overrides.cwd ?? process.cwd(),
|
|
89
|
+
homedir: overrides.homedir ?? os_1.default.homedir(),
|
|
90
|
+
platform: overrides.platform ?? process.platform,
|
|
91
|
+
stdout,
|
|
92
|
+
stderr,
|
|
93
|
+
stdin,
|
|
94
|
+
stdinIsTTY: overrides.stdinIsTTY ?? Boolean(stdin.isTTY),
|
|
95
|
+
createClient: overrides.createClient ?? sdk_1.createClient,
|
|
96
|
+
now: overrides.now ?? (() => new Date()),
|
|
97
|
+
fs: overrides.fs ?? {
|
|
98
|
+
readFileSync: fs_1.default.readFileSync,
|
|
99
|
+
writeFileSync: fs_1.default.writeFileSync,
|
|
100
|
+
mkdirSync: fs_1.default.mkdirSync,
|
|
101
|
+
existsSync: fs_1.default.existsSync,
|
|
102
|
+
chmodSync: fs_1.default.chmodSync,
|
|
103
|
+
},
|
|
104
|
+
prompt: overrides.prompt ?? {
|
|
105
|
+
question: (query) => question(stdin, stdout, query),
|
|
106
|
+
hidden: (query) => hiddenQuestion(stdin, stdout, query),
|
|
107
|
+
},
|
|
108
|
+
readStdin: overrides.readStdin ?? (() => collectStream(stdin)),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/dest.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface DestOpts {
|
|
2
|
+
to?: string;
|
|
3
|
+
chatId?: string;
|
|
4
|
+
quote?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface DestFields {
|
|
7
|
+
phone?: number;
|
|
8
|
+
chatId?: string;
|
|
9
|
+
quotedMsgId?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function requireDest(opts: DestOpts, help?: string, options?: {
|
|
12
|
+
allowChatId?: boolean;
|
|
13
|
+
toOnly?: boolean;
|
|
14
|
+
}): DestFields;
|
|
15
|
+
export declare function destFields(opts: DestOpts): DestFields;
|
|
16
|
+
export declare function destStringPhone(opts: DestOpts): {
|
|
17
|
+
phone?: string;
|
|
18
|
+
chatId?: string;
|
|
19
|
+
quotedMsgId?: string;
|
|
20
|
+
};
|
|
21
|
+
export declare function parsePhone(to: string): number;
|
|
22
|
+
export declare function mergeDest(body: Record<string, unknown>, dest: DestFields | {
|
|
23
|
+
phone?: string | number;
|
|
24
|
+
chatId?: string;
|
|
25
|
+
quotedMsgId?: string;
|
|
26
|
+
}): Record<string, unknown>;
|
|
27
|
+
//# sourceMappingURL=dest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dest.d.ts","sourceRoot":"","sources":["../src/dest.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,QAAQ,EACd,IAAI,SAAqB,EACzB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACxD,UAAU,CAeZ;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAMrD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAMA;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQ7C;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACpF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB"}
|
package/dist/dest.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requireDest = requireDest;
|
|
4
|
+
exports.destFields = destFields;
|
|
5
|
+
exports.destStringPhone = destStringPhone;
|
|
6
|
+
exports.parsePhone = parsePhone;
|
|
7
|
+
exports.mergeDest = mergeDest;
|
|
8
|
+
const errors_1 = require("./errors");
|
|
9
|
+
function requireDest(opts, help = '1msg send --help', options = {}) {
|
|
10
|
+
const allowChatId = options.toOnly ? false : options.allowChatId !== false;
|
|
11
|
+
if (options.toOnly && opts.chatId) {
|
|
12
|
+
(0, errors_1.usage)('this command accepts --to only (no --chat-id)', help);
|
|
13
|
+
}
|
|
14
|
+
if (opts.to && opts.chatId) {
|
|
15
|
+
(0, errors_1.usage)('pass exactly one of --to or --chat-id', help);
|
|
16
|
+
}
|
|
17
|
+
if (!opts.to && !opts.chatId) {
|
|
18
|
+
(0, errors_1.usage)(allowChatId ? 'missing destination: pass --to or --chat-id' : 'missing destination: pass --to', help);
|
|
19
|
+
}
|
|
20
|
+
return destFields(opts);
|
|
21
|
+
}
|
|
22
|
+
function destFields(opts) {
|
|
23
|
+
const out = {};
|
|
24
|
+
if (opts.chatId)
|
|
25
|
+
out.chatId = opts.chatId;
|
|
26
|
+
if (opts.to)
|
|
27
|
+
out.phone = parsePhone(opts.to);
|
|
28
|
+
if (opts.quote)
|
|
29
|
+
out.quotedMsgId = opts.quote;
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
function destStringPhone(opts) {
|
|
33
|
+
const out = {};
|
|
34
|
+
if (opts.chatId)
|
|
35
|
+
out.chatId = opts.chatId;
|
|
36
|
+
if (opts.to)
|
|
37
|
+
out.phone = String(parsePhone(opts.to));
|
|
38
|
+
if (opts.quote)
|
|
39
|
+
out.quotedMsgId = opts.quote;
|
|
40
|
+
return out;
|
|
41
|
+
}
|
|
42
|
+
function parsePhone(to) {
|
|
43
|
+
const cleaned = to.trim().replace(/^\+/, '');
|
|
44
|
+
if (!/^\d+$/.test(cleaned)) {
|
|
45
|
+
(0, errors_1.usage)('invalid --to: expected phone with country code, no +');
|
|
46
|
+
}
|
|
47
|
+
const n = Number(cleaned);
|
|
48
|
+
if (!Number.isSafeInteger(n))
|
|
49
|
+
(0, errors_1.usage)('invalid --to: phone number out of range');
|
|
50
|
+
return n;
|
|
51
|
+
}
|
|
52
|
+
function mergeDest(body, dest) {
|
|
53
|
+
const out = { ...body };
|
|
54
|
+
if (dest.phone !== undefined && out.phone === undefined)
|
|
55
|
+
out.phone = dest.phone;
|
|
56
|
+
if (dest.chatId && out.chatId === undefined)
|
|
57
|
+
out.chatId = dest.chatId;
|
|
58
|
+
if ('quotedMsgId' in dest && dest.quotedMsgId && out.quotedMsgId === undefined) {
|
|
59
|
+
out.quotedMsgId = dest.quotedMsgId;
|
|
60
|
+
}
|
|
61
|
+
return out;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=dest.js.map
|
package/dist/dest.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dest.js","sourceRoot":"","sources":["../src/dest.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare const EXIT_OK = 0;
|
|
2
|
+
export declare const EXIT_USAGE = 1;
|
|
3
|
+
export declare const EXIT_API_4XX = 2;
|
|
4
|
+
export declare const EXIT_API_5XX = 3;
|
|
5
|
+
export declare const EXIT_NETWORK = 4;
|
|
6
|
+
export declare const EXIT_NOT_CONFIGURED = 5;
|
|
7
|
+
export declare class CliExit extends Error {
|
|
8
|
+
readonly exitCode: number;
|
|
9
|
+
constructor(exitCode: number, message?: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class UsageError extends Error {
|
|
12
|
+
readonly exitCode = 1;
|
|
13
|
+
readonly see?: string;
|
|
14
|
+
constructor(message: string, see?: string);
|
|
15
|
+
}
|
|
16
|
+
export declare class NotConfiguredError extends Error {
|
|
17
|
+
readonly exitCode = 5;
|
|
18
|
+
constructor(message?: string);
|
|
19
|
+
}
|
|
20
|
+
export declare class ApiError extends Error {
|
|
21
|
+
readonly status: number;
|
|
22
|
+
readonly rawBody: string;
|
|
23
|
+
readonly jsonBody: unknown;
|
|
24
|
+
constructor(status: number, rawBody: string, jsonBody: unknown, message: string);
|
|
25
|
+
get exitCode(): number;
|
|
26
|
+
}
|
|
27
|
+
export declare class NetworkError extends Error {
|
|
28
|
+
readonly exitCode = 4;
|
|
29
|
+
constructor(message: string);
|
|
30
|
+
}
|
|
31
|
+
export declare function usage(message: string, see?: string): never;
|
|
32
|
+
export declare function normalizeThrown(error: unknown): Promise<Error>;
|
|
33
|
+
export declare function hintFor(error: Error): string | undefined;
|
|
34
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,qBAAa,OAAQ,SAAQ,KAAK;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACd,QAAQ,EAAE,MAAM,EAAE,OAAO,SAAK;CAK3C;AAED,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,QAAQ,KAAc;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;CAK1C;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,QAAQ,KAAuB;gBAC5B,OAAO,SAA0C;CAI9D;AAED,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;gBACf,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IAQ/E,IAAI,QAAQ,IAAI,MAAM,CAErB;CACF;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,QAAQ,KAAgB;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAE1D;AAsBD,wBAAsB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAqDpE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAQxD"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NetworkError = exports.ApiError = exports.NotConfiguredError = exports.UsageError = exports.CliExit = exports.EXIT_NOT_CONFIGURED = exports.EXIT_NETWORK = exports.EXIT_API_5XX = exports.EXIT_API_4XX = exports.EXIT_USAGE = exports.EXIT_OK = void 0;
|
|
4
|
+
exports.usage = usage;
|
|
5
|
+
exports.normalizeThrown = normalizeThrown;
|
|
6
|
+
exports.hintFor = hintFor;
|
|
7
|
+
exports.EXIT_OK = 0;
|
|
8
|
+
exports.EXIT_USAGE = 1;
|
|
9
|
+
exports.EXIT_API_4XX = 2;
|
|
10
|
+
exports.EXIT_API_5XX = 3;
|
|
11
|
+
exports.EXIT_NETWORK = 4;
|
|
12
|
+
exports.EXIT_NOT_CONFIGURED = 5;
|
|
13
|
+
class CliExit extends Error {
|
|
14
|
+
constructor(exitCode, message = '') {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = 'CliExit';
|
|
17
|
+
this.exitCode = exitCode;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.CliExit = CliExit;
|
|
21
|
+
class UsageError extends Error {
|
|
22
|
+
constructor(message, see) {
|
|
23
|
+
super(message);
|
|
24
|
+
this.exitCode = exports.EXIT_USAGE;
|
|
25
|
+
this.name = 'UsageError';
|
|
26
|
+
this.see = see;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.UsageError = UsageError;
|
|
30
|
+
class NotConfiguredError extends Error {
|
|
31
|
+
constructor(message = 'no channel configured — run 1msg init') {
|
|
32
|
+
super(message);
|
|
33
|
+
this.exitCode = exports.EXIT_NOT_CONFIGURED;
|
|
34
|
+
this.name = 'NotConfiguredError';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.NotConfiguredError = NotConfiguredError;
|
|
38
|
+
class ApiError extends Error {
|
|
39
|
+
constructor(status, rawBody, jsonBody, message) {
|
|
40
|
+
super(message);
|
|
41
|
+
this.name = 'ApiError';
|
|
42
|
+
this.status = status;
|
|
43
|
+
this.rawBody = rawBody;
|
|
44
|
+
this.jsonBody = jsonBody;
|
|
45
|
+
}
|
|
46
|
+
get exitCode() {
|
|
47
|
+
return this.status >= 500 ? exports.EXIT_API_5XX : exports.EXIT_API_4XX;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.ApiError = ApiError;
|
|
51
|
+
class NetworkError extends Error {
|
|
52
|
+
constructor(message) {
|
|
53
|
+
super(message);
|
|
54
|
+
this.exitCode = exports.EXIT_NETWORK;
|
|
55
|
+
this.name = 'NetworkError';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.NetworkError = NetworkError;
|
|
59
|
+
function usage(message, see) {
|
|
60
|
+
throw new UsageError(message, see);
|
|
61
|
+
}
|
|
62
|
+
function isRecord(value) {
|
|
63
|
+
return typeof value === 'object' && value !== null;
|
|
64
|
+
}
|
|
65
|
+
function extractErrorMessage(jsonBody, rawBody, status) {
|
|
66
|
+
if (isRecord(jsonBody) && typeof jsonBody.error === 'string' && jsonBody.error.trim()) {
|
|
67
|
+
return jsonBody.error;
|
|
68
|
+
}
|
|
69
|
+
if (isRecord(jsonBody) &&
|
|
70
|
+
isRecord(jsonBody.response) &&
|
|
71
|
+
typeof jsonBody.response.error === 'string') {
|
|
72
|
+
return jsonBody.response.error;
|
|
73
|
+
}
|
|
74
|
+
const trimmed = rawBody.trim();
|
|
75
|
+
if (trimmed && trimmed.length < 400)
|
|
76
|
+
return trimmed;
|
|
77
|
+
return `request failed`;
|
|
78
|
+
}
|
|
79
|
+
async function normalizeThrown(error) {
|
|
80
|
+
if (error instanceof UsageError ||
|
|
81
|
+
error instanceof NotConfiguredError ||
|
|
82
|
+
error instanceof ApiError ||
|
|
83
|
+
error instanceof NetworkError ||
|
|
84
|
+
error instanceof CliExit) {
|
|
85
|
+
return error;
|
|
86
|
+
}
|
|
87
|
+
if (isRecord(error) && isRecord(error.response) && typeof error.response.status === 'number') {
|
|
88
|
+
const response = error.response;
|
|
89
|
+
let rawBody = '';
|
|
90
|
+
try {
|
|
91
|
+
if (typeof response.text === 'function') {
|
|
92
|
+
rawBody = await response.text();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
rawBody = '';
|
|
97
|
+
}
|
|
98
|
+
let jsonBody;
|
|
99
|
+
try {
|
|
100
|
+
jsonBody = rawBody ? JSON.parse(rawBody) : undefined;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
jsonBody = undefined;
|
|
104
|
+
}
|
|
105
|
+
const message = extractErrorMessage(jsonBody, rawBody, response.status);
|
|
106
|
+
return new ApiError(response.status, rawBody, jsonBody, message);
|
|
107
|
+
}
|
|
108
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
109
|
+
const name = err.name || '';
|
|
110
|
+
const msg = err.message || String(error);
|
|
111
|
+
const cause = isRecord(error) ? error.cause : undefined;
|
|
112
|
+
const causeMsg = cause instanceof Error
|
|
113
|
+
? cause.message
|
|
114
|
+
: isRecord(cause) && typeof cause.message === 'string'
|
|
115
|
+
? cause.message
|
|
116
|
+
: '';
|
|
117
|
+
const combined = `${name} ${msg} ${causeMsg}`.toLowerCase();
|
|
118
|
+
if (name === 'FetchError' ||
|
|
119
|
+
/enotfound|econnrefused|econnreset|etimedout|network|fetch failed|socket/.test(combined)) {
|
|
120
|
+
return new NetworkError(msg || 'network error');
|
|
121
|
+
}
|
|
122
|
+
return err;
|
|
123
|
+
}
|
|
124
|
+
function hintFor(error) {
|
|
125
|
+
if (error instanceof ApiError && error.status === 401) {
|
|
126
|
+
return 'set ONE_MSG_TOKEN or run `1msg init`';
|
|
127
|
+
}
|
|
128
|
+
if (error instanceof UsageError) {
|
|
129
|
+
return error.see ? undefined : undefined;
|
|
130
|
+
}
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Client } from '@1msg/sdk';
|
|
2
|
+
import type { CliContext } from './context';
|
|
3
|
+
import { type GlobalFlags } from './config';
|
|
4
|
+
import { type OutputOpts } from './output';
|
|
5
|
+
export declare function outputOpts(flags: GlobalFlags, ctx: CliContext): OutputOpts;
|
|
6
|
+
export declare function withClient<T>(ctx: CliContext, flags: GlobalFlags, fn: (client: Client) => Promise<T>): Promise<T>;
|
|
7
|
+
export declare function printApiResult(ctx: CliContext, flags: GlobalFlags, body: unknown, human?: () => void): void;
|
|
8
|
+
export declare function printSent(ctx: CliContext, flags: GlobalFlags, body: unknown, to?: string): void;
|
|
9
|
+
export declare function emitError(ctx: CliContext, flags: GlobalFlags, error: unknown): Promise<number>;
|
|
10
|
+
export declare function ok(): number;
|
|
11
|
+
//# sourceMappingURL=execute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,UAAU,CAAC;AAU5D,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3E,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAM1E;AAED,wBAAsB,UAAU,CAAC,CAAC,EAChC,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,WAAW,EAClB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,OAAO,EACb,KAAK,CAAC,EAAE,MAAM,IAAI,GACjB,IAAI,CAkBN;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAS/F;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BpG;AAED,wBAAgB,EAAE,IAAI,MAAM,CAE3B"}
|