Compare commits

...

51 Commits

Author SHA1 Message Date
6a7b4c8b7e 1.15.3
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-04-15 22:16:16 +00:00
25c0162c39 fix(deps): update dependency versions and improve website template variable handling 2025-04-15 22:16:16 +00:00
e66d1f05e4 1.15.2
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-04-15 16:06:28 +00:00
b1a8a5527e fix(website_update): Await supplyVariables call in website update template 2025-04-15 16:06:27 +00:00
0017781516 1.15.1
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-04-15 15:54:04 +00:00
da0cd0ed71 fix(cli): Refresh internal CLI tooling and configuration for consistency. 2025-04-15 15:54:03 +00:00
4890afb2f0 1.15.0
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-04-15 15:53:34 +00:00
77bb8bf22e feat(config/template): Add assetbrokerUrl and legalUrl fields to module config and update website template to supply these values 2025-04-15 15:53:34 +00:00
ff2ebc076d 1.14.1
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-04-15 15:36:51 +00:00
d71b082b75 fix(package.json): Add packageManager field to specify pnpm version for consistent package management 2025-04-15 15:36:51 +00:00
f6680dc45e 1.14.0
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-04-15 15:35:33 +00:00
cb4a02d1ef feat(tsconfig_update): Add runafter directive to trigger gitzone format after tsconfig update 2025-04-15 15:35:33 +00:00
9e39444daa 1.13.1
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-03-07 02:30:14 +00:00
6ec5d275bb fix(cli): Improve commit message logging 2025-03-07 02:30:14 +00:00
f5d78f3b40 1.13.0 2025-02-28 18:00:11 +00:00
68546939ca feat(templates): Updated and added new TypeScript template files for npm projects 2025-02-28 18:00:11 +00:00
08e9849116 1.12.8
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-02-25 18:47:41 +00:00
f25ade3e97 fix(metadata): Updated package and npmextra json description and keywords for enhanced development workflow clarity 2025-02-25 18:47:41 +00:00
6870c40e57 1.12.7
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-02-25 18:43:56 +00:00
5e99a37a55 fix(meta): Fix issues in project metadata and configuration. 2025-02-25 18:43:56 +00:00
44d1cefc9f fix(ci): Updated dependencies and added CI/CD workflows. 2025-02-25 18:43:29 +00:00
83bafbb6f6 1.12.6
Some checks failed
Default (tags) / security (push) Failing after 2s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-01-29 17:56:21 +01:00
b90234e226 fix(project): Minor fixes and cleanup 2025-01-29 17:56:21 +01:00
a039a58f8e 1.12.5
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-01-29 15:38:36 +01:00
d861fcb2d4 fix(cli): Initial implementation of CLI utility with project management features 2025-01-29 15:38:35 +01:00
3a1138da83 1.12.4
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-01-29 14:45:43 +01:00
bdbd2b6e08 update 2025-01-29 14:45:32 +01:00
43f5643ab1 1.12.3
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-01-29 14:42:30 +01:00
99e4dcb2e8 update 2025-01-29 14:42:24 +01:00
52f6afb69a 1.12.2
Some checks failed
Default (tags) / security (push) Failing after 2s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-01-29 14:39:31 +01:00
75c1e3d8f2 fix(format): Add overrides for peek-readable in package.json formatting 2025-01-29 14:39:31 +01:00
2a1ed874b2 1.12.1
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-01-18 12:38:15 +01:00
58fb0bc3d5 fix(dependencies): Update various package dependencies and Dockerfile base image 2025-01-18 12:38:14 +01:00
b1fbd38dba 1.12.0
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-01-17 17:48:56 +01:00
fad5e046d3 feat(build): Update TypeScript configuration to support emit decorator metadata 2025-01-17 17:48:56 +01:00
eb1498c242 1.11.0
Some checks failed
Default (tags) / security (push) Failing after 2s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-01-08 22:31:12 +01:00
6b3d4d1ecf feat(cli): Add Docker command for cleaning up Docker system and extend deprecation command for multiple registries 2025-01-08 22:31:11 +01:00
16ea9bb8bd 1.10.10
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-01-01 05:33:40 +01:00
7e7aa098f9 fix(templates): Corrected typo in template file comment 2025-01-01 05:33:40 +01:00
df4350d29d 1.10.9
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-01-01 05:32:10 +01:00
81eb713dee fix(templates): Correct template file paths and organization for service projects 2025-01-01 05:32:10 +01:00
90637b1466 1.10.8
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-01-01 05:02:37 +01:00
6c3b78d0fe fix(assets/templates): Update CI template configurations to use module.githost 2025-01-01 05:02:36 +01:00
f0c7cf34e6 1.10.7
Some checks failed
Default (tags) / security (push) Failing after 2s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2024-12-26 14:48:07 +01:00
b9b5736e5e fix(assets): Correct URLs in templates and fix TypeScript declaration 2024-12-26 14:48:07 +01:00
b73acf904a 1.10.6
Some checks failed
Default (tags) / security (push) Failing after 0s
Default (tags) / test (push) Failing after 0s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2024-12-08 17:47:45 +01:00
6614529122 fix(ci): Corrected Docker image URL in CI templates 2024-12-08 17:47:45 +01:00
9ff5e9a70f 1.10.5
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 0s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2024-12-02 16:14:36 +01:00
9dbf511d50 fix(assets): Update .gitignore template to remove pages directory 2024-12-02 16:14:35 +01:00
b7a239abca 1.10.4
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 0s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2024-11-05 01:57:40 +01:00
181fad27fd fix(mod_format): Correct file extension for TypeScript path configuration 2024-11-05 01:57:39 +01:00
38 changed files with 8566 additions and 3862 deletions

