@20syldev/api 5.6.0 → 5.8.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/.prettierignore +5 -0
- package/README.md +204 -80
- package/dist/app.d.ts +2 -0
- package/dist/config/env.d.ts +21 -0
- package/dist/config/env.js +10 -2
- package/dist/config/env.js.map +1 -1
- package/dist/config/plans.d.ts +26 -0
- package/dist/config/versions.d.ts +18 -0
- package/dist/config/versions.js +5 -0
- package/dist/config/versions.js.map +1 -1
- package/dist/constants.d.ts +45 -0
- package/dist/constants.js +6 -1
- package/dist/constants.js.map +1 -1
- package/dist/middleware/cors.d.ts +2 -0
- package/dist/middleware/cors.js +2 -1
- package/dist/middleware/cors.js.map +1 -1
- package/dist/middleware/error.d.ts +4 -0
- package/dist/middleware/json.d.ts +2 -0
- package/dist/middleware/logger.d.ts +26 -0
- package/dist/middleware/logger.js +34 -1
- package/dist/middleware/logger.js.map +1 -1
- package/dist/middleware/ratelimit.d.ts +2 -0
- package/dist/middleware/version.d.ts +3 -0
- package/dist/middleware/version.js +2 -2
- package/dist/middleware/version.js.map +1 -1
- package/dist/modules/v3/algorithms.d.ts +82 -0
- package/dist/modules/v3/captcha.d.ts +8 -0
- package/dist/modules/v3/chat.d.ts +9 -0
- package/dist/modules/v3/chat.js +3 -3
- package/dist/modules/v3/chat.js.map +1 -1
- package/dist/modules/v3/color.d.ts +6 -0
- package/dist/modules/v3/convert.d.ts +10 -0
- package/dist/modules/v3/domain.d.ts +6 -0
- package/dist/modules/v3/hash.d.ts +8 -0
- package/dist/modules/v3/hyperplanning.d.ts +9 -0
- package/dist/modules/v3/levenshtein.d.ts +9 -0
- package/dist/modules/v3/personal.d.ts +6 -0
- package/dist/modules/v3/qrcode.d.ts +8 -0
- package/dist/modules/v3/tic_tac_toe.d.ts +9 -0
- package/dist/modules/v3/tic_tac_toe.js +3 -3
- package/dist/modules/v3/tic_tac_toe.js.map +1 -1
- package/dist/modules/v3/time.d.ts +12 -0
- package/dist/modules/v3/token.d.ts +9 -0
- package/dist/modules/v3/username.d.ts +6 -0
- package/dist/modules/v3/utils.d.ts +50 -0
- package/dist/modules/v3.d.ts +15 -0
- package/dist/modules/v4/address.d.ts +20 -0
- package/dist/modules/v4/agent.d.ts +30 -0
- package/dist/modules/v4/algorithms.d.ts +90 -0
- package/dist/modules/v4/avatar.d.ts +23 -0
- package/dist/modules/v4/barcode.d.ts +27 -0
- package/dist/modules/v4/captcha.d.ts +22 -0
- package/dist/modules/v4/chat.d.ts +21 -0
- package/dist/modules/v4/chat.js +3 -3
- package/dist/modules/v4/chat.js.map +1 -1
- package/dist/modules/v4/color.d.ts +16 -0
- package/dist/modules/v4/convert.d.ts +15 -0
- package/dist/modules/v4/credit.d.ts +22 -0
- package/dist/modules/v4/cron.d.ts +17 -0
- package/dist/modules/v4/dice.d.ts +16 -0
- package/dist/modules/v4/domain.d.ts +6 -0
- package/dist/modules/v4/encode.d.ts +81 -0
- package/dist/modules/v4/geo.d.ts +30 -0
- package/dist/modules/v4/hash.d.ts +15 -0
- package/dist/modules/v4/hyperplanning.d.ts +19 -0
- package/dist/modules/v4/ip.d.ts +19 -0
- package/dist/modules/v4/levenshtein.d.ts +13 -0
- package/dist/modules/v4/palette.d.ts +19 -0
- package/dist/modules/v4/password.d.ts +25 -0
- package/dist/modules/v4/personal.d.ts +6 -0
- package/dist/modules/v4/placeholder.d.ts +30 -0
- package/dist/modules/v4/qrcode.d.ts +25 -0
- package/dist/modules/v4/regex.d.ts +23 -0
- package/dist/modules/v4/statistics.d.ts +20 -0
- package/dist/modules/v4/text.d.ts +43 -0
- package/dist/modules/v4/tic_tac_toe.d.ts +19 -0
- package/dist/modules/v4/tic_tac_toe.js +3 -3
- package/dist/modules/v4/tic_tac_toe.js.map +1 -1
- package/dist/modules/v4/time.d.ts +15 -0
- package/dist/modules/v4/token.d.ts +9 -0
- package/dist/modules/v4/username.d.ts +6 -0
- package/dist/modules/v4/validate.d.ts +34 -0
- package/dist/modules/v4.d.ts +32 -0
- package/dist/modules/v5/address.d.ts +5 -0
- package/dist/modules/v5/algorithms.d.ts +9 -0
- package/dist/modules/v5/asymmetric.d.ts +26 -0
- package/dist/modules/v5/barcode.d.ts +27 -0
- package/dist/modules/v5/base.d.ts +16 -0
- package/dist/modules/v5/base.js +41 -0
- package/dist/modules/v5/base.js.map +1 -0
- package/dist/modules/v5/case.d.ts +10 -0
- package/dist/modules/v5/chart.d.ts +53 -0
- package/dist/modules/v5/chat.d.ts +21 -0
- package/dist/modules/v5/chat.js +3 -3
- package/dist/modules/v5/chat.js.map +1 -1
- package/dist/modules/v5/csv.d.ts +29 -0
- package/dist/modules/v5/diff.d.ts +20 -0
- package/dist/modules/v5/diff.js +81 -0
- package/dist/modules/v5/diff.js.map +1 -0
- package/dist/modules/v5/evaluate.d.ts +14 -0
- package/dist/modules/v5/jwt.d.ts +11 -0
- package/dist/modules/v5/matrix.d.ts +77 -0
- package/dist/modules/v5/otp.d.ts +30 -0
- package/dist/modules/v5/read.d.ts +20 -0
- package/dist/modules/v5/read.js +59 -0
- package/dist/modules/v5/read.js.map +1 -0
- package/dist/modules/v5/semver.d.ts +33 -0
- package/dist/modules/v5/semver.js +99 -0
- package/dist/modules/v5/semver.js.map +1 -0
- package/dist/modules/v5/symmetric.d.ts +15 -0
- package/dist/modules/v5/text.d.ts +5 -0
- package/dist/modules/v5/tic_tac_toe.d.ts +19 -0
- package/dist/modules/v5/tic_tac_toe.js +3 -3
- package/dist/modules/v5/tic_tac_toe.js.map +1 -1
- package/dist/modules/v5/url.d.ts +18 -0
- package/dist/modules/v5/url.js +12 -3
- package/dist/modules/v5/url.js.map +1 -1
- package/dist/modules/v5/uuid.d.ts +25 -0
- package/dist/modules/v5/uuid.js +40 -0
- package/dist/modules/v5/uuid.js.map +1 -0
- package/dist/modules/v5.d.ts +22 -0
- package/dist/modules/v5.js +5 -0
- package/dist/modules/v5.js.map +1 -1
- package/dist/routes/delete.d.ts +2 -0
- package/dist/routes/delete.js +2 -2
- package/dist/routes/delete.js.map +1 -1
- package/dist/routes/get.d.ts +2 -0
- package/dist/routes/get.js +152 -85
- package/dist/routes/get.js.map +1 -1
- package/dist/routes/index.d.ts +2 -0
- package/dist/routes/index.js +25 -5
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/patch.d.ts +2 -0
- package/dist/routes/patch.js +1 -1
- package/dist/routes/patch.js.map +1 -1
- package/dist/routes/post.d.ts +2 -0
- package/dist/routes/post.js +80 -32
- package/dist/routes/post.js.map +1 -1
- package/dist/storage/index.d.ts +4 -0
- package/dist/types/storage.d.ts +49 -0
- package/dist/utils/colors.d.ts +44 -0
- package/dist/utils/helpers.d.ts +55 -0
- package/dist/utils/response.d.ts +9 -0
- package/dist/utils/response.js +2 -4
- package/dist/utils/response.js.map +1 -1
- package/package.json +17 -16
- package/robots.txt +74 -0
- package/src/favicon.ico +0 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { MAX_DIFF_LENGTH, MAX_DIFF_PARTS } from '../../constants.js';
|
|
2
|
+
const VALID_MODES = ['line', 'word'];
|
|
3
|
+
function split(text, mode) {
|
|
4
|
+
if (mode === 'line')
|
|
5
|
+
return text.split('\n');
|
|
6
|
+
return text.split(/\s+/).filter((w) => w.length > 0);
|
|
7
|
+
}
|
|
8
|
+
function lcs(a, b) {
|
|
9
|
+
const m = a.length;
|
|
10
|
+
const n = b.length;
|
|
11
|
+
const dp = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));
|
|
12
|
+
for (let i = 1; i <= m; i++) {
|
|
13
|
+
for (let j = 1; j <= n; j++) {
|
|
14
|
+
if (a[i - 1] === b[j - 1]) {
|
|
15
|
+
dp[i][j] = dp[i - 1][j - 1] + 1;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return dp;
|
|
23
|
+
}
|
|
24
|
+
function buildChanges(a, b, dp) {
|
|
25
|
+
const changes = [];
|
|
26
|
+
let i = a.length;
|
|
27
|
+
let j = b.length;
|
|
28
|
+
while (i > 0 || j > 0) {
|
|
29
|
+
if (i > 0 && j > 0 && a[i - 1] === b[j - 1]) {
|
|
30
|
+
changes.push({ type: 'equal', value: a[i - 1] });
|
|
31
|
+
i--;
|
|
32
|
+
j--;
|
|
33
|
+
}
|
|
34
|
+
else if (j > 0 && (i === 0 || dp[i][j - 1] >= dp[i - 1][j])) {
|
|
35
|
+
changes.push({ type: 'add', value: b[j - 1] });
|
|
36
|
+
j--;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
changes.push({ type: 'del', value: a[i - 1] });
|
|
40
|
+
i--;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return changes.reverse();
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Compares two texts and returns a structured diff using the LCS algorithm.
|
|
47
|
+
*
|
|
48
|
+
* @param a - Original text
|
|
49
|
+
* @param b - Modified text
|
|
50
|
+
* @param mode - Granularity: line (default) or word
|
|
51
|
+
* @returns Diff result with the change list and added/removed counts
|
|
52
|
+
* @throws Error if a text is missing or too long, or if the mode is invalid
|
|
53
|
+
*/
|
|
54
|
+
export default function diff(a, b, mode = 'line') {
|
|
55
|
+
if (typeof a !== 'string')
|
|
56
|
+
throw new Error('Please provide a first text (a={text})');
|
|
57
|
+
if (typeof b !== 'string')
|
|
58
|
+
throw new Error('Please provide a second text (b={text})');
|
|
59
|
+
if (a.length > MAX_DIFF_LENGTH)
|
|
60
|
+
throw new Error(`Texts must be ${MAX_DIFF_LENGTH} characters or fewer`);
|
|
61
|
+
if (b.length > MAX_DIFF_LENGTH)
|
|
62
|
+
throw new Error(`Texts must be ${MAX_DIFF_LENGTH} characters or fewer`);
|
|
63
|
+
if (!VALID_MODES.includes(mode))
|
|
64
|
+
throw new Error(`Mode must be one of: ${VALID_MODES.join(', ')}`);
|
|
65
|
+
const left = split(a, mode);
|
|
66
|
+
const right = split(b, mode);
|
|
67
|
+
if (left.length > MAX_DIFF_PARTS || right.length > MAX_DIFF_PARTS) {
|
|
68
|
+
throw new Error(`Texts must contain ${MAX_DIFF_PARTS} ${mode}s or fewer`);
|
|
69
|
+
}
|
|
70
|
+
const changes = buildChanges(left, right, lcs(left, right));
|
|
71
|
+
let added = 0;
|
|
72
|
+
let removed = 0;
|
|
73
|
+
for (const change of changes) {
|
|
74
|
+
if (change.type === 'add')
|
|
75
|
+
added++;
|
|
76
|
+
else if (change.type === 'del')
|
|
77
|
+
removed++;
|
|
78
|
+
}
|
|
79
|
+
return { mode, added, removed, changes };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/modules/v5/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface EvaluateResult {
|
|
2
|
+
expression: string;
|
|
3
|
+
result: number;
|
|
4
|
+
precision: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Evaluates a mathematical expression string and returns the result.
|
|
8
|
+
*
|
|
9
|
+
* @param expr - Math expression; supports +, -, *, /, %, ^, unary -, parentheses, constants (pi, e) and functions (sin, cos, tan, sqrt, abs, ceil, floor, round, log, log2, log10, exp, min, max)
|
|
10
|
+
* @param precision - Number of decimal places in the result (0–15, default 10)
|
|
11
|
+
* @returns Object with the original expression, numeric result, and applied precision
|
|
12
|
+
* @throws Error if the expression is empty, exceeds the maximum length, contains unknown identifiers, or produces a non-finite result
|
|
13
|
+
*/
|
|
14
|
+
export default function evaluate(expr: string, precision?: number): EvaluateResult;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface JwtResult {
|
|
2
|
+
header: Record<string, unknown>;
|
|
3
|
+
payload: Record<string, unknown>;
|
|
4
|
+
signature: string;
|
|
5
|
+
expired?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Decodes a JSON Web Token (header + payload) without verifying the signature.
|
|
9
|
+
* WARNING: The signature is NOT verified. Use this for inspection only, not for security decisions.
|
|
10
|
+
*/
|
|
11
|
+
export default function jwt(token: string): JwtResult;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export type Matrix = number[][];
|
|
2
|
+
export interface MatrixResult {
|
|
3
|
+
operation: string;
|
|
4
|
+
result: Matrix | number;
|
|
5
|
+
dimensions: {
|
|
6
|
+
rows: number;
|
|
7
|
+
cols: number;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Adds two matrices element-wise.
|
|
12
|
+
*
|
|
13
|
+
* @param matrix - First matrix (2D array of finite numbers)
|
|
14
|
+
* @param matrix2 - Second matrix (must have the same dimensions as matrix)
|
|
15
|
+
* @returns MatrixResult with the resulting matrix and its dimensions
|
|
16
|
+
* @throws Error if either argument is not a valid matrix or dimensions do not match
|
|
17
|
+
*/
|
|
18
|
+
export declare function add(matrix: unknown, matrix2: unknown): MatrixResult;
|
|
19
|
+
/**
|
|
20
|
+
* Subtracts the second matrix from the first element-wise.
|
|
21
|
+
*
|
|
22
|
+
* @param matrix - Matrix to subtract from (2D array of finite numbers)
|
|
23
|
+
* @param matrix2 - Matrix to subtract (must have the same dimensions as matrix)
|
|
24
|
+
* @returns MatrixResult with the resulting matrix and its dimensions
|
|
25
|
+
* @throws Error if either argument is not a valid matrix or dimensions do not match
|
|
26
|
+
*/
|
|
27
|
+
export declare function subtract(matrix: unknown, matrix2: unknown): MatrixResult;
|
|
28
|
+
/**
|
|
29
|
+
* Multiplies two matrices using standard matrix multiplication.
|
|
30
|
+
*
|
|
31
|
+
* @param matrix - Left-hand matrix (2D array of finite numbers)
|
|
32
|
+
* @param matrix2 - Right-hand matrix; its row count must equal matrix's column count
|
|
33
|
+
* @returns MatrixResult with the resulting matrix and its dimensions
|
|
34
|
+
* @throws Error if either argument is not a valid matrix or inner dimensions are incompatible
|
|
35
|
+
*/
|
|
36
|
+
export declare function multiply(matrix: unknown, matrix2: unknown): MatrixResult;
|
|
37
|
+
/**
|
|
38
|
+
* Multiplies every element of a matrix by a scalar value.
|
|
39
|
+
*
|
|
40
|
+
* @param matrix - Matrix to scale (2D array of finite numbers)
|
|
41
|
+
* @param scalarVal - Finite number to multiply each element by
|
|
42
|
+
* @returns MatrixResult with the scaled matrix and its dimensions
|
|
43
|
+
* @throws Error if matrix is invalid or scalarVal is not a finite number
|
|
44
|
+
*/
|
|
45
|
+
export declare function scalar(matrix: unknown, scalarVal: unknown): MatrixResult;
|
|
46
|
+
/**
|
|
47
|
+
* Transposes a matrix, swapping its rows and columns.
|
|
48
|
+
*
|
|
49
|
+
* @param matrix - Matrix to transpose (2D array of finite numbers)
|
|
50
|
+
* @returns MatrixResult with the transposed matrix and its dimensions
|
|
51
|
+
* @throws Error if matrix is not a valid 2D array of finite numbers
|
|
52
|
+
*/
|
|
53
|
+
export declare function transpose(matrix: unknown): MatrixResult;
|
|
54
|
+
/**
|
|
55
|
+
* Computes the determinant of a square matrix using Gaussian elimination with partial pivoting.
|
|
56
|
+
*
|
|
57
|
+
* @param matrix - Square matrix (2D array of finite numbers)
|
|
58
|
+
* @returns MatrixResult with the determinant as a scalar result and the input dimensions
|
|
59
|
+
* @throws Error if matrix is not a valid square matrix
|
|
60
|
+
*/
|
|
61
|
+
export declare function determinant(matrix: unknown): MatrixResult;
|
|
62
|
+
/**
|
|
63
|
+
* Computes the inverse of a square matrix using Gauss-Jordan elimination.
|
|
64
|
+
*
|
|
65
|
+
* @param matrix - Square matrix (2D array of finite numbers)
|
|
66
|
+
* @returns MatrixResult with the inverted matrix and its dimensions
|
|
67
|
+
* @throws Error if matrix is not a valid square matrix or is singular (determinant is 0)
|
|
68
|
+
*/
|
|
69
|
+
export declare function inverse(matrix: unknown): MatrixResult;
|
|
70
|
+
/**
|
|
71
|
+
* Generates an n×n identity matrix.
|
|
72
|
+
*
|
|
73
|
+
* @param n - Size of the identity matrix (positive integer, max MAX_MATRIX_SIZE)
|
|
74
|
+
* @returns MatrixResult with the identity matrix and its dimensions
|
|
75
|
+
* @throws Error if n is not a positive integer or exceeds the maximum allowed size
|
|
76
|
+
*/
|
|
77
|
+
export declare function identity(n: unknown): MatrixResult;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface OtpSecretResult {
|
|
2
|
+
secret: string;
|
|
3
|
+
uri: string;
|
|
4
|
+
}
|
|
5
|
+
export interface OtpGenerateResult {
|
|
6
|
+
code: string;
|
|
7
|
+
remaining: number;
|
|
8
|
+
period: number;
|
|
9
|
+
}
|
|
10
|
+
export interface OtpVerifyResult {
|
|
11
|
+
valid: boolean;
|
|
12
|
+
drift: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Generates or verifies TOTP/HOTP codes (RFC 4226 / RFC 6238).
|
|
16
|
+
*
|
|
17
|
+
* @param action - "secret", "generate", or "verify"
|
|
18
|
+
* @param options - Configuration options
|
|
19
|
+
* @returns Result depending on action
|
|
20
|
+
*/
|
|
21
|
+
export default function otp(action: string, options?: {
|
|
22
|
+
secret?: string;
|
|
23
|
+
code?: string;
|
|
24
|
+
algorithm?: string;
|
|
25
|
+
digits?: number;
|
|
26
|
+
period?: number;
|
|
27
|
+
counter?: number;
|
|
28
|
+
label?: string;
|
|
29
|
+
issuer?: string;
|
|
30
|
+
}): OtpSecretResult | OtpGenerateResult | OtpVerifyResult;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ReadResult {
|
|
2
|
+
lang: string;
|
|
3
|
+
words: number;
|
|
4
|
+
sentences: number;
|
|
5
|
+
syllables: number;
|
|
6
|
+
fleschReadingEase: number;
|
|
7
|
+
fleschKincaidGrade: number | null;
|
|
8
|
+
readingTime: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Computes Flesch readability scores on a text. English uses the original
|
|
12
|
+
* Flesch coefficients; French uses the Kandel & Moles adaptation, which has no
|
|
13
|
+
* grade-level counterpart, so fleschKincaidGrade is null for French.
|
|
14
|
+
*
|
|
15
|
+
* @param text - The text to analyze
|
|
16
|
+
* @param lang - Language of the text: en (default) or fr
|
|
17
|
+
* @returns Word, sentence and syllable counts, Flesch scores and estimated reading time
|
|
18
|
+
* @throws Error if the text is missing or too long, or if the language is unsupported
|
|
19
|
+
*/
|
|
20
|
+
export default function read(text: string, lang?: string): ReadResult;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { MAX_READ_LENGTH } from '../../constants.js';
|
|
2
|
+
const LANGUAGES = ['en', 'fr'];
|
|
3
|
+
// English heuristic: vowel groups minus silent trailing "e", at least one syllable.
|
|
4
|
+
function countSyllablesEn(word) {
|
|
5
|
+
const groups = word
|
|
6
|
+
.toLowerCase()
|
|
7
|
+
.replace(/[^a-z]/g, '')
|
|
8
|
+
.replace(/e$/, '')
|
|
9
|
+
.match(/[aeiouy]+/g);
|
|
10
|
+
return Math.max(1, groups ? groups.length : 1);
|
|
11
|
+
}
|
|
12
|
+
// French heuristic: accented vowels count as vowels, a trailing "e"/"es" is silent.
|
|
13
|
+
function countSyllablesFr(word) {
|
|
14
|
+
const groups = word
|
|
15
|
+
.toLowerCase()
|
|
16
|
+
.replace(/[^a-zàâäéèêëîïôöùûüÿç]/g, '')
|
|
17
|
+
.replace(/es?$/, '')
|
|
18
|
+
.match(/[aeiouyàâäéèêëîïôöùûüÿ]+/g);
|
|
19
|
+
return Math.max(1, groups ? groups.length : 1);
|
|
20
|
+
}
|
|
21
|
+
const round2 = (n) => Math.round(n * 100) / 100;
|
|
22
|
+
/**
|
|
23
|
+
* Computes Flesch readability scores on a text. English uses the original
|
|
24
|
+
* Flesch coefficients; French uses the Kandel & Moles adaptation, which has no
|
|
25
|
+
* grade-level counterpart, so fleschKincaidGrade is null for French.
|
|
26
|
+
*
|
|
27
|
+
* @param text - The text to analyze
|
|
28
|
+
* @param lang - Language of the text: en (default) or fr
|
|
29
|
+
* @returns Word, sentence and syllable counts, Flesch scores and estimated reading time
|
|
30
|
+
* @throws Error if the text is missing or too long, or if the language is unsupported
|
|
31
|
+
*/
|
|
32
|
+
export default function read(text, lang = 'en') {
|
|
33
|
+
if (!text || !text.trim())
|
|
34
|
+
throw new Error('Please provide a text');
|
|
35
|
+
if (text.length > MAX_READ_LENGTH)
|
|
36
|
+
throw new Error(`Text must be ${MAX_READ_LENGTH} characters or fewer`);
|
|
37
|
+
if (!LANGUAGES.includes(lang))
|
|
38
|
+
throw new Error(`Language must be one of: ${LANGUAGES.join(', ')}`);
|
|
39
|
+
const wordList = text
|
|
40
|
+
.trim()
|
|
41
|
+
.split(/\s+/)
|
|
42
|
+
.filter((w) => /[\p{L}\p{N}]/u.test(w));
|
|
43
|
+
const words = wordList.length;
|
|
44
|
+
if (words === 0)
|
|
45
|
+
throw new Error('Please provide a text');
|
|
46
|
+
const sentences = text.split(/[.!?…]+/).filter((s) => s.trim()).length || 1;
|
|
47
|
+
const countSyllables = lang === 'fr' ? countSyllablesFr : countSyllablesEn;
|
|
48
|
+
const syllables = wordList.reduce((sum, word) => sum + countSyllables(word), 0);
|
|
49
|
+
const wordsPerSentence = words / sentences;
|
|
50
|
+
const syllablesPerWord = syllables / words;
|
|
51
|
+
const fleschReadingEase = lang === 'fr'
|
|
52
|
+
? round2(207 - 1.015 * wordsPerSentence - 73.6 * syllablesPerWord)
|
|
53
|
+
: round2(206.835 - 1.015 * wordsPerSentence - 84.6 * syllablesPerWord);
|
|
54
|
+
const fleschKincaidGrade = lang === 'fr' ? null : round2(0.39 * wordsPerSentence + 11.8 * syllablesPerWord - 15.59);
|
|
55
|
+
const minutes = words / 200;
|
|
56
|
+
const readingTime = minutes < 1 ? `${Math.ceil(minutes * 60)}s` : `${Math.round(minutes)}min`;
|
|
57
|
+
return { lang, words, sentences, syllables, fleschReadingEase, fleschKincaidGrade, readingTime };
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/modules/v5/read.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface SemverParseResult {
|
|
2
|
+
version: string;
|
|
3
|
+
major: number;
|
|
4
|
+
minor: number;
|
|
5
|
+
patch: number;
|
|
6
|
+
prerelease: string | null;
|
|
7
|
+
build: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface SemverBumpResult {
|
|
10
|
+
version: string;
|
|
11
|
+
action: 'bump';
|
|
12
|
+
part: string;
|
|
13
|
+
result: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SemverCompareResult {
|
|
16
|
+
version: string;
|
|
17
|
+
action: 'compare';
|
|
18
|
+
other: string;
|
|
19
|
+
result: -1 | 0 | 1;
|
|
20
|
+
description: string;
|
|
21
|
+
}
|
|
22
|
+
export type SemverResult = SemverParseResult | SemverBumpResult | SemverCompareResult;
|
|
23
|
+
/**
|
|
24
|
+
* Parses, bumps or compares semantic versions (semver.org).
|
|
25
|
+
*
|
|
26
|
+
* @param version - The semver version to work with
|
|
27
|
+
* @param action - Action to perform: parse (default), bump or compare
|
|
28
|
+
* @param part - For bump: part to increment (major, minor or patch), lower parts reset to zero
|
|
29
|
+
* @param other - For compare: second version to compare against
|
|
30
|
+
* @returns Parsed components, the bumped version, or the comparison result (-1, 0 or 1)
|
|
31
|
+
* @throws Error if a version is missing, too long or invalid, or if action/part is unknown
|
|
32
|
+
*/
|
|
33
|
+
export default function semver(version: string, action?: string, part?: string, other?: string): SemverResult;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { MAX_SEMVER_LENGTH } from '../../constants.js';
|
|
2
|
+
const SEMVER_REGEX = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z.-]+))?(?:\+([0-9A-Za-z.-]+))?$/;
|
|
3
|
+
const ACTIONS = ['parse', 'bump', 'compare'];
|
|
4
|
+
const PARTS = ['major', 'minor', 'patch'];
|
|
5
|
+
function parse(version) {
|
|
6
|
+
if (version.length > MAX_SEMVER_LENGTH) {
|
|
7
|
+
throw new Error(`Version must be ${MAX_SEMVER_LENGTH} characters or fewer`);
|
|
8
|
+
}
|
|
9
|
+
const match = SEMVER_REGEX.exec(version);
|
|
10
|
+
if (!match)
|
|
11
|
+
throw new Error('Invalid semver version');
|
|
12
|
+
return {
|
|
13
|
+
major: parseInt(match[1], 10),
|
|
14
|
+
minor: parseInt(match[2], 10),
|
|
15
|
+
patch: parseInt(match[3], 10),
|
|
16
|
+
prerelease: match[4] ?? null,
|
|
17
|
+
build: match[5] ?? null,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function comparePrerelease(a, b) {
|
|
21
|
+
if (a === null && b === null)
|
|
22
|
+
return 0;
|
|
23
|
+
if (a === null)
|
|
24
|
+
return 1;
|
|
25
|
+
if (b === null)
|
|
26
|
+
return -1;
|
|
27
|
+
const left = a.split('.');
|
|
28
|
+
const right = b.split('.');
|
|
29
|
+
for (let i = 0; i < Math.max(left.length, right.length); i++) {
|
|
30
|
+
const x = left[i];
|
|
31
|
+
const y = right[i];
|
|
32
|
+
if (x === undefined)
|
|
33
|
+
return -1;
|
|
34
|
+
if (y === undefined)
|
|
35
|
+
return 1;
|
|
36
|
+
const xNumeric = /^\d+$/.test(x);
|
|
37
|
+
const yNumeric = /^\d+$/.test(y);
|
|
38
|
+
if (xNumeric && yNumeric) {
|
|
39
|
+
if (parseInt(x, 10) !== parseInt(y, 10))
|
|
40
|
+
return parseInt(x, 10) < parseInt(y, 10) ? -1 : 1;
|
|
41
|
+
}
|
|
42
|
+
else if (xNumeric) {
|
|
43
|
+
return -1;
|
|
44
|
+
}
|
|
45
|
+
else if (yNumeric) {
|
|
46
|
+
return 1;
|
|
47
|
+
}
|
|
48
|
+
else if (x !== y) {
|
|
49
|
+
return x < y ? -1 : 1;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
function compare(a, b) {
|
|
55
|
+
if (a.major !== b.major)
|
|
56
|
+
return a.major < b.major ? -1 : 1;
|
|
57
|
+
if (a.minor !== b.minor)
|
|
58
|
+
return a.minor < b.minor ? -1 : 1;
|
|
59
|
+
if (a.patch !== b.patch)
|
|
60
|
+
return a.patch < b.patch ? -1 : 1;
|
|
61
|
+
const prerelease = comparePrerelease(a.prerelease, b.prerelease);
|
|
62
|
+
return prerelease < 0 ? -1 : prerelease > 0 ? 1 : 0;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Parses, bumps or compares semantic versions (semver.org).
|
|
66
|
+
*
|
|
67
|
+
* @param version - The semver version to work with
|
|
68
|
+
* @param action - Action to perform: parse (default), bump or compare
|
|
69
|
+
* @param part - For bump: part to increment (major, minor or patch), lower parts reset to zero
|
|
70
|
+
* @param other - For compare: second version to compare against
|
|
71
|
+
* @returns Parsed components, the bumped version, or the comparison result (-1, 0 or 1)
|
|
72
|
+
* @throws Error if a version is missing, too long or invalid, or if action/part is unknown
|
|
73
|
+
*/
|
|
74
|
+
export default function semver(version, action = 'parse', part = 'patch', other) {
|
|
75
|
+
if (!version)
|
|
76
|
+
throw new Error('Please provide a version (?version={version})');
|
|
77
|
+
if (!ACTIONS.includes(action))
|
|
78
|
+
throw new Error(`Action must be one of: ${ACTIONS.join(', ')}`);
|
|
79
|
+
const parsed = parse(version);
|
|
80
|
+
if (action === 'parse') {
|
|
81
|
+
return { version, ...parsed };
|
|
82
|
+
}
|
|
83
|
+
if (action === 'bump') {
|
|
84
|
+
if (!PARTS.includes(part))
|
|
85
|
+
throw new Error(`Part must be one of: ${PARTS.join(', ')}`);
|
|
86
|
+
const result = part === 'major'
|
|
87
|
+
? `${parsed.major + 1}.0.0`
|
|
88
|
+
: part === 'minor'
|
|
89
|
+
? `${parsed.major}.${parsed.minor + 1}.0`
|
|
90
|
+
: `${parsed.major}.${parsed.minor}.${parsed.patch + 1}`;
|
|
91
|
+
return { version, action: 'bump', part, result };
|
|
92
|
+
}
|
|
93
|
+
if (!other)
|
|
94
|
+
throw new Error('Please provide a second version (&other={version})');
|
|
95
|
+
const result = compare(parsed, parse(other));
|
|
96
|
+
const sign = result === 0 ? '=' : result < 0 ? '<' : '>';
|
|
97
|
+
return { version, action: 'compare', other, result, description: `${version} ${sign} ${other}` };
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=semver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../../src/modules/v5/semver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAoCvD,MAAM,YAAY,GAAG,yFAAyF,CAAC;AAC/G,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7C,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1C,SAAS,KAAK,CAAC,OAAe;IAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,mBAAmB,iBAAiB,sBAAsB,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACtD,OAAO;QACH,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;QAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;QAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;QAC9B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI;QAC5B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI;KAC1B,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAgB,EAAE,CAAgB;IACzD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACvB,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;gBAAE,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,CAAC;QACd,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,CAAS,EAAE,CAAS;IACjC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IACjE,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC1B,OAAe,EACf,SAAiB,OAAO,EACxB,OAAe,OAAO,EACtB,KAAc;IAEd,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC/E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/F,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAE9B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvF,MAAM,MAAM,GACR,IAAI,KAAK,OAAO;YACZ,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM;YAC3B,CAAC,CAAC,IAAI,KAAK,OAAO;gBAChB,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI;gBACzC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAElF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;AACrG,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface EncryptResult {
|
|
2
|
+
action: string;
|
|
3
|
+
algorithm: string;
|
|
4
|
+
result: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Encrypts or decrypts text using AES with key derivation via scrypt.
|
|
8
|
+
*
|
|
9
|
+
* @param action - "encrypt" or "decrypt"
|
|
10
|
+
* @param text - Text to encrypt, or base64 blob to decrypt
|
|
11
|
+
* @param key - User-provided key (min 8 characters)
|
|
12
|
+
* @param algorithm - Cipher algorithm (default: aes-256-gcm)
|
|
13
|
+
* @returns Object containing action, algorithm, and base64 result
|
|
14
|
+
*/
|
|
15
|
+
export default function encrypt(action: string, text: string, key: string, algorithm?: string): EncryptResult;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TicTacToeStorage } from '../../types/storage.js';
|
|
2
|
+
interface TicTacToeParams {
|
|
3
|
+
username?: string;
|
|
4
|
+
move?: string;
|
|
5
|
+
session?: string;
|
|
6
|
+
game?: string;
|
|
7
|
+
private?: boolean;
|
|
8
|
+
storage: TicTacToeStorage;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Handles Tic-Tac-Toe game actions including playing a move, fetching game state, listing games, and forfeiting.
|
|
12
|
+
*
|
|
13
|
+
* @param action - The action to perform: "play", "fetch", "list", or "forfeit"
|
|
14
|
+
* @param params - Game parameters including username, move, session, game ID, and shared storage
|
|
15
|
+
* @returns Game state or action result depending on the action
|
|
16
|
+
* @throws Error if a required parameter is missing, the action is invalid, or a rate limit is exceeded
|
|
17
|
+
*/
|
|
18
|
+
export default function tic_tac_toe(action: string, params: TicTacToeParams): Record<string, unknown>;
|
|
19
|
+
export {};
|
|
@@ -105,7 +105,7 @@ function playMove(params, games, sessions, u, now) {
|
|
|
105
105
|
setTimeout(() => {
|
|
106
106
|
if (games[game] && games[game].creation === creation)
|
|
107
107
|
delete games[game];
|
|
108
|
-
}, GAME_CLEANUP_TTL);
|
|
108
|
+
}, GAME_CLEANUP_TTL).unref();
|
|
109
109
|
return {
|
|
110
110
|
message: `Move sent successfully. ${result.winner ? result.winner + ' wins. ' + result.loser + ' loses.' : "It's a tie."}`,
|
|
111
111
|
...result,
|
|
@@ -116,13 +116,13 @@ function playMove(params, games, sessions, u, now) {
|
|
|
116
116
|
if (cur && cur.creation === creation && Date.now() - (cur.last ?? cur.creation) >= SESSION_TTL) {
|
|
117
117
|
delete games[game];
|
|
118
118
|
}
|
|
119
|
-
}, SESSION_TTL);
|
|
119
|
+
}, SESSION_TTL).unref();
|
|
120
120
|
sessions[u] = sessions[u] ?? { user: session, last: now };
|
|
121
121
|
sessions[u].last = now;
|
|
122
122
|
setTimeout(() => {
|
|
123
123
|
if (sessions[u] && Date.now() - sessions[u].last >= SESSION_TTL)
|
|
124
124
|
delete sessions[u];
|
|
125
|
-
}, SESSION_TTL);
|
|
125
|
+
}, SESSION_TTL).unref();
|
|
126
126
|
return { message: 'Move sent successfully' };
|
|
127
127
|
}
|
|
128
128
|
function fetchGame(params, games, u) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tic_tac_toe.js","sourceRoot":"","sources":["../../../src/modules/v5/tic_tac_toe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkBtG;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAc,EAAE,MAAuB;IACvE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE/B,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC;IACrB,OAAO,CAAC,QAAQ,KAAK,EAAE,CAAC;IACxB,OAAO,CAAC,UAAU,KAAK,EAAE,CAAC;IAE1B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAEhD,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;IAE/C,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAEnE,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,iBAAiB,CAAC,CAAC;IACnF,IAAI,UAAU,CAAC,CAAC,CAAE,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,GAAG,iBAAiB,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,qCAAqC,aAAa,WAAW,CAAC,CAAC;IACnF,CAAC;IACD,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IACjF,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAChB,MAAuB,EACvB,KAAoC,EACpC,QAAwD;IAExD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAEjC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC7D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEpD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAS,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAE,CAAC,OAAO,CAAC;IACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAE/E,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;IACpD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEnB,OAAO;QACH,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,uBAAuB,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;QACpF,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,QAAQ;KACzB,CAAC;AACN,CAAC;AAED,SAAS,QAAQ,CACb,MAAuB,EACvB,KAAoC,EACpC,QAAwD,EACxD,CAAS,EACT,GAAW;IAEX,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACvC,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAEnF,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC1D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACnE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IAEpH,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;QACzB,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;QAChC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;KACvB,CAAC;IACF,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAE,CAAC;IACvB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAEtB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAChF,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,IAAI,GAAkB,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;IAEb,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QAC9B,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,KAAK,CAAC,IAAK,CAAC,IAAI,KAAK,CAAC,IAAK,CAAE,CAAC,QAAQ,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC,IAAK,CAAC,CAAC;QACjF,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACrB,OAAO;YACH,OAAO,EAAE,2BAA2B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE;YAC1H,GAAG,MAAM;SACZ,CAAC;IACN,CAAC;IAED,UAAU,CAAC,GAAG,EAAE;QACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAK,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC;YAC7F,OAAO,KAAK,CAAC,IAAK,CAAC,CAAC;QACxB,CAAC;IACL,CAAC,EAAE,WAAW,CAAC,CAAC;IAEhB,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC1D,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,GAAG,GAAG,CAAC;IACxB,UAAU,CAAC,GAAG,EAAE;QACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,WAAW;YAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC,EAAE,WAAW,CAAC,CAAC;IAEhB,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,MAAuB,EAAE,KAAoC,EAAE,CAAS;IACvF,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,cAAc,EAAE,CAAC;IAC3C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QACb,KAAK,CAAC,EAAE,CAAC,GAAG;YACR,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;YAChC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC;IACN,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,EAAE,CAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAE,CAAC,KAAK,CAAC;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAE,CAAC,OAAO,CAAC;IACnC,MAAM,WAAW,GAAG,KAAK,CAAC,EAAE,CAAE,CAAC,OAAO,CAAC;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpD,OAAO;QACH,EAAE;QACF,KAAK;QACL,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO,EAAE,WAAW;QACpB,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,KAAoC;IACnD,MAAM,WAAW,GAA8B,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC;YAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE9D,WAAW,CAAC,IAAI,CAAC;oBACb,EAAE,EAAE,MAAM;oBACV,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;oBACjC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;oBACxB,IAAI;oBACJ,MAAM;oBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG;iBACjC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,QAAmB,GAAI,CAAC,CAAC,QAAmB,CAAC,CAAC;IAE5E,OAAO;QACH,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,WAAW,CAAC,MAAM;QACzB,KAAK,EAAE,WAAW;KACrB,CAAC;AACN,CAAC;AAED,SAAS,cAAc;IACnB,MAAM,KAAK,GAAG,sCAAsC,CAAC;IACrD,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;SACnC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAAC,KAAsB;IACrC,MAAM,KAAK,GAAwB,KAAK,CAAC,CAAC,CAAC;SACtC,IAAI,CAAC,IAAI,CAAC;SACV,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAsB,CAAC,CAAC;IACzD,MAAM,aAAa,GAA2B,EAAE,CAAC;IACjD,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE;QACjC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,aAAa,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACpE,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAqB,CAAC;QACnE,KAAK,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAAC,MAAc,EAAW,EAAE;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC/F,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;QACnG,CAAC;QACD,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAC/F,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAC/F,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,CAAC,IAAI,IAAI,CAAC;IACxG,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,GACP,MAAM,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5G,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC"}
|
|
1
|
+
{"version":3,"file":"tic_tac_toe.js","sourceRoot":"","sources":["../../../src/modules/v5/tic_tac_toe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface UrlResult {
|
|
2
|
+
url: string;
|
|
3
|
+
scheme: string;
|
|
4
|
+
host: string;
|
|
5
|
+
port: number | null;
|
|
6
|
+
path: string;
|
|
7
|
+
params: Record<string, string | string[]>;
|
|
8
|
+
fragment: string;
|
|
9
|
+
valid: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Parses a URL into its structural components.
|
|
13
|
+
*
|
|
14
|
+
* @param url - Absolute URL to parse, including its scheme (e.g. https://example.com/path?a=1)
|
|
15
|
+
* @returns Object with the original URL, scheme, host, port, path, query parameters, fragment, and validity status
|
|
16
|
+
* @throws Error if the URL is empty, exceeds the maximum length, or cannot be parsed
|
|
17
|
+
*/
|
|
18
|
+
export default function parseUrl(url: string): UrlResult;
|
package/dist/modules/v5/url.js
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { MAX_URL_LENGTH } from '../../constants.js';
|
|
2
|
+
// Default ports for common URL schemes
|
|
3
|
+
const DEFAULT_PORTS = new Map([
|
|
4
|
+
['ftp', 21],
|
|
5
|
+
['http', 80],
|
|
6
|
+
['https', 443],
|
|
7
|
+
['ws', 80],
|
|
8
|
+
['wss', 443],
|
|
9
|
+
]);
|
|
2
10
|
/**
|
|
3
11
|
* Parses a URL into its structural components.
|
|
4
12
|
*
|
|
5
13
|
* @param url - Absolute URL to parse, including its scheme (e.g. https://example.com/path?a=1)
|
|
6
|
-
* @returns Object with the original URL, scheme, host, port, path, query
|
|
14
|
+
* @returns Object with the original URL, scheme, host, port, path, query parameters, fragment, and validity status
|
|
7
15
|
* @throws Error if the URL is empty, exceeds the maximum length, or cannot be parsed
|
|
8
16
|
*/
|
|
9
17
|
export default function parseUrl(url) {
|
|
@@ -28,11 +36,12 @@ export default function parseUrl(url) {
|
|
|
28
36
|
else
|
|
29
37
|
params[key] = [current, value];
|
|
30
38
|
}
|
|
39
|
+
const scheme = parsed.protocol.replace(':', '');
|
|
31
40
|
return {
|
|
32
41
|
url,
|
|
33
|
-
scheme
|
|
42
|
+
scheme,
|
|
34
43
|
host: parsed.hostname,
|
|
35
|
-
port: parsed.port ? parseInt(parsed.port, 10) : null,
|
|
44
|
+
port: parsed.port ? parseInt(parsed.port, 10) : (DEFAULT_PORTS.get(scheme) ?? null),
|
|
36
45
|
path: parsed.pathname,
|
|
37
46
|
params,
|
|
38
47
|
fragment: parsed.hash.replace('#', ''),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/modules/v5/url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/modules/v5/url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,uCAAuC;AACvC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC1B,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,OAAO,EAAE,GAAG,CAAC;IACd,CAAC,IAAI,EAAE,EAAE,CAAC;IACV,CAAC,KAAK,EAAE,GAAG,CAAC;CACf,CAAC,CAAC;AAaH;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAW;IACxC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC/D,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,cAAc,aAAa,CAAC,CAAC;IAEnG,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACD,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GAAsC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAChD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEhD,OAAO;QACH,GAAG;QACH,MAAM;QACN,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;QACnF,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QACtC,KAAK,EAAE,IAAI;KACd,CAAC;AACN,CAAC"}
|