nanos-lint 3.2.1 → 3.3.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/README.md CHANGED
@@ -134,7 +134,8 @@ nanos-lint [command] [options] [paths...]
134
134
 
135
135
  COMMANDS:
136
136
  check [paths...] Check workspace files or directories (default)
137
- init [path] Scaffold a .luarc.json configuration in the workspace (copies definitions to .nanos-lint/; supports --annotations <path>)
137
+ init [path] Scaffold a .luarc.json configuration in the workspace (supports --vendor, --force)
138
+ copy-annotations [dest] Copy cached annotations.lua definitions into a target file or directory (alias: export-annotations; targets not ending in .lua are treated as directories)
138
139
  warmup, download Pre-fetch and cache both LuaLS binary and annotations for offline execution
139
140
  cache status, cache info Show cache status, installed versions, and disk usage (supports --json)
140
141
  cache clean Clear the nanos-lint cache directory
@@ -153,14 +154,15 @@ OPTIONS:
153
154
  debug adds diagnostic tracing
154
155
  --checklevel=<level> Minimum diagnostic level: Error, Warning, Information, Hint (default: Warning)
155
156
  --config=<path> Path to custom .luarc.json configuration file
156
- --annotations=<path> Path to custom annotations.lua file (applies to both check and init)
157
+ --annotations=<path> Path to custom annotations.lua file (applies to check, init --vendor, and copy-annotations)
157
158
  --format=<format> Output format: pretty, json, github (default: pretty)
158
159
  --github Output in GitHub Actions format (shortcut for --format=github)
159
160
  --luals-version=<ver> Version of LuaLS to use (default: latest, falling back to 3.19.1 when offline)
160
161
  --no-fail Do not exit with code 1 if diagnostics are found
161
162
  --realm <realm> Execution realm to check: all, client, server, shared (default: all)
162
163
  --no-progress Disable the interactive download, extraction and realm derivation progress display
163
- -f, --force (init command only) Overwrite existing .luarc.json
164
+ --vendor (init command only) Vendor annotations.lua into .nanos-lint/ inside workspace
165
+ -f, --force (init and copy-annotations only) Overwrite existing files
164
166
  ```
165
167
 
166
168
  ### Progress Display
@@ -223,7 +225,7 @@ If your project already has a `.luarc.json`, `nanos-lint` automatically merges i
223
225
  }
224
226
  ```
225
227
 
226
- To scaffold a portable `.luarc.json` with vendored type annotations in your project, run:
228
+ To scaffold a `.luarc.json` configuration in your project:
227
229
 
228
230
  ```bash
229
231
  npx nanos-lint init
@@ -231,6 +233,24 @@ npx nanos-lint init
231
233
  npx nanos-lint init --force
232
234
  ```
233
235
 
236
+ By default `init` writes no annotations reference at all: `workspace.library` stays empty and
237
+ `nanos-lint check` injects the managed cache path into its own temporary merged configuration at
238
+ runtime, so a later cache update is picked up without touching repository files. Editors that read
239
+ `.luarc.json` directly need a pinned copy, which is always an explicit opt-in:
240
+
241
+ ```bash
242
+ # Initialize with annotations vendored into .nanos-lint/ and pinned in workspace.library
243
+ npx nanos-lint init --vendor
244
+
245
+ # Or copy the cached annotations to a custom file, or to any target that does not end in
246
+ # ".lua" (treated as a directory). Copying alone does not pin anything: add the resulting
247
+ # path to workspace.library yourself.
248
+ npx nanos-lint copy-annotations
249
+ npx nanos-lint copy-annotations ./types
250
+ ```
251
+
252
+ `copy-annotations` refuses to overwrite an existing file unless `--force` is passed.
253
+
234
254
  ### Realm Mapping (`nanos.realms`)
235
255
 
236
256
  nanos world runs two isolated Lua VMs: the server executes `Server/**` + `Shared/**`, the client executes `Client/**` + `Shared/**`. `nanos-lint` mirrors that split and lets you describe a non-standard layout in `.luarc.json`:
