@aloth/olcli 0.5.0 → 0.7.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/dist/mcp.js CHANGED
@@ -22,7 +22,7 @@ import { readFile } from 'node:fs/promises';
22
22
  import { join, resolve } from 'node:path';
23
23
  import AdmZip from 'adm-zip';
24
24
  import { OverleafClient } from './client.js';
25
- import { getSessionCookie, getBaseUrl, } from './config.js';
25
+ import { getSessionCookie, getBaseUrl, getSessionCookieName, setSessionCookie, setSessionCookieName, getPasswordCredentials, } from './config.js';
26
26
  // ---------------------------------------------------------------------------
27
27
  // Auth helpers
28
28
  // ---------------------------------------------------------------------------
@@ -51,7 +51,7 @@ function resolveSessionCookie() {
51
51
  if (stored)
52
52
  return stored;
53
53
  throw new Error('No Overleaf session cookie found.\n' +
54
- 'Set OVERLEAF_SESSION=<cookie> or run `olcli auth` first.');
54
+ 'Set OVERLEAF_SESSION=<cookie>, run `olcli auth`, or save password login credentials with `olcli auth --email <email> --password <password>`.');
55
55
  }
56
56
  // ---------------------------------------------------------------------------
57
57
  // Lazy client factory — initialised once, reused across requests
@@ -60,9 +60,23 @@ let _client = null;
60
60
  async function getClient() {
61
61
  if (_client)
62
62
  return _client;
63
- const cookie = resolveSessionCookie();
64
63
  const baseUrl = process.env.OVERLEAF_BASE_URL ?? getBaseUrl();
65
- _client = await OverleafClient.fromSessionCookie(cookie, baseUrl);
64
+ const cookieName = getSessionCookieName();
65
+ try {
66
+ const cookie = resolveSessionCookie();
67
+ _client = await OverleafClient.fromSessionCookie(cookie, baseUrl, cookieName);
68
+ }
69
+ catch (error) {
70
+ const credentials = getPasswordCredentials();
71
+ if (!credentials)
72
+ throw error;
73
+ _client = await OverleafClient.fromPasswordLogin(credentials.email, credentials.password, baseUrl);
74
+ const sessionCookie = _client.getSessionCookiePair(cookieName);
75
+ if (sessionCookie) {
76
+ setSessionCookieName(sessionCookie.name);
77
+ setSessionCookie(sessionCookie.value);
78
+ }
79
+ }
66
80
  return _client;
67
81
  }
68
82
  // ---------------------------------------------------------------------------
@@ -70,7 +84,7 @@ async function getClient() {
70
84
  // ---------------------------------------------------------------------------
71
85
  const server = new McpServer({
72
86
  name: 'olcli',
73
- version: '0.5.0',
87
+ version: '0.7.0',
74
88
  }, {
75
89
  capabilities: { tools: {} },
76
90
  });
@@ -261,6 +275,18 @@ server.tool('add_comment', 'Add a review comment to a specific location in an Ov
261
275
  });
262
276
  }));
263
277
  // ---------------------------------------------------------------------------
278
+ // Tool: reply_to_comment
279
+ // ---------------------------------------------------------------------------
280
+ server.tool('reply_to_comment', 'Add a reply to an existing comment thread on an Overleaf project.', {
281
+ project_id: z.string().describe('The Overleaf project ID'),
282
+ thread_id: z.string().describe('The comment thread ID (from list_comments)'),
283
+ content: z.string().describe('The reply message text'),
284
+ }, async ({ project_id, thread_id, content }) => wrapTool(async () => {
285
+ const client = await getClient();
286
+ const message = await client.postCommentMessage(project_id, thread_id, content);
287
+ return { replied: true, thread_id, message };
288
+ }));
289
+ // ---------------------------------------------------------------------------
264
290
  // Tool: resolve_comment
265
291
  // ---------------------------------------------------------------------------
