nanos-lint 2.6.1 → 2.7.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
@@ -4,7 +4,7 @@
4
4
  [![npm version](https://img.shields.io/npm/v/nanos-lint.svg)](https://www.npmjs.com/package/nanos-lint)
5
5
  [![Node.js Version](https://img.shields.io/badge/node-%3E%3D24-brightgreen.svg)](https://nodejs.org/)
6
6
  [![Lua Version](https://img.shields.io/badge/Lua-5.4.9-blue.svg)](https://www.lua.org/manual/5.4/)
7
- [![LuaLS Version](https://img.shields.io/badge/LuaLS-3.19.1-brightgreen.svg)](https://github.com/LuaLS/lua-language-server)
7
+ [![LuaLS Version](https://img.shields.io/badge/LuaLS-latest-brightgreen.svg)](https://github.com/LuaLS/lua-language-server)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
9
9
 
10
10
  A dedicated, fast linter and type-checker for **[nanos world](https://nanos-world.com/)** Lua scripts powered by the **[Lua Language Server (LuaLS)](https://github.com/LuaLS/lua-language-server)**.
@@ -17,7 +17,7 @@ A dedicated, fast linter and type-checker for **[nanos world](https://nanos-worl
17
17
  - **Zero-Install Local CLI**: Run directly via `npx nanos-lint [path]` without installing anything.
18
18
  - **Native GitHub Action**: Use `vugi99/nanos-lint` directly in CI workflows with inline GitHub PR annotations.
19
19
  - **Workspace Config Merging**: Fully respects local `.luarc.json` files, merging your project globals and disabled diagnostics on top of the nanos API.
20
- - **Cross-Platform**: Works on **Windows x64** and **Linux amd64** (plus macOS). Automatically downloads and caches platform LuaLS binaries.
20
+ - **Cross-Platform**: Works on **Windows x64**, **Linux (x64, arm64)**, and **macOS (Apple Silicon arm64, Intel x64)**. Automatically downloads and caches platform LuaLS binaries, defaulting to the latest LuaLS release and falling back to 3.19.1 when offline.
21
21
  - **Modern Node.js Runtime**: Built targeting Node.js (>= 24) with zero runtime dependencies.
22
22
 
23
23
  ---
@@ -103,6 +103,8 @@ jobs:
103
103
  | `quiet` | Suppress progress messages | `false` |
104
104
  | `cache` | Whether to cache the LuaLS binary and annotations across workflow runs | `true` |
105
105
 
106
+ When caching is enabled, the cache key rolls over each ISO week, so a freshly downloaded LuaLS binary is actually persisted under the new week's key; in the meantime the previous week's entry is restored from the cache.
107
+
106
108
  When running inside GitHub Actions, `nanos-lint` automatically outputs **workflow annotations** (`::error` / `::warning`) that appear inline on PR diffs.
107
109
 
108
110
  ---
@@ -114,22 +116,26 @@ nanos-lint [command] [options] [path]
114
116
 
115
117
  COMMANDS:
116
118
  check [path] Check a workspace or Lua file (default)
117
- init [path] Scaffold a .luarc.json configuration in the workspace (copies definitions to .nanos-lint/)
118
- download-luals [version] Download and cache the LuaLS binary
119
+ init [path] Scaffold a .luarc.json configuration in the workspace (copies definitions to .nanos-lint/; supports --annotations <path>)
120
+ download-luals [version] Download and cache the LuaLS binary (the version can also be passed via --luals-version <ver>)
119
121
  clean-cache, clean Clear the nanos-lint cache directory
120
122
  help, --help, -h Show help message
121
123
  version, --version, -v Show version information
122
124
 
123
125
  OPTIONS:
124
126
  -i, --ignore <pattern> Files or directories to ignore (supports globs, repeatable, comma/newline-separated)
127
+ -l, --log-level <level> Logging level: error, warn, info, debug, silent (default: warn)
128
+ silent suppresses all output, including the final report (only the exit code remains)
129
+ error and warn (the default) suppress progress messages but still print the report
130
+ debug adds diagnostic tracing
125
131
  --checklevel=<level> Minimum diagnostic level: Error, Warning, Information, Hint (default: Warning)
126
132
  --config=<path> Path to custom .luarc.json configuration file
127
- --annotations=<path> Path to custom annotations.lua file
133
+ --annotations=<path> Path to custom annotations.lua file (applies to both check and init)
128
134
  --format=<format> Output format: pretty, json, github (default: pretty)
129
135
  --github Output in GitHub Actions format (shortcut for --format=github)
130
- --luals-version=<ver> Version of LuaLS to use (default: latest)
136
+ --luals-version=<ver> Version of LuaLS to use (default: latest, falling back to 3.19.1 when offline)
131
137
  --no-fail Do not exit with code 1 if diagnostics are found
132
- --quiet Suppress progress output
138
+ --quiet Suppress progress output only (equivalent to --log-level=error; the report is still printed)
133
139
  -f, --force (init command only) Overwrite existing .luarc.json
134
140
  ```
135
141
 
@@ -139,10 +145,15 @@ OPTIONS:
139
145
  | :--- | :--- |
140
146
  | `LUALS_BIN` | Explicit path to a pre-installed `lua-language-server` binary |
141
147
  | `NANOS_ANNOTATIONS_PATH`, `NANOS_ANNOTATIONS` | Explicit path to a custom `annotations.lua` file |
148
+ | `NANOS_LOG_LEVEL` | Default logging level: `error`, `warn`, `info`, `debug`, `silent` (default: `warn`) |
142
149
  | `GITHUB_TOKEN` | GitHub personal access token used for authenticated GitHub API requests (avoids unauthenticated rate limits) |
143
150
  | `NO_COLOR` | Disables ANSI color output when set to any non-empty value |
144
151
  | `FORCE_COLOR` | Forces ANSI color output even in non-TTY environments |
145
152
 
153
+ Only `NANOS_LOG_LEVEL` controls the logging level; a generic `LOG_LEVEL` environment variable is intentionally not read, because CI images commonly set it.
154
+
155
+ `NANOS_LIVE_TESTS` and `NANOS_TEST_CACHE_ROOT` only affect this repository's test suite and are documented under [Test Suite Environment Variables](#test-suite-environment-variables).
156
+
146
157
  ---
147
158
 
148
159
  ## Workspace Configuration (`.luarc.json`)
@@ -178,8 +189,11 @@ Pre-packaged release bundles containing the platform's `lua-language-server` bin
178
189
 
179
190
  - `nanos-lint-<version>-windows-x64.zip`
180
191
  - `nanos-lint-<version>-linux-x64.tar.gz`
192
+ - `nanos-lint-<version>-linux-arm64.tar.gz`
193
+ - `nanos-lint-<version>-macos-arm64.tar.gz` (Apple Silicon)
194
+ - `nanos-lint-<version>-macos-x64.tar.gz` (Intel)
181
195
 
182
- These bundles are fully self-contained and ready for offline CI/CD environments with Node.js installed, eliminating the need to download LuaLS or annotations at runtime. Simply extract the archive and run `./nanos-lint` (Linux) or `nanos-lint.cmd` (Windows).
196
+ These bundles are fully self-contained and ready for offline CI/CD environments with Node.js installed, eliminating the need to download LuaLS or annotations at runtime. Simply extract the archive and run `./nanos-lint` (Linux & macOS) or `nanos-lint.cmd` (Windows).
183
197
 
184
198
  ---
185
199
 
@@ -204,6 +218,23 @@ npm run build
204
218
 
205
219
  # Run Vitest test suite with coverage (unit + live LuaLS integration tests)
206
220
  npm run test:coverage
221
+
222
+ # Offline: skip live LuaLS tests, perform no network access, disable coverage thresholds
223
+ NANOS_LIVE_TESTS=0 npm run test:coverage
224
+ ```
225
+
226
+ ### Test Suite Environment Variables
227
+
228
+ `tests/global-setup.ts` downloads the LuaLS binary and annotations **once per run** into an isolated temporary cache, so the real `~/.cache/nanos-lint` is never touched; the run fails if anything downloads LuaLS a second time.
229
+
230
+ | Variable | Description |
231
+ | :--- | :--- |
232
+ | `NANOS_LIVE_TESTS` | `0` (or `false`/`no`/`off`) skips the live LuaLS/annotations tests, performs no network access, and does not enforce the coverage thresholds. Any other value or unset requires the shared fixtures; if they cannot be resolved the run fails. |
233
+ | `NANOS_TEST_CACHE_ROOT` | Reuses the given directory as the isolated test cache instead of a fresh one, avoiding a re-download on repeat runs. |
234
+
235
+ ```bash
236
+ NANOS_LIVE_TESTS=0 npm run test:coverage # fully offline
237
+ NANOS_TEST_CACHE_ROOT=/tmp/nanos-tests npm run test:coverage # reuse a warm cache
207
238
  ```
208
239
 
209
240
  See [AGENTS.md](AGENTS.md) for development philosophy and quality gate requirements.
package/action.yml CHANGED
@@ -51,6 +51,13 @@ runs:
51
51
  with:
52
52
  node-version: '24'
53
53
 
54
+ # The ISO week refreshes the cache entry (a static key would never be saved
55
+ # again); restore-keys fall back to previous weeks. Cheap: one `date` call.
56
+ - name: Compute cache week
57
+ id: cacheweek
58
+ shell: bash
59
+ run: echo "week=$(date -u +%G-W%V)" >> "$GITHUB_OUTPUT"
60
+
54
61
  - name: Cache LuaLS binary and annotations
55
62
  if: ${{ inputs.cache != 'false' }}
56
63
  uses: actions/cache@v6
@@ -59,10 +66,10 @@ runs:
59
66
  ~/.cache/nanos-lint
60
67
  ~/AppData/Local/nanos-lint
61
68
  ~/Library/Caches/nanos-lint
62
- key: nanos-lint-${{ runner.os }}-${{ inputs.luals-version }}
69
+ key: nanos-lint-${{ runner.os }}-${{ runner.arch }}-${{ inputs.luals-version }}-${{ steps.cacheweek.outputs.week }}
63
70
  restore-keys: |
64
- nanos-lint-${{ runner.os }}-${{ inputs.luals-version }}-
65
- nanos-lint-${{ runner.os }}-
71
+ nanos-lint-${{ runner.os }}-${{ runner.arch }}-${{ inputs.luals-version }}-
72
+ nanos-lint-${{ runner.os }}-${{ runner.arch }}-
66
73
 
67
74
  - name: Run nanos-lint
68
75
  shell: bash
@@ -104,10 +111,12 @@ runs:
104
111
  ARGS+=("--quiet")
105
112
  fi
106
113
 
114
+ # dist/ is gitignored, so `uses: vugi99/nanos-lint@<ref>` consumers always
115
+ # take the npx branch; the first one is for local `uses: ./` checkouts.
107
116
  if [ -f "$ACTION_PATH/dist/cli.js" ]; then
108
117
  node "$ACTION_PATH/dist/cli.js" "${ARGS[@]}"
109
118
  else
110
- npx --yes nanos-lint@^2.6.1 "${ARGS[@]}"
119
+ # Exact version: a range could run a different release than the pinned
120
+ # tag. Bump together with "version" in package.json.
121
+ npx --yes nanos-lint@2.7.0 "${ARGS[@]}"
111
122
  fi
112
-
113
-
@@ -1 +1 @@
1
- {"version":3,"file":"cli-r8LDolDk.d.ts","names":[],"sources":["../node_modules/commander/typings/index.d.ts","../src/cli.ts"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"cli-r8LDolDk.d.ts","names":[],"sources":["../node_modules/commander/typings/index.d.ts","../src/cli.ts"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;KAWK,aAAa,aAAa,oCAC3B,eACC,WAAW;cAEH,uBAAuB;EAClC;EACA;EACA;EACA;;;;;;;EAQA,YAAY,kBAAkB,cAAc;;UAY7B;;;EAGf;;EAEA;;cAGW;EACX;EACA;EACA;EACA;EACA;EACA,YAAY,GAAG,eAAe,UAAU,MAAM;EAC9C;;;;;;EAOA,YAAY,aAAa;;;;EAKzB;;;;EAKA,QAAQ,gBAAgB;;;;EAKxB,UAAU,GAAG,KAAK,eAAe,UAAU,MAAM;;;;EAKjD,QAAQ;;;;EAKR;;;;EAKA;;cAGW;EACX;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY,GAAG,eAAe,UAAU,MAAM;EAC9C;EACA;EACA;EAEA,YAAY,eAAe;;;;EAK3B,QAAQ,gBAAgB;;;;;;;;;;;EAYxB,OAAO;;;;;;;;;;;EAYP,UAAU;;;;;;;;;;;EAYV,QAAQ,cAAc;;;;;;;EAQtB,IAAI;;;;EAKJ,UAAU,GAAG,KAAK,eAAe,UAAU,MAAM;;;;EAKjD,oBAAoB;;;;EAKpB,SAAS;;;;EAKT,QAAQ;;;;EAKR;;;;;EAMA;;;;EAKA,UAAU;;;;;;EAOV;;cAGW;;EAEX;EACA;EACA;EACA;EACA;EAEA;;;;;;;EAQA,eAAe;IACb;IACA;IACA;;;EAIF,eAAe,KAAK;;EAEpB,sBAAsB,KAAK;;EAE3B,WAAW,QAAQ;;EAEnB,kBAAkB,QAAQ;;EAE1B,aAAa,UAAU;;EAEvB,oBAAoB,UAAU;;EAG9B,aAAa,KAAK;;EAElB,mBAAmB,KAAK;;EAGxB,gBAAgB,KAAK,UAAU;;EAE/B,eAAe,KAAK,UAAU;;EAE9B,qBAAqB,KAAK,UAAU;;EAEpC,iBAAiB,KAAK,UAAU;;EAGhC,4BAA4B,KAAK,SAAS,QAAQ;;EAElD,wBAAwB,KAAK,SAAS,QAAQ;;EAE9C,8BAA8B,KAAK,SAAS,QAAQ;;EAEpD,0BAA0B,KAAK,SAAS,QAAQ;;EAGhD,aAAa;;EAGb,WAAW;;EAGX,WAAW;;EAEX,iBAAiB;EAEjB,wBAAwB;EACxB,uBAAuB;EACvB,2BAA2B;EAC3B,yBAAyB;;EAEzB,qBAAqB;EAErB,gBAAgB;EAChB,oBAAoB;EACpB,kBAAkB;;EAGlB,gBAAgB;;EAEhB,oBAAoB;;EAEpB,kBAAkB;;EAGlB,SAAS,KAAK,SAAS,QAAQ;;;;;EAM/B,QAAQ,aAAa;;EAGrB,aAAa;;;;;;;;EASb,WACE,cACA,mBACA,qBACA,QAAQ;;;;EAMV,eAAe,iBAAiB,iBAAiB,QAAQ;;;;EAKzD,WAAW,UAAU,UAAU,QAC7B,eAAe,KACf,cAAc,KACd,WAAW,MAAM,eAChB,YAAY;;EAGf,WAAW,KAAK,SAAS,QAAQ;;KAEvB,oBAAoB,QAAQ;UAEvB;EACf;;UAEe;;EAEf;;UAEe;;EAEf;EACA,SAAS;;UAEM;EACf,UAAU;EACV,UAAU;EACV,aAAa,aAAa,QAAQ;EAElC;EACA;EAEA;EACA;EACA,YAAY;;KAGF;KACA;;KAEA,oBACR;KAGQ,eAAe;cAEd;EACX;EACA;WACS,mBAAmB;WACnB,kBAAkB;WAClB,8BAA8B;EACvC,QAAQ;EAER,YAAY;;;;;;;;;EAUZ,QAAQ,aAAa,gBAAgB;;;;EAIrC;;;;;;;;;;;;;;;;;;;;;EAsBA,QACE,qBACA,OAAO,iBACN;;;;;;;;;;;;;;;;;;;EAmBH,QACE,qBACA,qBACA,OAAO;;;;;;;EAST,cAAc,gBAAgB;;;;;;;;EAS9B,WAAW,KAAK,SAAS,OAAO;;;;;;;EAQhC,eAAe,cAAc,uBAAuB;;;;;;;;;;;;;;;EAgBpD,SAAS,GACP,eACA,qBACA,WAAW,eAAe,UAAU,MAAM,GAC1C,eAAe;EAEjB,SAAS,cAAc,sBAAsB;;;;;;EAO7C,YAAY,KAAK;;;;;;;;;;;;;EAcjB,UAAU;;;;;;;;;;;;EAaV,YAAY,qBAAqB;EACjC,YAAY;;;;EAKZ,eAAe,KAAK;;EAEpB,eAAe,qBAAqB;;EAEpC,eAAe;;;;EAKf,KACE,OAAO,WACP,WACE,aAAa,SACb,eAAe,mBACL;;;;EAMd,aAAa,YAAY,KAAK;;;;EAK9B,MAAM,iBAAiB,eAAe;;;;;EAMtC,cAAc;;;;;EAMd,cAAc,eAAe;;EAE7B,iBAAiB;;;;;;;;;;;;;;;;;EAkBjB,gBAAgB,eAAe;;EAE/B,mBAAmB;;;;;;EAOnB,sBAAsB,eAAe;;;;EAKrC,mBAAmB;;;;EAKnB,yBAAyB;;;;;;;;;;;;;;;;EAiBzB,OAAO,KAAK,eAAe,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAsBlD,OACE,eACA,sBACA;EAEF,OAAO,GACL,eACA,qBACA,WAAW,eAAe,UAAU,MAAM,GAC1C,eAAe;;EAGjB,OACE,eACA,qBACA,QAAQ,QACR;;;;;;;EASF,eACE,eACA,sBACA;EAEF,eAAe,GACb,eACA,qBACA,WAAW,eAAe,UAAU,MAAM,GAC1C,eAAe;;EAGjB,eACE,eACA,qBACA,QAAQ,QACR;;;;;;;EAUF,aAAa,eAAe,uBAAuB;;;;;;EAOnD,UAAU,QAAQ;;;;;;;EAQlB,yBAAyB,UAAU,wBAAwB;EAC3D,yBAAyB,UAAU,cACjC,iCACQ;EACV,yBAAyB;;;;EAKzB,eAAe;;;;EAKf,eAAe,aAAa;;;;EAK5B,yBACE,aACA,gBACA,QAAQ;;;;EAMV,qBAAqB,cAAc;;;;EAKnC,gCAAgC,cAAc;;;;;;;;;;;;;EAc9C,4BAA4B;;;;;;EAO5B,mBAAmB;;;;;;EAOnB,qBAAqB;;;;;;;;;EAUrB,wBAAwB;;;;;;;;;;EAWxB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;EAuBnB,MAAM,0BAA0B,eAAe;;;;;;;;;;;;;;;;;;;;EAqB/C,WACE,0BACA,eAAe,eACd;;;;;;;EAQH;;;;;;;EAQA;;;;;;;;;;;;;EAcA,aAAa,iBAAiB;;;;EAK9B,KAAK,UAAU,iBAAiB;;;;EAKhC,gBAAgB,UAAU,iBAAiB;;;;;;EAQ3C,YAAY;;EAEZ,YAAY,aAAa,iBAAiB;;;;EAI1C;;;;;;EAQA,QAAQ;;;;EAIR;;;;;;;;EASA,MAAM;;;;EAIN;;;;;;;;EASA,QAAQ;;;;EAIR;;;;;;EAOA,MAAM;;;;EAIN;;;;;;EAOA,KAAK;;;;EAIL;;;;;;;;;;;;;;EAeA,iBAAiB;;;;;;;;;;;;;EAcjB,cAAc;;;;EAId;;;;;;EAOA,UAAU;;;;EAIV;;;;;;;;;;;;;EAcA,cAAc;;;;EAId;;;;;;;;;;;;;EAcA,aAAa;;;;EAIb;;;;;;;EAQA,WAAW,UAAU;;EAErB,WAAW,KAAK;;;;EAKhB,gBAAgB,UAAU;;;;;;EAO1B,WAAW,0BAA0B;;;;;EAMrC,cAAc,QAAQ;;;;;;EAOtB,KAAK,UAAU;;EAEf,KAAK,KAAK;;;;;;;EAQV,YAAY,UAAU,qBAAqB;EAC3C,YACE,UAAU,qBACV,OAAO,SAAS;;;;EAMlB,GAAG,wBAAwB,cAAc;;UAG1B;EACf;EACA;;EAEA;;UAEe,iCAAiC;EAChD;;UAGe;EACf;EACA;;;;iBCjjCc,sBAAsB,aAAa;UAqBlC;EACf,eAAe;;iBAGD,cAAc,UAAU,uBAAuB;iBA0MzC,OAAO,kBAAyC;iBAuCtD,kBACd,wBACA"}