@jackens/nnn 2026.4.14 → 2026.8.24
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/nnn.d.ts +89 -89
- package/nnn.js +75 -76
- package/package.json +1 -1
- package/readme.md +529 -451
package/nnn.d.ts
CHANGED
|
@@ -49,6 +49,94 @@ export type CRoot = Record<PropertyKey, CNode>;
|
|
|
49
49
|
* are not concatenated with child selectors.
|
|
50
50
|
*/
|
|
51
51
|
export declare const c: (root: CRoot, splitter?: string) => string;
|
|
52
|
+
/**
|
|
53
|
+
* Creates a tag function
|
|
54
|
+
* for escaping interpolated values in template literals.
|
|
55
|
+
*
|
|
56
|
+
* @param escapeFn
|
|
57
|
+
*
|
|
58
|
+
* A function that takes a value
|
|
59
|
+
* and returns its escaped string representation.
|
|
60
|
+
*
|
|
61
|
+
* @returns
|
|
62
|
+
*
|
|
63
|
+
* A tag function that escapes interpolated values
|
|
64
|
+
* using the provided escape map.
|
|
65
|
+
*/
|
|
66
|
+
export declare const createEscape: (escapeFn: (value: any) => string) => (template: TemplateStringsArray, ...values: unknown[]) => string;
|
|
67
|
+
/**
|
|
68
|
+
* Creates a function that
|
|
69
|
+
* returns the appropriate noun form
|
|
70
|
+
* based on a numeric value using `Intl.PluralRules`.
|
|
71
|
+
*
|
|
72
|
+
* Different languages have different plural rules.
|
|
73
|
+
* The `Intl.PluralRules` API provides locale-aware
|
|
74
|
+
* plural category selection.
|
|
75
|
+
* Possible categories are:
|
|
76
|
+
*
|
|
77
|
+
* - `zero`: for zero items
|
|
78
|
+
* (used in some languages like Arabic, Latvian)
|
|
79
|
+
* - `one`: for singular (e.g., 1 item)
|
|
80
|
+
* - `two`: for dual
|
|
81
|
+
* (used in some languages like Arabic, Hebrew)
|
|
82
|
+
* - `few`: for small plurals (e.g., 2-4 in Polish)
|
|
83
|
+
* - `many`: for larger plurals (e.g., 5-21 in Polish)
|
|
84
|
+
* - `other`: fallback category (used by all languages)
|
|
85
|
+
*
|
|
86
|
+
* @param locale
|
|
87
|
+
*
|
|
88
|
+
* A BCP 47 language tag (e.g., `pl`, `en`).
|
|
89
|
+
*
|
|
90
|
+
* @param forms
|
|
91
|
+
*
|
|
92
|
+
* An object mapping plural categories to noun forms.
|
|
93
|
+
* Not all categories need to be provided;
|
|
94
|
+
* if a category is missing,
|
|
95
|
+
* the function falls back to `other`,
|
|
96
|
+
* then to an empty string.
|
|
97
|
+
*
|
|
98
|
+
* @returns
|
|
99
|
+
*
|
|
100
|
+
* A function that takes a numeric value
|
|
101
|
+
* and returns the appropriate noun form.
|
|
102
|
+
*/
|
|
103
|
+
export declare const createPluralRules: (locale: string, forms: Partial<Record<Intl.LDMLPluralRule, string>>) => (value: number) => string;
|
|
104
|
+
/**
|
|
105
|
+
* A helper for building simple tokenizers
|
|
106
|
+
* (see also {@link nanolightTs}).
|
|
107
|
+
*
|
|
108
|
+
* @param decorator
|
|
109
|
+
*
|
|
110
|
+
* A function that wraps each matched chunk.
|
|
111
|
+
* It receives the matched text (`chunk`)
|
|
112
|
+
* and optionally the `metadata`
|
|
113
|
+
* associated with the pattern that produced the match.
|
|
114
|
+
* For unmatched text between patterns,
|
|
115
|
+
* `metadata` is `undefined`.
|
|
116
|
+
*
|
|
117
|
+
* @param specs
|
|
118
|
+
*
|
|
119
|
+
* An array of tuples `[metadata, pattern]` where:
|
|
120
|
+
* - `metadata`: arbitrary data (e.g., a CSS class name)
|
|
121
|
+
* passed to `decorator` when the pattern matches.
|
|
122
|
+
* - `pattern`: a `string` or `RegExp`
|
|
123
|
+
* to match against the input.
|
|
124
|
+
*
|
|
125
|
+
* @returns
|
|
126
|
+
*
|
|
127
|
+
* A tokenizer function that accepts a code string
|
|
128
|
+
* and returns an array of decorated tokens.
|
|
129
|
+
*
|
|
130
|
+
* @remarks
|
|
131
|
+
*
|
|
132
|
+
* 1. Matches starting at an earlier position
|
|
133
|
+
* take precedence.
|
|
134
|
+
* 2. Among matches at the same position,
|
|
135
|
+
* the longer one wins.
|
|
136
|
+
* 3. Among matches of the same position and length,
|
|
137
|
+
* the one defined earlier wins.
|
|
138
|
+
*/
|
|
139
|
+
export declare const createTokenizer: <M, T>(decorator: (chunk: string, metadata?: M) => T, ...specs: [M, string | RegExp][]) => (code: string) => T[];
|
|
52
140
|
/**
|
|
53
141
|
* Parses a CSV string
|
|
54
142
|
* into a two-dimensional array of strings.
|
|
@@ -315,7 +403,7 @@ export declare const jsOnParse: (handlers: Record<PropertyKey, Function>, text:
|
|
|
315
403
|
export declare const monokai: CRoot;
|
|
316
404
|
/**
|
|
317
405
|
* A TypeScript/JavaScript syntax highlighting tokenizer
|
|
318
|
-
* built using {@link
|
|
406
|
+
* built using {@link createTokenizer}.
|
|
319
407
|
*
|
|
320
408
|
* @param code
|
|
321
409
|
*
|
|
@@ -327,94 +415,6 @@ export declare const monokai: CRoot;
|
|
|
327
415
|
* suitable for rendering with {@link h}.
|
|
328
416
|
*/
|
|
329
417
|
export declare const nanolightTs: (code: string) => HArgs1[];
|
|
330
|
-
/**
|
|
331
|
-
* Creates a tag function
|
|
332
|
-
* for escaping interpolated values in template literals.
|
|
333
|
-
*
|
|
334
|
-
* @param escapeFn
|
|
335
|
-
*
|
|
336
|
-
* A function that takes a value
|
|
337
|
-
* and returns its escaped string representation.
|
|
338
|
-
*
|
|
339
|
-
* @returns
|
|
340
|
-
*
|
|
341
|
-
* A tag function that escapes interpolated values
|
|
342
|
-
* using the provided escape map.
|
|
343
|
-
*/
|
|
344
|
-
export declare const newEscape: (escapeFn: (value: any) => string) => (template: TemplateStringsArray, ...values: unknown[]) => string;
|
|
345
|
-
/**
|
|
346
|
-
* Creates a function that
|
|
347
|
-
* returns the appropriate noun form
|
|
348
|
-
* based on a numeric value using `Intl.PluralRules`.
|
|
349
|
-
*
|
|
350
|
-
* Different languages have different plural rules.
|
|
351
|
-
* The `Intl.PluralRules` API provides locale-aware
|
|
352
|
-
* plural category selection.
|
|
353
|
-
* Possible categories are:
|
|
354
|
-
*
|
|
355
|
-
* - `zero`: for zero items
|
|
356
|
-
* (used in some languages like Arabic, Latvian)
|
|
357
|
-
* - `one`: for singular (e.g., 1 item)
|
|
358
|
-
* - `two`: for dual
|
|
359
|
-
* (used in some languages like Arabic, Hebrew)
|
|
360
|
-
* - `few`: for small plurals (e.g., 2-4 in Polish)
|
|
361
|
-
* - `many`: for larger plurals (e.g., 5-21 in Polish)
|
|
362
|
-
* - `other`: fallback category (used by all languages)
|
|
363
|
-
*
|
|
364
|
-
* @param locale
|
|
365
|
-
*
|
|
366
|
-
* A BCP 47 language tag (e.g., `pl`, `en`).
|
|
367
|
-
*
|
|
368
|
-
* @param forms
|
|
369
|
-
*
|
|
370
|
-
* An object mapping plural categories to noun forms.
|
|
371
|
-
* Not all categories need to be provided;
|
|
372
|
-
* if a category is missing,
|
|
373
|
-
* the function falls back to `other`,
|
|
374
|
-
* then to an empty string.
|
|
375
|
-
*
|
|
376
|
-
* @returns
|
|
377
|
-
*
|
|
378
|
-
* A function that takes a numeric value
|
|
379
|
-
* and returns the appropriate noun form.
|
|
380
|
-
*/
|
|
381
|
-
export declare const newNounForm: (locale: string, forms: Partial<Record<Intl.LDMLPluralRule, string>>) => (value: number) => string;
|
|
382
|
-
/**
|
|
383
|
-
* A helper for building simple tokenizers
|
|
384
|
-
* (see also {@link nanolightTs}).
|
|
385
|
-
*
|
|
386
|
-
* @param decorator
|
|
387
|
-
*
|
|
388
|
-
* A function that wraps each matched chunk.
|
|
389
|
-
* It receives the matched text (`chunk`)
|
|
390
|
-
* and optionally the `metadata`
|
|
391
|
-
* associated with the pattern that produced the match.
|
|
392
|
-
* For unmatched text between patterns,
|
|
393
|
-
* `metadata` is `undefined`.
|
|
394
|
-
*
|
|
395
|
-
* @param specs
|
|
396
|
-
*
|
|
397
|
-
* An array of tuples `[metadata, pattern]` where:
|
|
398
|
-
* - `metadata`: arbitrary data (e.g., a CSS class name)
|
|
399
|
-
* passed to `decorator` when the pattern matches.
|
|
400
|
-
* - `pattern`: a `string` or `RegExp`
|
|
401
|
-
* to match against the input.
|
|
402
|
-
*
|
|
403
|
-
* @returns
|
|
404
|
-
*
|
|
405
|
-
* A tokenizer function that accepts a code string
|
|
406
|
-
* and returns an array of decorated tokens.
|
|
407
|
-
*
|
|
408
|
-
* @remarks
|
|
409
|
-
*
|
|
410
|
-
* 1. Matches starting at an earlier position
|
|
411
|
-
* take precedence.
|
|
412
|
-
* 2. Among matches at the same position,
|
|
413
|
-
* the longer one wins.
|
|
414
|
-
* 3. Among matches of the same position and length,
|
|
415
|
-
* the one defined earlier wins.
|
|
416
|
-
*/
|
|
417
|
-
export declare const newTokenizer: <M, T>(decorator: (chunk: string, metadata?: M) => T, ...specs: [M, string | RegExp][]) => (code: string) => T[];
|
|
418
418
|
/**
|
|
419
419
|
* Creates a new object excluding the specified keys
|
|
420
420
|
* from the source object.
|
package/nnn.js
CHANGED
|
@@ -54,6 +54,49 @@ var c = (root, splitter = "$$") => {
|
|
|
54
54
|
}
|
|
55
55
|
return chunks.join("");
|
|
56
56
|
};
|
|
57
|
+
// src/nnn/createEscape.ts
|
|
58
|
+
var createEscape = (escapeFn) => (template, ...values) => String.raw(template, ...values.map(escapeFn));
|
|
59
|
+
// src/nnn/createPluralRules.ts
|
|
60
|
+
var PLURAL_RULES = {};
|
|
61
|
+
var createPluralRules = (locale, forms) => (value) => forms[(PLURAL_RULES[locale] ??= new Intl.PluralRules(locale)).select(value)] ?? forms.other ?? "";
|
|
62
|
+
// src/nnn/createTokenizer.ts
|
|
63
|
+
var createTokenizer = (decorator, ...specs) => (code) => {
|
|
64
|
+
const result = [];
|
|
65
|
+
while (code.length > 0) {
|
|
66
|
+
let bestMetadata;
|
|
67
|
+
let bestIndex = Infinity;
|
|
68
|
+
let bestChunk = "";
|
|
69
|
+
for (const [metadata, pattern] of specs) {
|
|
70
|
+
let index = -1;
|
|
71
|
+
let chunk = "";
|
|
72
|
+
if (isString(pattern) && pattern.length > 0) {
|
|
73
|
+
index = code.indexOf(pattern);
|
|
74
|
+
chunk = code.slice(index, index + pattern.length);
|
|
75
|
+
}
|
|
76
|
+
if (pattern instanceof RegExp) {
|
|
77
|
+
const match = code.match(pattern);
|
|
78
|
+
index = match?.index ?? -1;
|
|
79
|
+
chunk = match?.[0] ?? "";
|
|
80
|
+
}
|
|
81
|
+
if (index >= 0 && chunk.length > 0 && (index < bestIndex || index === bestIndex && chunk.length > bestChunk.length)) {
|
|
82
|
+
bestMetadata = metadata;
|
|
83
|
+
bestIndex = index;
|
|
84
|
+
bestChunk = chunk;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (bestMetadata != null) {
|
|
88
|
+
if (bestIndex > 0) {
|
|
89
|
+
result.push(decorator(code.slice(0, bestIndex)));
|
|
90
|
+
}
|
|
91
|
+
result.push(decorator(bestChunk, bestMetadata));
|
|
92
|
+
code = code.slice(bestIndex + bestChunk.length);
|
|
93
|
+
} else {
|
|
94
|
+
result.push(decorator(code));
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
};
|
|
57
100
|
// src/nnn/csvParse.ts
|
|
58
101
|
var MAIN_PATTERN = /\n|(?<!")("(?:[^"]|"")*")(?!")/g;
|
|
59
102
|
var csvParse = (csv, separator = ",") => {
|
|
@@ -210,13 +253,13 @@ var monokai = {
|
|
|
210
253
|
bg: { color: "var(--bg)" },
|
|
211
254
|
fg: { color: "var(--fg)" },
|
|
212
255
|
comment: { color: "var(--comment)" },
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
256
|
+
identifier_1: { color: "var(--identifier-1)" },
|
|
257
|
+
identifier_2: { color: "var(--identifier-2)" },
|
|
258
|
+
identifier_3: { color: "var(--identifier-3)" },
|
|
259
|
+
identifier_4: { color: "var(--identifier-4)" },
|
|
260
|
+
keyword_1: { color: "var(--keyword-1)" },
|
|
261
|
+
keyword_2: { color: "var(--keyword-2)" },
|
|
262
|
+
keyword_3: { color: "var(--keyword-3)" },
|
|
220
263
|
number: { color: "var(--number)" },
|
|
221
264
|
operator: { color: "var(--operator)" },
|
|
222
265
|
punctuation: { color: "var(--punctuation)" },
|
|
@@ -241,45 +284,6 @@ var monokai = {
|
|
|
241
284
|
}
|
|
242
285
|
}
|
|
243
286
|
};
|
|
244
|
-
// src/nnn/newTokenizer.ts
|
|
245
|
-
var newTokenizer = (decorator, ...specs) => (code) => {
|
|
246
|
-
const result = [];
|
|
247
|
-
while (code.length > 0) {
|
|
248
|
-
let bestMetadata;
|
|
249
|
-
let bestIndex = Infinity;
|
|
250
|
-
let bestChunk = "";
|
|
251
|
-
for (const [metadata, pattern] of specs) {
|
|
252
|
-
let index = -1;
|
|
253
|
-
let chunk = "";
|
|
254
|
-
if (isString(pattern) && pattern.length > 0) {
|
|
255
|
-
index = code.indexOf(pattern);
|
|
256
|
-
chunk = code.slice(index, index + pattern.length);
|
|
257
|
-
}
|
|
258
|
-
if (pattern instanceof RegExp) {
|
|
259
|
-
const match = code.match(pattern);
|
|
260
|
-
index = match?.index ?? -1;
|
|
261
|
-
chunk = match?.[0] ?? "";
|
|
262
|
-
}
|
|
263
|
-
if (index >= 0 && chunk.length > 0 && (index < bestIndex || index === bestIndex && chunk.length > bestChunk.length)) {
|
|
264
|
-
bestMetadata = metadata;
|
|
265
|
-
bestIndex = index;
|
|
266
|
-
bestChunk = chunk;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
if (bestMetadata != null) {
|
|
270
|
-
if (bestIndex > 0) {
|
|
271
|
-
result.push(decorator(code.slice(0, bestIndex)));
|
|
272
|
-
}
|
|
273
|
-
result.push(decorator(bestChunk, bestMetadata));
|
|
274
|
-
code = code.slice(bestIndex + bestChunk.length);
|
|
275
|
-
} else {
|
|
276
|
-
result.push(decorator(code));
|
|
277
|
-
break;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
return result;
|
|
281
|
-
};
|
|
282
|
-
|
|
283
287
|
// src/nnn/nanolightTs.ts
|
|
284
288
|
var COMMENT = "comment";
|
|
285
289
|
var IDENTIFIER_1 = "identifier-1";
|
|
@@ -293,12 +297,7 @@ var NUMBER = "number";
|
|
|
293
297
|
var OPERATOR = "operator";
|
|
294
298
|
var PUNCTUATION = "punctuation";
|
|
295
299
|
var STRING = "string";
|
|
296
|
-
var nanolightTs = /* @__PURE__ */
|
|
297
|
-
// src/nnn/newEscape.ts
|
|
298
|
-
var newEscape = (escapeFn) => (template, ...values) => String.raw(template, ...values.map(escapeFn));
|
|
299
|
-
// src/nnn/newNounForm.ts
|
|
300
|
-
var PLURAL_RULES = {};
|
|
301
|
-
var newNounForm = (locale, forms) => (value) => forms[(PLURAL_RULES[locale] ??= new Intl.PluralRules(locale)).select(value)] ?? forms.other ?? "";
|
|
300
|
+
var nanolightTs = /* @__PURE__ */ createTokenizer((chunk, name) => name != null ? ["span", { class: name }, chunk] : chunk, [COMMENT, /\/\*.*?\*\//s], [COMMENT, /(?<!\\)\/\/.*?(?=\n)/], [STRING, /".*?"/], [STRING, /'.*?'/], [STRING, /`.*?`/s], [STRING, /\/[^\s]*[^\\]\/[dgimsuvy]*/], [NUMBER, /0b[01_]+/], [NUMBER, /0o[01234567_]+/], [NUMBER, /0x[\dabcdef_]+/], [NUMBER, /\d[\d_]*(\.[\d_]+)?(e[+-]?[\d_]+)?/], [OPERATOR, "!"], [OPERATOR, "!="], [OPERATOR, "!=="], [OPERATOR, "%"], [OPERATOR, "%="], [OPERATOR, "&&"], [OPERATOR, "&&="], [OPERATOR, "&"], [OPERATOR, "&="], [OPERATOR, "*"], [OPERATOR, "**"], [OPERATOR, "**="], [OPERATOR, "*="], [OPERATOR, "+"], [OPERATOR, "++"], [OPERATOR, "+="], [OPERATOR, "-"], [OPERATOR, "--"], [OPERATOR, "-="], [OPERATOR, "..."], [OPERATOR, "/"], [OPERATOR, "/="], [OPERATOR, ":"], [OPERATOR, "<"], [OPERATOR, "<<"], [OPERATOR, "<<="], [OPERATOR, "<="], [OPERATOR, "="], [OPERATOR, "=="], [OPERATOR, "==="], [OPERATOR, "=>"], [OPERATOR, ">"], [OPERATOR, ">="], [OPERATOR, ">>"], [OPERATOR, ">>="], [OPERATOR, ">>>"], [OPERATOR, ">>>="], [OPERATOR, "?"], [OPERATOR, "?"], [OPERATOR, "??"], [OPERATOR, "??="], [OPERATOR, "^"], [OPERATOR, "^="], [OPERATOR, "|"], [OPERATOR, "|="], [OPERATOR, "||"], [OPERATOR, "||="], [OPERATOR, "~"], [OPERATOR, "~="], [OPERATOR, /(?<=\s):/], [PUNCTUATION, "("], [PUNCTUATION, ")"], [PUNCTUATION, ","], [PUNCTUATION, "."], [PUNCTUATION, ":"], [PUNCTUATION, ";"], [PUNCTUATION, "?."], [PUNCTUATION, "["], [PUNCTUATION, "]"], [PUNCTUATION, "{"], [PUNCTUATION, "}"], [KEYWORD_1, "as"], [KEYWORD_1, "async"], [KEYWORD_1, "await"], [KEYWORD_1, "break"], [KEYWORD_1, "case"], [KEYWORD_1, "catch"], [KEYWORD_1, "class"], [KEYWORD_1, "const"], [KEYWORD_1, "continue"], [KEYWORD_1, "debugger"], [KEYWORD_1, "default"], [KEYWORD_1, "delete"], [KEYWORD_1, "do"], [KEYWORD_1, "else"], [KEYWORD_1, "export"], [KEYWORD_1, "extends"], [KEYWORD_1, "finally"], [KEYWORD_1, "for"], [KEYWORD_1, "from"], [KEYWORD_1, "function"], [KEYWORD_1, "function*"], [KEYWORD_1, "goto"], [KEYWORD_1, "if"], [KEYWORD_1, "import"], [KEYWORD_1, "in"], [KEYWORD_1, "instanceof"], [KEYWORD_1, "is"], [KEYWORD_1, "keyof"], [KEYWORD_1, "let"], [KEYWORD_1, "new"], [KEYWORD_1, "of"], [KEYWORD_1, "package"], [KEYWORD_1, "return"], [KEYWORD_1, "super"], [KEYWORD_1, "switch"], [KEYWORD_1, "this"], [KEYWORD_1, "throw"], [KEYWORD_1, "try"], [KEYWORD_1, "type"], [KEYWORD_1, "typeof"], [KEYWORD_1, "var"], [KEYWORD_1, "void"], [KEYWORD_1, "while"], [KEYWORD_1, "with"], [KEYWORD_1, "yield"], [KEYWORD_1, "yield*"], [KEYWORD_2, "false"], [KEYWORD_2, "Infinity"], [KEYWORD_2, "NaN"], [KEYWORD_2, "null"], [KEYWORD_2, "true"], [KEYWORD_2, "undefined"], [KEYWORD_3, "any"], [KEYWORD_3, "bigint"], [KEYWORD_3, "boolean"], [KEYWORD_3, "eval"], [KEYWORD_3, "number"], [KEYWORD_3, "string"], [KEYWORD_3, "symbol"], [KEYWORD_3, "unknown"], [IDENTIFIER_1, /[\p{Lu}_$][\p{Lu}\d_$]*/u], [IDENTIFIER_2, /[\p{L}_$][\p{L}\d_$]*(?=[(`])/u], [IDENTIFIER_3, /\p{Lu}[\p{L}\d_$]*/u], [IDENTIFIER_4, /[\p{L}_$][\p{L}\d_$]*/u]);
|
|
302
301
|
// src/nnn/omit.ts
|
|
303
302
|
var omit = (ref, keys) => Object.fromEntries(Object.entries(ref).filter(([key]) => !keys.includes(key)));
|
|
304
303
|
// src/nnn/pick.ts
|
|
@@ -313,8 +312,8 @@ var rwd = (root, selector, cellWidthPx, cellHeightPx, ...specs) => {
|
|
|
313
312
|
main.height = `${cellHeightPx}px`;
|
|
314
313
|
specs.sort(([a], [b]) => a - b);
|
|
315
314
|
for (let [maxWidth, width, height] of specs) {
|
|
316
|
-
const
|
|
317
|
-
const node = maxWidth === 1 ? main : (root[
|
|
315
|
+
const atRule = `@media(min-width:${cellWidthPx * maxWidth}px)`;
|
|
316
|
+
const node = maxWidth === 1 ? main : (root[atRule] ??= {})[selector] ??= {};
|
|
318
317
|
width ??= 1;
|
|
319
318
|
height ??= 1;
|
|
320
319
|
let gcd = 100 * width;
|
|
@@ -357,27 +356,27 @@ var _vivify = (parent, parentKey) => new Proxy(parent, {
|
|
|
357
356
|
});
|
|
358
357
|
var vivify = (ref) => _vivify({ _: ref }, "_");
|
|
359
358
|
export {
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
rwd,
|
|
365
|
-
pick,
|
|
366
|
-
omit,
|
|
367
|
-
newTokenizer,
|
|
368
|
-
newNounForm,
|
|
369
|
-
newEscape,
|
|
370
|
-
nanolightTs,
|
|
371
|
-
monokai,
|
|
372
|
-
jsOnParse,
|
|
373
|
-
isString,
|
|
374
|
-
isRecord,
|
|
375
|
-
isNumber,
|
|
376
|
-
isFiniteNumber,
|
|
377
|
-
isArray,
|
|
378
|
-
hasOwn,
|
|
379
|
-
h,
|
|
380
|
-
fixPlTypography,
|
|
359
|
+
c,
|
|
360
|
+
createEscape,
|
|
361
|
+
createPluralRules as createNounForm,
|
|
362
|
+
createTokenizer,
|
|
381
363
|
csvParse,
|
|
382
|
-
|
|
364
|
+
fixPlTypography,
|
|
365
|
+
h,
|
|
366
|
+
hasOwn,
|
|
367
|
+
isArray,
|
|
368
|
+
isFiniteNumber,
|
|
369
|
+
isNumber,
|
|
370
|
+
isRecord,
|
|
371
|
+
isString,
|
|
372
|
+
jsOnParse,
|
|
373
|
+
monokai,
|
|
374
|
+
nanolightTs,
|
|
375
|
+
omit,
|
|
376
|
+
pick,
|
|
377
|
+
rwd,
|
|
378
|
+
s,
|
|
379
|
+
svgUse,
|
|
380
|
+
uuidV1,
|
|
381
|
+
vivify
|
|
383
382
|
};
|
package/package.json
CHANGED