@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.
@@ -1,3 +1,4 @@
1
+ import * as lik from '@push.rocks/lik';
1
2
  import * as npmextra from '@push.rocks/npmextra';
2
3
  import * as path from 'path';
3
4
  import * as projectinfo from '@push.rocks/projectinfo';
@@ -12,4 +13,4 @@ import * as smartopen from '@push.rocks/smartopen';
12
13
  import * as smartshell from '@push.rocks/smartshell';
13
14
  import * as smartstring from '@push.rocks/smartstring';
14
15
  export declare const smartfs: SmartFs;
15
- export { npmextra, path, projectinfo, smartpromise, qenv, smartcli, smartlog, smartlogDestinationLocal, smartlogSouceOra, smartopen, smartshell, smartstring };
16
+ export { lik, npmextra, path, projectinfo, smartpromise, qenv, smartcli, smartlog, smartlogDestinationLocal, smartlogSouceOra, smartopen, smartshell, smartstring };
@@ -1,4 +1,5 @@
1
1
  // push.rocks scope
2
+ import * as lik from '@push.rocks/lik';
2
3
  import * as npmextra from '@push.rocks/npmextra';
3
4
  import * as path from 'path';
4
5
  import * as projectinfo from '@push.rocks/projectinfo';
@@ -14,5 +15,5 @@ import * as smartshell from '@push.rocks/smartshell';
14
15
  import * as smartstring from '@push.rocks/smartstring';
15
16
  // Create smartfs instance
16
17
  export const smartfs = new SmartFs(new SmartFsProviderNode());
17
- export { npmextra, path, projectinfo, smartpromise, qenv, smartcli, smartlog, smartlogDestinationLocal, smartlogSouceOra, smartopen, smartshell, smartstring };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNkb2NrZXIucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3RzZG9ja2VyLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUJBQW1CO0FBQ25CLE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxLQUFLLFdBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxJQUFJLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssd0JBQXdCLE1BQU0sd0NBQXdDLENBQUM7QUFDbkYsT0FBTyxLQUFLLGdCQUFnQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBRXZELDBCQUEwQjtBQUMxQixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7QUFFOUQsT0FBTyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUNYLFlBQVksRUFDWixJQUFJLEVBQ0osUUFBUSxFQUNSLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNaLENBQUMifQ==
18
+ export { lik, npmextra, path, projectinfo, smartpromise, qenv, smartcli, smartlog, smartlogDestinationLocal, smartlogSouceOra, smartopen, smartshell, smartstring };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNkb2NrZXIucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3RzZG9ja2VyLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUJBQW1CO0FBQ25CLE9BQU8sS0FBSyxHQUFHLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxZQUFZLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxLQUFLLElBQUksTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyx3QkFBd0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEtBQUssZ0JBQWdCLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLG1CQUFtQixFQUFFLENBQUMsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsR0FBRyxFQUNILFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUNYLFlBQVksRUFDWixJQUFJLEVBQ0osUUFBUSxFQUNSLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNaLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@git.zone/tsdocker",
3
- "version": "1.3.0",
3
+ "version": "1.4.1",
4
4
  "private": false,
5
5
  "description": "develop npm modules cross platform with docker",
6
6
  "main": "dist_ts/index.js",
@@ -13,7 +13,6 @@
13
13
  "build": "(tsbuild)",
14
14
  "testIntegration": "(npm run clean && npm run setupCheck && npm run testStandard)",
15
15
  "testStandard": "(cd test/ && tsx ../ts/index.ts)",
16
- "testSpeed": "(cd test/ && tsx ../ts/index.ts speedtest)",
17
16
  "testClean": "(cd test/ && tsx ../ts/index.ts clean --all)",
18
17
  "testVscode": "(cd test/ && tsx ../ts/index.ts vscode)",
19
18
  "clean": "(rm -rf test/)",
@@ -41,6 +40,7 @@
41
40
  "@types/node": "^25.0.9"
42
41
  },
