@mx-space/cli 0.1.0 → 0.2.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 +106 -29
- package/ROADMAP.md +4 -3
- package/dist/{auth-DIFZzoMm.mjs → auth-Duj8jJn9.mjs} +3 -3
- package/dist/{auth-DIFZzoMm.mjs.map → auth-Duj8jJn9.mjs.map} +1 -1
- package/dist/bin/mxs.d.mts +3 -1
- package/dist/bin/mxs.mjs +250 -48
- package/dist/bin/mxs.mjs.map +1 -1
- package/dist/config-store-DmwX2iZU.mjs +165 -0
- package/dist/config-store-DmwX2iZU.mjs.map +1 -0
- package/dist/{create-DjlRHPXy.mjs → create-Cqt1rrSZ.mjs} +5 -5
- package/dist/{create-DjlRHPXy.mjs.map → create-Cqt1rrSZ.mjs.map} +1 -1
- package/dist/{create-DT1l2hue.mjs → create-D7cR9xcN.mjs} +3 -3
- package/dist/{create-DT1l2hue.mjs.map → create-D7cR9xcN.mjs.map} +1 -1
- package/dist/{create-B2AOQL1e.mjs → create-DAt3FXLf.mjs} +5 -5
- package/dist/{create-B2AOQL1e.mjs.map → create-DAt3FXLf.mjs.map} +1 -1
- package/dist/{create-CwjGcv2n.mjs → create-_H8YO7ze.mjs} +3 -3
- package/dist/{create-CwjGcv2n.mjs.map → create-_H8YO7ze.mjs.map} +1 -1
- package/dist/{create-Dz6rJJSS.mjs → create-kYlrs4d6.mjs} +4 -4
- package/dist/{create-Dz6rJJSS.mjs.map → create-kYlrs4d6.mjs.map} +1 -1
- package/dist/{delete-BrY5zJ6S.mjs → delete-DVNebWqO.mjs} +4 -4
- package/dist/{delete-BrY5zJ6S.mjs.map → delete-DVNebWqO.mjs.map} +1 -1
- package/dist/{delete-B4dGrrus.mjs → delete-D_NRteuq.mjs} +4 -4
- package/dist/{delete-B4dGrrus.mjs.map → delete-D_NRteuq.mjs.map} +1 -1
- package/dist/{delete-BH6ZngTz.mjs → delete-DmKPzzsQ.mjs} +4 -4
- package/dist/{delete-BH6ZngTz.mjs.map → delete-DmKPzzsQ.mjs.map} +1 -1
- package/dist/{delete-CaG2d_xt.mjs → delete-ZIjkquZj.mjs} +4 -4
- package/dist/{delete-CaG2d_xt.mjs.map → delete-ZIjkquZj.mjs.map} +1 -1
- package/dist/{delete-YzRliRn8.mjs → delete-aCVSWuKi.mjs} +4 -4
- package/dist/{delete-YzRliRn8.mjs.map → delete-aCVSWuKi.mjs.map} +1 -1
- package/dist/{onboarding-640IldLz.mjs → dist-DJF1Ntdn.mjs} +95 -173
- package/dist/dist-DJF1Ntdn.mjs.map +1 -0
- package/dist/{document-output-BVB8emLt.mjs → document-output-BtY8T7eY.mjs} +59 -4
- package/dist/document-output-BtY8T7eY.mjs.map +1 -0
- package/dist/{edit-DLDw_ZWX.mjs → edit-BWX7X4sy.mjs} +8 -8
- package/dist/{edit-DLDw_ZWX.mjs.map → edit-BWX7X4sy.mjs.map} +1 -1
- package/dist/{edit-Bb0Ze4w6.mjs → edit-CHCuoiWT.mjs} +9 -9
- package/dist/{edit-Bb0Ze4w6.mjs.map → edit-CHCuoiWT.mjs.map} +1 -1
- package/dist/{edit-z55ofr1S.mjs → edit-DjRE8Gk-.mjs} +4 -4
- package/dist/{edit-z55ofr1S.mjs.map → edit-DjRE8Gk-.mjs.map} +1 -1
- package/dist/{edit-BeFmC3XD.mjs → edit-R6H5RtWd.mjs} +8 -8
- package/dist/{edit-BeFmC3XD.mjs.map → edit-R6H5RtWd.mjs.map} +1 -1
- package/dist/{editor-xrF-j3UE.mjs → editor-Dywlo4-8.mjs} +2 -2
- package/dist/{editor-xrF-j3UE.mjs.map → editor-Dywlo4-8.mjs.map} +1 -1
- package/dist/{envelope-overlays-DPAlMNW1.mjs → envelope-overlays-D1gmGVe5.mjs} +2 -2
- package/dist/{envelope-overlays-DPAlMNW1.mjs.map → envelope-overlays-D1gmGVe5.mjs.map} +1 -1
- package/dist/get-CiLnUGHw.mjs +14 -0
- package/dist/get-CiLnUGHw.mjs.map +1 -0
- package/dist/{get-2qjq0wgG.mjs → get-CkBqVyGi.mjs} +8 -8
- package/dist/get-CkBqVyGi.mjs.map +1 -0
- package/dist/{get-CRR13lgj.mjs → get-DNdde54z.mjs} +3 -3
- package/dist/{get-CRR13lgj.mjs.map → get-DNdde54z.mjs.map} +1 -1
- package/dist/get-DbH58EkF.mjs +14 -0
- package/dist/get-DbH58EkF.mjs.map +1 -0
- package/dist/get-IQQv4_rP.mjs +10 -0
- package/dist/get-IQQv4_rP.mjs.map +1 -0
- package/dist/get-xtByxURm.mjs +13 -0
- package/dist/get-xtByxURm.mjs.map +1 -0
- package/dist/index.d.mts +33 -4
- package/dist/index.mjs +10 -10
- package/dist/list-Bnlg9SfR.mjs +10 -0
- package/dist/list-Bnlg9SfR.mjs.map +1 -0
- package/dist/{list-DY-tPNG-.mjs → list-C6z1iw4a.mjs} +3 -3
- package/dist/{list-DY-tPNG-.mjs.map → list-C6z1iw4a.mjs.map} +1 -1
- package/dist/list-CD9j9did.mjs +10 -0
- package/dist/list-CD9j9did.mjs.map +1 -0
- package/dist/list-DVMtBAHG.mjs +15 -0
- package/dist/list-DVMtBAHG.mjs.map +1 -0
- package/dist/list-DW5TcGxS.mjs +10 -0
- package/dist/list-DW5TcGxS.mjs.map +1 -0
- package/dist/list-lmpHwOQx.mjs +14 -0
- package/dist/list-lmpHwOQx.mjs.map +1 -0
- package/dist/{litexml-codec-CDoRloiR.mjs → litexml-codec-D-1oggXL.mjs} +3 -3
- package/dist/{litexml-codec-CDoRloiR.mjs.map → litexml-codec-D-1oggXL.mjs.map} +1 -1
- package/dist/{login-CLOJ-fTJ.mjs → login-D-SoeV01.mjs} +20 -9
- package/dist/{login-CLOJ-fTJ.mjs.map → login-D-SoeV01.mjs.map} +1 -1
- package/dist/logout-D63ZU-1Q.mjs +17 -0
- package/dist/logout-D63ZU-1Q.mjs.map +1 -0
- package/dist/ls-Bz3BCcwU.mjs +32 -0
- package/dist/ls-Bz3BCcwU.mjs.map +1 -0
- package/dist/mark-N-IpKK17.mjs +28 -0
- package/dist/mark-N-IpKK17.mjs.map +1 -0
- package/dist/onboarding-FPMcuqn8.mjs +212 -0
- package/dist/onboarding-FPMcuqn8.mjs.map +1 -0
- package/dist/{output-CTnO1lYt.d.mts → output-DQMhacTo.d.mts} +1 -1
- package/dist/output-Dg8PISJM.mjs +299 -0
- package/dist/output-Dg8PISJM.mjs.map +1 -0
- package/dist/{payload-CN11pUto.mjs → payload-CjlZ9CeZ.mjs} +3 -3
- package/dist/{payload-CN11pUto.mjs.map → payload-CjlZ9CeZ.mjs.map} +1 -1
- package/dist/{publish-pRBfTJfe.mjs → publish-C9O5obZ6.mjs} +4 -4
- package/dist/{publish-pRBfTJfe.mjs.map → publish-C9O5obZ6.mjs.map} +1 -1
- package/dist/{publish-DkTYB-eK.mjs → publish-yuM6YGSb.mjs} +4 -4
- package/dist/{publish-DkTYB-eK.mjs.map → publish-yuM6YGSb.mjs.map} +1 -1
- package/dist/{resolve-Bp1AfBmM.mjs → resolve-B4-fMQ6I.mjs} +3 -3
- package/dist/{resolve-Bp1AfBmM.mjs.map → resolve-B4-fMQ6I.mjs.map} +1 -1
- package/dist/{resolve-BogJOR7R.mjs → resolve-DIu9N2sD.mjs} +2 -2
- package/dist/{resolve-BogJOR7R.mjs.map → resolve-DIu9N2sD.mjs.map} +1 -1
- package/dist/{resolve-CyjMlaoJ.mjs → resolve-TBYXBS4i.mjs} +3 -3
- package/dist/{resolve-CyjMlaoJ.mjs.map → resolve-TBYXBS4i.mjs.map} +1 -1
- package/dist/{resolve-Bw5Po9yK.mjs → resolve-U6RJ3AnQ.mjs} +3 -3
- package/dist/{resolve-Bw5Po9yK.mjs.map → resolve-U6RJ3AnQ.mjs.map} +1 -1
- package/dist/{resolve-helpers-CahPoJ0Y.mjs → resolve-helpers-C7PIVziv.mjs} +2 -2
- package/dist/{resolve-helpers-CahPoJ0Y.mjs.map → resolve-helpers-C7PIVziv.mjs.map} +1 -1
- package/dist/rm-D9GvLhhF.mjs +32 -0
- package/dist/rm-D9GvLhhF.mjs.map +1 -0
- package/dist/{set-BEGQz2si.mjs → set-jD79hpuF.mjs} +3 -3
- package/dist/{set-BEGQz2si.mjs.map → set-jD79hpuF.mjs.map} +1 -1
- package/dist/{shared-D0HVBDHI.mjs → shared-SryY2QPY.mjs} +20 -9
- package/dist/shared-SryY2QPY.mjs.map +1 -0
- package/dist/show-C5Zk0tcK.mjs +38 -0
- package/dist/show-C5Zk0tcK.mjs.map +1 -0
- package/dist/status-evZpPR3N.mjs +22 -0
- package/dist/status-evZpPR3N.mjs.map +1 -0
- package/dist/{update-BMZQPOvR.mjs → update--7NPzL_w.mjs} +4 -4
- package/dist/{update-BMZQPOvR.mjs.map → update--7NPzL_w.mjs.map} +1 -1
- package/dist/{update-BXz0l7Lz.mjs → update-0q5hxJFh.mjs} +5 -5
- package/dist/{update-BXz0l7Lz.mjs.map → update-0q5hxJFh.mjs.map} +1 -1
- package/dist/{update-Dx6AF8tf.mjs → update-CPJXcOg_.mjs} +6 -6
- package/dist/{update-Dx6AF8tf.mjs.map → update-CPJXcOg_.mjs.map} +1 -1
- package/dist/{update-q66TLS38.mjs → update-DN78pXGZ.mjs} +4 -4
- package/dist/{update-q66TLS38.mjs.map → update-DN78pXGZ.mjs.map} +1 -1
- package/dist/{update-B9ynFCdZ.mjs → update-hhAcAz_M.mjs} +6 -6
- package/dist/{update-B9ynFCdZ.mjs.map → update-hhAcAz_M.mjs.map} +1 -1
- package/dist/use-CHDCEe38.mjs +28 -0
- package/dist/use-CHDCEe38.mjs.map +1 -0
- package/dist/{whoami-CTkctOEd.mjs → whoami-BHDYyY5D.mjs} +4 -5
- package/dist/whoami-BHDYyY5D.mjs.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-hT5z_Zn9.mjs +0 -35
- package/dist/config-store-DIu7x0ao.mjs +0 -121
- package/dist/config-store-DIu7x0ao.mjs.map +0 -1
- package/dist/document-output-BVB8emLt.mjs.map +0 -1
- package/dist/get-2qjq0wgG.mjs.map +0 -1
- package/dist/get-BGAk1Zmv.mjs +0 -14
- package/dist/get-BGAk1Zmv.mjs.map +0 -1
- package/dist/get-ClkpDBTL.mjs +0 -13
- package/dist/get-ClkpDBTL.mjs.map +0 -1
- package/dist/get-DJfUJ3sP.mjs +0 -10
- package/dist/get-DJfUJ3sP.mjs.map +0 -1
- package/dist/get-DiqaQvoS.mjs +0 -14
- package/dist/get-DiqaQvoS.mjs.map +0 -1
- package/dist/list-BYzhflDg.mjs +0 -14
- package/dist/list-BYzhflDg.mjs.map +0 -1
- package/dist/list-DlQSkbqx.mjs +0 -10
- package/dist/list-DlQSkbqx.mjs.map +0 -1
- package/dist/list-DsrA5wIz.mjs +0 -15
- package/dist/list-DsrA5wIz.mjs.map +0 -1
- package/dist/list-Fp4nKfQb.mjs +0 -10
- package/dist/list-Fp4nKfQb.mjs.map +0 -1
- package/dist/list-s_tloiEX.mjs +0 -10
- package/dist/list-s_tloiEX.mjs.map +0 -1
- package/dist/logout-v8ihxsim.mjs +0 -11
- package/dist/logout-v8ihxsim.mjs.map +0 -1
- package/dist/onboarding-640IldLz.mjs.map +0 -1
- package/dist/output-BM7aBFwt.mjs +0 -120
- package/dist/output-BM7aBFwt.mjs.map +0 -1
- package/dist/shared-D0HVBDHI.mjs.map +0 -1
- package/dist/status-LXrN9fI-.mjs +0 -22
- package/dist/status-LXrN9fI-.mjs.map +0 -1
- package/dist/whoami-CTkctOEd.mjs.map +0 -1
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { s as MxsError } from "./output-BM7aBFwt.mjs";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { promises } from "node:fs";
|
|
4
|
-
import os from "node:os";
|
|
5
|
-
//#region src/core/config-store.ts
|
|
6
|
-
const DEFAULT_CLIENT_ID = "mxs-cli";
|
|
7
|
-
function getConfigDir() {
|
|
8
|
-
const xdg = process.env.XDG_CONFIG_HOME;
|
|
9
|
-
const base = xdg && xdg.length > 0 ? xdg : path.join(os.homedir(), ".config");
|
|
10
|
-
return path.join(base, "mxs");
|
|
11
|
-
}
|
|
12
|
-
function getConfigPath() {
|
|
13
|
-
return path.join(getConfigDir(), "config.json");
|
|
14
|
-
}
|
|
15
|
-
function getCredentialsPath() {
|
|
16
|
-
return path.join(getConfigDir(), "credentials.json");
|
|
17
|
-
}
|
|
18
|
-
async function readJsonIfExists(p) {
|
|
19
|
-
try {
|
|
20
|
-
const raw = await promises.readFile(p, "utf8");
|
|
21
|
-
return JSON.parse(raw);
|
|
22
|
-
} catch (err) {
|
|
23
|
-
if (err?.code === "ENOENT") return null;
|
|
24
|
-
if (err instanceof SyntaxError) throw new MxsError({
|
|
25
|
-
code: "generic",
|
|
26
|
-
message: `failed to parse ${p}: ${err.message}`
|
|
27
|
-
});
|
|
28
|
-
throw err;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
async function readConfig() {
|
|
32
|
-
return await readJsonIfExists(getConfigPath()) ?? {};
|
|
33
|
-
}
|
|
34
|
-
async function writeConfig(cfg) {
|
|
35
|
-
const dir = getConfigDir();
|
|
36
|
-
await promises.mkdir(dir, { recursive: true });
|
|
37
|
-
await promises.writeFile(getConfigPath(), JSON.stringify(cfg, null, 2), { mode: 420 });
|
|
38
|
-
try {
|
|
39
|
-
await promises.chmod(getConfigPath(), 420);
|
|
40
|
-
} catch {}
|
|
41
|
-
}
|
|
42
|
-
async function readCredentials() {
|
|
43
|
-
const p = getCredentialsPath();
|
|
44
|
-
const data = await readJsonIfExists(p);
|
|
45
|
-
if (data) await enforceCredentialsMode(p);
|
|
46
|
-
return data;
|
|
47
|
-
}
|
|
48
|
-
async function writeCredentials(cred) {
|
|
49
|
-
const dir = getConfigDir();
|
|
50
|
-
await promises.mkdir(dir, { recursive: true });
|
|
51
|
-
const p = getCredentialsPath();
|
|
52
|
-
await promises.writeFile(p, JSON.stringify(cred, null, 2), { mode: 384 });
|
|
53
|
-
await promises.chmod(p, 384);
|
|
54
|
-
}
|
|
55
|
-
async function deleteCredentials() {
|
|
56
|
-
const p = getCredentialsPath();
|
|
57
|
-
try {
|
|
58
|
-
await promises.unlink(p);
|
|
59
|
-
} catch (err) {
|
|
60
|
-
if (err?.code !== "ENOENT") throw err;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
async function enforceCredentialsMode(p = getCredentialsPath()) {
|
|
64
|
-
let stats;
|
|
65
|
-
try {
|
|
66
|
-
stats = await promises.stat(p);
|
|
67
|
-
} catch (err) {
|
|
68
|
-
if (err?.code === "ENOENT") return false;
|
|
69
|
-
throw err;
|
|
70
|
-
}
|
|
71
|
-
const mode = stats.mode & 511;
|
|
72
|
-
if (mode !== 384) {
|
|
73
|
-
process.stderr.write(`mxs: credentials file ${p} had mode ${mode.toString(8)}; chmod 600\n`);
|
|
74
|
-
await promises.chmod(p, 384);
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
function normalizeApiUrl(input) {
|
|
80
|
-
let url = input.trim();
|
|
81
|
-
if (!url) throw new MxsError({
|
|
82
|
-
code: "config.missing.api_url",
|
|
83
|
-
message: "API URL is empty"
|
|
84
|
-
});
|
|
85
|
-
if (!/^https?:\/\//i.test(url)) url = /^(?:localhost|127\.0\.0\.1|::1)(?::\d+)?$/i.test(url) ? `http://${url}` : `https://${url}`;
|
|
86
|
-
return url.replace(/\/+$/, "");
|
|
87
|
-
}
|
|
88
|
-
async function resolveConfig(overrides = {}) {
|
|
89
|
-
const envApiUrl = process.env.MXS_API_URL?.trim();
|
|
90
|
-
const envToken = process.env.MXS_TOKEN?.trim();
|
|
91
|
-
const envApiKey = process.env.MXS_API_KEY?.trim();
|
|
92
|
-
const file = await readConfig();
|
|
93
|
-
const credentials = await readCredentials();
|
|
94
|
-
const rawApiUrl = overrides.apiUrl || envApiUrl || file.api_url;
|
|
95
|
-
if (!rawApiUrl) throw new MxsError({
|
|
96
|
-
code: "config.missing.api_url",
|
|
97
|
-
message: "API URL is not configured",
|
|
98
|
-
hint: "set MXS_API_URL or pass --api-url <url>, or run `mxs auth login` in an interactive shell"
|
|
99
|
-
});
|
|
100
|
-
const apiUrl = normalizeApiUrl(rawApiUrl);
|
|
101
|
-
const apiVersion = file.api_version ?? 2;
|
|
102
|
-
const apiBase = overrides.apiUrl || envApiUrl ? `${apiUrl}/api/v${apiVersion}` : file.api_base || `${apiUrl}/api/v${apiVersion}`;
|
|
103
|
-
const authBase = overrides.apiUrl || envApiUrl ? `${apiBase}/auth` : file.auth_base || `${apiBase}/auth`;
|
|
104
|
-
const token = overrides.token || envToken || credentials?.access_token;
|
|
105
|
-
const apiKey = overrides.apiKey || envApiKey;
|
|
106
|
-
return {
|
|
107
|
-
apiUrl,
|
|
108
|
-
apiBase,
|
|
109
|
-
authBase,
|
|
110
|
-
apiVersion,
|
|
111
|
-
clientId: file.client_id || DEFAULT_CLIENT_ID,
|
|
112
|
-
token,
|
|
113
|
-
apiKey,
|
|
114
|
-
configPath: getConfigPath(),
|
|
115
|
-
credentialsPath: getCredentialsPath()
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
//#endregion
|
|
119
|
-
export { getCredentialsPath as a, readCredentials as c, writeCredentials as d, getConfigPath as i, resolveConfig as l, enforceCredentialsMode as n, normalizeApiUrl as o, getConfigDir as r, readConfig as s, deleteCredentials as t, writeConfig as u };
|
|
120
|
-
|
|
121
|
-
//# sourceMappingURL=config-store-DIu7x0ao.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-store-DIu7x0ao.mjs","names":["fs"],"sources":["../src/core/config-store.ts"],"sourcesContent":["import { promises as fs } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\n\nimport { MxsError } from './errors'\n\nexport interface ConfigShape {\n api_url?: string\n api_base?: string\n auth_base?: string\n api_version?: number\n client_id?: string\n}\n\nexport interface CredentialsShape {\n access_token: string\n refresh_token?: string\n expires_at: number\n user?: {\n id?: string\n email?: string\n name?: string\n }\n}\n\nexport interface ResolvedConfig {\n apiUrl: string\n apiBase: string\n authBase: string\n apiVersion: number\n clientId: string\n token?: string\n apiKey?: string\n configPath: string\n credentialsPath: string\n}\n\nexport interface StoreOverrides {\n apiUrl?: string\n token?: string\n apiKey?: string\n}\n\nconst DEFAULT_CLIENT_ID = 'mxs-cli'\n\nexport function getConfigDir(): string {\n const xdg = process.env.XDG_CONFIG_HOME\n const base = xdg && xdg.length > 0 ? xdg : path.join(os.homedir(), '.config')\n return path.join(base, 'mxs')\n}\n\nexport function getConfigPath(): string {\n return path.join(getConfigDir(), 'config.json')\n}\n\nexport function getCredentialsPath(): string {\n return path.join(getConfigDir(), 'credentials.json')\n}\n\nasync function readJsonIfExists<T>(p: string): Promise<T | null> {\n try {\n const raw = await fs.readFile(p, 'utf8')\n return JSON.parse(raw) as T\n } catch (err: any) {\n if (err?.code === 'ENOENT') return null\n if (err instanceof SyntaxError) {\n throw new MxsError({\n code: 'generic',\n message: `failed to parse ${p}: ${err.message}`,\n })\n }\n throw err\n }\n}\n\nexport async function readConfig(): Promise<ConfigShape> {\n const data = await readJsonIfExists<ConfigShape>(getConfigPath())\n return data ?? {}\n}\n\nexport async function writeConfig(cfg: ConfigShape): Promise<void> {\n const dir = getConfigDir()\n await fs.mkdir(dir, { recursive: true })\n await fs.writeFile(getConfigPath(), JSON.stringify(cfg, null, 2), {\n mode: 0o644,\n })\n try {\n await fs.chmod(getConfigPath(), 0o644)\n } catch {}\n}\n\nexport async function readCredentials(): Promise<CredentialsShape | null> {\n const p = getCredentialsPath()\n const data = await readJsonIfExists<CredentialsShape>(p)\n if (data) {\n await enforceCredentialsMode(p)\n }\n return data\n}\n\nexport async function writeCredentials(cred: CredentialsShape): Promise<void> {\n const dir = getConfigDir()\n await fs.mkdir(dir, { recursive: true })\n const p = getCredentialsPath()\n await fs.writeFile(p, JSON.stringify(cred, null, 2), { mode: 0o600 })\n await fs.chmod(p, 0o600)\n}\n\nexport async function deleteCredentials(): Promise<void> {\n const p = getCredentialsPath()\n try {\n await fs.unlink(p)\n } catch (err: any) {\n if (err?.code !== 'ENOENT') throw err\n }\n}\n\nexport async function enforceCredentialsMode(\n p = getCredentialsPath(),\n): Promise<boolean> {\n let stats\n try {\n stats = await fs.stat(p)\n } catch (err: any) {\n if (err?.code === 'ENOENT') return false\n throw err\n }\n const mode = stats.mode & 0o777\n if (mode !== 0o600) {\n process.stderr.write(\n `mxs: credentials file ${p} had mode ${mode.toString(8)}; chmod 600\\n`,\n )\n await fs.chmod(p, 0o600)\n return true\n }\n return false\n}\n\nexport function normalizeApiUrl(input: string): string {\n let url = input.trim()\n if (!url) {\n throw new MxsError({\n code: 'config.missing.api_url',\n message: 'API URL is empty',\n })\n }\n if (!/^https?:\\/\\//i.test(url)) {\n const isLocal = /^(?:localhost|127\\.0\\.0\\.1|::1)(?::\\d+)?$/i.test(url)\n url = isLocal ? `http://${url}` : `https://${url}`\n }\n return url.replace(/\\/+$/, '')\n}\n\nexport async function resolveConfig(\n overrides: StoreOverrides = {},\n): Promise<ResolvedConfig> {\n const envApiUrl = process.env.MXS_API_URL?.trim()\n const envToken = process.env.MXS_TOKEN?.trim()\n const envApiKey = process.env.MXS_API_KEY?.trim()\n\n const file = await readConfig()\n const credentials = await readCredentials()\n\n const rawApiUrl = overrides.apiUrl || envApiUrl || file.api_url\n if (!rawApiUrl) {\n throw new MxsError({\n code: 'config.missing.api_url',\n message: 'API URL is not configured',\n hint: 'set MXS_API_URL or pass --api-url <url>, or run `mxs auth login` in an interactive shell',\n })\n }\n const apiUrl = normalizeApiUrl(rawApiUrl)\n const apiVersion = file.api_version ?? 2\n const apiBase =\n overrides.apiUrl || envApiUrl\n ? `${apiUrl}/api/v${apiVersion}`\n : file.api_base || `${apiUrl}/api/v${apiVersion}`\n const authBase =\n overrides.apiUrl || envApiUrl\n ? `${apiBase}/auth`\n : file.auth_base || `${apiBase}/auth`\n\n const token = overrides.token || envToken || credentials?.access_token\n const apiKey = overrides.apiKey || envApiKey\n\n return {\n apiUrl,\n apiBase,\n authBase,\n apiVersion,\n clientId: file.client_id || DEFAULT_CLIENT_ID,\n token,\n apiKey,\n configPath: getConfigPath(),\n credentialsPath: getCredentialsPath(),\n }\n}\n"],"mappings":";;;;;AA2CA,MAAM,oBAAoB;AAE1B,SAAgB,eAAuB;CACrC,MAAM,MAAM,QAAQ,IAAI;CACxB,MAAM,OAAO,OAAO,IAAI,SAAS,IAAI,MAAM,KAAK,KAAK,GAAG,QAAQ,GAAG,SAAS;CAC5E,OAAO,KAAK,KAAK,MAAM,KAAK;AAC9B;AAEA,SAAgB,gBAAwB;CACtC,OAAO,KAAK,KAAK,aAAa,GAAG,aAAa;AAChD;AAEA,SAAgB,qBAA6B;CAC3C,OAAO,KAAK,KAAK,aAAa,GAAG,kBAAkB;AACrD;AAEA,eAAe,iBAAoB,GAA8B;CAC/D,IAAI;EACF,MAAM,MAAM,MAAMA,SAAG,SAAS,GAAG,MAAM;EACvC,OAAO,KAAK,MAAM,GAAG;CACvB,SAAS,KAAU;EACjB,IAAI,KAAK,SAAS,UAAU,OAAO;EACnC,IAAI,eAAe,aACjB,MAAM,IAAI,SAAS;GACjB,MAAM;GACN,SAAS,mBAAmB,EAAE,IAAI,IAAI;EACxC,CAAC;EAEH,MAAM;CACR;AACF;AAEA,eAAsB,aAAmC;CAEvD,OAAO,MADY,iBAA8B,cAAc,CAAC,KACjD,CAAC;AAClB;AAEA,eAAsB,YAAY,KAAiC;CACjE,MAAM,MAAM,aAAa;CACzB,MAAMA,SAAG,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;CACvC,MAAMA,SAAG,UAAU,cAAc,GAAG,KAAK,UAAU,KAAK,MAAM,CAAC,GAAG,EAChE,MAAM,IACR,CAAC;CACD,IAAI;EACF,MAAMA,SAAG,MAAM,cAAc,GAAG,GAAK;CACvC,QAAQ,CAAC;AACX;AAEA,eAAsB,kBAAoD;CACxE,MAAM,IAAI,mBAAmB;CAC7B,MAAM,OAAO,MAAM,iBAAmC,CAAC;CACvD,IAAI,MACF,MAAM,uBAAuB,CAAC;CAEhC,OAAO;AACT;AAEA,eAAsB,iBAAiB,MAAuC;CAC5E,MAAM,MAAM,aAAa;CACzB,MAAMA,SAAG,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;CACvC,MAAM,IAAI,mBAAmB;CAC7B,MAAMA,SAAG,UAAU,GAAG,KAAK,UAAU,MAAM,MAAM,CAAC,GAAG,EAAE,MAAM,IAAM,CAAC;CACpE,MAAMA,SAAG,MAAM,GAAG,GAAK;AACzB;AAEA,eAAsB,oBAAmC;CACvD,MAAM,IAAI,mBAAmB;CAC7B,IAAI;EACF,MAAMA,SAAG,OAAO,CAAC;CACnB,SAAS,KAAU;EACjB,IAAI,KAAK,SAAS,UAAU,MAAM;CACpC;AACF;AAEA,eAAsB,uBACpB,IAAI,mBAAmB,GACL;CAClB,IAAI;CACJ,IAAI;EACF,QAAQ,MAAMA,SAAG,KAAK,CAAC;CACzB,SAAS,KAAU;EACjB,IAAI,KAAK,SAAS,UAAU,OAAO;EACnC,MAAM;CACR;CACA,MAAM,OAAO,MAAM,OAAO;CAC1B,IAAI,SAAS,KAAO;EAClB,QAAQ,OAAO,MACb,yBAAyB,EAAE,YAAY,KAAK,SAAS,CAAC,EAAE,cAC1D;EACA,MAAMA,SAAG,MAAM,GAAG,GAAK;EACvB,OAAO;CACT;CACA,OAAO;AACT;AAEA,SAAgB,gBAAgB,OAAuB;CACrD,IAAI,MAAM,MAAM,KAAK;CACrB,IAAI,CAAC,KACH,MAAM,IAAI,SAAS;EACjB,MAAM;EACN,SAAS;CACX,CAAC;CAEH,IAAI,CAAC,gBAAgB,KAAK,GAAG,GAE3B,MADgB,6CAA6C,KAAK,GACtD,IAAI,UAAU,QAAQ,WAAW;CAE/C,OAAO,IAAI,QAAQ,QAAQ,EAAE;AAC/B;AAEA,eAAsB,cACpB,YAA4B,CAAC,GACJ;CACzB,MAAM,YAAY,QAAQ,IAAI,aAAa,KAAK;CAChD,MAAM,WAAW,QAAQ,IAAI,WAAW,KAAK;CAC7C,MAAM,YAAY,QAAQ,IAAI,aAAa,KAAK;CAEhD,MAAM,OAAO,MAAM,WAAW;CAC9B,MAAM,cAAc,MAAM,gBAAgB;CAE1C,MAAM,YAAY,UAAU,UAAU,aAAa,KAAK;CACxD,IAAI,CAAC,WACH,MAAM,IAAI,SAAS;EACjB,MAAM;EACN,SAAS;EACT,MAAM;CACR,CAAC;CAEH,MAAM,SAAS,gBAAgB,SAAS;CACxC,MAAM,aAAa,KAAK,eAAe;CACvC,MAAM,UACJ,UAAU,UAAU,YAChB,GAAG,OAAO,QAAQ,eAClB,KAAK,YAAY,GAAG,OAAO,QAAQ;CACzC,MAAM,WACJ,UAAU,UAAU,YAChB,GAAG,QAAQ,SACX,KAAK,aAAa,GAAG,QAAQ;CAEnC,MAAM,QAAQ,UAAU,SAAS,YAAY,aAAa;CAC1D,MAAM,SAAS,UAAU,UAAU;CAEnC,OAAO;EACL;EACA;EACA;EACA;EACA,UAAU,KAAK,aAAa;EAC5B;EACA;EACA,YAAY,cAAc;EAC1B,iBAAiB,mBAAmB;CACtC;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document-output-BVB8emLt.mjs","names":[],"sources":["../src/core/document-output.ts"],"sourcesContent":["import { MxsError } from './errors'\nimport { serializeFromLexical, type LexicalState } from './litexml-codec'\nimport { emitSuccess, type OutputOptions } from './output'\n\nexport type DocumentKind = 'post' | 'note' | 'page'\n\nconst DOCUMENT_OUTPUT_MODES = new Set([\n 'pretty-json',\n 'json',\n 'readable',\n 'llm',\n 'envelope',\n])\n\nexport function emitDocument(\n kind: DocumentKind,\n data: unknown,\n opts: OutputOptions,\n): void {\n const mode = opts.output ?? 'pretty-json'\n if (!DOCUMENT_OUTPUT_MODES.has(mode)) {\n throw new MxsError({\n code: 'validation.failed',\n message: `unsupported --output value: ${mode}`,\n hint: 'use --output pretty-json, json, readable, llm, or envelope',\n })\n }\n\n if (opts.json || mode === 'json' || mode === 'pretty-json') {\n emitSuccess(data, opts)\n return\n }\n\n const doc = unwrapDocument(data)\n const rendered =\n mode === 'envelope'\n ? renderDocumentEnvelope(kind, doc)\n : renderReadableDocument(kind, doc)\n process.stdout.write(`${rendered}\\n`)\n}\n\nexport function renderReadableDocument(\n kind: DocumentKind,\n data: unknown,\n): string {\n const doc = asRecord(data)\n const lines: string[] = [kind]\n const fields = collectReadableFields(kind, doc)\n\n for (const [key, value] of fields) {\n if (value === undefined || value === null || value === '') continue\n lines.push(`${key}: ${formatScalar(value)}`)\n }\n\n const summary = firstString(doc, 'summary', 'subtitle')\n if (summary) {\n lines.push('', 'summary:', summary)\n }\n\n const content = renderContent(doc)\n if (content.body) {\n lines.push(\n '',\n `content_format: ${content.format}`,\n '',\n 'content:',\n content.body,\n )\n }\n\n return lines.join('\\n')\n}\n\nexport function renderDocumentEnvelope(\n kind: DocumentKind,\n data: unknown,\n): string {\n const doc = asRecord(data)\n const root = kind === 'note' ? 'mxnote' : 'mxpost'\n const meta = collectEnvelopeMeta(kind, doc)\n const metaLines = meta.map(([key, value]) => renderEnvelopeMeta(key, value))\n const content = renderContent(doc)\n\n return `<${root}>\n <meta>\n${metaLines.join('\\n')}\n </meta>\n <content>\n${content.body}\n </content>\n</${root}>`\n}\n\nfunction collectReadableFields(\n kind: DocumentKind,\n doc: Record<string, unknown>,\n): Array<[string, unknown]> {\n const base: Array<[string, unknown]> = [\n ['id', first(doc, 'id')],\n ['title', first(doc, 'title')],\n ['slug', first(doc, 'slug')],\n ]\n\n if (kind === 'post') {\n base.push(\n ['state', publishState(doc)],\n ['category', relationLabel(first(doc, 'category'))],\n ['tags', first(doc, 'tags')],\n ['pin', first(doc, 'pin')],\n )\n } else if (kind === 'note') {\n base.push(\n ['nid', first(doc, 'nid')],\n ['state', publishState(doc)],\n ['topic', relationLabel(first(doc, 'topic'))],\n ['mood', first(doc, 'mood')],\n ['weather', first(doc, 'weather')],\n ['public_at', first(doc, 'public_at', 'publicAt')],\n ['bookmark', first(doc, 'bookmark')],\n )\n } else {\n base.push(\n ['subtitle', first(doc, 'subtitle')],\n ['order', first(doc, 'order')],\n )\n }\n\n base.push(\n ['created_at', first(doc, 'created_at', 'createdAt')],\n ['modified_at', first(doc, 'modified_at', 'modifiedAt')],\n ['source_lang', first(doc, 'source_lang', 'sourceLang')],\n ['translated', first(doc, 'is_translated', 'isTranslated')],\n )\n\n return base\n}\n\nfunction collectEnvelopeMeta(\n kind: DocumentKind,\n doc: Record<string, unknown>,\n): Array<[string, unknown]> {\n const meta: Array<[string, unknown]> = [\n ['title', first(doc, 'title')],\n ['slug', first(doc, 'slug')],\n ]\n\n if (kind === 'post') {\n meta.push(\n ['category', relationSlugOrLabel(first(doc, 'category'))],\n ['state', publishState(doc) === 'published' ? 'publish' : 'draft'],\n ['summary', first(doc, 'summary')],\n ['tags', first(doc, 'tags')],\n )\n } else if (kind === 'note') {\n meta.push(\n ['topic', relationSlugOrLabel(first(doc, 'topic'))],\n ['state', publishState(doc) === 'published' ? 'publish' : 'draft'],\n ['mood', first(doc, 'mood')],\n ['weather', first(doc, 'weather')],\n ['publicAt', first(doc, 'public_at', 'publicAt')],\n ['bookmark', first(doc, 'bookmark')],\n ['location', first(doc, 'location')],\n )\n } else {\n meta.push(\n ['subtitle', first(doc, 'subtitle')],\n ['order', first(doc, 'order')],\n )\n }\n\n meta.push(['format', contentFormat(doc)])\n return meta.filter(\n ([, value]) => value !== undefined && value !== null && value !== '',\n )\n}\n\nfunction renderContent(doc: Record<string, unknown>): {\n body: string\n format: 'litexml' | 'markdown' | 'text'\n} {\n const format = contentFormat(doc)\n const content = firstString(doc, 'content')\n const text = firstString(doc, 'text')\n\n if (format === 'lexical' && content) {\n try {\n return {\n body: serializeFromLexical(JSON.parse(content) as LexicalState),\n format: 'litexml',\n }\n } catch {\n return { body: text || content, format: text ? 'text' : 'markdown' }\n }\n }\n\n return {\n body: content || text || '',\n format: format === 'markdown' ? 'markdown' : 'text',\n }\n}\n\nfunction unwrapDocument(data: unknown): unknown {\n const obj = asRecord(data)\n const nested = obj.data\n if (nested && typeof nested === 'object' && !Array.isArray(nested))\n return nested\n return data\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {}\n}\n\nfunction first(record: Record<string, unknown>, ...keys: string[]): unknown {\n for (const key of keys) {\n if (record[key] !== undefined && record[key] !== null) return record[key]\n }\n return undefined\n}\n\nfunction firstString(\n record: Record<string, unknown>,\n ...keys: string[]\n): string {\n const value = first(record, ...keys)\n return typeof value === 'string' ? value : ''\n}\n\nfunction contentFormat(doc: Record<string, unknown>): string {\n const value = first(doc, 'content_format', 'contentFormat')\n return typeof value === 'string' ? value : 'markdown'\n}\n\nfunction publishState(doc: Record<string, unknown>): string | undefined {\n const value = first(doc, 'is_published', 'isPublished')\n if (typeof value === 'boolean') return value ? 'published' : 'draft'\n return undefined\n}\n\nfunction relationLabel(value: unknown): string | undefined {\n if (!value) return undefined\n if (typeof value === 'string') return value\n const obj = asRecord(value)\n return (\n firstString(obj, 'name') ||\n firstString(obj, 'slug') ||\n firstString(obj, 'id')\n )\n}\n\nfunction relationSlugOrLabel(value: unknown): string | undefined {\n if (!value) return undefined\n if (typeof value === 'string') return value\n const obj = asRecord(value)\n return (\n firstString(obj, 'slug') ||\n firstString(obj, 'name') ||\n firstString(obj, 'id')\n )\n}\n\nfunction formatScalar(value: unknown): string {\n if (Array.isArray(value)) return value.map(formatScalar).join(', ')\n if (value instanceof Date) return value.toISOString()\n if (typeof value === 'object' && value !== null) return JSON.stringify(value)\n return String(value)\n}\n\nfunction renderEnvelopeMeta(key: string, value: unknown): string {\n if (key === 'tags' && Array.isArray(value)) {\n const tags = value\n .map((item) => ` <tag>${escapeXml(formatScalar(item))}</tag>`)\n .join('\\n')\n return ` <tags>\\n${tags}\\n </tags>`\n }\n\n return ` <${key}>${escapeXml(formatScalar(value))}</${key}>`\n}\n\nfunction escapeXml(value: string): string {\n return value\n .replaceAll('&', '&')\n .replaceAll('<', '<')\n .replaceAll('>', '>')\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-2qjq0wgG.mjs","names":[],"sources":["../src/commands/note/get.ts"],"sourcesContent":["import { type DocumentKind, emitDocument } from '../../core/document-output'\nimport { MxsError } from '../../core/errors'\nimport type { OutputOptions } from '../../core/output'\nimport { isSnowflakeId } from '../../core/resolve'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n} from '../internal/shared'\n\nconst KIND: DocumentKind = 'note'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n if (isSnowflakeId(slugOrId)) {\n const res = await client.request(`/notes/${slugOrId}`, {\n query: { prefer: 'lexical' },\n })\n emitDocument(KIND, res.data, out)\n return\n }\n if (/^\\d+$/.test(slugOrId)) {\n const res = await client.request(`/notes/nid/${slugOrId}`, {\n query: { single: '1', prefer: 'lexical' },\n })\n emitDocument(KIND, res.data, out)\n return\n }\n throw new MxsError({\n code: 'validation.failed',\n message: `invalid note reference: ${slugOrId} (use snowflake id or numeric nid)`,\n })\n}\n"],"mappings":";;;;;AAUA,MAAM,OAAqB;AAE3B,eAAsB,IACpB,UACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,IAAI,cAAc,QAAQ,GAAG;EAI3B,aAAa,OAAM,MAHD,OAAO,QAAQ,UAAU,YAAY,EACrD,OAAO,EAAE,QAAQ,UAAU,EAC7B,CAAC,GACsB,MAAM,GAAG;EAChC;CACF;CACA,IAAI,QAAQ,KAAK,QAAQ,GAAG;EAI1B,aAAa,OAAM,MAHD,OAAO,QAAQ,cAAc,YAAY,EACzD,OAAO;GAAE,QAAQ;GAAK,QAAQ;EAAU,EAC1C,CAAC,GACsB,MAAM,GAAG;EAChC;CACF;CACA,MAAM,IAAI,SAAS;EACjB,MAAM;EACN,SAAS,2BAA2B,SAAS;CAC/C,CAAC;AACH"}
|
package/dist/get-BGAk1Zmv.mjs
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { t as emitDocument } from "./document-output-BVB8emLt.mjs";
|
|
2
|
-
import { r as isSnowflakeId } from "./resolve-BogJOR7R.mjs";
|
|
3
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-D0HVBDHI.mjs";
|
|
4
|
-
//#region src/commands/page/get.ts
|
|
5
|
-
const KIND = "page";
|
|
6
|
-
async function run(slugOrId, flags, out) {
|
|
7
|
-
const client = buildApiClient(await resolveContext(flags, out), flags);
|
|
8
|
-
const path = isSnowflakeId(slugOrId) ? `/pages/${slugOrId}` : `/pages/slug/${slugOrId}`;
|
|
9
|
-
emitDocument(KIND, (await client.request(path, { query: { prefer: "lexical" } })).data, out);
|
|
10
|
-
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { run };
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=get-BGAk1Zmv.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-BGAk1Zmv.mjs","names":[],"sources":["../src/commands/page/get.ts"],"sourcesContent":["import { emitDocument, type DocumentKind } from '../../core/document-output'\nimport type { OutputOptions } from '../../core/output'\nimport { isSnowflakeId } from '../../core/resolve'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nconst KIND: DocumentKind = 'page'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const path = isSnowflakeId(slugOrId)\n ? `/pages/${slugOrId}`\n : `/pages/slug/${slugOrId}`\n const res = await client.request(path, { query: { prefer: 'lexical' } })\n emitDocument(KIND, res.data, out)\n}\n"],"mappings":";;;;AAKA,MAAM,OAAqB;AAE3B,eAAsB,IACpB,UACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,OAAO,cAAc,QAAQ,IAC/B,UAAU,aACV,eAAe;CAEnB,aAAa,OAAM,MADD,OAAO,QAAQ,MAAM,EAAE,OAAO,EAAE,QAAQ,UAAU,EAAE,CAAC,GAChD,MAAM,GAAG;AAClC"}
|
package/dist/get-ClkpDBTL.mjs
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-BM7aBFwt.mjs";
|
|
2
|
-
import { r as isSnowflakeId } from "./resolve-BogJOR7R.mjs";
|
|
3
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-D0HVBDHI.mjs";
|
|
4
|
-
//#region src/commands/topic/get.ts
|
|
5
|
-
async function run(slugOrId, flags, out) {
|
|
6
|
-
const client = buildApiClient(await resolveContext(flags, out), flags);
|
|
7
|
-
const path = isSnowflakeId(slugOrId) ? `/topics/${slugOrId}` : `/topics/slug/${slugOrId}`;
|
|
8
|
-
emitSuccess((await client.request(path)).data, out);
|
|
9
|
-
}
|
|
10
|
-
//#endregion
|
|
11
|
-
export { run };
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=get-ClkpDBTL.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-ClkpDBTL.mjs","names":[],"sources":["../src/commands/topic/get.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { isSnowflakeId } from '../../core/resolve'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const path = isSnowflakeId(slugOrId)\n ? `/topics/${slugOrId}`\n : `/topics/slug/${slugOrId}`\n const res = await client.request(path)\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;;AAIA,eAAsB,IACpB,UACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,OAAO,cAAc,QAAQ,IAC/B,WAAW,aACX,gBAAgB;CAEpB,aAAY,MADM,OAAO,QAAQ,IAAI,GACrB,MAAM,GAAG;AAC3B"}
|
package/dist/get-DJfUJ3sP.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-BM7aBFwt.mjs";
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-D0HVBDHI.mjs";
|
|
3
|
-
//#region src/commands/category/get.ts
|
|
4
|
-
async function run(slugOrId, flags, out) {
|
|
5
|
-
emitSuccess((await buildApiClient(await resolveContext(flags, out), flags).request(`/categories/${slugOrId}`)).data, out);
|
|
6
|
-
}
|
|
7
|
-
//#endregion
|
|
8
|
-
export { run };
|
|
9
|
-
|
|
10
|
-
//# sourceMappingURL=get-DJfUJ3sP.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-DJfUJ3sP.mjs","names":[],"sources":["../src/commands/category/get.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request(`/categories/${slugOrId}`)\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAGA,eAAsB,IACpB,UACA,OACA,KACA;CAIA,aAAY,MAFG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAAQ,eAAe,UAAU,GAC1C,MAAM,GAAG;AAC3B"}
|
package/dist/get-DiqaQvoS.mjs
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { t as emitDocument } from "./document-output-BVB8emLt.mjs";
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-D0HVBDHI.mjs";
|
|
3
|
-
import { n as resolvePostReadPath } from "./resolve-Bp1AfBmM.mjs";
|
|
4
|
-
//#region src/commands/post/get.ts
|
|
5
|
-
const KIND = "post";
|
|
6
|
-
async function run(slugOrId, flags, out) {
|
|
7
|
-
const client = buildApiClient(await resolveContext(flags, out), flags);
|
|
8
|
-
const path = await resolvePostReadPath(client, slugOrId);
|
|
9
|
-
emitDocument(KIND, (await client.request(path, { query: { prefer: "lexical" } })).data, out);
|
|
10
|
-
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { run };
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=get-DiqaQvoS.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-DiqaQvoS.mjs","names":[],"sources":["../src/commands/post/get.ts"],"sourcesContent":["import { emitDocument, type DocumentKind } from '../../core/document-output'\nimport type { OutputOptions } from '../../core/output'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\nimport { resolvePostReadPath } from './resolve'\n\nconst KIND: DocumentKind = 'post'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const path = await resolvePostReadPath(client, slugOrId)\n const res = await client.request(path, {\n query: { prefer: 'lexical' },\n })\n emitDocument(KIND, res.data, out)\n}\n"],"mappings":";;;;AAKA,MAAM,OAAqB;AAE3B,eAAsB,IACpB,UACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,OAAO,MAAM,oBAAoB,QAAQ,QAAQ;CAIvD,aAAa,OAAM,MAHD,OAAO,QAAQ,MAAM,EACrC,OAAO,EAAE,QAAQ,UAAU,EAC7B,CAAC,GACsB,MAAM,GAAG;AAClC"}
|
package/dist/list-BYzhflDg.mjs
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-BM7aBFwt.mjs";
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-D0HVBDHI.mjs";
|
|
3
|
-
//#region src/commands/note/list.ts
|
|
4
|
-
async function run(opts, flags, out) {
|
|
5
|
-
emitSuccess((await buildApiClient(await resolveContext(flags, out), flags).request("/notes", { query: {
|
|
6
|
-
page: opts.page,
|
|
7
|
-
size: opts.size,
|
|
8
|
-
sortBy: opts.sort
|
|
9
|
-
} })).data, out);
|
|
10
|
-
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { run };
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=list-BYzhflDg.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-BYzhflDg.mjs","names":[],"sources":["../src/commands/note/list.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport interface NoteListFlags {\n page?: number\n size?: number\n state?: string\n sort?: string\n}\n\nexport async function run(\n opts: NoteListFlags,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request<{ data: unknown[] }>('/notes', {\n query: {\n page: opts.page,\n size: opts.size,\n sortBy: opts.sort,\n },\n })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAUA,eAAsB,IACpB,MACA,OACA,KACA;CAUA,aAAY,MARG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAA6B,UAAU,EAC9D,OAAO;EACL,MAAM,KAAK;EACX,MAAM,KAAK;EACX,QAAQ,KAAK;CACf,EACF,CAAC,GACe,MAAM,GAAG;AAC3B"}
|
package/dist/list-DlQSkbqx.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-BM7aBFwt.mjs";
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-D0HVBDHI.mjs";
|
|
3
|
-
//#region src/commands/page/list.ts
|
|
4
|
-
async function run(_opts, flags, out) {
|
|
5
|
-
emitSuccess((await buildApiClient(await resolveContext(flags, out), flags).request("/pages")).data, out);
|
|
6
|
-
}
|
|
7
|
-
//#endregion
|
|
8
|
-
export { run };
|
|
9
|
-
|
|
10
|
-
//# sourceMappingURL=list-DlQSkbqx.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-DlQSkbqx.mjs","names":[],"sources":["../src/commands/page/list.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport async function run(\n _opts: unknown,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request<{ data: unknown[] }>('/pages')\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAGA,eAAsB,IACpB,OACA,OACA,KACA;CAIA,aAAY,MAFG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAA6B,QAAQ,GAC9C,MAAM,GAAG;AAC3B"}
|
package/dist/list-DsrA5wIz.mjs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-BM7aBFwt.mjs";
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-D0HVBDHI.mjs";
|
|
3
|
-
//#region src/commands/post/list.ts
|
|
4
|
-
async function run(opts, flags, out) {
|
|
5
|
-
emitSuccess((await buildApiClient(await resolveContext(flags, out), flags).request("/posts", { query: {
|
|
6
|
-
page: opts.page,
|
|
7
|
-
size: opts.size,
|
|
8
|
-
state: opts.state,
|
|
9
|
-
sortBy: opts.sort
|
|
10
|
-
} })).data, out);
|
|
11
|
-
}
|
|
12
|
-
//#endregion
|
|
13
|
-
export { run };
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=list-DsrA5wIz.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-DsrA5wIz.mjs","names":[],"sources":["../src/commands/post/list.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport interface PostListFlags {\n page?: number\n size?: number\n state?: string\n sort?: string\n}\n\nexport async function run(\n opts: PostListFlags,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request<{\n data: unknown[]\n pagination?: unknown\n }>('/posts', {\n query: {\n page: opts.page,\n size: opts.size,\n state: opts.state,\n sortBy: opts.sort,\n },\n })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAUA,eAAsB,IACpB,MACA,OACA,KACA;CAcA,aAAY,MAZG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAGtB,UAAU,EACX,OAAO;EACL,MAAM,KAAK;EACX,MAAM,KAAK;EACX,OAAO,KAAK;EACZ,QAAQ,KAAK;CACf,EACF,CAAC,GACe,MAAM,GAAG;AAC3B"}
|
package/dist/list-Fp4nKfQb.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-BM7aBFwt.mjs";
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-D0HVBDHI.mjs";
|
|
3
|
-
//#region src/commands/category/list.ts
|
|
4
|
-
async function run(flags, out) {
|
|
5
|
-
emitSuccess((await buildApiClient(await resolveContext(flags, out), flags).request("/categories")).data, out);
|
|
6
|
-
}
|
|
7
|
-
//#endregion
|
|
8
|
-
export { run };
|
|
9
|
-
|
|
10
|
-
//# sourceMappingURL=list-Fp4nKfQb.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-Fp4nKfQb.mjs","names":[],"sources":["../src/commands/category/list.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport async function run(flags: GlobalFlags, out: OutputOptions) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request<{ data: unknown[] }>('/categories')\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAGA,eAAsB,IAAI,OAAoB,KAAoB;CAIhE,aAAY,MAFG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAA6B,aAAa,GACnD,MAAM,GAAG;AAC3B"}
|
package/dist/list-s_tloiEX.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-BM7aBFwt.mjs";
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-D0HVBDHI.mjs";
|
|
3
|
-
//#region src/commands/topic/list.ts
|
|
4
|
-
async function run(flags, out) {
|
|
5
|
-
emitSuccess((await buildApiClient(await resolveContext(flags, out), flags).request("/topics/all")).data, out);
|
|
6
|
-
}
|
|
7
|
-
//#endregion
|
|
8
|
-
export { run };
|
|
9
|
-
|
|
10
|
-
//# sourceMappingURL=list-s_tloiEX.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-s_tloiEX.mjs","names":[],"sources":["../src/commands/topic/list.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport async function run(flags: GlobalFlags, out: OutputOptions) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request<{ data: unknown[] } | unknown[]>(\n '/topics/all',\n )\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAGA,eAAsB,IAAI,OAAoB,KAAoB;CAMhE,aAAY,MAJG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QACvB,aACF,GACgB,MAAM,GAAG;AAC3B"}
|
package/dist/logout-v8ihxsim.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-BM7aBFwt.mjs";
|
|
2
|
-
import { t as deleteCredentials } from "./config-store-DIu7x0ao.mjs";
|
|
3
|
-
//#region src/commands/auth/logout.ts
|
|
4
|
-
async function run(_flags, out) {
|
|
5
|
-
await deleteCredentials();
|
|
6
|
-
emitSuccess({ ok: true }, out);
|
|
7
|
-
}
|
|
8
|
-
//#endregion
|
|
9
|
-
export { run };
|
|
10
|
-
|
|
11
|
-
//# sourceMappingURL=logout-v8ihxsim.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logout-v8ihxsim.mjs","names":[],"sources":["../src/commands/auth/logout.ts"],"sourcesContent":["import { deleteCredentials } from '../../core/config-store'\nimport { emitSuccess, type OutputOptions } from '../../core/output'\nimport { type GlobalFlags } from '../internal/shared'\n\nexport async function run(_flags: GlobalFlags, out: OutputOptions) {\n await deleteCredentials()\n emitSuccess({ ok: true }, out)\n}\n"],"mappings":";;;AAIA,eAAsB,IAAI,QAAqB,KAAoB;CACjE,MAAM,kBAAkB;CACxB,YAAY,EAAE,IAAI,KAAK,GAAG,GAAG;AAC/B"}
|