3
.gitignore vendored
View File

@ -3,7 +3,6 @@
# artifacts
coverage/
public/
pages/
# installs
node_modules/
@ -17,4 +16,4 @@ node_modules/
dist/
dist_*/
# custom
#------# custom

1
assets/overrides.json Normal file
View File

@ -0,0 +1 @@
{}

View File

@ -6,8 +6,8 @@ on:
- '**'
env:
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}

View File

@ -6,8 +6,8 @@ on:
- '*'
env:
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}

View File

@ -7,7 +7,7 @@ on:
env:
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}

View File

@ -7,7 +7,7 @@ on:
env:
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}

View File

@ -7,7 +7,7 @@ on:
env:
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{gi.host}}/${-{gitea.repository}-}.git
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}

View File

@ -7,7 +7,7 @@ on:
env:
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}
@ -89,8 +89,8 @@ jobs:
npmci docker login
npmci docker build
npmci docker test
# npmci docker push {{git.host}}
npmci docker push {{git.host}}
# npmci docker push {{module.githost}}
npmci docker push {{module.githost}}
metadata:
needs: test

View File

@ -1,6 +1,6 @@
# gitzone dockerfile_service
## STAGE 1 // BUILD
FROM code.foss.global/hosttoday/ht-docker-node:npmci as node1
FROM code.foss.global/host.today/ht-docker-node:npmci as node1
COPY ./ /app
WORKDIR /app
ARG NPMCI_TOKEN_NPM2
@ -12,7 +12,7 @@ RUN pnpm run build
# gitzone dockerfile_service
## STAGE 2 // install production
FROM code.foss.global/hosttoday/ht-docker-node:npmci as node2
FROM code.foss.global/host.today/ht-docker-node:npmci as node2
WORKDIR /app
COPY --from=node1 /app /app
RUN rm -rf .pnpm-store
@ -24,7 +24,7 @@ RUN rm -rf node_modules/ && pnpm install --prod
## STAGE 3 // rebuild dependencies for alpine
FROM code.foss.global/hosttoday/ht-docker-node:alpinenpmci as node3
FROM code.foss.global/host.today/ht-docker-node:alpine_npmci as node3
WORKDIR /app
COPY --from=node2 /app /app
ARG NPMCI_TOKEN_NPM2
@ -34,7 +34,7 @@ RUN pnpm config set store-dir .pnpm-store
RUN pnpm rebuild -r
## STAGE 4 // the final production image with all dependencies in place
FROM code.foss.global/hosttoday/ht-docker-node:alpine as node4
FROM code.foss.global/host.today/ht-docker-node:alpine as node4
WORKDIR /app
COPY --from=node3 /app /app

View File

@ -6,7 +6,6 @@ fileName: .gitignore
# artifacts
coverage/
public/
pages/
# installs
node_modules/
@ -20,4 +19,4 @@ node_modules/
dist/
dist_*/
# custom
#------# custom

View File

@ -0,0 +1,8 @@
---
fileName: paths.ts
---
import * as plugins from './plugins.js';
export const packageDir = plugins.path.join(
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
'../'
);

View File

@ -0,0 +1,12 @@
---
fileName: plugins.ts
---
// native scope
import * as path from 'path';
export { path };
// @push.rocks scope
import * as smartpath from '@push.rocks/smartpath';
export { smartpath };

View File

@ -1,7 +0,0 @@
---
fileName: {{module.name}}.plugins.ts
---
const removeme = {};
export {
removeme
}

View File

@ -21,14 +21,14 @@ fileName: package.json
"@git.zone/tsrun": "^1.2.8",
"@git.zone/tstest": "^1.0.28",
"@git.zone/tswatch": "^2.0.1",
"@push.rocks/tapbundle": "^5.0.3"
"@push.rocks/tapbundle": "^5.5.4"
},
"dependencies": {
"@api.global/typedserver": "^1.0.24",
"@api.global/typedserver": "^3.0.53",
"@push.rocks/projectinfo": "^5.0.1",
"@push.rocks/qenv": "^4.0.10",
"@push.rocks/qenv": "^6.1.0",
"@push.rocks/smartdata": "^5.0.7",
"@push.rocks/smartpath": "^5.0.5",
"@push.rocks/smartstate": "^2.0.0"
}
},
}

