@whatcha/cli 0.3.0 → 0.4.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 +39 -2
- package/dist/cli.js +9 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/diary-cover.js +54 -0
- package/dist/commands/diary-cover.js.map +1 -0
- package/dist/commands/profiles.js +76 -11
- package/dist/commands/profiles.js.map +1 -1
- package/dist/commands/read.js +7 -1
- package/dist/commands/read.js.map +1 -1
- package/dist/commands/write.js +90 -9
- package/dist/commands/write.js.map +1 -1
- package/dist/lib/append-entry.js +34 -7
- package/dist/lib/append-entry.js.map +1 -1
- package/dist/lib/entry-get.js +31 -0
- package/dist/lib/entry-get.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -173,12 +173,41 @@ diary on your personal shelf cannot be published. `--json` prints
|
|
|
173
173
|
`diaryId`, `groupId`, `groupName`, `isPublic`, `url` (`null` with `--off`)
|
|
174
174
|
and `openedToGroup`.
|
|
175
175
|
|
|
176
|
+
### `whatcha diary-cover`
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
whatcha diary-cover <diary> <file> | --clear [--json]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Sets the picture a diary's page and its share card show (#52), the same
|
|
183
|
+
one the app's cover frame sets: the file (JPEG, PNG, WebP, GIF or AVIF, at
|
|
184
|
+
most 40 MB) is uploaded into the diary's group and saved as the diary's
|
|
185
|
+
cover with `PATCH /diaries/{id}`. `--clear` removes it. Anyone who may edit
|
|
186
|
+
the diary's settings may do this. `--json` prints `diaryId` and
|
|
187
|
+
`coverMediaAssetId` (`null` after `--clear`).
|
|
188
|
+
|
|
176
189
|
### `whatcha write`
|
|
177
190
|
|
|
178
191
|
```
|
|
179
|
-
whatcha write <diary> --text "..." [--title "..."] [--tag <tag>]...
|
|
192
|
+
whatcha write <diary> (--text "..." | --text-file <path|->) [--title "..."] [--tag <tag>]...
|
|
193
|
+
[--image <file>]... [--cover <file>] [--time HH:MM] [--date YYYY-MM-DD] [--json]
|
|
180
194
|
```
|
|
181
195
|
|
|
196
|
+
`--text-file <path>` (#54) reads the text from a file, or from standard
|
|
197
|
+
input with `-`. Use it for anything longer than a line: on Windows the npm
|
|
198
|
+
command (`whatcha.cmd`) runs through `cmd.exe`, which ends `--text` at its
|
|
199
|
+
first line break and drops every flag after it. The file is read as UTF-8;
|
|
200
|
+
a byte-order mark is dropped and CRLF becomes LF.
|
|
201
|
+
|
|
202
|
+
`--image <file>` (repeat it for several) and `--cover <file>` (#51) add
|
|
203
|
+
pictures: each file is checked first (JPEG, PNG, WebP, GIF or AVIF, at most
|
|
204
|
+
40 MB), then uploaded into the diary's group. Images go after the ones the
|
|
205
|
+
entry already has -- its own are kept. `--cover` follows the `--title`
|
|
206
|
+
rule: it only fills an entry that has no cover (an existing one is kept,
|
|
207
|
+
reported as `coverKept: true`). With pictures, the text may be left out to
|
|
208
|
+
add them to the day's entry without writing anything. `--json` adds
|
|
209
|
+
`images` (the new ids) and `coverKept`.
|
|
210
|
+
|
|
182
211
|
`--title` and `--tag` (#1665) set the same `content.title` / `content.tags`
|
|
183
212
|
the app does, under the same rule as the text -- nothing somebody else
|
|
184
213
|
wrote is removed: `--title` only fills an entry that has no title yet (an
|
|
@@ -217,7 +246,8 @@ never sends a body it has not just read:
|
|
|
217
246
|
whatcha read <diary> [--date YYYY-MM-DD] [--json]
|
|
218
247
|
```
|
|
219
248
|
|
|
220
|
-
Defaults to today (diary timezone). Prints title/tags/body
|
|
249
|
+
Defaults to today (diary timezone). Prints title/tags/body and how many
|
|
250
|
+
images the entry has (`--json`: `images`, their ids, and `coverMediaAssetId`); a locked (Time
|
|
221
251
|
Capsule) entry is reported as locked, never shown early. `GET /entries` has
|
|
222
252
|
no `?date=` filter, so this pages through the diary's entries
|
|
223
253
|
newest-first (`src/lib/entry-find.ts`) until it finds that day or passes it
|
|
@@ -230,6 +260,7 @@ whatcha profiles [--json]
|
|
|
230
260
|
whatcha switch <@handle> [--json]
|
|
231
261
|
whatcha switch --account [--json]
|
|
232
262
|
whatcha profile-add <@handle> --name <display name> [--avatar <file>] [--json]
|
|
263
|
+
whatcha profile-avatar <@handle> <file> [--json]
|
|
233
264
|
whatcha profile-rm <@handle> [--json]
|
|
234
265
|
```
|
|
235
266
|
|
|
@@ -254,6 +285,12 @@ is 2. `--json` prints `profile` (`id`, `username`, `displayName`,
|
|
|
254
285
|
`avatarUrl`, `parentProfileId`) and `avatarError` (`null`, or
|
|
255
286
|
`{code, message}`).
|
|
256
287
|
|
|
288
|
+
`profile-avatar` (#50) changes the avatar of a profile that already exists,
|
|
289
|
+
with the same checks. The profile in use sets its own; another sub-profile
|
|
290
|
+
is set through a session for it, used once, as `profile-add` does. The
|
|
291
|
+
account's own avatar cannot be reached from a sub-profile -- `switch
|
|
292
|
+
--account` first. `--json` prints `profileId` and `avatarUrl`.
|
|
293
|
+
|
|
257
294
|
`switch --account` is how you come back. The API refuses to mint an account
|
|
258
295
|
session from a sub-profile's session on purpose -- a sub-profile that could
|
|
259
296
|
ask for one would be a way to take the account over -- so `switch` sets the
|
package/dist/cli.js
CHANGED
|
@@ -9,6 +9,7 @@ const read_1 = require("./commands/read");
|
|
|
9
9
|
const profiles_1 = require("./commands/profiles");
|
|
10
10
|
const shared_diary_1 = require("./commands/shared-diary");
|
|
11
11
|
const publish_1 = require("./commands/publish");
|
|
12
|
+
const diary_cover_1 = require("./commands/diary-cover");
|
|
12
13
|
const whoami_1 = require("./commands/whoami");
|
|
13
14
|
const wiki_1 = require("./commands/wiki");
|
|
14
15
|
const output_1 = require("./lib/output");
|
|
@@ -23,12 +24,15 @@ Usage:
|
|
|
23
24
|
whatcha diary-new <name> [--with <@handle>]... [--timezone <tz>] [--description "..."] [--json]
|
|
24
25
|
whatcha invite <diary> <@handle> [--json]
|
|
25
26
|
whatcha publish <diary> [--off] [--json]
|
|
26
|
-
whatcha
|
|
27
|
+
whatcha diary-cover <diary> <file> | --clear [--json]
|
|
28
|
+
whatcha write <diary> (--text "..." | --text-file <path|->) [--title "..."] [--tag <tag>]...
|
|
29
|
+
[--image <file>]... [--cover <file>] [--time HH:MM] [--date YYYY-MM-DD] [--json]
|
|
27
30
|
whatcha read <diary> [--date YYYY-MM-DD] [--json]
|
|
28
31
|
whatcha profiles [--json]
|
|
29
32
|
whatcha switch <@handle> [--json]
|
|
30
33
|
whatcha switch --account [--json]
|
|
31
34
|
whatcha profile-add <@handle> --name <display name> [--avatar <file>] [--json]
|
|
35
|
+
whatcha profile-avatar <@handle> <file> [--json]
|
|
32
36
|
whatcha profile-rm <@handle> [--json]
|
|
33
37
|
whatcha wiki list [--search <text>] [--group <group-id>] [--limit N] [--cursor <c>] [--json]
|
|
34
38
|
whatcha wiki read <page> [--group <group-id>] [--json]
|
|
@@ -78,6 +82,8 @@ async function run(argv) {
|
|
|
78
82
|
return (await (0, shared_diary_1.runInvite)((0, shared_diary_1.parseInviteArgs)(rest))).exitCode;
|
|
79
83
|
case "publish":
|
|
80
84
|
return (await (0, publish_1.runPublish)((0, publish_1.parsePublishArgs)(rest))).exitCode;
|
|
85
|
+
case "diary-cover":
|
|
86
|
+
return (await (0, diary_cover_1.runDiaryCover)((0, diary_cover_1.parseDiaryCoverArgs)(rest))).exitCode;
|
|
81
87
|
case "write":
|
|
82
88
|
return (await (0, write_1.runWrite)((0, write_1.parseWriteArgs)(rest))).exitCode;
|
|
83
89
|
case "read":
|
|
@@ -96,6 +102,8 @@ async function run(argv) {
|
|
|
96
102
|
return (await (0, profiles_1.runSwitch)((0, profiles_1.parseSwitchArgs)(rest))).exitCode;
|
|
97
103
|
case "profile-add":
|
|
98
104
|
return (await (0, profiles_1.runAdd)((0, profiles_1.parseAddArgs)(rest))).exitCode;
|
|
105
|
+
case "profile-avatar":
|
|
106
|
+
return (await (0, profiles_1.runAvatar)((0, profiles_1.parseAvatarArgs)(rest))).exitCode;
|
|
99
107
|
case "profile-rm":
|
|
100
108
|
return (await (0, profiles_1.runRemove)((0, profiles_1.parseRemoveArgs)(rest))).exitCode;
|
|
101
109
|
default:
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseDiaryCoverArgs = parseDiaryCoverArgs;
|
|
4
|
+
exports.runDiaryCover = runDiaryCover;
|
|
5
|
+
const node_util_1 = require("node:util");
|
|
6
|
+
const session_1 = require("../auth/session");
|
|
7
|
+
const errors_1 = require("../errors");
|
|
8
|
+
const diary_resolve_1 = require("../lib/diary-resolve");
|
|
9
|
+
const image_upload_1 = require("../lib/image-upload");
|
|
10
|
+
const output_1 = require("../lib/output");
|
|
11
|
+
const USAGE = "Usage: whatcha diary-cover <diary> <file> | --clear [--json]";
|
|
12
|
+
function parseDiaryCoverArgs(argv) {
|
|
13
|
+
let values, positionals;
|
|
14
|
+
try {
|
|
15
|
+
({ values, positionals } = (0, node_util_1.parseArgs)({
|
|
16
|
+
args: argv,
|
|
17
|
+
options: {
|
|
18
|
+
json: { type: "boolean", default: false },
|
|
19
|
+
clear: { type: "boolean", default: false },
|
|
20
|
+
},
|
|
21
|
+
allowPositionals: true,
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
throw new errors_1.CliUsageError(err.message);
|
|
26
|
+
}
|
|
27
|
+
const [diary, image, extra] = positionals;
|
|
28
|
+
if (!diary)
|
|
29
|
+
throw new errors_1.CliUsageError(USAGE);
|
|
30
|
+
if (extra !== undefined)
|
|
31
|
+
throw new errors_1.CliUsageError(`Unexpected extra argument: "${extra}"`);
|
|
32
|
+
const clear = values.clear;
|
|
33
|
+
if (clear && image !== undefined)
|
|
34
|
+
throw new errors_1.CliUsageError("Give a file or --clear, not both.");
|
|
35
|
+
if (!clear && image === undefined)
|
|
36
|
+
throw new errors_1.CliUsageError(`Which image? Give a file, or --clear to remove the cover.\n${USAGE}`);
|
|
37
|
+
return { json: values.json, diary, image, clear };
|
|
38
|
+
}
|
|
39
|
+
async function runDiaryCover(opts, deps = {}) {
|
|
40
|
+
// Checked before anything is sent, so a wrong file changes nothing.
|
|
41
|
+
const file = opts.image !== undefined ? await (0, image_upload_1.readImageFile)(opts.image) : undefined;
|
|
42
|
+
const client = deps.client ?? (await (0, session_1.authenticatedClient)()).client;
|
|
43
|
+
const diary = await (0, diary_resolve_1.resolveDiary)(client, opts.diary);
|
|
44
|
+
const coverMediaAssetId = file ? await (0, image_upload_1.uploadImage)(client, diary.groupId, file) : null;
|
|
45
|
+
await client.patch(`/diaries/${diary.id}`, { iconKey: coverMediaAssetId ?? "" });
|
|
46
|
+
if (opts.json)
|
|
47
|
+
(0, output_1.printJson)({ ok: true, diaryId: diary.id, coverMediaAssetId });
|
|
48
|
+
else if (coverMediaAssetId)
|
|
49
|
+
(0, output_1.printLine)(`Set the cover of "${diary.name}".`);
|
|
50
|
+
else
|
|
51
|
+
(0, output_1.printLine)(`Removed the cover of "${diary.name}".`);
|
|
52
|
+
return { exitCode: 0 };
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=diary-cover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diary-cover.js","sourceRoot":"","sources":["../../src/commands/diary-cover.ts"],"names":[],"mappings":";;AAyBA,kDAqBC;AAED,sCAgBC;AAhED,yCAAsC;AACtC,6CAAsD;AACtD,sCAA0C;AAE1C,wDAAoD;AACpD,sDAAiE;AACjE,0CAAqD;AAiBrD,MAAM,KAAK,GAAG,8DAA8D,CAAC;AAE7E,SAAgB,mBAAmB,CAAC,IAAc;IAChD,IAAI,MAAM,EAAE,WAAW,CAAC;IACxB,IAAI,CAAC;QACH,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,qBAAS,EAAC;YACnC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;gBACzC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;aAC3C;YACD,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,sBAAa,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,sBAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,sBAAa,CAAC,+BAA+B,KAAK,GAAG,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAgB,CAAC;IACtC,IAAI,KAAK,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,sBAAa,CAAC,mCAAmC,CAAC,CAAC;IAC/F,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,sBAAa,CAAC,8DAA8D,KAAK,EAAE,CAAC,CAAC;IAClI,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAe,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/D,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,IAAuB,EACvB,OAAmC,EAAE;IAErC,oEAAoE;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,IAAA,4BAAa,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAA,6BAAmB,GAAE,CAAC,CAAC,MAAM,CAAC;IACnE,MAAM,KAAK,GAAG,MAAM,IAAA,4BAAY,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAA,0BAAW,EAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvF,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC,CAAC;IAEjF,IAAI,IAAI,CAAC,IAAI;QAAE,IAAA,kBAAS,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;SACxE,IAAI,iBAAiB;QAAE,IAAA,kBAAS,EAAC,qBAAqB,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;;QACtE,IAAA,kBAAS,EAAC,yBAAyB,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IACxD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -5,6 +5,8 @@ exports.runProfiles = runProfiles;
|
|
|
5
5
|
exports.parseRemoveArgs = parseRemoveArgs;
|
|
6
6
|
exports.runRemove = runRemove;
|
|
7
7
|
exports.parseAddArgs = parseAddArgs;
|
|
8
|
+
exports.parseAvatarArgs = parseAvatarArgs;
|
|
9
|
+
exports.runAvatar = runAvatar;
|
|
8
10
|
exports.runAdd = runAdd;
|
|
9
11
|
exports.parseSwitchArgs = parseSwitchArgs;
|
|
10
12
|
exports.runSwitch = runSwitch;
|
|
@@ -130,6 +132,77 @@ function parseAddArgs(argv) {
|
|
|
130
132
|
}
|
|
131
133
|
return { username, displayName, avatar: values.avatar, json: values.json };
|
|
132
134
|
}
|
|
135
|
+
/** Reads an avatar file and checks it against `POST /me/avatar`'s limits. */
|
|
136
|
+
async function readAvatarFile(path) {
|
|
137
|
+
const avatar = await (0, image_upload_1.readImageFile)(path);
|
|
138
|
+
if (avatar.bytes.length > MAX_AVATAR_BYTES) {
|
|
139
|
+
throw new errors_1.CliUsageError(`${avatar.path} is over 5 MB; an avatar is at most 5 MB.`);
|
|
140
|
+
}
|
|
141
|
+
return avatar;
|
|
142
|
+
}
|
|
143
|
+
/** `POST /me/avatar` as whoever `client` is. The new avatar's URL. */
|
|
144
|
+
async function setAvatar(client, avatar) {
|
|
145
|
+
const set = await client.post("/me/avatar", {
|
|
146
|
+
fileName: avatar.fileName,
|
|
147
|
+
contentType: avatar.contentType,
|
|
148
|
+
dataBase64: Buffer.from(avatar.bytes).toString("base64"),
|
|
149
|
+
});
|
|
150
|
+
return set.avatarUrl;
|
|
151
|
+
}
|
|
152
|
+
function parseAvatarArgs(argv) {
|
|
153
|
+
let values;
|
|
154
|
+
let positionals;
|
|
155
|
+
try {
|
|
156
|
+
({ values, positionals } = (0, node_util_1.parseArgs)({
|
|
157
|
+
args: argv,
|
|
158
|
+
options: { json: { type: "boolean", default: false } },
|
|
159
|
+
allowPositionals: true,
|
|
160
|
+
}));
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
throw new errors_1.CliUsageError(err.message);
|
|
164
|
+
}
|
|
165
|
+
const [target, file, extra] = positionals;
|
|
166
|
+
if (!target || !file)
|
|
167
|
+
throw new errors_1.CliUsageError("Usage: whatcha profile-avatar <@handle> <file> [--json]");
|
|
168
|
+
if (extra !== undefined)
|
|
169
|
+
throw new errors_1.CliUsageError(`Unexpected extra argument: "${extra}"`);
|
|
170
|
+
return { target, file, json: values.json };
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Change an existing profile's avatar (#50) -- until now only `profile-add
|
|
174
|
+
* --avatar` could set one, at creation. The profile the CLI is signed in
|
|
175
|
+
* as sets its own; another of this login's sub-profiles is set through a
|
|
176
|
+
* session for it, used once and dropped, as `profile-add` does. The account
|
|
177
|
+
* itself cannot be reached from a sub-profile (the API refuses that on
|
|
178
|
+
* purpose), so that case says to switch back first.
|
|
179
|
+
*/
|
|
180
|
+
async function runAvatar(opts, deps = {}) {
|
|
181
|
+
const avatar = await readAvatarFile(opts.file);
|
|
182
|
+
const resolved = deps.client ? null : await (0, session_1.authenticatedClient)();
|
|
183
|
+
const client = deps.client ?? resolved.client;
|
|
184
|
+
const session = deps.session ?? resolved.session;
|
|
185
|
+
const forToken = deps.clientForToken ?? (0, profile_family_1.bearerClients)(resolved?.session.apiBaseUrl || (0, config_1.apiBaseUrl)());
|
|
186
|
+
const switcher = await client.get("/me/profiles");
|
|
187
|
+
const target = (0, profile_family_1.findProfile)(switcher.profiles, opts.target);
|
|
188
|
+
if (!target) {
|
|
189
|
+
throw new errors_1.CliUsageError(`No profile "${opts.target}". Run \`whatcha profiles\` to see them.`);
|
|
190
|
+
}
|
|
191
|
+
let asTarget;
|
|
192
|
+
if (target.id === session.userId)
|
|
193
|
+
asTarget = client;
|
|
194
|
+
else if (target.parentProfileId === null) {
|
|
195
|
+
throw new errors_1.CliUsageError("That is the account. Run `whatcha switch --account` first, then this again.");
|
|
196
|
+
}
|
|
197
|
+
else
|
|
198
|
+
asTarget = await (0, profile_family_1.clientAsProfile)(client, target.id, forToken);
|
|
199
|
+
const avatarUrl = await setAvatar(asTarget, avatar);
|
|
200
|
+
if (opts.json)
|
|
201
|
+
(0, output_1.printJson)({ ok: true, profileId: target.id, avatarUrl });
|
|
202
|
+
else
|
|
203
|
+
(0, output_1.printLine)(`Changed the avatar of @${target.username ?? target.id}.`);
|
|
204
|
+
return { exitCode: 0 };
|
|
205
|
+
}
|
|
133
206
|
/**
|
|
134
207
|
* Create a sub-profile (#1699): `POST /me/profiles`, the call the app's
|
|
135
208
|
* "Add a profile" dialog makes. The plan's limit and a taken @handle are
|
|
@@ -144,10 +217,7 @@ function parseAddArgs(argv) {
|
|
|
144
217
|
* than undone -- the profile is real and usable, just without a picture.
|
|
145
218
|
*/
|
|
146
219
|
async function runAdd(opts, deps = {}) {
|
|
147
|
-
const avatar = opts.avatar !== undefined ? await (
|
|
148
|
-
if (avatar && avatar.bytes.length > MAX_AVATAR_BYTES) {
|
|
149
|
-
throw new errors_1.CliUsageError(`${avatar.path} is over 5 MB; an avatar is at most 5 MB.`);
|
|
150
|
-
}
|
|
220
|
+
const avatar = opts.avatar !== undefined ? await readAvatarFile(opts.avatar) : undefined;
|
|
151
221
|
const resolved = deps.client ? null : await (0, session_1.authenticatedClient)();
|
|
152
222
|
const client = deps.client ?? resolved.client;
|
|
153
223
|
const forToken = deps.clientForToken ?? (0, profile_family_1.bearerClients)(resolved?.session.apiBaseUrl || (0, config_1.apiBaseUrl)());
|
|
@@ -159,12 +229,7 @@ async function runAdd(opts, deps = {}) {
|
|
|
159
229
|
if (avatar) {
|
|
160
230
|
try {
|
|
161
231
|
const asProfile = await (0, profile_family_1.clientAsProfile)(client, profile.id, forToken);
|
|
162
|
-
|
|
163
|
-
fileName: avatar.fileName,
|
|
164
|
-
contentType: avatar.contentType,
|
|
165
|
-
dataBase64: Buffer.from(avatar.bytes).toString("base64"),
|
|
166
|
-
});
|
|
167
|
-
profile = { ...profile, avatarUrl: set.avatarUrl };
|
|
232
|
+
profile = { ...profile, avatarUrl: await setAvatar(asProfile, avatar) };
|
|
168
233
|
}
|
|
169
234
|
catch (err) {
|
|
170
235
|
if (!(err instanceof errors_1.ApiError))
|
|
@@ -178,7 +243,7 @@ async function runAdd(opts, deps = {}) {
|
|
|
178
243
|
(0, output_1.printLine)(`Created @${profile.username ?? opts.username} (${label(profile)}). Run \`whatcha switch @${profile.username ?? opts.username}\` to write as it.`);
|
|
179
244
|
if (avatarError) {
|
|
180
245
|
(0, output_1.printErrorLine)(`WARNING: the profile was created, but its avatar could not be set (${avatarError.code}: ${avatarError.message}). ` +
|
|
181
|
-
|
|
246
|
+
`Try again with \`whatcha profile-avatar @${profile.username ?? opts.username} <file>\`.`);
|
|
182
247
|
return { exitCode: 2 };
|
|
183
248
|
}
|
|
184
249
|
return { exitCode: 0 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/commands/profiles.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/commands/profiles.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/read.js
CHANGED
|
@@ -8,6 +8,7 @@ const errors_1 = require("../errors");
|
|
|
8
8
|
const diary_resolve_1 = require("../lib/diary-resolve");
|
|
9
9
|
const entry_date_1 = require("../lib/entry-date");
|
|
10
10
|
const entry_find_1 = require("../lib/entry-find");
|
|
11
|
+
const entry_get_1 = require("../lib/entry-get");
|
|
11
12
|
const output_1 = require("../lib/output");
|
|
12
13
|
function parseReadArgs(argv) {
|
|
13
14
|
let values, positionals;
|
|
@@ -45,7 +46,8 @@ async function runRead(opts, deps = {}) {
|
|
|
45
46
|
(0, output_1.printLine)(`No entry in "${diary.name}" for ${dateKey}.`);
|
|
46
47
|
return { exitCode: 0 };
|
|
47
48
|
}
|
|
48
|
-
const entry = await
|
|
49
|
+
const entry = await (0, entry_get_1.getEntry)(client, listItem.id);
|
|
50
|
+
const images = (0, entry_get_1.entryMedia)(entry).map((m) => m.mediaAssetId);
|
|
49
51
|
if (opts.json) {
|
|
50
52
|
(0, output_1.printJson)({
|
|
51
53
|
ok: true,
|
|
@@ -60,6 +62,8 @@ async function runRead(opts, deps = {}) {
|
|
|
60
62
|
tags: entry.tags,
|
|
61
63
|
isLocked: entry.isLocked,
|
|
62
64
|
body: entry.body,
|
|
65
|
+
images,
|
|
66
|
+
coverMediaAssetId: entry.coverMediaAssetId ?? null,
|
|
63
67
|
});
|
|
64
68
|
return { exitCode: 0 };
|
|
65
69
|
}
|
|
@@ -70,6 +74,8 @@ async function runRead(opts, deps = {}) {
|
|
|
70
74
|
(0, output_1.printLine)(`${diary.name} / ${dateKey}${entry.title ? ` -- ${entry.title}` : ""}`);
|
|
71
75
|
if (entry.tags.length > 0)
|
|
72
76
|
(0, output_1.printLine)(`tags: ${entry.tags.join(", ")}`);
|
|
77
|
+
if (images.length > 0)
|
|
78
|
+
(0, output_1.printLine)(`images: ${images.length}`);
|
|
73
79
|
(0, output_1.printLine)("");
|
|
74
80
|
(0, output_1.printLine)(entry.body);
|
|
75
81
|
return { exitCode: 0 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/commands/read.ts"],"names":[],"mappings":";;AAgBA,sCAmBC;AAED,
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/commands/read.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/write.js
CHANGED
|
@@ -1,14 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readTextFile = readTextFile;
|
|
3
4
|
exports.parseWriteArgs = parseWriteArgs;
|
|
4
5
|
exports.runWrite = runWrite;
|
|
6
|
+
const promises_1 = require("node:fs/promises");
|
|
5
7
|
const node_util_1 = require("node:util");
|
|
6
8
|
const session_1 = require("../auth/session");
|
|
7
9
|
const errors_1 = require("../errors");
|
|
8
10
|
const diary_resolve_1 = require("../lib/diary-resolve");
|
|
9
11
|
const entry_date_1 = require("../lib/entry-date");
|
|
10
12
|
const append_entry_1 = require("../lib/append-entry");
|
|
13
|
+
const image_upload_1 = require("../lib/image-upload");
|
|
11
14
|
const output_1 = require("../lib/output");
|
|
15
|
+
const USAGE = 'Usage: whatcha write <diary> (--text "..." | --text-file <path|->) [--title "..."] [--tag <tag>]... ' +
|
|
16
|
+
"[--image <file>]... [--cover <file>] [--date YYYY-MM-DD] [--time HH:MM]";
|
|
17
|
+
/**
|
|
18
|
+
* The text of `--text-file` (#54): a file, or standard input for `-`.
|
|
19
|
+
*
|
|
20
|
+
* `--text` is one command-line argument, and on Windows the npm shim
|
|
21
|
+
* (`whatcha.cmd`) passes through cmd.exe, which ends an argument at its
|
|
22
|
+
* first line break -- the rest of the text, and every flag after it, was
|
|
23
|
+
* lost. A file has no such limit. A UTF-8 byte-order mark is dropped and
|
|
24
|
+
* CRLF becomes LF, so a file saved by Notepad reads like any other.
|
|
25
|
+
*/
|
|
26
|
+
async function readTextFile(path, stdin = readStdin) {
|
|
27
|
+
let raw;
|
|
28
|
+
try {
|
|
29
|
+
raw = path === "-" ? await stdin() : await (0, promises_1.readFile)(path, "utf8");
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
throw new errors_1.CliUsageError(`Cannot read ${path}: ${err.code ?? err.message}`);
|
|
33
|
+
}
|
|
34
|
+
return raw.replace(/^/, "").replace(/\r\n?/g, "\n");
|
|
35
|
+
}
|
|
36
|
+
async function readStdin() {
|
|
37
|
+
const chunks = [];
|
|
38
|
+
for await (const chunk of process.stdin)
|
|
39
|
+
chunks.push(Buffer.from(chunk));
|
|
40
|
+
return Buffer.concat(chunks).toString("utf8");
|
|
41
|
+
}
|
|
12
42
|
function parseWriteArgs(argv) {
|
|
13
43
|
let values, positionals;
|
|
14
44
|
try {
|
|
@@ -17,10 +47,13 @@ function parseWriteArgs(argv) {
|
|
|
17
47
|
options: {
|
|
18
48
|
json: { type: "boolean", default: false },
|
|
19
49
|
text: { type: "string" },
|
|
50
|
+
"text-file": { type: "string" },
|
|
20
51
|
date: { type: "string" },
|
|
21
52
|
time: { type: "string" },
|
|
22
53
|
title: { type: "string" },
|
|
23
54
|
tag: { type: "string", multiple: true },
|
|
55
|
+
image: { type: "string", multiple: true },
|
|
56
|
+
cover: { type: "string" },
|
|
24
57
|
},
|
|
25
58
|
allowPositionals: true,
|
|
26
59
|
}));
|
|
@@ -28,15 +61,31 @@ function parseWriteArgs(argv) {
|
|
|
28
61
|
catch (err) {
|
|
29
62
|
throw new errors_1.CliUsageError(err.message);
|
|
30
63
|
}
|
|
31
|
-
if (positionals.length === 0)
|
|
32
|
-
throw new errors_1.CliUsageError(
|
|
33
|
-
}
|
|
64
|
+
if (positionals.length === 0)
|
|
65
|
+
throw new errors_1.CliUsageError(USAGE);
|
|
34
66
|
if (positionals.length > 1)
|
|
35
67
|
throw new errors_1.CliUsageError(`Unexpected extra argument: "${positionals[1]}"`);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
68
|
+
const images = values.image ?? [];
|
|
69
|
+
for (const i of images)
|
|
70
|
+
if (!i.trim())
|
|
71
|
+
throw new errors_1.CliUsageError("--image takes a file path.");
|
|
72
|
+
const cover = values.cover;
|
|
73
|
+
if (cover !== undefined && !cover.trim())
|
|
74
|
+
throw new errors_1.CliUsageError("--cover takes a file path.");
|
|
75
|
+
const textFile = values["text-file"];
|
|
76
|
+
if (values.text !== undefined && textFile !== undefined) {
|
|
77
|
+
throw new errors_1.CliUsageError("Give --text or --text-file, not both.");
|
|
78
|
+
}
|
|
79
|
+
if (textFile !== undefined && !textFile.trim())
|
|
80
|
+
throw new errors_1.CliUsageError("--text-file takes a path, or - for standard input.");
|
|
81
|
+
const text = values.text ?? "";
|
|
82
|
+
const onlyPictures = images.length > 0 || cover !== undefined;
|
|
83
|
+
if (values.text === undefined && textFile === undefined && !onlyPictures) {
|
|
84
|
+
throw new errors_1.CliUsageError("--text or --text-file is required (or --image / --cover to add only pictures).");
|
|
85
|
+
}
|
|
86
|
+
if (textFile === undefined && text.trim().length === 0 && !onlyPictures) {
|
|
39
87
|
throw new errors_1.CliUsageError("--text must not be empty.");
|
|
88
|
+
}
|
|
40
89
|
const title = values.title;
|
|
41
90
|
if (title !== undefined) {
|
|
42
91
|
if (title.trim().length === 0)
|
|
@@ -57,18 +106,44 @@ function parseWriteArgs(argv) {
|
|
|
57
106
|
return {
|
|
58
107
|
json: values.json,
|
|
59
108
|
diary: positionals[0],
|
|
60
|
-
text
|
|
109
|
+
text,
|
|
110
|
+
...(textFile !== undefined ? { textFile } : {}),
|
|
61
111
|
date: values.date,
|
|
62
112
|
time: values.time,
|
|
63
113
|
title: title?.trim(),
|
|
64
114
|
tags,
|
|
115
|
+
images,
|
|
116
|
+
cover,
|
|
65
117
|
};
|
|
66
118
|
}
|
|
67
119
|
async function runWrite(opts, deps = {}) {
|
|
120
|
+
let text = opts.text;
|
|
121
|
+
if (opts.textFile !== undefined) {
|
|
122
|
+
text = await readTextFile(opts.textFile, deps.stdin);
|
|
123
|
+
if (text.trim().length === 0 && (opts.images ?? []).length === 0 && opts.cover === undefined) {
|
|
124
|
+
throw new errors_1.CliUsageError(`${opts.textFile === "-" ? "Standard input" : opts.textFile} has no text.`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Every file is read and checked before anything goes over the network,
|
|
128
|
+
// so a wrong path writes nothing.
|
|
129
|
+
const images = [];
|
|
130
|
+
for (const path of opts.images ?? [])
|
|
131
|
+
images.push(await (0, image_upload_1.readImageFile)(path));
|
|
132
|
+
const coverFile = opts.cover !== undefined ? await (0, image_upload_1.readImageFile)(opts.cover) : undefined;
|
|
68
133
|
const client = deps.client ?? (await (0, session_1.authenticatedClient)()).client;
|
|
69
134
|
const diary = await (0, diary_resolve_1.resolveDiary)(client, opts.diary);
|
|
70
135
|
const occurredAt = (0, entry_date_1.resolveOccurredAt)({ date: opts.date, time: opts.time }, diary.timezone);
|
|
71
|
-
|
|
136
|
+
// Into the diary's own group: an entry can only show media of its group.
|
|
137
|
+
const imageIds = [];
|
|
138
|
+
for (const image of images)
|
|
139
|
+
imageIds.push(await (0, image_upload_1.uploadImage)(client, diary.groupId, image));
|
|
140
|
+
const coverId = coverFile ? await (0, image_upload_1.uploadImage)(client, diary.groupId, coverFile) : undefined;
|
|
141
|
+
const result = await (0, append_entry_1.writeEntry)(client, diary.id, occurredAt, text, {
|
|
142
|
+
title: opts.title,
|
|
143
|
+
tags: opts.tags,
|
|
144
|
+
images: imageIds,
|
|
145
|
+
coverMediaAssetId: coverId,
|
|
146
|
+
});
|
|
72
147
|
if (opts.json) {
|
|
73
148
|
(0, output_1.printJson)({
|
|
74
149
|
ok: true,
|
|
@@ -80,11 +155,14 @@ async function runWrite(opts, deps = {}) {
|
|
|
80
155
|
title: result.title,
|
|
81
156
|
tags: result.tags,
|
|
82
157
|
titleKept: result.titleKept,
|
|
158
|
+
...(imageIds.length > 0 ? { images: imageIds } : {}),
|
|
159
|
+
...(result.coverKept !== undefined ? { coverKept: result.coverKept } : {}),
|
|
83
160
|
});
|
|
84
161
|
}
|
|
85
162
|
else {
|
|
86
163
|
const verb = result.mode === "created" ? "Created" : "Appended to";
|
|
87
|
-
|
|
164
|
+
const pictures = imageIds.length > 0 ? ` with ${imageIds.length} image${imageIds.length === 1 ? "" : "s"}` : "";
|
|
165
|
+
(0, output_1.printLine)(`${verb} the entry for ${diary.name} (${occurredAt.toISOString()})${pictures}. entryId=${result.entryId}`);
|
|
88
166
|
}
|
|
89
167
|
if (result.titleKept) {
|
|
90
168
|
// Not an error -- the text and tags landed -- but the person asked for
|
|
@@ -92,6 +170,9 @@ async function runWrite(opts, deps = {}) {
|
|
|
92
170
|
// below, so --json stdout stays one object).
|
|
93
171
|
(0, output_1.printErrorLine)(`Note: this entry already has a title ("${result.title}"), which was kept; --title was not applied.`);
|
|
94
172
|
}
|
|
173
|
+
if (result.coverKept) {
|
|
174
|
+
(0, output_1.printErrorLine)("Note: this entry already has a cover, which was kept; --cover was not applied.");
|
|
175
|
+
}
|
|
95
176
|
if (result.verified === false) {
|
|
96
177
|
// Loud on purpose, on stderr even in --json mode -- see
|
|
97
178
|
// append-entry.ts's verifyAppend comment. stdout still carries only
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/commands/write.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/commands/write.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/append-entry.js
CHANGED
|
@@ -5,6 +5,7 @@ exports.normalizeTags = normalizeTags;
|
|
|
5
5
|
exports.mergeHeader = mergeHeader;
|
|
6
6
|
exports.writeEntry = writeEntry;
|
|
7
7
|
const errors_1 = require("../errors");
|
|
8
|
+
const entry_get_1 = require("./entry-get");
|
|
8
9
|
/** The API's own limits (entries-content.ts `contentSchema`). */
|
|
9
10
|
exports.MAX_TITLE_LENGTH = 200;
|
|
10
11
|
exports.MAX_TAG_LENGTH = 64;
|
|
@@ -63,12 +64,17 @@ function mergeHeader(header, meta) {
|
|
|
63
64
|
* API's own `appendedBody` (apps/api/src/modules/diaries/entries/
|
|
64
65
|
* entries-content.ts, merged to master in #1424): existing text, trimmed,
|
|
65
66
|
* then a blank line, then the new text -- or just the new text if there was
|
|
66
|
-
* none yet.
|
|
67
|
+
* none yet. No text (only images or a cover, #51) leaves it as it was.
|
|
67
68
|
*/
|
|
68
69
|
function expectedAppendedBody(existingBody, text) {
|
|
69
70
|
const trimmed = existingBody.trimEnd();
|
|
71
|
+
if (!text.trim())
|
|
72
|
+
return trimmed;
|
|
70
73
|
return trimmed ? `${trimmed}\n\n${text}` : text;
|
|
71
74
|
}
|
|
75
|
+
function mediaOf(ids) {
|
|
76
|
+
return (ids ?? []).map((mediaAssetId) => ({ mediaAssetId }));
|
|
77
|
+
}
|
|
72
78
|
/**
|
|
73
79
|
* The one thing this whole command exists to get right: add `text` to
|
|
74
80
|
* `diaryId`'s entry for `occurredAt`'s day without ever touching what
|
|
@@ -104,11 +110,19 @@ function expectedAppendedBody(existingBody, text) {
|
|
|
104
110
|
async function writeEntry(client, diaryId, occurredAt, text, meta = {}) {
|
|
105
111
|
const title = meta.title?.trim() || undefined;
|
|
106
112
|
const tags = normalizeTags(meta.tags ?? []);
|
|
113
|
+
const cover = meta.coverMediaAssetId;
|
|
114
|
+
const images = meta.images ?? [];
|
|
107
115
|
try {
|
|
108
116
|
const created = await client.post("/entries", {
|
|
109
117
|
diaryId,
|
|
110
118
|
occurredAt: occurredAt.toISOString(),
|
|
111
|
-
content: {
|
|
119
|
+
content: {
|
|
120
|
+
body: text,
|
|
121
|
+
...(title ? { title } : {}),
|
|
122
|
+
...(tags.length > 0 ? { tags } : {}),
|
|
123
|
+
...(cover ? { coverMediaAssetId: cover } : {}),
|
|
124
|
+
},
|
|
125
|
+
...(images.length > 0 ? { media: mediaOf(images) } : {}),
|
|
112
126
|
});
|
|
113
127
|
return {
|
|
114
128
|
entryId: created.id,
|
|
@@ -118,6 +132,7 @@ async function writeEntry(client, diaryId, occurredAt, text, meta = {}) {
|
|
|
118
132
|
title: title ?? null,
|
|
119
133
|
tags,
|
|
120
134
|
titleKept: false,
|
|
135
|
+
...(cover ? { coverKept: false } : {}),
|
|
121
136
|
};
|
|
122
137
|
}
|
|
123
138
|
catch (err) {
|
|
@@ -126,16 +141,27 @@ async function writeEntry(client, diaryId, occurredAt, text, meta = {}) {
|
|
|
126
141
|
const existingEntryId = existingEntryIdFrom(err);
|
|
127
142
|
if (!existingEntryId)
|
|
128
143
|
throw err;
|
|
129
|
-
return appendToExisting(client, existingEntryId, text, { title, tags });
|
|
144
|
+
return appendToExisting(client, existingEntryId, text, { title, tags, images, coverMediaAssetId: cover });
|
|
130
145
|
}
|
|
131
146
|
}
|
|
132
147
|
async function appendToExisting(client, entryId, text, meta) {
|
|
133
|
-
const existing = await
|
|
134
|
-
const
|
|
135
|
-
const
|
|
148
|
+
const existing = await (0, entry_get_1.getEntry)(client, entryId);
|
|
149
|
+
const merged = mergeHeader(headerOf(existing), meta);
|
|
150
|
+
const { titleKept } = merged;
|
|
151
|
+
let header = merged.header;
|
|
152
|
+
let coverKept;
|
|
153
|
+
if (meta.coverMediaAssetId) {
|
|
154
|
+
coverKept = Boolean(header.coverMediaAssetId);
|
|
155
|
+
if (!coverKept)
|
|
156
|
+
header = { ...header, coverMediaAssetId: meta.coverMediaAssetId };
|
|
157
|
+
}
|
|
158
|
+
const after = { title: header.title, tags: header.tags, titleKept, ...(coverKept !== undefined ? { coverKept } : {}) };
|
|
159
|
+
// Sent only when there are images to add: leaving `media` out keeps the entry's own.
|
|
160
|
+
const media = meta.images && meta.images.length > 0 ? { media: [...(0, entry_get_1.entryMedia)(existing), ...mediaOf(meta.images)] } : {};
|
|
136
161
|
try {
|
|
137
162
|
const saved = await client.patch(`/entries/${entryId}`, {
|
|
138
163
|
content: { body: text, ...header },
|
|
164
|
+
...media,
|
|
139
165
|
appendBody: true,
|
|
140
166
|
expectedHeadCommitId: existing.headCommitId,
|
|
141
167
|
});
|
|
@@ -157,6 +183,7 @@ async function appendToExisting(client, entryId, text, meta) {
|
|
|
157
183
|
const saved = await client
|
|
158
184
|
.patch(`/entries/${entryId}`, {
|
|
159
185
|
content: { body: mergedBody, ...header },
|
|
186
|
+
...media,
|
|
160
187
|
expectedHeadCommitId: existing.headCommitId,
|
|
161
188
|
})
|
|
162
189
|
.catch((fallbackErr) => {
|
|
@@ -187,7 +214,7 @@ function concurrentWriteError(err) {
|
|
|
187
214
|
* this does not mistake a corrupted write for a clean one.
|
|
188
215
|
*/
|
|
189
216
|
async function verifyAppend(client, entryId, bodyBeforeWrite, text) {
|
|
190
|
-
const after = await
|
|
217
|
+
const after = await (0, entry_get_1.getEntry)(client, entryId);
|
|
191
218
|
return after.body === expectedAppendedBody(bodyBeforeWrite, text);
|
|
192
219
|
}
|
|
193
220
|
//# sourceMappingURL=append-entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"append-entry.js","sourceRoot":"","sources":["../../src/lib/append-entry.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"append-entry.js","sourceRoot":"","sources":["../../src/lib/append-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEntry = getEntry;
|
|
4
|
+
exports.entryBody = entryBody;
|
|
5
|
+
exports.entryMedia = entryMedia;
|
|
6
|
+
/**
|
|
7
|
+
* `GET /entries/:id`, with `body` always a string (#53).
|
|
8
|
+
*
|
|
9
|
+
* The API answers with the commit's `items`; a top-level `body` came back
|
|
10
|
+
* only with the fix for #53. Every server without it made `whatcha read`
|
|
11
|
+
* print "undefined" and made `whatcha write` unable to confirm that an
|
|
12
|
+
* append kept the text before it. So the text item is the fallback, and
|
|
13
|
+
* nothing here trusts `body` to be present.
|
|
14
|
+
*/
|
|
15
|
+
async function getEntry(client, entryId) {
|
|
16
|
+
const entry = await client.get(`/entries/${entryId}`);
|
|
17
|
+
return { ...entry, body: entryBody(entry) };
|
|
18
|
+
}
|
|
19
|
+
function entryBody(entry) {
|
|
20
|
+
if (typeof entry.body === "string")
|
|
21
|
+
return entry.body;
|
|
22
|
+
const text = (entry.items ?? []).find((i) => i.type === "text" && i.text);
|
|
23
|
+
return text?.text?.content ?? "";
|
|
24
|
+
}
|
|
25
|
+
/** The entry's images in order, as a save must resend them to keep them. */
|
|
26
|
+
function entryMedia(entry) {
|
|
27
|
+
return (entry.items ?? [])
|
|
28
|
+
.filter((i) => i.type === "media" && i.media?.mediaAssetId)
|
|
29
|
+
.map((i) => ({ mediaAssetId: i.media.mediaAssetId, caption: i.media.caption ?? null }));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=entry-get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry-get.js","sourceRoot":"","sources":["../../src/lib/entry-get.ts"],"names":[],"mappings":";;AAYA,4BAGC;AAED,8BAIC;AAGD,gCAIC;AAzBD;;;;;;;;GAQG;AACI,KAAK,UAAU,QAAQ,CAAC,MAAqB,EAAE,OAAe;IACnE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAc,YAAY,OAAO,EAAE,CAAC,CAAC;IACnE,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,SAAgB,SAAS,CAAC,KAA0C;IAClE,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IACtD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,OAAO,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;AACnC,CAAC;AAED,4EAA4E;AAC5E,SAAgB,UAAU,CAAC,KAAiC;IAC1D,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,KAAM,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,KAAM,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9F,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@whatcha/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Official command-line client for what-are-you-do-ing (whatareyoudo.ing) -- login (password or personal access key), list diaries, write and read entries, switch profiles, read and write the Experience Wiki, with images.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://whatareyoudo.ing/cli",
|