@utilix-tech/sdk 0.51.0 → 0.53.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.
@@ -2886,6 +2886,340 @@ function testGitignorePatterns(gitignoreContent, paths) {
2886
2886
  return { path, ignored, matchedPattern, matchedLine };
2887
2887
  });
2888
2888
  }
2889
+ var EDITORCONFIG_ENUM_PROPERTIES = {
2890
+ indent_style: ["tab", "space"],
2891
+ end_of_line: ["lf", "cr", "crlf"],
2892
+ charset: ["latin1", "utf-8", "utf-8-bom", "utf-16be", "utf-16le"],
2893
+ trim_trailing_whitespace: ["true", "false"],
2894
+ insert_final_newline: ["true", "false"]
2895
+ };
2896
+ var EDITORCONFIG_KNOWN_PROPERTIES = /* @__PURE__ */ new Set([
2897
+ "indent_style",
2898
+ "indent_size",
2899
+ "tab_width",
2900
+ "end_of_line",
2901
+ "charset",
2902
+ "trim_trailing_whitespace",
2903
+ "insert_final_newline",
2904
+ "max_line_length",
2905
+ "root"
2906
+ ]);
2907
+ var POSITIVE_INT_RE = /^[1-9][0-9]*$/;
2908
+ function validateEditorConfig(text) {
2909
+ if (!text || !text.trim()) return { error: "Input is empty" };
2910
+ const lines = text.split("\n");
2911
+ const issues = [];
2912
+ const sections = [];
2913
+ let root = false;
2914
+ let rootSeen = false;
2915
+ let currentSection = null;
2916
+ for (let i = 0; i < lines.length; i++) {
2917
+ const lineNum = i + 1;
2918
+ const trimmed = lines[i].trim();
2919
+ if (!trimmed || trimmed.startsWith("#") || trimmed.startsWith(";")) continue;
2920
+ const sectionMatch = trimmed.match(/^\[(.*)\]$/);
2921
+ if (sectionMatch) {
2922
+ const glob = sectionMatch[1];
2923
+ if (!glob) {
2924
+ issues.push({ severity: "warning", line: lineNum, message: 'Section header is empty ("[]" matches no files)' });
2925
+ }
2926
+ if (sections.some((s) => s.glob === glob)) {
2927
+ issues.push({ severity: "warning", line: lineNum, message: `Duplicate section "[${glob}]" (an earlier section already uses this exact glob)` });
2928
+ }
2929
+ currentSection = { glob, line: lineNum, properties: [] };
2930
+ sections.push(currentSection);
2931
+ continue;
2932
+ }
2933
+ const eqIdx = trimmed.indexOf("=");
2934
+ if (eqIdx === -1) {
2935
+ issues.push({ severity: "error", line: lineNum, message: `Malformed line (missing '='): "${trimmed}"` });
2936
+ continue;
2937
+ }
2938
+ const rawKey = trimmed.slice(0, eqIdx).trim();
2939
+ const key = rawKey.toLowerCase();
2940
+ const rawValue = trimmed.slice(eqIdx + 1).trim();
2941
+ const normalizedValue = rawValue.toLowerCase();
2942
+ if (!rawKey) {
2943
+ issues.push({ severity: "error", line: lineNum, message: "Property is missing a name" });
2944
+ continue;
2945
+ }
2946
+ if (key === "root") {
2947
+ if (sections.length > 0) {
2948
+ issues.push({ severity: "error", line: lineNum, message: `"root" must appear before any section, in the file's preamble` });
2949
+ } else if (rootSeen) {
2950
+ issues.push({ severity: "warning", line: lineNum, message: 'Duplicate "root" declaration' });
2951
+ } else if (normalizedValue !== "true" && normalizedValue !== "false") {
2952
+ issues.push({ severity: "error", line: lineNum, message: `"root" must be "true" or "false", got "${rawValue}"` });
2953
+ } else {
2954
+ root = normalizedValue === "true";
2955
+ }
2956
+ rootSeen = true;
2957
+ continue;
2958
+ }
2959
+ if (!currentSection) {
2960
+ issues.push({ severity: "error", line: lineNum, message: `Property "${rawKey}" found before any section header` });
2961
+ continue;
2962
+ }
2963
+ if (currentSection.properties.some((p) => p.key === key)) {
2964
+ issues.push({ severity: "warning", line: lineNum, message: `Duplicate property "${key}" in section "[${currentSection.glob}]"` });
2965
+ }
2966
+ currentSection.properties.push({ key, value: rawValue, line: lineNum });
2967
+ if (!EDITORCONFIG_KNOWN_PROPERTIES.has(key)) {
2968
+ issues.push({ severity: "warning", line: lineNum, message: `Unknown property "${key}"` });
2969
+ continue;
2970
+ }
2971
+ if (key in EDITORCONFIG_ENUM_PROPERTIES) {
2972
+ if (!EDITORCONFIG_ENUM_PROPERTIES[key].includes(normalizedValue)) {
2973
+ issues.push({ severity: "error", line: lineNum, message: `"${key}" must be one of ${EDITORCONFIG_ENUM_PROPERTIES[key].join(", ")}, got "${rawValue}"` });
2974
+ }
2975
+ } else if (key === "indent_size") {
2976
+ if (normalizedValue !== "tab" && !POSITIVE_INT_RE.test(rawValue)) {
2977
+ issues.push({ severity: "error", line: lineNum, message: `"indent_size" must be a positive integer or "tab", got "${rawValue}"` });
2978
+ }
2979
+ } else if (key === "tab_width") {
2980
+ if (!POSITIVE_INT_RE.test(rawValue)) {
2981
+ issues.push({ severity: "error", line: lineNum, message: `"tab_width" must be a positive integer, got "${rawValue}"` });
2982
+ }
2983
+ } else if (key === "max_line_length") {
2984
+ if (normalizedValue !== "off" && !POSITIVE_INT_RE.test(rawValue)) {
2985
+ issues.push({ severity: "error", line: lineNum, message: `"max_line_length" must be a positive integer or "off", got "${rawValue}"` });
2986
+ }
2987
+ }
2988
+ }
2989
+ if (sections.length === 0 && !rootSeen) {
2990
+ issues.push({ severity: "warning", line: 1, message: "File has no section headers and no root declaration" });
2991
+ }
2992
+ const valid = !issues.some((i) => i.severity === "error");
2993
+ return { root, sections, issues, valid };
2994
+ }
2995
+ function stripJsonComments(input) {
2996
+ let out = "";
2997
+ let i = 0;
2998
+ const n = input.length;
2999
+ let inString = false;
3000
+ while (i < n) {
3001
+ const c = input[i];
3002
+ const next = input[i + 1];
3003
+ if (inString) {
3004
+ out += c;
3005
+ if (c === "\\") {
3006
+ out += next ?? "";
3007
+ i += 2;
3008
+ continue;
3009
+ }
3010
+ if (c === '"') inString = false;
3011
+ i++;
3012
+ continue;
3013
+ }
3014
+ if (c === '"') {
3015
+ inString = true;
3016
+ out += c;
3017
+ i++;
3018
+ continue;
3019
+ }
3020
+ if (c === "/" && next === "/") {
3021
+ while (i < n && input[i] !== "\n") i++;
3022
+ continue;
3023
+ }
3024
+ if (c === "/" && next === "*") {
3025
+ i += 2;
3026
+ while (i < n && !(input[i] === "*" && input[i + 1] === "/")) {
3027
+ out += input[i] === "\n" ? "\n" : "";
3028
+ i++;
3029
+ }
3030
+ i += 2;
3031
+ continue;
3032
+ }
3033
+ out += c;
3034
+ i++;
3035
+ }
3036
+ return out;
3037
+ }
3038
+ function stripTrailingCommas(input) {
3039
+ return input.replace(/,(\s*[}\]])/g, "$1");
3040
+ }
3041
+ var TSCONFIG_TOP_LEVEL_KEYS = /* @__PURE__ */ new Set([
3042
+ "compilerOptions",
3043
+ "files",
3044
+ "include",
3045
+ "exclude",
3046
+ "extends",
3047
+ "references",
3048
+ "compileOnSave",
3049
+ "typeAcquisition",
3050
+ "watchOptions",
3051
+ "buildOptions",
3052
+ "$schema"
3053
+ ]);
3054
+ var TSCONFIG_ENUM_OPTIONS = {
3055
+ target: ["es3", "es5", "es6", "es2015", "es2016", "es2017", "es2018", "es2019", "es2020", "es2021", "es2022", "es2023", "esnext"],
3056
+ module: ["none", "commonjs", "amd", "umd", "system", "es6", "es2015", "es2020", "es2022", "esnext", "node16", "nodenext", "node18", "preserve"],
3057
+ moduleResolution: ["classic", "node", "node10", "node16", "nodenext", "bundler"],
3058
+ moduleDetection: ["legacy", "auto", "force"],
3059
+ jsx: ["preserve", "react", "react-jsx", "react-jsxdev", "react-native"],
3060
+ newLine: ["crlf", "lf"],
3061
+ importsNotUsedAsValues: ["remove", "preserve", "error"]
3062
+ };
3063
+ var TSCONFIG_BOOLEAN_OPTIONS = /* @__PURE__ */ new Set([
3064
+ "allowJs",
3065
+ "checkJs",
3066
+ "strict",
3067
+ "noImplicitAny",
3068
+ "strictNullChecks",
3069
+ "strictFunctionTypes",
3070
+ "strictBindCallApply",
3071
+ "strictPropertyInitialization",
3072
+ "noImplicitThis",
3073
+ "useUnknownInCatchVariables",
3074
+ "alwaysStrict",
3075
+ "noUnusedLocals",
3076
+ "noUnusedParameters",
3077
+ "exactOptionalPropertyTypes",
3078
+ "noImplicitReturns",
3079
+ "noFallthroughCasesInSwitch",
3080
+ "noUncheckedIndexedAccess",
3081
+ "noImplicitOverride",
3082
+ "noPropertyAccessFromIndexSignature",
3083
+ "esModuleInterop",
3084
+ "allowSyntheticDefaultImports",
3085
+ "forceConsistentCasingInFileNames",
3086
+ "isolatedModules",
3087
+ "verbatimModuleSyntax",
3088
+ "declaration",
3089
+ "declarationMap",
3090
+ "emitDeclarationOnly",
3091
+ "sourceMap",
3092
+ "inlineSourceMap",
3093
+ "inlineSources",
3094
+ "noEmit",
3095
+ "noEmitOnError",
3096
+ "preserveConstEnums",
3097
+ "removeComments",
3098
+ "skipLibCheck",
3099
+ "composite",
3100
+ "incremental",
3101
+ "experimentalDecorators",
3102
+ "emitDecoratorMetadata",
3103
+ "resolveJsonModule",
3104
+ "allowUmdGlobalAccess",
3105
+ "downlevelIteration",
3106
+ "importHelpers",
3107
+ "preserveSymlinks",
3108
+ "allowUnreachableCode",
3109
+ "allowUnusedLabels",
3110
+ "disableSizeLimit",
3111
+ "noResolve",
3112
+ "skipDefaultLibCheck",
3113
+ "suppressImplicitAnyIndexErrors"
3114
+ ]);
3115
+ var TSCONFIG_STRING_OPTIONS = /* @__PURE__ */ new Set([
3116
+ "outDir",
3117
+ "rootDir",
3118
+ "baseUrl",
3119
+ "outFile",
3120
+ "declarationDir",
3121
+ "tsBuildInfoFile",
3122
+ "jsxFactory",
3123
+ "jsxFragmentFactory",
3124
+ "jsxImportSource"
3125
+ ]);
3126
+ var TSCONFIG_ARRAY_OPTIONS = /* @__PURE__ */ new Set(["lib", "types", "typeRoots", "rootDirs"]);
3127
+ function validateTsconfig(text) {
3128
+ if (!text || !text.trim()) return { error: "Input is empty" };
3129
+ const stripped = stripTrailingCommas(stripJsonComments(text));
3130
+ let parsed;
3131
+ try {
3132
+ parsed = JSON.parse(stripped);
3133
+ } catch (e) {
3134
+ return { error: `Invalid JSON: ${e.message}` };
3135
+ }
3136
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
3137
+ return { error: "Root of tsconfig.json must be an object" };
3138
+ }
3139
+ const obj = parsed;
3140
+ const issues = [];
3141
+ const topLevelKeys = Object.keys(obj);
3142
+ for (const key of topLevelKeys) {
3143
+ if (!TSCONFIG_TOP_LEVEL_KEYS.has(key)) {
3144
+ issues.push({ severity: "warning", path: key, message: `Unknown top-level key "${key}"` });
3145
+ }
3146
+ }
3147
+ for (const key of ["files", "include", "exclude"]) {
3148
+ if (key in obj) {
3149
+ const v = obj[key];
3150
+ if (!Array.isArray(v) || !v.every((x) => typeof x === "string")) {
3151
+ issues.push({ severity: "error", path: key, message: `"${key}" must be an array of strings` });
3152
+ }
3153
+ }
3154
+ }
3155
+ if ("extends" in obj) {
3156
+ const v = obj.extends;
3157
+ const validExtends = typeof v === "string" || Array.isArray(v) && v.every((x) => typeof x === "string");
3158
+ if (!validExtends) {
3159
+ issues.push({ severity: "error", path: "extends", message: '"extends" must be a string or an array of strings' });
3160
+ }
3161
+ }
3162
+ if ("references" in obj) {
3163
+ const v = obj.references;
3164
+ const validRefs = Array.isArray(v) && v.every((r) => typeof r === "object" && r !== null && typeof r.path === "string");
3165
+ if (!validRefs) {
3166
+ issues.push({ severity: "error", path: "references", message: '"references" must be an array of objects with a "path" string' });
3167
+ }
3168
+ }
3169
+ let compilerOptionKeys = [];
3170
+ if ("compilerOptions" in obj) {
3171
+ const co = obj.compilerOptions;
3172
+ if (typeof co !== "object" || co === null || Array.isArray(co)) {
3173
+ issues.push({ severity: "error", path: "compilerOptions", message: '"compilerOptions" must be an object' });
3174
+ } else {
3175
+ const coObj = co;
3176
+ compilerOptionKeys = Object.keys(coObj);
3177
+ for (const key of compilerOptionKeys) {
3178
+ const value = coObj[key];
3179
+ const path = `compilerOptions.${key}`;
3180
+ if (key === "paths") {
3181
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
3182
+ issues.push({ severity: "error", path, message: '"paths" must be an object mapping patterns to arrays of strings' });
3183
+ } else {
3184
+ for (const [k, v] of Object.entries(value)) {
3185
+ if (!Array.isArray(v) || !v.every((x) => typeof x === "string")) {
3186
+ issues.push({ severity: "error", path: `${path}.${k}`, message: `"paths.${k}" must be an array of strings` });
3187
+ }
3188
+ }
3189
+ }
3190
+ continue;
3191
+ }
3192
+ if (key in TSCONFIG_ENUM_OPTIONS) {
3193
+ if (typeof value !== "string" || !TSCONFIG_ENUM_OPTIONS[key].includes(value.toLowerCase())) {
3194
+ issues.push({ severity: "error", path, message: `"${key}" must be one of ${TSCONFIG_ENUM_OPTIONS[key].join(", ")}, got ${JSON.stringify(value)}` });
3195
+ }
3196
+ continue;
3197
+ }
3198
+ if (TSCONFIG_BOOLEAN_OPTIONS.has(key)) {
3199
+ if (typeof value !== "boolean") {
3200
+ issues.push({ severity: "error", path, message: `"${key}" must be a boolean, got ${JSON.stringify(value)}` });
3201
+ }
3202
+ continue;
3203
+ }
3204
+ if (TSCONFIG_STRING_OPTIONS.has(key)) {
3205
+ if (typeof value !== "string") {
3206
+ issues.push({ severity: "error", path, message: `"${key}" must be a string, got ${JSON.stringify(value)}` });
3207
+ }
3208
+ continue;
3209
+ }
3210
+ if (TSCONFIG_ARRAY_OPTIONS.has(key)) {
3211
+ if (!Array.isArray(value) || !value.every((x) => typeof x === "string")) {
3212
+ issues.push({ severity: "error", path, message: `"${key}" must be an array of strings, got ${JSON.stringify(value)}` });
3213
+ }
3214
+ continue;
3215
+ }
3216
+ issues.push({ severity: "warning", path, message: `Unknown compilerOption "${key}"` });
3217
+ }
3218
+ }
3219
+ }
3220
+ const valid = !issues.some((i) => i.severity === "error");
3221
+ return { parsed: true, topLevelKeys, compilerOptionKeys, issues, valid };
3222
+ }
2889
3223
 
