@plurnk/plurnk-mimetypes-text-common-lisp 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/dist/TextCommonLisp.d.ts +7 -0
- package/dist/TextCommonLisp.d.ts.map +1 -0
- package/dist/TextCommonLisp.js +393 -0
- package/dist/TextCommonLisp.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseHandler } from "@plurnk/plurnk-mimetypes";
|
|
2
|
+
import type { HandlerContent, MimeSymbol } from "@plurnk/plurnk-mimetypes";
|
|
3
|
+
export default class TextCommonLisp extends BaseHandler {
|
|
4
|
+
extractRaw(content: HandlerContent): MimeSymbol[];
|
|
5
|
+
deepJson(content: HandlerContent): unknown;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=TextCommonLisp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextCommonLisp.d.ts","sourceRoot":"","sources":["../src/TextCommonLisp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAc,MAAM,0BAA0B,CAAC;AAevF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IAC1C,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,EAAE;IAejD,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;CAWtD"}
|
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
import { BaseHandler } from "@plurnk/plurnk-mimetypes";
|
|
2
|
+
// text/x-common-lisp handler. Hand-rolled S-expression scanner.
|
|
3
|
+
//
|
|
4
|
+
// The grammars-v4 `lisp` grammar is a McCarthy-1960 toy (can't tokenize
|
|
5
|
+
// `+`, hyphens, or uppercase). We bypass ANTLR entirely and implement a
|
|
6
|
+
// minimal scanner that handles real Common Lisp syntax:
|
|
7
|
+
// - parens, atoms, strings, char literals (#\...)
|
|
8
|
+
// - quote, backquote, comma, comma-at (',`,,@) — opaque
|
|
9
|
+
// - line comments (;) and block comments (#| ... |#)
|
|
10
|
+
// - reader macros (#', #(, #+, #-, etc.) — best-effort handling
|
|
11
|
+
//
|
|
12
|
+
// We don't build a full AST. We walk top-level forms, record their head
|
|
13
|
+
// atom (defun / defmacro / defclass / etc.), and use it to dispatch a
|
|
14
|
+
// symbol emission with the second atom as the declared name.
|
|
15
|
+
export default class TextCommonLisp extends BaseHandler {
|
|
16
|
+
extractRaw(content) {
|
|
17
|
+
if (typeof content !== "string")
|
|
18
|
+
return [];
|
|
19
|
+
try {
|
|
20
|
+
return extractCommonLisp(content);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// Deep-channel (issue #10). For an S-expression language, the natural
|
|
27
|
+
// deep-tree is one node per top-level form carrying its head atom (defun,
|
|
28
|
+
// defmacro, etc.), declared name, and source range. Coarser than a full
|
|
29
|
+
// S-expression AST (Common Lisp's sub-form structure isn't navigable
|
|
30
|
+
// anyway — macros transform it freely) but enough for jsonpath like
|
|
31
|
+
// \$.children[?(@.head=='defun')] to find all function definitions.
|
|
32
|
+
deepJson(content) {
|
|
33
|
+
if (typeof content !== "string")
|
|
34
|
+
return null;
|
|
35
|
+
try {
|
|
36
|
+
const children = extractForms(content);
|
|
37
|
+
return { type: "program", line: 1, endLine: children.length > 0
|
|
38
|
+
? children[children.length - 1].endLine
|
|
39
|
+
: 1, children };
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function extractForms(src) {
|
|
47
|
+
const out = [];
|
|
48
|
+
const scanner = new Scanner(src);
|
|
49
|
+
while (!scanner.eof()) {
|
|
50
|
+
const form = scanner.readTopLevelForm();
|
|
51
|
+
if (!form)
|
|
52
|
+
break;
|
|
53
|
+
if (form.head) {
|
|
54
|
+
const node = {
|
|
55
|
+
type: form.head,
|
|
56
|
+
line: form.line,
|
|
57
|
+
endLine: form.endLine,
|
|
58
|
+
};
|
|
59
|
+
if (form.secondAtom !== null)
|
|
60
|
+
node.name = form.secondAtom;
|
|
61
|
+
if (form.paramAtoms.length > 0)
|
|
62
|
+
node.params = form.paramAtoms;
|
|
63
|
+
out.push(node);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
function extractCommonLisp(src) {
|
|
69
|
+
const symbols = [];
|
|
70
|
+
const scanner = new Scanner(src);
|
|
71
|
+
while (!scanner.eof()) {
|
|
72
|
+
const form = scanner.readTopLevelForm();
|
|
73
|
+
if (!form)
|
|
74
|
+
break;
|
|
75
|
+
if (form.head)
|
|
76
|
+
emit(symbols, form);
|
|
77
|
+
}
|
|
78
|
+
return symbols;
|
|
79
|
+
}
|
|
80
|
+
function emit(out, form) {
|
|
81
|
+
const dispatch = (kind, withParams = false) => {
|
|
82
|
+
if (!form.secondAtom)
|
|
83
|
+
return;
|
|
84
|
+
const sym = {
|
|
85
|
+
name: form.secondAtom,
|
|
86
|
+
kind,
|
|
87
|
+
line: form.line,
|
|
88
|
+
endLine: form.endLine,
|
|
89
|
+
};
|
|
90
|
+
if (withParams)
|
|
91
|
+
sym.params = form.paramAtoms;
|
|
92
|
+
out.push(sym);
|
|
93
|
+
};
|
|
94
|
+
switch (form.head.toLowerCase()) {
|
|
95
|
+
case "defun":
|
|
96
|
+
case "defmacro":
|
|
97
|
+
dispatch("function", true);
|
|
98
|
+
return;
|
|
99
|
+
case "defgeneric":
|
|
100
|
+
dispatch("function", true);
|
|
101
|
+
return;
|
|
102
|
+
case "defmethod":
|
|
103
|
+
dispatch("method", true);
|
|
104
|
+
return;
|
|
105
|
+
case "defparameter":
|
|
106
|
+
case "defvar":
|
|
107
|
+
dispatch("variable");
|
|
108
|
+
return;
|
|
109
|
+
case "defconstant":
|
|
110
|
+
dispatch("constant");
|
|
111
|
+
return;
|
|
112
|
+
case "defclass":
|
|
113
|
+
case "defstruct":
|
|
114
|
+
dispatch("class");
|
|
115
|
+
return;
|
|
116
|
+
case "deftype":
|
|
117
|
+
dispatch("type");
|
|
118
|
+
return;
|
|
119
|
+
case "defpackage":
|
|
120
|
+
dispatch("module");
|
|
121
|
+
return;
|
|
122
|
+
default:
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// Scanner — minimal S-expression reader. Tracks position + line numbers.
|
|
127
|
+
// We don't care about expression VALUES — we care about the SHAPE: where
|
|
128
|
+
// each top-level form starts/ends and what its first two atoms are.
|
|
129
|
+
class Scanner {
|
|
130
|
+
#src;
|
|
131
|
+
#i = 0;
|
|
132
|
+
#line = 1;
|
|
133
|
+
constructor(src) {
|
|
134
|
+
this.#src = src;
|
|
135
|
+
}
|
|
136
|
+
eof() {
|
|
137
|
+
this.skipWhitespaceAndComments();
|
|
138
|
+
return this.#i >= this.#src.length;
|
|
139
|
+
}
|
|
140
|
+
readTopLevelForm() {
|
|
141
|
+
this.skipWhitespaceAndComments();
|
|
142
|
+
if (this.#i >= this.#src.length)
|
|
143
|
+
return null;
|
|
144
|
+
const startLine = this.#line;
|
|
145
|
+
// Top-level reader macros like #+feature (form ...) — we treat them
|
|
146
|
+
// as the form's prefix: skip the #+/-feature directive, then read.
|
|
147
|
+
this.skipReaderMacroPrefix();
|
|
148
|
+
const ch = this.#src[this.#i];
|
|
149
|
+
if (ch !== "(") {
|
|
150
|
+
// A bare atom at top level (unusual). Skip it.
|
|
151
|
+
this.skipAtom();
|
|
152
|
+
return { head: "", secondAtom: null, line: startLine, endLine: this.#line, paramAtoms: [] };
|
|
153
|
+
}
|
|
154
|
+
// Open paren: read the head atom (or skip if a nested list comes
|
|
155
|
+
// first), then collect the second atom and a parameter vector if
|
|
156
|
+
// the third form is a list.
|
|
157
|
+
this.#i += 1; // consume (
|
|
158
|
+
const head = this.readNextAtomInList();
|
|
159
|
+
const secondAtom = head !== "" ? this.readNextAtomInList() : null;
|
|
160
|
+
const paramAtoms = this.tryReadParamList();
|
|
161
|
+
this.skipToMatchingClose();
|
|
162
|
+
const endLine = this.#line;
|
|
163
|
+
return { head, secondAtom, line: startLine, endLine, paramAtoms };
|
|
164
|
+
}
|
|
165
|
+
// Read the next atom in the current list context. Stops at ')' or
|
|
166
|
+
// before a nested '(' (returning ""). Consumes the atom on success.
|
|
167
|
+
readNextAtomInList() {
|
|
168
|
+
this.skipWhitespaceAndCommentsAndReaderMacros();
|
|
169
|
+
if (this.#i >= this.#src.length)
|
|
170
|
+
return "";
|
|
171
|
+
const ch = this.#src[this.#i];
|
|
172
|
+
if (ch === ")" || ch === "(" || ch === undefined)
|
|
173
|
+
return "";
|
|
174
|
+
return this.readAtom();
|
|
175
|
+
}
|
|
176
|
+
// After the head + name, the next form is often a parameter list:
|
|
177
|
+
// (defun foo (a b c) body) — list of param atoms.
|
|
178
|
+
// For defmethod: (defmethod foo ((x type) y) body) — params are mixed
|
|
179
|
+
// typed/untyped specifiers; we emit each first element.
|
|
180
|
+
// Returns [] if the next form isn't a list.
|
|
181
|
+
tryReadParamList() {
|
|
182
|
+
this.skipWhitespaceAndCommentsAndReaderMacros();
|
|
183
|
+
if (this.#src[this.#i] !== "(")
|
|
184
|
+
return [];
|
|
185
|
+
this.#i += 1; // consume (
|
|
186
|
+
const params = [];
|
|
187
|
+
// Common Lisp lambda-list keywords mark the boundary between
|
|
188
|
+
// "real" required params and special collectors. We stop adding
|
|
189
|
+
// params at the first `&` keyword so the outline shows only the
|
|
190
|
+
// canonical positional names.
|
|
191
|
+
let stopped = false;
|
|
192
|
+
while (this.#i < this.#src.length) {
|
|
193
|
+
this.skipWhitespaceAndCommentsAndReaderMacros();
|
|
194
|
+
const ch = this.#src[this.#i];
|
|
195
|
+
if (ch === ")" || ch === undefined) {
|
|
196
|
+
if (ch === ")")
|
|
197
|
+
this.#i += 1;
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
if (ch === "(") {
|
|
201
|
+
this.#i += 1;
|
|
202
|
+
const inner = this.readNextAtomInList();
|
|
203
|
+
this.skipToMatchingClose();
|
|
204
|
+
if (!stopped && inner && !inner.startsWith("&"))
|
|
205
|
+
params.push(inner);
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
const atom = this.readAtom();
|
|
209
|
+
if (atom.startsWith("&")) {
|
|
210
|
+
stopped = true;
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
if (!stopped && atom)
|
|
214
|
+
params.push(atom);
|
|
215
|
+
}
|
|
216
|
+
return params;
|
|
217
|
+
}
|
|
218
|
+
// Skip from current position to the matching close paren, tracking
|
|
219
|
+
// nesting and string/comment context. Used after we've extracted what
|
|
220
|
+
// we need from the head of a form.
|
|
221
|
+
skipToMatchingClose() {
|
|
222
|
+
let depth = 1; // we're inside one open paren
|
|
223
|
+
while (this.#i < this.#src.length && depth > 0) {
|
|
224
|
+
this.skipWhitespaceAndCommentsAndReaderMacros();
|
|
225
|
+
const ch = this.#src[this.#i];
|
|
226
|
+
if (ch === undefined)
|
|
227
|
+
break;
|
|
228
|
+
if (ch === "(") {
|
|
229
|
+
depth += 1;
|
|
230
|
+
this.#i += 1;
|
|
231
|
+
}
|
|
232
|
+
else if (ch === ")") {
|
|
233
|
+
depth -= 1;
|
|
234
|
+
this.#i += 1;
|
|
235
|
+
}
|
|
236
|
+
else if (ch === '"') {
|
|
237
|
+
this.skipString();
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
this.skipAtom();
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
readAtom() {
|
|
245
|
+
const start = this.#i;
|
|
246
|
+
while (this.#i < this.#src.length) {
|
|
247
|
+
const c = this.#src[this.#i];
|
|
248
|
+
if (this.isAtomTerminator(c))
|
|
249
|
+
break;
|
|
250
|
+
// Char literal #\x — consume the char and stop.
|
|
251
|
+
if (c === "#" && this.#src[this.#i + 1] === "\\") {
|
|
252
|
+
this.#i += 2;
|
|
253
|
+
if (this.#i < this.#src.length) {
|
|
254
|
+
// Read named char (Space, Newline, etc.) — a span of letters.
|
|
255
|
+
while (this.#i < this.#src.length && /[A-Za-z0-9_-]/.test(this.#src[this.#i])) {
|
|
256
|
+
this.#i += 1;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
// String mid-atom: shouldn't happen in well-formed code; bail.
|
|
262
|
+
if (c === '"')
|
|
263
|
+
break;
|
|
264
|
+
this.#i += 1;
|
|
265
|
+
}
|
|
266
|
+
return this.#src.slice(start, this.#i);
|
|
267
|
+
}
|
|
268
|
+
skipAtom() {
|
|
269
|
+
this.readAtom();
|
|
270
|
+
}
|
|
271
|
+
skipString() {
|
|
272
|
+
if (this.#src[this.#i] !== '"')
|
|
273
|
+
return;
|
|
274
|
+
this.#i += 1; // consume opening
|
|
275
|
+
while (this.#i < this.#src.length) {
|
|
276
|
+
const c = this.#src[this.#i];
|
|
277
|
+
if (c === "\\" && this.#i + 1 < this.#src.length) {
|
|
278
|
+
if (this.#src[this.#i + 1] === "\n")
|
|
279
|
+
this.#line += 1;
|
|
280
|
+
this.#i += 2;
|
|
281
|
+
continue;
|
|
282
|
+
}
|
|
283
|
+
if (c === '"') {
|
|
284
|
+
this.#i += 1;
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
if (c === "\n")
|
|
288
|
+
this.#line += 1;
|
|
289
|
+
this.#i += 1;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
skipWhitespaceAndComments() {
|
|
293
|
+
while (this.#i < this.#src.length) {
|
|
294
|
+
const c = this.#src[this.#i];
|
|
295
|
+
if (c === " " || c === "\t" || c === "\r") {
|
|
296
|
+
this.#i += 1;
|
|
297
|
+
}
|
|
298
|
+
else if (c === "\n") {
|
|
299
|
+
this.#line += 1;
|
|
300
|
+
this.#i += 1;
|
|
301
|
+
}
|
|
302
|
+
else if (c === ";") {
|
|
303
|
+
while (this.#i < this.#src.length && this.#src[this.#i] !== "\n")
|
|
304
|
+
this.#i += 1;
|
|
305
|
+
}
|
|
306
|
+
else if (c === "#" && this.#src[this.#i + 1] === "|") {
|
|
307
|
+
this.skipBlockComment();
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
skipWhitespaceAndCommentsAndReaderMacros() {
|
|
315
|
+
for (;;) {
|
|
316
|
+
const before = this.#i;
|
|
317
|
+
this.skipWhitespaceAndComments();
|
|
318
|
+
this.skipReaderMacroPrefix();
|
|
319
|
+
if (this.#i === before)
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
// Skip reader macros that PREFIX a form, not consume the form itself:
|
|
324
|
+
// ' ` , ,@ #' #+feat #-feat #. #s(...)
|
|
325
|
+
// For #+/-feature we consume the feature expression (an atom or a
|
|
326
|
+
// parenthesized expression).
|
|
327
|
+
skipReaderMacroPrefix() {
|
|
328
|
+
const c = this.#src[this.#i];
|
|
329
|
+
if (c === "'" || c === "`") {
|
|
330
|
+
this.#i += 1;
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
if (c === ",") {
|
|
334
|
+
this.#i += 1;
|
|
335
|
+
if (this.#src[this.#i] === "@")
|
|
336
|
+
this.#i += 1;
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
if (c === "#") {
|
|
340
|
+
const n = this.#src[this.#i + 1];
|
|
341
|
+
if (n === "'" || n === "." || n === ":") {
|
|
342
|
+
this.#i += 2;
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
if (n === "+" || n === "-") {
|
|
346
|
+
this.#i += 2;
|
|
347
|
+
this.skipWhitespaceAndComments();
|
|
348
|
+
// Skip the feature expression (atom or parenthesized).
|
|
349
|
+
if (this.#src[this.#i] === "(") {
|
|
350
|
+
this.#i += 1;
|
|
351
|
+
this.skipToMatchingClose();
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
this.skipAtom();
|
|
355
|
+
}
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
if (n === "(") {
|
|
359
|
+
// #( vector literal — leave the '(' for the caller.
|
|
360
|
+
this.#i += 1;
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
// Other dispatch: best-effort consume the # and let caller
|
|
364
|
+
// handle the rest.
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
skipBlockComment() {
|
|
368
|
+
// Already at #|. Consume and find matching |# (nested-aware).
|
|
369
|
+
this.#i += 2;
|
|
370
|
+
let depth = 1;
|
|
371
|
+
while (this.#i < this.#src.length && depth > 0) {
|
|
372
|
+
const c = this.#src[this.#i];
|
|
373
|
+
if (c === "#" && this.#src[this.#i + 1] === "|") {
|
|
374
|
+
depth += 1;
|
|
375
|
+
this.#i += 2;
|
|
376
|
+
}
|
|
377
|
+
else if (c === "|" && this.#src[this.#i + 1] === "#") {
|
|
378
|
+
depth -= 1;
|
|
379
|
+
this.#i += 2;
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
if (c === "\n")
|
|
383
|
+
this.#line += 1;
|
|
384
|
+
this.#i += 1;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
isAtomTerminator(c) {
|
|
389
|
+
return c === " " || c === "\t" || c === "\r" || c === "\n"
|
|
390
|
+
|| c === "(" || c === ")" || c === ";";
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
//# sourceMappingURL=TextCommonLisp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextCommonLisp.js","sourceRoot":"","sources":["../src/TextCommonLisp.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@plurnk/plurnk-mimetypes-text-common-lisp",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "text/x-common-lisp mimetype handler for plurnk-service. Hand-rolled S-expression scanner (no ANTLR).",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"engines": {
|
|
11
|
+
"node": ">=25"
|
|
12
|
+
},
|
|
13
|
+
"plurnk": {
|
|
14
|
+
"kind": "mimetype",
|
|
15
|
+
"handlers": [
|
|
16
|
+
{
|
|
17
|
+
"name": "text/x-common-lisp",
|
|
18
|
+
"glyph": "λ",
|
|
19
|
+
"extensions": [
|
|
20
|
+
".lisp",
|
|
21
|
+
".lsp",
|
|
22
|
+
".cl",
|
|
23
|
+
".asd"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"default": "./dist/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./package.json": "./package.json"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"dist/**/*",
|
|
37
|
+
"README.md"
|
|
38
|
+
],
|
|
39
|
+
"scripts": {
|
|
40
|
+
"test:lint": "tsc --noEmit",
|
|
41
|
+
"test:unit": "node --test src/**/*.test.ts",
|
|
42
|
+
"test": "npm run test:lint && npm run test:unit",
|
|
43
|
+
"build:dist": "tsc -p tsconfig.build.json",
|
|
44
|
+
"build": "npm run build:dist",
|
|
45
|
+
"prepare": "npm run build"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@plurnk/plurnk-mimetypes": "0.10.0"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@types/node": "^25.8.0",
|
|
52
|
+
"typescript": "^6.0.3"
|
|
53
|
+
}
|
|
54
|
+
}
|