js-dev-tool 1.2.10 → 1.2.12
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 +286 -120
- package/extras/cc-map.d.ts +141 -0
- package/extras/cc-map.js +140 -0
- package/extras/json-minify.d.ts +16 -0
- package/extras/json-minify.js +266 -0
- package/extras/jsonl.d.ts +8 -1
- package/extras/jsonl.js +5 -3
- package/extras/progress-light.d.ts +29 -0
- package/extras/progress-light.js +207 -0
- package/lib/unzip.min.js +3 -1
- package/lib/zip.min.js +1 -0
- package/package.json +3 -1
- package/progress/spinners.d.ts +1 -1
- package/tool-lib/rws.js +2 -3
- package/tools.js +7 -7
- package/tsconfig.json +5 -0
package/README.md
CHANGED
|
@@ -1,164 +1,330 @@
|
|
|
1
1
|
# js-dev-tool
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`js-dev-tool` is a mixed package of `jstool` CLI commands and small Node.js helpers for JavaScript / TypeScript project maintenance.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The published modules are CommonJS. The examples below use `require(...)` so the runtime behavior matches the package as published.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Install
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
```bash
|
|
10
|
+
npm i js-dev-tool
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## CLI Usage
|
|
14
|
+
|
|
15
|
+
`jstool` is the package binary and points to `tools.js`.
|
|
10
16
|
|
|
11
17
|
```bash
|
|
12
|
-
|
|
18
|
+
jstool -cmd <command_name> [options]
|
|
13
19
|
node tools.js -cmd <command_name> [options]
|
|
20
|
+
node tools.js -help <command_name>
|
|
21
|
+
```
|
|
14
22
|
|
|
15
|
-
|
|
16
|
-
|
|
23
|
+
## Published Package Layout
|
|
24
|
+
|
|
25
|
+
This section reflects the current `package.json#exports` and `package.json#files`.
|
|
26
|
+
|
|
27
|
+
### Stable Entry Points (`exports`)
|
|
28
|
+
|
|
29
|
+
| Path | Purpose |
|
|
30
|
+
| --- | --- |
|
|
31
|
+
| `js-dev-tool` | Root namespace object with `{ progress, common, utils }` |
|
|
32
|
+
| `js-dev-tool/utils` | File, JSON, CLI, TSV/CSV, and small utility helpers |
|
|
33
|
+
| `js-dev-tool/common` | File-system and terminal rendering primitives |
|
|
34
|
+
| `js-dev-tool/progress` | Progress renderer, spinner helpers, webpack / browserify progress hooks |
|
|
35
|
+
| `js-dev-tool/progress/progress-extras` | Environment and webpack-version helpers |
|
|
36
|
+
| `js-dev-tool/extras/algorithms` | Binary-search helper |
|
|
37
|
+
| `js-dev-tool/extras/cc-map` | Character-code map |
|
|
38
|
+
| `js-dev-tool/extras/jsonl` | JSONL readers, JSONL-to-array/map helpers, and `jsonMinify` |
|
|
39
|
+
| `js-dev-tool/extras/json-minify` | `jsonMinify` |
|
|
40
|
+
| `js-dev-tool/extras/progress-light` | Small fixed-frame spinner |
|
|
41
|
+
| `js-dev-tool/extras/tiny-progress` | Random-frame spinner wrapper |
|
|
42
|
+
| `js-dev-tool/basic-types` | Types-only reference entry |
|
|
43
|
+
|
|
44
|
+
Notes:
|
|
45
|
+
|
|
46
|
+
- `js-dev-tool/extras/list-deps-of` is bundled and works at runtime, but it does not ship a `.d.ts`. If you want types, use `listDependenciesOf` from `js-dev-tool/utils`.
|
|
47
|
+
- `package.json` exposes `./progress/*`, but the currently documented typed JS subpath is `js-dev-tool/progress/progress-extras`. Other bundled files under `progress/` should be treated as internal support assets unless you have verified the exact runtime file.
|
|
48
|
+
|
|
49
|
+
### Additional Bundled Files (`files`)
|
|
50
|
+
|
|
51
|
+
The publish list is broader than the stable import surface above.
|
|
52
|
+
|
|
53
|
+
- Root files: `index.js`, `index.d.ts`, `utils.js`, `utils.d.ts`, `tools.js`, `tools.d.ts`, `basic-types.d.ts`, `tsconfig.json`
|
|
54
|
+
- Bundled directories: `common/`, `extras/`, `lib/`, `progress/`, `scripts/`, `tool-lib/`
|
|
55
|
+
|
|
56
|
+
## Root Namespace
|
|
57
|
+
|
|
58
|
+
```js
|
|
59
|
+
const { utils, common, progress } = require("js-dev-tool");
|
|
17
60
|
```
|
|
18
61
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
62
|
+
For clearer dependency boundaries, importing a direct subpath is usually better than pulling from the root namespace.
|
|
63
|
+
|
|
64
|
+
## `utils`
|
|
65
|
+
|
|
66
|
+
`js-dev-tool/utils` is the main grab-bag module. A few useful exports:
|
|
67
|
+
|
|
68
|
+
- `extractVersion(versionString?)`
|
|
69
|
+
- `removeJsonComments(source)`
|
|
70
|
+
- `readText(path)` / `writeText(content, path)`
|
|
71
|
+
- `readJson(path)`
|
|
72
|
+
- `copyText(content, message?)`
|
|
73
|
+
- `indexByCol(tsvSource, options)` and `parseDelimitedToIndex`
|
|
74
|
+
- `listDependenciesOf(packageName)` for Yarn v1 lockfiles
|
|
75
|
+
|
|
76
|
+
Example:
|
|
77
|
+
|
|
78
|
+
```js
|
|
79
|
+
const { indexByCol, listDependenciesOf } = require("js-dev-tool/utils");
|
|
80
|
+
|
|
81
|
+
const map = indexByCol("id\tname\n1\talpha\n2\tbeta\n", {
|
|
82
|
+
mapKeyCol: 0,
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
const deps = listDependenciesOf("webpack");
|
|
86
|
+
console.log(map["1"], deps.slice(0, 5));
|
|
22
87
|
```
|
|
23
88
|
|
|
24
|
-
##
|
|
89
|
+
## `common`
|
|
25
90
|
|
|
26
|
-
|
|
27
|
-
> You probably don’t need this — but if you do, it’s handy.
|
|
91
|
+
`js-dev-tool/common` contains the low-level pieces used by the progress helpers.
|
|
28
92
|
|
|
29
|
-
|
|
30
|
-
|
|
93
|
+
- `checkParentDirectory(dest)`
|
|
94
|
+
- `createLogStreamAndResolvePath(logPath)`
|
|
95
|
+
- `renderLine(msg?, row?)`
|
|
96
|
+
- `cursor(enabled, output?)`
|
|
97
|
+
|
|
98
|
+
## `progress`
|
|
99
|
+
|
|
100
|
+
`js-dev-tool/progress` is the main progress API.
|
|
101
|
+
|
|
102
|
+
- `createProgress(timeSpanMS, frames)`
|
|
103
|
+
- `createProgressSync(frames, formatOpt?)`
|
|
104
|
+
- `createProgressObject(frames, formatOpt, messageEmitter)`
|
|
105
|
+
- `createWebpackProgressPluginHandler(logFilePath?, disableRenderLine?)`
|
|
106
|
+
- `createBrowserifyFileEventLogger(logFilePath)`
|
|
107
|
+
|
|
108
|
+
`js-dev-tool/progress/progress-extras` adds:
|
|
109
|
+
|
|
110
|
+
- `checkENV()`
|
|
111
|
+
- `wppHandlerV4`
|
|
112
|
+
- `wppHandlerV5`
|
|
113
|
+
- `isWebpackV5later()`
|
|
114
|
+
|
|
115
|
+
## Extras Modules
|
|
116
|
+
|
|
117
|
+
The `extras/` directory is where the smaller standalone modules live. Some are typed and ready to document as public helpers; some are runtime-only and better treated as advanced or legacy entry points.
|
|
118
|
+
|
|
119
|
+
### `js-dev-tool/extras/algorithms`
|
|
120
|
+
|
|
121
|
+
Exports:
|
|
122
|
+
|
|
123
|
+
- `bnSearch(src, value, comparator)`
|
|
124
|
+
|
|
125
|
+
Use this when you already have a sorted array and want a simple binary search helper.
|
|
126
|
+
|
|
127
|
+
```js
|
|
128
|
+
const { bnSearch } = require("js-dev-tool/extras/algorithms");
|
|
129
|
+
|
|
130
|
+
const values = [1, 4, 7, 9];
|
|
131
|
+
const index = bnSearch(values, 7, (left, right) => left - right);
|
|
132
|
+
|
|
133
|
+
console.log(index); // 2
|
|
31
134
|
```
|
|
32
135
|
|
|
33
|
-
|
|
136
|
+
### `js-dev-tool/extras/cc-map`
|
|
34
137
|
|
|
35
|
-
|
|
138
|
+
Exports a character-code map object. It is most useful when you want named constants for ASCII / control-character comparisons.
|
|
36
139
|
|
|
37
|
-
|
|
38
|
-
|
|
140
|
+
```js
|
|
141
|
+
const CC_MAP = require("js-dev-tool/extras/cc-map");
|
|
39
142
|
|
|
40
|
-
|
|
143
|
+
console.log(CC_MAP.LF); // 10
|
|
144
|
+
console.log(CC_MAP.DOUBLE_QUOTE); // 34
|
|
145
|
+
```
|
|
41
146
|
|
|
42
|
-
|
|
147
|
+
### `js-dev-tool/extras/jsonl`
|
|
148
|
+
|
|
149
|
+
Exports:
|
|
150
|
+
|
|
151
|
+
- `resolveJsonlPath(fileName, options?)`
|
|
152
|
+
- `readJsonlLines(fileName, onLine, options?)`
|
|
153
|
+
- `readJsonl(fileName, onRow, options?)`
|
|
154
|
+
- `readJsonlArray(fileName, options?)`
|
|
155
|
+
- `readJsonlMapByKey(fileName, options?)`
|
|
156
|
+
- `fastGetIntFieldCheap(line, key)`
|
|
157
|
+
- `jsonMinify(source)`
|
|
158
|
+
|
|
159
|
+
This is the richest `extras` entry and the main one worth documenting. It covers three related jobs:
|
|
160
|
+
|
|
161
|
+
- streaming JSONL line reads
|
|
162
|
+
- JSON parse + row transformation
|
|
163
|
+
- whitespace minification for JSON and JSONL
|
|
164
|
+
|
|
165
|
+
Key behaviors:
|
|
166
|
+
|
|
167
|
+
- `readJsonlLines` splits by `"\n"` and trims a trailing `"\r"` from each physical line
|
|
168
|
+
- empty lines are skipped by default
|
|
169
|
+
- `readJsonl` reports parse failures through `onParseError` when provided, otherwise it logs to `stderr`
|
|
170
|
+
- `readJsonlMapByKey` defaults to `"_key"` and lets later rows overwrite earlier rows
|
|
171
|
+
- `fastGetIntFieldCheap` is intentionally narrow: it is meant for top-level integer fields on hot paths
|
|
172
|
+
- `jsonMinify` accepts either a single JSON value or multiple top-level JSON values and returns minified JSONL in the multi-value case
|
|
173
|
+
|
|
174
|
+
Example:
|
|
175
|
+
|
|
176
|
+
```js
|
|
177
|
+
const {
|
|
178
|
+
readJsonlArray,
|
|
179
|
+
readJsonlMapByKey,
|
|
180
|
+
fastGetIntFieldCheap,
|
|
181
|
+
jsonMinify,
|
|
182
|
+
} = require("js-dev-tool/extras/jsonl");
|
|
183
|
+
|
|
184
|
+
async function main() {
|
|
185
|
+
const rows = await readJsonlArray("logs/app.jsonl", {
|
|
186
|
+
filter: (row) => row.level !== "debug",
|
|
187
|
+
map: (row) => ({
|
|
188
|
+
id: row.id,
|
|
189
|
+
level: row.level,
|
|
190
|
+
}),
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
const byId = await readJsonlMapByKey("logs/app.jsonl", {
|
|
194
|
+
keyField: "id",
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
console.log(rows.length, Object.keys(byId).length);
|
|
198
|
+
console.log(fastGetIntFieldCheap("{\"count\":42}", "count"));
|
|
199
|
+
console.log(jsonMinify("{ \"a\": 1 }\n{ \"a\": 2 }"));
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
main().catch(console.error);
|
|
203
|
+
```
|
|
43
204
|
|
|
44
|
-
|
|
205
|
+
### `js-dev-tool/extras/progress-light`
|
|
45
206
|
|
|
46
|
-
|
|
47
|
-
Records the size of webpack bundles or other files. The name stands for (r)ecord(W)ebpack(S)ize.
|
|
48
|
-
* **Usage:** `jstool -cmd rws -webpack lib/webpack.js -dest "./dev-extras/webpack-size.json"`
|
|
207
|
+
Exports:
|
|
49
208
|
|
|
50
|
-
|
|
209
|
+
- `create(fps?, messageEmitter?)`
|
|
51
210
|
|
|
52
|
-
|
|
53
|
-
Converts JavaScript files to browser-compatible modules. The name stands for (C)onvert (J)S to (B)rowser (M)odule.
|
|
54
|
-
* **Usage:** `jstool -cmd cjbm -basePath <source_dir> -targets "['file1.js', 'file2.js']"`
|
|
211
|
+
`progress-light` is the simpler spinner. It uses a fixed dot-style frame set and returns a progress object with:
|
|
55
212
|
|
|
56
|
-
|
|
213
|
+
- `run()`
|
|
214
|
+
- `stop()`
|
|
215
|
+
- `renderSync()`
|
|
216
|
+
- `setFPS(fps)`
|
|
217
|
+
- `updateOptions(newFrames?, newOpt?)`
|
|
218
|
+
- `deadline()`
|
|
219
|
+
- `newLine()`
|
|
220
|
+
- `isRunning()`
|
|
57
221
|
|
|
58
|
-
|
|
59
|
-
Toggles "comment tricks" in the code, useful for conditional code execution during development.
|
|
60
|
-
* **Usage:** `jstool -cmd cmtTrick -basePath <source_dir> -targets "['file1.js', 'file2.js']"`
|
|
222
|
+
Example:
|
|
61
223
|
|
|
62
|
-
|
|
224
|
+
```js
|
|
225
|
+
const { create } = require("js-dev-tool/extras/progress-light");
|
|
63
226
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
* **Usage:** `jstool -cmd replace [-after <replacement>] -regex "<regex>" [-targets "<path1>,<path2>" | <file1> <file2> ...]`
|
|
67
|
-
* **Note:** It's often better to pass target files as direct arguments instead of using the `-targets` option.
|
|
227
|
+
const progress = create(12, () => "building...");
|
|
228
|
+
progress.run();
|
|
68
229
|
|
|
69
|
-
|
|
230
|
+
setTimeout(() => {
|
|
231
|
+
progress.deadline();
|
|
232
|
+
progress.stop();
|
|
233
|
+
progress.newLine();
|
|
234
|
+
}, 800);
|
|
235
|
+
```
|
|
70
236
|
|
|
71
|
-
### `
|
|
72
|
-
Bumps the version number in `package.json` and optionally in other files.
|
|
73
|
-
* **Usage:** `jstool -cmd version [-major | -minor] [-pkgJsons "./package.json,../other/package.json"] [-extras "file.html"]`
|
|
74
|
-
* **Note:** Bumps the patch version by default. Use `-major` or `-minor` to bump those instead.
|
|
237
|
+
### `js-dev-tool/extras/tiny-progress`
|
|
75
238
|
|
|
76
|
-
|
|
239
|
+
Exports:
|
|
77
240
|
|
|
78
|
-
|
|
79
|
-
Minifies JavaScript files using Terser.
|
|
80
|
-
* **Usage:** `jstool -cmd minify -basePath <source_dir> [-test "<regex>"] [-suffix ".min"]`
|
|
81
|
-
* **Note:** `basePath` can be a comma-separated list. The default suffix is `.mini`.
|
|
241
|
+
- `create(fps?, messageEmitter?)`
|
|
82
242
|
|
|
83
|
-
|
|
243
|
+
`tiny-progress` is similar to `progress-light`, but it delegates to `js-dev-tool/progress` and uses a random spinner frame set from the bundled progress resources.
|
|
84
244
|
|
|
85
|
-
|
|
86
|
-
Removes C-style comments from files.
|
|
87
|
-
* **Usage:** `jstool -cmd rmc -basePath "./dist/cjs,./dist/other" -test "/\\.(js|d\\.ts)$/"`
|
|
88
|
-
* **Note:** Use the `-rmc4ts` flag for special handling of TypeScript comments (e.g., `/// <reference>`).
|
|
245
|
+
Use this when you want a little more visual variety and do not care about choosing the exact frame list yourself.
|
|
89
246
|
|
|
90
|
-
|
|
247
|
+
```js
|
|
248
|
+
const { create } = require("js-dev-tool/extras/tiny-progress");
|
|
91
249
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
* **Usage:** `jstool -cmd zip [-comment "the comment"] file1.js file2.js ...`
|
|
250
|
+
const progress = create(20, () => "waiting for tasks...");
|
|
251
|
+
progress.run();
|
|
95
252
|
|
|
96
|
-
|
|
253
|
+
setTimeout(() => {
|
|
254
|
+
progress.stop();
|
|
255
|
+
progress.newLine();
|
|
256
|
+
}, 800);
|
|
257
|
+
```
|
|
97
258
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
cmtTrick help: Do comment trick toggle
|
|
122
|
-
It recognizes three markers: `ctt | comment-toggle-trick | https://coderwall`
|
|
123
|
-
jstool -cmd cmtTrick[:clean] (-base <source dir> | -bases "<source dir>,<source dir>,...") [-test re/\\.js$/]
|
|
124
|
-
note:
|
|
125
|
-
:clean - remove comment token etc leaving the currently enabled code
|
|
126
|
-
base (or root) - scan single source folder
|
|
127
|
-
bases - must be array type arg, "['<path>', '<path>',...]" or "<path>,<path>,..."
|
|
128
|
-
test - terget extension, default is /\\.js$/
|
|
129
|
-
|
|
130
|
-
replace help: jstool -cmd replace [-after <replacement>] -regex "/^\s+<!--[\s\S]+?-->(?:\r?\n)?/gm" [-targets "<path>,<path>,..." | <args: file, file file...>]
|
|
131
|
-
note:
|
|
132
|
-
targets - must be array type arg, "['<path>', '<path>',...]" or "<path>,<path>,..."
|
|
133
|
-
note: targets - can use args parameter instead
|
|
134
|
-
It is better to use the <args: file, file file...>
|
|
135
|
-
e.g - jstool -cmd replace -after ".." -regex "re/(?<=reference path=")(\.)(?=\/index.d.ts")/" build/**/*.js
|
|
136
|
-
^^^^^^^^^^^^^
|
|
137
|
-
|
|
138
|
-
version help: jstool -cmd version [-major | -minor] [-pkgJsons "./package.json,../package.json"] [-extras "test/web/index.html"]
|
|
139
|
-
bump top level package.json version(can specify "package.json" paths by `pkgJsons` option if need), specify patch version is unnecessary.
|
|
140
|
-
note:
|
|
141
|
-
extras - can be "<path>,<path>,..." (array type arg)
|
|
142
|
-
|
|
143
|
-
minify help: jstool -cmd minify -basePath extra-tests/web/mini-semaphore [-test "re/\.js$/"] [-suffix ".mini"]
|
|
144
|
-
note:
|
|
145
|
-
basePath - can be "<path>,<path>,..." (array type arg)
|
|
146
|
-
test - can be omit, default is `/\.js$/`
|
|
147
|
-
suffix - can be omit, default is ".mini"
|
|
148
|
-
|
|
149
|
-
rmc help: $ jstool -cmd rmc [-rmc4ts[:keepBangLine]] -basePath "./dist/cjs,./dist/cjs/gulp" -test "/\.(js|d\.ts)$/"
|
|
150
|
-
note: basePath - can be "<path>,<path>,..." (array type arg)
|
|
151
|
-
test - can be omit, defulat `/.js$/`
|
|
152
|
-
rmc4ts- for typescript source.
|
|
153
|
-
keep comment that start with "/*" when "*/" end mark appears in same line.
|
|
154
|
-
if start with "/*-" remove it
|
|
155
|
-
rmc4ts=keepBangLine (2025/12/24)
|
|
156
|
-
- In addition to the "rmc4ts" processing, it also preserves line comments that start with "//!".
|
|
259
|
+
### Runtime-Only Extras
|
|
260
|
+
|
|
261
|
+
These modules are currently bundled, but they are not typed as standalone subpaths.
|
|
262
|
+
|
|
263
|
+
#### `js-dev-tool/extras/json-minify`
|
|
264
|
+
|
|
265
|
+
Exports:
|
|
266
|
+
|
|
267
|
+
- `jsonMinify(source)`
|
|
268
|
+
|
|
269
|
+
This is the direct runtime entry for the JSON / JSONL whitespace remover. Prefer `js-dev-tool/extras/jsonl` if you want the same function with TypeScript support.
|
|
270
|
+
|
|
271
|
+
```js
|
|
272
|
+
const { jsonMinify } = require("js-dev-tool/extras/json-minify");
|
|
273
|
+
|
|
274
|
+
console.log(jsonMinify("{ \"name\": \"alpha\" }"));
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
#### `js-dev-tool/extras/list-deps-of`
|
|
278
|
+
|
|
279
|
+
Exports:
|
|
280
|
+
|
|
281
|
+
- `listDependenciesOf(packageName)`
|
|
157
282
|
|
|
283
|
+
This helper reads `yarn.lock` from `process.cwd()` and collects transitive dependencies for the named package.
|
|
284
|
+
|
|
285
|
+
Constraints:
|
|
286
|
+
|
|
287
|
+
- Yarn v1 lockfile only
|
|
288
|
+
- current working directory must contain the target `yarn.lock`
|
|
289
|
+
- if you want types, import `listDependenciesOf` from `js-dev-tool/utils` instead
|
|
290
|
+
|
|
291
|
+
```js
|
|
292
|
+
const { listDependenciesOf } = require("js-dev-tool/utils");
|
|
293
|
+
|
|
294
|
+
console.log(listDependenciesOf("typescript"));
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
## Basic Types
|
|
298
|
+
|
|
299
|
+
`js-dev-tool/basic-types` is a types-only entry point.
|
|
300
|
+
|
|
301
|
+
```ts
|
|
302
|
+
/// <reference types="js-dev-tool/basic-types"/>
|
|
158
303
|
```
|
|
159
304
|
|
|
160
|
-
|
|
305
|
+
It is a small bag of utility types kept mainly for compatibility with older code.
|
|
306
|
+
|
|
307
|
+
## Commands
|
|
308
|
+
|
|
309
|
+
Available `jstool` commands:
|
|
310
|
+
|
|
311
|
+
- `rws`: record webpack or other bundle sizes
|
|
312
|
+
- `cjbm`: convert JavaScript files to browser-compatible modules
|
|
313
|
+
- `cmtTrick`: toggle comment-trick markers in source
|
|
314
|
+
- `replace`: regex-based multi-file replacement
|
|
315
|
+
- `version`: bump `package.json` versions and optional extra files
|
|
316
|
+
- `minify`: minify JavaScript files with Terser
|
|
317
|
+
- `rmc`: remove C-style comments
|
|
318
|
+
- `zip`: create zip archives with an optional comment
|
|
319
|
+
|
|
320
|
+
Use `jstool -help <command_name>` for the full option list of each command.
|
|
321
|
+
|
|
322
|
+
## Related Libraries
|
|
323
|
+
|
|
324
|
+
### [`literate-regex`](https://www.npmjs.com/package/literate-regex)
|
|
325
|
+
|
|
326
|
+
`literate-regex` was originally developed as part of this project, but it is now a separate package.
|
|
161
327
|
|
|
162
|
-
|
|
163
|
-
See [LICENSE](./LICENSE) for details.
|
|
328
|
+
## License
|
|
164
329
|
|
|
330
|
+
Released under the MIT License. See [LICENSE](./LICENSE) for details.
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
3
|
+
// Copyright (C) 2026 jeffy-g <hirotom1107@gmail.com>
|
|
4
|
+
// Released under the MIT license
|
|
5
|
+
// https://opensource.org/licenses/mit-license.php
|
|
6
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* @file extras/cc-map.d.ts
|
|
10
|
+
*/
|
|
11
|
+
export declare type TCC_MAP = {
|
|
12
|
+
/** `\u0000` */ NULL: 0;
|
|
13
|
+
/** `\u0001` */ SOH: 1;
|
|
14
|
+
/** `\u0002` */ STX: 2;
|
|
15
|
+
/** `\u0003` */ ETX: 3;
|
|
16
|
+
/** `\u0004` */ EOT: 4;
|
|
17
|
+
/** `\u0005` */ ENQ: 5;
|
|
18
|
+
/** `\u0006` */ ACK: 6;
|
|
19
|
+
/** `\u0007` */ BEL: 7;
|
|
20
|
+
/** `\u0008` */ BS: 8;
|
|
21
|
+
/** `\t` */ TAB: 9;
|
|
22
|
+
/** `\n` */ LF: 10;
|
|
23
|
+
/** `\u000b` */ VT: 11;
|
|
24
|
+
/** `\f` */ FF: 12;
|
|
25
|
+
/** `\r` */ CR: 13;
|
|
26
|
+
/** `\u000e` */ SO: 14;
|
|
27
|
+
/** `\u000f` */ SI: 15;
|
|
28
|
+
/** `\u0010` */ DLE: 16;
|
|
29
|
+
/** `\u0011` */ DC1: 17;
|
|
30
|
+
/** `\u0012` */ DC2: 18;
|
|
31
|
+
/** `\u0013` */ DC3: 19;
|
|
32
|
+
/** `\u0014` */ DC4: 20;
|
|
33
|
+
/** `\u0015` */ NAK: 21;
|
|
34
|
+
/** `\u0016` */ SYN: 22;
|
|
35
|
+
/** `\u0017` */ ETB: 23;
|
|
36
|
+
/** `\u0018` */ CAN: 24;
|
|
37
|
+
/** `\u0019` */ EM: 25;
|
|
38
|
+
/** `\u001a` */ SUB: 26;
|
|
39
|
+
/** `\u001b` */ ESC: 27;
|
|
40
|
+
/** `\u001c` */ FS: 28;
|
|
41
|
+
/** `\u001d` */ GS: 29;
|
|
42
|
+
/** `\u001e` */ RS: 30;
|
|
43
|
+
/** `\u001f` */ US: 31;
|
|
44
|
+
/** ` ` */ SPACE: 32;
|
|
45
|
+
/** `!` */ EXCLAMATION: 33;
|
|
46
|
+
/** `"` */ DOUBLE_QUOTE: 34;
|
|
47
|
+
/** `#` */ HASH: 35;
|
|
48
|
+
/** `$` */ DOLLAR: 36;
|
|
49
|
+
/** `%` */ PERCENT: 37;
|
|
50
|
+
/** `&` */ AMPERSAND: 38;
|
|
51
|
+
/** `'` */ SINGLE_QUOTE: 39;
|
|
52
|
+
/** `(` */ LEFT_PAREN: 40;
|
|
53
|
+
/** `)` */ RIGHT_PAREN: 41;
|
|
54
|
+
/** `*` */ ASTERISK: 42;
|
|
55
|
+
/** `+` */ PLUS: 43;
|
|
56
|
+
/** `,` */ COMMA: 44;
|
|
57
|
+
/** `-` */ MINUS: 45;
|
|
58
|
+
/** `.` */ PERIOD: 46;
|
|
59
|
+
/** `/` */ SLASH: 47;
|
|
60
|
+
/** `0` */ ZERO: 48;
|
|
61
|
+
/** `1` */ ONE: 49;
|
|
62
|
+
/** `2` */ TWO: 50;
|
|
63
|
+
/** `3` */ THREE: 51;
|
|
64
|
+
/** `4` */ FOUR: 52;
|
|
65
|
+
/** `5` */ FIVE: 53;
|
|
66
|
+
/** `6` */ SIX: 54;
|
|
67
|
+
/** `7` */ SEVEN: 55;
|
|
68
|
+
/** `8` */ EIGHT: 56;
|
|
69
|
+
/** `9` */ NINE: 57;
|
|
70
|
+
/** `:` */ COLON: 58;
|
|
71
|
+
/** `;` */ SEMICOLON: 59;
|
|
72
|
+
/** `<` */ LESS_THAN: 60;
|
|
73
|
+
/** `=` */ EQUAL: 61;
|
|
74
|
+
/** `>` */ GREATER_THAN: 62;
|
|
75
|
+
/** `?` */ QUESTION: 63;
|
|
76
|
+
/** `@` */ AT: 64;
|
|
77
|
+
/** `A` */ A: 65;
|
|
78
|
+
/** `B` */ B: 66;
|
|
79
|
+
/** `C` */ C: 67;
|
|
80
|
+
/** `D` */ D: 68;
|
|
81
|
+
/** `E` */ E: 69;
|
|
82
|
+
/** `F` */ F: 70;
|
|
83
|
+
/** `G` */ G: 71;
|
|
84
|
+
/** `H` */ H: 72;
|
|
85
|
+
/** `I` */ I: 73;
|
|
86
|
+
/** `J` */ J: 74;
|
|
87
|
+
/** `K` */ K: 75;
|
|
88
|
+
/** `L` */ L: 76;
|
|
89
|
+
/** `M` */ M: 77;
|
|
90
|
+
/** `N` */ N: 78;
|
|
91
|
+
/** `O` */ O: 79;
|
|
92
|
+
/** `P` */ P: 80;
|
|
93
|
+
/** `Q` */ Q: 81;
|
|
94
|
+
/** `R` */ R: 82;
|
|
95
|
+
/** `S` */ S: 83;
|
|
96
|
+
/** `T` */ T: 84;
|
|
97
|
+
/** `U` */ U: 85;
|
|
98
|
+
/** `V` */ V: 86;
|
|
99
|
+
/** `W` */ W: 87;
|
|
100
|
+
/** `X` */ X: 88;
|
|
101
|
+
/** `Y` */ Y: 89;
|
|
102
|
+
/** `Z` */ Z: 90;
|
|
103
|
+
/** `[` */ LEFT_BRACKET: 91;
|
|
104
|
+
/** `\` */ BACKSLASH: 92;
|
|
105
|
+
/** `]` */ RIGHT_BRACKET: 93;
|
|
106
|
+
/** `^` */ CARET: 94;
|
|
107
|
+
/** `_` */ UNDERSCORE: 95;
|
|
108
|
+
/** __`__ */ GRAVE: 96;
|
|
109
|
+
/** `a` */ a: 97;
|
|
110
|
+
/** `b` */ b: 98;
|
|
111
|
+
/** `c` */ c: 99;
|
|
112
|
+
/** `d` */ d: 100;
|
|
113
|
+
/** `e` */ e: 101;
|
|
114
|
+
/** `f` */ f: 102;
|
|
115
|
+
/** `g` */ g: 103;
|
|
116
|
+
/** `h` */ h: 104;
|
|
117
|
+
/** `i` */ i: 105;
|
|
118
|
+
/** `j` */ j: 106;
|
|
119
|
+
/** `k` */ k: 107;
|
|
120
|
+
/** `l` */ l: 108;
|
|
121
|
+
/** `m` */ m: 109;
|
|
122
|
+
/** `n` */ n: 110;
|
|
123
|
+
/** `o` */ o: 111;
|
|
124
|
+
/** `p` */ p: 112;
|
|
125
|
+
/** `q` */ q: 113;
|
|
126
|
+
/** `r` */ r: 114;
|
|
127
|
+
/** `s` */ s: 115;
|
|
128
|
+
/** `t` */ t: 116;
|
|
129
|
+
/** `u` */ u: 117;
|
|
130
|
+
/** `v` */ v: 118;
|
|
131
|
+
/** `w` */ w: 119;
|
|
132
|
+
/** `x` */ x: 120;
|
|
133
|
+
/** `y` */ y: 121;
|
|
134
|
+
/** `z` */ z: 122;
|
|
135
|
+
/** `{` */ LEFT_BRACE: 123;
|
|
136
|
+
/** `|` */ PIPE: 124;
|
|
137
|
+
/** `}` */ RIGHT_BRACE: 125;
|
|
138
|
+
/** `~` */ TILDE: 126;
|
|
139
|
+
};
|
|
140
|
+
declare const CC_MAP: TCC_MAP;
|
|
141
|
+
export = CC_MAP;
|