@@ -369,7 +389,7 @@ npm run check:all
369
389
  npm run format:check # Prettier code formatting (auto-fix via npm run format:fix)
370
390
  npm run lint # ESLint
371
391
  npm run lint:deps # Dependency architecture & license checks (dependency-cruiser)
372
- npm run lint:comments # Comment density limit (<= 15%)
392
+ npm run lint:comments # Comment density limit (<= 10%)
373
393
  npm run lint:docstrings # Docstring coverage (>= 90% top-level/exported function coverage per file in src/)
374
394
  npm run typecheck # TypeScript typecheck
375
395
  npm run build # Build distribution bundle
package/action.yml CHANGED
@@ -172,5 +172,5 @@ runs:
172
172
  else
173
173
  # Exact version: a range could run a different release than the pinned
174
174
  # tag. Bump together with "version" in package.json.
175
- npx --yes nanos-lint@3.2.1 "${ARGS[@]}"
175
+ npx --yes nanos-lint@3.3.0 "${ARGS[@]}"
176
176
  fi
@@ -1464,20 +1464,23 @@ function resolveRealmMappings(userConfig) {
1464
1464
  function initWorkspace(workspacePath, options) {
1465
1465
  const targetFile = path.join(workspacePath, ".luarc.json");
1466
1466
  if (fs.existsSync(targetFile) && !options?.force) throw new ConfigError(`.luarc.json already exists at ${targetFile}. Use --force to overwrite.`, "ERR_CONFIG_EXISTS", "Pass --force to overwrite the existing .luarc.json file.");
1467
+ if (options?.annotationsPath && !options.vendor) throw new ConfigError("--annotations requires --vendor: nanos-lint init does not pin or vendor annotations.lua by default.", "ERR_ANNOTATIONS_WITHOUT_VENDOR", "Run 'nanos-lint init --vendor --annotations <path>' (or pass vendor: true), or omit the custom path to use the managed annotations cache.");
1467
1468
  const template = loadConfigFile(getDefaultTemplatePath());
1468
- const sourceAnnotations = options?.annotationsPath || getDefaultAnnotationsPath();
1469
- if (!fs.existsSync(sourceAnnotations)) throw new ConfigError(`Definitions file not found at ${sourceAnnotations}. Make sure annotations have been downloaded or pass a valid file with --annotations.`, "ERR_ANNOTATIONS_NOT_FOUND", "Run 'nanos-lint warmup' to download annotations or provide --annotations <path>.");
1470
- const targetNanosDir = path.join(workspacePath, ".nanos-lint");
1471
- fs.mkdirSync(targetNanosDir, { recursive: true });
1472
- const targetAnnotations = path.join(targetNanosDir, "annotations.lua");
1473
- fs.copyFileSync(sourceAnnotations, targetAnnotations);
1474
- template.workspace = template.workspace ?? {};
1475
- template.workspace.library = [".nanos-lint/annotations.lua"];
1476
- const existingIgnore = template.workspace.ignoreDir ?? [];
1477
- if (!existingIgnore.includes(".nanos-lint")) template.workspace.ignoreDir = [".nanos-lint", ...existingIgnore];
1478
- template.files = template.files ?? {};
1479
- const existingExclude = template.files.exclude ?? [];
1480
- if (!existingExclude.includes(".nanos-lint/**")) template.files.exclude = [".nanos-lint/**", ...existingExclude];
1469
+ if (options?.vendor) {
1470
+ const sourceAnnotations = options.annotationsPath || getDefaultAnnotationsPath();
1471
+ if (!fs.existsSync(sourceAnnotations)) throw new ConfigError(`Definitions file not found at ${sourceAnnotations}. Make sure annotations have been downloaded or pass a valid file with --annotations.`, "ERR_ANNOTATIONS_NOT_FOUND", "Run 'nanos-lint warmup' to download annotations or provide --annotations <path>.");
1472
+ const targetNanosDir = path.join(workspacePath, ".nanos-lint");
1473
+ fs.mkdirSync(targetNanosDir, { recursive: true });
1474
+ const targetAnnotations = path.join(targetNanosDir, "annotations.lua");
1475
+ fs.copyFileSync(sourceAnnotations, targetAnnotations);
1476
+ template.workspace = template.workspace ?? {};
1477
+ template.workspace.library = [".nanos-lint/annotations.lua"];
1478
+ const existingIgnore = template.workspace.ignoreDir ?? [];
1479
+ if (!existingIgnore.includes(".nanos-lint")) template.workspace.ignoreDir = [".nanos-lint", ...existingIgnore];
1480
+ template.files = template.files ?? {};
1481
+ const existingExclude = template.files.exclude ?? [];
1482
+ if (!existingExclude.includes(".nanos-lint/**")) template.files.exclude = [".nanos-lint/**", ...existingExclude];
1483
+ }
1481
1484
  fs.writeFileSync(targetFile, JSON.stringify(template, null, 2), "utf-8");
1482
1485
  return targetFile;
1483
1486
  }
@@ -11361,6 +11364,22 @@ async function resolveAnnotations(options = {}) {
11361
11364
  throw new AnnotationsError(`Failed to resolve nanos world API annotations. Please check your network connection or pass a custom file with --annotations. (${err instanceof Error ? err.message : String(err)})`, "ERR_ANNOTATIONS_NETWORK", "Check your network connection, run 'nanos-lint warmup' when online, or specify --annotations <path>.", { cause: err });
11362
11365
  }
11363
11366
  }
