Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 461c4bb5a9 | |||
| 3c3662d935 | |||
| c97306b22a | |||
| 7af0c59708 | |||
| 3a4d510304 | |||
| b1f135a5f4 | |||
| 30a5749fab | |||
| 100f37b857 | |||
| 93cf2ee7bf | |||
| 8cf8e43e59 |
@@ -7,7 +7,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
|
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
|
||||||
NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@/${{gitea.repository}}.git
|
NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@gitlab.com/${{gitea.repository}}.git
|
||||||
NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}}
|
NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}}
|
||||||
NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}}
|
NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}}
|
||||||
NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}}
|
NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
|
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
|
||||||
NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@/${{gitea.repository}}.git
|
NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@gitlab.com/${{gitea.repository}}.git
|
||||||
NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}}
|
NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}}
|
||||||
NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}}
|
NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}}
|
||||||
NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}}
|
NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}}
|
||||||
|
|||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -16,6 +16,10 @@ node_modules/
|
|||||||
dist/
|
dist/
|
||||||
dist_*/
|
dist_*/
|
||||||
|
|
||||||
|
# rust
|
||||||
|
rust/target/
|
||||||
|
dist_rust/
|
||||||
|
|
||||||
# AI
|
# AI
|
||||||
.claude/
|
.claude/
|
||||||
.serena/
|
.serena/
|
||||||
|
|||||||
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"json.schemas": [
|
"json.schemas": [
|
||||||
{
|
{
|
||||||
"fileMatch": ["/npmextra.json"],
|
"fileMatch": ["/smartconfig.json"],
|
||||||
"schema": {
|
"schema": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|||||||
70
changelog.md
70
changelog.md
@@ -1,6 +1,45 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2026-03-24 - 2.2.4 - fix(config)
|
||||||
|
migrate configuration loading to smartconfig and update build tooling compatibility
|
||||||
|
|
||||||
|
- switch configuration loading and documentation to .smartconfig.json
|
||||||
|
- upgrade build and test dependencies for tsbuild 4.4.0 and TypeScript 6 compatibility
|
||||||
|
- remove deprecated tsconfig baseUrl and paths settings and add an lru-cache override to avoid type issues
|
||||||
|
|
||||||
|
## 2026-03-24 - 2.2.3 - fix(config)
|
||||||
|
update workflow repository URL handling and package config file references
|
||||||
|
|
||||||
|
- Switches Gitea workflow repository URLs to use gitlab.com explicitly for authenticated CI git operations.
|
||||||
|
- Replaces the published config file entry from npmextra.json to .smartconfig.json in package metadata.
|
||||||
|
- Adds Rust build output directories to .gitignore.
|
||||||
|
- Refreshes changelog and README formatting to match the current smartconfig-based configuration.
|
||||||
|
|
||||||
|
## 2026-03-24 - 2.2.2 - fix(config)
|
||||||
|
|
||||||
|
rename npmextra configuration file to .smartconfig.json
|
||||||
|
|
||||||
|
- Moves the existing project metadata and release configuration from npmextra.json to .smartconfig.json without changing its contents.
|
||||||
|
|
||||||
|
## 2026-03-24 - 2.2.1 - fix(config)
|
||||||
|
|
||||||
|
switch configuration loading from npmextra to smartconfig
|
||||||
|
|
||||||
|
- replace the @push.rocks/npmextra dependency with @push.rocks/smartconfig
|
||||||
|
- update config initialization to use Smartconfig for the @git.zone/tsdocker settings
|
||||||
|
- refresh CLI help text to reference smartconfig.json instead of npmextra.json
|
||||||
|
|
||||||
|
## 2026-03-19 - 2.2.0 - feat(cli/buildx)
|
||||||
|
|
||||||
|
add pull control for builds and isolate buildx builders per project
|
||||||
|
|
||||||
|
- adds a new pull build option with --no-pull CLI support and defaults builds to refreshing base images with --pull
|
||||||
|
- passes the selected buildx builder explicitly into build commands instead of relying on global docker buildx use state
|
||||||
|
- generates project-hashed builder suffixes so concurrent runs from different project directories do not share the same local builder
|
||||||
|
- updates session logging to include project hash and builder suffix for easier build diagnostics
|
||||||
|
|
||||||
## 2026-03-15 - 2.1.0 - feat(cli)
|
## 2026-03-15 - 2.1.0 - feat(cli)
|
||||||
|
|
||||||
add global remote builder configuration and native SSH buildx nodes for multi-platform builds
|
add global remote builder configuration and native SSH buildx nodes for multi-platform builds
|
||||||
|
|
||||||
- adds a new `tsdocker config` command with subcommands to add, remove, list, and show remote builder definitions
|
- adds a new `tsdocker config` command with subcommands to add, remove, list, and show remote builder definitions
|
||||||
@@ -9,14 +48,15 @@ add global remote builder configuration and native SSH buildx nodes for multi-pl
|
|||||||
- updates the README and CLI help to document remote builder configuration and native cross-platform build workflows
|
- updates the README and CLI help to document remote builder configuration and native cross-platform build workflows
|
||||||
|
|
||||||
## 2026-03-12 - 2.0.2 - fix(repo)
|
## 2026-03-12 - 2.0.2 - fix(repo)
|
||||||
no changes to commit
|
|
||||||
|
|
||||||
|
no changes to commit
|
||||||
|
|
||||||
## 2026-03-12 - 2.0.1 - fix(repository)
|
## 2026-03-12 - 2.0.1 - fix(repository)
|
||||||
|
|
||||||
no changes to commit
|
no changes to commit
|
||||||
|
|
||||||
|
|
||||||
## 2026-03-12 - 2.0.0 - BREAKING CHANGE(cli)
|
## 2026-03-12 - 2.0.0 - BREAKING CHANGE(cli)
|
||||||
|
|
||||||
remove legacy container test runner and make the default command show the man page
|
remove legacy container test runner and make the default command show the man page
|
||||||
|
|
||||||
- Removes legacy testing and VS Code commands, including `runinside`, `vscode`, generated Dockerfile assets, and related configuration fields (`baseImage`, `command`, `dockerSock`, `keyValueObject`)
|
- Removes legacy testing and VS Code commands, including `runinside`, `vscode`, generated Dockerfile assets, and related configuration fields (`baseImage`, `command`, `dockerSock`, `keyValueObject`)
|
||||||
@@ -24,10 +64,11 @@ remove legacy container test runner and make the default command show the man pa
|
|||||||
- Updates CLI and documentation to reflect default help output and the current build/push-focused workflow
|
- Updates CLI and documentation to reflect default help output and the current build/push-focused workflow
|
||||||
|
|
||||||
## 2026-02-07 - 1.17.4 - fix()
|
## 2026-02-07 - 1.17.4 - fix()
|
||||||
|
|
||||||
no changes
|
no changes
|
||||||
|
|
||||||
|
|
||||||
## 2026-02-07 - 1.17.3 - fix(registry)
|
## 2026-02-07 - 1.17.3 - fix(registry)
|
||||||
|
|
||||||
increase default maxRetries in fetchWithRetry from 3 to 6 to improve resilience when fetching registry resources
|
increase default maxRetries in fetchWithRetry from 3 to 6 to improve resilience when fetching registry resources
|
||||||
|
|
||||||
- Changed default maxRetries from 3 to 6 in ts/classes.registrycopy.ts
|
- Changed default maxRetries from 3 to 6 in ts/classes.registrycopy.ts
|
||||||
@@ -35,6 +76,7 @@ increase default maxRetries in fetchWithRetry from 3 to 6 to improve resilience
|
|||||||
- No API or behavior changes besides the increased default retry count
|
- No API or behavior changes besides the increased default retry count
|
||||||
|
|
||||||
## 2026-02-07 - 1.17.2 - fix(registry)
|
## 2026-02-07 - 1.17.2 - fix(registry)
|
||||||
|
|
||||||
improve HTTP fetch retry logging, backoff calculation, and token-cache warning
|
improve HTTP fetch retry logging, backoff calculation, and token-cache warning
|
||||||
|
|
||||||
- Include HTTP method in logs and normalize method to uppercase for consistency
|
- Include HTTP method in logs and normalize method to uppercase for consistency
|
||||||
@@ -44,6 +86,7 @@ improve HTTP fetch retry logging, backoff calculation, and token-cache warning
|
|||||||
- Add a warning log when clearing cached token after a 401 response
|
- Add a warning log when clearing cached token after a 401 response
|
||||||
|
|
||||||
## 2026-02-07 - 1.17.1 - fix(registrycopy)
|
## 2026-02-07 - 1.17.1 - fix(registrycopy)
|
||||||
|
|
||||||
add fetchWithRetry wrapper to apply timeouts, retries with exponential backoff, and token cache handling; use it for registry HTTP requests
|
add fetchWithRetry wrapper to apply timeouts, retries with exponential backoff, and token cache handling; use it for registry HTTP requests
|
||||||
|
|
||||||
- Introduces fetchWithRetry(url, options, timeoutMs, maxRetries) to wrap fetch with AbortSignal timeout, exponential backoff retries, and retry behavior only for network errors and 5xx responses
|
- Introduces fetchWithRetry(url, options, timeoutMs, maxRetries) to wrap fetch with AbortSignal timeout, exponential backoff retries, and retry behavior only for network errors and 5xx responses
|
||||||
@@ -52,6 +95,7 @@ add fetchWithRetry wrapper to apply timeouts, retries with exponential backoff,
|
|||||||
- Adds logging on retry attempts and backoff delays to improve robustness and observability
|
- Adds logging on retry attempts and backoff delays to improve robustness and observability
|
||||||
|
|
||||||
## 2026-02-07 - 1.17.0 - feat(tsdocker)
|
## 2026-02-07 - 1.17.0 - feat(tsdocker)
|
||||||
|
|
||||||
add Dockerfile filtering, optional skip-build flow, and fallback Docker config credential loading
|
add Dockerfile filtering, optional skip-build flow, and fallback Docker config credential loading
|
||||||
|
|
||||||
- Add TsDockerManager.filterDockerfiles(patterns) to filter discovered Dockerfiles by glob-style patterns and warn when no matches are found
|
- Add TsDockerManager.filterDockerfiles(patterns) to filter discovered Dockerfiles by glob-style patterns and warn when no matches are found
|
||||||
@@ -60,6 +104,7 @@ add Dockerfile filtering, optional skip-build flow, and fallback Docker config c
|
|||||||
- Import RegistryCopy and add info/warn logs when credentials are loaded or missing
|
- Import RegistryCopy and add info/warn logs when credentials are loaded or missing
|
||||||
|
|
||||||
## 2026-02-07 - 1.16.0 - feat(core)
|
## 2026-02-07 - 1.16.0 - feat(core)
|
||||||
|
|
||||||
Introduce per-invocation TsDockerSession and session-aware local registry and build orchestration; stream and parse buildx output for improved logging and visibility; detect Docker topology and add CI-safe cleanup; update README with multi-arch, parallel-build, caching, and local registry usage and new CLI flags.
|
Introduce per-invocation TsDockerSession and session-aware local registry and build orchestration; stream and parse buildx output for improved logging and visibility; detect Docker topology and add CI-safe cleanup; update README with multi-arch, parallel-build, caching, and local registry usage and new CLI flags.
|
||||||
|
|
||||||
- Add TsDockerSession to allocate unique ports, container names and builder suffixes for concurrent runs (especially in CI).
|
- Add TsDockerSession to allocate unique ports, container names and builder suffixes for concurrent runs (especially in CI).
|
||||||
@@ -72,6 +117,7 @@ Introduce per-invocation TsDockerSession and session-aware local registry and bu
|
|||||||
- Large README improvements: multi-arch flow, persistent local registry, parallel builds, caching, new CLI and clean flags, and examples for CI integration.
|
- Large README improvements: multi-arch flow, persistent local registry, parallel builds, caching, new CLI and clean flags, and examples for CI integration.
|
||||||
|
|
||||||
## 2026-02-07 - 1.15.1 - fix(registry)
|
## 2026-02-07 - 1.15.1 - fix(registry)
|
||||||
|
|
||||||
use persistent local registry and OCI Distribution API image copy for pushes
|
use persistent local registry and OCI Distribution API image copy for pushes
|
||||||
|
|
||||||
- Adds RegistryCopy class implementing the OCI Distribution API to copy images (including multi-arch manifest lists) from the local registry to remote registries.
|
- Adds RegistryCopy class implementing the OCI Distribution API to copy images (including multi-arch manifest lists) from the local registry to remote registries.
|
||||||
@@ -83,6 +129,7 @@ use persistent local registry and OCI Distribution API image copy for pushes
|
|||||||
- Breaking change: registry usage and push behavior changed (config.push ignored and local registry mandatory) — bump major version.
|
- Breaking change: registry usage and push behavior changed (config.push ignored and local registry mandatory) — bump major version.
|
||||||
|
|
||||||
## 2026-02-07 - 1.15.0 - feat(clean)
|
## 2026-02-07 - 1.15.0 - feat(clean)
|
||||||
|
|
||||||
Make the `clean` command interactive: add smartinteract prompts, docker context detection, and selective resource removal with support for --all and -y auto-confirm
|
Make the `clean` command interactive: add smartinteract prompts, docker context detection, and selective resource removal with support for --all and -y auto-confirm
|
||||||
|
|
||||||
- Adds dependency @push.rocks/smartinteract and exposes it from the plugins module
|
- Adds dependency @push.rocks/smartinteract and exposes it from the plugins module
|
||||||
@@ -92,6 +139,7 @@ Make the `clean` command interactive: add smartinteract prompts, docker context
|
|||||||
- Replaces blunt shell commands with safer, interactive selection and adds improved error handling and logging
|
- Replaces blunt shell commands with safer, interactive selection and adds improved error handling and logging
|
||||||
|
|
||||||
## 2026-02-07 - 1.14.0 - feat(build)
|
## 2026-02-07 - 1.14.0 - feat(build)
|
||||||
|
|
||||||
add level-based parallel builds with --parallel and configurable concurrency
|
add level-based parallel builds with --parallel and configurable concurrency
|
||||||
|
|
||||||
- Introduces --parallel and --parallel=<n> CLI flags to enable level-based parallel Docker builds (default concurrency 4).
|
- Introduces --parallel and --parallel=<n> CLI flags to enable level-based parallel Docker builds (default concurrency 4).
|
||||||
@@ -102,6 +150,7 @@ add level-based parallel builds with --parallel and configurable concurrency
|
|||||||
- Updates documentation (readme.hints.md) with usage examples and implementation notes.
|
- Updates documentation (readme.hints.md) with usage examples and implementation notes.
|
||||||
|
|
||||||
## 2026-02-07 - 1.13.0 - feat(docker)
|
## 2026-02-07 - 1.13.0 - feat(docker)
|
||||||
|
|
||||||
add Docker context detection, rootless support, and context-aware buildx registry handling
|
add Docker context detection, rootless support, and context-aware buildx registry handling
|
||||||
|
|
||||||
- Introduce DockerContext class to detect current Docker context and rootless mode and to log warnings and context info
|
- Introduce DockerContext class to detect current Docker context and rootless mode and to log warnings and context info
|
||||||
@@ -111,6 +160,7 @@ add Docker context detection, rootless support, and context-aware buildx registr
|
|||||||
- Pass isRootless into local registry startup and build pipeline; emit rootless-specific warnings and registry reachability hint
|
- Pass isRootless into local registry startup and build pipeline; emit rootless-specific warnings and registry reachability hint
|
||||||
|
|
||||||
## 2026-02-06 - 1.12.0 - feat(docker)
|
## 2026-02-06 - 1.12.0 - feat(docker)
|
||||||
|
|
||||||
add detailed logging for buildx, build commands, local registry, and local dependency info
|
add detailed logging for buildx, build commands, local registry, and local dependency info
|
||||||
|
|
||||||
- Log startup of local registry including a note about buildx dependency bridging
|
- Log startup of local registry including a note about buildx dependency bridging
|
||||||
@@ -120,6 +170,7 @@ add detailed logging for buildx, build commands, local registry, and local depen
|
|||||||
- Non-functional change: purely adds informational logging to improve observability during builds
|
- Non-functional change: purely adds informational logging to improve observability during builds
|
||||||
|
|
||||||
## 2026-02-06 - 1.11.0 - feat(docker)
|
## 2026-02-06 - 1.11.0 - feat(docker)
|
||||||
|
|
||||||
start temporary local registry for buildx dependency resolution and ensure buildx builder uses host network
|
start temporary local registry for buildx dependency resolution and ensure buildx builder uses host network
|
||||||
|
|
||||||
- Introduce a temporary local registry (localhost:5234) with start/stop helpers and push support to expose local images for buildx
|
- Introduce a temporary local registry (localhost:5234) with start/stop helpers and push support to expose local images for buildx
|
||||||
@@ -130,6 +181,7 @@ start temporary local registry for buildx dependency resolution and ensure build
|
|||||||
- Ensure buildx builder is created with --driver-opt network=host and recreate existing builder if it lacks host network to allow registry access from build containers
|
- Ensure buildx builder is created with --driver-opt network=host and recreate existing builder if it lacks host network to allow registry access from build containers
|
||||||
|
|
||||||
## 2026-02-06 - 1.10.0 - feat(classes.dockerfile)
|
## 2026-02-06 - 1.10.0 - feat(classes.dockerfile)
|
||||||
|
|
||||||
support using a local base image as a build context in buildx commands
|
support using a local base image as a build context in buildx commands
|
||||||
|
|
||||||
- Adds --build-context flag mapping base image to docker-image://<localTag> when localBaseImageDependent && localBaseDockerfile are set
|
- Adds --build-context flag mapping base image to docker-image://<localTag> when localBaseImageDependent && localBaseDockerfile are set
|
||||||
@@ -137,6 +189,7 @@ support using a local base image as a build context in buildx commands
|
|||||||
- Logs an info message indicating the local build context mapping
|
- Logs an info message indicating the local build context mapping
|
||||||
|
|
||||||
## 2026-02-06 - 1.9.0 - feat(build)
|
## 2026-02-06 - 1.9.0 - feat(build)
|
||||||
|
|
||||||
add verbose build output, progress logging, and timing for builds/tests
|
add verbose build output, progress logging, and timing for builds/tests
|
||||||
|
|
||||||
- Add 'verbose' option to build/test flows (interfaces, CLI, and method signatures) to allow streaming raw docker build output or run silently
|
- Add 'verbose' option to build/test flows (interfaces, CLI, and method signatures) to allow streaming raw docker build output or run silently
|
||||||
@@ -147,6 +200,7 @@ add verbose build output, progress logging, and timing for builds/tests
|
|||||||
- Use silent exec variants when verbose is false and stream exec when verbose is true
|
- Use silent exec variants when verbose is false and stream exec when verbose is true
|
||||||
|
|
||||||
## 2026-02-06 - 1.8.0 - feat(build)
|
## 2026-02-06 - 1.8.0 - feat(build)
|
||||||
|
|
||||||
add optional content-hash based build cache to skip rebuilding unchanged Dockerfiles
|
add optional content-hash based build cache to skip rebuilding unchanged Dockerfiles
|
||||||
|
|
||||||
- Introduce TsDockerCache to compute SHA-256 of Dockerfile content and persist cache to .nogit/tsdocker_support.json
|
- Introduce TsDockerCache to compute SHA-256 of Dockerfile content and persist cache to .nogit/tsdocker_support.json
|
||||||
@@ -156,12 +210,14 @@ add optional content-hash based build cache to skip rebuilding unchanged Dockerf
|
|||||||
- Cache records store contentHash, imageId, buildTag and timestamp
|
- Cache records store contentHash, imageId, buildTag and timestamp
|
||||||
|
|
||||||
## 2026-02-06 - 1.7.0 - feat(cli)
|
## 2026-02-06 - 1.7.0 - feat(cli)
|
||||||
|
|
||||||
add CLI version display using commitinfo
|
add CLI version display using commitinfo
|
||||||
|
|
||||||
- Imported commitinfo from './00_commitinfo_data.js' and called tsdockerCli.addVersion(commitinfo.version) to surface package/commit version in the Smartcli instance
|
- Imported commitinfo from './00_commitinfo_data.js' and called tsdockerCli.addVersion(commitinfo.version) to surface package/commit version in the Smartcli instance
|
||||||
- Change made in ts/tsdocker.cli.ts — small user-facing CLI enhancement; no breaking changes
|
- Change made in ts/tsdocker.cli.ts — small user-facing CLI enhancement; no breaking changes
|
||||||
|
|
||||||
## 2026-02-06 - 1.6.0 - feat(docker)
|
## 2026-02-06 - 1.6.0 - feat(docker)
|
||||||
|
|
||||||
add support for no-cache builds and tag built images for local dependency resolution
|
add support for no-cache builds and tag built images for local dependency resolution
|
||||||
|
|
||||||
- Introduce IBuildCommandOptions.noCache to control --no-cache behavior
|
- Introduce IBuildCommandOptions.noCache to control --no-cache behavior
|
||||||
@@ -171,6 +227,7 @@ add support for no-cache builds and tag built images for local dependency resolu
|
|||||||
- Log tagging actions and execute docker tag via smartshellInstance
|
- Log tagging actions and execute docker tag via smartshellInstance
|
||||||
|
|
||||||
## 2026-02-06 - 1.5.0 - feat(build)
|
## 2026-02-06 - 1.5.0 - feat(build)
|
||||||
|
|
||||||
add support for selective builds, platform override and build timeout
|
add support for selective builds, platform override and build timeout
|
||||||
|
|
||||||
- Introduce IBuildCommandOptions with patterns, platform and timeout to control build behavior
|
- Introduce IBuildCommandOptions with patterns, platform and timeout to control build behavior
|
||||||
@@ -180,6 +237,7 @@ add support for selective builds, platform override and build timeout
|
|||||||
- Implement streaming exec with timeout to kill long-running builds and surface timeout errors
|
- Implement streaming exec with timeout to kill long-running builds and surface timeout errors
|
||||||
|
|
||||||
## 2026-02-04 - 1.4.3 - fix(dockerfile)
|
## 2026-02-04 - 1.4.3 - fix(dockerfile)
|
||||||
|
|
||||||
fix matching of base images to local Dockerfiles by stripping registry prefixes when comparing image references
|
fix matching of base images to local Dockerfiles by stripping registry prefixes when comparing image references
|
||||||
|
|
||||||
- Added Dockerfile.extractRepoVersion(imageRef) to normalize image references by removing registry prefixes (detects registries containing '.' or ':' or 'localhost').
|
- Added Dockerfile.extractRepoVersion(imageRef) to normalize image references by removing registry prefixes (detects registries containing '.' or ':' or 'localhost').
|
||||||
@@ -187,13 +245,15 @@ fix matching of base images to local Dockerfiles by stripping registry prefixes
|
|||||||
- Prevents mismatches when baseImage includes a registry (e.g. "host.today/repo:version") so it correctly matches a local cleanTag like "repo:version".
|
- Prevents mismatches when baseImage includes a registry (e.g. "host.today/repo:version") so it correctly matches a local cleanTag like "repo:version".
|
||||||
|
|
||||||
## 2026-01-21 - 1.4.2 - fix(classes.dockerfile)
|
## 2026-01-21 - 1.4.2 - fix(classes.dockerfile)
|
||||||
|
|
||||||
use a single top-level fs import instead of requiring fs inside methods
|
use a single top-level fs import instead of requiring fs inside methods
|
||||||
|
|
||||||
- Added top-level import: import * as fs from 'fs' in ts/classes.dockerfile.ts
|
- Added top-level import: import \* as fs from 'fs' in ts/classes.dockerfile.ts
|
||||||
- Removed inline require('fs') calls and replaced with the imported fs in constructor and test() to keep imports consistent
|
- Removed inline require('fs') calls and replaced with the imported fs in constructor and test() to keep imports consistent
|
||||||
- No behavioral change expected; this is a cleanup/refactor to standardize module usage
|
- No behavioral change expected; this is a cleanup/refactor to standardize module usage
|
||||||
|
|
||||||
## 2026-01-20 - 1.4.1 - fix(docs)
|
## 2026-01-20 - 1.4.1 - fix(docs)
|
||||||
|
|
||||||
update README: expand usage, installation, quick start, features, troubleshooting and migration notes
|
update README: expand usage, installation, quick start, features, troubleshooting and migration notes
|
||||||
|
|
||||||
- Expanded README content: new Quick Start, Installation examples, and detailed Features section (containerized testing, smart Docker builds, multi-registry push, multi-architecture support, zero-config start)
|
- Expanded README content: new Quick Start, Installation examples, and detailed Features section (containerized testing, smart Docker builds, multi-registry push, multi-architecture support, zero-config start)
|
||||||
@@ -202,6 +262,7 @@ update README: expand usage, installation, quick start, features, troubleshootin
|
|||||||
- Documentation-only change — no source code modified
|
- Documentation-only change — no source code modified
|
||||||
|
|
||||||
## 2026-01-20 - 1.4.0 - feat(tsdocker)
|
## 2026-01-20 - 1.4.0 - feat(tsdocker)
|
||||||
|
|
||||||
add multi-registry and multi-arch Docker build/push/pull manager, registry storage, Dockerfile handling, and new CLI commands
|
add multi-registry and multi-arch Docker build/push/pull manager, registry storage, Dockerfile handling, and new CLI commands
|
||||||
|
|
||||||
- Introduce TsDockerManager orchestrator to discover, sort, build, test, push and pull Dockerfiles
|
- Introduce TsDockerManager orchestrator to discover, sort, build, test, push and pull Dockerfiles
|
||||||
@@ -214,6 +275,7 @@ add multi-registry and multi-arch Docker build/push/pull manager, registry stora
|
|||||||
- Update README and readme.hints with new features, configuration examples and command list
|
- Update README and readme.hints with new features, configuration examples and command list
|
||||||
|
|
||||||
## 2026-01-19 - 1.3.0 - feat(packaging)
|
## 2026-01-19 - 1.3.0 - feat(packaging)
|
||||||
|
|
||||||
Rename package scope to @git.zone and migrate to ESM; rename CLI/config keys, update entrypoints and imports, bump Node requirement to 18, and adjust scripts/dependencies
|
Rename package scope to @git.zone and migrate to ESM; rename CLI/config keys, update entrypoints and imports, bump Node requirement to 18, and adjust scripts/dependencies
|
||||||
|
|
||||||
- Package renamed to @git.zone/tsdocker (scope change) — consumers must update package reference.
|
- Package renamed to @git.zone/tsdocker (scope change) — consumers must update package reference.
|
||||||
|
|||||||
31
package.json
31
package.json
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "@git.zone/tsdocker",
|
"name": "@git.zone/tsdocker",
|
||||||
"version": "2.1.0",
|
"version": "2.2.4",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "develop npm modules cross platform with docker",
|
"description": "A comprehensive Docker build tool for TypeScript projects with multi-arch support, multi-registry push, and CI-safe session isolation.",
|
||||||
"main": "dist_ts/index.js",
|
"main": "dist_ts/index.js",
|
||||||
"typings": "dist_ts/index.d.ts",
|
"typings": "dist_ts/index.d.ts",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -18,7 +18,16 @@
|
|||||||
"url": "https://gitlab.com/gitzone/tsdocker.git"
|
"url": "https://gitlab.com/gitzone/tsdocker.git"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"docker"
|
"docker",
|
||||||
|
"typescript",
|
||||||
|
"buildx",
|
||||||
|
"multi-arch",
|
||||||
|
"multi-registry",
|
||||||
|
"oci",
|
||||||
|
"container",
|
||||||
|
"ci-cd",
|
||||||
|
"docker-build",
|
||||||
|
"cross-platform"
|
||||||
],
|
],
|
||||||
"author": "Lossless GmbH",
|
"author": "Lossless GmbH",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@@ -27,22 +36,22 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/gitzone/tsdocker#readme",
|
"homepage": "https://gitlab.com/gitzone/tsdocker#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@git.zone/tsbuild": "^4.3.0",
|
"@git.zone/tsbuild": "^4.4.0",
|
||||||
"@git.zone/tsrun": "^2.0.1",
|
"@git.zone/tsrun": "^2.0.1",
|
||||||
"@git.zone/tstest": "^3.3.2",
|
"@git.zone/tstest": "^3.5.1",
|
||||||
"@types/node": "^25.5.0"
|
"@types/node": "^25.5.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@push.rocks/lik": "^6.3.1",
|
"@push.rocks/lik": "^6.4.0",
|
||||||
"@push.rocks/npmextra": "^5.3.3",
|
|
||||||
"@push.rocks/projectinfo": "^5.0.2",
|
"@push.rocks/projectinfo": "^5.0.2",
|
||||||
"@push.rocks/smartcli": "^4.0.20",
|
"@push.rocks/smartcli": "^4.0.20",
|
||||||
|
"@push.rocks/smartconfig": "^6.0.1",
|
||||||
"@push.rocks/smartfs": "^1.5.0",
|
"@push.rocks/smartfs": "^1.5.0",
|
||||||
"@push.rocks/smartinteract": "^2.0.16",
|
"@push.rocks/smartinteract": "^2.0.16",
|
||||||
"@push.rocks/smartlog": "^3.2.1",
|
"@push.rocks/smartlog": "^3.2.1",
|
||||||
"@push.rocks/smartlog-destination-local": "^9.0.2",
|
"@push.rocks/smartlog-destination-local": "^9.0.2",
|
||||||
"@push.rocks/smartlog-source-ora": "^1.0.9",
|
"@push.rocks/smartlog-source-ora": "^1.0.9",
|
||||||
"@push.rocks/smartshell": "^3.3.7"
|
"@push.rocks/smartshell": "^3.3.8"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@10.18.1+sha512.77a884a165cbba2d8d1c19e3b4880eee6d2fcabd0d879121e282196b80042351d5eb3ca0935fa599da1dc51265cc68816ad2bddd2a2de5ea9fdf92adbec7cd34",
|
"packageManager": "pnpm@10.18.1+sha512.77a884a165cbba2d8d1c19e3b4880eee6d2fcabd0d879121e282196b80042351d5eb3ca0935fa599da1dc51265cc68816ad2bddd2a2de5ea9fdf92adbec7cd34",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -55,10 +64,12 @@
|
|||||||
"dist_ts_web/**/*",
|
"dist_ts_web/**/*",
|
||||||
"assets/**/*",
|
"assets/**/*",
|
||||||
"cli.js",
|
"cli.js",
|
||||||
"npmextra.json",
|
".smartconfig.json",
|
||||||
"readme.md"
|
"readme.md"
|
||||||
],
|
],
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
"overrides": {}
|
"overrides": {
|
||||||
|
"lru-cache": ">=11.0.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
248
pnpm-lock.yaml
generated
248
pnpm-lock.yaml
generated
@@ -4,22 +4,25 @@ settings:
|
|||||||
autoInstallPeers: true
|
autoInstallPeers: true
|
||||||
excludeLinksFromLockfile: false
|
excludeLinksFromLockfile: false
|
||||||
|
|
||||||
|
overrides:
|
||||||
|
lru-cache: '>=11.0.0'
|
||||||
|
|
||||||
importers:
|
importers:
|
||||||
|
|
||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik':
|
'@push.rocks/lik':
|
||||||
specifier: ^6.3.1
|
specifier: ^6.4.0
|
||||||
version: 6.3.1
|
version: 6.4.0
|
||||||
'@push.rocks/npmextra':
|
|
||||||
specifier: ^5.3.3
|
|
||||||
version: 5.3.3
|
|
||||||
'@push.rocks/projectinfo':
|
'@push.rocks/projectinfo':
|
||||||
specifier: ^5.0.2
|
specifier: ^5.0.2
|
||||||
version: 5.0.2
|
version: 5.0.2
|
||||||
'@push.rocks/smartcli':
|
'@push.rocks/smartcli':
|
||||||
specifier: ^4.0.20
|
specifier: ^4.0.20
|
||||||
version: 4.0.20
|
version: 4.0.20
|
||||||
|
'@push.rocks/smartconfig':
|
||||||
|
specifier: ^6.0.1
|
||||||
|
version: 6.0.1
|
||||||
'@push.rocks/smartfs':
|
'@push.rocks/smartfs':
|
||||||
specifier: ^1.5.0
|
specifier: ^1.5.0
|
||||||
version: 1.5.0
|
version: 1.5.0
|
||||||
@@ -36,18 +39,18 @@ importers:
|
|||||||
specifier: ^1.0.9
|
specifier: ^1.0.9
|
||||||
version: 1.0.9
|
version: 1.0.9
|
||||||
'@push.rocks/smartshell':
|
'@push.rocks/smartshell':
|
||||||
specifier: ^3.3.7
|
specifier: ^3.3.8
|
||||||
version: 3.3.7
|
version: 3.3.8
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@git.zone/tsbuild':
|
'@git.zone/tsbuild':
|
||||||
specifier: ^4.3.0
|
specifier: ^4.4.0
|
||||||
version: 4.3.0
|
version: 4.4.0
|
||||||
'@git.zone/tsrun':
|
'@git.zone/tsrun':
|
||||||
specifier: ^2.0.1
|
specifier: ^2.0.1
|
||||||
version: 2.0.1
|
version: 2.0.1
|
||||||
'@git.zone/tstest':
|
'@git.zone/tstest':
|
||||||
specifier: ^3.3.2
|
specifier: ^3.5.1
|
||||||
version: 3.3.2(socks@2.8.7)(typescript@5.9.3)
|
version: 3.5.1(socks@2.8.7)(typescript@6.0.2)
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^25.5.0
|
specifier: ^25.5.0
|
||||||
version: 25.5.0
|
version: 25.5.0
|
||||||
@@ -420,24 +423,24 @@ packages:
|
|||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@git.zone/tsbuild@4.3.0':
|
'@git.zone/tsbuild@4.4.0':
|
||||||
resolution: {integrity: sha512-lb6eMQ8RQPaJqAB4kC++GIElOiTAH1pClmoND/q7XHuiMZxv6cXz2/U/sZt339mon2c40dXRG2tkLF2jRsP0pQ==}
|
resolution: {integrity: sha512-98igHfppi6blFYDyzNukNkj4FUO5ZlyXEaSyJh8vCkkZM8SyAgfZj+NUWA1D1iaPXE58UvK1Pt/o8p8iI9UHHw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
'@git.zone/tsbundle@2.9.1':
|
'@git.zone/tsbundle@2.9.1':
|
||||||
resolution: {integrity: sha512-JW1xjSv7UjAm2lwAQPxhCWs14wqs+UIq5FqIGUPuI6rrDBWIMT2d0gpP6iP6TqXqgm6XpBlfU4rHcHheUXzXbQ==}
|
resolution: {integrity: sha512-JW1xjSv7UjAm2lwAQPxhCWs14wqs+UIq5FqIGUPuI6rrDBWIMT2d0gpP6iP6TqXqgm6XpBlfU4rHcHheUXzXbQ==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
'@git.zone/tspublish@1.11.2':
|
'@git.zone/tspublish@1.11.3':
|
||||||
resolution: {integrity: sha512-BcGap1OzXDgXpfQXMh9W17r/CkWNhPsJ3WzjG2wrGE+ePUJCJAm9w6+J8G5WdZZcZKPqTB07cp707LbSiksc5A==}
|
resolution: {integrity: sha512-hYpnNc1f2OXrBNKKtQN3MBeflnw/6jI6v8lP6IlX79r7Aczg5DVa+s40gJt9vliftaLyDY/FRFixZifv4MnKGw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
'@git.zone/tsrun@2.0.1':
|
'@git.zone/tsrun@2.0.1':
|
||||||
resolution: {integrity: sha512-NEcnsjvlC1o3Z6SS3VhKCf6Ev+Sh4EAinmggslrIR/ppMrvjDbXNFXoyr3PB+GLeSAR0JRZ1fGvVYjpEzjBdIg==}
|
resolution: {integrity: sha512-NEcnsjvlC1o3Z6SS3VhKCf6Ev+Sh4EAinmggslrIR/ppMrvjDbXNFXoyr3PB+GLeSAR0JRZ1fGvVYjpEzjBdIg==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
'@git.zone/tstest@3.3.2':
|
'@git.zone/tstest@3.5.1':
|
||||||
resolution: {integrity: sha512-1R3VMEg+VMeMlSTIzIYTAsRIHuZMlpWmG1j4Q1cPSSw3jOp79OD7sJxfHkqy4bO/nTTcKMGXs5DD1nhT7Xno8w==}
|
resolution: {integrity: sha512-R1T3Tr9zun0B5bFq8qK8/KZ2uqHZHfDPB3/mhoL5ekwxGSI4InX5sXMpbNuhw2EdNZ7rMAHNCyeSLz2PwFmNZw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
'@img/colour@1.1.0':
|
'@img/colour@1.1.0':
|
||||||
@@ -861,8 +864,8 @@ packages:
|
|||||||
'@push.rocks/levelcache@3.2.0':
|
'@push.rocks/levelcache@3.2.0':
|
||||||
resolution: {integrity: sha512-Ch0Oguta2I0SVi704kHghhBcgfyfS92ua1elRu9d8X1/9LMRYuqvvBAnyXyFxQzI3S8q8QC6EkRdd8CAAYSzRg==}
|
resolution: {integrity: sha512-Ch0Oguta2I0SVi704kHghhBcgfyfS92ua1elRu9d8X1/9LMRYuqvvBAnyXyFxQzI3S8q8QC6EkRdd8CAAYSzRg==}
|
||||||
|
|
||||||
'@push.rocks/lik@6.3.1':
|
'@push.rocks/lik@6.4.0':
|
||||||
resolution: {integrity: sha512-UWDwGBaVx5yPtAFXqDDBtQZCzETUOA/7myQIXb+YBsuiIw4yQuhNZ23uY2ChQH2Zn6DLqdNSgQcYC0WywMZBNQ==}
|
resolution: {integrity: sha512-GCdXyF2a6NP+i0W6Mib1PjtA6JGrl6Ae17SbaQwqTscn4JHNta6xm9r+D8/b83XGZsoU903FlJZli3YqJCxT9Q==}
|
||||||
|
|
||||||
'@push.rocks/mongodump@1.1.0':
|
'@push.rocks/mongodump@1.1.0':
|
||||||
resolution: {integrity: sha512-kW0ZUGyf1e4nwloVwBQjNId+MzgTcNS834C+RxH21i1NqyOubbpWZtJtPP+K+s35nSJRyCTy3ICfBMdDBTAm2w==}
|
resolution: {integrity: sha512-kW0ZUGyf1e4nwloVwBQjNId+MzgTcNS834C+RxH21i1NqyOubbpWZtJtPP+K+s35nSJRyCTy3ICfBMdDBTAm2w==}
|
||||||
@@ -897,6 +900,9 @@ packages:
|
|||||||
'@push.rocks/smartclickhouse@2.2.0':
|
'@push.rocks/smartclickhouse@2.2.0':
|
||||||
resolution: {integrity: sha512-eTzKiREIPSzL1kPkVyD6vEbn+WV/DvQqDjP67VlhNlQGbRcemnJG/eLrUUR1ytmdIqnsZGEK6UYBgyj5nhzLNQ==}
|
resolution: {integrity: sha512-eTzKiREIPSzL1kPkVyD6vEbn+WV/DvQqDjP67VlhNlQGbRcemnJG/eLrUUR1ytmdIqnsZGEK6UYBgyj5nhzLNQ==}
|
||||||
|
|
||||||
|
'@push.rocks/smartconfig@6.0.1':
|
||||||
|
resolution: {integrity: sha512-nuUbiOTy7WbDliZV2mG1VRaeJYygtBlLNVs3LmLoPmBzbZwwUMq+HFVS19BhXxmQnGZ5+JXW05dZXKfMqEDZnw==}
|
||||||
|
|
||||||
'@push.rocks/smartcrypto@2.0.4':
|
'@push.rocks/smartcrypto@2.0.4':
|
||||||
resolution: {integrity: sha512-1+/5bsjyataf5uUkUNnnVXGRAt+gHVk1KDzozjTqgqJxHvQk1d9fVDohL6CxUhUucTPtu5VR5xNBiV8YCDuGyw==}
|
resolution: {integrity: sha512-1+/5bsjyataf5uUkUNnnVXGRAt+gHVk1KDzozjTqgqJxHvQk1d9fVDohL6CxUhUucTPtu5VR5xNBiV8YCDuGyw==}
|
||||||
|
|
||||||
@@ -1029,20 +1035,17 @@ packages:
|
|||||||
'@push.rocks/smartrouter@1.3.3':
|
'@push.rocks/smartrouter@1.3.3':
|
||||||
resolution: {integrity: sha512-1+xZEnWlhzqLWAaJ1zFNhQ0zgbfCWQl1DBT72LygLxTs+P0K8AwJKgqo/IX6CT55kGCFnPAZIYSbVJlGsgrB0w==}
|
resolution: {integrity: sha512-1+xZEnWlhzqLWAaJ1zFNhQ0zgbfCWQl1DBT72LygLxTs+P0K8AwJKgqo/IX6CT55kGCFnPAZIYSbVJlGsgrB0w==}
|
||||||
|
|
||||||
'@push.rocks/smartrust@1.3.1':
|
'@push.rocks/smartrust@1.3.2':
|
||||||
resolution: {integrity: sha512-3ApbgF6yGeE2TRQxBY9Y48H1JlpcRheIp7QDBLSSfk80Uoe6fjdgBAfNz3Ir8hW3RZ3b7hA3sm1ZshCok58SEA==}
|
resolution: {integrity: sha512-HPzSJgDnKUdE5fkn2+BC9JvFXk7wl6aURAiHAXjHSCBLtzfgB7jEXjlg+K6CEfMjwQV7sy+hYABlq5DLXcFseQ==}
|
||||||
|
|
||||||
'@push.rocks/smartrx@3.0.10':
|
'@push.rocks/smartrx@3.0.10':
|
||||||
resolution: {integrity: sha512-USjIYcsSfzn14cwOsxgq/bBmWDTTzy3ouWAnW5NdMyRRzEbmeNrvmy6TRqNeDlJ2PsYNTt1rr/zGUqvIy72ITg==}
|
resolution: {integrity: sha512-USjIYcsSfzn14cwOsxgq/bBmWDTTzy3ouWAnW5NdMyRRzEbmeNrvmy6TRqNeDlJ2PsYNTt1rr/zGUqvIy72ITg==}
|
||||||
|
|
||||||
'@push.rocks/smarts3@5.3.0':
|
|
||||||
resolution: {integrity: sha512-6bo55ovCDEylbTxwPFZYDrZrz2babQEUmxHIexmVcP2j+6LYRHDbGYnWoyKdtqniqDFZ04pFkOoZ85hUzU5xCw==}
|
|
||||||
|
|
||||||
'@push.rocks/smartserve@2.0.1':
|
'@push.rocks/smartserve@2.0.1':
|
||||||
resolution: {integrity: sha512-YQb2qexfCzCqOlLWBBXKMg6xG4zahCPAxomz/KEKAwHtW6wMTtuHKSTSkRTQ0vl9jssLMAmRz2OyafiL9XGJXQ==}
|
resolution: {integrity: sha512-YQb2qexfCzCqOlLWBBXKMg6xG4zahCPAxomz/KEKAwHtW6wMTtuHKSTSkRTQ0vl9jssLMAmRz2OyafiL9XGJXQ==}
|
||||||
|
|
||||||
'@push.rocks/smartshell@3.3.7':
|
'@push.rocks/smartshell@3.3.8':
|
||||||
resolution: {integrity: sha512-b3st2+FjHUVhZZRlXfw93+SQA0UMVlURqe55uVpWdjJX7jeGXTTeszuYygtiR99zC5iZ8WZhGDct3N2L1qc/qw==}
|
resolution: {integrity: sha512-t9J/py0vnea4ZtOs7Anc9dc6lcvg6EDvYBw5eE1mB+KUWxMQf/ROIQwWMo6B9SMNY4JS2UwvfuJQJ8makP/7Tg==}
|
||||||
|
|
||||||
'@push.rocks/smartspawn@3.0.3':
|
'@push.rocks/smartspawn@3.0.3':
|
||||||
resolution: {integrity: sha512-DyrGPV69wwOiJgKkyruk5hS3UEGZ99xFAqBE9O2nM8VXCRLbbty3xt1Ug5Z092ZZmJYaaGMSnMw3ijyZJFCT0Q==}
|
resolution: {integrity: sha512-DyrGPV69wwOiJgKkyruk5hS3UEGZ99xFAqBE9O2nM8VXCRLbbty3xt1Ug5Z092ZZmJYaaGMSnMw3ijyZJFCT0Q==}
|
||||||
@@ -1050,6 +1053,9 @@ packages:
|
|||||||
'@push.rocks/smartstate@2.2.1':
|
'@push.rocks/smartstate@2.2.1':
|
||||||
resolution: {integrity: sha512-fLrilAJNI6QOs0hcBRD9eTwU2Rlo6NlDCKQo9N/zyp0VJ6AV1UVdEZcVIQILu1CO0RUHX9aBAbFunJrb2+Zrkg==}
|
resolution: {integrity: sha512-fLrilAJNI6QOs0hcBRD9eTwU2Rlo6NlDCKQo9N/zyp0VJ6AV1UVdEZcVIQILu1CO0RUHX9aBAbFunJrb2+Zrkg==}
|
||||||
|
|
||||||
|
'@push.rocks/smartstorage@6.3.2':
|
||||||
|
resolution: {integrity: sha512-g8rXlVZ+6iKmzNoybtwQntdb7EWA6WnVmbXNOdwDKWR8w4o/7UMErj+H5mt57iqYIy1pzQAoTb8IWJNsti7XQw==}
|
||||||
|
|
||||||
'@push.rocks/smartstream@2.0.8':
|
'@push.rocks/smartstream@2.0.8':
|
||||||
resolution: {integrity: sha512-GlF/9cCkvBHwKa3DK4DO5wjfSgqkj6gAS4TrY9uD5NMHu9RQv4WiNrElTYj7iCEpnZgUnLO3tzw1JA3NRIMnnA==}
|
resolution: {integrity: sha512-GlF/9cCkvBHwKa3DK4DO5wjfSgqkj6gAS4TrY9uD5NMHu9RQv4WiNrElTYj7iCEpnZgUnLO3tzw1JA3NRIMnnA==}
|
||||||
|
|
||||||
@@ -1512,8 +1518,8 @@ packages:
|
|||||||
'@tsclass/tsclass@4.4.4':
|
'@tsclass/tsclass@4.4.4':
|
||||||
resolution: {integrity: sha512-YZOAF+u+r4u5rCev2uUd1KBTBdfyFdtDmcv4wuN+864lMccbdfRICR3SlJwCfYS1lbeV3QNLYGD30wjRXgvCJA==}
|
resolution: {integrity: sha512-YZOAF+u+r4u5rCev2uUd1KBTBdfyFdtDmcv4wuN+864lMccbdfRICR3SlJwCfYS1lbeV3QNLYGD30wjRXgvCJA==}
|
||||||
|
|
||||||
'@tsclass/tsclass@9.3.0':
|
'@tsclass/tsclass@9.5.0':
|
||||||
resolution: {integrity: sha512-KD3oTUN3RGu67tgjNHgWWZGsdYipr1RUDxQ9MMKSgIJ6oNZ4q5m2rg0ibrgyHWkAjTPlHVa6kHP3uVOY+8bnHw==}
|
resolution: {integrity: sha512-HwMVwkrBnEFMjwOsMkGwWN/q+XEczSpf4a/PBAXgkDdV6sXdxAMFXUH1tW8Y5ecuvXFYMvFry4X57MCCT7Dm8A==}
|
||||||
|
|
||||||
'@tybys/wasm-util@0.10.1':
|
'@tybys/wasm-util@0.10.1':
|
||||||
resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
|
resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
|
||||||
@@ -1587,9 +1593,6 @@ packages:
|
|||||||
'@types/semver@7.7.1':
|
'@types/semver@7.7.1':
|
||||||
resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==}
|
resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==}
|
||||||
|
|
||||||
'@types/symbol-tree@3.2.5':
|
|
||||||
resolution: {integrity: sha512-zXnnyENt1TYQcS21MkPaJCVjfcPq7p7yc5mo5JACuumXp6sly5jnlS0IokHd+xmmuCbx6V7JqkMBpswR+nZAcw==}
|
|
||||||
|
|
||||||
'@types/tar-stream@3.1.4':
|
'@types/tar-stream@3.1.4':
|
||||||
resolution: {integrity: sha512-921gW0+g29mCJX0fRvqeHzBlE/XclDaAG0Ousy1LCghsOhvaKacDeRGEVzQP9IPfKn8Vysy7FEXAIxycpc/CMg==}
|
resolution: {integrity: sha512-921gW0+g29mCJX0fRvqeHzBlE/XclDaAG0Ousy1LCghsOhvaKacDeRGEVzQP9IPfKn8Vysy7FEXAIxycpc/CMg==}
|
||||||
|
|
||||||
@@ -2482,17 +2485,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
|
resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
|
||||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||||
|
|
||||||
lru-cache@10.4.3:
|
|
||||||
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
|
|
||||||
|
|
||||||
lru-cache@11.2.2:
|
lru-cache@11.2.2:
|
||||||
resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==}
|
resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==}
|
||||||
engines: {node: 20 || >=22}
|
engines: {node: 20 || >=22}
|
||||||
|
|
||||||
lru-cache@7.18.3:
|
|
||||||
resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
|
|
||||||
make-dir@3.1.0:
|
make-dir@3.1.0:
|
||||||
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
|
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -3233,6 +3229,10 @@ packages:
|
|||||||
os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
|
os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
tagged-tag@1.0.0:
|
||||||
|
resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==}
|
||||||
|
engines: {node: '>=20'}
|
||||||
|
|
||||||
tar-fs@3.1.2:
|
tar-fs@3.1.2:
|
||||||
resolution: {integrity: sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==}
|
resolution: {integrity: sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==}
|
||||||
|
|
||||||
@@ -3312,6 +3312,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
|
resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
|
||||||
engines: {node: '>=16'}
|
engines: {node: '>=16'}
|
||||||
|
|
||||||
|
type-fest@5.5.0:
|
||||||
|
resolution: {integrity: sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==}
|
||||||
|
engines: {node: '>=20'}
|
||||||
|
|
||||||
typed-query-selector@2.12.1:
|
typed-query-selector@2.12.1:
|
||||||
resolution: {integrity: sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA==}
|
resolution: {integrity: sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA==}
|
||||||
|
|
||||||
@@ -3320,6 +3324,11 @@ packages:
|
|||||||
engines: {node: '>=14.17'}
|
engines: {node: '>=14.17'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
typescript@6.0.2:
|
||||||
|
resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==}
|
||||||
|
engines: {node: '>=14.17'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
uglify-js@3.19.3:
|
uglify-js@3.19.3:
|
||||||
resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
|
resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
|
||||||
engines: {node: '>=0.8.0'}
|
engines: {node: '>=0.8.0'}
|
||||||
@@ -3484,7 +3493,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@api.global/typedrequest-interfaces': 3.0.19
|
'@api.global/typedrequest-interfaces': 3.0.19
|
||||||
'@push.rocks/isounique': 1.0.5
|
'@push.rocks/isounique': 1.0.5
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartbuffer': 3.0.5
|
'@push.rocks/smartbuffer': 3.0.5
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartguard': 3.1.0
|
'@push.rocks/smartguard': 3.1.0
|
||||||
@@ -3967,7 +3976,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@api.global/typedrequest': 3.3.0
|
'@api.global/typedrequest': 3.3.0
|
||||||
'@design.estate/dees-comms': 1.0.30
|
'@design.estate/dees-comms': 1.0.30
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartjson': 6.0.0
|
'@push.rocks/smartjson': 6.0.0
|
||||||
'@push.rocks/smartmarkdown': 3.0.3
|
'@push.rocks/smartmarkdown': 3.0.3
|
||||||
@@ -4095,9 +4104,9 @@ snapshots:
|
|||||||
'@esbuild/win32-x64@0.27.4':
|
'@esbuild/win32-x64@0.27.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@git.zone/tsbuild@4.3.0':
|
'@git.zone/tsbuild@4.4.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@git.zone/tspublish': 1.11.2
|
'@git.zone/tspublish': 1.11.3
|
||||||
'@push.rocks/early': 4.0.4
|
'@push.rocks/early': 4.0.4
|
||||||
'@push.rocks/smartcli': 4.0.20
|
'@push.rocks/smartcli': 4.0.20
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
@@ -4106,7 +4115,7 @@ snapshots:
|
|||||||
'@push.rocks/smartlog': 3.2.1
|
'@push.rocks/smartlog': 3.2.1
|
||||||
'@push.rocks/smartpath': 6.0.0
|
'@push.rocks/smartpath': 6.0.0
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
typescript: 5.9.3
|
typescript: 6.0.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@nuxt/kit'
|
- '@nuxt/kit'
|
||||||
- aws-crt
|
- aws-crt
|
||||||
@@ -4143,11 +4152,11 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- vue
|
- vue
|
||||||
|
|
||||||
'@git.zone/tspublish@1.11.2':
|
'@git.zone/tspublish@1.11.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/consolecolor': 2.0.3
|
'@push.rocks/consolecolor': 2.0.3
|
||||||
'@push.rocks/npmextra': 5.3.3
|
|
||||||
'@push.rocks/smartcli': 4.0.20
|
'@push.rocks/smartcli': 4.0.20
|
||||||
|
'@push.rocks/smartconfig': 6.0.1
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartfile': 13.1.2
|
'@push.rocks/smartfile': 13.1.2
|
||||||
'@push.rocks/smartfs': 1.5.0
|
'@push.rocks/smartfs': 1.5.0
|
||||||
@@ -4155,7 +4164,7 @@ snapshots:
|
|||||||
'@push.rocks/smartnpm': 2.0.6
|
'@push.rocks/smartnpm': 2.0.6
|
||||||
'@push.rocks/smartpath': 6.0.0
|
'@push.rocks/smartpath': 6.0.0
|
||||||
'@push.rocks/smartrequest': 5.0.1
|
'@push.rocks/smartrequest': 5.0.1
|
||||||
'@push.rocks/smartshell': 3.3.7
|
'@push.rocks/smartshell': 3.3.8
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@nuxt/kit'
|
- '@nuxt/kit'
|
||||||
- aws-crt
|
- aws-crt
|
||||||
@@ -4169,16 +4178,16 @@ snapshots:
|
|||||||
'@git.zone/tsrun@2.0.1':
|
'@git.zone/tsrun@2.0.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/smartfile': 13.1.2
|
'@push.rocks/smartfile': 13.1.2
|
||||||
'@push.rocks/smartshell': 3.3.7
|
'@push.rocks/smartshell': 3.3.8
|
||||||
tsx: 4.21.0
|
tsx: 4.21.0
|
||||||
|
|
||||||
'@git.zone/tstest@3.3.2(socks@2.8.7)(typescript@5.9.3)':
|
'@git.zone/tstest@3.5.1(socks@2.8.7)(typescript@6.0.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@git.zone/tsbundle': 2.9.1
|
'@git.zone/tsbundle': 2.9.1
|
||||||
'@git.zone/tsrun': 2.0.1
|
'@git.zone/tsrun': 2.0.1
|
||||||
'@push.rocks/consolecolor': 2.0.3
|
'@push.rocks/consolecolor': 2.0.3
|
||||||
'@push.rocks/qenv': 6.1.3
|
'@push.rocks/qenv': 6.1.3
|
||||||
'@push.rocks/smartbrowser': 2.0.11(typescript@5.9.3)
|
'@push.rocks/smartbrowser': 2.0.11(typescript@6.0.2)
|
||||||
'@push.rocks/smartcrypto': 2.0.4
|
'@push.rocks/smartcrypto': 2.0.4
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartenv': 6.0.0
|
'@push.rocks/smartenv': 6.0.0
|
||||||
@@ -4192,9 +4201,9 @@ snapshots:
|
|||||||
'@push.rocks/smartpath': 6.0.0
|
'@push.rocks/smartpath': 6.0.0
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
'@push.rocks/smartrequest': 5.0.1
|
'@push.rocks/smartrequest': 5.0.1
|
||||||
'@push.rocks/smarts3': 5.3.0
|
|
||||||
'@push.rocks/smartserve': 2.0.1
|
'@push.rocks/smartserve': 2.0.1
|
||||||
'@push.rocks/smartshell': 3.3.7
|
'@push.rocks/smartshell': 3.3.8
|
||||||
|
'@push.rocks/smartstorage': 6.3.2
|
||||||
'@push.rocks/smarttime': 4.2.3
|
'@push.rocks/smarttime': 4.2.3
|
||||||
'@push.rocks/smartwatch': 6.3.0
|
'@push.rocks/smartwatch': 6.3.0
|
||||||
'@types/ws': 8.18.1
|
'@types/ws': 8.18.1
|
||||||
@@ -4805,7 +4814,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/levelcache@3.2.0':
|
'@push.rocks/levelcache@3.2.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartbucket': 3.3.10
|
'@push.rocks/smartbucket': 3.3.10
|
||||||
'@push.rocks/smartcache': 1.0.18
|
'@push.rocks/smartcache': 1.0.18
|
||||||
'@push.rocks/smartenv': 5.0.13
|
'@push.rocks/smartenv': 5.0.13
|
||||||
@@ -4817,7 +4826,7 @@ snapshots:
|
|||||||
'@push.rocks/smartstring': 4.1.0
|
'@push.rocks/smartstring': 4.1.0
|
||||||
'@push.rocks/smartunique': 3.0.9
|
'@push.rocks/smartunique': 3.0.9
|
||||||
'@push.rocks/taskbuffer': 3.5.0
|
'@push.rocks/taskbuffer': 3.5.0
|
||||||
'@tsclass/tsclass': 9.3.0
|
'@tsclass/tsclass': 9.5.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@nuxt/kit'
|
- '@nuxt/kit'
|
||||||
- aws-crt
|
- aws-crt
|
||||||
@@ -4825,25 +4834,23 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- vue
|
- vue
|
||||||
|
|
||||||
'@push.rocks/lik@6.3.1':
|
'@push.rocks/lik@6.4.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartmatch': 2.0.0
|
'@push.rocks/smartmatch': 2.0.0
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
'@push.rocks/smartrx': 3.0.10
|
'@push.rocks/smartrx': 3.0.10
|
||||||
'@push.rocks/smarttime': 4.2.3
|
'@push.rocks/smarttime': 4.2.3
|
||||||
'@types/minimatch': 5.1.2
|
|
||||||
'@types/symbol-tree': 3.2.5
|
|
||||||
symbol-tree: 3.2.4
|
symbol-tree: 3.2.4
|
||||||
|
|
||||||
'@push.rocks/mongodump@1.1.0(socks@2.8.7)':
|
'@push.rocks/mongodump@1.1.0(socks@2.8.7)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartfile': 11.2.7
|
'@push.rocks/smartfile': 11.2.7
|
||||||
'@push.rocks/smartjson': 5.2.0
|
'@push.rocks/smartjson': 5.2.0
|
||||||
'@push.rocks/smartpath': 6.0.0
|
'@push.rocks/smartpath': 6.0.0
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
'@tsclass/tsclass': 9.3.0
|
'@tsclass/tsclass': 9.5.0
|
||||||
mongodb: 6.21.0(socks@2.8.7)
|
mongodb: 6.21.0(socks@2.8.7)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@aws-sdk/credential-providers'
|
- '@aws-sdk/credential-providers'
|
||||||
@@ -4864,7 +4871,7 @@ snapshots:
|
|||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
'@push.rocks/smartrx': 3.0.10
|
'@push.rocks/smartrx': 3.0.10
|
||||||
'@push.rocks/taskbuffer': 3.5.0
|
'@push.rocks/taskbuffer': 3.5.0
|
||||||
'@tsclass/tsclass': 9.3.0
|
'@tsclass/tsclass': 9.5.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@nuxt/kit'
|
- '@nuxt/kit'
|
||||||
- react
|
- react
|
||||||
@@ -4907,11 +4914,11 @@ snapshots:
|
|||||||
- react-native-b4a
|
- react-native-b4a
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@push.rocks/smartbrowser@2.0.11(typescript@5.9.3)':
|
'@push.rocks/smartbrowser@2.0.11(typescript@6.0.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartpdf': 4.2.0(typescript@5.9.3)
|
'@push.rocks/smartpdf': 4.2.0(typescript@6.0.2)
|
||||||
'@push.rocks/smartpuppeteer': 2.0.5(typescript@5.9.3)
|
'@push.rocks/smartpuppeteer': 2.0.5(typescript@6.0.2)
|
||||||
'@push.rocks/smartunique': 3.0.9
|
'@push.rocks/smartunique': 3.0.9
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@nuxt/kit'
|
- '@nuxt/kit'
|
||||||
@@ -4936,7 +4943,7 @@ snapshots:
|
|||||||
'@push.rocks/smartstream': 3.4.0
|
'@push.rocks/smartstream': 3.4.0
|
||||||
'@push.rocks/smartstring': 4.1.0
|
'@push.rocks/smartstring': 4.1.0
|
||||||
'@push.rocks/smartunique': 3.0.9
|
'@push.rocks/smartunique': 3.0.9
|
||||||
'@tsclass/tsclass': 9.3.0
|
'@tsclass/tsclass': 9.5.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- aws-crt
|
- aws-crt
|
||||||
|
|
||||||
@@ -4954,7 +4961,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartcli@4.0.20':
|
'@push.rocks/smartcli@4.0.20':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartlog': 3.2.1
|
'@push.rocks/smartlog': 3.2.1
|
||||||
'@push.rocks/smartobject': 1.0.12
|
'@push.rocks/smartobject': 1.0.12
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
@@ -4970,6 +4977,23 @@ snapshots:
|
|||||||
'@push.rocks/smarturl': 3.1.0
|
'@push.rocks/smarturl': 3.1.0
|
||||||
'@push.rocks/webrequest': 4.0.5
|
'@push.rocks/webrequest': 4.0.5
|
||||||
|
|
||||||
|
'@push.rocks/smartconfig@6.0.1':
|
||||||
|
dependencies:
|
||||||
|
'@push.rocks/qenv': 6.1.3
|
||||||
|
'@push.rocks/smartfile': 11.2.7
|
||||||
|
'@push.rocks/smartjson': 5.2.0
|
||||||
|
'@push.rocks/smartlog': 3.2.1
|
||||||
|
'@push.rocks/smartpath': 6.0.0
|
||||||
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
|
'@push.rocks/smartrx': 3.0.10
|
||||||
|
'@push.rocks/taskbuffer': 3.5.0
|
||||||
|
'@tsclass/tsclass': 9.5.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- '@nuxt/kit'
|
||||||
|
- react
|
||||||
|
- supports-color
|
||||||
|
- vue
|
||||||
|
|
||||||
'@push.rocks/smartcrypto@2.0.4':
|
'@push.rocks/smartcrypto@2.0.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
@@ -4978,7 +5002,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartdata@5.16.7(socks@2.8.7)':
|
'@push.rocks/smartdata@5.16.7(socks@2.8.7)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartlog': 3.2.1
|
'@push.rocks/smartlog': 3.2.1
|
||||||
'@push.rocks/smartmongo': 2.2.0(socks@2.8.7)
|
'@push.rocks/smartmongo': 2.2.0(socks@2.8.7)
|
||||||
@@ -4988,7 +5012,7 @@ snapshots:
|
|||||||
'@push.rocks/smarttime': 4.2.3
|
'@push.rocks/smarttime': 4.2.3
|
||||||
'@push.rocks/smartunique': 3.0.9
|
'@push.rocks/smartunique': 3.0.9
|
||||||
'@push.rocks/taskbuffer': 3.5.0
|
'@push.rocks/taskbuffer': 3.5.0
|
||||||
'@tsclass/tsclass': 9.3.0
|
'@tsclass/tsclass': 9.5.0
|
||||||
mongodb: 6.21.0(socks@2.8.7)
|
mongodb: 6.21.0(socks@2.8.7)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@aws-sdk/credential-providers'
|
- '@aws-sdk/credential-providers'
|
||||||
@@ -5015,8 +5039,8 @@ snapshots:
|
|||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartenv': 6.0.0
|
'@push.rocks/smartenv': 6.0.0
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
'@push.rocks/smartrust': 1.3.1
|
'@push.rocks/smartrust': 1.3.2
|
||||||
'@tsclass/tsclass': 9.3.0
|
'@tsclass/tsclass': 9.5.0
|
||||||
acme-client: 5.4.0
|
acme-client: 5.4.0
|
||||||
minimatch: 10.2.4
|
minimatch: 10.2.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -5037,14 +5061,14 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartexit@1.1.1':
|
'@push.rocks/smartexit@1.1.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
tree-kill: 1.2.2
|
tree-kill: 1.2.2
|
||||||
|
|
||||||
'@push.rocks/smartexit@2.0.3':
|
'@push.rocks/smartexit@2.0.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
|
|
||||||
'@push.rocks/smartexpect@2.5.0':
|
'@push.rocks/smartexpect@2.5.0':
|
||||||
@@ -5057,7 +5081,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartfile@10.0.41':
|
'@push.rocks/smartfile@10.0.41':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartfile-interfaces': 1.0.7
|
'@push.rocks/smartfile-interfaces': 1.0.7
|
||||||
'@push.rocks/smarthash': 3.2.6
|
'@push.rocks/smarthash': 3.2.6
|
||||||
@@ -5076,7 +5100,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartfile@11.2.7':
|
'@push.rocks/smartfile@11.2.7':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartfile-interfaces': 1.0.7
|
'@push.rocks/smartfile-interfaces': 1.0.7
|
||||||
'@push.rocks/smarthash': 3.2.6
|
'@push.rocks/smarthash': 3.2.6
|
||||||
@@ -5094,7 +5118,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartfile@13.1.2':
|
'@push.rocks/smartfile@13.1.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartfile-interfaces': 1.0.7
|
'@push.rocks/smartfile-interfaces': 1.0.7
|
||||||
'@push.rocks/smartfs': 1.5.0
|
'@push.rocks/smartfs': 1.5.0
|
||||||
@@ -5112,7 +5136,7 @@ snapshots:
|
|||||||
'@push.rocks/smartfs@1.5.0':
|
'@push.rocks/smartfs@1.5.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/smartpath': 6.0.0
|
'@push.rocks/smartpath': 6.0.0
|
||||||
'@push.rocks/smartrust': 1.3.1
|
'@push.rocks/smartrust': 1.3.2
|
||||||
|
|
||||||
'@push.rocks/smartguard@3.1.0':
|
'@push.rocks/smartguard@3.1.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -5129,7 +5153,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartinteract@2.0.16':
|
'@push.rocks/smartinteract@2.0.16':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartobject': 1.0.12
|
'@push.rocks/smartobject': 1.0.12
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
inquirer: 11.1.0
|
inquirer: 11.1.0
|
||||||
@@ -5191,7 +5215,7 @@ snapshots:
|
|||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
'@push.rocks/smarttime': 4.2.3
|
'@push.rocks/smarttime': 4.2.3
|
||||||
'@push.rocks/webrequest': 4.0.5
|
'@push.rocks/webrequest': 4.0.5
|
||||||
'@tsclass/tsclass': 9.3.0
|
'@tsclass/tsclass': 9.5.0
|
||||||
|
|
||||||
'@push.rocks/smartmarkdown@3.0.3':
|
'@push.rocks/smartmarkdown@3.0.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -5319,7 +5343,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartpath@6.0.0': {}
|
'@push.rocks/smartpath@6.0.0': {}
|
||||||
|
|
||||||
'@push.rocks/smartpdf@4.2.0(typescript@5.9.3)':
|
'@push.rocks/smartpdf@4.2.0(typescript@6.0.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/smartbuffer': 3.0.5
|
'@push.rocks/smartbuffer': 3.0.5
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
@@ -5328,10 +5352,10 @@ snapshots:
|
|||||||
'@push.rocks/smartnetwork': 4.4.0
|
'@push.rocks/smartnetwork': 4.4.0
|
||||||
'@push.rocks/smartpath': 6.0.0
|
'@push.rocks/smartpath': 6.0.0
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
'@push.rocks/smartpuppeteer': 2.0.5(typescript@5.9.3)
|
'@push.rocks/smartpuppeteer': 2.0.5(typescript@6.0.2)
|
||||||
'@push.rocks/smartserve': 2.0.1
|
'@push.rocks/smartserve': 2.0.1
|
||||||
'@push.rocks/smartunique': 3.0.9
|
'@push.rocks/smartunique': 3.0.9
|
||||||
'@tsclass/tsclass': 9.3.0
|
'@tsclass/tsclass': 9.5.0
|
||||||
pdf-lib: 1.17.1
|
pdf-lib: 1.17.1
|
||||||
pdf2json: 4.0.2
|
pdf2json: 4.0.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -5354,11 +5378,11 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartpromise@4.2.3': {}
|
'@push.rocks/smartpromise@4.2.3': {}
|
||||||
|
|
||||||
'@push.rocks/smartpuppeteer@2.0.5(typescript@5.9.3)':
|
'@push.rocks/smartpuppeteer@2.0.5(typescript@6.0.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartshell': 3.3.7
|
'@push.rocks/smartshell': 3.3.8
|
||||||
puppeteer: 24.39.0(typescript@5.9.3)
|
puppeteer: 24.39.0(typescript@6.0.2)
|
||||||
tree-kill: 1.2.2
|
tree-kill: 1.2.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- bare-abort-controller
|
- bare-abort-controller
|
||||||
@@ -5396,11 +5420,11 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartrouter@1.3.3':
|
'@push.rocks/smartrouter@1.3.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartrx': 3.0.10
|
'@push.rocks/smartrx': 3.0.10
|
||||||
path-to-regexp: 8.3.0
|
path-to-regexp: 8.3.0
|
||||||
|
|
||||||
'@push.rocks/smartrust@1.3.1':
|
'@push.rocks/smartrust@1.3.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/smartpath': 6.0.0
|
'@push.rocks/smartpath': 6.0.0
|
||||||
|
|
||||||
@@ -5409,17 +5433,11 @@ snapshots:
|
|||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
rxjs: 7.8.2
|
rxjs: 7.8.2
|
||||||
|
|
||||||
'@push.rocks/smarts3@5.3.0':
|
|
||||||
dependencies:
|
|
||||||
'@push.rocks/smartpath': 6.0.0
|
|
||||||
'@push.rocks/smartrust': 1.3.1
|
|
||||||
'@tsclass/tsclass': 9.3.0
|
|
||||||
|
|
||||||
'@push.rocks/smartserve@2.0.1':
|
'@push.rocks/smartserve@2.0.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@api.global/typedrequest': 3.3.0
|
'@api.global/typedrequest': 3.3.0
|
||||||
'@cfworker/json-schema': 4.1.1
|
'@cfworker/json-schema': 4.1.1
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartenv': 6.0.0
|
'@push.rocks/smartenv': 6.0.0
|
||||||
'@push.rocks/smartlog': 3.2.1
|
'@push.rocks/smartlog': 3.2.1
|
||||||
'@push.rocks/smartpath': 6.0.0
|
'@push.rocks/smartpath': 6.0.0
|
||||||
@@ -5428,7 +5446,7 @@ snapshots:
|
|||||||
- bufferutil
|
- bufferutil
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
|
|
||||||
'@push.rocks/smartshell@3.3.7':
|
'@push.rocks/smartshell@3.3.8':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartexit': 2.0.3
|
'@push.rocks/smartexit': 2.0.3
|
||||||
@@ -5453,6 +5471,12 @@ snapshots:
|
|||||||
'@push.rocks/smartrx': 3.0.10
|
'@push.rocks/smartrx': 3.0.10
|
||||||
'@push.rocks/webstore': 2.0.20
|
'@push.rocks/webstore': 2.0.20
|
||||||
|
|
||||||
|
'@push.rocks/smartstorage@6.3.2':
|
||||||
|
dependencies:
|
||||||
|
'@push.rocks/smartpath': 6.0.0
|
||||||
|
'@push.rocks/smartrust': 1.3.2
|
||||||
|
'@tsclass/tsclass': 9.5.0
|
||||||
|
|
||||||
'@push.rocks/smartstream@2.0.8':
|
'@push.rocks/smartstream@2.0.8':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
@@ -5464,7 +5488,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartstream@3.4.0':
|
'@push.rocks/smartstream@3.4.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartenv': 6.0.0
|
'@push.rocks/smartenv': 6.0.0
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
'@push.rocks/smartrx': 3.0.10
|
'@push.rocks/smartrx': 3.0.10
|
||||||
@@ -5475,7 +5499,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smarttime@4.2.3':
|
'@push.rocks/smarttime@4.2.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
croner: 10.0.1
|
croner: 10.0.1
|
||||||
@@ -5499,7 +5523,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/smartwatch@6.3.0':
|
'@push.rocks/smartwatch@6.3.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartenv': 6.0.0
|
'@push.rocks/smartenv': 6.0.0
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
'@push.rocks/smartrx': 3.0.10
|
'@push.rocks/smartrx': 3.0.10
|
||||||
@@ -5514,7 +5538,7 @@ snapshots:
|
|||||||
'@push.rocks/taskbuffer@3.5.0':
|
'@push.rocks/taskbuffer@3.5.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@design.estate/dees-element': 2.2.3
|
'@design.estate/dees-element': 2.2.3
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
'@push.rocks/smartlog': 3.2.1
|
'@push.rocks/smartlog': 3.2.1
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
@@ -5544,7 +5568,7 @@ snapshots:
|
|||||||
'@push.rocks/webstore@2.0.20':
|
'@push.rocks/webstore@2.0.20':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@api.global/typedrequest-interfaces': 3.0.19
|
'@api.global/typedrequest-interfaces': 3.0.19
|
||||||
'@push.rocks/lik': 6.3.1
|
'@push.rocks/lik': 6.4.0
|
||||||
'@push.rocks/smartenv': 5.0.13
|
'@push.rocks/smartenv': 5.0.13
|
||||||
'@push.rocks/smartjson': 5.2.0
|
'@push.rocks/smartjson': 5.2.0
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
@@ -6031,9 +6055,9 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
type-fest: 4.41.0
|
type-fest: 4.41.0
|
||||||
|
|
||||||
'@tsclass/tsclass@9.3.0':
|
'@tsclass/tsclass@9.5.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
type-fest: 4.41.0
|
type-fest: 5.5.0
|
||||||
|
|
||||||
'@tybys/wasm-util@0.10.1':
|
'@tybys/wasm-util@0.10.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -6117,8 +6141,6 @@ snapshots:
|
|||||||
|
|
||||||
'@types/semver@7.7.1': {}
|
'@types/semver@7.7.1': {}
|
||||||
|
|
||||||
'@types/symbol-tree@3.2.5': {}
|
|
||||||
|
|
||||||
'@types/tar-stream@3.1.4':
|
'@types/tar-stream@3.1.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.5.0
|
'@types/node': 25.5.0
|
||||||
@@ -6429,14 +6451,14 @@ snapshots:
|
|||||||
|
|
||||||
core-util-is@1.0.3: {}
|
core-util-is@1.0.3: {}
|
||||||
|
|
||||||
cosmiconfig@9.0.1(typescript@5.9.3):
|
cosmiconfig@9.0.1(typescript@6.0.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
env-paths: 2.2.1
|
env-paths: 2.2.1
|
||||||
import-fresh: 3.3.1
|
import-fresh: 3.3.1
|
||||||
js-yaml: 4.1.1
|
js-yaml: 4.1.1
|
||||||
parse-json: 5.2.0
|
parse-json: 5.2.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.9.3
|
typescript: 6.0.2
|
||||||
|
|
||||||
croner@10.0.1: {}
|
croner@10.0.1: {}
|
||||||
|
|
||||||
@@ -7073,12 +7095,8 @@ snapshots:
|
|||||||
|
|
||||||
lowercase-keys@3.0.0: {}
|
lowercase-keys@3.0.0: {}
|
||||||
|
|
||||||
lru-cache@10.4.3: {}
|
|
||||||
|
|
||||||
lru-cache@11.2.2: {}
|
lru-cache@11.2.2: {}
|
||||||
|
|
||||||
lru-cache@7.18.3: {}
|
|
||||||
|
|
||||||
make-dir@3.1.0:
|
make-dir@3.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
semver: 6.3.1
|
semver: 6.3.1
|
||||||
@@ -7656,7 +7674,7 @@ snapshots:
|
|||||||
|
|
||||||
path-scurry@1.11.1:
|
path-scurry@1.11.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
lru-cache: 10.4.3
|
lru-cache: 11.2.2
|
||||||
minipass: 7.1.2
|
minipass: 7.1.2
|
||||||
|
|
||||||
path-scurry@2.0.1:
|
path-scurry@2.0.1:
|
||||||
@@ -7719,7 +7737,7 @@ snapshots:
|
|||||||
debug: 4.4.3
|
debug: 4.4.3
|
||||||
http-proxy-agent: 7.0.2
|
http-proxy-agent: 7.0.2
|
||||||
https-proxy-agent: 7.0.6
|
https-proxy-agent: 7.0.6
|
||||||
lru-cache: 7.18.3
|
lru-cache: 11.2.2
|
||||||
pac-proxy-agent: 7.2.0
|
pac-proxy-agent: 7.2.0
|
||||||
proxy-from-env: 1.1.0
|
proxy-from-env: 1.1.0
|
||||||
socks-proxy-agent: 8.0.5
|
socks-proxy-agent: 8.0.5
|
||||||
@@ -7752,11 +7770,11 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
|
|
||||||
puppeteer@24.39.0(typescript@5.9.3):
|
puppeteer@24.39.0(typescript@6.0.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@puppeteer/browsers': 2.13.0
|
'@puppeteer/browsers': 2.13.0
|
||||||
chromium-bidi: 14.0.0(devtools-protocol@0.0.1581282)
|
chromium-bidi: 14.0.0(devtools-protocol@0.0.1581282)
|
||||||
cosmiconfig: 9.0.1(typescript@5.9.3)
|
cosmiconfig: 9.0.1(typescript@6.0.2)
|
||||||
devtools-protocol: 0.0.1581282
|
devtools-protocol: 0.0.1581282
|
||||||
puppeteer-core: 24.39.0
|
puppeteer-core: 24.39.0
|
||||||
typed-query-selector: 2.12.1
|
typed-query-selector: 2.12.1
|
||||||
@@ -8088,6 +8106,8 @@ snapshots:
|
|||||||
|
|
||||||
systeminformation@5.31.4: {}
|
systeminformation@5.31.4: {}
|
||||||
|
|
||||||
|
tagged-tag@1.0.0: {}
|
||||||
|
|
||||||
tar-fs@3.1.2:
|
tar-fs@3.1.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
pump: 3.0.4
|
pump: 3.0.4
|
||||||
@@ -8195,10 +8215,16 @@ snapshots:
|
|||||||
|
|
||||||
type-fest@4.41.0: {}
|
type-fest@4.41.0: {}
|
||||||
|
|
||||||
|
type-fest@5.5.0:
|
||||||
|
dependencies:
|
||||||
|
tagged-tag: 1.0.0
|
||||||
|
|
||||||
typed-query-selector@2.12.1: {}
|
typed-query-selector@2.12.1: {}
|
||||||
|
|
||||||
typescript@5.9.3: {}
|
typescript@5.9.3: {}
|
||||||
|
|
||||||
|
typescript@6.0.2: {}
|
||||||
|
|
||||||
uglify-js@3.19.3: {}
|
uglify-js@3.19.3: {}
|
||||||
|
|
||||||
uint8array-extras@1.5.0: {}
|
uint8array-extras@1.5.0: {}
|
||||||
|
|||||||
@@ -3,26 +3,27 @@
|
|||||||
## Module Purpose
|
## Module Purpose
|
||||||
|
|
||||||
tsdocker is a comprehensive Docker development and building tool. It provides:
|
tsdocker is a comprehensive Docker development and building tool. It provides:
|
||||||
|
|
||||||
- Building Dockerfiles with dependency ordering
|
- Building Dockerfiles with dependency ordering
|
||||||
- Multi-registry push/pull support
|
- Multi-registry push/pull support
|
||||||
- Multi-architecture builds (amd64/arm64)
|
- Multi-architecture builds (amd64/arm64)
|
||||||
|
|
||||||
## New CLI Commands (2026-01-19)
|
## New CLI Commands (2026-01-19)
|
||||||
|
|
||||||
| Command | Description |
|
| Command | Description |
|
||||||
|---------|-------------|
|
| -------------------------- | ---------------------------------------------- |
|
||||||
| `tsdocker` | Show usage / man page |
|
| `tsdocker` | Show usage / man page |
|
||||||
| `tsdocker build` | Build all Dockerfiles with dependency ordering |
|
| `tsdocker build` | Build all Dockerfiles with dependency ordering |
|
||||||
| `tsdocker push [registry]` | Push images to configured registries |
|
| `tsdocker push [registry]` | Push images to configured registries |
|
||||||
| `tsdocker pull <registry>` | Pull images from registry |
|
| `tsdocker pull <registry>` | Pull images from registry |
|
||||||
| `tsdocker test` | Run container tests (test scripts) |
|
| `tsdocker test` | Run container tests (test scripts) |
|
||||||
| `tsdocker login` | Login to configured registries |
|
| `tsdocker login` | Login to configured registries |
|
||||||
| `tsdocker list` | List discovered Dockerfiles and dependencies |
|
| `tsdocker list` | List discovered Dockerfiles and dependencies |
|
||||||
| `tsdocker clean --all` | Clean up Docker environment |
|
| `tsdocker clean --all` | Clean up Docker environment |
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
Configure in `package.json` under `@git.zone/tsdocker`:
|
Configure in `.smartconfig.json` under `@git.zone/tsdocker`:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@@ -106,6 +107,7 @@ Implementation: `Dockerfile.computeLevels()` groups topologically sorted Dockerf
|
|||||||
All builds now go through a persistent local registry (`localhost:5234`) with volume storage at `.nogit/docker-registry/`. Pushes use the `RegistryCopy` class (`ts/classes.registrycopy.ts`) which implements the OCI Distribution API to copy images (including multi-arch manifest lists) from the local registry to remote registries. This replaces the old `docker tag + docker push` approach that only worked for single-platform images.
|
All builds now go through a persistent local registry (`localhost:5234`) with volume storage at `.nogit/docker-registry/`. Pushes use the `RegistryCopy` class (`ts/classes.registrycopy.ts`) which implements the OCI Distribution API to copy images (including multi-arch manifest lists) from the local registry to remote registries. This replaces the old `docker tag + docker push` approach that only worked for single-platform images.
|
||||||
|
|
||||||
Key classes:
|
Key classes:
|
||||||
|
|
||||||
- `RegistryCopy` — HTTP-based OCI image copy (auth, blob transfer, manifest handling)
|
- `RegistryCopy` — HTTP-based OCI image copy (auth, blob transfer, manifest handling)
|
||||||
- `Dockerfile.push()` — Now delegates to `RegistryCopy.copyImage()`
|
- `Dockerfile.push()` — Now delegates to `RegistryCopy.copyImage()`
|
||||||
- `Dockerfile.needsLocalRegistry()` — Always returns true
|
- `Dockerfile.needsLocalRegistry()` — Always returns true
|
||||||
@@ -115,10 +117,16 @@ The `config.push` field is now a no-op (kept for backward compat).
|
|||||||
|
|
||||||
## Build Status
|
## Build Status
|
||||||
|
|
||||||
- Build: ✅ Passes
|
- Build: ✅ Passes (TypeScript 6 via tsbuild 4.4.0)
|
||||||
|
|
||||||
## Previous Upgrades (2025-11-22)
|
## Previous Upgrades
|
||||||
|
|
||||||
|
### 2026-03-24
|
||||||
|
- Upgraded `@git.zone/tsbuild` from 4.3.0 to 4.4.0 (TypeScript 6)
|
||||||
|
- Removed deprecated `baseUrl`/`paths` from tsconfig.json
|
||||||
|
- Added pnpm override `lru-cache: ">=11.0.0"` to fix TS6 type incompatibility with lru-cache@10.x
|
||||||
|
|
||||||
|
### 2025-11-22
|
||||||
- Updated all @git.zone/_ dependencies to @git.zone/_ scope
|
- Updated all @git.zone/_ dependencies to @git.zone/_ scope
|
||||||
- Updated all @pushrocks/_ dependencies to @push.rocks/_ scope
|
- Updated all @pushrocks/_ dependencies to @push.rocks/_ scope
|
||||||
- Migrated from smartfile v8 to smartfs v1.1.0
|
- Migrated from smartfile v8 to smartfs v1.1.0
|
||||||
|
|||||||
172
readme.md
172
readme.md
@@ -44,6 +44,7 @@ tsdocker build
|
|||||||
```
|
```
|
||||||
|
|
||||||
tsdocker will:
|
tsdocker will:
|
||||||
|
|
||||||
1. 🔍 Discover all `Dockerfile*` files in your project
|
1. 🔍 Discover all `Dockerfile*` files in your project
|
||||||
2. 📊 Analyze `FROM` dependencies between them
|
2. 📊 Analyze `FROM` dependencies between them
|
||||||
3. 🔄 Sort them topologically
|
3. 🔄 Sort them topologically
|
||||||
@@ -84,68 +85,68 @@ tsdocker push --no-build Dockerfile_api Dockerfile_web
|
|||||||
|
|
||||||
## CLI Commands
|
## CLI Commands
|
||||||
|
|
||||||
| Command | Description |
|
| Command | Description |
|
||||||
|---------|-------------|
|
| -------------------------- | ------------------------------------------------------------ |
|
||||||
| `tsdocker` | Show usage / man page |
|
| `tsdocker` | Show usage / man page |
|
||||||
| `tsdocker build` | Build all Dockerfiles with dependency ordering |
|
| `tsdocker build` | Build all Dockerfiles with dependency ordering |
|
||||||
| `tsdocker push` | Build + push images to configured registries |
|
| `tsdocker push` | Build + push images to configured registries |
|
||||||
| `tsdocker pull <registry>` | Pull images from a specific registry |
|
| `tsdocker pull <registry>` | Pull images from a specific registry |
|
||||||
| `tsdocker test` | Build + run container test scripts (`test_*.sh`) |
|
| `tsdocker test` | Build + run container test scripts (`test_*.sh`) |
|
||||||
| `tsdocker login` | Authenticate with configured registries |
|
| `tsdocker login` | Authenticate with configured registries |
|
||||||
| `tsdocker list` | Display discovered Dockerfiles and their dependencies |
|
| `tsdocker list` | Display discovered Dockerfiles and their dependencies |
|
||||||
| `tsdocker config` | Manage global tsdocker configuration (remote builders, etc.) |
|
| `tsdocker config` | Manage global tsdocker configuration (remote builders, etc.) |
|
||||||
| `tsdocker clean` | Interactively clean Docker environment |
|
| `tsdocker clean` | Interactively clean Docker environment |
|
||||||
|
|
||||||
### Build Flags
|
### Build Flags
|
||||||
|
|
||||||
| Flag | Description |
|
| Flag | Description |
|
||||||
|------|-------------|
|
| ------------------------ | ------------------------------------------------------------------------------- |
|
||||||
| `<patterns>` | Positional Dockerfile name patterns (e.g. `Dockerfile_base`, `Dockerfile_app*`) |
|
| `<patterns>` | Positional Dockerfile name patterns (e.g. `Dockerfile_base`, `Dockerfile_app*`) |
|
||||||
| `--platform=linux/arm64` | Override build platform for a single architecture |
|
| `--platform=linux/arm64` | Override build platform for a single architecture |
|
||||||
| `--timeout=600` | Build timeout in seconds |
|
| `--timeout=600` | Build timeout in seconds |
|
||||||
| `--no-cache` | Force rebuild without Docker layer cache |
|
| `--no-cache` | Force rebuild without Docker layer cache |
|
||||||
| `--cached` | Skip unchanged Dockerfiles (content-hash based) |
|
| `--cached` | Skip unchanged Dockerfiles (content-hash based) |
|
||||||
| `--verbose` | Stream raw `docker build` output |
|
| `--verbose` | Stream raw `docker build` output |
|
||||||
| `--parallel` | Enable level-based parallel builds (default concurrency: 4) |
|
| `--parallel` | Enable level-based parallel builds (default concurrency: 4) |
|
||||||
| `--parallel=8` | Parallel builds with custom concurrency |
|
| `--parallel=8` | Parallel builds with custom concurrency |
|
||||||
| `--context=mycontext` | Use a specific Docker context |
|
| `--context=mycontext` | Use a specific Docker context |
|
||||||
|
|
||||||
### Push Flags
|
### Push Flags
|
||||||
|
|
||||||
| Flag | Description |
|
| Flag | Description |
|
||||||
|------|-------------|
|
| ------------------ | ------------------------------------------------------------------- |
|
||||||
| `<patterns>` | Positional Dockerfile name patterns to select which images to push |
|
| `<patterns>` | Positional Dockerfile name patterns to select which images to push |
|
||||||
| `--registry=<url>` | Push to a single specific registry instead of all configured |
|
| `--registry=<url>` | Push to a single specific registry instead of all configured |
|
||||||
| `--no-build` | Skip the build phase; only push existing images from local registry |
|
| `--no-build` | Skip the build phase; only push existing images from local registry |
|
||||||
|
|
||||||
### Config Subcommands
|
### Config Subcommands
|
||||||
|
|
||||||
| Subcommand | Description |
|
| Subcommand | Description |
|
||||||
|------------|-------------|
|
| ---------------- | ----------------------------------- |
|
||||||
| `add-builder` | Add or update a remote builder node |
|
| `add-builder` | Add or update a remote builder node |
|
||||||
| `remove-builder` | Remove a remote builder by name |
|
| `remove-builder` | Remove a remote builder by name |
|
||||||
| `list-builders` | List all configured remote builders |
|
| `list-builders` | List all configured remote builders |
|
||||||
| `show` | Show the full global configuration |
|
| `show` | Show the full global configuration |
|
||||||
|
|
||||||
**`add-builder` flags:**
|
**`add-builder` flags:**
|
||||||
|
|
||||||
| Flag | Description |
|
| Flag | Description |
|
||||||
|------|-------------|
|
| ------------------ | --------------------------------------------------------- |
|
||||||
| `--name=<name>` | Builder name (e.g. `arm64-builder`) |
|
| `--name=<name>` | Builder name (e.g. `arm64-builder`) |
|
||||||
| `--host=<user@ip>` | SSH host (e.g. `armbuilder@192.168.1.100`) |
|
| `--host=<user@ip>` | SSH host (e.g. `armbuilder@192.168.1.100`) |
|
||||||
| `--platform=<p>` | Target platform (e.g. `linux/arm64`) |
|
| `--platform=<p>` | Target platform (e.g. `linux/arm64`) |
|
||||||
| `--ssh-key=<path>` | SSH key path (optional, uses SSH agent/config by default) |
|
| `--ssh-key=<path>` | SSH key path (optional, uses SSH agent/config by default) |
|
||||||
|
|
||||||
### Clean Flags
|
### Clean Flags
|
||||||
|
|
||||||
| Flag | Description |
|
| Flag | Description |
|
||||||
|------|-------------|
|
| ------- | -------------------------------------------------- |
|
||||||
| `--all` | Include all images and volumes (not just dangling) |
|
| `--all` | Include all images and volumes (not just dangling) |
|
||||||
| `-y` | Auto-confirm all prompts |
|
| `-y` | Auto-confirm all prompts |
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
Configure tsdocker in your `package.json` or `npmextra.json` under the `@git.zone/tsdocker` key:
|
Configure tsdocker in your `.smartconfig.json` under the `@git.zone/tsdocker` key:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@@ -167,13 +168,13 @@ Configure tsdocker in your `package.json` or `npmextra.json` under the `@git.zon
|
|||||||
|
|
||||||
#### Build & Push Options
|
#### Build & Push Options
|
||||||
|
|
||||||
| Option | Type | Default | Description |
|
| Option | Type | Default | Description |
|
||||||
|--------|------|---------|-------------|
|
| ----------------- | ---------- | ----------------- | ---------------------------------------------- |
|
||||||
| `registries` | `string[]` | `[]` | Registry URLs to push to |
|
| `registries` | `string[]` | `[]` | Registry URLs to push to |
|
||||||
| `registryRepoMap` | `object` | `{}` | Map registries to different repository paths |
|
| `registryRepoMap` | `object` | `{}` | Map registries to different repository paths |
|
||||||
| `buildArgEnvMap` | `object` | `{}` | Map Docker build ARGs to environment variables |
|
| `buildArgEnvMap` | `object` | `{}` | Map Docker build ARGs to environment variables |
|
||||||
| `platforms` | `string[]` | `["linux/amd64"]` | Target architectures for multi-arch builds |
|
| `platforms` | `string[]` | `["linux/amd64"]` | Target architectures for multi-arch builds |
|
||||||
| `testDir` | `string` | `./test` | Directory containing test scripts |
|
| `testDir` | `string` | `./test` | Directory containing test scripts |
|
||||||
|
|
||||||
## Architecture: How tsdocker Works
|
## Architecture: How tsdocker Works
|
||||||
|
|
||||||
@@ -217,12 +218,12 @@ tsdocker uses a **local OCI registry** as the canonical store for all built imag
|
|||||||
|
|
||||||
### 🔑 Why a Local Registry?
|
### 🔑 Why a Local Registry?
|
||||||
|
|
||||||
| Problem | Solution |
|
| Problem | Solution |
|
||||||
|---------|----------|
|
| --------------------------------------------------- | ------------------------------------------------------------------- |
|
||||||
| `docker buildx --load` fails for multi-arch images | `buildx --push` to local registry works for any number of platforms |
|
| `docker buildx --load` fails for multi-arch images | `buildx --push` to local registry works for any number of platforms |
|
||||||
| `docker push` only pushes single-platform manifests | OCI API copy preserves full manifest lists (multi-arch) |
|
| `docker push` only pushes single-platform manifests | OCI API copy preserves full manifest lists (multi-arch) |
|
||||||
| Images lost between build and push phases | Persistent storage at `.nogit/docker-registry/` survives restarts |
|
| Images lost between build and push phases | Persistent storage at `.nogit/docker-registry/` survives restarts |
|
||||||
| Redundant blob uploads on incremental pushes | HEAD checks skip blobs that already exist on the remote |
|
| Redundant blob uploads on incremental pushes | HEAD checks skip blobs that already exist on the remote |
|
||||||
|
|
||||||
### 🔁 Resilient Push
|
### 🔁 Resilient Push
|
||||||
|
|
||||||
@@ -246,12 +247,12 @@ Every tsdocker invocation gets its own **session** with unique:
|
|||||||
|
|
||||||
This prevents resource conflicts when multiple CI jobs run tsdocker in parallel. Auto-detected CI systems:
|
This prevents resource conflicts when multiple CI jobs run tsdocker in parallel. Auto-detected CI systems:
|
||||||
|
|
||||||
| Environment Variable | CI System |
|
| Environment Variable | CI System |
|
||||||
|---------------------|-----------|
|
| -------------------- | -------------- |
|
||||||
| `GITEA_ACTIONS` | Gitea Actions |
|
| `GITEA_ACTIONS` | Gitea Actions |
|
||||||
| `GITHUB_ACTIONS` | GitHub Actions |
|
| `GITHUB_ACTIONS` | GitHub Actions |
|
||||||
| `GITLAB_CI` | GitLab CI |
|
| `GITLAB_CI` | GitLab CI |
|
||||||
| `CI` | Generic CI |
|
| `CI` | Generic CI |
|
||||||
|
|
||||||
In local dev, no suffix is added — keeping a persistent builder for faster rebuilds.
|
In local dev, no suffix is added — keeping a persistent builder for faster rebuilds.
|
||||||
|
|
||||||
@@ -259,11 +260,11 @@ In local dev, no suffix is added — keeping a persistent builder for faster reb
|
|||||||
|
|
||||||
tsdocker automatically detects your Docker environment topology:
|
tsdocker automatically detects your Docker environment topology:
|
||||||
|
|
||||||
| Topology | Detection | Meaning |
|
| Topology | Detection | Meaning |
|
||||||
|----------|-----------|---------|
|
| -------------- | ---------------------------------- | ----------------------------------------------------- |
|
||||||
| `local` | Default | Standard Docker installation on the host |
|
| `local` | Default | Standard Docker installation on the host |
|
||||||
| `socket-mount` | `/.dockerenv` exists | Running inside a container with Docker socket mounted |
|
| `socket-mount` | `/.dockerenv` exists | Running inside a container with Docker socket mounted |
|
||||||
| `dind` | `DOCKER_HOST` starts with `tcp://` | Docker-in-Docker setup |
|
| `dind` | `DOCKER_HOST` starts with `tcp://` | Docker-in-Docker setup |
|
||||||
|
|
||||||
Context-aware builder names (`tsdocker-builder-<context>`) prevent conflicts across Docker contexts. Rootless Docker configurations trigger appropriate warnings.
|
Context-aware builder names (`tsdocker-builder-<context>`) prevent conflicts across Docker contexts. Rootless Docker configurations trigger appropriate warnings.
|
||||||
|
|
||||||
@@ -309,6 +310,7 @@ Build for multiple platforms using Docker Buildx:
|
|||||||
```
|
```
|
||||||
|
|
||||||
tsdocker automatically:
|
tsdocker automatically:
|
||||||
|
|
||||||
- Sets up a Buildx builder with `--driver-opt network=host` (so buildx can reach the local registry)
|
- Sets up a Buildx builder with `--driver-opt network=host` (so buildx can reach the local registry)
|
||||||
- Pushes multi-platform images to the local registry via `buildx --push`
|
- Pushes multi-platform images to the local registry via `buildx --push`
|
||||||
- Copies the full manifest list (including all platform variants) to remote registries on `tsdocker push`
|
- Copies the full manifest list (including all platform variants) to remote registries on `tsdocker push`
|
||||||
@@ -354,6 +356,7 @@ When remote builders are configured and the project's `platforms` includes a mat
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Prerequisites for the remote machine:**
|
**Prerequisites for the remote machine:**
|
||||||
|
|
||||||
- Docker installed and running
|
- Docker installed and running
|
||||||
- A user with Docker group access (no sudo needed)
|
- A user with Docker group access (no sudo needed)
|
||||||
- SSH key access configured
|
- SSH key access configured
|
||||||
@@ -379,11 +382,11 @@ tsdocker groups Dockerfiles into **dependency levels** using topological analysi
|
|||||||
|
|
||||||
tsdocker discovers files matching `Dockerfile*`:
|
tsdocker discovers files matching `Dockerfile*`:
|
||||||
|
|
||||||
| File Name | Version Tag |
|
| File Name | Version Tag |
|
||||||
|-----------|-------------|
|
| ------------------------ | --------------------------- |
|
||||||
| `Dockerfile` | `latest` |
|
| `Dockerfile` | `latest` |
|
||||||
| `Dockerfile_v1.0.0` | `v1.0.0` |
|
| `Dockerfile_v1.0.0` | `v1.0.0` |
|
||||||
| `Dockerfile_alpine` | `alpine` |
|
| `Dockerfile_alpine` | `alpine` |
|
||||||
| `Dockerfile_##version##` | Uses `package.json` version |
|
| `Dockerfile_##version##` | Uses `package.json` version |
|
||||||
|
|
||||||
### 🎯 Dockerfile Filtering
|
### 🎯 Dockerfile Filtering
|
||||||
@@ -492,6 +495,7 @@ tsdocker list
|
|||||||
```
|
```
|
||||||
|
|
||||||
Output:
|
Output:
|
||||||
|
|
||||||
```
|
```
|
||||||
Discovered Dockerfiles:
|
Discovered Dockerfiles:
|
||||||
========================
|
========================
|
||||||
@@ -556,7 +560,7 @@ build-and-push:
|
|||||||
- npm install -g @git.zone/tsdocker
|
- npm install -g @git.zone/tsdocker
|
||||||
- tsdocker push
|
- tsdocker push
|
||||||
variables:
|
variables:
|
||||||
DOCKER_REGISTRY_1: "registry.gitlab.com|$CI_REGISTRY_USER|$CI_REGISTRY_PASSWORD"
|
DOCKER_REGISTRY_1: 'registry.gitlab.com|$CI_REGISTRY_USER|$CI_REGISTRY_PASSWORD'
|
||||||
```
|
```
|
||||||
|
|
||||||
**GitHub Actions:**
|
**GitHub Actions:**
|
||||||
@@ -568,7 +572,7 @@ build-and-push:
|
|||||||
tsdocker login
|
tsdocker login
|
||||||
tsdocker push
|
tsdocker push
|
||||||
env:
|
env:
|
||||||
DOCKER_REGISTRY_1: "ghcr.io|${{ github.actor }}|${{ secrets.GITHUB_TOKEN }}"
|
DOCKER_REGISTRY_1: 'ghcr.io|${{ github.actor }}|${{ secrets.GITHUB_TOKEN }}'
|
||||||
```
|
```
|
||||||
|
|
||||||
**Gitea Actions:**
|
**Gitea Actions:**
|
||||||
@@ -579,7 +583,7 @@ build-and-push:
|
|||||||
npm install -g @git.zone/tsdocker
|
npm install -g @git.zone/tsdocker
|
||||||
tsdocker push
|
tsdocker push
|
||||||
env:
|
env:
|
||||||
DOCKER_REGISTRY_1: "gitea.example.com|${{ secrets.REGISTRY_USER }}|${{ secrets.REGISTRY_PASSWORD }}"
|
DOCKER_REGISTRY_1: 'gitea.example.com|${{ secrets.REGISTRY_USER }}|${{ secrets.REGISTRY_PASSWORD }}'
|
||||||
```
|
```
|
||||||
|
|
||||||
tsdocker auto-detects all three CI systems and enables session isolation automatically — no extra configuration needed.
|
tsdocker auto-detects all three CI systems and enables session isolation automatically — no extra configuration needed.
|
||||||
@@ -607,20 +611,20 @@ await manager.push();
|
|||||||
|
|
||||||
### CI & Session Control
|
### CI & Session Control
|
||||||
|
|
||||||
| Variable | Description |
|
| Variable | Description |
|
||||||
|----------|-------------|
|
| ------------------------ | -------------------------------------------------------------------------- |
|
||||||
| `TSDOCKER_SESSION_ID` | Override the auto-generated session ID (default: random 8-char hex) |
|
| `TSDOCKER_SESSION_ID` | Override the auto-generated session ID (default: random 8-char hex) |
|
||||||
| `TSDOCKER_REGISTRY_PORT` | Override the dynamically allocated local registry port |
|
| `TSDOCKER_REGISTRY_PORT` | Override the dynamically allocated local registry port |
|
||||||
| `CI` | Generic CI detection (also `GITHUB_ACTIONS`, `GITLAB_CI`, `GITEA_ACTIONS`) |
|
| `CI` | Generic CI detection (also `GITHUB_ACTIONS`, `GITLAB_CI`, `GITEA_ACTIONS`) |
|
||||||
|
|
||||||
### Registry Credentials
|
### Registry Credentials
|
||||||
|
|
||||||
| Variable | Description |
|
| Variable | Description |
|
||||||
|----------|-------------|
|
| ------------------------------------------------ | ---------------------------------------------- |
|
||||||
| `DOCKER_REGISTRY_1` through `DOCKER_REGISTRY_10` | Pipe-delimited: `registry\|username\|password` |
|
| `DOCKER_REGISTRY_1` through `DOCKER_REGISTRY_10` | Pipe-delimited: `registry\|username\|password` |
|
||||||
| `DOCKER_REGISTRY_URL` | Registry URL for single-registry setup |
|
| `DOCKER_REGISTRY_URL` | Registry URL for single-registry setup |
|
||||||
| `DOCKER_REGISTRY_USER` | Username for single-registry setup |
|
| `DOCKER_REGISTRY_USER` | Username for single-registry setup |
|
||||||
| `DOCKER_REGISTRY_PASSWORD` | Password for single-registry setup |
|
| `DOCKER_REGISTRY_PASSWORD` | Password for single-registry setup |
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@git.zone/tsdocker',
|
name: '@git.zone/tsdocker',
|
||||||
version: '2.1.0',
|
version: '2.2.4',
|
||||||
description: 'develop npm modules cross platform with docker'
|
description: 'A comprehensive Docker build tool for TypeScript projects with multi-arch support, multi-registry push, and CI-safe session isolation.'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -266,7 +266,7 @@ export class Dockerfile {
|
|||||||
public static async buildDockerfiles(
|
public static async buildDockerfiles(
|
||||||
sortedArrayArg: Dockerfile[],
|
sortedArrayArg: Dockerfile[],
|
||||||
session: TsDockerSession,
|
session: TsDockerSession,
|
||||||
options?: { platform?: string; timeout?: number; noCache?: boolean; verbose?: boolean; isRootless?: boolean; parallel?: boolean; parallelConcurrency?: number; onRegistryStarted?: () => Promise<void>; onBeforeRegistryStop?: () => Promise<void> },
|
options?: { platform?: string; timeout?: number; noCache?: boolean; pull?: boolean; verbose?: boolean; isRootless?: boolean; parallel?: boolean; parallelConcurrency?: number; onRegistryStarted?: () => Promise<void>; onBeforeRegistryStop?: () => Promise<void> },
|
||||||
): Promise<Dockerfile[]> {
|
): Promise<Dockerfile[]> {
|
||||||
const total = sortedArrayArg.length;
|
const total = sortedArrayArg.length;
|
||||||
const overallStart = Date.now();
|
const overallStart = Date.now();
|
||||||
@@ -668,13 +668,14 @@ export class Dockerfile {
|
|||||||
/**
|
/**
|
||||||
* Builds the Dockerfile
|
* Builds the Dockerfile
|
||||||
*/
|
*/
|
||||||
public async build(options?: { platform?: string; timeout?: number; noCache?: boolean; verbose?: boolean }): Promise<number> {
|
public async build(options?: { platform?: string; timeout?: number; noCache?: boolean; pull?: boolean; verbose?: boolean }): Promise<number> {
|
||||||
const startTime = Date.now();
|
const startTime = Date.now();
|
||||||
const buildArgsString = await Dockerfile.getDockerBuildArgs(this.managerRef);
|
const buildArgsString = await Dockerfile.getDockerBuildArgs(this.managerRef);
|
||||||
const config = this.managerRef.config;
|
const config = this.managerRef.config;
|
||||||
const platformOverride = options?.platform;
|
const platformOverride = options?.platform;
|
||||||
const timeout = options?.timeout;
|
const timeout = options?.timeout;
|
||||||
const noCacheFlag = options?.noCache ? ' --no-cache' : '';
|
const noCacheFlag = options?.noCache ? ' --no-cache' : '';
|
||||||
|
const pullFlag = options?.pull !== false ? ' --pull' : '';
|
||||||
const verbose = options?.verbose ?? false;
|
const verbose = options?.verbose ?? false;
|
||||||
|
|
||||||
let buildContextFlag = '';
|
let buildContextFlag = '';
|
||||||
@@ -689,23 +690,24 @@ export class Dockerfile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let buildCommand: string;
|
let buildCommand: string;
|
||||||
|
const builderFlag = this.managerRef.currentBuilderName ? ` --builder ${this.managerRef.currentBuilderName}` : '';
|
||||||
|
|
||||||
if (platformOverride) {
|
if (platformOverride) {
|
||||||
// Single platform override via buildx
|
// Single platform override via buildx
|
||||||
buildCommand = `docker buildx build --progress=plain --platform ${platformOverride}${noCacheFlag}${buildContextFlag} --load -t ${this.buildTag} -f ${this.filePath} ${buildArgsString} .`;
|
buildCommand = `docker buildx build${builderFlag} --progress=plain --platform ${platformOverride}${noCacheFlag}${pullFlag}${buildContextFlag} --load -t ${this.buildTag} -f ${this.filePath} ${buildArgsString} .`;
|
||||||
logger.log('info', `Build: buildx --platform ${platformOverride} --load`);
|
logger.log('info', `Build: buildx --platform ${platformOverride} --load`);
|
||||||
} else if (config.platforms && config.platforms.length > 1) {
|
} else if (config.platforms && config.platforms.length > 1) {
|
||||||
// Multi-platform build using buildx — always push to local registry
|
// Multi-platform build using buildx — always push to local registry
|
||||||
const platformString = config.platforms.join(',');
|
const platformString = config.platforms.join(',');
|
||||||
const registryHost = this.session?.config.registryHost || 'localhost:5234';
|
const registryHost = this.session?.config.registryHost || 'localhost:5234';
|
||||||
const localTag = `${registryHost}/${this.buildTag}`;
|
const localTag = `${registryHost}/${this.buildTag}`;
|
||||||
buildCommand = `docker buildx build --progress=plain --platform ${platformString}${noCacheFlag}${buildContextFlag} -t ${localTag} -f ${this.filePath} ${buildArgsString} --push .`;
|
buildCommand = `docker buildx build${builderFlag} --progress=plain --platform ${platformString}${noCacheFlag}${pullFlag}${buildContextFlag} -t ${localTag} -f ${this.filePath} ${buildArgsString} --push .`;
|
||||||
this.localRegistryTag = localTag;
|
this.localRegistryTag = localTag;
|
||||||
logger.log('info', `Build: buildx --platform ${platformString} --push to local registry`);
|
logger.log('info', `Build: buildx --platform ${platformString} --push to local registry`);
|
||||||
} else {
|
} else {
|
||||||
// Standard build
|
// Standard build
|
||||||
const versionLabel = this.managerRef.projectInfo?.npm?.version || 'unknown';
|
const versionLabel = this.managerRef.projectInfo?.npm?.version || 'unknown';
|
||||||
buildCommand = `docker build --progress=plain --label="version=${versionLabel}"${noCacheFlag} -t ${this.buildTag} -f ${this.filePath} ${buildArgsString} .`;
|
buildCommand = `docker build --progress=plain --label="version=${versionLabel}"${noCacheFlag}${pullFlag} -t ${this.buildTag} -f ${this.filePath} ${buildArgsString} .`;
|
||||||
logger.log('info', 'Build: docker build (standard)');
|
logger.log('info', 'Build: docker build (standard)');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ export class TsDockerManager {
|
|||||||
public projectInfo: any;
|
public projectInfo: any;
|
||||||
public dockerContext: DockerContext;
|
public dockerContext: DockerContext;
|
||||||
public session!: TsDockerSession;
|
public session!: TsDockerSession;
|
||||||
|
public currentBuilderName?: string;
|
||||||
private dockerfiles: Dockerfile[] = [];
|
private dockerfiles: Dockerfile[] = [];
|
||||||
private activeRemoteBuilders: IRemoteBuilder[] = [];
|
private activeRemoteBuilders: IRemoteBuilder[] = [];
|
||||||
private sshTunnelManager?: SshTunnelManager;
|
private sshTunnelManager?: SshTunnelManager;
|
||||||
@@ -266,6 +267,7 @@ export class TsDockerManager {
|
|||||||
platform: options?.platform,
|
platform: options?.platform,
|
||||||
timeout: options?.timeout,
|
timeout: options?.timeout,
|
||||||
noCache: options?.noCache,
|
noCache: options?.noCache,
|
||||||
|
pull: options?.pull,
|
||||||
verbose: options?.verbose,
|
verbose: options?.verbose,
|
||||||
});
|
});
|
||||||
logger.log('ok', `${progress} Built ${df.cleanTag} in ${formatDuration(elapsed)}`);
|
logger.log('ok', `${progress} Built ${df.cleanTag} in ${formatDuration(elapsed)}`);
|
||||||
@@ -311,6 +313,7 @@ export class TsDockerManager {
|
|||||||
platform: options?.platform,
|
platform: options?.platform,
|
||||||
timeout: options?.timeout,
|
timeout: options?.timeout,
|
||||||
noCache: options?.noCache,
|
noCache: options?.noCache,
|
||||||
|
pull: options?.pull,
|
||||||
verbose: options?.verbose,
|
verbose: options?.verbose,
|
||||||
});
|
});
|
||||||
logger.log('ok', `${progress} Built ${dockerfileArg.cleanTag} in ${formatDuration(elapsed)}`);
|
logger.log('ok', `${progress} Built ${dockerfileArg.cleanTag} in ${formatDuration(elapsed)}`);
|
||||||
@@ -349,6 +352,7 @@ export class TsDockerManager {
|
|||||||
platform: options?.platform,
|
platform: options?.platform,
|
||||||
timeout: options?.timeout,
|
timeout: options?.timeout,
|
||||||
noCache: options?.noCache,
|
noCache: options?.noCache,
|
||||||
|
pull: options?.pull,
|
||||||
verbose: options?.verbose,
|
verbose: options?.verbose,
|
||||||
isRootless: this.dockerContext.contextInfo?.isRootless,
|
isRootless: this.dockerContext.contextInfo?.isRootless,
|
||||||
parallel: options?.parallel,
|
parallel: options?.parallel,
|
||||||
@@ -401,6 +405,7 @@ export class TsDockerManager {
|
|||||||
await this.ensureBuildxLocal(builderName);
|
await this.ensureBuildxLocal(builderName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.currentBuilderName = builderName;
|
||||||
logger.log('ok', `Docker buildx ready (builder: ${builderName}, platforms: ${platforms})`);
|
logger.log('ok', `Docker buildx ready (builder: ${builderName}, platforms: ${platforms})`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -426,7 +431,7 @@ export class TsDockerManager {
|
|||||||
// Create the local node
|
// Create the local node
|
||||||
const localPlatformFlag = localPlatforms.length > 0 ? ` --platform ${localPlatforms.join(',')}` : '';
|
const localPlatformFlag = localPlatforms.length > 0 ? ` --platform ${localPlatforms.join(',')}` : '';
|
||||||
await smartshellInstance.exec(
|
await smartshellInstance.exec(
|
||||||
`docker buildx create --name ${builderName} --driver docker-container --driver-opt network=host${localPlatformFlag} --use`
|
`docker buildx create --name ${builderName} --driver docker-container --driver-opt network=host${localPlatformFlag}`
|
||||||
);
|
);
|
||||||
|
|
||||||
// Append remote nodes
|
// Append remote nodes
|
||||||
@@ -441,7 +446,7 @@ export class TsDockerManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Bootstrap all nodes
|
// Bootstrap all nodes
|
||||||
await smartshellInstance.exec('docker buildx inspect --bootstrap');
|
await smartshellInstance.exec(`docker buildx inspect --builder ${builderName} --bootstrap`);
|
||||||
|
|
||||||
// Store active remote builders for SSH tunnel setup during build
|
// Store active remote builders for SSH tunnel setup during build
|
||||||
this.activeRemoteBuilders = remoteBuilders;
|
this.activeRemoteBuilders = remoteBuilders;
|
||||||
@@ -456,20 +461,18 @@ export class TsDockerManager {
|
|||||||
if (inspectResult.exitCode !== 0) {
|
if (inspectResult.exitCode !== 0) {
|
||||||
logger.log('info', 'Creating new buildx builder with host network...');
|
logger.log('info', 'Creating new buildx builder with host network...');
|
||||||
await smartshellInstance.exec(
|
await smartshellInstance.exec(
|
||||||
`docker buildx create --name ${builderName} --driver docker-container --driver-opt network=host --use`
|
`docker buildx create --name ${builderName} --driver docker-container --driver-opt network=host`
|
||||||
);
|
);
|
||||||
await smartshellInstance.exec('docker buildx inspect --bootstrap');
|
await smartshellInstance.exec(`docker buildx inspect --builder ${builderName} --bootstrap`);
|
||||||
} else {
|
} else {
|
||||||
const inspectOutput = inspectResult.stdout || '';
|
const inspectOutput = inspectResult.stdout || '';
|
||||||
if (!inspectOutput.includes('network=host')) {
|
if (!inspectOutput.includes('network=host')) {
|
||||||
logger.log('info', 'Recreating buildx builder with host network (migration)...');
|
logger.log('info', 'Recreating buildx builder with host network (migration)...');
|
||||||
await smartshellInstance.exec(`docker buildx rm ${builderName} 2>/dev/null`);
|
await smartshellInstance.exec(`docker buildx rm ${builderName} 2>/dev/null`);
|
||||||
await smartshellInstance.exec(
|
await smartshellInstance.exec(
|
||||||
`docker buildx create --name ${builderName} --driver docker-container --driver-opt network=host --use`
|
`docker buildx create --name ${builderName} --driver docker-container --driver-opt network=host`
|
||||||
);
|
);
|
||||||
await smartshellInstance.exec('docker buildx inspect --bootstrap');
|
await smartshellInstance.exec(`docker buildx inspect --builder ${builderName} --bootstrap`);
|
||||||
} else {
|
|
||||||
await smartshellInstance.exec(`docker buildx use ${builderName}`);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.activeRemoteBuilders = [];
|
this.activeRemoteBuilders = [];
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { logger } from './tsdocker.logging.js';
|
|||||||
|
|
||||||
export interface ISessionConfig {
|
export interface ISessionConfig {
|
||||||
sessionId: string;
|
sessionId: string;
|
||||||
|
projectHash: string;
|
||||||
registryPort: number;
|
registryPort: number;
|
||||||
registryHost: string;
|
registryHost: string;
|
||||||
registryContainerName: string;
|
registryContainerName: string;
|
||||||
@@ -17,8 +18,8 @@ export interface ISessionConfig {
|
|||||||
* Generates unique ports, container names, and builder names so that
|
* Generates unique ports, container names, and builder names so that
|
||||||
* concurrent CI jobs on the same Docker host don't collide.
|
* concurrent CI jobs on the same Docker host don't collide.
|
||||||
*
|
*
|
||||||
* In local (non-CI) dev the builder suffix is empty, preserving the
|
* In local (non-CI) dev the builder suffix contains a project hash so
|
||||||
* persistent builder behavior.
|
* that concurrent runs in different project directories use separate builders.
|
||||||
*/
|
*/
|
||||||
export class TsDockerSession {
|
export class TsDockerSession {
|
||||||
public config: ISessionConfig;
|
public config: ISessionConfig;
|
||||||
@@ -34,16 +35,18 @@ export class TsDockerSession {
|
|||||||
public static async create(): Promise<TsDockerSession> {
|
public static async create(): Promise<TsDockerSession> {
|
||||||
const sessionId =
|
const sessionId =
|
||||||
process.env.TSDOCKER_SESSION_ID || crypto.randomBytes(4).toString('hex');
|
process.env.TSDOCKER_SESSION_ID || crypto.randomBytes(4).toString('hex');
|
||||||
|
const projectHash = crypto.createHash('sha256').update(process.cwd()).digest('hex').substring(0, 8);
|
||||||
|
|
||||||
const registryPort = await TsDockerSession.allocatePort();
|
const registryPort = await TsDockerSession.allocatePort();
|
||||||
const registryHost = `localhost:${registryPort}`;
|
const registryHost = `localhost:${registryPort}`;
|
||||||
const registryContainerName = `tsdocker-registry-${sessionId}`;
|
const registryContainerName = `tsdocker-registry-${sessionId}`;
|
||||||
|
|
||||||
const { isCI, ciSystem } = TsDockerSession.detectCI();
|
const { isCI, ciSystem } = TsDockerSession.detectCI();
|
||||||
const builderSuffix = isCI ? `-${sessionId}` : '';
|
const builderSuffix = isCI ? `-${projectHash}-${sessionId}` : `-${projectHash}`;
|
||||||
|
|
||||||
const config: ISessionConfig = {
|
const config: ISessionConfig = {
|
||||||
sessionId,
|
sessionId,
|
||||||
|
projectHash,
|
||||||
registryPort,
|
registryPort,
|
||||||
registryHost,
|
registryHost,
|
||||||
registryContainerName,
|
registryContainerName,
|
||||||
@@ -99,9 +102,10 @@ export class TsDockerSession {
|
|||||||
logger.log('info', '=== TSDOCKER SESSION ===');
|
logger.log('info', '=== TSDOCKER SESSION ===');
|
||||||
logger.log('info', `Session ID: ${c.sessionId}`);
|
logger.log('info', `Session ID: ${c.sessionId}`);
|
||||||
logger.log('info', `Registry: ${c.registryHost} (container: ${c.registryContainerName})`);
|
logger.log('info', `Registry: ${c.registryHost} (container: ${c.registryContainerName})`);
|
||||||
|
logger.log('info', `Project hash: ${c.projectHash}`);
|
||||||
|
logger.log('info', `Builder suffix: ${c.builderSuffix}`);
|
||||||
if (c.isCI) {
|
if (c.isCI) {
|
||||||
logger.log('info', `CI detected: ${c.ciSystem}`);
|
logger.log('info', `CI detected: ${c.ciSystem}`);
|
||||||
logger.log('info', `Builder suffix: ${c.builderSuffix}`);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ export interface IBuildCommandOptions {
|
|||||||
platform?: string; // Single platform override (e.g., 'linux/arm64')
|
platform?: string; // Single platform override (e.g., 'linux/arm64')
|
||||||
timeout?: number; // Build timeout in seconds
|
timeout?: number; // Build timeout in seconds
|
||||||
noCache?: boolean; // Force rebuild without Docker layer cache (--no-cache)
|
noCache?: boolean; // Force rebuild without Docker layer cache (--no-cache)
|
||||||
|
pull?: boolean; // Pull fresh base images before building (default: true)
|
||||||
cached?: boolean; // Skip builds when Dockerfile content hasn't changed
|
cached?: boolean; // Skip builds when Dockerfile content hasn't changed
|
||||||
verbose?: boolean; // Stream raw docker build output (default: silent)
|
verbose?: boolean; // Stream raw docker build output (default: silent)
|
||||||
context?: string; // Explicit Docker context name (--context flag)
|
context?: string; // Explicit Docker context name (--context flag)
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ BUILD / PUSH OPTIONS
|
|||||||
--platform=<p> Target platform (e.g. linux/arm64)
|
--platform=<p> Target platform (e.g. linux/arm64)
|
||||||
--timeout=<s> Build timeout in seconds
|
--timeout=<s> Build timeout in seconds
|
||||||
--no-cache Rebuild without Docker layer cache
|
--no-cache Rebuild without Docker layer cache
|
||||||
|
--no-pull Skip pulling latest base images (use cached)
|
||||||
--cached Skip builds when Dockerfile is unchanged
|
--cached Skip builds when Dockerfile is unchanged
|
||||||
--verbose Stream raw docker build output
|
--verbose Stream raw docker build output
|
||||||
--parallel[=<n>] Parallel builds (optional concurrency limit)
|
--parallel[=<n>] Parallel builds (optional concurrency limit)
|
||||||
@@ -66,7 +67,7 @@ CONFIG SUBCOMMANDS
|
|||||||
show Show full global config
|
show Show full global config
|
||||||
|
|
||||||
CONFIGURATION
|
CONFIGURATION
|
||||||
Configure via npmextra.json under the "@git.zone/tsdocker" key:
|
Configure via smartconfig.json under the "@git.zone/tsdocker" key:
|
||||||
|
|
||||||
registries Array of registry URLs to push to
|
registries Array of registry URLs to push to
|
||||||
registryRepoMap Map of registry URL to repo path overrides
|
registryRepoMap Map of registry URL to repo path overrides
|
||||||
@@ -120,6 +121,8 @@ export let run = () => {
|
|||||||
if (argvArg.cache === false) {
|
if (argvArg.cache === false) {
|
||||||
buildOptions.noCache = true;
|
buildOptions.noCache = true;
|
||||||
}
|
}
|
||||||
|
// --pull is default true; --no-pull sets pull=false
|
||||||
|
buildOptions.pull = argvArg.pull !== false;
|
||||||
if (argvArg.cached) {
|
if (argvArg.cached) {
|
||||||
buildOptions.cached = true;
|
buildOptions.cached = true;
|
||||||
}
|
}
|
||||||
@@ -170,6 +173,7 @@ export let run = () => {
|
|||||||
if (argvArg.cache === false) {
|
if (argvArg.cache === false) {
|
||||||
buildOptions.noCache = true;
|
buildOptions.noCache = true;
|
||||||
}
|
}
|
||||||
|
buildOptions.pull = argvArg.pull !== false;
|
||||||
if (argvArg.verbose) {
|
if (argvArg.verbose) {
|
||||||
buildOptions.verbose = true;
|
buildOptions.verbose = true;
|
||||||
}
|
}
|
||||||
@@ -243,6 +247,7 @@ export let run = () => {
|
|||||||
if (argvArg.cache === false) {
|
if (argvArg.cache === false) {
|
||||||
buildOptions.noCache = true;
|
buildOptions.noCache = true;
|
||||||
}
|
}
|
||||||
|
buildOptions.pull = argvArg.pull !== false;
|
||||||
if (argvArg.cached) {
|
if (argvArg.cached) {
|
||||||
buildOptions.cached = true;
|
buildOptions.cached = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import * as paths from './tsdocker.paths.js';
|
|||||||
import type { ITsDockerConfig } from './interfaces/index.js';
|
import type { ITsDockerConfig } from './interfaces/index.js';
|
||||||
|
|
||||||
const buildConfig = async (): Promise<ITsDockerConfig> => {
|
const buildConfig = async (): Promise<ITsDockerConfig> => {
|
||||||
const npmextra = new plugins.npmextra.Npmextra(paths.cwd);
|
const smartconfig = new plugins.smartconfig.Smartconfig(paths.cwd);
|
||||||
const config = npmextra.dataFor<ITsDockerConfig>('@git.zone/tsdocker', {
|
const config = smartconfig.dataFor<ITsDockerConfig>('@git.zone/tsdocker', {
|
||||||
registries: [],
|
registries: [],
|
||||||
registryRepoMap: {},
|
registryRepoMap: {},
|
||||||
buildArgEnvMap: {},
|
buildArgEnvMap: {},
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// push.rocks scope
|
// push.rocks scope
|
||||||
import * as lik from '@push.rocks/lik';
|
import * as lik from '@push.rocks/lik';
|
||||||
import * as npmextra from '@push.rocks/npmextra';
|
import * as smartconfig from '@push.rocks/smartconfig';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import * as projectinfo from '@push.rocks/projectinfo';
|
import * as projectinfo from '@push.rocks/projectinfo';
|
||||||
import * as smartcli from '@push.rocks/smartcli';
|
import * as smartcli from '@push.rocks/smartcli';
|
||||||
@@ -16,7 +16,7 @@ export const smartfs = new SmartFs(new SmartFsProviderNode());
|
|||||||
|
|
||||||
export {
|
export {
|
||||||
lik,
|
lik,
|
||||||
npmextra,
|
smartconfig,
|
||||||
path,
|
path,
|
||||||
projectinfo,
|
projectinfo,
|
||||||
smartcli,
|
smartcli,
|
||||||
|
|||||||
@@ -5,8 +5,7 @@
|
|||||||
"moduleResolution": "NodeNext",
|
"moduleResolution": "NodeNext",
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"verbatimModuleSyntax": true,
|
"verbatimModuleSyntax": true,
|
||||||
"baseUrl": ".",
|
"useDefineForClassFields": false
|
||||||
"paths": {}
|
|
||||||
},
|
},
|
||||||
"exclude": ["dist_*/**/*.d.ts"]
|
"exclude": ["dist_*/**/*.d.ts"]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user