266
292
  server.tool('resolve_comment', 'Mark a review comment thread as resolved.', {
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * git-remote-overleaf — Git remote helper for Overleaf projects.
4
+ *
5
+ * Allows native git commands against Overleaf:
6
+ * git clone overleaf::https://www.overleaf.com/project/<id>
7
+ * git pull
8
+ * git push
9
+ *
10
+ * Protocol reference: gitremote-helpers(7)
11
+ *
12
+ * Capabilities: import + export with refspec.
13
+ * State stored in .git/overleaf/ (manifest).
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=remote-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-helper.d.ts","sourceRoot":"","sources":["../src/remote-helper.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
@@ -0,0 +1,431 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * git-remote-overleaf — Git remote helper for Overleaf projects.
4
+ *
5
+ * Allows native git commands against Overleaf:
6
+ * git clone overleaf::https://www.overleaf.com/project/<id>
7
+ * git pull
8
+ * git push
9
+ *
10
+ * Protocol reference: gitremote-helpers(7)
11
+ *
12
+ * Capabilities: import + export with refspec.
13
+ * State stored in .git/overleaf/ (manifest).
14
+ */
15
+ import { createInterface } from 'node:readline';
16
+ import { execSync } from 'node:child_process';
17
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
18
+ import { join, resolve } from 'node:path';
19
+ import { OverleafClient } from './client.js';
20
+ import { getSessionCookie, getBaseUrl, getSessionCookieName, getTimeout, getPasswordCredentials, } from './config.js';
21
+ import { loadIgnore, shouldIgnore } from './ignore.js';
22
+ // ─── Logging (stderr only — stdout is the git protocol channel) ───
23
+ function debug(msg) {
24
+ if (process.env.GIT_REMOTE_OVERLEAF_DEBUG) {
25
+ process.stderr.write(`[git-remote-overleaf] ${msg}\n`);
26
+ }
27
+ }
28
+ function fatal(msg) {
29
+ process.stderr.write(`fatal: ${msg}\n`);
30
+ process.exit(1);
31
+ }
32
+ /**
33
+ * Parse an Overleaf project URL into base URL and project ID.
34
+ *
35
+ * Supported formats:
36
+ * https://www.overleaf.com/project/abc123
37
+ * overleaf::https://www.overleaf.com/project/abc123
38
+ * https://custom.overleaf.example.com/project/abc123
39
+ * abc123 (bare project ID, uses configured base URL)
40
+ */
41
+ function parseRemoteUrl(url) {
42
+ // Strip the overleaf:: prefix if present (git passes the raw URL part)
43
+ const cleaned = url.replace(/^overleaf::/, '');
44
+ // Try parsing as URL with /project/<id> path
45
+ const projectPathMatch = cleaned.match(/^(https?:\/\/[^/]+)\/project\/([a-f0-9]{24})$/i);
46
+ if (projectPathMatch) {
47
+ return { baseUrl: projectPathMatch[1], projectId: projectPathMatch[2] };
48
+ }
49
+ // Bare 24-char hex ID
50
+ if (/^[a-f0-9]{24}$/i.test(cleaned)) {
51
+ return { baseUrl: getBaseUrl(), projectId: cleaned };
52
+ }
53
+ fatal(`Cannot parse Overleaf URL: ${url}\n Expected: https://<host>/project/<24-char-id>`);
54
+ }
55
+ function getGitDir() {
56
+ const gitDir = process.env.GIT_DIR;
57
+ if (!gitDir)
58
+ fatal('GIT_DIR not set — are you running inside git?');
59
+ return resolve(gitDir); // Always return absolute path
60
+ }
61
+ function stateDir() {
62
+ return join(getGitDir(), 'overleaf');
63
+ }
64
+ function ensureStateDir() {
65
+ const dir = stateDir();
66
+ if (!existsSync(dir))
67
+ mkdirSync(dir, { recursive: true });
68
+ }
69
+ function loadState() {
70
+ const path = join(stateDir(), 'state.json');
71
+ if (!existsSync(path))
72
+ return { manifest: [], lastMark: 0 };
73
+ try {
74
+ return JSON.parse(readFileSync(path, 'utf-8'));
75
+ }
76
+ catch {
77
+ return { manifest: [], lastMark: 0 };
78
+ }
79
+ }
80
+ function saveState(state) {
81
+ ensureStateDir();
82
+ writeFileSync(join(stateDir(), 'state.json'), JSON.stringify(state, null, 2));
83
+ }
84
+ // ─── Authentication (reuses olcli's config chain) ───
85
+ async function getClient(baseUrl) {
86
+ const cookieName = getSessionCookieName();
87
+ const cookie = getSessionCookie();
88
+ const passwordCredentials = getPasswordCredentials();
89
+ if (cookie) {
90
+ try {
91
+ const client = await OverleafClient.fromSessionCookie(cookie, baseUrl, cookieName);
92
+ client.setGlobalTimeout(getTimeout());
93
+ return client;
94
+ }
95
+ catch (err) {
96
+ if (!passwordCredentials) {
97
+ fatal(`Authentication failed: ${err.message}\nRun 'olcli login' first.`);
98
+ }
99
+ }
100
+ }
101
+ if (passwordCredentials) {
102
+ const client = await OverleafClient.fromPasswordLogin(passwordCredentials.email, passwordCredentials.password, baseUrl);
103
+ client.setGlobalTimeout(getTimeout());
104
+ return client;
105
+ }
106
+ fatal('No Overleaf credentials found. Run \'olcli login\' or set OVERLEAF_SESSION.');
107
+ }
108
+ /**
109
+ * Read fast-export stream from stdin and extract file modifications/deletions.
110
+ *
111
+ * The stream comes after we respond to the "export" command. Git sends
112
+ * fast-export data terminated by "done\n".
113
+ */
114
+ async function parseFastExport(rl) {
115
+ const files = [];
116
+ const deletes = [];
117
+ const blobData = new Map(); // mark → data
118
+ let currentMark = '';
119
+ let dataBuffer = Buffer.alloc(0);
120
+ // State machine for parsing the fast-export stream.
121
+ // readline gives us lines; for binary `data <N>` sections we accumulate bytes.
122
+ let state = 'command';
123
+ let pendingDataBytes = 0;
124
+ let pendingMark = '';
125
+ let commitSection = false;
126
+ for await (const line of rl) {
127
+ if (state === 'data') {
128
+ // Accumulate data — readline splits on \n so we rejoin
129
+ const lineBytes = Buffer.from(line + '\n', 'binary');
130
+ dataBuffer = Buffer.concat([dataBuffer, lineBytes]);
131
+ if (dataBuffer.length >= pendingDataBytes) {
132
+ // Trim to exact length
133
+ const finalData = dataBuffer.subarray(0, pendingDataBytes);
134
+ if (pendingMark) {
135
+ blobData.set(pendingMark, finalData);
136
+ }
137
+ state = 'command';
138
+ dataBuffer = Buffer.alloc(0);
139
+ pendingMark = '';
140
+ }
141
+ continue;
142
+ }
143
+ // Command mode
144
+ if (line === 'done' || line === '') {
145
+ if (line === 'done')
146
+ break;
147
+ continue;
148
+ }
149
+ if (line.startsWith('blob')) {
150
+ commitSection = false;
151
+ continue;
152
+ }
153
+ if (line.startsWith('mark :')) {
154
+ currentMark = line.slice(6);
155
+ continue;
156
+ }
157
+ if (line.startsWith('data ')) {
158
+ pendingDataBytes = parseInt(line.slice(5), 10);
159
+ pendingMark = commitSection ? '' : currentMark;
160
+ state = 'data';
161
+ dataBuffer = Buffer.alloc(0);
162
+ continue;
163
+ }
164
+ if (line.startsWith('commit ')) {
165
+ commitSection = true;
166
+ continue;
167
+ }
168
+ if (line.startsWith('committer ') || line.startsWith('author ')) {
169
+ continue;
170
+ }
171
+ if (line.startsWith('from ') || line.startsWith('merge ')) {
172
+ continue;
173
+ }
174
+ // File modification: M <mode> <dataref> <path>
175
+ const mMatch = line.match(/^M \d+ :(\S+) (.+)$/);
176
+ if (mMatch) {
177
+ const [, markRef, path] = mMatch;
178
+ const content = blobData.get(markRef);
179
+ if (content) {
180
+ files.push({ path, content });
181
+ }
182
+ continue;
183
+ }
184
+ // Inline modification: M <mode> inline <path>
185
+ const mInline = line.match(/^M \d+ inline (.+)$/);
186
+ if (mInline) {
187
+ // Next will be a data line
188
+ currentMark = `__inline_${mInline[1]}`;
189
+ continue;
190
+ }
191
+ // Deletion: D <path>
192
+ const dMatch = line.match(/^D (.+)$/);
193
+ if (dMatch) {
194
+ deletes.push({ path: dMatch[1] });
195
+ continue;
196
+ }
197
+ }
198
+ // Resolve any inline blobs
199
+ for (const [mark, data] of blobData) {
200
+ if (mark.startsWith('__inline_')) {
201
+ const path = mark.slice(9);
202
+ files.push({ path, content: data });
203
+ }
204
+ }
205
+ return { files, deletes };
206
+ }
207
+ // ─── Push logic ───
208
+ async function pushChanges(client, projectId, parsed, _state) {
209
+ const ignoreCtx = loadIgnore(process.cwd(), {});
210
+ // Upload modified/new files
211
+ for (const file of parsed.files) {
212
+ if (shouldIgnore(file.path, ignoreCtx)) {
213
+ debug(`Skipping ignored file: ${file.path}`);
214
+ continue;
215
+ }
216
+ debug(`Uploading: ${file.path}`);
217
+ await client.uploadFile(projectId, null, file.path, file.content);
218
+ }
219
+ // Delete removed files
220
+ for (const del of parsed.deletes) {
221
+ debug(`Deleting: ${del.path}`);
222
+ try {
223
+ await client.deleteByPath(projectId, del.path);
224
+ }
225
+ catch (err) {
226
+ // File might already be gone on remote
227
+ debug(`Warning: Could not delete ${del.path}: ${err.message}`);
228
+ }
229
+ }
230
+ }
231
+ // ─── Protocol handler ───
232
+ async function main() {
233
+ // Args: git-remote-overleaf <remote-name> <url>
234
+ const args = process.argv.slice(2);
235
+ if (args.length < 1) {
236
+ fatal('Usage: git-remote-overleaf <remote> [<url>]');
237
+ }
238
+ // The URL is usually the second arg; if only one arg, it IS the URL
239
+ const rawUrl = args[1] || args[0];
240
+ const { projectId, baseUrl } = parseRemoteUrl(rawUrl);
241
+ debug(`Project ID: ${projectId}, Base URL: ${baseUrl}`);
242
+ ensureStateDir();
243
+ let state = loadState();
244
+ const rl = createInterface({
245
+ input: process.stdin,
246
+ terminal: false,
247
+ });
248
+ const iterator = rl[Symbol.asyncIterator]();
249
+ for await (const line of rl) {
250
+ const trimmed = line.trim();
251
+ debug(`< ${trimmed}`);
252
+ if (trimmed === '') {
253
+ // Empty line = end of command batch (for list/import/export batches)
254
+ continue;
255
+ }
256
+ if (trimmed === 'capabilities') {
257
+ // Declare what we support.
258
+ ensureStateDir();
259
+ // Create empty marks file if it doesn't exist (fast-export --import-marks
260
+ // fails if file is missing; empty file = nothing previously exported).
261
+ const marks = join(stateDir(), 'marks');
262
+ if (!existsSync(marks)) {
263
+ writeFileSync(marks, '');
264
+ }
265
+ const caps = [
266
+ 'import',
267
+ 'export',
268
+ // Map remote refs/heads/* to a private namespace refs/overleaf/<remote>/*
269
+ // This is critical: git uses the private namespace to track what the remote has.
270
+ // Without a separate namespace, git can't compute the push delta.
271
+ 'refspec refs/heads/*:refs/overleaf/*',
272
+ // import-marks/export-marks = passed to fast-export on push.
273
+ `import-marks ${marks}`,
274
+ `export-marks ${marks}`,
275
+ '', // blank line terminates capabilities
276
+ ].join('\n');
277
+ process.stdout.write(caps + '\n');
278
+ debug(`> capabilities response sent (marks=${marks})`);
279
+ continue;
280
+ }
281
+ if (trimmed === 'list' || trimmed === 'list for-push') {
282
+ // Report what SHA the remote currently has.
283
+ // Read from refs/overleaf/main (our private namespace ref updated by
284
+ // git after import/export via the refspec mapping).
285
+ let remoteSha;
286
+ try {
287
+ const sha = execSync('git rev-parse --verify refs/overleaf/main 2>/dev/null', { encoding: 'utf-8', env: { ...process.env, GIT_DIR: getGitDir() } }).trim();
288
+ if (/^[a-f0-9]{40}$/.test(sha))
289
+ remoteSha = sha;
290
+ }
291
+ catch { /* not yet created */ }
292
+ if (remoteSha) {
293
+ process.stdout.write(`${remoteSha} refs/heads/main\n`);
294
+ }
295
+ else {
296
+ process.stdout.write('? refs/heads/main\n');
297
+ }
298
+ process.stdout.write('@refs/heads/main HEAD\n');
299
+ process.stdout.write('\n'); // blank line terminates
300
+ debug(`> list response sent (sha=${remoteSha || '?'})`);
301
+ continue;
302
+ }
303
+ if (trimmed.startsWith('import ')) {
304
+ // import refs/heads/main
305
+ // May be followed by more "import" lines, terminated by blank line
306
+ const refs = [trimmed.slice(7)];
307
+ // Consume additional import lines until blank
308
+ for await (const nextLine of rl) {
309
+ const next = nextLine.trim();
310
+ if (next === '')
311
+ break;
312
+ if (next.startsWith('import ')) {
313
+ refs.push(next.slice(7));
314
+ }
315
+ }
316
+ debug(`Import requested for: ${refs.join(', ')}`);
317
+ // Authenticate and fetch
318
+ const client = await getClient(baseUrl);
319
+ debug('Generating fast-import stream...');
320
+ const zipBuffer = await client.downloadProject(projectId);
321
+ const AdmZip = (await import('adm-zip')).default;
322
+ const zip = new AdmZip(zipBuffer);
323
+ const entries = zip.getEntries();
324
+ let mark = state.lastMark;
325
+ const newManifest = [];
326
+ const fileMarks = [];
327
+ // Emit feature lines so fast-import writes/reads marks.
328
+ // This enables incremental import and allows fast-export to know
329
+ // which objects were already imported.
330
+ const marks = join(stateDir(), 'marks');
331
+ process.stdout.write(`feature import-marks-if-exists=${marks}\n`);
332
+ process.stdout.write(`feature export-marks=${marks}\n`);
333
+ // feature done tells fast-import to expect "done" as terminator
334
+ process.stdout.write('feature done\n');
335
+ // Write blobs
336
+ for (const entry of entries) {
337
+ if (entry.isDirectory)
338
+ continue;
339
+ const path = entry.entryName;
340
+ newManifest.push(path);
341
+ mark++;
342
+ const data = entry.getData();
343
+ process.stdout.write(`blob\nmark :${mark}\ndata ${data.length}\n`);
344
+ process.stdout.write(data);
345
+ process.stdout.write('\n');
346
+ fileMarks.push({ path, mark });
347
+ }
348
+ // Write commit
349
+ mark++;
350
+ const now = Math.floor(Date.now() / 1000);
351
+ // Write to private namespace per refspec: refs/heads/* → refs/overleaf/*
352
+ process.stdout.write(`commit refs/overleaf/main\n`);
353
+ process.stdout.write(`mark :${mark}\n`);
354
+ process.stdout.write(`committer Overleaf <overleaf@localhost> ${now} +0000\n`);
355
+ const msg = 'Import from Overleaf';
356
+ process.stdout.write(`data ${Buffer.byteLength(msg)}\n`);
357
+ process.stdout.write(`${msg}\n`);
358
+ // Parent: reference previous state if any
359
+ if (state.manifest.length > 0) {
360
+ process.stdout.write(`from refs/overleaf/main^0\n`);
361
+ }
362
+ // Deletions (files removed on Overleaf since last import)
363
+ const removedFiles = state.manifest.filter(f => !newManifest.includes(f));
364
+ for (const f of removedFiles) {
365
+ process.stdout.write(`D ${f}\n`);
366
+ }
367
+ // Modifications (all current files)
368
+ for (const fm of fileMarks) {
369
+ process.stdout.write(`M 100644 :${fm.mark} ${fm.path}\n`);
370
+ }
371
+ process.stdout.write('\n'); // end of commit
372
+ process.stdout.write('done\n');
373
+ // Update state
374
+ state.manifest = newManifest;
375
+ state.lastMark = mark;
376
+ saveState(state);
377
+ debug(`Import complete: ${fileMarks.length} files, ${removedFiles.length} deletions`);
378
+ continue;
379
+ }
380
+ if (trimmed.startsWith('export')) {
381
+ // Push: git sends a fast-export stream on stdin
382
+ debug('Export (push) starting — reading fast-export stream...');
383
+ const client = await getClient(baseUrl);
384
+ const parsed = await parseFastExport(iterator);
385
+ debug(`Parsed export: ${parsed.files.length} modifications, ${parsed.deletes.length} deletions`);
386
+ if (parsed.files.length === 0 && parsed.deletes.length === 0) {
387
+ debug('Nothing to push.');
388
+ // Don't report ok — nothing was actually pushed.
389
+ // This prevents git from advancing the remote tracking ref.
390
+ process.stdout.write('\n');
391
+ }
392
+ else {
393
+ await pushChanges(client, projectId, parsed, state);
394
+ // Report success for each ref that was pushed
395
+ process.stdout.write('ok refs/heads/main\n');
396
+ process.stdout.write('\n');
397
+ // Update state with new manifest
398
+ const currentManifest = new Set(state.manifest);
399
+ for (const del of parsed.deletes) {
400
+ currentManifest.delete(del.path);
401
+ }
402
+ for (const file of parsed.files) {
403
+ currentManifest.add(file.path);
404
+ }
405
+ state.manifest = [...currentManifest];
406
+ saveState(state);
407
+ }
408
+ debug('Export complete.');
409
+ continue;
410
+ }
411
+ if (trimmed.startsWith('option ')) {
412
+ // We don't support any options currently
413
+ process.stdout.write('unsupported\n');
414
+ continue;
415
+ }
416
+ // Unknown command
417
+ debug(`Unknown command: ${trimmed}`);
418
+ fatal(`Unsupported command: ${trimmed}`);
419
+ }
420
+ rl.close();
421
+ }
422
+ // Gracefully handle EPIPE (git closed the pipe before we finished writing)
423
+ process.stdout.on('error', (err) => {
424
+ if (err.code === 'EPIPE')
425
+ process.exit(0);
426
+ throw err;
427
+ });
428
+ main().catch((err) => {
429
+ fatal(err.message || String(err));
430
+ });
431
+ //# sourceMappingURL=remote-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-helper.js","sourceRoot":"","sources":["../src/remote-helper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aloth/olcli",
3
- "version": "0.5.0",
3
+ "version": "0.7.0",
4
4
  "description": "Command-line interface for Overleaf — Sync, manage, and compile LaTeX projects from your terminal",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -14,7 +14,8 @@
14
14
  },
15
15
  "bin": {
16
16
  "olcli": "dist/cli.js",
17
- "olcli-mcp": "dist/mcp.js"
17
+ "olcli-mcp": "dist/mcp.js",
18
+ "git-remote-overleaf": "dist/remote-helper.js"
18
19
  },
19
20
  "scripts": {
20
21
  "build": "tsc",