11367
+ const DEFAULT_COPY_TARGET = `.nanos-lint/${ANNOTATIONS_FILENAME}`;
11368
+ /**
11369
+ * Copies nanos world annotations.lua definitions into a target file or directory.
11370
+ * A target counts as a directory when it ends with a separator, already is a directory,
11371
+ * or does not end in `.lua` (case-insensitively).
11372
+ */
11373
+ async function copyAnnotations(targetPath = DEFAULT_COPY_TARGET, options = {}) {
11374
+ let resolvedTarget = path.resolve(targetPath);
11375
+ if (targetPath.endsWith("/") || targetPath.endsWith("\\") || fs.existsSync(resolvedTarget) && fs.statSync(resolvedTarget).isDirectory() || path.extname(resolvedTarget).toLowerCase() !== ".lua") resolvedTarget = path.join(resolvedTarget, ANNOTATIONS_FILENAME);
11376
+ if (fs.existsSync(resolvedTarget) && !options.force) throw new AnnotationsError(`Target annotations file already exists: ${resolvedTarget}. Use --force to overwrite.`, "ERR_ANNOTATIONS_EXISTS", "Pass --force to overwrite the existing annotations file.");
11377
+ const sourcePath = options.annotationsPath ? validateCustomAnnotationsPath(options.annotationsPath, "custom") : await resolveAnnotations({ cacheDir: options.cacheDir });
11378
+ const targetDir = path.dirname(resolvedTarget);
11379
+ fs.mkdirSync(targetDir, { recursive: true });
11380
+ fs.copyFileSync(sourcePath, resolvedTarget);
11381
+ return resolvedTarget;
11382
+ }
11364
11383
  //#endregion
11365
11384
  //#region src/cache-status.ts
11366
11385
  /** Collects detailed status and disk usage information for LuaLS and annotations caches. */
@@ -11455,6 +11474,80 @@ function formatCacheStatusPretty(report) {
11455
11474
  return lines.join("\n");
11456
11475
  }
11457
11476
  //#endregion