View File

@ -1,8 +1,8 @@
---
fileName: {{module.name}}.classes.{{module.name}}db.ts
fileName: classes.{{module.name}}db.ts
---
import * as plugins from './{{module.name}}.plugins.js';
import { {{module.name}} } from './{{module.name}}.classes.{{module.name}}.js';
import { {{module.name}} } from './classes.{{module.name}}.js';

View File

@ -1,9 +1,9 @@
---
fileName: {{module.name}}.classes.{{module.name}}.ts
fileName: classes.{{module.name}}.ts
---
import * as plugins from './{{module.name}}.plugins.js';
import * as paths from './{{module.name}}.paths.js';
import { {{module.name}}Db } from './{{module.name}}.db.js'
import { {{module.name}}Db } from './classes.{{module.name}}db.js'
export class {{module.name}} {
public projectinfo: plugins.projectinfo.ProjectInfo;

View File

@ -15,8 +15,7 @@ export {
loleServiceserver
}
// pushrocks scope
// pushrocks scope
// @push.rocks scope
import * as projectinfo from '@push.rocks/projectinfo';
import * as qenv from '@push.rocks/qenv';
import * as smartdata from '@push.rocks/smartdata';

View File

@ -0,0 +1,2 @@
runafter:
- gitzone format

View File

@ -1,6 +1,7 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"useDefineForClassFields": false,
"target": "ES2022",
"module": "NodeNext",

View File

@ -0,0 +1,2 @@
export * from './page2.js';
export * from './page1.js';

View File

@ -0,0 +1,5 @@
import { html } from "@design.estate/dees-element";
export const page1 = () => html`
<first-element></first-element>
`;

View File

@ -0,0 +1,5 @@
import { html } from "@design.estate/dees-element";
export const page2 = () => html`
<first-element></first-element>
`;

View File

@ -6,7 +6,7 @@ import {
cssManager,
unsafeCSS,
css,
TemplateResult,
type TemplateResult,
} from '@design.estate/dees-element';
@customElement('default-header')

View File

@ -1,5 +1,148 @@
# Changelog
## 2025-04-15 - 1.15.3 - fix(deps)
update dependency versions and improve website template variable handling
- Bumped @git.zone/tsbuild from ^2.2.1 to ^2.3.2 and @types/node to ^22.14.1
- Upgraded @push.rocks/smartscaf from ^4.0.15 to ^4.0.16 and prettier from ^3.5.2 to ^3.5.3
- Refactored website template update to correctly supply variables with added logging
## 2025-04-15 - 1.15.2 - fix(website_update)
Await supplyVariables call in website update template
- Changed website template update to properly await the supplyVariables method
- Ensured asynchronous consistency in updating website template variables
## 2025-04-15 - 1.15.1 - fix(cli)
Refresh internal CLI tooling and configuration for consistency.
## 2025-04-15 - 1.15.0 - feat(config/template)
Add assetbrokerUrl and legalUrl fields to module config and update website template to supply these values
- Added assetbrokerUrl and legalUrl properties in ts/classes.gitzoneconfig.ts
- Updated ts/mod_format/format.templates.ts to pass assetbrokerUrl and legalUrl to website template
## 2025-04-15 - 1.14.1 - fix(package.json)
Add packageManager field to specify pnpm version for consistent package management
- Inserted packageManager property in package.json with pnpm version info to ensure reproducible dependency installs
## 2025-04-15 - 1.14.0 - feat(tsconfig_update)
Add runafter directive to trigger gitzone format after tsconfig update
- Added runafter configuration in assets/templates/tsconfig_update/.smartscaf.yml to automate formatting task
## 2025-03-07 - 1.13.1 - fix(cli)
Improve commit message logging
- Updated logging to display recommended next commit details.
- Enabled interactive prompt for choosing commit type and scope.
## 2025-02-28 - 1.13.0 - feat(templates)
Updated and added new TypeScript template files for npm projects
- Added new paths.ts and plugins.ts template files for npm projects.
- Removed outdated some.plugins.ts template file.
## 2025-02-25 - 1.12.8 - fix(metadata)
Updated package and npmextra json description and keywords for enhanced development workflow clarity
- Updated the description in package.json to focus on project setup and management.
- Aligned the keywords in both package.json and npmextra.json to include more relevant terms such as gitzone utilities, template management, and CI/CD.
## 2025-02-25 - 1.12.7 - fix(meta)
Fix issues in project metadata and configuration.
- Updated package metadata to ensure accurate project description and licensing.
- Ensured npm access level configuration consistency within npmextra.json.
## 2025-02-25 - 1.12.7 - fix(ci)
Updated dependencies and added CI/CD workflows.
- Updated several dependencies in package.json for compatibility and security.
- Added default GitHub and GitLab CI/CD workflow files to the test directory.
- Introduced a .gitignore file to exclude certain directories and files.
- Ensured consistent formatting with Prettier and TypeScript configurations.
## 2025-01-29 - 1.12.6 - fix(project)
Minor fixes and cleanup
- Removed outdated pages/ directory entry in .gitignore.
- Adjusted Docker module files to include proper newlines.
- Updated TypeScript configuration for modular paths.
- Fixed formatting issues across various TypeScript files.
## 2025-01-29 - 1.12.5 - fix(cli)
Initial implementation of CLI utility with project management features
- Integration of various plugins for logging, command-line interactions, and project management.
- Setup CLI commands for project initialization, updating, formatting, and more.
- Implement commands for packaging, versioning, and deprecating npm packages.
## 2025-01-29 - 1.12.2 - fix(format)
Add overrides for peek-readable in package.json formatting
- Added a URL correction in the packageJson repository information.
- Introduced support for pnpm overrides by including an `overrides.json` file.
## 2025-01-18 - 1.12.1 - fix(dependencies)
Update various package dependencies and Dockerfile base image
- Updated Dockerfile base image from 'alpinenpmci' to 'alpine_npmci'.
- Upgraded @git.zone/tsbuild, @git.zone/tsrun, @git.zone/tsdoc, and other dependencies to their latest versions.
## 2025-01-17 - 1.12.0 - feat(build)
Update TypeScript configuration to support emit decorator metadata
- Added emitDecoratorMetadata to the tsconfig.json template in assets/templates/tsconfig_update.
## 2025-01-08 - 1.11.0 - feat(cli)
Add Docker command for cleaning up Docker system and extend deprecation command for multiple registries
- Added a new command 'docker' to handle Docker system cleanup operations.
- Improved the 'deprecate' command to support deprecating packages across multiple npm registry URLs.
## 2025-01-01 - 1.10.10 - fix(templates)
Corrected typo in template file comment
- Fixed repeated comment in the template file for services under 'assets/templates/service/ts/some.plugins.ts'.
## 2025-01-01 - 1.10.9 - fix(templates)
Correct template file paths and organization for service projects
- Moved 'some.classes.some.ts' to 'classes.some.ts'
- Moved 'some.classes.some.db.ts' to 'classes.some.db.ts'
- Resolved incorrect import paths in service templates
## 2025-01-01 - 1.10.8 - fix(assets/templates)
Update CI template configurations to use module.githost
- Replaced occurrences of {{git.host}} with {{module.githost}} in CI workflow files
- Updated package dependencies for service template
## 2024-12-26 - 1.10.7 - fix(assets)
Correct URLs in templates and fix TypeScript declaration
- Updated incorrect URLs in Dockerfile templates to 'host.today'.
- Fixed type declaration for 'TemplateResult' in header.ts file.
## 2024-12-08 - 1.10.6 - fix(ci)
Corrected Docker image URL in CI templates
- Updated Docker image URL from 'code.foss.global/hosttoday' to 'code.foss.global/host.today' in default_nottags.yaml and default_tags.yaml.
- Adjusted gitignore template to include a custom section delineation.
## 2024-12-02 - 1.10.5 - fix(assets)
Update .gitignore template to remove pages directory
- Removed 'pages/' from the ignored directories in the .gitignore template.
## 2024-11-05 - 1.10.4 - fix(mod_format)
Correct file extension for TypeScript path configuration
- Fixed the TypeScript configuration to use correct file extensions for module subdirectories.
## 2024-10-27 - 1.10.3 - fix(mod_format)
Reorder TypeScript formatting steps in mod_format module

View File

@ -10,21 +10,26 @@
"githost": "gitlab.com",
"gitscope": "gitzone/private",
"gitrepo": "gitzone",
"description": "A CLI toolbelt to streamline local development cycles by using various gitzone utilities.",
"description": "A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.",
"npmPackagename": "@gitzone_private/gitzone",
"license": "MIT",
"keywords": [
"CLI",
"development",
"git",
"npm",
"local development",
"gitzone utilities",
"project setup",
"version control",
"code formatting",
"template management",
"npm packages",
"TypeScript",
"automation",
"project setup",
"code formatting",
"commit management",
"template creation",
"logging",
"meta project management"
"meta project management",
"sync",
"Docker",
"CI/CD"
]
}
},