2890
3224
  exports.ALL_FLAGS = ALL_FLAGS;
2891
3225
  exports.CHEATSHEET = CHEATSHEET;
@@ -2938,4 +3272,6 @@ exports.splitStatements = splitStatements;
2938
3272
  exports.testGitignorePatterns = testGitignorePatterns;
2939
3273
  exports.testPattern = testPattern;
2940
3274
  exports.testRegex = testRegex;
3275
+ exports.validateEditorConfig = validateEditorConfig;
2941
3276
  exports.validateEnvKey = validateEnvKey;
3277
+ exports.validateTsconfig = validateTsconfig;
@@ -1 +1 @@
1
- export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, C as CHEATSHEET, d as CheatsheetEntry, e as ConventionalCommitFinding, f as ConventionalCommitFooter, g as ConventionalCommitOptions, h as ConventionalCommitParsed, i as ConventionalCommitResult, j as ConventionalCommitSeverity, k as CssResult, D as DEFAULT_COMMIT_TYPES, l as DockerImageRef, E as EnvEntry, m as EnvParseResult, G as GitCommandConfig, n as GitCommandResult, o as GitOperation, p as GithubUrlInfo, q as GithubUrlType, r as GitignoreTestResult, s as GqlFormatResult, H as HtmlFormatResult, t as HtmlMinifyOptions, u as HtmlMinifyResult, J as JsMinifyOptions, v as JsMinifyResult, M as MIME_TABLE, w as MatchResult, x as MimeEntry, y as MimeLookupResult, O as OPERATIONS, P as ParsedSpec, R as RedosFinding, z as RedosResult, B as RedosSeverity, F as RegexError, I as RegexFlag, K as RegexMatch, L as RegexResult, N as RegexSuccess, S as SQL_DEFAULT_OPTIONS, Q as Segment, T as SpecVersion, U as SqlDialect, V as SqlFormatOptions, W as TestPatternResult, X as buildDockerPull, Y as buildDockerRun, Z as buildGitCommand, _ as collapseHtmlWhitespace, $ as collapseJsWhitespace, a0 as countProperties, a1 as countRules, a2 as detectDialect, a3 as detectOperationType, a4 as detectRedos, a5 as envToExport, a6 as envToJson, a7 as formatCss, a8 as formatGql, a9 as formatHtml, aa as formatSql, ab as getEndpointsByTag, ac as getHtmlStats, ad as getJsStats, ae as getMethodColor, af as isValidTag, ag as lintConventionalCommit, ah as lookupMime, ai as minifyCss, aj as minifyGql, ak as minifyHtml, al as minifyJs, am as minifySql, an as normalizeRef, ao as parseDockerImage, ap as parseEnv, aq as parseGitCommand, ar as parseGithubUrl, as as parseSpec, at as removeConsoleCalls, au as removeEmptyAttributes, av as removeHtmlComments, aw as removeJsComments, ax as removeRedundantAttributes, ay as searchCheatsheet, az as searchEndpoints, aA as splitStatements, aB as testGitignorePatterns, aC as testPattern, aD as testRegex, aE as validateEnvKey } from '../code-KXoRsHtl.cjs';
1
+ export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, C as CHEATSHEET, d as CheatsheetEntry, e as ConventionalCommitFinding, f as ConventionalCommitFooter, g as ConventionalCommitOptions, h as ConventionalCommitParsed, i as ConventionalCommitResult, j as ConventionalCommitSeverity, k as CssResult, D as DEFAULT_COMMIT_TYPES, l as DockerImageRef, E as EditorConfigIssue, m as EditorConfigProperty, n as EditorConfigSection, o as EditorConfigValidationResult, p as EnvEntry, q as EnvParseResult, G as GitCommandConfig, r as GitCommandResult, s as GitOperation, t as GithubUrlInfo, u as GithubUrlType, v as GitignoreTestResult, w as GqlFormatResult, H as HtmlFormatResult, x as HtmlMinifyOptions, y as HtmlMinifyResult, J as JsMinifyOptions, z as JsMinifyResult, M as MIME_TABLE, B as MatchResult, F as MimeEntry, I as MimeLookupResult, O as OPERATIONS, P as ParsedSpec, R as RedosFinding, K as RedosResult, L as RedosSeverity, N as RegexError, Q as RegexFlag, S as RegexMatch, T as RegexResult, U as RegexSuccess, V as SQL_DEFAULT_OPTIONS, W as Segment, X as SpecVersion, Y as SqlDialect, Z as SqlFormatOptions, _ as TestPatternResult, $ as TsconfigIssue, a0 as TsconfigValidationResult, a1 as buildDockerPull, a2 as buildDockerRun, a3 as buildGitCommand, a4 as collapseHtmlWhitespace, a5 as collapseJsWhitespace, a6 as countProperties, a7 as countRules, a8 as detectDialect, a9 as detectOperationType, aa as detectRedos, ab as envToExport, ac as envToJson, ad as formatCss, ae as formatGql, af as formatHtml, ag as formatSql, ah as getEndpointsByTag, ai as getHtmlStats, aj as getJsStats, ak as getMethodColor, al as isValidTag, am as lintConventionalCommit, an as lookupMime, ao as minifyCss, ap as minifyGql, aq as minifyHtml, ar as minifyJs, as as minifySql, at as normalizeRef, au as parseDockerImage, av as parseEnv, aw as parseGitCommand, ax as parseGithubUrl, ay as parseSpec, az as removeConsoleCalls, aA as removeEmptyAttributes, aB as removeHtmlComments, aC as removeJsComments, aD as removeRedundantAttributes, aE as searchCheatsheet, aF as searchEndpoints, aG as splitStatements, aH as testGitignorePatterns, aI as testPattern, aJ as testRegex, aK as validateEditorConfig, aL as validateEnvKey, aM as validateTsconfig } from '../code-B_gDkRAx.cjs';
@@ -1 +1 @@
1
- export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, C as CHEATSHEET, d as CheatsheetEntry, e as ConventionalCommitFinding, f as ConventionalCommitFooter, g as ConventionalCommitOptions, h as ConventionalCommitParsed, i as ConventionalCommitResult, j as ConventionalCommitSeverity, k as CssResult, D as DEFAULT_COMMIT_TYPES, l as DockerImageRef, E as EnvEntry, m as EnvParseResult, G as GitCommandConfig, n as GitCommandResult, o as GitOperation, p as GithubUrlInfo, q as GithubUrlType, r as GitignoreTestResult, s as GqlFormatResult, H as HtmlFormatResult, t as HtmlMinifyOptions, u as HtmlMinifyResult, J as JsMinifyOptions, v as JsMinifyResult, M as MIME_TABLE, w as MatchResult, x as MimeEntry, y as MimeLookupResult, O as OPERATIONS, P as ParsedSpec, R as RedosFinding, z as RedosResult, B as RedosSeverity, F as RegexError, I as RegexFlag, K as RegexMatch, L as RegexResult, N as RegexSuccess, S as SQL_DEFAULT_OPTIONS, Q as Segment, T as SpecVersion, U as SqlDialect, V as SqlFormatOptions, W as TestPatternResult, X as buildDockerPull, Y as buildDockerRun, Z as buildGitCommand, _ as collapseHtmlWhitespace, $ as collapseJsWhitespace, a0 as countProperties, a1 as countRules, a2 as detectDialect, a3 as detectOperationType, a4 as detectRedos, a5 as envToExport, a6 as envToJson, a7 as formatCss, a8 as formatGql, a9 as formatHtml, aa as formatSql, ab as getEndpointsByTag, ac as getHtmlStats, ad as getJsStats, ae as getMethodColor, af as isValidTag, ag as lintConventionalCommit, ah as lookupMime, ai as minifyCss, aj as minifyGql, ak as minifyHtml, al as minifyJs, am as minifySql, an as normalizeRef, ao as parseDockerImage, ap as parseEnv, aq as parseGitCommand, ar as parseGithubUrl, as as parseSpec, at as removeConsoleCalls, au as removeEmptyAttributes, av as removeHtmlComments, aw as removeJsComments, ax as removeRedundantAttributes, ay as searchCheatsheet, az as searchEndpoints, aA as splitStatements, aB as testGitignorePatterns, aC as testPattern, aD as testRegex, aE as validateEnvKey } from '../code-KXoRsHtl.js';
1
+ export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, C as CHEATSHEET, d as CheatsheetEntry, e as ConventionalCommitFinding, f as ConventionalCommitFooter, g as ConventionalCommitOptions, h as ConventionalCommitParsed, i as ConventionalCommitResult, j as ConventionalCommitSeverity, k as CssResult, D as DEFAULT_COMMIT_TYPES, l as DockerImageRef, E as EditorConfigIssue, m as EditorConfigProperty, n as EditorConfigSection, o as EditorConfigValidationResult, p as EnvEntry, q as EnvParseResult, G as GitCommandConfig, r as GitCommandResult, s as GitOperation, t as GithubUrlInfo, u as GithubUrlType, v as GitignoreTestResult, w as GqlFormatResult, H as HtmlFormatResult, x as HtmlMinifyOptions, y as HtmlMinifyResult, J as JsMinifyOptions, z as JsMinifyResult, M as MIME_TABLE, B as MatchResult, F as MimeEntry, I as MimeLookupResult, O as OPERATIONS, P as ParsedSpec, R as RedosFinding, K as RedosResult, L as RedosSeverity, N as RegexError, Q as RegexFlag, S as RegexMatch, T as RegexResult, U as RegexSuccess, V as SQL_DEFAULT_OPTIONS, W as Segment, X as SpecVersion, Y as SqlDialect, Z as SqlFormatOptions, _ as TestPatternResult, $ as TsconfigIssue, a0 as TsconfigValidationResult, a1 as buildDockerPull, a2 as buildDockerRun, a3 as buildGitCommand, a4 as collapseHtmlWhitespace, a5 as collapseJsWhitespace, a6 as countProperties, a7 as countRules, a8 as detectDialect, a9 as detectOperationType, aa as detectRedos, ab as envToExport, ac as envToJson, ad as formatCss, ae as formatGql, af as formatHtml, ag as formatSql, ah as getEndpointsByTag, ai as getHtmlStats, aj as getJsStats, ak as getMethodColor, al as isValidTag, am as lintConventionalCommit, an as lookupMime, ao as minifyCss, ap as minifyGql, aq as minifyHtml, ar as minifyJs, as as minifySql, at as normalizeRef, au as parseDockerImage, av as parseEnv, aw as parseGitCommand, ax as parseGithubUrl, ay as parseSpec, az as removeConsoleCalls, aA as removeEmptyAttributes, aB as removeHtmlComments, aC as removeJsComments, aD as removeRedundantAttributes, aE as searchCheatsheet, aF as searchEndpoints, aG as splitStatements, aH as testGitignorePatterns, aI as testPattern, aJ as testRegex, aK as validateEditorConfig, aL as validateEnvKey, aM as validateTsconfig } from '../code-B_gDkRAx.js';
@@ -1,2 +1,2 @@
1
- export { ALL_FLAGS, CHEATSHEET, DEFAULT_COMMIT_TYPES, MIME_TABLE, OPERATIONS, SQL_DEFAULT_OPTIONS, buildDockerPull, buildDockerRun, buildGitCommand, collapseHtmlWhitespace, collapseJsWhitespace, countProperties, countRules, detectDialect, detectOperationType, detectRedos, envToExport, envToJson, formatCss, formatGql, formatHtml, formatSql, getEndpointsByTag, getHtmlStats, getJsStats, getMethodColor, isValidTag, lintConventionalCommit, lookupMime, minifyCss, minifyGql, minifyHtml, minifyJs, minifySql, normalizeRef, parseDockerImage, parseEnv, parseGitCommand, parseGithubUrl, parseSpec, removeConsoleCalls, removeEmptyAttributes, removeHtmlComments, removeJsComments, removeRedundantAttributes, searchCheatsheet, searchEndpoints, splitStatements, testGitignorePatterns, testPattern, testRegex, validateEnvKey } from '../chunk-JL7YTXRB.js';
1
+ export { ALL_FLAGS, CHEATSHEET, DEFAULT_COMMIT_TYPES, MIME_TABLE, OPERATIONS, SQL_DEFAULT_OPTIONS, buildDockerPull, buildDockerRun, buildGitCommand, collapseHtmlWhitespace, collapseJsWhitespace, countProperties, countRules, detectDialect, detectOperationType, detectRedos, envToExport, envToJson, formatCss, formatGql, formatHtml, formatSql, getEndpointsByTag, getHtmlStats, getJsStats, getMethodColor, isValidTag, lintConventionalCommit, lookupMime, minifyCss, minifyGql, minifyHtml, minifyJs, minifySql, normalizeRef, parseDockerImage, parseEnv, parseGitCommand, parseGithubUrl, parseSpec, removeConsoleCalls, removeEmptyAttributes, removeHtmlComments, removeJsComments, removeRedundantAttributes, searchCheatsheet, searchEndpoints, splitStatements, testGitignorePatterns, testPattern, testRegex, validateEditorConfig, validateEnvKey, validateTsconfig } from '../chunk-K4ZERKBD.js';
2
2
  import '../chunk-MLKGABMK.js';