43
42
  "dependencies": {
43
+ "@push.rocks/lik": "^6.2.2",
44
44
  "@push.rocks/npmextra": "^5.3.3",
45
45
  "@push.rocks/projectinfo": "^5.0.2",
46
46
  "@push.rocks/qenv": "^6.1.3",
package/readme.hints.md CHANGED
@@ -2,39 +2,108 @@
2
2
 
3
3
  ## Module Purpose
4
4
 
5
- tsdocker is a tool for developing npm modules cross-platform using Docker. It allows testing in clean, reproducible Linux environments locally.
5
+ tsdocker is a comprehensive Docker development and building tool. It provides:
6
+ - Testing npm modules in clean Docker environments (legacy feature)
7
+ - Building Dockerfiles with dependency ordering
8
+ - Multi-registry push/pull support
9
+ - Multi-architecture builds (amd64/arm64)
6
10
 
7
- ## Recent Upgrades (2025-11-22)
11
+ ## New CLI Commands (2026-01-19)
8
12
 
9
- - Updated all @git.zone/_ dependencies to @git.zone/_ scope (latest versions)
10
- - Updated all @pushrocks/_ dependencies to @push.rocks/_ scope (latest versions)
11
- - Migrated from smartfile v8 to smartfs v1.1.0
12
- - All filesystem operations now use smartfs fluent API
13
- - Operations are now async (smartfs is async-only)
14
- - Updated dev dependencies:
15
- - @git.zone/tsbuild: ^3.1.0
16
- - @git.zone/tsrun: ^2.0.0
17
- - @git.zone/tstest: ^3.1.3
18
- - Removed @pushrocks/tapbundle (now use @git.zone/tstest/tapbundle)
19
- - Updated @types/node to ^22.10.2
20
- - Removed tslint and tslint-config-prettier (no longer needed)
13
+ | Command | Description |
14
+ |---------|-------------|
15
+ | `tsdocker` | Run tests in container (legacy default behavior) |
16
+ | `tsdocker build` | Build all Dockerfiles with dependency ordering |
17
+ | `tsdocker push [registry]` | Push images to configured registries |
18
+ | `tsdocker pull <registry>` | Pull images from registry |
19
+ | `tsdocker test` | Run container tests (test scripts) |
20
+ | `tsdocker login` | Login to configured registries |
21
+ | `tsdocker list` | List discovered Dockerfiles and dependencies |
22
+ | `tsdocker clean --all` | Clean up Docker environment |
23
+ | `tsdocker vscode` | Start VS Code in Docker |
21
24
 
22
- ## SmartFS Migration Details
25
+ ## Configuration
23
26
 
24
- The following operations were converted:
27
+ Configure in `package.json` under `@git.zone/tsdocker`:
25
28
 
26
- - `smartfile.fs.fileExistsSync()` → Node.js `fs.existsSync()` (for sync needs)
27
- - `smartfile.fs.ensureDirSync()` → Node.js `fs.mkdirSync(..., { recursive: true })`
28
- - `smartfile.memory.toFsSync()` → `smartfs.file(path).write(content)` (async)
29
- - `smartfile.fs.removeSync()` → `smartfs.file(path).delete()` (async)
29
+ ```json
30
+ {
31
+ "@git.zone/tsdocker": {
32
+ "registries": ["registry.gitlab.com", "docker.io"],
33
+ "registryRepoMap": {
34
+ "registry.gitlab.com": "host.today/ht-docker-node"
35
+ },
36
+ "buildArgEnvMap": {
37
+ "NODE_VERSION": "NODE_VERSION"
38
+ },
39
+ "platforms": ["linux/amd64", "linux/arm64"],
40
+ "push": false,
41
+ "testDir": "./test"
42
+ }
43
+ }
44
+ ```
30
45
 
31
- ## Test Status
46
+ ### Configuration Options
32
47
 
33
- - Build: Passes
34
- - The integration test requires cloning an external test repository (sandbox-npmts)
35
- - The external test repo uses top-level await which requires ESM module handling
36
- - This is not a tsdocker issue but rather the test repository's structure
48
+ - `baseImage`: Base Docker image for testing (legacy)
49
+ - `command`: Command to run in container (legacy)
50
+ - `dockerSock`: Mount Docker socket (legacy)
51
+ - `registries`: Array of registry URLs to push to
52
+ - `registryRepoMap`: Map registry URLs to different repo paths
53
+ - `buildArgEnvMap`: Map Docker build ARGs to environment variables
54
+ - `platforms`: Target architectures for buildx
55
+ - `push`: Auto-push after build
56
+ - `testDir`: Directory containing test scripts
57
+
58
+ ## Registry Authentication
59
+
60
+ Set environment variables for registry login:
61
+
62
+ ```bash
63
+ # Pipe-delimited format (numbered 1-10)
64
+ export DOCKER_REGISTRY_1="registry.gitlab.com|username|password"
65
+ export DOCKER_REGISTRY_2="docker.io|username|password"
66
+
67
+ # Or individual registry format
68
+ export DOCKER_REGISTRY_URL="registry.gitlab.com"
69
+ export DOCKER_REGISTRY_USER="username"
70
+ export DOCKER_REGISTRY_PASSWORD="password"
71
+ ```
72
+
73
+ ## File Structure
74
+
75
+ ```
76
+ ts/
77
+ ├── index.ts (entry point)
78
+ ├── tsdocker.cli.ts (CLI commands)
79
+ ├── tsdocker.config.ts (configuration)
80
+ ├── tsdocker.plugins.ts (plugin imports)
81
+ ├── tsdocker.docker.ts (legacy test runner)
82
+ ├── tsdocker.snippets.ts (Dockerfile generation)
83
+ ├── classes.dockerfile.ts (Dockerfile management)
84
+ ├── classes.dockerregistry.ts (registry authentication)
85
+ ├── classes.registrystorage.ts (registry storage)
86
+ ├── classes.tsdockermanager.ts (orchestrator)
87
+ └── interfaces/
88
+ └── index.ts (type definitions)
89
+ ```
37
90
 
38
91
  ## Dependencies
39
92
 
40
- All dependencies are now at their latest versions compatible with Node.js without introducing new Node.js-specific dependencies.
93
+ - `@push.rocks/lik`: Object mapping utilities
94
+ - `@push.rocks/smartfs`: Filesystem operations
95
+ - `@push.rocks/smartshell`: Shell command execution
96
+ - `@push.rocks/smartcli`: CLI framework
97
+ - `@push.rocks/projectinfo`: Project metadata
98
+
99
+ ## Build Status
100
+
101
+ - Build: ✅ Passes
102
+ - Legacy test functionality preserved
103
+ - New Docker build functionality added
104
+
105
+ ## Previous Upgrades (2025-11-22)
106
+
107
+ - Updated all @git.zone/_ dependencies to @git.zone/_ scope
108
+ - Updated all @pushrocks/_ dependencies to @push.rocks/_ scope
109
+ - Migrated from smartfile v8 to smartfs v1.1.0