View File

@ -1,8 +1,8 @@
{
"name": "@git.zone/cli",
"private": false,
"version": "1.10.3",
"description": "A CLI toolbelt to streamline local development cycles by using various gitzone utilities.",
"version": "1.15.3",
"description": "A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.",
"main": "dist_ts/index.ts",
"typings": "dist_ts/index.d.ts",
"type": "module",
@ -30,46 +30,51 @@
},
"repository": {
"type": "git",
"url": "https://code.foss.global/git.zone/cli.git"
"url": "https://gitlab.com/gitzone/private/gitzone.git"
},
"keywords": [
"CLI",
"development",
"git",
"npm",
"local development",
"gitzone utilities",
"project setup",
"version control",
"code formatting",
"template management",
"npm packages",
"TypeScript",
"automation",
"project setup",
"code formatting",
"commit management",
"template creation",
"logging",
"meta project management"
"meta project management",
"sync",
"Docker",
"CI/CD"
],
"author": "Task Venture Capital GmbH",
"license": "MIT",
"bugs": {
"url": "https://code.foss.global/git.zone/cli/issues"
"url": "https://gitlab.com/gitzone/private/gitzone/issues"
},
"homepage": "https://pages.foss.global/git.zone/cli",
"homepage": "https://gitlab.com/gitzone/private/gitzone#readme",
"devDependencies": {
"@git.zone/tsbuild": "^2.1.84",
"@git.zone/tsrun": "^1.2.49",
"@git.zone/tstest": "^1.0.90",
"@types/node": "^22.8.1"
"@git.zone/tsbuild": "^2.3.2",
"@git.zone/tsrun": "^1.3.3",
"@git.zone/tstest": "^1.0.96",
"@types/node": "^22.14.1"
},
"dependencies": {
"@git.zone/tsdoc": "^1.3.12",
"@git.zone/tspublish": "^1.4.0",
"@git.zone/tsdoc": "^1.4.4",
"@git.zone/tspublish": "^1.9.1",
"@push.rocks/commitinfo": "^1.0.12",
"@push.rocks/early": "^4.0.4",
"@push.rocks/gulp-function": "^3.0.7",
"@push.rocks/lik": "^6.0.15",
"@push.rocks/npmextra": "^5.0.23",
"@push.rocks/npmextra": "^5.1.2",
"@push.rocks/projectinfo": "^5.0.2",
"@push.rocks/smartchok": "^1.0.34",
"@push.rocks/smartcli": "^4.0.11",
"@push.rocks/smartdelay": "^3.0.5",
"@push.rocks/smartfile": "^11.0.21",
"@push.rocks/smartfile": "^11.2.0",
"@push.rocks/smartgulp": "^3.0.4",
"@push.rocks/smartinteract": "^2.0.15",
"@push.rocks/smartjson": "^5.0.20",
@ -81,14 +86,14 @@
"@push.rocks/smartobject": "^1.0.12",
"@push.rocks/smartopen": "^2.0.0",
"@push.rocks/smartpath": "^5.0.18",
"@push.rocks/smartpromise": "^4.0.4",
"@push.rocks/smartscaf": "^4.0.15",
"@push.rocks/smartshell": "^3.0.6",
"@push.rocks/smartstream": "^3.0.44",
"@push.rocks/smartpromise": "^4.2.3",
"@push.rocks/smartscaf": "^4.0.16",
"@push.rocks/smartshell": "^3.2.3",
"@push.rocks/smartstream": "^3.2.5",
"@push.rocks/smartunique": "^3.0.9",
"@push.rocks/smartupdate": "^2.0.6",
"@types/through2": "^2.0.41",
"prettier": "^3.3.3",
"prettier": "^3.5.3",
"through2": "^4.0.2"
},
"files": [
@ -105,5 +110,11 @@
],
"browserslist": [
"last 1 chrome versions"
]
],
"pnpm": {
"overrides": {
"peek-readable": "5.3.1"
}
},
"packageManager": "pnpm@10.7.0+sha512.6b865ad4b62a1d9842b61d674a393903b871d9244954f652b8842c2b553c72176b278f64c463e52d40fff8aba385c235c8c9ecf5cc7de4fd78b8bb6d49633ab6"
}

