polyforge-cli 0.1.0
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/LICENSE +21 -0
- package/README.md +65 -0
- package/dist/commands/create.js +46 -0
- package/dist/commands/doctor.js +136 -0
- package/dist/commands/list.js +32 -0
- package/dist/core/git.js +25 -0
- package/dist/core/installer.js +64 -0
- package/dist/core/prompts.js +147 -0
- package/dist/core/renderer.js +175 -0
- package/dist/core/validator.js +86 -0
- package/dist/index.js +47 -0
- package/dist/templates/backend/go-gin/apps/api/Makefile +10 -0
- package/dist/templates/backend/go-gin/apps/api/cmd/server/main.go +29 -0
- package/dist/templates/backend/go-gin/apps/api/go.mod +5 -0
- package/dist/templates/backend/go-gin/apps/api/internal/config/config.go +22 -0
- package/dist/templates/backend/go-gin/apps/api/internal/handler/health.go +27 -0
- package/dist/templates/backend/go-gin/apps/api/internal/handler/helpers.go +8 -0
- package/dist/templates/backend/go-gin/apps/api/internal/handler/ping.go +15 -0
- package/dist/templates/backend/go-gin/apps/api/internal/middleware/logger.go +18 -0
- package/dist/templates/backend/go-gin/apps/api/internal/middleware/recovery.go +23 -0
- package/dist/templates/backend/go-gin/apps/api/internal/middleware/trace.go +28 -0
- package/dist/templates/backend/go-gin/apps/api/internal/repository/ping.go +11 -0
- package/dist/templates/backend/go-gin/apps/api/internal/service/ping.go +17 -0
- package/dist/templates/backend/go-gin/apps/api/pkg/response/response.go +35 -0
- package/dist/templates/backend/go-gin/apps/api/pkg/response/response_test.go +21 -0
- package/dist/templates/backend/springboot/apps/api/pom.xml +44 -0
- package/dist/templates/backend/springboot/apps/api/src/main/java/com/scaffold/api/Application.java +11 -0
- package/dist/templates/backend/springboot/apps/api/src/main/java/com/scaffold/api/common/ApiResponse.java +19 -0
- package/dist/templates/backend/springboot/apps/api/src/main/java/com/scaffold/api/common/GlobalExceptionHandler.java +22 -0
- package/dist/templates/backend/springboot/apps/api/src/main/java/com/scaffold/api/common/TraceIdHolder.java +19 -0
- package/dist/templates/backend/springboot/apps/api/src/main/java/com/scaffold/api/config/TraceIdFilter.java +38 -0
- package/dist/templates/backend/springboot/apps/api/src/main/java/com/scaffold/api/controller/HealthController.java +17 -0
- package/dist/templates/backend/springboot/apps/api/src/main/java/com/scaffold/api/controller/PingController.java +23 -0
- package/dist/templates/backend/springboot/apps/api/src/main/java/com/scaffold/api/repository/PingRepository.java +10 -0
- package/dist/templates/backend/springboot/apps/api/src/main/java/com/scaffold/api/service/PingService.java +17 -0
- package/dist/templates/backend/springboot/apps/api/src/main/resources/application-dev.yml +2 -0
- package/dist/templates/backend/springboot/apps/api/src/main/resources/application-prod.yml +2 -0
- package/dist/templates/backend/springboot/apps/api/src/main/resources/application-test.yml +2 -0
- package/dist/templates/backend/springboot/apps/api/src/main/resources/application.yml +8 -0
- package/dist/templates/backend/springboot/apps/api/src/test/java/com/scaffold/api/ApplicationTests.java +12 -0
- package/dist/templates/base/.env.example +5 -0
- package/dist/templates/base/docs/ARCHITECTURE.md +9 -0
- package/dist/templates/base/infra/scripts/build.sh +39 -0
- package/dist/templates/base/infra/scripts/check.sh +58 -0
- package/dist/templates/base/infra/scripts/dev.sh +32 -0
- package/dist/templates/base/infra/scripts/test.sh +41 -0
- package/dist/templates/base/package.json +11 -0
- package/dist/templates/data/mongodb/infra/data/mongodb/README.md +4 -0
- package/dist/templates/data/mysql/infra/data/mysql/README.md +4 -0
- package/dist/templates/data/mysql/infra/data/mysql/schema.sql +5 -0
- package/dist/templates/data/postgresql/infra/data/postgresql/README.md +4 -0
- package/dist/templates/data/postgresql/infra/data/postgresql/schema.sql +5 -0
- package/dist/templates/data/redis/infra/data/redis/README.md +4 -0
- package/dist/templates/data/sqlite/infra/data/sqlite/README.md +4 -0
- package/dist/templates/frontend/react/apps/web/.env.example +4 -0
- package/dist/templates/frontend/react/apps/web/index.html +12 -0
- package/dist/templates/frontend/react/apps/web/package.json +23 -0
- package/dist/templates/frontend/react/apps/web/src/App.test.tsx +7 -0
- package/dist/templates/frontend/react/apps/web/src/App.tsx +59 -0
- package/dist/templates/frontend/react/apps/web/src/api/client.ts +20 -0
- package/dist/templates/frontend/react/apps/web/src/api/request.ts +104 -0
- package/dist/templates/frontend/react/apps/web/src/api/services/api.ts +15 -0
- package/dist/templates/frontend/react/apps/web/src/api/services/bff.ts +11 -0
- package/dist/templates/frontend/react/apps/web/src/main.tsx +9 -0
- package/dist/templates/frontend/react/apps/web/tsconfig.json +12 -0
- package/dist/templates/frontend/react/apps/web/vite.config.ts +22 -0
- package/dist/templates/frontend/vue/apps/web/.env.example +4 -0
- package/dist/templates/frontend/vue/apps/web/index.html +12 -0
- package/dist/templates/frontend/vue/apps/web/package.json +20 -0
- package/dist/templates/frontend/vue/apps/web/src/App.test.ts +7 -0
- package/dist/templates/frontend/vue/apps/web/src/App.vue +59 -0
- package/dist/templates/frontend/vue/apps/web/src/api/client.ts +20 -0
- package/dist/templates/frontend/vue/apps/web/src/api/request.ts +104 -0
- package/dist/templates/frontend/vue/apps/web/src/api/services/api.ts +15 -0
- package/dist/templates/frontend/vue/apps/web/src/api/services/bff.ts +11 -0
- package/dist/templates/frontend/vue/apps/web/src/env.d.ts +3 -0
- package/dist/templates/frontend/vue/apps/web/src/main.ts +4 -0
- package/dist/templates/frontend/vue/apps/web/tsconfig.json +11 -0
- package/dist/templates/frontend/vue/apps/web/vite.config.ts +22 -0
- package/dist/templates/modules/auth-center/apps/auth-center/.env.example +3 -0
- package/dist/templates/modules/auth-center/apps/auth-center/README.md +5 -0
- package/dist/templates/modules/auth-center/apps/auth-center/package.json +14 -0
- package/dist/templates/modules/auth-center/apps/auth-center/server.js +21 -0
- package/dist/templates/modules/cache-redis/infra/cache/README.md +5 -0
- package/dist/templates/modules/cache-redis/infra/cache/policies.md +5 -0
- package/dist/templates/modules/gateway-bff/apps/gateway-bff/README.md +5 -0
- package/dist/templates/modules/gateway-bff/apps/gateway-bff/package.json +13 -0
- package/dist/templates/modules/gateway-bff/apps/gateway-bff/server.js +17 -0
- package/dist/templates/modules/grpc-service/apps/grpc-service/README.md +5 -0
- package/dist/templates/modules/grpc-service/contracts/proto/greeter.proto +17 -0
- package/dist/templates/modules/grpc-service/infra/scripts/gen-proto.sh +9 -0
- package/dist/templates/modules/mq/infra/mq/README.md +5 -0
- package/dist/templates/modules/mq/infra/mq/kafka-topics.md +5 -0
- package/dist/templates/modules/mq/infra/mq/nats-subjects.md +4 -0
- package/dist/templates/modules/mq/infra/mq/rabbitmq-exchanges.md +5 -0
- package/dist/templates/modules/observability/infra/observability/README.md +5 -0
- package/dist/templates/modules/observability/infra/observability/grafana/README.md +3 -0
- package/dist/templates/modules/observability/infra/observability/otel-collector.yaml +15 -0
- package/dist/templates/modules/observability/infra/observability/prometheus/prometheus.yml +7 -0
- package/dist/templates/modules/python-ai/apps/python-ai/README.md +5 -0
- package/dist/templates/modules/python-ai/apps/python-ai/app/main.py +27 -0
- package/dist/templates/modules/python-ai/apps/python-ai/requirements.txt +2 -0
- package/dist/templates/modules/python-ai/apps/python-ai/scripts/batch_infer.py +6 -0
- package/dist/templates/modules/python-worker/apps/worker-python/README.md +5 -0
- package/dist/templates/modules/python-worker/apps/worker-python/requirements.txt +1 -0
- package/dist/templates/modules/python-worker/apps/worker-python/tasks/sample_task.py +6 -0
- package/dist/templates/modules/python-worker/apps/worker-python/tests/test_worker.py +13 -0
- package/dist/templates/modules/python-worker/apps/worker-python/worker.py +10 -0
- package/dist/templates/modules/worker-go/apps/worker-go/README.md +5 -0
- package/dist/templates/modules/worker-go/apps/worker-go/cmd/worker/main.go +16 -0
- package/dist/templates/modules/worker-go/apps/worker-go/go.mod +3 -0
- package/dist/templates/modules/worker-go/apps/worker-go/internal/tasks/heartbeat.go +7 -0
- package/dist/types/config.js +18 -0
- package/package.json +52 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from fastapi import FastAPI, Header
|
|
2
|
+
from typing import Optional
|
|
3
|
+
from datetime import datetime, timezone
|
|
4
|
+
|
|
5
|
+
app = FastAPI()
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@app.get("/health")
|
|
9
|
+
def health(trace_id: Optional[str] = Header(default=None, alias="X-Trace-Id")):
|
|
10
|
+
return {
|
|
11
|
+
"code": 0,
|
|
12
|
+
"message": "success",
|
|
13
|
+
"data": {"status": "ok", "model": "placeholder"},
|
|
14
|
+
"traceId": trace_id or "python-ai-trace",
|
|
15
|
+
"timestamp": datetime.now(timezone.utc).isoformat(),
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@app.post("/infer")
|
|
20
|
+
def infer(payload: dict, trace_id: Optional[str] = Header(default=None, alias="X-Trace-Id")):
|
|
21
|
+
return {
|
|
22
|
+
"code": 0,
|
|
23
|
+
"message": "success",
|
|
24
|
+
"data": {"result": "placeholder", "input": payload},
|
|
25
|
+
"traceId": trace_id or "python-ai-trace",
|
|
26
|
+
"timestamp": datetime.now(timezone.utc).isoformat(),
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
requests==2.32.3
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
|
|
3
|
+
from tasks.sample_task import run_sample_task
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class WorkerTestCase(unittest.TestCase):
|
|
7
|
+
def test_sample_task(self) -> None:
|
|
8
|
+
output = run_sample_task({"x": 1})
|
|
9
|
+
self.assertEqual(output["status"], "ok")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
if __name__ == "__main__":
|
|
13
|
+
unittest.main()
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PACKAGE_MANAGERS = exports.DATA_MODULES = exports.EXTRA_MODULES = exports.BACKENDS = exports.FRONTENDS = void 0;
|
|
4
|
+
exports.FRONTENDS = ["react", "vue", "none"];
|
|
5
|
+
exports.BACKENDS = ["go-gin", "springboot"];
|
|
6
|
+
exports.EXTRA_MODULES = [
|
|
7
|
+
"python-worker",
|
|
8
|
+
"worker-go",
|
|
9
|
+
"gateway-bff",
|
|
10
|
+
"python-ai",
|
|
11
|
+
"grpc-service",
|
|
12
|
+
"mq",
|
|
13
|
+
"cache-redis",
|
|
14
|
+
"observability",
|
|
15
|
+
"auth-center",
|
|
16
|
+
];
|
|
17
|
+
exports.DATA_MODULES = ["mysql", "postgresql", "redis", "sqlite", "mongodb", "none"];
|
|
18
|
+
exports.PACKAGE_MANAGERS = ["pnpm", "npm", "yarn"];
|
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "polyforge-cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "PolyForge hybrid full-stack scaffold CLI for go-gin and springboot",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist",
|
|
8
|
+
"README.md",
|
|
9
|
+
"LICENSE"
|
|
10
|
+
],
|
|
11
|
+
"bin": {
|
|
12
|
+
"scaffold": "dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"clean": "rm -rf dist",
|
|
19
|
+
"build": "tsc -p tsconfig.json && rm -rf dist/templates && cp -R src/templates dist/templates",
|
|
20
|
+
"dev": "tsx src/index.ts",
|
|
21
|
+
"test": "vitest run --config vitest.config.ts",
|
|
22
|
+
"test:watch": "vitest",
|
|
23
|
+
"lint": "tsc -p tsconfig.json --noEmit",
|
|
24
|
+
"smoke:e2e": "node scripts/smoke-e2e.mjs",
|
|
25
|
+
"prepack": "npm run build",
|
|
26
|
+
"prepublishOnly": "npm run lint && npm run test && npm run build"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"scaffold",
|
|
30
|
+
"cli",
|
|
31
|
+
"go",
|
|
32
|
+
"springboot"
|
|
33
|
+
],
|
|
34
|
+
"author": "",
|
|
35
|
+
"license": "MIT",
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=18"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"commander": "^14.0.1",
|
|
41
|
+
"fs-extra": "^11.3.2",
|
|
42
|
+
"prompts": "^2.4.2"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/fs-extra": "^11.0.4",
|
|
46
|
+
"@types/node": "^24.3.0",
|
|
47
|
+
"@types/prompts": "^2.4.9",
|
|
48
|
+
"tsx": "^4.20.5",
|
|
49
|
+
"typescript": "^5.9.2",
|
|
50
|
+
"vitest": "^3.2.4"
|
|
51
|
+
}
|
|
52
|
+
}
|