11477
+ //#region src/output.ts
11478
+ /** Writes command results to stdout unless the log level is `silent`. */
11479
+ function writeOutput(message) {
11480
+ if (logger.isOutputEnabled()) console.log(message);
11481
+ }
11482
+ //#endregion
11483
+ //#region src/cli-check.ts
11484
+ /** Executes the check command on target paths with specified options. */
11485
+ async function executeCheckCommand(targetPaths = ["."], opts, setExitCode) {
11486
+ if (opts.logLevel && isValidLogLevel(opts.logLevel)) logger.setLevel(opts.logLevel);
11487
+ const { rootPath, targetPaths: canonicalTargets } = resolveCheckTargets(targetPaths && targetPaths.length > 0 ? targetPaths : ["."]);
11488
+ const format = opts.github ? "github" : opts.format || (process.env.GITHUB_ACTIONS ? "github" : "pretty");
11489
+ if (format === "json") {
11490
+ setProgressMode("off");
11491
+ logger.setDiagnosticStream("stderr");
11492
+ }
11493
+ const checkOptions = {
11494
+ path: rootPath,
11495
+ paths: canonicalTargets,
11496
+ configpath: opts.config,
11497
+ checklevel: opts.checklevel,
11498
+ format,
11499
+ lualsVersion: opts.lualsVersion,
11500
+ failOnError: opts.fail !== false,
11501
+ ignore: opts.ignore,
11502
+ deps: opts.dep
11503
+ };
11504
+ if (opts.config) {
11505
+ const resolvedConfig = path.resolve(opts.config);
11506
+ if (!fs.existsSync(resolvedConfig)) throw new ConfigError(`Configuration file not found: ${resolvedConfig}`, "ERR_CONFIG_NOT_FOUND", "Verify the path passed to --config exists and is readable.");
11507
+ }
11508
+ const annotationsPath = await resolveAnnotations({ customPath: opts.annotations });
11509
+ const userConfig = loadUserConfig(rootPath, checkOptions.configpath);
11510
+ const realmPlan = planRealmCheck({
11511
+ targetPath: rootPath,
11512
+ userConfig,
11513
+ selection: opts.realm ?? "all",
11514
+ annotationsPath,
11515
+ customConfigPath: checkOptions.configpath,
11516
+ ignore: checkOptions.ignore,
11517
+ targetPaths: canonicalTargets,
11518
+ cliDeps: checkOptions.deps
11519
+ });
11520
+ let result;
11521
+ if (realmPlan) try {
11522
+ result = await runRealmAwareCheck(realmPlan, rootPath, checkOptions);
11523
+ } finally {
11524
+ realmPlan.cleanup();
11525
+ }
11526
+ else {
11527
+ const resolvedDeps = resolvePackageDependencies(rootPath, userConfig, checkOptions.deps);
11528
+ const unrequestedExclusions = computeUnrequestedExclusions(rootPath, canonicalTargets);
11529
+ const resolved = resolveWorkspaceConfig(rootPath, checkOptions.configpath, {
11530
+ ignore: checkOptions.ignore,
11531
+ annotationsPath,
11532
+ dependencyLibraries: resolvedDeps.all,
11533
+ unrequestedExclusions
11534
+ });
11535
+ try {
11536
+ result = await runLuaLSCheck(rootPath, resolved.configPath, checkOptions);
11537
+ } finally {
11538
+ if (resolved.isTemp && fs.existsSync(resolved.configPath)) try {
11539
+ fs.unlinkSync(resolved.configPath);
11540
+ } catch (err) {
11541
+ logger.warn(`Failed to clean up temporary config file ${resolved.configPath}: ${err instanceof Error ? err.message : String(err)}`);
11542
+ }
11543
+ }
11544
+ }
11545
+ const output = formatReport(result, checkOptions.format, process.cwd());
11546
+ if (output) writeOutput(output);
11547
+ if (!result.passed && checkOptions.failOnError) setExitCode(1);
11548
+ else setExitCode(0);
11549
+ }
11550
+ //#endregion
11458
11551
  //#region src/cli.ts
11459
11552
  /** Retrieves the formatted package name and version string from package.json. */
11460
11553
  function getVersionString() {
@@ -11466,10 +11559,6 @@ function getVersionString() {
11466
11559
  return "nanos-lint v1.0.0";
11467
11560
  }
11468
11561
  }
11469
- /** Writes command results to stdout unless the level is `silent`. */
11470
- function writeOutput(message) {
11471
- if (logger.isOutputEnabled()) console.log(message);
11472
- }
11473
11562
  /** Accumulates repeatable --ignore pattern arguments, splitting by comma and newline. */