11798
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

224
readme.md
View File

@ -1,191 +1,155 @@
# @git.zone/cli
A CLI toolbelt to streamline local development cycles by using various gitzone utilities.
A CLI toolbelt to streamline local development cycles by utilizing various gitzone utilities.
## Install
To install the `@git.zone/cli` tool, you need to have Node.js and npm installed on your machine. Once you have those set up, you can install the CLI tool globally using the following command:
To begin using `@git.zone/cli`, ensure that Node.js and npm are installed on your system. Once they are set up, install the CLI tool globally with the following command:
```shell
npm install -g @git.zone/cli
```
This will add the `gitzone` or `gzone` command to your PATH, allowing you to use the tool from any directory.
This command makes `gitzone` or `gzone` accessible from any directory on your system.
## Usage
The `gitzone` CLI is designed to streamline various aspects of the local development cycle, including project setup, maintenance, and deployment. Below, we'll go through several scenarios that demonstrate the capabilities of `gitzone`.
The `gitzone` CLI provides a comprehensive set of utilities to optimize and manage the development lifecycle of projects, ranging from project initialization to version control, code formatting, and deployment processes. This usage guide will walk you through the available commands, their use cases, and provide detailed examples.
### Getting Started
### Initializing a New Project
To start using `gitzone`, you need to initialize a new project or use it with an existing one. This section will guide you through the initial setup and provide examples of the core commands.
#### Initialize a New Project
`gitzone` can create several types of projects, including standard npm modules, websites using LitElement, and custom web components. To create a new project, you can use the following command:
To bootstrap a new project aligned with modern TypeScript practices, use gitzone's template command. Choose from a range of templates tailored for different project types:
```shell
gitzone template [templatename]
```
Replace `[templatename]` with one of the following:
- `npm`: A standard npm module with TypeScript support, testing, and CI/CD setup.
- `website`: A LitElement-based website with e2e testing, bundling, and service worker support.
- `element`: A LitElement standard setup for creating web components.
Replace `[templatename]` with any of the following:
- `npm`: Starts an npm module with TypeScript, complete with test and CI/CD integration.
- `website`: Initializes a LitElement-based frontend application with features such as e2e testing and service worker setup.
- `element`: Prepares a new standard setup for creating reusable web components with LitElement.
Example of starting a new npm project:
1. Open your terminal and navigate to the directory where you want to create your project.
2. Execute the following command:
```shell
gitzone template npm
```
3. Follow the interactive prompts to set up your project. You will be asked to provide information such as the project name, description, GitHub repository, etc.
**Example: Starting a New npm Project**
1. Navigate to your desired directory in the terminal.
2. Execute:
```shell
gitzone template npm
```
3. Respond to the prompts to customize the project settings. This includes setting up essential metadata such as name and repository information.
#### Committing Changes
### Committing Changes
To standardize commit messages and increment versions based on change types (fix, feat, breaking change):
Standardizing commit messages and versionning with gitzone:
```shell
gitzone commit
```
This command will prompt you with a series of questions to help construct a standardized commit message and create a new commit.
This command provides an interactive prompt to create a conventional commit message, which will be automatically versioned based on the significance of the changes like `fix`, `feat`, or `BREAKING CHANGE`.
#### Deprecating a Package
### Handling Package Deprecation
To deprecate an old package in favor of a new one:
Replace an outdated package with a new one for your team and users:
```shell
gitzone deprecate
```
This command will prompt you for the old and new package names and will automatically deprecate the old package on npm.
The utility collects information about old and new package names through interactive prompts, and proceeds with deprecation notices in npm, guiding users towards the updated package.
#### Opening CI/CD Settings
### CI/CD Utilities
Quickly open the CI/CD settings page of your project repository:
Access your projects CI/CD settings instantly:
```shell
gitzone open ci
```
### Example Commands
This command opens the settings page of the repositorys CI/CD configuration directly from your CLI, thus swiftly transitioning from local tasks to cloud configurations.
#### Project Setup and Initialization
### Maintaining Project Cleanliness
Let's go through how to scaffold a new web component project:
1. Navigate to your desired directory.
2. Run the following command:
```shell
gitzone template element
```
3. Follow the prompts to set up your web component project.
#### Managing Project Lifecycle
Commands to manage your project's lifecycle:
- **Commit Changes:**
```shell
gitzone commit
```
- **Deprecate a Package:**
```shell
gitzone deprecate
```
- **Format Project Files:**
```shell
gitzone format
```
- **Regenerate Readme:**
```shell
gitzone readme
```
- **Update Local Repositories:**
```shell
gitzone update
```
#### Advanced Scenarios
##### Formatting
To ensure consistent formatting using Prettier:
For consistent code formatting across your project:
```shell
gitzone format
```
##### Building the Project
This command applies uniform formatting styles using Prettier, ensuring your JS/TS and markdown files align with the project's style guide.
To build your project as defined in your `package.json`:
### Lifecycle Management Commands
```shell
npm run build
```
#### Clean Builds
##### Git and Version Control
Check the current project version:
```shell
gitzone -v
```
To synchronize local repositories with remotes:
```shell
gitzone update
```
##### Metadata and Configuration
To initialize or update metadata:
```shell
gitzone meta init
```
### Continuous Integration and Delivery (CI/CD)
#### Running Tests
To execute tests defined in your `package.json`:
```shell
npm test
```
#### Building Documentation
Generate documentation:
```shell
npm run buildDocs
```
### Troubleshooting and Debugging
#### Detailed Logs
Enable detailed logging for troubleshooting:
```shell
gitzone --loglevel=debug
```
#### Cleaning Up
To clean up project artifacts:
Remove generated files and prepare for a fresh build:
```shell
gitzone clean
```
### Summary
This utility cleans up build artifacts from your project directory so that you can run a fresh build without residual clutter affecting outcomes.
The `gitzone` CLI tool provides a comprehensive suite of commands that streamline project setup, lifecycle management, and deployment, which are indispensable for modern development workflows. By familiarizing yourself with the different commands, you can maximize your productivity and focus on what really matters—writing code. Whether you are starting a new project, maintaining an existing one, or deploying your work, `gitzone` is your toolbelt for efficient development cycles.
#### Sync and meta Configuration
To manage metadata that guides your project configurations and module syncing:
```shell
gitzone meta init
```
This initialization sets the groundwork for supporting gitzone projects by helping you create a `.meta.json` file that tracks subprojects.
### Advanced Operations
#### Cloud and Docker Integrations
For projects integrating cloud deployment or containerization:
```shell
gitzone docker prune
```
This utility manages Docker resources by cleaning stale volumes, containers, and images, ensuring efficient resource use.
### Detailed Use Cases
#### **Project Setup and Template Management**
Whether creating an npm module or a web component, the command `gitzone template [templatename]` invokes smart scaffolding processes that automatically set up a robust project environment equipped with modern tooling like TypeScript, Prettier configurations, and testing frameworks.
#### **Commit Management**
The `gitzone commit` command assures that your commit messages complement semantic versioning practices. It proposes version bumps based on detected changes and helps maintain an accurate project change log.
- **Interactive Commit:** Users engage in dialogues to define commit type (`fix`, `feat`, `BREAKING CHANGE`), scope, and description, resulting in uniform and meaningful commit logs.
- **Automatic Versioning:** After message crafting, the versioning is attended by bumps similar to npms `npm version` with stages such as `major`, `minor`, and `patch`.
#### **Formatting and Configurations**
A consistent format yields a professional and readable codebase:
```shell
gitzone format
```
- **Prettier Integration:** Formats not only TypeScript and JavaScript files but also documents such as `readme.md`, maintaining consistency in both code and documentation style.
#### **Synced Meta Projects**
Effectively supervise interconnected repositories or module collections:
- **Meta Initialization (`meta init`)**: Lay down a foundation for a meta repository that orchestrates multiple projects by overseeing them through a centralized metadata file.
- **Subproject Operations:** Commands such as `meta update`, `meta add`, `meta remove` enable dynamic management of subprojects, ensuring they remain updated with current features and aligned to the meta repository's standards.
#### **CI/CD Integration**
Directly linking your local development processes to continuous integration settings with `gitzone open ci` provides seamless switches between code and configuration in cloud-based environments.
#### **Real-time Docker Management**
For developers employing Docker for service deployments, `gitzone docker prune` offers a quick remedy to residual services, optimizing local/docker-storage for a more streamlined experience in container management.
### Leveraging gitzone
By mastering the `gitzone` CLI commands, you gain unparalleled efficiency in managing your projects from conception to deployment. Encompassing a wide gamut of functionalities, from initial project scaffolding to synchronization of modularized repositories and beyond, `gitzone` serves as a linchpin for developers intent on optimizing their workflow. Understanding and utilizing its full potential catalyzes development cycles, granting the freedom to focus on innovation, collaboration, and delivering outstanding software products.
## License and Legal Information

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@git.zone/cli',
version: '1.10.3',
description: 'A CLI toolbelt to streamline local development cycles by using various gitzone utilities.'
version: '1.15.3',
description: 'A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.'
}

