@git.zone/tsdocker 1.3.0 โ†’ 1.4.1

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
@@ -1,6 +1,6 @@
1
1
  # @git.zone/tsdocker
2
2
 
3
- > ๐Ÿณ Cross-platform npm module development with Docker โ€” test your packages in clean, reproducible Linux environments every time.
3
+ > ๐Ÿณ The ultimate Docker development toolkit for TypeScript projects โ€” build, test, and ship containerized applications with ease.
4
4
 
5
5
  ## Issue Reporting and Security
6
6
 
@@ -8,313 +8,454 @@ For reporting bugs, issues, or security vulnerabilities, please visit [community
8
8
 
9
9
  ## What is tsdocker?
10
10
 
11
- **tsdocker** provides containerized testing environments for npm packages, ensuring your code works consistently across different systems. It's perfect for:
11
+ **tsdocker** is a comprehensive Docker development and building tool that handles everything from testing npm packages in clean environments to building and pushing multi-architecture Docker images across multiple registries.
12
12
 
13
- - ๐Ÿงช **Testing in clean environments** โ€” Every test run starts fresh, just like CI
14
- - ๐Ÿ”„ **Reproducing CI behavior locally** โ€” No more "works on my machine" surprises
15
- - ๐Ÿง **Cross-platform development** โ€” Develop on macOS/Windows, test on Linux
16
- - ๐Ÿš€ **Quick validation** โ€” Spin up isolated containers for testing without polluting your system
13
+ ### ๐ŸŽฏ Key Capabilities
17
14
 
18
- ## Features
15
+ - ๐Ÿงช **Containerized Testing** โ€” Run your tests in pristine Docker environments
16
+ - ๐Ÿ—๏ธ **Smart Docker Builds** โ€” Automatically discover, sort, and build Dockerfiles by dependency
17
+ - ๐Ÿš€ **Multi-Registry Push** โ€” Ship to Docker Hub, GitLab, GitHub Container Registry, and more
18
+ - ๐Ÿ”ง **Multi-Architecture** โ€” Build for `amd64` and `arm64` with Docker Buildx
19
+ - โšก **Zero Config Start** โ€” Works out of the box, scales with your needs
19
20
 
20
- โœจ **Works Everywhere Docker Does**
21
+ ## Installation
21
22
 
22
- - Docker Toolbox
23
- - Native Docker Desktop
24
- - Docker-in-Docker (DinD)
25
- - Mounted docker.sock scenarios
23
+ ```bash
24
+ # Global installation (recommended for CLI usage)
25
+ npm install -g @git.zone/tsdocker
26
26
 
27
- ๐Ÿ”ง **Flexible Configuration**
27
+ # Or project-local installation
28
+ pnpm install --save-dev @git.zone/tsdocker
29
+ ```
28
30
 
29
- - Custom base images
30
- - Configurable test commands
31
- - Environment variable injection via qenv
32
- - Optional docker.sock mounting for nested container tests
31
+ ## Quick Start
33
32
 
34
- ๐Ÿ“ฆ **TypeScript-First**
33
+ ### ๐Ÿงช Run Tests in Docker
35
34
 
36
- - Full TypeScript support with excellent IntelliSense
37
- - Type-safe configuration
38
- - Modern ESM with async/await patterns throughout
35
+ The simplest use case โ€” run your tests in a clean container:
39
36
 
40
- ## Installation
37
+ ```bash
38
+ tsdocker
39
+ ```
40
+
41
+ This pulls your configured base image, mounts your project, and executes your test command in isolation.
42
+
43
+ ### ๐Ÿ—๏ธ Build Docker Images
44
+
45
+ Got `Dockerfile` files? Build them all with automatic dependency ordering:
41
46
 
42
47
  ```bash
43
- npm install -g @git.zone/tsdocker
44
- # or for project-local installation
45
- pnpm install --save-dev @git.zone/tsdocker
48
+ tsdocker build
46
49
  ```
47
50
 
48
- ## Quick Start
51
+ tsdocker will:
52
+ 1. ๐Ÿ” Discover all `Dockerfile*` files in your project
53
+ 2. ๐Ÿ“Š Analyze `FROM` dependencies between them
54
+ 3. ๐Ÿ”„ Sort them topologically
55
+ 4. ๐Ÿ—๏ธ Build each image in the correct order
56
+
57
+ ### ๐Ÿ“ค Push to Registries
49
58
 
50
- ### 1. Configure Your Project
59
+ Ship your images to one or all configured registries:
51
60
 
52
- Create an `npmextra.json` file in your project root:
61
+ ```bash
62
+ # Push to all configured registries
63
+ tsdocker push
64
+
65
+ # Push to a specific registry
66
+ tsdocker push registry.gitlab.com
67
+ ```
68
+
69
+ ## CLI Commands
70
+
71
+ | Command | Description |
72
+ |---------|-------------|
73
+ | `tsdocker` | Run tests in a fresh Docker container |
74
+ | `tsdocker build` | Build all Dockerfiles with dependency ordering |
75
+ | `tsdocker push [registry]` | Push images to configured registries |
76
+ | `tsdocker pull <registry>` | Pull images from a specific registry |
77
+ | `tsdocker test` | Run container test scripts (test_*.sh) |
78
+ | `tsdocker login` | Authenticate with configured registries |
79
+ | `tsdocker list` | Display discovered Dockerfiles and their dependencies |
80
+ | `tsdocker clean --all` | โš ๏ธ Aggressively clean Docker environment |
81
+ | `tsdocker vscode` | Launch containerized VS Code in browser |
82
+
83
+ ## Configuration
84
+
85
+ Configure tsdocker in your `package.json` or `npmextra.json`:
53
86
 
54
87
  ```json
55
88
  {
56
89
  "@git.zone/tsdocker": {
57
90
  "baseImage": "node:20",
58
91
  "command": "npm test",
59
- "dockerSock": false
92
+ "dockerSock": false,
93
+ "registries": ["registry.gitlab.com", "docker.io"],
94
+ "registryRepoMap": {
95
+ "registry.gitlab.com": "myorg/myproject"
96
+ },
97
+ "buildArgEnvMap": {
98
+ "NODE_VERSION": "NODE_VERSION"
99
+ },
100
+ "platforms": ["linux/amd64", "linux/arm64"],
101
+ "push": false,
102
+ "testDir": "./test"
60
103
  }
61
104
  }
62
105
  ```
63
106
 
64
- ### 2. Run Your Tests
107
+ ### Configuration Options
65
108
 
66
- ```bash
67
- tsdocker
68
- ```
109
+ #### Testing Options (Legacy)
69
110
 
70
- That's it! tsdocker will:
111
+ | Option | Type | Description |
112
+ |--------|------|-------------|
113
+ | `baseImage` | `string` | Docker image for test environment (default: `hosttoday/ht-docker-node:npmdocker`) |
114
+ | `command` | `string` | Command to run inside container (default: `npmci npm test`) |
115
+ | `dockerSock` | `boolean` | Mount Docker socket for DinD scenarios (default: `false`) |
71
116
 
72
- 1. โœ… Verify Docker is available
73
- 2. ๐Ÿ—๏ธ Build a test container with your specified base image
74
- 3. ๐Ÿ“‚ Mount your project directory
75
- 4. ๐Ÿš€ Execute your test command
76
- 5. ๐Ÿงน Clean up automatically
117
+ #### Build & Push Options
77
118
 
78
- ## Configuration Options
119
+ | Option | Type | Description |
120
+ |--------|------|-------------|
121
+ | `registries` | `string[]` | Registry URLs to push to |
122
+ | `registryRepoMap` | `object` | Map registries to different repository paths |
123
+ | `buildArgEnvMap` | `object` | Map Docker build ARGs to environment variables |
124
+ | `platforms` | `string[]` | Target architectures (default: `["linux/amd64"]`) |
125
+ | `push` | `boolean` | Auto-push after build (default: `false`) |
126
+ | `testDir` | `string` | Directory containing test scripts |
79
127
 
80
- | Option | Type | Description |
81
- | ------------ | --------- | ---------------------------------------------------------------------- |
82
- | `baseImage` | `string` | Docker image to use as the test environment base |
83
- | `command` | `string` | CLI command to execute inside the container |
84
- | `dockerSock` | `boolean` | Whether to mount `/var/run/docker.sock` for Docker-in-Docker scenarios |
128
+ ## Registry Authentication
85
129
 
86
130
  ### Environment Variables
87
131
 
88
- If you have a `qenv.yml` file in your project, tsdocker automatically loads and injects those environment variables into your test container.
132
+ ```bash
133
+ # Pipe-delimited format (supports DOCKER_REGISTRY_1 through DOCKER_REGISTRY_10)
134
+ export DOCKER_REGISTRY_1="registry.gitlab.com|username|password"
135
+ export DOCKER_REGISTRY_2="docker.io|username|password"
136
+
137
+ # Individual registry format
138
+ export DOCKER_REGISTRY_URL="registry.gitlab.com"
139
+ export DOCKER_REGISTRY_USER="username"
140
+ export DOCKER_REGISTRY_PASSWORD="password"
141
+ ```
89
142
 
90
- Example `qenv.yml`:
143
+ ### Login Command
91
144
 
92
- ```yaml
93
- demoKey: demoValue
94
- API_KEY: your-key-here
145
+ ```bash
146
+ tsdocker login
95
147
  ```
96
148
 
97
- ## CLI Commands
149
+ Authenticates with all configured registries.
150
+
151
+ ## Advanced Usage
98
152
 
99
- ### Standard Test Run
153
+ ### ๐Ÿ”€ Multi-Architecture Builds
100
154
 
101
- ```bash
102
- tsdocker
155
+ Build for multiple platforms using Docker Buildx:
156
+
157
+ ```json
158
+ {
159
+ "@git.zone/tsdocker": {
160
+ "platforms": ["linux/amd64", "linux/arm64"]
161
+ }
162
+ }
103
163
  ```
104
164
 
105
- Runs your configured test command in a fresh Docker container.
165
+ tsdocker automatically sets up a Buildx builder when multiple platforms are specified.
106
166
 
107
- ### Clean Docker Environment
167
+ ### ๐Ÿ“ฆ Dockerfile Naming Conventions
108
168
 
109
- ```bash
110
- tsdocker clean --all
111
- ```
169
+ tsdocker discovers files matching `Dockerfile*`:
112
170
 
113
- โš ๏ธ **WARNING**: This aggressively cleans your Docker environment by:
171
+ | File Name | Version Tag |
172
+ |-----------|-------------|
173
+ | `Dockerfile` | `latest` |
174
+ | `Dockerfile_v1.0.0` | `v1.0.0` |
175
+ | `Dockerfile_alpine` | `alpine` |
176
+ | `Dockerfile_##version##` | Uses `package.json` version |
114
177
 
115
- - Killing all running containers
116
- - Removing all stopped containers
117
- - Removing dangling images
118
- - Removing all images
119
- - Removing dangling volumes
178
+ ### ๐Ÿ”— Dependency-Aware Builds
120
179
 
121
- Use with caution!
180
+ If you have multiple Dockerfiles that depend on each other:
122
181
 
123
- ### VSCode in Docker
182
+ ```dockerfile
183
+ # Dockerfile_base
184
+ FROM node:20-alpine
185
+ RUN npm install -g typescript
124
186
 
125
- ```bash
126
- tsdocker vscode
187
+ # Dockerfile_app
188
+ FROM myproject:base
189
+ COPY . .
190
+ RUN npm run build
127
191
  ```
128
192
 
129
- Launches a containerized VS Code instance accessible via browser at `testing-vscode.git.zone:8443`.
193
+ tsdocker automatically detects that `Dockerfile_app` depends on `Dockerfile_base` and builds them in the correct order.
194
+
195
+ ### ๐Ÿงช Container Test Scripts
130
196
 
131
- ### Speed Test
197
+ Create test scripts in your test directory:
132
198
 
133
199
  ```bash
134
- tsdocker speedtest
200
+ # test/test_latest.sh
201
+ #!/bin/bash
202
+ node --version
203
+ npm --version
204
+ echo "Container tests passed!"
135
205
  ```
136
206
 
137
- Runs a network speed test inside a Docker container.
207
+ Run with:
138
208
 
139
- ## Advanced Usage
209
+ ```bash
210
+ tsdocker test
211
+ ```
140
212
 
141
- ### Docker-in-Docker Testing
213
+ ### ๐Ÿ”ง Build Args from Environment
142
214
 
143
- If you need to run Docker commands inside your test container (e.g., testing Docker-related tools):
215
+ Pass environment variables as Docker build arguments:
144
216
 
145
217
  ```json
146
218
  {
147
219
  "@git.zone/tsdocker": {
148
- "baseImage": "docker:latest",
149
- "command": "docker run hello-world",
150
- "dockerSock": true
220
+ "buildArgEnvMap": {
221
+ "NPM_TOKEN": "NPM_TOKEN",
222
+ "NODE_VERSION": "NODE_VERSION"
223
+ }
151
224
  }
152
225
  }
153
226
  ```
154
227
 
155
- Setting `"dockerSock": true` mounts the host's Docker socket into the container.
228
+ ```dockerfile
229
+ ARG NPM_TOKEN
230
+ ARG NODE_VERSION=20
231
+ FROM node:${NODE_VERSION}
232
+ RUN echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
233
+ ```
156
234
 
157
- ### Custom Base Images
235
+ ### ๐Ÿณ Docker-in-Docker Testing
158
236
 
159
- You can use any Docker image as your base:
237
+ Test Docker-related tools by mounting the Docker socket:
160
238
 
161
239
  ```json
162
240
  {
163
241
  "@git.zone/tsdocker": {
164
- "baseImage": "node:20-alpine",
165
- "command": "npm test"
242
+ "baseImage": "docker:latest",
243
+ "command": "docker version && docker ps",
244
+ "dockerSock": true
166
245
  }
167
246
  }
168
247
  ```
169
248
 
170
- Popular choices:
249
+ ### ๐Ÿ“‹ Listing Dockerfiles
171
250
 
172
- - `node:20` โ€” Official Node.js images
173
- - `node:20-alpine` โ€” Lightweight Alpine-based images
174
- - `node:lts` โ€” Long-term support Node.js version
251
+ Inspect your project's Dockerfiles and their relationships:
175
252
 
176
- ### CI Integration
253
+ ```bash
254
+ tsdocker list
255
+ ```
177
256
 
178
- tsdocker automatically detects CI environments (via `CI=true` env var) and adjusts behavior:
257
+ Output:
258
+ ```
259
+ Discovered Dockerfiles:
260
+ ========================
261
+
262
+ 1. Dockerfile_base
263
+ Tag: myproject:base
264
+ Base Image: node:20-alpine
265
+ Version: base
266
+
267
+ 2. Dockerfile_app
268
+ Tag: myproject:app
269
+ Base Image: myproject:base
270
+ Version: app
271
+ Depends on: myproject:base
272
+ ```
179
273
 
180
- - Copies project files into container in CI (instead of mounting)
181
- - Optimizes for CI execution patterns
274
+ ### ๐Ÿ—บ๏ธ Registry Repo Mapping
182
275
 
183
- ## Why tsdocker?
276
+ Use different repository names for different registries:
277
+
278
+ ```json
279
+ {
280
+ "@git.zone/tsdocker": {
281
+ "registries": ["registry.gitlab.com", "docker.io"],
282
+ "registryRepoMap": {
283
+ "registry.gitlab.com": "mygroup/myproject",
284
+ "docker.io": "myuser/myproject"
285
+ }
286
+ }
287
+ }
288
+ ```
184
289
 
185
- ### The Problem
290
+ ## Environment Variables
186
291
 
187
- Local development environments drift over time. You might have:
292
+ ### qenv Integration
188
293
 
189
- - Stale global packages
190
- - Modified system configurations
191
- - Cached dependencies
192
- - Different Node.js versions
294
+ tsdocker automatically loads environment variables from `qenv.yml`:
193
295
 
194
- Your tests pass locally but fail in CI โ€” or vice versa.
296
+ ```yaml
297
+ # qenv.yml
298
+ API_KEY: your-api-key
299
+ DATABASE_URL: postgres://localhost/test
300
+ ```
195
301
 
196
- ### The Solution
302
+ These are injected into your test container automatically.
197
303
 
198
- tsdocker ensures every test run happens in a **clean, reproducible environment**, just like your CI pipeline. This means:
304
+ ## Examples
199
305
 
200
- โœ… Consistent behavior between local and CI
201
- โœ… No dependency pollution between test runs
202
- โœ… Easy cross-platform testing
203
- โœ… Reproducible bug investigations
306
+ ### Basic Test Configuration
204
307
 
205
- ## TypeScript Usage
308
+ ```json
309
+ {
310
+ "@git.zone/tsdocker": {
311
+ "baseImage": "node:20",
312
+ "command": "npm test"
313
+ }
314
+ }
315
+ ```
206
316
 
207
- tsdocker is built with TypeScript and provides full type definitions:
317
+ ### Full Production Setup
208
318
 
209
- ```typescript
210
- import type { IConfig } from '@git.zone/tsdocker/dist_ts/tsdocker.config.js';
319
+ ```json
320
+ {
321
+ "@git.zone/tsdocker": {
322
+ "baseImage": "node:20-alpine",
323
+ "command": "pnpm test",
324
+ "registries": ["registry.gitlab.com", "ghcr.io", "docker.io"],
325
+ "registryRepoMap": {
326
+ "registry.gitlab.com": "myorg/myapp",
327
+ "ghcr.io": "myorg/myapp",
328
+ "docker.io": "myuser/myapp"
329
+ },
330
+ "buildArgEnvMap": {
331
+ "NPM_TOKEN": "NPM_TOKEN"
332
+ },
333
+ "platforms": ["linux/amd64", "linux/arm64"],
334
+ "testDir": "./docker-tests"
335
+ }
336
+ }
337
+ ```
211
338
 
212
- const config: IConfig = {
213
- baseImage: 'node:20',
214
- command: 'npm test',
215
- dockerSock: false,
216
- keyValueObject: {
217
- NODE_ENV: 'test',
218
- },
219
- };
339
+ ### CI/CD Integration
340
+
341
+ ```yaml
342
+ # .gitlab-ci.yml
343
+ build:
344
+ stage: build
345
+ script:
346
+ - npm install -g @git.zone/tsdocker
347
+ - tsdocker build
348
+ - tsdocker push
349
+
350
+ # GitHub Actions
351
+ - name: Build and Push
352
+ run: |
353
+ npm install -g @git.zone/tsdocker
354
+ tsdocker login
355
+ tsdocker build
356
+ tsdocker push
357
+ env:
358
+ DOCKER_REGISTRY_1: "ghcr.io|${{ github.actor }}|${{ secrets.GITHUB_TOKEN }}"
220
359
  ```
221
360
 
222
361
  ## Requirements
223
362
 
224
- - **Docker**: Docker must be installed and accessible via CLI
225
- - **Node.js**: Version 18 or higher (ESM support required)
363
+ - **Docker** โ€” Docker Engine or Docker Desktop must be installed
364
+ - **Node.js** โ€” Version 18 or higher (ESM support required)
365
+ - **Docker Buildx** โ€” Required for multi-architecture builds (included in Docker Desktop)
226
366
 
227
- ## How It Works
367
+ ## Why tsdocker?
228
368
 
229
- Under the hood, tsdocker:
369
+ ### ๐ŸŽฏ The Problem
230
370
 
231
- 1. ๐Ÿ“‹ Reads your `npmextra.json` configuration
232
- 2. ๐Ÿ” Optionally loads environment variables from `qenv.yml`
233
- 3. ๐Ÿณ Generates a temporary Dockerfile
234
- 4. ๐Ÿ—๏ธ Builds a Docker image with your base image
235
- 5. ๐Ÿ“ฆ Mounts your project directory (unless in CI)
236
- 6. โ–ถ๏ธ Runs your test command inside the container
237
- 7. ๐Ÿ“Š Captures the exit code
238
- 8. ๐Ÿงน Cleans up containers and images
239
- 9. โœ… Exits with the same code as your tests
371
+ Managing Docker workflows manually is tedious:
372
+ - Remembering build order for dependent images
373
+ - Pushing to multiple registries with different credentials
374
+ - Setting up Buildx for multi-arch builds
375
+ - Ensuring consistent test environments
240
376
 
241
- ## Troubleshooting
377
+ ### โœจ The Solution
242
378
 
243
- ### "docker not found on this machine"
379
+ tsdocker automates the entire workflow:
380
+ - **One command** to build all images in dependency order
381
+ - **One command** to push to all registries
382
+ - **Automatic** Buildx setup for multi-platform builds
383
+ - **Consistent** containerized test environments
244
384
 
245
- Make sure Docker is installed and the `docker` command is in your PATH:
385
+ ## TypeScript API
246
386
 
247
- ```bash
248
- docker --version
249
- ```
387
+ tsdocker exposes its types for programmatic use:
388
+
389
+ ```typescript
390
+ import type { ITsDockerConfig } from '@git.zone/tsdocker/dist_ts/interfaces/index.js';
391
+ import { TsDockerManager } from '@git.zone/tsdocker/dist_ts/classes.tsdockermanager.js';
250
392
 
251
- ### Tests fail in container but work locally
393
+ const config: ITsDockerConfig = {
394
+ baseImage: 'node:20',
395
+ command: 'npm test',
396
+ dockerSock: false,
397
+ keyValueObject: {},
398
+ registries: ['docker.io'],
399
+ platforms: ['linux/amd64'],
400
+ };
252
401
 
253
- This often indicates environment-specific issues. Check:
402
+ const manager = new TsDockerManager(config);
403
+ await manager.prepare();
404
+ await manager.build();
405
+ await manager.push();
406
+ ```
254
407
 
255
- - Are all dependencies in `package.json`? (not relying on global packages)
256
- - Does your code have hardcoded paths?
257
- - Are environment variables set correctly?
408
+ ## Troubleshooting
258
409
 
259
- ### Permission errors with docker.sock
410
+ ### "docker not found"
260
411
 
261
- If using `dockerSock: true`, ensure your user has permissions to access `/var/run/docker.sock`:
412
+ Ensure Docker is installed and in your PATH:
262
413
 
263
414
  ```bash
264
- sudo usermod -aG docker $USER
265
- # Then log out and back in
415
+ docker --version
266
416
  ```
267
417
 
268
- ## Examples
418
+ ### Multi-arch build fails
269
419
 
270
- ### Basic npm test
420
+ Make sure Docker Buildx is available:
271
421
 
272
- ```json
273
- {
274
- "@git.zone/tsdocker": {
275
- "baseImage": "node:20",
276
- "command": "npm test"
277
- }
278
- }
422
+ ```bash
423
+ docker buildx version
424
+ docker buildx create --use
279
425
  ```
280
426
 
281
- ### Running pnpm tests
427
+ ### Registry authentication fails
282
428
 
283
- ```json
284
- {
285
- "@git.zone/tsdocker": {
286
- "baseImage": "node:20",
287
- "command": "corepack enable && pnpm install && pnpm test"
288
- }
289
- }
429
+ Check your environment variables are set correctly:
430
+
431
+ ```bash
432
+ echo $DOCKER_REGISTRY_1
433
+ tsdocker login
290
434
  ```
291
435
 
292
- ### Testing Docker-based tools
436
+ ### Circular dependency detected
293
437
 
294
- ```json
295
- {
296
- "@git.zone/tsdocker": {
297
- "baseImage": "docker:latest",
298
- "command": "sh -c 'docker version && docker ps'",
299
- "dockerSock": true
300
- }
301
- }
302
- ```
438
+ Review your Dockerfiles' `FROM` statements โ€” you have images depending on each other in a loop.
303
439
 
304
440
  ## Performance Tips
305
441
 
306
- ๐Ÿš€ **Use specific base images**: `node:20-alpine` is much faster to pull than `node:latest`
307
- ๐Ÿš€ **Layer caching**: Docker caches image layers โ€” your base image only downloads once
308
- ๐Ÿš€ **Prune regularly**: Run `docker system prune` periodically to reclaim disk space
442
+ ๐Ÿš€ **Use specific tags**: `node:20-alpine` is smaller and faster than `node:latest`
443
+
444
+ ๐Ÿš€ **Leverage caching**: Docker layers are cached โ€” your builds get faster over time
445
+
446
+ ๐Ÿš€ **Prune regularly**: `docker system prune` reclaims disk space
447
+
448
+ ๐Ÿš€ **Use .dockerignore**: Exclude `node_modules`, `.git`, etc. from build context
309
449
 
310
- ## Migration from legacy npmdocker
450
+ ## Migration from Legacy
311
451
 
312
- This package was previously published under the `npmdocker` name. It is now available as `@git.zone/tsdocker` with modernized ESM support and updated dependencies.
452
+ Previously published as `npmdocker`, now `@git.zone/tsdocker`:
313
453
 
314
- Key changes:
315
- - Configuration key changed from `npmdocker` to `@git.zone/tsdocker` in `npmextra.json`
316
- - CLI command is now `tsdocker` instead of `npmdocker`
317
- - Full ESM support with `.js` extensions in imports
454
+ | Old | New |
455
+ |-----|-----|
456
+ | `npmdocker` command | `tsdocker` command |
457
+ | `"npmdocker"` config key | `"@git.zone/tsdocker"` config key |
458
+ | CommonJS | ESM with `.js` imports |
318
459
 
319
460
  ## License and Legal Information
320
461
 
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@git.zone/tsdocker',
6
- version: '1.3.0',
6
+ version: '1.4.1',
7
7
  description: 'develop npm modules cross platform with docker'
8
8
  }