@@ -1309,6 +1309,53 @@ function shiftSubtitles(input, offsetSeconds, target) {
1309
1309
  warnings
1310
1310
  };
1311
1311
  }
1312
+ function analyzeCaptionSpeed(input, wpmThreshold = 180, cpsThreshold = 20) {
1313
+ if (!Number.isFinite(wpmThreshold) || wpmThreshold <= 0) {
1314
+ return { error: "wpmThreshold must be a finite number greater than zero" };
1315
+ }
1316
+ if (!Number.isFinite(cpsThreshold) || cpsThreshold <= 0) {
1317
+ return { error: "cpsThreshold must be a finite number greater than zero" };
1318
+ }
1319
+ const parsed = parseSubtitles(input);
1320
+ if ("error" in parsed) return parsed;
1321
+ const round1 = (n) => Math.round(n * 10) / 10;
1322
+ const cues = [];
1323
+ for (const cue of parsed.cues) {
1324
+ const text = cue.text.replace(/<[^>]+>/g, " ").replace(/\s+/g, " ").trim();
1325
+ const durationSeconds = cue.end - cue.start;
1326
+ if (text.length === 0 || durationSeconds <= 0) continue;
1327
+ const wordCount = text.split(" ").filter(Boolean).length;
1328
+ const charCount = text.length;
1329
+ const wpm = wordCount / durationSeconds * 60;
1330
+ const charsPerSecond = charCount / durationSeconds;
1331
+ cues.push({
1332
+ index: cues.length + 1,
1333
+ start: round1(cue.start),
1334
+ end: round1(cue.end),
1335
+ text,
1336
+ durationSeconds: round1(durationSeconds),
1337
+ wordCount,
1338
+ charCount,
1339
+ wpm: round1(wpm),
1340
+ charsPerSecond: round1(charsPerSecond),
1341
+ exceedsWpm: wpm > wpmThreshold,
1342
+ exceedsCps: charsPerSecond > cpsThreshold
1343
+ });
1344
+ }
1345
+ if (cues.length === 0) {
1346
+ return { error: "No cues with both text and a positive duration were found" };
1347
+ }
1348
+ const wpmValues = cues.map((c) => c.wpm);
1349
+ return {
1350
+ cueCount: cues.length,
1351
+ cues,
1352
+ averageWpm: round1(wpmValues.reduce((a, b) => a + b, 0) / wpmValues.length),
1353
+ maxWpm: round1(Math.max(...wpmValues)),
1354
+ flaggedCount: cues.filter((c) => c.exceedsWpm || c.exceedsCps).length,
1355
+ wpmThreshold,
1356
+ cpsThreshold
1357
+ };
1358
+ }
1312
1359
  function parseFrontMatterScalar(value) {
1313
1360
  if (value.startsWith('"') && value.endsWith('"') || value.startsWith("'") && value.endsWith("'")) {
1314
1361
  return value.slice(1, -1);
@@ -1642,6 +1689,7 @@ function calculateMarkdownTaskListProgress(markdown) {
1642
1689
  return { totalItems, completedItems, percentComplete, sections, items };
1643
1690
  }
1644
1691
 
1692
+ exports.analyzeCaptionSpeed = analyzeCaptionSpeed;
1645
1693
  exports.calculateMarkdownTaskListProgress = calculateMarkdownTaskListProgress;
1646
1694
  exports.convertSubtitles = convertSubtitles;
1647
1695
  exports.csvToJson = csvToJson;
@@ -1 +1 @@
1
- export { C as ConvertedSubtitles, a as CsvDuplicateGroup, b as CsvDuplicateOptions, c as CsvDuplicateResult, e as CsvParseResult, f as CsvToSqlOptions, g as CsvToSqlResult, E as EnvDiffError, h as EnvDiffResult, i as EnvEntry, j as EnvParseResult, F as FrontMatterError, k as FrontMatterResult, I as IniSection, M as MarkdownTaskListItem, l as MarkdownTaskListProgressResult, m as MarkdownTaskListSectionSummary, n as MarkdownTocEntry, o as MarkdownTocOptions, p as MarkdownTocResult, N as NdjsonLineResult, q as NdjsonValidateResult, P as ParseOptions, r as ParsedIni, s as ParsedSubtitles, S as SubtitleCue, t as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, u as XmlToJsonOptions, Y as YamlAnchorInfo, v as YamlAnchorResolveError, w as YamlAnchorResolveResult, x as calculateMarkdownTaskListProgress, y as convertSubtitles, z as csvToJson, A as csvToSqlInsert, B as detectDelimiter, D as detectSubtitleFormat, G as diffEnvExample, H as envToExport, J as envToJson, K as findCsvDuplicateRows, L as formatNdjson, O as formatSubtitleTimestamp, Q as formatToml, R as formatXml, U as generateMarkdownToc, W as getSection, Z as getSectionNames, _ as getTomlStats, $ as getXmlStats, a0 as getYamlStats, a1 as iniToJson, a2 as jsonArrayToNdjson, a3 as jsonToIni, a4 as jsonToToml, a5 as jsonToXml, a6 as minifyNdjson, a7 as minifyToml, a8 as minifyXml, a9 as ndjsonToJsonArray, aa as parseCsv, ab as parseEnv, ac as parseFrontMatter, ad as parseIni, ae as parseSubtitleTimestamp, af as parseSubtitles, ag as parseXmlToObject, ah as resolveYamlAnchors, ai as serializeSubtitles, aj as shiftSubtitles, ak as stringifyIni, al as toCsvString, am as tomlToJson, an as validateEnvKey, ao as validateIni, ap as validateNdjson, aq as validateToml, ar as validateXml, as as validateYaml, at as xmlToJson } from '../data-BI_007dA.cjs';
1
+ export { C as CaptionSpeedCue, a as CaptionSpeedResult, b as ConvertedSubtitles, c as CsvDuplicateGroup, e as CsvDuplicateOptions, f as CsvDuplicateResult, g as CsvParseResult, h as CsvToSqlOptions, i as CsvToSqlResult, E as EnvDiffError, j as EnvDiffResult, k as EnvEntry, l as EnvParseResult, F as FrontMatterError, m as FrontMatterResult, I as IniSection, M as MarkdownTaskListItem, n as MarkdownTaskListProgressResult, o as MarkdownTaskListSectionSummary, p as MarkdownTocEntry, q as MarkdownTocOptions, r as MarkdownTocResult, N as NdjsonLineResult, s as NdjsonValidateResult, P as ParseOptions, t as ParsedIni, u as ParsedSubtitles, S as SubtitleCue, v as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, w as XmlToJsonOptions, Y as YamlAnchorInfo, x as YamlAnchorResolveError, y as YamlAnchorResolveResult, z as analyzeCaptionSpeed, A as calculateMarkdownTaskListProgress, B as convertSubtitles, D as csvToJson, G as csvToSqlInsert, H as detectDelimiter, J as detectSubtitleFormat, K as diffEnvExample, L as envToExport, O as envToJson, Q as findCsvDuplicateRows, R as formatNdjson, U as formatSubtitleTimestamp, W as formatToml, Z as formatXml, _ as generateMarkdownToc, $ as getSection, a0 as getSectionNames, a1 as getTomlStats, a2 as getXmlStats, a3 as getYamlStats, a4 as iniToJson, a5 as jsonArrayToNdjson, a6 as jsonToIni, a7 as jsonToToml, a8 as jsonToXml, a9 as minifyNdjson, aa as minifyToml, ab as minifyXml, ac as ndjsonToJsonArray, ad as parseCsv, ae as parseEnv, af as parseFrontMatter, ag as parseIni, ah as parseSubtitleTimestamp, ai as parseSubtitles, aj as parseXmlToObject, ak as resolveYamlAnchors, al as serializeSubtitles, am as shiftSubtitles, an as stringifyIni, ao as toCsvString, ap as tomlToJson, aq as validateEnvKey, ar as validateIni, as as validateNdjson, at as validateToml, au as validateXml, av as validateYaml, aw as xmlToJson } from '../data-CupeugaR.cjs';
@@ -1 +1 @@
1
- export { C as ConvertedSubtitles, a as CsvDuplicateGroup, b as CsvDuplicateOptions, c as CsvDuplicateResult, e as CsvParseResult, f as CsvToSqlOptions, g as CsvToSqlResult, E as EnvDiffError, h as EnvDiffResult, i as EnvEntry, j as EnvParseResult, F as FrontMatterError, k as FrontMatterResult, I as IniSection, M as MarkdownTaskListItem, l as MarkdownTaskListProgressResult, m as MarkdownTaskListSectionSummary, n as MarkdownTocEntry, o as MarkdownTocOptions, p as MarkdownTocResult, N as NdjsonLineResult, q as NdjsonValidateResult, P as ParseOptions, r as ParsedIni, s as ParsedSubtitles, S as SubtitleCue, t as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, u as XmlToJsonOptions, Y as YamlAnchorInfo, v as YamlAnchorResolveError, w as YamlAnchorResolveResult, x as calculateMarkdownTaskListProgress, y as convertSubtitles, z as csvToJson, A as csvToSqlInsert, B as detectDelimiter, D as detectSubtitleFormat, G as diffEnvExample, H as envToExport, J as envToJson, K as findCsvDuplicateRows, L as formatNdjson, O as formatSubtitleTimestamp, Q as formatToml, R as formatXml, U as generateMarkdownToc, W as getSection, Z as getSectionNames, _ as getTomlStats, $ as getXmlStats, a0 as getYamlStats, a1 as iniToJson, a2 as jsonArrayToNdjson, a3 as jsonToIni, a4 as jsonToToml, a5 as jsonToXml, a6 as minifyNdjson, a7 as minifyToml, a8 as minifyXml, a9 as ndjsonToJsonArray, aa as parseCsv, ab as parseEnv, ac as parseFrontMatter, ad as parseIni, ae as parseSubtitleTimestamp, af as parseSubtitles, ag as parseXmlToObject, ah as resolveYamlAnchors, ai as serializeSubtitles, aj as shiftSubtitles, ak as stringifyIni, al as toCsvString, am as tomlToJson, an as validateEnvKey, ao as validateIni, ap as validateNdjson, aq as validateToml, ar as validateXml, as as validateYaml, at as xmlToJson } from '../data-BI_007dA.js';
1
+ export { C as CaptionSpeedCue, a as CaptionSpeedResult, b as ConvertedSubtitles, c as CsvDuplicateGroup, e as CsvDuplicateOptions, f as CsvDuplicateResult, g as CsvParseResult, h as CsvToSqlOptions, i as CsvToSqlResult, E as EnvDiffError, j as EnvDiffResult, k as EnvEntry, l as EnvParseResult, F as FrontMatterError, m as FrontMatterResult, I as IniSection, M as MarkdownTaskListItem, n as MarkdownTaskListProgressResult, o as MarkdownTaskListSectionSummary, p as MarkdownTocEntry, q as MarkdownTocOptions, r as MarkdownTocResult, N as NdjsonLineResult, s as NdjsonValidateResult, P as ParseOptions, t as ParsedIni, u as ParsedSubtitles, S as SubtitleCue, v as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, w as XmlToJsonOptions, Y as YamlAnchorInfo, x as YamlAnchorResolveError, y as YamlAnchorResolveResult, z as analyzeCaptionSpeed, A as calculateMarkdownTaskListProgress, B as convertSubtitles, D as csvToJson, G as csvToSqlInsert, H as detectDelimiter, J as detectSubtitleFormat, K as diffEnvExample, L as envToExport, O as envToJson, Q as findCsvDuplicateRows, R as formatNdjson, U as formatSubtitleTimestamp, W as formatToml, Z as formatXml, _ as generateMarkdownToc, $ as getSection, a0 as getSectionNames, a1 as getTomlStats, a2 as getXmlStats, a3 as getYamlStats, a4 as iniToJson, a5 as jsonArrayToNdjson, a6 as jsonToIni, a7 as jsonToToml, a8 as jsonToXml, a9 as minifyNdjson, aa as minifyToml, ab as minifyXml, ac as ndjsonToJsonArray, ad as parseCsv, ae as parseEnv, af as parseFrontMatter, ag as parseIni, ah as parseSubtitleTimestamp, ai as parseSubtitles, aj as parseXmlToObject, ak as resolveYamlAnchors, al as serializeSubtitles, am as shiftSubtitles, an as stringifyIni, ao as toCsvString, ap as tomlToJson, aq as validateEnvKey, ar as validateIni, as as validateNdjson, at as validateToml, au as validateXml, av as validateYaml, aw as xmlToJson } from '../data-CupeugaR.js';
@@ -1,2 +1,2 @@
1
- export { calculateMarkdownTaskListProgress, convertSubtitles, csvToJson, csvToSqlInsert, detectDelimiter, detectSubtitleFormat, diffEnvExample, envToExport, envToJson, findCsvDuplicateRows, formatNdjson, formatSubtitleTimestamp, formatToml, formatXml, generateMarkdownToc, getSection, getSectionNames, getTomlStats, getXmlStats, getYamlStats, iniToJson, jsonArrayToNdjson, jsonToIni, jsonToToml, jsonToXml, minifyNdjson, minifyToml, minifyXml, ndjsonToJsonArray, parseCsv, parseEnv, parseFrontMatter, parseIni, parseSubtitleTimestamp, parseSubtitles, parseXmlToObject, resolveYamlAnchors, serializeSubtitles, shiftSubtitles, stringifyIni, toCsvString, tomlToJson, validateEnvKey, validateIni, validateNdjson, validateToml, validateXml, validateYaml, xmlToJson } from '../chunk-BDQXYFTO.js';
1
+ export { analyzeCaptionSpeed, calculateMarkdownTaskListProgress, convertSubtitles, csvToJson, csvToSqlInsert, detectDelimiter, detectSubtitleFormat, diffEnvExample, envToExport, envToJson, findCsvDuplicateRows, formatNdjson, formatSubtitleTimestamp, formatToml, formatXml, generateMarkdownToc, getSection, getSectionNames, getTomlStats, getXmlStats, getYamlStats, iniToJson, jsonArrayToNdjson, jsonToIni, jsonToToml, jsonToXml, minifyNdjson, minifyToml, minifyXml, ndjsonToJsonArray, parseCsv, parseEnv, parseFrontMatter, parseIni, parseSubtitleTimestamp, parseSubtitles, parseXmlToObject, resolveYamlAnchors, serializeSubtitles, shiftSubtitles, stringifyIni, toCsvString, tomlToJson, validateEnvKey, validateIni, validateNdjson, validateToml, validateXml, validateYaml, xmlToJson } from '../chunk-3KIUADK4.js';
2
2
  import '../chunk-MLKGABMK.js';
@@ -2093,6 +2093,48 @@ function calculateGpa(courses) {
2093
2093
  gpa: round22(totalQualityPoints / totalCredits)
2094
2094
  };
2095
2095
  }
2096
+ function _classifyUtilization(percent) {
2097
+ if (percent < 10) return "excellent";
2098
+ if (percent < 30) return "good";
2099
+ if (percent < 50) return "fair";
2100
+ return "poor";
2101
+ }
2102
+ function calculateCreditUtilization(accounts) {
2103
+ if (!Array.isArray(accounts) || accounts.length === 0) {
2104
+ return { error: "accounts must be a non-empty array" };
2105
+ }
2106
+ const round22 = (n) => Math.round(n * 100) / 100;
2107
+ let totalBalance = 0;
2108
+ let totalLimit = 0;
2109
+ const results = [];
2110
+ for (let i = 0; i < accounts.length; i++) {
2111
+ const account = accounts[i];
2112
+ if (typeof account.balance !== "number" || !Number.isFinite(account.balance) || account.balance < 0) {
2113
+ return { error: `account ${i + 1}: balance must be a finite, non-negative number` };
2114
+ }
2115
+ if (typeof account.limit !== "number" || !Number.isFinite(account.limit) || account.limit <= 0) {
2116
+ return { error: `account ${i + 1}: limit must be a finite number greater than zero` };
2117
+ }
2118
+ const utilizationPercent = round22(account.balance / account.limit * 100);
2119
+ totalBalance += account.balance;
2120
+ totalLimit += account.limit;
2121
+ results.push({
2122
+ label: account.label?.trim() || `Account ${i + 1}`,
2123
+ balance: account.balance,
2124
+ limit: account.limit,
2125
+ utilizationPercent,
2126
+ tier: _classifyUtilization(utilizationPercent)
2127
+ });
2128
+ }
2129
+ const overallUtilizationPercent = round22(totalBalance / totalLimit * 100);
2130
+ return {
2131
+ accounts: results,
2132
+ totalBalance: round22(totalBalance),
2133
+ totalLimit: round22(totalLimit),
2134
+ overallUtilizationPercent,
2135
+ overallTier: _classifyUtilization(overallUtilizationPercent)
2136
+ };
2137
+ }
2096
2138
 
2097
2139
  exports.BASE_LABELS = BASE_LABELS;
2098
2140
  exports.BASE_PREFIXES = BASE_PREFIXES;
@@ -2118,6 +2160,7 @@ exports.calculateCashRounding = calculateCashRounding;
2118
2160
  exports.calculateCdMaturity = calculateCdMaturity;
2119
2161
  exports.calculateChange = calculateChange;
2120
2162
  exports.calculateCompoundInterest = calculateCompoundInterest;
2163
+ exports.calculateCreditUtilization = calculateCreditUtilization;
2121
2164
  exports.calculateDepreciationSchedule = calculateDepreciationSchedule;
2122
2165
  exports.calculateDiscount = calculateDiscount;
2123
2166
  exports.calculateEmi = calculateEmi;
@@ -1 +1 @@
1
- export { A as AmortizationRow, a as AprApyDirection, b as AprApyResult, c as AspectRatioResult, B as BASE_LABELS, d as BASE_PREFIXES, e as BYTE_UNITS, f as BarcodeFormat, g as BarcodeValidationResult, h as BaseConvertResult, i as BreakEvenInput, j as BreakEvenResult, k as ByteConvertResult, l as ByteUnit, C as COMMON_CURRENCIES, m as COMMON_LOCALES, n as COMMON_PERMISSIONS, o as COMMON_RATIOS, p as COMMON_SIZES, q as COMMON_TAX_RATES, r as COMMON_TIP_PERCENTAGES, s as COMMON_VIEWPORTS, t as CardValidationResult, v as CashBreakdownResult, w as CashChangeResult, x as CashDenominationItem, y as CashRoundingMode, z as CashRoundingResult, D as CdMaturityResult, E as CompareUnitPricesResult, F as CompoundInterestResult, G as CompoundYearRow, H as DepreciationMethod, I as DepreciationResult, J as DepreciationYear, K as Dimensions, L as DiscountField, M as DiscountInput, N as DiscountResult, O as EmiResult, P as EmiTenureUnit, Q as EmiYearlyBreakdownRow, R as FilePermissions, S as FormatOptions, T as GPA_GRADE_POINTS, U as GpaCourse, V as GpaCourseResult, W as GpaResult, X as IbanValidationResult, Y as IpConversion, Z as IsbnFormat, _ as IsbnResult, $ as LoanResult, a0 as MarginMarkupField, a1 as MarginMarkupInput, a2 as MarginMarkupResult, a3 as MovingAveragePoint, a4 as MovingAverageResult, a5 as NotationStyle, a6 as NumberBase, a7 as PaybackPeriodInput, a8 as PaybackPeriodResult, a9 as PercentChangeDirection, aa as PercentageChangeResult, ab as Permission, ac as PxConvertResult, ad as RoiInput, ae as RoiResult, af as RuleOf72Direction, ag as RuleOf72Result, ah as SavingsGoalInput, ai as SavingsGoalMode, aj as SavingsGoalResult, ak as SemverVersion, al as SimpleInterestResult, am as SubnetInfo, an as SuccessiveDiscountResult, ao as SuccessiveDiscountStep, ap as TaxDirection, aq as TaxResult, ar as TimeValueDirection, as as TimeValueResult, at as TipSplitResult, au as USD_DENOMINATIONS, av as UnitPriceItem, aw as UnitPriceResult, ax as VideoBitrateInput, ay as VideoBitrateMode, az as VideoBitrateResult, aA as ViewportConvertResult, aB as applySuccessiveDiscounts, aC as autoFormat, aD as bumpVersion, aE as calcAspectRatio, aF as calcSubnet, aG as calculateBreakEven, aH as calculateCashBreakdown, aI as calculateCashRounding, aJ as calculateCdMaturity, aK as calculateChange, aL as calculateCompoundInterest, aM as calculateDepreciationSchedule, aN as calculateDiscount, aO as calculateEmi, aP as calculateGpa, aQ as calculateLoan, aR as calculateMarginMarkup, aS as calculateMovingAverages, aT as calculatePaybackPeriod, aU as calculatePercentageChange, aV as calculateRoi, aW as calculateRuleOf72, aX as calculateSavingsGoal, aY as calculateSimpleInterest, aZ as calculateTax, a_ as calculateTimeValue, a$ as calculateTipSplit, b0 as calculateVideoBitrate, b1 as compareSemver, b2 as compareUnitPrices, b3 as convert, b4 as convertAprApy, b5 as convertBytes, b6 as convertIp, b7 as coverBox, b8 as decimalToIp, b9 as decimalToIpCidr, ba as describePermissions, bb as fitIntoBox, bc as formatNumber, bd as formatValue, be as formatVwValue, bf as formatWithSeparator, bg as gcd, bh as ipFromBinary, bi as ipFromDecimal, bj as ipFromHex, bk as ipToBinary, bl as ipToDecimal, bm as ipToDecimalCidr, bn as ipToHex, bo as ipToOctal, bp as isValid, bq as isValidCidr, br as isValidIp, bs as isValidIpv4, bt as marginToMarkup, bu as markupToMargin, bv as octalToPermissions, bw as parseFileSize, bx as parseInput, by as parseNumberString, bz as parseSemver, bA as permissionsToChmod, bB as permissionsToOctal, bC as permissionsToSymbolic, bD as ptToPx, bE as pxToAll, bF as pxToViewport, bG as remToPx, bH as satisfiesRange, bI as scaleByHeight, bJ as scaleByWidth, bK as sortVersions, bL as splitSubnet, bM as symbolicToPermissions, bN as validateBarcode, bO as validateCardNumber, bP as validateIban, bQ as validateIsbn, bR as viewportToPx } from '../units-y30YVhqI.cjs';
1
+ export { A as AmortizationRow, a as AprApyDirection, b as AprApyResult, c as AspectRatioResult, B as BASE_LABELS, d as BASE_PREFIXES, e as BYTE_UNITS, f as BarcodeFormat, g as BarcodeValidationResult, h as BaseConvertResult, i as BreakEvenInput, j as BreakEvenResult, k as ByteConvertResult, l as ByteUnit, C as COMMON_CURRENCIES, m as COMMON_LOCALES, n as COMMON_PERMISSIONS, o as COMMON_RATIOS, p as COMMON_SIZES, q as COMMON_TAX_RATES, r as COMMON_TIP_PERCENTAGES, s as COMMON_VIEWPORTS, t as CardValidationResult, v as CashBreakdownResult, w as CashChangeResult, x as CashDenominationItem, y as CashRoundingMode, z as CashRoundingResult, D as CdMaturityResult, E as CompareUnitPricesResult, F as CompoundInterestResult, G as CompoundYearRow, H as CreditAccountInput, I as CreditAccountResult, J as CreditUtilizationResult, K as DepreciationMethod, L as DepreciationResult, M as DepreciationYear, N as Dimensions, O as DiscountField, P as DiscountInput, Q as DiscountResult, R as EmiResult, S as EmiTenureUnit, T as EmiYearlyBreakdownRow, U as FilePermissions, V as FormatOptions, W as GPA_GRADE_POINTS, X as GpaCourse, Y as GpaCourseResult, Z as GpaResult, _ as IbanValidationResult, $ as IpConversion, a0 as IsbnFormat, a1 as IsbnResult, a2 as LoanResult, a3 as MarginMarkupField, a4 as MarginMarkupInput, a5 as MarginMarkupResult, a6 as MovingAveragePoint, a7 as MovingAverageResult, a8 as NotationStyle, a9 as NumberBase, aa as PaybackPeriodInput, ab as PaybackPeriodResult, ac as PercentChangeDirection, ad as PercentageChangeResult, ae as Permission, af as PxConvertResult, ag as RoiInput, ah as RoiResult, ai as RuleOf72Direction, aj as RuleOf72Result, ak as SavingsGoalInput, al as SavingsGoalMode, am as SavingsGoalResult, an as SemverVersion, ao as SimpleInterestResult, ap as SubnetInfo, aq as SuccessiveDiscountResult, ar as SuccessiveDiscountStep, as as TaxDirection, at as TaxResult, au as TimeValueDirection, av as TimeValueResult, aw as TipSplitResult, ax as USD_DENOMINATIONS, ay as UnitPriceItem, az as UnitPriceResult, aA as UtilizationTier, aB as VideoBitrateInput, aC as VideoBitrateMode, aD as VideoBitrateResult, aE as ViewportConvertResult, aF as applySuccessiveDiscounts, aG as autoFormat, aH as bumpVersion, aI as calcAspectRatio, aJ as calcSubnet, aK as calculateBreakEven, aL as calculateCashBreakdown, aM as calculateCashRounding, aN as calculateCdMaturity, aO as calculateChange, aP as calculateCompoundInterest, aQ as calculateCreditUtilization, aR as calculateDepreciationSchedule, aS as calculateDiscount, aT as calculateEmi, aU as calculateGpa, aV as calculateLoan, aW as calculateMarginMarkup, aX as calculateMovingAverages, aY as calculatePaybackPeriod, aZ as calculatePercentageChange, a_ as calculateRoi, a$ as calculateRuleOf72, b0 as calculateSavingsGoal, b1 as calculateSimpleInterest, b2 as calculateTax, b3 as calculateTimeValue, b4 as calculateTipSplit, b5 as calculateVideoBitrate, b6 as compareSemver, b7 as compareUnitPrices, b8 as convert, b9 as convertAprApy, ba as convertBytes, bb as convertIp, bc as coverBox, bd as decimalToIp, be as decimalToIpCidr, bf as describePermissions, bg as fitIntoBox, bh as formatNumber, bi as formatValue, bj as formatVwValue, bk as formatWithSeparator, bl as gcd, bm as ipFromBinary, bn as ipFromDecimal, bo as ipFromHex, bp as ipToBinary, bq as ipToDecimal, br as ipToDecimalCidr, bs as ipToHex, bt as ipToOctal, bu as isValid, bv as isValidCidr, bw as isValidIp, bx as isValidIpv4, by as marginToMarkup, bz as markupToMargin, bA as octalToPermissions, bB as parseFileSize, bC as parseInput, bD as parseNumberString, bE as parseSemver, bF as permissionsToChmod, bG as permissionsToOctal, bH as permissionsToSymbolic, bI as ptToPx, bJ as pxToAll, bK as pxToViewport, bL as remToPx, bM as satisfiesRange, bN as scaleByHeight, bO as scaleByWidth, bP as sortVersions, bQ as splitSubnet, bR as symbolicToPermissions, bS as validateBarcode, bT as validateCardNumber, bU as validateIban, bV as validateIsbn, bW as viewportToPx } from '../units-p-1Ikx7l.cjs';
@@ -1 +1 @@
1
- export { A as AmortizationRow, a as AprApyDirection, b as AprApyResult, c as AspectRatioResult, B as BASE_LABELS, d as BASE_PREFIXES, e as BYTE_UNITS, f as BarcodeFormat, g as BarcodeValidationResult, h as BaseConvertResult, i as BreakEvenInput, j as BreakEvenResult, k as ByteConvertResult, l as ByteUnit, C as COMMON_CURRENCIES, m as COMMON_LOCALES, n as COMMON_PERMISSIONS, o as COMMON_RATIOS, p as COMMON_SIZES, q as COMMON_TAX_RATES, r as COMMON_TIP_PERCENTAGES, s as COMMON_VIEWPORTS, t as CardValidationResult, v as CashBreakdownResult, w as CashChangeResult, x as CashDenominationItem, y as CashRoundingMode, z as CashRoundingResult, D as CdMaturityResult, E as CompareUnitPricesResult, F as CompoundInterestResult, G as CompoundYearRow, H as DepreciationMethod, I as DepreciationResult, J as DepreciationYear, K as Dimensions, L as DiscountField, M as DiscountInput, N as DiscountResult, O as EmiResult, P as EmiTenureUnit, Q as EmiYearlyBreakdownRow, R as FilePermissions, S as FormatOptions, T as GPA_GRADE_POINTS, U as GpaCourse, V as GpaCourseResult, W as GpaResult, X as IbanValidationResult, Y as IpConversion, Z as IsbnFormat, _ as IsbnResult, $ as LoanResult, a0 as MarginMarkupField, a1 as MarginMarkupInput, a2 as MarginMarkupResult, a3 as MovingAveragePoint, a4 as MovingAverageResult, a5 as NotationStyle, a6 as NumberBase, a7 as PaybackPeriodInput, a8 as PaybackPeriodResult, a9 as PercentChangeDirection, aa as PercentageChangeResult, ab as Permission, ac as PxConvertResult, ad as RoiInput, ae as RoiResult, af as RuleOf72Direction, ag as RuleOf72Result, ah as SavingsGoalInput, ai as SavingsGoalMode, aj as SavingsGoalResult, ak as SemverVersion, al as SimpleInterestResult, am as SubnetInfo, an as SuccessiveDiscountResult, ao as SuccessiveDiscountStep, ap as TaxDirection, aq as TaxResult, ar as TimeValueDirection, as as TimeValueResult, at as TipSplitResult, au as USD_DENOMINATIONS, av as UnitPriceItem, aw as UnitPriceResult, ax as VideoBitrateInput, ay as VideoBitrateMode, az as VideoBitrateResult, aA as ViewportConvertResult, aB as applySuccessiveDiscounts, aC as autoFormat, aD as bumpVersion, aE as calcAspectRatio, aF as calcSubnet, aG as calculateBreakEven, aH as calculateCashBreakdown, aI as calculateCashRounding, aJ as calculateCdMaturity, aK as calculateChange, aL as calculateCompoundInterest, aM as calculateDepreciationSchedule, aN as calculateDiscount, aO as calculateEmi, aP as calculateGpa, aQ as calculateLoan, aR as calculateMarginMarkup, aS as calculateMovingAverages, aT as calculatePaybackPeriod, aU as calculatePercentageChange, aV as calculateRoi, aW as calculateRuleOf72, aX as calculateSavingsGoal, aY as calculateSimpleInterest, aZ as calculateTax, a_ as calculateTimeValue, a$ as calculateTipSplit, b0 as calculateVideoBitrate, b1 as compareSemver, b2 as compareUnitPrices, b3 as convert, b4 as convertAprApy, b5 as convertBytes, b6 as convertIp, b7 as coverBox, b8 as decimalToIp, b9 as decimalToIpCidr, ba as describePermissions, bb as fitIntoBox, bc as formatNumber, bd as formatValue, be as formatVwValue, bf as formatWithSeparator, bg as gcd, bh as ipFromBinary, bi as ipFromDecimal, bj as ipFromHex, bk as ipToBinary, bl as ipToDecimal, bm as ipToDecimalCidr, bn as ipToHex, bo as ipToOctal, bp as isValid, bq as isValidCidr, br as isValidIp, bs as isValidIpv4, bt as marginToMarkup, bu as markupToMargin, bv as octalToPermissions, bw as parseFileSize, bx as parseInput, by as parseNumberString, bz as parseSemver, bA as permissionsToChmod, bB as permissionsToOctal, bC as permissionsToSymbolic, bD as ptToPx, bE as pxToAll, bF as pxToViewport, bG as remToPx, bH as satisfiesRange, bI as scaleByHeight, bJ as scaleByWidth, bK as sortVersions, bL as splitSubnet, bM as symbolicToPermissions, bN as validateBarcode, bO as validateCardNumber, bP as validateIban, bQ as validateIsbn, bR as viewportToPx } from '../units-y30YVhqI.js';
1
+ export { A as AmortizationRow, a as AprApyDirection, b as AprApyResult, c as AspectRatioResult, B as BASE_LABELS, d as BASE_PREFIXES, e as BYTE_UNITS, f as BarcodeFormat, g as BarcodeValidationResult, h as BaseConvertResult, i as BreakEvenInput, j as BreakEvenResult, k as ByteConvertResult, l as ByteUnit, C as COMMON_CURRENCIES, m as COMMON_LOCALES, n as COMMON_PERMISSIONS, o as COMMON_RATIOS, p as COMMON_SIZES, q as COMMON_TAX_RATES, r as COMMON_TIP_PERCENTAGES, s as COMMON_VIEWPORTS, t as CardValidationResult, v as CashBreakdownResult, w as CashChangeResult, x as CashDenominationItem, y as CashRoundingMode, z as CashRoundingResult, D as CdMaturityResult, E as CompareUnitPricesResult, F as CompoundInterestResult, G as CompoundYearRow, H as CreditAccountInput, I as CreditAccountResult, J as CreditUtilizationResult, K as DepreciationMethod, L as DepreciationResult, M as DepreciationYear, N as Dimensions, O as DiscountField, P as DiscountInput, Q as DiscountResult, R as EmiResult, S as EmiTenureUnit, T as EmiYearlyBreakdownRow, U as FilePermissions, V as FormatOptions, W as GPA_GRADE_POINTS, X as GpaCourse, Y as GpaCourseResult, Z as GpaResult, _ as IbanValidationResult, $ as IpConversion, a0 as IsbnFormat, a1 as IsbnResult, a2 as LoanResult, a3 as MarginMarkupField, a4 as MarginMarkupInput, a5 as MarginMarkupResult, a6 as MovingAveragePoint, a7 as MovingAverageResult, a8 as NotationStyle, a9 as NumberBase, aa as PaybackPeriodInput, ab as PaybackPeriodResult, ac as PercentChangeDirection, ad as PercentageChangeResult, ae as Permission, af as PxConvertResult, ag as RoiInput, ah as RoiResult, ai as RuleOf72Direction, aj as RuleOf72Result, ak as SavingsGoalInput, al as SavingsGoalMode, am as SavingsGoalResult, an as SemverVersion, ao as SimpleInterestResult, ap as SubnetInfo, aq as SuccessiveDiscountResult, ar as SuccessiveDiscountStep, as as TaxDirection, at as TaxResult, au as TimeValueDirection, av as TimeValueResult, aw as TipSplitResult, ax as USD_DENOMINATIONS, ay as UnitPriceItem, az as UnitPriceResult, aA as UtilizationTier, aB as VideoBitrateInput, aC as VideoBitrateMode, aD as VideoBitrateResult, aE as ViewportConvertResult, aF as applySuccessiveDiscounts, aG as autoFormat, aH as bumpVersion, aI as calcAspectRatio, aJ as calcSubnet, aK as calculateBreakEven, aL as calculateCashBreakdown, aM as calculateCashRounding, aN as calculateCdMaturity, aO as calculateChange, aP as calculateCompoundInterest, aQ as calculateCreditUtilization, aR as calculateDepreciationSchedule, aS as calculateDiscount, aT as calculateEmi, aU as calculateGpa, aV as calculateLoan, aW as calculateMarginMarkup, aX as calculateMovingAverages, aY as calculatePaybackPeriod, aZ as calculatePercentageChange, a_ as calculateRoi, a$ as calculateRuleOf72, b0 as calculateSavingsGoal, b1 as calculateSimpleInterest, b2 as calculateTax, b3 as calculateTimeValue, b4 as calculateTipSplit, b5 as calculateVideoBitrate, b6 as compareSemver, b7 as compareUnitPrices, b8 as convert, b9 as convertAprApy, ba as convertBytes, bb as convertIp, bc as coverBox, bd as decimalToIp, be as decimalToIpCidr, bf as describePermissions, bg as fitIntoBox, bh as formatNumber, bi as formatValue, bj as formatVwValue, bk as formatWithSeparator, bl as gcd, bm as ipFromBinary, bn as ipFromDecimal, bo as ipFromHex, bp as ipToBinary, bq as ipToDecimal, br as ipToDecimalCidr, bs as ipToHex, bt as ipToOctal, bu as isValid, bv as isValidCidr, bw as isValidIp, bx as isValidIpv4, by as marginToMarkup, bz as markupToMargin, bA as octalToPermissions, bB as parseFileSize, bC as parseInput, bD as parseNumberString, bE as parseSemver, bF as permissionsToChmod, bG as permissionsToOctal, bH as permissionsToSymbolic, bI as ptToPx, bJ as pxToAll, bK as pxToViewport, bL as remToPx, bM as satisfiesRange, bN as scaleByHeight, bO as scaleByWidth, bP as sortVersions, bQ as splitSubnet, bR as symbolicToPermissions, bS as validateBarcode, bT as validateCardNumber, bU as validateIban, bV as validateIsbn, bW as viewportToPx } from '../units-p-1Ikx7l.js';
@@ -1,2 +1,2 @@
1
- export { BASE_LABELS, BASE_PREFIXES, BYTE_UNITS, COMMON_CURRENCIES, COMMON_LOCALES, COMMON_PERMISSIONS, COMMON_RATIOS, COMMON_SIZES, COMMON_TAX_RATES, COMMON_TIP_PERCENTAGES, COMMON_VIEWPORTS, GPA_GRADE_POINTS, USD_DENOMINATIONS, applySuccessiveDiscounts, autoFormat, bumpVersion, calcAspectRatio, calcSubnet, calculateBreakEven, calculateCashBreakdown, calculateCashRounding, calculateCdMaturity, calculateChange, calculateCompoundInterest, calculateDepreciationSchedule, calculateDiscount, calculateEmi, calculateGpa, calculateLoan, calculateMarginMarkup, calculateMovingAverages, calculatePaybackPeriod, calculatePercentageChange, calculateRoi, calculateRuleOf72, calculateSavingsGoal, calculateSimpleInterest, calculateTax, calculateTimeValue, calculateTipSplit, calculateVideoBitrate, compareSemver, compareUnitPrices, convert, convertAprApy, convertBytes, convertIp, coverBox, decimalToIp, decimalToIpCidr, describePermissions, fitIntoBox, formatNumber, formatValue, formatVwValue, formatWithSeparator, gcd, ipFromBinary, ipFromDecimal, ipFromHex, ipToBinary, ipToDecimal, ipToDecimalCidr, ipToHex, ipToOctal, isValid, isValidCidr, isValidIp, isValidIpv4, marginToMarkup, markupToMargin, octalToPermissions, parseFileSize, parseInput, parseNumberString, parseSemver, permissionsToChmod, permissionsToOctal, permissionsToSymbolic, ptToPx, pxToAll, pxToViewport, remToPx, satisfiesRange, scaleByHeight, scaleByWidth, sortVersions, splitSubnet, symbolicToPermissions, validateBarcode, validateCardNumber, validateIban, validateIsbn, viewportToPx } from '../chunk-ZZJPD366.js';
1
+ export { BASE_LABELS, BASE_PREFIXES, BYTE_UNITS, COMMON_CURRENCIES, COMMON_LOCALES, COMMON_PERMISSIONS, COMMON_RATIOS, COMMON_SIZES, COMMON_TAX_RATES, COMMON_TIP_PERCENTAGES, COMMON_VIEWPORTS, GPA_GRADE_POINTS, USD_DENOMINATIONS, applySuccessiveDiscounts, autoFormat, bumpVersion, calcAspectRatio, calcSubnet, calculateBreakEven, calculateCashBreakdown, calculateCashRounding, calculateCdMaturity, calculateChange, calculateCompoundInterest, calculateCreditUtilization, calculateDepreciationSchedule, calculateDiscount, calculateEmi, calculateGpa, calculateLoan, calculateMarginMarkup, calculateMovingAverages, calculatePaybackPeriod, calculatePercentageChange, calculateRoi, calculateRuleOf72, calculateSavingsGoal, calculateSimpleInterest, calculateTax, calculateTimeValue, calculateTipSplit, calculateVideoBitrate, compareSemver, compareUnitPrices, convert, convertAprApy, convertBytes, convertIp, coverBox, decimalToIp, decimalToIpCidr, describePermissions, fitIntoBox, formatNumber, formatValue, formatVwValue, formatWithSeparator, gcd, ipFromBinary, ipFromDecimal, ipFromHex, ipToBinary, ipToDecimal, ipToDecimalCidr, ipToHex, ipToOctal, isValid, isValidCidr, isValidIp, isValidIpv4, marginToMarkup, markupToMargin, octalToPermissions, parseFileSize, parseInput, parseNumberString, parseSemver, permissionsToChmod, permissionsToOctal, permissionsToSymbolic, ptToPx, pxToAll, pxToViewport, remToPx, satisfiesRange, scaleByHeight, scaleByWidth, sortVersions, splitSubnet, symbolicToPermissions, validateBarcode, validateCardNumber, validateIban, validateIsbn, viewportToPx } from '../chunk-NKN656TQ.js';
2
2
  import '../chunk-MLKGABMK.js';