11474
11563
  function collectIgnorePatterns(val, prev) {
11475
11564
  const parts = val.split(/[\r\n,]+/).map((s) => s.trim()).filter(Boolean);
@@ -11515,75 +11604,22 @@ function createProgram(options) {
11515
11604
  "server",
11516
11605
  "shared"
11517
11606
  ]).default("all")).action(async (targetPaths = ["."], opts) => {
11518
- if (opts.logLevel && isValidLogLevel(opts.logLevel)) logger.setLevel(opts.logLevel);
11519
- const { rootPath, targetPaths: canonicalTargets } = resolveCheckTargets(targetPaths && targetPaths.length > 0 ? targetPaths : ["."]);
11520
- const format = opts.github ? "github" : opts.format || (process.env.GITHUB_ACTIONS ? "github" : "pretty");
11521
- if (format === "json") {
11522
- setProgressMode("off");
11523
- logger.setDiagnosticStream("stderr");
11524
- }
11525
- const checkOptions = {
11526
- path: rootPath,
11527
- paths: canonicalTargets,
11528
- configpath: opts.config,
11529
- checklevel: opts.checklevel,
11530
- format,
11531
- lualsVersion: opts.lualsVersion,
11532
- failOnError: opts.fail !== false,
11533
- ignore: opts.ignore,
11534
- deps: opts.dep
11535
- };
11536
- if (opts.config) {
11537
- const resolvedConfig = path.resolve(opts.config);
11538
- if (!fs.existsSync(resolvedConfig)) throw new ConfigError(`Configuration file not found: ${resolvedConfig}`, "ERR_CONFIG_NOT_FOUND", "Verify the path passed to --config exists and is readable.");
11539
- }
11540
- const annotationsPath = await resolveAnnotations({ customPath: opts.annotations });
11541
- const userConfig = loadUserConfig(rootPath, checkOptions.configpath);
11542
- const realmPlan = planRealmCheck({
11543
- targetPath: rootPath,
11544
- userConfig,
11545
- selection: opts.realm ?? "all",
11546
- annotationsPath,
11547
- customConfigPath: checkOptions.configpath,
11548
- ignore: checkOptions.ignore,
11549
- targetPaths: canonicalTargets,
11550
- cliDeps: checkOptions.deps
11551
- });
11552
- let result;
11553
- if (realmPlan) try {
11554
- result = await runRealmAwareCheck(realmPlan, rootPath, checkOptions);
11555
- } finally {
11556
- realmPlan.cleanup();
11557
- }
11558
- else {
11559
- const resolvedDeps = resolvePackageDependencies(rootPath, userConfig, checkOptions.deps);
11560
- const unrequestedExclusions = computeUnrequestedExclusions(rootPath, canonicalTargets);
11561
- const resolved = resolveWorkspaceConfig(rootPath, checkOptions.configpath, {
11562
- ignore: checkOptions.ignore,
11563
- annotationsPath,
11564
- dependencyLibraries: resolvedDeps.all,
11565
- unrequestedExclusions
11566
- });
11567
- try {
11568
- result = await runLuaLSCheck(rootPath, resolved.configPath, checkOptions);
11569
- } finally {
11570
- if (resolved.isTemp && fs.existsSync(resolved.configPath)) try {
11571
- fs.unlinkSync(resolved.configPath);
11572
- } catch (err) {
11573
- logger.warn(`Failed to clean up temporary config file ${resolved.configPath}: ${err instanceof Error ? err.message : String(err)}`);
11574
- }
11575
- }
11576
- }
11577
- const output = formatReport(result, checkOptions.format, process.cwd());
11578
- if (output) writeOutput(output);
11579
- if (!result.passed && checkOptions.failOnError) setExitCode(1);
11580
- else setExitCode(0);
11607
+ await executeCheckCommand(targetPaths, opts, setExitCode);
11581
11608
  });