View File

@ -16,6 +16,8 @@ export interface IGitzoneConfigData {
npmPackageName: string;
license: string;
projectDomain: string;
assetbrokerUrl: string;
legalUrl: string;
};
copy: { [key: string]: string };
npmciOptions: {

View File

@ -48,6 +48,14 @@ export let run = async () => {
await modDeprecate.run();
});
/**
* docker
*/
gitzoneSmartcli.addCommand('docker').subscribe(async (argvArg) => {
const modDocker = await import('./mod_docker/index.js');
await modDocker.run(argvArg);
});
/**
* Update all files that comply with the gitzone standard
*/

View File

@ -4,6 +4,15 @@ import { logger } from '../gitzone.logging.js';
export const run = async () => {
const smartInteract = new plugins.smartinteract.SmartInteract([
{
name: `registryUrls`,
message: `What are the comma separated registry URLs?`,
type: `input`,
default: `https://registry.npmjs.org`,
validate: (stringInput) => {
return stringInput !== '' && !process.env.CI;
},
},
{
name: `oldPackageName`,
message: `Whats the name of the OLD package?`,
@ -24,14 +33,17 @@ export const run = async () => {
},
]);
const answerBucket = await smartInteract.runQueue();
const registryUrls = answerBucket.getAnswerFor(`registryUrls`).split(',');
const oldPackageName = answerBucket.getAnswerFor(`oldPackageName`);
const newPackageName = answerBucket.getAnswerFor(`newPackageName`);
logger.log('info', `Deprecating package ${oldPackageName} in favour of ${newPackageName}`);
const smartshellInstance = new plugins.smartshell.Smartshell({
executor: 'bash',
});
await smartshellInstance.exec(
`npm deprecate ${oldPackageName}@* ` +
`"${oldPackageName} has been deprecated in favour of ${newPackageName} - please upgrade asap!!!"`
);
for (const registryUrl of registryUrls) {
await smartshellInstance.exec(
`npm deprecate ${oldPackageName}@* ` +
`"${oldPackageName} has been deprecated in favour of ${newPackageName} - please upgrade asap!!!" --registry ${registryUrl}`,
);
}
};

12
ts/mod_docker/index.ts Normal file
View File

@ -0,0 +1,12 @@
import * as plugins from './mod.plugins.js';
export const run = async (argvArg) => {
const smartshellInstance = new plugins.smartshell.Smartshell({
executor: 'bash',
});
switch (argvArg._[1]) {
case 'prune':
await smartshellInstance.exec(`docker system prune -a -f --volumes`);
break;
}
};

View File

@ -0,0 +1,4 @@
export * from '../plugins.js';
import * as smartshell from '@push.rocks/smartshell';
export { smartshell };

View File

@ -27,7 +27,7 @@ export const run = async (projectArg: Project) => {
// metadata
packageJson.repository = {
type: 'git',
url: `git+https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}.git`,
url: `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}.git`,
};
(packageJson.bugs = {
url: `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}/issues`,
@ -89,6 +89,13 @@ export const run = async (projectArg: Project) => {
await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tstest');
await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tsbuild');
// set overrides
const overrides = plugins.smartfile.fs.toObjectSync(
plugins.path.join(paths.assetsDir, 'overrides.json'),
);
packageJson.pnpm = packageJson.pnpm || {};
packageJson.pnpm.overrides = overrides;
// exclude
// TODO

View File

@ -38,7 +38,7 @@ export const run = async (project: Project) => {
case 'website':
const ciTemplateDocker = await templateModule.getTemplate('ci_docker');
await ciTemplateDocker.writeToDisk(paths.cwd);
logger.log('info', 'Updated .gitlabci.yml!');
logger.log('info', 'Updated CI/CD config files!');
// lets care about docker
const dockerTemplate = await templateModule.getTemplate('dockerfile_service');
@ -57,6 +57,12 @@ export const run = async (project: Project) => {
// update html
if (project.gitzoneConfig.data.projectType === 'website') {
const websiteUpdateTemplate = await templateModule.getTemplate('website_update');
const variables ={
assetbrokerUrl: project.gitzoneConfig.data.module.assetbrokerUrl,
legalUrl: project.gitzoneConfig.data.module.legalUrl,
};
console.log('updating website template with variables\n', JSON.stringify(variables, null, 2));
websiteUpdateTemplate.supplyVariables(variables);
await websiteUpdateTemplate.writeToDisk(paths.cwd);
logger.log('info', `Updated html for website!`);
} else if (project.gitzoneConfig.data.projectType === 'service') {

View File

@ -7,7 +7,9 @@ import { Project } from '../classes.project.js';
export const run = async (projectArg: Project) => {
// lets care about tsconfig.json
logger.log('info', 'Formatting tsconfig.json...');
const tsconfigSmartfile = await plugins.smartfile.SmartFile.fromFilePath(plugins.path.join(paths.cwd, 'tsconfig.json'));
const tsconfigSmartfile = await plugins.smartfile.SmartFile.fromFilePath(
plugins.path.join(paths.cwd, 'tsconfig.json'),
);
const tsconfigObject = JSON.parse(tsconfigSmartfile.contentBuffer.toString());
tsconfigObject.compilerOptions = tsconfigObject.compilerOptions || {};
tsconfigObject.compilerOptions.baseUrl = '.';
@ -17,7 +19,7 @@ export const run = async (projectArg: Project) => {
const publishModules = await tsPublishInstance.getModuleSubDirs(paths.cwd);
for (const publishModule of Object.keys(publishModules)) {
const publishConfig = publishModules[publishModule];
tsconfigObject.compilerOptions.paths[`${publishConfig.name}`] = [`./${publishModule}/index.ts`];
tsconfigObject.compilerOptions.paths[`${publishConfig.name}`] = [`./${publishModule}/index.js`];
}
tsconfigSmartfile.setContentsFromString(JSON.stringify(tsconfigObject, null, 2));
await tsconfigSmartfile.write();

View File

@ -6,7 +6,9 @@
"module": "NodeNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"verbatimModuleSyntax": true
"verbatimModuleSyntax": true,
"baseUrl": ".",
"paths": {}
},
"exclude": [
"dist_*/**/*.d.ts"