@powerhousedao/codegen 6.0.0-dev.2 → 6.0.0-dev.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +3 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +1 -1
- package/dist/src/codegen/__tests__/generate-doc-model.test.js +1 -0
- package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js +35 -10
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-editor.test.js +13 -9
- package/dist/src/codegen/__tests__/generate-editor.test.js.map +1 -1
- package/dist/src/codegen/generate.d.ts +10 -10
- package/dist/src/codegen/generate.d.ts.map +1 -1
- package/dist/src/codegen/generate.js +21 -23
- package/dist/src/codegen/generate.js.map +1 -1
- package/dist/src/create-lib/create-project.d.ts.map +1 -1
- package/dist/src/create-lib/create-project.js +9 -1
- package/dist/src/create-lib/create-project.js.map +1 -1
- package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts +2 -0
- package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts.map +1 -0
- package/dist/src/file-builders/boilerplate/ci-templates.test.js +114 -0
- package/dist/src/file-builders/boilerplate/ci-templates.test.js.map +1 -0
- package/dist/src/file-builders/clis/generate-cli-docs.d.ts +17 -0
- package/dist/src/file-builders/clis/generate-cli-docs.d.ts.map +1 -0
- package/dist/src/file-builders/clis/generate-cli-docs.js +36 -0
- package/dist/src/file-builders/clis/generate-cli-docs.js.map +1 -0
- package/dist/src/file-builders/index.d.ts +1 -0
- package/dist/src/file-builders/index.d.ts.map +1 -1
- package/dist/src/file-builders/index.js +1 -0
- package/dist/src/file-builders/index.js.map +1 -1
- package/dist/src/file-builders/types.d.ts +18 -0
- package/dist/src/file-builders/types.d.ts.map +1 -1
- package/dist/src/templates/boilerplate/AGENTS.md.d.ts.map +1 -1
- package/dist/src/templates/boilerplate/AGENTS.md.js +41 -0
- package/dist/src/templates/boilerplate/AGENTS.md.js.map +1 -1
- package/dist/src/templates/boilerplate/CLAUDE.md.d.ts +1 -1
- package/dist/src/templates/boilerplate/CLAUDE.md.d.ts.map +1 -1
- package/dist/src/templates/boilerplate/CLAUDE.md.js +1 -407
- package/dist/src/templates/boilerplate/CLAUDE.md.js.map +1 -1
- package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts +2 -0
- package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/docker/Dockerfile.js +144 -0
- package/dist/src/templates/boilerplate/docker/Dockerfile.js.map +1 -0
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts +2 -0
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js +18 -0
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js.map +1 -0
- package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts +2 -0
- package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/docker/nginx.conf.js +79 -0
- package/dist/src/templates/boilerplate/docker/nginx.conf.js.map +1 -0
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts +2 -0
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js +19 -0
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js.map +1 -0
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts +2 -0
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js +376 -0
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js.map +1 -0
- package/dist/src/templates/boilerplate/package.json.d.ts.map +1 -1
- package/dist/src/templates/boilerplate/package.json.js +0 -1
- package/dist/src/templates/boilerplate/package.json.js.map +1 -1
- package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts +8 -0
- package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts.map +1 -0
- package/dist/src/templates/cli-docs/docs-from-cli-help.js +86 -0
- package/dist/src/templates/cli-docs/docs-from-cli-help.js.map +1 -0
- package/dist/src/templates/document-editor/editor.d.ts.map +1 -1
- package/dist/src/templates/document-editor/editor.js +66 -59
- package/dist/src/templates/document-editor/editor.js.map +1 -1
- package/dist/src/templates/drive-editor/editor.d.ts.map +1 -1
- package/dist/src/templates/drive-editor/editor.js +3 -1
- package/dist/src/templates/drive-editor/editor.js.map +1 -1
- package/dist/src/templates/index.d.ts +6 -0
- package/dist/src/templates/index.d.ts.map +1 -1
- package/dist/src/templates/index.js +6 -0
- package/dist/src/templates/index.js.map +1 -1
- package/dist/src/utils/dependencies.d.ts +21 -0
- package/dist/src/utils/dependencies.d.ts.map +1 -1
- package/dist/src/utils/dependencies.js +65 -2
- package/dist/src/utils/dependencies.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -8
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export const nginxConfTemplate = `user nginx;
|
|
2
|
+
worker_processes auto;
|
|
3
|
+
error_log /var/log/nginx/error.log warn;
|
|
4
|
+
pid /var/run/nginx.pid;
|
|
5
|
+
|
|
6
|
+
events {
|
|
7
|
+
worker_connections 1024;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
http {
|
|
11
|
+
include /etc/nginx/mime.types;
|
|
12
|
+
default_type application/octet-stream;
|
|
13
|
+
|
|
14
|
+
# Gzip compression
|
|
15
|
+
gzip on;
|
|
16
|
+
gzip_vary on;
|
|
17
|
+
gzip_proxied any;
|
|
18
|
+
gzip_comp_level 6;
|
|
19
|
+
gzip_buffers 16 8k;
|
|
20
|
+
gzip_http_version 1.1;
|
|
21
|
+
gzip_types text/plain text/css application/javascript application/json image/svg+xml application/xml+rss image/avif;
|
|
22
|
+
|
|
23
|
+
server {
|
|
24
|
+
listen 0.0.0.0:\${PORT};
|
|
25
|
+
server_name _;
|
|
26
|
+
root /var/www/html/project;
|
|
27
|
+
|
|
28
|
+
# Health check endpoint
|
|
29
|
+
location /health {
|
|
30
|
+
access_log off;
|
|
31
|
+
add_header Content-Type text/plain;
|
|
32
|
+
return 200 'OK';
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
location \${PH_CONNECT_BASE_PATH}/assets/ {
|
|
36
|
+
alias /var/www/html/project/assets/;
|
|
37
|
+
access_log off;
|
|
38
|
+
log_not_found off;
|
|
39
|
+
etag off;
|
|
40
|
+
expires max;
|
|
41
|
+
add_header Cache-Control "public, max-age=31536000, immutable";
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
location \${PH_CONNECT_BASE_PATH}/fonts/ {
|
|
45
|
+
alias /var/www/html/project/fonts/;
|
|
46
|
+
access_log off;
|
|
47
|
+
log_not_found off;
|
|
48
|
+
expires max;
|
|
49
|
+
add_header Cache-Control "public, max-age=31536000, immutable";
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
location = \${PH_CONNECT_BASE_PATH}/service-worker.js {
|
|
53
|
+
alias /var/www/html/project/service-worker.js;
|
|
54
|
+
|
|
55
|
+
access_log off;
|
|
56
|
+
log_not_found off;
|
|
57
|
+
etag off;
|
|
58
|
+
|
|
59
|
+
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
|
60
|
+
add_header Pragma "no-cache";
|
|
61
|
+
add_header Expires "0";
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
# match any file in the root folder, except index.html
|
|
65
|
+
location ~ \${PH_CONNECT_BASE_PATH}/(?!index\\.html$)([^/]+\\.[a-zA-Z0-9]+)$ {
|
|
66
|
+
alias /var/www/html/project/$1;
|
|
67
|
+
access_log off;
|
|
68
|
+
log_not_found off;
|
|
69
|
+
etag on;
|
|
70
|
+
add_header Cache-Control "public, must-revalidate";
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
location \${PH_CONNECT_BASE_PATH} {
|
|
74
|
+
try_files $uri $uri/ /index.html;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
`;
|
|
79
|
+
//# sourceMappingURL=nginx.conf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nginx.conf.js","sourceRoot":"","sources":["../../../../../src/templates/boilerplate/docker/nginx.conf.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EhC,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const switchboardEntrypointTemplate = "#!/bin/sh\nset -e\n\n# Regenerate Prisma client for current platform (fixes darwin-arm64 vs linux-musl-openssl mismatch)\necho \"[entrypoint] Regenerating Prisma client for current platform...\"\nprisma generate --schema node_modules/document-drive/dist/prisma/schema.prisma\n\n# Run migrations if DATABASE_URL is postgres and migrations not skipped\nif [ -n \"$DATABASE_URL\" ] && echo \"$DATABASE_URL\" | grep -q \"^postgres\" && [ \"$SKIP_DB_MIGRATIONS\" != \"true\" ]; then\n echo \"[entrypoint] Running Prisma db push...\"\n prisma db push --schema node_modules/document-drive/dist/prisma/schema.prisma --skip-generate\n echo \"[entrypoint] Running migrations...\"\n ph switchboard --migrate\nfi\n\necho \"[entrypoint] Starting switchboard on port ${PORT:-3000}...\"\nexec ph switchboard --port ${PORT:-3000}\n";
|
|
2
|
+
//# sourceMappingURL=switchboard-entrypoint.sh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switchboard-entrypoint.sh.d.ts","sourceRoot":"","sources":["../../../../../src/templates/boilerplate/docker/switchboard-entrypoint.sh.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,g0BAiBzC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const switchboardEntrypointTemplate = `#!/bin/sh
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
# Regenerate Prisma client for current platform (fixes darwin-arm64 vs linux-musl-openssl mismatch)
|
|
5
|
+
echo "[entrypoint] Regenerating Prisma client for current platform..."
|
|
6
|
+
prisma generate --schema node_modules/document-drive/dist/prisma/schema.prisma
|
|
7
|
+
|
|
8
|
+
# Run migrations if DATABASE_URL is postgres and migrations not skipped
|
|
9
|
+
if [ -n "$DATABASE_URL" ] && echo "$DATABASE_URL" | grep -q "^postgres" && [ "$SKIP_DB_MIGRATIONS" != "true" ]; then
|
|
10
|
+
echo "[entrypoint] Running Prisma db push..."
|
|
11
|
+
prisma db push --schema node_modules/document-drive/dist/prisma/schema.prisma --skip-generate
|
|
12
|
+
echo "[entrypoint] Running migrations..."
|
|
13
|
+
ph switchboard --migrate
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
echo "[entrypoint] Starting switchboard on port \${PORT:-3000}..."
|
|
17
|
+
exec ph switchboard --port \${PORT:-3000}
|
|
18
|
+
`;
|
|
19
|
+
//# sourceMappingURL=switchboard-entrypoint.sh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switchboard-entrypoint.sh.js","sourceRoot":"","sources":["../../../../../src/templates/boilerplate/docker/switchboard-entrypoint.sh.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;;;;;;;;;CAiB5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-and-publish.yml.d.ts","sourceRoot":"","sources":["../../../../../src/templates/boilerplate/github/sync-and-publish.yml.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,8BAA8B,QAqXtC,CAAC"}
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import { yaml } from "@tmpl/core";
|
|
2
|
+
export const syncAndPublishWorkflowTemplate = yaml `
|
|
3
|
+
name: Sync and Publish
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
# Triggered by powerhouse monorepo after release
|
|
7
|
+
repository_dispatch:
|
|
8
|
+
types: [powerhouse-release]
|
|
9
|
+
|
|
10
|
+
# Manual trigger
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
inputs:
|
|
13
|
+
channel:
|
|
14
|
+
description: 'Release channel'
|
|
15
|
+
required: true
|
|
16
|
+
type: choice
|
|
17
|
+
options:
|
|
18
|
+
- dev
|
|
19
|
+
- staging
|
|
20
|
+
- latest
|
|
21
|
+
default: 'staging'
|
|
22
|
+
version:
|
|
23
|
+
description: 'Powerhouse version (e.g., 5.3.0-staging.6)'
|
|
24
|
+
required: false
|
|
25
|
+
type: string
|
|
26
|
+
dry-run:
|
|
27
|
+
description: 'Dry run (skip publishing)'
|
|
28
|
+
required: false
|
|
29
|
+
type: boolean
|
|
30
|
+
default: false
|
|
31
|
+
skip-docker:
|
|
32
|
+
description: 'Skip Docker build and push'
|
|
33
|
+
required: false
|
|
34
|
+
type: boolean
|
|
35
|
+
default: false
|
|
36
|
+
|
|
37
|
+
env:
|
|
38
|
+
NODE_VERSION: '22'
|
|
39
|
+
PNPM_VERSION: '10'
|
|
40
|
+
DOCKER_REGISTRY: cr.vetra.io
|
|
41
|
+
GHCR_REGISTRY: ghcr.io
|
|
42
|
+
|
|
43
|
+
jobs:
|
|
44
|
+
# ==========================================================================
|
|
45
|
+
# Determine release parameters
|
|
46
|
+
# ==========================================================================
|
|
47
|
+
prepare:
|
|
48
|
+
name: Prepare Release
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
outputs:
|
|
51
|
+
channel: \${{ steps.params.outputs.channel }}
|
|
52
|
+
version: \${{ steps.params.outputs.version }}
|
|
53
|
+
branch: \${{ steps.params.outputs.branch }}
|
|
54
|
+
project_name: \${{ steps.params.outputs.project_name }}
|
|
55
|
+
dry_run: \${{ steps.params.outputs.dry_run }}
|
|
56
|
+
skip_docker: \${{ steps.params.outputs.skip_docker }}
|
|
57
|
+
steps:
|
|
58
|
+
- name: Determine parameters
|
|
59
|
+
id: params
|
|
60
|
+
run: |
|
|
61
|
+
# Get channel from dispatch payload or input
|
|
62
|
+
if [ "\${{ github.event_name }}" = "repository_dispatch" ]; then
|
|
63
|
+
CHANNEL="\${{ github.event.client_payload.channel }}"
|
|
64
|
+
VERSION="\${{ github.event.client_payload.version }}"
|
|
65
|
+
DRY_RUN="false"
|
|
66
|
+
SKIP_DOCKER="false"
|
|
67
|
+
else
|
|
68
|
+
CHANNEL="\${{ inputs.channel }}"
|
|
69
|
+
VERSION="\${{ inputs.version }}"
|
|
70
|
+
DRY_RUN="\${{ inputs.dry-run }}"
|
|
71
|
+
SKIP_DOCKER="\${{ inputs.skip-docker }}"
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
# Default channel to staging if not set
|
|
75
|
+
CHANNEL="\${CHANNEL:-staging}"
|
|
76
|
+
|
|
77
|
+
# Determine branch from channel
|
|
78
|
+
case "\$CHANNEL" in
|
|
79
|
+
dev) BRANCH="dev" ;;
|
|
80
|
+
staging) BRANCH="staging" ;;
|
|
81
|
+
latest|main) BRANCH="main" ;;
|
|
82
|
+
*) BRANCH="staging" ;;
|
|
83
|
+
esac
|
|
84
|
+
|
|
85
|
+
# Use DOCKER_PROJECT secret if set, otherwise extract from repository name
|
|
86
|
+
if [ -n "\${{ secrets.DOCKER_PROJECT }}" ]; then
|
|
87
|
+
PROJECT_NAME="\${{ secrets.DOCKER_PROJECT }}"
|
|
88
|
+
else
|
|
89
|
+
PROJECT_NAME="\${GITHUB_REPOSITORY#*/}"
|
|
90
|
+
fi
|
|
91
|
+
|
|
92
|
+
echo "channel=\$CHANNEL" >> \$GITHUB_OUTPUT
|
|
93
|
+
echo "version=\$VERSION" >> \$GITHUB_OUTPUT
|
|
94
|
+
echo "branch=\$BRANCH" >> \$GITHUB_OUTPUT
|
|
95
|
+
echo "project_name=\$PROJECT_NAME" >> \$GITHUB_OUTPUT
|
|
96
|
+
echo "dry_run=\$DRY_RUN" >> \$GITHUB_OUTPUT
|
|
97
|
+
echo "skip_docker=\$SKIP_DOCKER" >> \$GITHUB_OUTPUT
|
|
98
|
+
|
|
99
|
+
echo "Channel: \$CHANNEL"
|
|
100
|
+
echo "Version: \$VERSION"
|
|
101
|
+
echo "Branch: \$BRANCH"
|
|
102
|
+
echo "Project: \$PROJECT_NAME"
|
|
103
|
+
echo "Dry Run: \$DRY_RUN"
|
|
104
|
+
echo "Skip Docker: \$SKIP_DOCKER"
|
|
105
|
+
|
|
106
|
+
# ==========================================================================
|
|
107
|
+
# Update dependencies and publish to npm
|
|
108
|
+
# ==========================================================================
|
|
109
|
+
update-and-publish:
|
|
110
|
+
name: Update & Publish NPM
|
|
111
|
+
needs: prepare
|
|
112
|
+
runs-on: ubuntu-latest
|
|
113
|
+
permissions:
|
|
114
|
+
contents: write
|
|
115
|
+
id-token: write
|
|
116
|
+
outputs:
|
|
117
|
+
new_version: \${{ steps.version.outputs.new_version }}
|
|
118
|
+
steps:
|
|
119
|
+
- name: Checkout repository
|
|
120
|
+
uses: actions/checkout@v4
|
|
121
|
+
with:
|
|
122
|
+
ref: \${{ needs.prepare.outputs.branch }}
|
|
123
|
+
fetch-depth: 0
|
|
124
|
+
token: \${{ secrets.GITHUB_TOKEN }}
|
|
125
|
+
|
|
126
|
+
- name: Install pnpm
|
|
127
|
+
uses: pnpm/action-setup@v4
|
|
128
|
+
with:
|
|
129
|
+
version: \${{ env.PNPM_VERSION }}
|
|
130
|
+
|
|
131
|
+
- name: Install Node.js
|
|
132
|
+
uses: actions/setup-node@v4
|
|
133
|
+
with:
|
|
134
|
+
node-version: \${{ env.NODE_VERSION }}
|
|
135
|
+
cache: 'pnpm'
|
|
136
|
+
|
|
137
|
+
- name: Configure git
|
|
138
|
+
run: |
|
|
139
|
+
git config user.name "github-actions[bot]"
|
|
140
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
141
|
+
|
|
142
|
+
- name: Install ph-cli
|
|
143
|
+
run: |
|
|
144
|
+
CHANNEL="\${{ needs.prepare.outputs.channel }}"
|
|
145
|
+
case "\$CHANNEL" in
|
|
146
|
+
dev) pnpm add -g @powerhousedao/ph-cli@dev ;;
|
|
147
|
+
staging) pnpm add -g @powerhousedao/ph-cli@staging ;;
|
|
148
|
+
*) pnpm add -g @powerhousedao/ph-cli@latest ;;
|
|
149
|
+
esac
|
|
150
|
+
|
|
151
|
+
- name: Update Powerhouse dependencies
|
|
152
|
+
run: ph update
|
|
153
|
+
|
|
154
|
+
- name: Install dependencies
|
|
155
|
+
run: pnpm install
|
|
156
|
+
|
|
157
|
+
- name: Build package
|
|
158
|
+
run: pnpm build
|
|
159
|
+
|
|
160
|
+
- name: Run tests
|
|
161
|
+
run: pnpm test || true
|
|
162
|
+
continue-on-error: true
|
|
163
|
+
|
|
164
|
+
- name: Bump version
|
|
165
|
+
id: version
|
|
166
|
+
run: |
|
|
167
|
+
CHANNEL="\${{ needs.prepare.outputs.channel }}"
|
|
168
|
+
CURRENT_VERSION=\$(node -p "require('./package.json').version")
|
|
169
|
+
|
|
170
|
+
# Determine new version
|
|
171
|
+
if [ "\$CHANNEL" = "latest" ] || [ "\$CHANNEL" = "main" ]; then
|
|
172
|
+
# For production, use patch bump
|
|
173
|
+
npm version patch --no-git-tag-version
|
|
174
|
+
else
|
|
175
|
+
# For dev/staging, use prerelease
|
|
176
|
+
npm version prerelease --preid=\$CHANNEL --no-git-tag-version
|
|
177
|
+
fi
|
|
178
|
+
|
|
179
|
+
NEW_VERSION=\$(node -p "require('./package.json').version")
|
|
180
|
+
echo "new_version=\$NEW_VERSION" >> \$GITHUB_OUTPUT
|
|
181
|
+
echo "Bumped version: \$CURRENT_VERSION -> \$NEW_VERSION"
|
|
182
|
+
|
|
183
|
+
- name: Commit changes
|
|
184
|
+
run: |
|
|
185
|
+
git add package.json pnpm-lock.yaml
|
|
186
|
+
git commit -m "chore: sync powerhouse dependencies to \${{ needs.prepare.outputs.version }}
|
|
187
|
+
|
|
188
|
+
- Updated to powerhouse \${{ needs.prepare.outputs.version }}
|
|
189
|
+
- Bumped version to \${{ steps.version.outputs.new_version }}" || echo "No changes to commit"
|
|
190
|
+
|
|
191
|
+
- name: Push changes
|
|
192
|
+
if: needs.prepare.outputs.dry_run != 'true'
|
|
193
|
+
run: git push
|
|
194
|
+
|
|
195
|
+
- name: Setup npm for publishing
|
|
196
|
+
if: needs.prepare.outputs.dry_run != 'true' && secrets.NPM_ACCESS_TOKEN != ''
|
|
197
|
+
uses: actions/setup-node@v4
|
|
198
|
+
with:
|
|
199
|
+
node-version: \${{ env.NODE_VERSION }}
|
|
200
|
+
registry-url: 'https://registry.npmjs.org'
|
|
201
|
+
|
|
202
|
+
- name: Publish to npm with provenance
|
|
203
|
+
if: needs.prepare.outputs.dry_run != 'true' && secrets.NPM_ACCESS_TOKEN != ''
|
|
204
|
+
env:
|
|
205
|
+
NODE_AUTH_TOKEN: \${{ secrets.NPM_ACCESS_TOKEN }}
|
|
206
|
+
NPM_CONFIG_PROVENANCE: true
|
|
207
|
+
run: |
|
|
208
|
+
CHANNEL="\${{ needs.prepare.outputs.channel }}"
|
|
209
|
+
if [ "\$CHANNEL" = "latest" ] || [ "\$CHANNEL" = "main" ]; then
|
|
210
|
+
pnpm publish --access public --tag latest --no-git-checks
|
|
211
|
+
else
|
|
212
|
+
pnpm publish --access public --tag \$CHANNEL --no-git-checks
|
|
213
|
+
fi
|
|
214
|
+
|
|
215
|
+
- name: Create git tag
|
|
216
|
+
if: needs.prepare.outputs.dry_run != 'true'
|
|
217
|
+
run: |
|
|
218
|
+
git tag "v\${{ steps.version.outputs.new_version }}"
|
|
219
|
+
git push origin "v\${{ steps.version.outputs.new_version }}"
|
|
220
|
+
|
|
221
|
+
# ==========================================================================
|
|
222
|
+
# Build and push Docker images
|
|
223
|
+
# ==========================================================================
|
|
224
|
+
build-docker:
|
|
225
|
+
name: Build Docker Images
|
|
226
|
+
needs: [prepare, update-and-publish]
|
|
227
|
+
if: |
|
|
228
|
+
needs.prepare.outputs.skip_docker != 'true' &&
|
|
229
|
+
needs.prepare.outputs.dry_run != 'true' &&
|
|
230
|
+
secrets.DOCKER_USERNAME != '' &&
|
|
231
|
+
secrets.DOCKER_PASSWORD != ''
|
|
232
|
+
runs-on: ubuntu-latest
|
|
233
|
+
permissions:
|
|
234
|
+
contents: read
|
|
235
|
+
packages: write
|
|
236
|
+
strategy:
|
|
237
|
+
matrix:
|
|
238
|
+
target: [connect, switchboard]
|
|
239
|
+
steps:
|
|
240
|
+
- name: Checkout repository
|
|
241
|
+
uses: actions/checkout@v4
|
|
242
|
+
with:
|
|
243
|
+
ref: \${{ needs.prepare.outputs.branch }}
|
|
244
|
+
|
|
245
|
+
- name: Pull latest changes
|
|
246
|
+
run: git pull origin \${{ needs.prepare.outputs.branch }}
|
|
247
|
+
|
|
248
|
+
- name: Set up Docker Buildx
|
|
249
|
+
uses: docker/setup-buildx-action@v3
|
|
250
|
+
|
|
251
|
+
- name: Ensure Docker project exists
|
|
252
|
+
run: |
|
|
253
|
+
PROJECT_NAME="\${{ needs.prepare.outputs.project_name }}"
|
|
254
|
+
|
|
255
|
+
# Check if project exists, create if not
|
|
256
|
+
STATUS=\$(curl -s -o /dev/null -w "%{http_code}" \\
|
|
257
|
+
-u "\${{ secrets.DOCKER_USERNAME }}:\${{ secrets.DOCKER_PASSWORD }}" \\
|
|
258
|
+
"https://\${{ env.DOCKER_REGISTRY }}/api/v2.0/projects?name=\${PROJECT_NAME}")
|
|
259
|
+
|
|
260
|
+
if [ "\$STATUS" = "200" ]; then
|
|
261
|
+
# Check if the project is in the response
|
|
262
|
+
EXISTS=\$(curl -s \\
|
|
263
|
+
-u "\${{ secrets.DOCKER_USERNAME }}:\${{ secrets.DOCKER_PASSWORD }}" \\
|
|
264
|
+
"https://\${{ env.DOCKER_REGISTRY }}/api/v2.0/projects?name=\${PROJECT_NAME}" | \\
|
|
265
|
+
jq -r ".[] | select(.name==\\"\${PROJECT_NAME}\\") | .name")
|
|
266
|
+
|
|
267
|
+
if [ "\$EXISTS" = "\$PROJECT_NAME" ]; then
|
|
268
|
+
echo "Project \${PROJECT_NAME} already exists"
|
|
269
|
+
else
|
|
270
|
+
echo "Creating project \${PROJECT_NAME}..."
|
|
271
|
+
curl -X POST \\
|
|
272
|
+
-u "\${{ secrets.DOCKER_USERNAME }}:\${{ secrets.DOCKER_PASSWORD }}" \\
|
|
273
|
+
-H "Content-Type: application/json" \\
|
|
274
|
+
-d "{\\"project_name\\": \\"\${PROJECT_NAME}\\", \\"public\\": false}" \\
|
|
275
|
+
"https://\${{ env.DOCKER_REGISTRY }}/api/v2.0/projects"
|
|
276
|
+
fi
|
|
277
|
+
else
|
|
278
|
+
echo "Creating project \${PROJECT_NAME}..."
|
|
279
|
+
curl -X POST \\
|
|
280
|
+
-u "\${{ secrets.DOCKER_USERNAME }}:\${{ secrets.DOCKER_PASSWORD }}" \\
|
|
281
|
+
-H "Content-Type: application/json" \\
|
|
282
|
+
-d "{\\"project_name\\": \\"\${PROJECT_NAME}\\", \\"public\\": false}" \\
|
|
283
|
+
"https://\${{ env.DOCKER_REGISTRY }}/api/v2.0/projects"
|
|
284
|
+
fi
|
|
285
|
+
|
|
286
|
+
- name: Login to GitHub Container Registry
|
|
287
|
+
uses: docker/login-action@v3
|
|
288
|
+
with:
|
|
289
|
+
registry: \${{ env.GHCR_REGISTRY }}
|
|
290
|
+
username: \${{ github.actor }}
|
|
291
|
+
password: \${{ secrets.GITHUB_TOKEN }}
|
|
292
|
+
|
|
293
|
+
- name: Login to Docker Registry
|
|
294
|
+
uses: docker/login-action@v3
|
|
295
|
+
with:
|
|
296
|
+
registry: \${{ env.DOCKER_REGISTRY }}
|
|
297
|
+
username: \${{ secrets.DOCKER_USERNAME }}
|
|
298
|
+
password: \${{ secrets.DOCKER_PASSWORD }}
|
|
299
|
+
|
|
300
|
+
- name: Extract package name
|
|
301
|
+
id: package
|
|
302
|
+
run: |
|
|
303
|
+
PACKAGE_NAME=\$(node -p "require('./package.json').name")
|
|
304
|
+
echo "name=\$PACKAGE_NAME" >> \$GITHUB_OUTPUT
|
|
305
|
+
|
|
306
|
+
- name: Determine image tags
|
|
307
|
+
id: tags
|
|
308
|
+
run: |
|
|
309
|
+
VERSION="\${{ needs.update-and-publish.outputs.new_version }}"
|
|
310
|
+
CHANNEL="\${{ needs.prepare.outputs.channel }}"
|
|
311
|
+
PROJECT="\${{ needs.prepare.outputs.project_name }}"
|
|
312
|
+
TARGET="\${{ matrix.target }}"
|
|
313
|
+
|
|
314
|
+
# GHCR tags
|
|
315
|
+
GHCR_BASE="\${{ env.GHCR_REGISTRY }}/\${{ github.repository_owner }}/\${PROJECT}/\${TARGET}"
|
|
316
|
+
|
|
317
|
+
# Docker registry tags
|
|
318
|
+
DOCKER_BASE="\${{ env.DOCKER_REGISTRY }}/\${PROJECT}/\${TARGET}"
|
|
319
|
+
|
|
320
|
+
# Build tag list
|
|
321
|
+
TAGS="\${GHCR_BASE}:v\${VERSION}"
|
|
322
|
+
TAGS="\${TAGS},\${DOCKER_BASE}:v\${VERSION}"
|
|
323
|
+
|
|
324
|
+
# Add channel tag
|
|
325
|
+
if [ "\$CHANNEL" = "latest" ] || [ "\$CHANNEL" = "main" ]; then
|
|
326
|
+
TAGS="\${TAGS},\${GHCR_BASE}:latest"
|
|
327
|
+
TAGS="\${TAGS},\${DOCKER_BASE}:latest"
|
|
328
|
+
else
|
|
329
|
+
TAGS="\${TAGS},\${GHCR_BASE}:\${CHANNEL}"
|
|
330
|
+
TAGS="\${TAGS},\${DOCKER_BASE}:\${CHANNEL}"
|
|
331
|
+
fi
|
|
332
|
+
|
|
333
|
+
echo "tags=\$TAGS" >> \$GITHUB_OUTPUT
|
|
334
|
+
echo "Image tags: \$TAGS"
|
|
335
|
+
|
|
336
|
+
- name: Build and push \${{ matrix.target }}
|
|
337
|
+
uses: docker/build-push-action@v5
|
|
338
|
+
with:
|
|
339
|
+
context: .
|
|
340
|
+
file: ./Dockerfile
|
|
341
|
+
target: \${{ matrix.target }}
|
|
342
|
+
push: true
|
|
343
|
+
tags: \${{ steps.tags.outputs.tags }}
|
|
344
|
+
build-args: |
|
|
345
|
+
TAG=\${{ needs.prepare.outputs.channel == 'latest' && 'latest' || needs.prepare.outputs.version }}
|
|
346
|
+
PACKAGE_NAME=\${{ steps.package.outputs.name }}
|
|
347
|
+
PH_CONNECT_BASE_PATH=/
|
|
348
|
+
cache-from: type=gha
|
|
349
|
+
cache-to: type=gha,mode=max
|
|
350
|
+
|
|
351
|
+
# ==========================================================================
|
|
352
|
+
# Summary
|
|
353
|
+
# ==========================================================================
|
|
354
|
+
summary:
|
|
355
|
+
name: Release Summary
|
|
356
|
+
needs: [prepare, update-and-publish, build-docker]
|
|
357
|
+
if: always()
|
|
358
|
+
runs-on: ubuntu-latest
|
|
359
|
+
steps:
|
|
360
|
+
- name: Summary
|
|
361
|
+
run: |
|
|
362
|
+
echo "## Release Summary" >> \$GITHUB_STEP_SUMMARY
|
|
363
|
+
echo "" >> \$GITHUB_STEP_SUMMARY
|
|
364
|
+
echo "| Parameter | Value |" >> \$GITHUB_STEP_SUMMARY
|
|
365
|
+
echo "|-----------|-------|" >> \$GITHUB_STEP_SUMMARY
|
|
366
|
+
echo "| Channel | \${{ needs.prepare.outputs.channel }} |" >> \$GITHUB_STEP_SUMMARY
|
|
367
|
+
echo "| Branch | \${{ needs.prepare.outputs.branch }} |" >> \$GITHUB_STEP_SUMMARY
|
|
368
|
+
echo "| Powerhouse Version | \${{ needs.prepare.outputs.version }} |" >> \$GITHUB_STEP_SUMMARY
|
|
369
|
+
echo "| Package Version | \${{ needs.update-and-publish.outputs.new_version }} |" >> \$GITHUB_STEP_SUMMARY
|
|
370
|
+
echo "| Dry Run | \${{ needs.prepare.outputs.dry_run }} |" >> \$GITHUB_STEP_SUMMARY
|
|
371
|
+
echo "" >> \$GITHUB_STEP_SUMMARY
|
|
372
|
+
echo "### Docker Images" >> \$GITHUB_STEP_SUMMARY
|
|
373
|
+
echo "- \\\`\${{ env.DOCKER_REGISTRY }}/\${{ needs.prepare.outputs.project_name }}/connect:v\${{ needs.update-and-publish.outputs.new_version }}\\\`" >> \$GITHUB_STEP_SUMMARY
|
|
374
|
+
echo "- \\\`\${{ env.DOCKER_REGISTRY }}/\${{ needs.prepare.outputs.project_name }}/switchboard:v\${{ needs.update-and-publish.outputs.new_version }}\\\`" >> \$GITHUB_STEP_SUMMARY
|
|
375
|
+
`.raw;
|
|
376
|
+
//# sourceMappingURL=sync-and-publish.yml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-and-publish.yml.js","sourceRoot":"","sources":["../../../../../src/templates/boilerplate/github/sync-and-publish.yml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqXjD,CAAC,GAAG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.d.ts","sourceRoot":"","sources":["../../../../src/templates/boilerplate/package.json.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package.json.d.ts","sourceRoot":"","sources":["../../../../src/templates/boilerplate/package.json.ts"],"names":[],"mappings":"AA2FA,eAAO,MAAM,mBAAmB,GAC9B,aAAa,MAAM,EACnB,uBAAuB,MAAM,EAAE,EAC/B,0BAA0B,MAAM,EAAE,WA4B/B,CAAC"}
|
|
@@ -62,7 +62,6 @@ const devDependenciesTemplate = (versionedDevDependencies) => json `
|
|
|
62
62
|
"@electric-sql/pglite": "^0.2.12",
|
|
63
63
|
"@eslint/js": "^9.38.0",
|
|
64
64
|
"@powerhousedao/analytics-engine-core": "^0.5.0",
|
|
65
|
-
"@powerhousedao/scalars": "^2.0.1",
|
|
66
65
|
"@tailwindcss/cli": "^4.1.4",
|
|
67
66
|
"@testing-library/react": "^16.3.0",
|
|
68
67
|
"@types/node": "^24.9.2",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.js","sourceRoot":"","sources":["../../../../src/templates/boilerplate/package.json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,eAAe,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B3B,CAAC;AAEF,MAAM,eAAe,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;;;CAkB3B,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,qBAA+B,EAAE,EAAE,CAAC,IAAI,CAAA;IAClE,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;CAKpC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,wBAAkC,EAAE,EAAE,CAAC,IAAI,CAAA;IACxE,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"package.json.js","sourceRoot":"","sources":["../../../../src/templates/boilerplate/package.json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,eAAe,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B3B,CAAC;AAEF,MAAM,eAAe,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;;;CAkB3B,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,qBAA+B,EAAE,EAAE,CAAC,IAAI,CAAA;IAClE,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;CAKpC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,wBAAkC,EAAE,EAAE,CAAC,IAAI,CAAA;IACxE,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBvC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAmB,EACnB,qBAA+B,EAC/B,wBAAkC,EAClC,EAAE,CACF,IAAI,CAAA;;aAEO,WAAW;;;;;;;;MAQlB,eAAe;;;MAGf,eAAe;;;MAGf,oBAAoB,CAAC,qBAAqB,CAAC;;;MAG3C,uBAAuB,CAAC,wBAAwB,CAAC;;;;;;;CAOtD,CAAC,GAAG,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CommandHelpInfo } from "@powerhousedao/codegen";
|
|
2
|
+
export declare const docsFromCliHelpTemplate: (v: {
|
|
3
|
+
cliDescription: string;
|
|
4
|
+
commandsHelpInfo: CommandHelpInfo[];
|
|
5
|
+
docsTitle: string;
|
|
6
|
+
docsIntroduction: string;
|
|
7
|
+
}) => string;
|
|
8
|
+
//# sourceMappingURL=docs-from-cli-help.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-from-cli-help.d.ts","sourceRoot":"","sources":["../../../../src/templates/cli-docs/docs-from-cli-help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAa,MAAM,wBAAwB,CAAC;AAyGzE,eAAO,MAAM,uBAAuB,GAAI,GAAG;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,WAOA,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { capitalCase, paramCase } from "change-case";
|
|
2
|
+
function groupHelpTopicsByCategory(helpTopics) {
|
|
3
|
+
const helpTopicsByCategory = {};
|
|
4
|
+
for (const helpTopic of helpTopics) {
|
|
5
|
+
if (!helpTopicsByCategory[helpTopic.category]) {
|
|
6
|
+
helpTopicsByCategory[helpTopic.category] = [helpTopic];
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
helpTopicsByCategory[helpTopic.category]?.push(helpTopic);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return helpTopicsByCategory;
|
|
13
|
+
}
|
|
14
|
+
function makeTableOfContents(commandsHelpInfo) {
|
|
15
|
+
const commandNames = commandsHelpInfo.map(({ name }) => name);
|
|
16
|
+
const tableOfContentsEntries = [];
|
|
17
|
+
for (const name of commandNames) {
|
|
18
|
+
tableOfContentsEntries.push(`- [${capitalCase(name)}](#${paramCase(name)})\n`);
|
|
19
|
+
}
|
|
20
|
+
return tableOfContentsEntries.join("");
|
|
21
|
+
}
|
|
22
|
+
function makeDefaultsDescriptors(defaults) {
|
|
23
|
+
const withoutOptional = defaults.filter((d) => d !== "optional" && d !== "[...optional]");
|
|
24
|
+
const formatted = withoutOptional.map((d) => {
|
|
25
|
+
const [label, ...rest] = d.split(":").map((s) => s.trim());
|
|
26
|
+
return `**${label}**: \`${rest.join("")}\``;
|
|
27
|
+
});
|
|
28
|
+
return formatted;
|
|
29
|
+
}
|
|
30
|
+
function makeRequiredDescriptor(defaults) {
|
|
31
|
+
if (defaults.includes("optional") ||
|
|
32
|
+
defaults.includes("[...optional]") ||
|
|
33
|
+
defaults.some((d) => d.includes("default")))
|
|
34
|
+
return "";
|
|
35
|
+
return "*[required]*";
|
|
36
|
+
}
|
|
37
|
+
function makeHeadingFromUsage(usage) {
|
|
38
|
+
if (usage.includes("--")) {
|
|
39
|
+
const usageAsWords = capitalCase(usage.split(" ")[0].replace("--", ""));
|
|
40
|
+
return `#### ${usageAsWords}`;
|
|
41
|
+
}
|
|
42
|
+
const usageWithoutBrackets = capitalCase(usage.replace("[", "").replace("]", ""));
|
|
43
|
+
return `#### ${usageWithoutBrackets}`;
|
|
44
|
+
}
|
|
45
|
+
function makeCommandHelpTopicDocs(helpTopic) {
|
|
46
|
+
const { defaults, description, usage } = helpTopic;
|
|
47
|
+
const heading = makeHeadingFromUsage(usage);
|
|
48
|
+
const requiredDescriptor = makeRequiredDescriptor(defaults);
|
|
49
|
+
const defaultsDescriptors = makeDefaultsDescriptors(defaults);
|
|
50
|
+
return `${heading} ${requiredDescriptor}<br>
|
|
51
|
+
${description}<br><br>
|
|
52
|
+
**usage:** \`${usage}\`<br>
|
|
53
|
+
${defaultsDescriptors.join("<br>")}
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
function makeCommandHelpTopicsDocs(helpTopics) {
|
|
57
|
+
return helpTopics.map(makeCommandHelpTopicDocs).join("");
|
|
58
|
+
}
|
|
59
|
+
function makeCommandHelpTopicsDocsForCategories(helpTopics) {
|
|
60
|
+
const helpTopicsByCategory = groupHelpTopicsByCategory(helpTopics);
|
|
61
|
+
const helpTopicsDocs = [];
|
|
62
|
+
for (const [category, helpTopics] of Object.entries(helpTopicsByCategory)) {
|
|
63
|
+
const helpTopicDocs = makeCommandHelpTopicsDocs(helpTopics ?? []);
|
|
64
|
+
helpTopicsDocs.push(`### ${category}
|
|
65
|
+
${helpTopicDocs}
|
|
66
|
+
`);
|
|
67
|
+
}
|
|
68
|
+
return helpTopicsDocs.join("");
|
|
69
|
+
}
|
|
70
|
+
function makeCommandDoc(commandHelpInfo) {
|
|
71
|
+
const { name, description, helpTopics } = commandHelpInfo;
|
|
72
|
+
return `## ${capitalCase(name)}
|
|
73
|
+
${description}
|
|
74
|
+
${makeCommandHelpTopicsDocsForCategories(helpTopics)}`;
|
|
75
|
+
}
|
|
76
|
+
function makeCommandDocs(commandsHelpInfo) {
|
|
77
|
+
return commandsHelpInfo.map(makeCommandDoc).join("");
|
|
78
|
+
}
|
|
79
|
+
export const docsFromCliHelpTemplate = (v) => `# ${v.docsTitle}<br>
|
|
80
|
+
${v.docsIntroduction}<br><br>
|
|
81
|
+
${v.cliDescription}<br>
|
|
82
|
+
## Table of Contents
|
|
83
|
+
${makeTableOfContents(v.commandsHelpInfo)}<br>
|
|
84
|
+
${makeCommandDocs(v.commandsHelpInfo)}
|
|
85
|
+
`;
|
|
86
|
+
//# sourceMappingURL=docs-from-cli-help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-from-cli-help.js","sourceRoot":"","sources":["../../../../src/templates/cli-docs/docs-from-cli-help.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../../src/templates/document-editor/editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,eAAO,MAAM,gCAAgC,GAC3C,GAAG,mBAAmB,GAAG;IACvB,uBAAuB,EAAE,MAAM,CAAC;CACjC,
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../../src/templates/document-editor/editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,eAAO,MAAM,gCAAgC,GAC3C,GAAG,mBAAmB,GAAG;IACvB,uBAAuB,EAAE,MAAM,CAAC;CACjC,WAoFE,CAAC"}
|