first commit

This commit is contained in:
Stefan Hacker
2026-04-03 09:38:48 +02:00
commit 37ad745546
47450 changed files with 3120798 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
export declare const asString: (str: string) => string;
+28
View File
@@ -0,0 +1,28 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.asString = void 0;
const stringify = JSON.stringify;
const asString = (str) => {
const length = str.length;
if (length > 41)
return stringify(str);
let result = '';
let last = 0;
let found = false;
let point = 255;
for (let i = 0; i < length && point >= 32; i++) {
point = str.charCodeAt(i);
if (point >= 0xd800 && point <= 0xdfff)
return stringify(str);
if (point === 34 || point === 92) {
result += str.slice(last, i) + '\\';
last = i;
found = true;
}
}
if (point < 32)
return stringify(str);
return '"' + (!found ? str : result + str.slice(last)) + '"';
};
exports.asString = asString;
//# sourceMappingURL=asString.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"asString.js","sourceRoot":"","sources":["../../src/strings/asString.ts"],"names":[],"mappings":";;;AAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAG1B,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE;IACtC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,IAAI,MAAM,GAAG,EAAE;QAAE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM;YAAE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YACpC,IAAI,GAAG,CAAC,CAAC;YACT,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;IACH,CAAC;IACD,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/D,CAAC,CAAC;AAlBW,QAAA,QAAQ,YAkBnB"}
+1
View File
@@ -0,0 +1 @@
export declare const escape: (str: string) => string;
+135
View File
@@ -0,0 +1,135 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.escape = void 0;
const strEscapeSequencesRegExp = /[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/;
const strEscapeSequencesReplacer = /[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/g;
const meta = [
'\\u0000',
'\\u0001',
'\\u0002',
'\\u0003',
'\\u0004',
'\\u0005',
'\\u0006',
'\\u0007',
'\\b',
'\\t',
'\\n',
'\\u000b',
'\\f',
'\\r',
'\\u000e',
'\\u000f',
'\\u0010',
'\\u0011',
'\\u0012',
'\\u0013',
'\\u0014',
'\\u0015',
'\\u0016',
'\\u0017',
'\\u0018',
'\\u0019',
'\\u001a',
'\\u001b',
'\\u001c',
'\\u001d',
'\\u001e',
'\\u001f',
'',
'',
'\\"',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'\\\\',
];
const esc_ = (str) => {
if (str.length === 2)
return str[0] + '\\u' + str.charCodeAt(1).toString(16);
const charCode = str.charCodeAt(0);
return meta.length > charCode ? meta[charCode] : '\\u' + charCode.toString(16);
};
const escape = (str) => {
let point, last = 0, result = '';
if (str.length < 5000 && !strEscapeSequencesRegExp.test(str))
return str;
if (str.length > 100)
return str.replace(strEscapeSequencesReplacer, esc_);
for (let i = 0; i < str.length; i++) {
point = str.charCodeAt(i);
if (point === 34 || point === 92 || point < 32) {
result += str.slice(last, i) + meta[point];
last = i + 1;
}
else if (point >= 0xd800 && point <= 0xdfff) {
if (point <= 0xdbff && i + 1 < str.length) {
point = str.charCodeAt(i + 1);
if (point >= 0xdc00 && point <= 0xdfff) {
i++;
continue;
}
}
result += str.slice(last, i) + '\\u' + point.toString(16);
last = i + 1;
}
}
result += str.slice(last);
return result;
};
exports.escape = escape;
//# sourceMappingURL=escape.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/strings/escape.ts"],"names":[],"mappings":"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"}
+1
View File
@@ -0,0 +1 @@
export declare const flatstr: (s: string) => string;
+10
View File
@@ -0,0 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.flatstr = void 0;
const flatstr = (s) => {
s | 0;
Number(s);
return s;
};
exports.flatstr = flatstr;
//# sourceMappingURL=flatstr.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"flatstr.js","sourceRoot":"","sources":["../../src/strings/flatstr.ts"],"names":[],"mappings":";;;AAAO,MAAM,OAAO,GAAG,CAAC,CAAS,EAAU,EAAE;IACrC,CAAE,GAAG,CAAC,CAAC;IACb,MAAM,CAAC,CAAC,CAAC,CAAC;IACV,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAJW,QAAA,OAAO,WAIlB"}
+1
View File
@@ -0,0 +1 @@
export declare function utf8Size(str: string): number;
+28
View File
@@ -0,0 +1,28 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.utf8Size = void 0;
function utf8Size(str) {
const length = str.length;
let size = 0;
let pos = 0;
while (pos < length) {
let value = str.charCodeAt(pos++);
if ((value & 0xffffff80) === 0) {
size++;
continue;
}
else if ((value & 0xfffff800) === 0)
size += 2;
else {
if (value >= 0xd800 && value <= 0xdbff && pos < length) {
const extra = str.charCodeAt(pos);
if ((extra & 0xfc00) === 0xdc00)
value = (pos++, ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);
}
size += 3 + +((value & 0xffff0000) !== 0);
}
}
return size;
}
exports.utf8Size = utf8Size;
//# sourceMappingURL=utf8.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../src/strings/utf8.ts"],"names":[],"mappings":";;;AAOA,SAAgB,QAAQ,CAAC,GAAW;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,GAAG,GAAG,MAAM,EAAE,CAAC;QACpB,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,EAAE,CAAC;YACP,SAAS;QACX,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YAAE,IAAI,IAAI,CAAC,CAAC;aAC5C,CAAC;YACJ,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;gBACvD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,MAAM;oBAAE,KAAK,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC;YACxG,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAnBD,4BAmBC"}
+4
View File
@@ -0,0 +1,4 @@
export type CharPredicate = (char: string) => boolean;
export declare const isLetter: CharPredicate;
export declare const isWhitespace: CharPredicate;
export declare const isPunctuation: CharPredicate;
+12
View File
@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isPunctuation = exports.isWhitespace = exports.isLetter = void 0;
const LETTER_REGEX = /(\p{Letter}|\d)/u;
const WHITESPACE_REGEX = /\s/;
const isLetter = (char) => LETTER_REGEX.test(char[0]);
exports.isLetter = isLetter;
const isWhitespace = (char) => WHITESPACE_REGEX.test(char[0]);
exports.isWhitespace = isWhitespace;
const isPunctuation = (char) => !(0, exports.isLetter)(char) && !(0, exports.isWhitespace)(char);
exports.isPunctuation = isPunctuation;
//# sourceMappingURL=util.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/strings/util.ts"],"names":[],"mappings":";;;AAAA,MAAM,YAAY,GAAG,kBAAkB,CAAC;AACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAIvB,MAAM,QAAQ,GAAkB,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAAvE,QAAA,QAAQ,YAA+D;AAC7E,MAAM,YAAY,GAAkB,CAAC,IAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAA/E,QAAA,YAAY,gBAAmE;AACrF,MAAM,aAAa,GAAkB,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;AAAxF,QAAA,aAAa,iBAA2E"}
+4
View File
@@ -0,0 +1,4 @@
export interface WrapOptions {
width?: number;
}
export declare const wordWrap: (str: string, options?: WrapOptions) => string[];
+19
View File
@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.wordWrap = void 0;
const lineMap = (line) => line.slice(-1) === '\n' ? line.slice(0, line.length - 1).replace(/[ \t]*$/gm, '') : line;
const lineReduce = (acc, line) => {
acc.push(...line.split('\n'));
return acc;
};
const wordWrap = (str, options = {}) => {
if (!str)
return [];
const width = options.width || 50;
const regexString = '.{1,' + width + '}([\\s\u200B]+|$)|[^\\s\u200B]+?([\\s\u200B]+|$)';
const re = new RegExp(regexString, 'g');
const lines = (str.match(re) || []).map(lineMap).reduce(lineReduce, []);
return lines;
};
exports.wordWrap = wordWrap;
//# sourceMappingURL=wordWrap.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"wordWrap.js","sourceRoot":"","sources":["../../src/strings/wordWrap.ts"],"names":[],"mappings":";;;AAIA,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAC/B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3F,MAAM,UAAU,GAAG,CAAC,GAAa,EAAE,IAAY,EAAE,EAAE;IACjD,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEK,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,UAAuB,EAAE,EAAY,EAAE;IAC3E,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,kDAAkD,CAAC;IACxF,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAc,CAAC,CAAC;IAEpF,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AATW,QAAA,QAAQ,YASnB"}