11582
- program.command("init [path]").description("Scaffold a .luarc.json configuration in the workspace").option("-f, --force", "Overwrite existing .luarc.json configuration").option("--annotations <path>", "Path to custom annotations.lua file").action(async (targetPath = ".", opts) => {
11583
- const annotationsPath = await resolveAnnotations({ customPath: opts.annotations });
11609
+ program.command("init [path]").description("Scaffold a .luarc.json configuration in the workspace").option("-f, --force", "Overwrite existing .luarc.json configuration").option("--vendor", "Vendor annotations.lua into .nanos-lint/ inside workspace for portable standalone editor setup").option("--annotations <path>", "Path to custom annotations.lua file (requires --vendor)").action(async (targetPath = ".", opts) => {
11610
+ const shouldVendor = Boolean(opts.vendor);
11611
+ const annotationsPath = shouldVendor ? await resolveAnnotations({ customPath: opts.annotations }) : opts.annotations;
11584
11612
  writeOutput(`[init] Initialized nanos world LuaLS configuration: ${initWorkspace(path.resolve(targetPath), {
11585
11613
  force: opts.force,
11586
- annotationsPath
11614
+ annotationsPath,
11615
+ vendor: shouldVendor
11616
+ })}`);
11617
+ setExitCode(0);
11618
+ });
11619
+ program.command("copy-annotations [destination]").alias("export-annotations").description("Copy cached nanos world annotations.lua definitions into a target file or directory (targets not ending in .lua are treated as directories)").option("-f, --force", "Overwrite existing annotations file").option("--annotations <path>", "Path to custom annotations.lua source file").action(async (destination, opts) => {
11620
+ writeOutput(`[copy-annotations] Copied nanos world annotations to: ${await copyAnnotations(destination, {
11621
+ force: opts.force,
11622
+ annotationsPath: opts.annotations
11587
11623
  })}`);
11588
11624
  setExitCode(0);
11589
11625
  });
@@ -11649,6 +11685,7 @@ Examples:
11649
11685
  $ npx nanos-lint check . --realm server
11650
11686
  $ npx nanos-lint check Shared/ Server/ --realm server
11651
11687
  $ npx nanos-lint init
11688
+ $ npx nanos-lint copy-annotations
11652
11689
  $ npx nanos-lint clean-cache
11653
11690
  `);
11654
11691
  return program;
@@ -11729,6 +11766,6 @@ if (isDirectExecution()) runCLI().then((code) => {
11729
11766
  process.exit(1);
11730
11767
  });
11731
11768
  //#endregion
11732
- export { DOWNLOAD_TIMEOUT_MS as $, buildWorkspaceConfig as $t, formatProblemSummary as A, parseLogLevel as An, getPlatformInfo as At, resolvePackageDependencies as B, splitAnnotationsByRealm as Bt, getCachedAnnotationsFilePath as C, fileUriToPath as Cn, isBinaryRunnable as Ct, updateLastCheckedDate as D, Logger as Dn, parseTarTvSize as Dt, readAnnotationsMetadata as E, LOG_LEVEL_PRIORITY as En, isZipArchive as Et, shouldEnableColor as F, resolveLuaLSVersion as Ft, computeUnrequestedExclusions as G, createSpinner as Gt, runLuaLSCheck as H, PROGRESS_THROTTLE_MS as Ht, collectRealmFiles as I, sanitizeLuaLSVersion as It, findProjectRoot as J, isProgressInteractive as Jt, filterReportByTargetPaths as K, formatTransferSummary as Kt, planRealmCheck as L, ALLOWED_DOWNLOAD_DOMAINS as Lt, formatSeverityBadge as M, FALLBACK_LUALS_VERSION as Mt, getColors as N, fetchLatestLuaLSVersionFromGitHub as Nt, formatGitHubAnnotations as O, isValidLogLevel as On, rethrowLuaLSPermissionError as Ot, pluralize as P, resolveLatestLuaLSVersion as Pt, resolveCheckTargets as Q, VALID_LUALS_DIAGNOSTIC_CODES as Qt, runRealmAwareCheck as R, isAllowedDownloadUrl as Rt, getAnnotationsMetadataFilePath as S, systemPaths as Sn, inspectZipMembers as St, isAnnotationsValid as T, LOG_LEVELS as Tn, isGzipArchive as Tt, countCheckedFiles as U, SPINNER_FRAMES as Ut, resolveLuaLSBinary as V, PROGRESS_MILESTONES as Vt, listCheckedFiles as W, createProgressBar as Wt, isFilesystemRoot as X, setProgressMode as Xt, getCanonicalPath as Y, restoreTerminal as Yt, matchesTargetPaths as Z, DEFAULT_REALM_MAPPINGS as Zt, MAX_ANNOTATIONS_SIZE_BYTES as _, LuaLSError as _n, MAX_DECOMPRESSED_SIZE_BYTES as _t, formatCacheStatusPretty as a, loadConfigFile as an, LUALS_METADATA_FILENAME as at, MIN_ANNOTATIONS_SIZE_BYTES as b, formatBytes as bn, escapePowerShellSingleQuote as bt, DOCGEN_BRANCH as c, parseJsonc as cn, getBaseLuaLSCacheDir as ct, RAW_ANNOTATIONS_URL as d, stripJsonComments as dn, getLuaLSMetadataPath as dt, getDefaultAnnotationsPath as en, MAX_ARCHIVE_SIZE_BYTES as et, downloadAndCacheAnnotations as f, stripTrailingSlashes as fn, listCachedLuaLSVersionDirs as ft, ANNOTATIONS_FILENAME as g, ConfigError as gn, MAX_ARCHIVE_MEMBER_COUNT as gt, getRawAnnotationsUrl as h, CacheError as hn, writeLuaLSMetadata as ht, runCLI as i, initWorkspace as in, trackDownloadProgress as it, formatReport as j, DEFAULT_LUALS_VERSION as jt, formatPretty as k, logger as kn, validateArchiveMembers as kt, DOCGEN_REPO as l, resolveRealmMappings as ln, getCacheDir as lt, fetchRawAnnotationsContent as m, AnnotationsError as mn, readLuaLSMetadata as mt, createProgram as n, getDefinitionsDir as nn, downloadAndExtractLuaLS as nt, getCacheStatus as o, loadUserConfig as on, cleanupOldCachedLuaLSVersions as ot, fetchLatestCommitId as p, writeTempConfig as pn, listCachedLuaLSVersions as pt, findCommonAncestorDirectory as q, getProgressMode as qt, isDirectExecution as r, getPackageRoot as rn, limitDownloadStream as rt, resolveAnnotations as s, mergeConfigs as sn, findExistingLuaLSDir as st, collectIgnorePatterns as t, getDefaultTemplatePath as tn, computeFileSha256 as tt, GITHUB_COMMITS_API as u, resolveWorkspaceConfig as un, getIsoWeek as ut, MAX_COMMIT_JSON_SIZE_BYTES as v, NanosLintError as vn, MIN_DOWNLOADED_BINARY_SIZE_BYTES as vt, getTodayDateString as w, DEFAULT_LOG_LEVEL as wn, isBinaryValid as wt, getAnnotationsCacheDir as x, getDirectorySize as xn, getTarBinary as xt, METADATA_FILENAME as y, cleanCache as yn, assertValidLuaLSBinary as yt, collectDeps as z, deriveRealmAnnotationFiles as zt };
11769
+ export { resolveCheckTargets as $, VALID_LUALS_DIAGNOSTIC_CODES as $t, formatPretty as A, logger as An, validateArchiveMembers as At, collectDeps as B, deriveRealmAnnotationFiles as Bt, getAnnotationsMetadataFilePath as C, systemPaths as Cn, inspectZipMembers as Ct, readAnnotationsMetadata as D, LOG_LEVEL_PRIORITY as Dn, isZipArchive as Dt, isAnnotationsValid as E, LOG_LEVELS as En, isGzipArchive as Et, pluralize as F, resolveLatestLuaLSVersion as Ft, listCheckedFiles as G, createProgressBar as Gt, resolveLuaLSBinary as H, PROGRESS_MILESTONES as Ht, shouldEnableColor as I, resolveLuaLSVersion as It, findCommonAncestorDirectory as J, getProgressMode as Jt, computeUnrequestedExclusions as K, createSpinner as Kt, collectRealmFiles as L, sanitizeLuaLSVersion as Lt, formatReport as M, DEFAULT_LUALS_VERSION as Mt, formatSeverityBadge as N, FALLBACK_LUALS_VERSION as Nt, updateLastCheckedDate as O, Logger as On, parseTarTvSize as Ot, getColors as P, fetchLatestLuaLSVersionFromGitHub as Pt, matchesTargetPaths as Q, DEFAULT_REALM_MAPPINGS as Qt, planRealmCheck as R, ALLOWED_DOWNLOAD_DOMAINS as Rt, getAnnotationsCacheDir as S, getDirectorySize as Sn, getTarBinary as St, getTodayDateString as T, DEFAULT_LOG_LEVEL as Tn, isBinaryValid as Tt, runLuaLSCheck as U, PROGRESS_THROTTLE_MS as Ut, resolvePackageDependencies as V, splitAnnotationsByRealm as Vt, countCheckedFiles as W, SPINNER_FRAMES as Wt, getCanonicalPath as X, restoreTerminal as Xt, findProjectRoot as Y, isProgressInteractive as Yt, isFilesystemRoot as Z, setProgressMode as Zt, ANNOTATIONS_FILENAME as _, ConfigError as _n, MAX_ARCHIVE_MEMBER_COUNT as _t, formatCacheStatusPretty as a, initWorkspace as an, trackDownloadProgress as at, METADATA_FILENAME as b, cleanCache as bn, assertValidLuaLSBinary as bt, resolveAnnotations as c, mergeConfigs as cn, findExistingLuaLSDir as ct, GITHUB_COMMITS_API as d, resolveWorkspaceConfig as dn, getIsoWeek as dt, buildWorkspaceConfig as en, DOWNLOAD_TIMEOUT_MS as et, RAW_ANNOTATIONS_URL as f, stripJsonComments as fn, getLuaLSMetadataPath as ft, getRawAnnotationsUrl as g, CacheError as gn, writeLuaLSMetadata as gt, fetchRawAnnotationsContent as h, AnnotationsError as hn, readLuaLSMetadata as ht, runCLI as i, getPackageRoot as in, limitDownloadStream as it, formatProblemSummary as j, parseLogLevel as jn, getPlatformInfo as jt, formatGitHubAnnotations as k, isValidLogLevel as kn, rethrowLuaLSPermissionError as kt, DOCGEN_BRANCH as l, parseJsonc as ln, getBaseLuaLSCacheDir as lt, fetchLatestCommitId as m, writeTempConfig as mn, listCachedLuaLSVersions as mt, createProgram as n, getDefaultTemplatePath as nn, computeFileSha256 as nt, getCacheStatus as o, loadConfigFile as on, LUALS_METADATA_FILENAME as ot, downloadAndCacheAnnotations as p, stripTrailingSlashes as pn, listCachedLuaLSVersionDirs as pt, filterReportByTargetPaths as q, formatTransferSummary as qt, isDirectExecution as r, getDefinitionsDir as rn, downloadAndExtractLuaLS as rt, copyAnnotations as s, loadUserConfig as sn, cleanupOldCachedLuaLSVersions as st, collectIgnorePatterns as t, getDefaultAnnotationsPath as tn, MAX_ARCHIVE_SIZE_BYTES as tt, DOCGEN_REPO as u, resolveRealmMappings as un, getCacheDir as ut, MAX_ANNOTATIONS_SIZE_BYTES as v, LuaLSError as vn, MAX_DECOMPRESSED_SIZE_BYTES as vt, getCachedAnnotationsFilePath as w, fileUriToPath as wn, isBinaryRunnable as wt, MIN_ANNOTATIONS_SIZE_BYTES as x, formatBytes as xn, escapePowerShellSingleQuote as xt, MAX_COMMIT_JSON_SIZE_BYTES as y, NanosLintError as yn, MIN_DOWNLOADED_BINARY_SIZE_BYTES as yt, runRealmAwareCheck as z, isAllowedDownloadUrl as zt };
11733
11770
 
11734
- //# sourceMappingURL=cli-I16SeKRK.js.map
11771
+ //# sourceMappingURL=cli-CsIAHyRZ.js.map