skeleton-framework 0.1.3__tar.gz → 1.0.0__tar.gz
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.
- skeleton_framework-1.0.0/PKG-INFO +497 -0
- skeleton_framework-1.0.0/README.md +471 -0
- skeleton_framework-1.0.0/pyproject.toml +60 -0
- skeleton_framework-1.0.0/skeleton/__init__.py +3 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/app/.gitignore +31 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/app/LICENSE.md +5 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/app/README.md +108 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/app/TODO.md +5 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/app/backend/pyproject.toml +27 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/app/backend/routes.json +22 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/app/backend/src/main.py +54 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/app/frontend/package.json +39 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/app/frontend/src/assets.d.ts +69 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates → skeleton_framework-1.0.0/skeleton/boilerplate}/app/frontend/src/index.html +1 -1
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates → skeleton_framework-1.0.0/skeleton/boilerplate}/app/frontend/src/static/css/styles.css +0 -8
- skeleton_framework-1.0.0/skeleton/boilerplate/config/skeleton-fastapi.json +12 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/config/skeleton-metadata.json +10 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/config/skeleton-portal.json +28 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/config/skeleton-project.json +70 -0
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/settings/proxy.json → skeleton_framework-1.0.0/skeleton/boilerplate/config/skeleton-proxy.json +10 -1
- skeleton_framework-1.0.0/skeleton/boilerplate/config/skeleton-runtime.json +11 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/config/skeleton-schemas.json +18 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/config/skeleton-servers.json +14 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/react/config/skeleton-dependencies.json +20 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/react → skeleton_framework-1.0.0/skeleton/boilerplate/profiles/react/frontend/src}/main.tsx +2 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/react → skeleton_framework-1.0.0/skeleton/boilerplate/profiles/react/frontend}/tsconfig.json +5 -3
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/react/frontend/webpack.config.js +218 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/solid/config/skeleton-dependencies.json +21 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/solid → skeleton_framework-1.0.0/skeleton/boilerplate/profiles/solid/frontend/src}/main.tsx +3 -4
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/solid → skeleton_framework-1.0.0/skeleton/boilerplate/profiles/solid/frontend}/tsconfig.json +5 -3
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/solid/frontend/webpack.config.js +229 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/svelte/config/skeleton-dependencies.json +20 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/svelte/frontend/src/App.svelte +22 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/vue → skeleton_framework-1.0.0/skeleton/boilerplate/profiles/svelte/frontend/src}/main.ts +9 -10
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/svelte/frontend/src/svelte.d.ts +8 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/vue → skeleton_framework-1.0.0/skeleton/boilerplate/profiles/svelte/frontend}/tsconfig.json +3 -5
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/svelte/frontend/webpack.config.js +267 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/vanilla/config/skeleton-dependencies.json +14 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/vanilla/frontend/src/main.ts +17 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/vanilla/frontend/tsconfig.json +89 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/vanilla/frontend/webpack.config.js +220 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/vue/config/skeleton-dependencies.json +21 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/vue/frontend/src/App.vue +3 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/vue/frontend/src/main.ts +19 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/vue/frontend/src/vue.d.ts +11 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/vue/frontend/tsconfig.json +89 -0
- skeleton_framework-1.0.0/skeleton/boilerplate/profiles/vue/frontend/webpack.config.js +240 -0
- skeleton_framework-1.0.0/skeleton/cli/__init__.py +32 -0
- skeleton_framework-1.0.0/skeleton/cli/bump.py +240 -0
- skeleton_framework-1.0.0/skeleton/cli/config.py +279 -0
- skeleton_framework-1.0.0/skeleton/cli/demo.py +176 -0
- skeleton_framework-1.0.0/skeleton/cli/dist.py +157 -0
- skeleton_framework-1.0.0/skeleton/cli/help.py +67 -0
- skeleton_framework-1.0.0/skeleton/cli/init.py +400 -0
- skeleton_framework-1.0.0/skeleton/cli/install.py +124 -0
- skeleton_framework-1.0.0/skeleton/cli/preview.py +55 -0
- skeleton_framework-1.0.0/skeleton/cli/purge.py +116 -0
- skeleton_framework-1.0.0/skeleton/cli/quickstart.py +57 -0
- skeleton_framework-1.0.0/skeleton/cli/readme.py +50 -0
- skeleton_framework-1.0.0/skeleton/cli/start.py +95 -0
- skeleton_framework-1.0.0/skeleton/cli/tree.py +285 -0
- skeleton_framework-1.0.0/skeleton/cli/vscode.py +133 -0
- skeleton_framework-1.0.0/skeleton/cmd/command.py +100 -0
- skeleton_framework-1.0.0/skeleton/cmd/confirm.py +16 -0
- skeleton_framework-1.0.0/skeleton/cmd/parser.py +100 -0
- skeleton_framework-1.0.0/skeleton/cmd/prompt.py +26 -0
- skeleton_framework-1.0.0/skeleton/cmd/registry.py +75 -0
- skeleton_framework-1.0.0/skeleton/cmd/types.py +27 -0
- skeleton_framework-1.0.0/skeleton/context/auth.py +37 -0
- skeleton_framework-1.0.0/skeleton/context/context.py +32 -0
- skeleton_framework-1.0.0/skeleton/context/mode.py +5 -0
- skeleton_framework-1.0.0/skeleton/context/predicates.py +20 -0
- skeleton_framework-1.0.0/skeleton/context/roles.py +5 -0
- skeleton_framework-1.0.0/skeleton/decorators/roles.py +26 -0
- skeleton_framework-1.0.0/skeleton/docs/documentation.py +78 -0
- skeleton_framework-1.0.0/skeleton/engine/info.py +34 -0
- skeleton_framework-1.0.0/skeleton/engine/launch.py +58 -0
- skeleton_framework-1.0.0/skeleton/engine/portal.py +52 -0
- skeleton_framework-1.0.0/skeleton/engine/readiness.py +100 -0
- skeleton_framework-1.0.0/skeleton/engine/run.py +41 -0
- skeleton_framework-1.0.0/skeleton/engine/start.py +125 -0
- skeleton_framework-1.0.0/skeleton/engine/stop.py +94 -0
- skeleton_framework-1.0.0/skeleton/engine/watch.py +86 -0
- skeleton_framework-1.0.0/skeleton/environment/dependencies.py +53 -0
- skeleton_framework-1.0.0/skeleton/environment/notice.py +53 -0
- skeleton_framework-1.0.0/skeleton/environment/resolver.py +35 -0
- skeleton_framework-1.0.0/skeleton/environment/runner.py +61 -0
- skeleton_framework-1.0.0/skeleton/environment/upgrade.py +26 -0
- skeleton_framework-1.0.0/skeleton/environment/venv.py +14 -0
- skeleton_framework-1.0.0/skeleton/layout/app.py +48 -0
- skeleton_framework-1.0.0/skeleton/layout/backend.py +108 -0
- skeleton_framework-1.0.0/skeleton/layout/boilerplate.py +81 -0
- skeleton_framework-1.0.0/skeleton/layout/client.py +155 -0
- skeleton_framework-1.0.0/skeleton/layout/config.py +42 -0
- skeleton_framework-1.0.0/skeleton/layout/engine.py +61 -0
- skeleton_framework-1.0.0/skeleton/layout/framework.py +112 -0
- skeleton_framework-1.0.0/skeleton/layout/frontend.py +105 -0
- skeleton_framework-1.0.0/skeleton/layout/profile.py +52 -0
- skeleton_framework-1.0.0/skeleton/layout/python.py +34 -0
- skeleton_framework-1.0.0/skeleton/layout/server.py +69 -0
- skeleton_framework-1.0.0/skeleton/main.py +67 -0
- skeleton_framework-1.0.0/skeleton/parsers/bump.py +67 -0
- skeleton_framework-1.0.0/skeleton/parsers/help.py +13 -0
- skeleton_framework-1.0.0/skeleton/register.py +481 -0
- skeleton_framework-1.0.0/skeleton/repository/config.py +134 -0
- skeleton_framework-1.0.0/skeleton/repository/gitignore.py +46 -0
- skeleton_framework-1.0.0/skeleton/runtime/config.py +60 -0
- skeleton_framework-1.0.0/skeleton/runtime/mode.py +8 -0
- skeleton_framework-1.0.0/skeleton/runtime/portal.py +60 -0
- skeleton_framework-1.0.0/skeleton/runtime/proxy.py +53 -0
- skeleton_framework-1.0.0/skeleton/runtime/reload.py +9 -0
- skeleton_framework-1.0.0/skeleton/runtime/schemas.py +48 -0
- skeleton_framework-1.0.0/skeleton/runtime/server.py +16 -0
- skeleton_framework-1.0.0/skeleton/server/app.py +185 -0
- skeleton_framework-1.0.0/skeleton/server/client.py +101 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src → skeleton_framework-1.0.0/skeleton/server}/headers.py +1 -1
- skeleton_framework-1.0.0/skeleton/server/lifespan.py +19 -0
- skeleton_framework-1.0.0/skeleton/server/main.py +75 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src → skeleton_framework-1.0.0/skeleton/server}/reverseproxy.py +19 -17
- skeleton_framework-1.0.0/skeleton/server/router.py +68 -0
- skeleton_framework-1.0.0/skeleton/server/websocket.py +1 -0
- skeleton_framework-1.0.0/skeleton/template/__init__.py +0 -0
- skeleton_framework-1.0.0/skeleton/template/asset.py +27 -0
- skeleton_framework-1.0.0/skeleton/template/generate.py +165 -0
- skeleton_framework-1.0.0/skeleton/template/merge.py +89 -0
- skeleton_framework-1.0.0/skeleton/template/normalize.py +13 -0
- skeleton_framework-1.0.0/skeleton/template/plan.py +26 -0
- skeleton_framework-1.0.0/skeleton/template/render.py +21 -0
- skeleton_framework-1.0.0/skeleton/utils/__init__.py +0 -0
- skeleton_framework-1.0.0/skeleton/utils/display.py +33 -0
- skeleton_framework-1.0.0/skeleton/validation/__init__.py +0 -0
- skeleton_framework-1.0.0/skeleton/validation/catalog.py +17 -0
- skeleton_framework-1.0.0/skeleton/validation/licenses.py +57 -0
- skeleton_framework-1.0.0/skeleton/validation/metadata.py +68 -0
- skeleton_framework-1.0.0/skeleton/validation/rules/__init__.py +0 -0
- skeleton_framework-1.0.0/skeleton/validation/rules/choice.py +18 -0
- skeleton_framework-1.0.0/skeleton/validation/rules/date.py +18 -0
- skeleton_framework-1.0.0/skeleton/validation/rules/dependencies.py +119 -0
- skeleton_framework-1.0.0/skeleton/validation/rules/identifier.py +16 -0
- skeleton_framework-1.0.0/skeleton/validation/rules/license.py +13 -0
- skeleton_framework-1.0.0/skeleton/validation/rules/package.py +29 -0
- skeleton_framework-1.0.0/skeleton/validation/rules/required.py +8 -0
- skeleton_framework-1.0.0/skeleton/validation/rules/url.py +29 -0
- skeleton_framework-1.0.0/skeleton/validation/rules/version.py +17 -0
- skeleton_framework-1.0.0/skeleton/validation/validate.py +30 -0
- skeleton_framework-1.0.0/skeleton/versioning/__init__.py +0 -0
- skeleton_framework-1.0.0/skeleton/versioning/bump.py +68 -0
- skeleton_framework-1.0.0/skeleton/versioning/parse.py +18 -0
- skeleton_framework-1.0.0/skeleton/versioning/read.py +81 -0
- skeleton_framework-1.0.0/skeleton/versioning/resolve.py +47 -0
- skeleton_framework-1.0.0/skeleton/versioning/write.py +98 -0
- skeleton_framework-1.0.0/skeleton_framework.egg-info/PKG-INFO +497 -0
- skeleton_framework-1.0.0/skeleton_framework.egg-info/SOURCES.txt +172 -0
- skeleton_framework-1.0.0/skeleton_framework.egg-info/entry_points.txt +2 -0
- skeleton_framework-1.0.0/skeleton_framework.egg-info/requires.txt +13 -0
- skeleton_framework-0.1.3/PKG-INFO +0 -511
- skeleton_framework-0.1.3/README.md +0 -493
- skeleton_framework-0.1.3/pyproject.toml +0 -44
- skeleton_framework-0.1.3/skeleton/cli.py +0 -156
- skeleton_framework-0.1.3/skeleton/client.py +0 -271
- skeleton_framework-0.1.3/skeleton/infrastructure/__init__.py +0 -1
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/commands/client/init.py +0 -487
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/commands/client/install.py +0 -113
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/commands/dev/build.py +0 -80
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/commands/dev/init.py +0 -80
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/commands/dev/install.py +0 -168
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/commands/dev/pack.py +0 -55
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/config.py +0 -153
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/copy.py +0 -279
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/load.py +0 -221
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/app/backend/requirements.txt +0 -1
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/app/backend/routes.json +0 -10
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/app/backend/src/main.py +0 -35
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/app/frontend/package.json +0 -21
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/config/.gitignore +0 -21
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/config/skeleton-dependencies.json +0 -21
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/config/skeleton-layout.json +0 -11
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/config/skeleton-schemas.json +0 -20
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/config/skeleton-servers.json +0 -16
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/react/skeleton-config.json +0 -30
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/react/skeleton-dependencies.json +0 -21
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/skeleton-config.json +0 -29
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/solid/skeleton-config.json +0 -30
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/solid/skeleton-dependencies.json +0 -22
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/vue/skeleton-config.json +0 -30
- skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/profiles/vue/skeleton-dependencies.json +0 -21
- skeleton_framework-0.1.3/skeleton/infrastructure/common/__init__.py +0 -1
- skeleton_framework-0.1.3/skeleton/infrastructure/common/config.json +0 -8
- skeleton_framework-0.1.3/skeleton/infrastructure/common/src/config.py +0 -37
- skeleton_framework-0.1.3/skeleton/infrastructure/common/src/constants.py +0 -4
- skeleton_framework-0.1.3/skeleton/infrastructure/common/src/context.py +0 -15
- skeleton_framework-0.1.3/skeleton/infrastructure/common/src/env.py +0 -12
- skeleton_framework-0.1.3/skeleton/infrastructure/common/src/layout.py +0 -68
- skeleton_framework-0.1.3/skeleton/infrastructure/common/src/loader.py +0 -8
- skeleton_framework-0.1.3/skeleton/infrastructure/common/src/repository.py +0 -12
- skeleton_framework-0.1.3/skeleton/infrastructure/common/src/utils.py +0 -26
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/settings/services.json +0 -10
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/app.py +0 -98
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/client.py +0 -68
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/config.py +0 -29
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/context.py +0 -31
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/lifespan.py +0 -17
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/loader.py +0 -113
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/logging.py +0 -37
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/main.py +0 -139
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/parser.py +0 -59
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/registry.py +0 -30
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/router.py +0 -74
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/service.py +0 -123
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/utils.py +0 -48
- skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src/validation.py +0 -89
- skeleton_framework-0.1.3/skeleton/infrastructure/layout.json +0 -12
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/actions.py +0 -4
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/browser.py +0 -18
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/cmd.py +0 -7
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/command.py +0 -7
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/frontend.py +0 -35
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/gateway.py +0 -104
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/hook.py +0 -53
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/main.py +0 -78
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/packages.py +0 -35
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/parser.py +0 -84
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/process.py +0 -99
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/services.py +0 -16
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/utils.py +0 -6
- skeleton_framework-0.1.3/skeleton/infrastructure/runners/src/validation.py +0 -28
- skeleton_framework-0.1.3/skeleton/packages/.skeleton/skeleton-cli-1.0.0.tgz +0 -0
- skeleton_framework-0.1.3/skeleton/packages/.skeleton/skeleton-webpack-1.0.0.tgz +0 -0
- skeleton_framework-0.1.3/skeleton/root.py +0 -234
- skeleton_framework-0.1.3/skeleton_framework.egg-info/PKG-INFO +0 -511
- skeleton_framework-0.1.3/skeleton_framework.egg-info/SOURCES.txt +0 -106
- skeleton_framework-0.1.3/skeleton_framework.egg-info/entry_points.txt +0 -2
- skeleton_framework-0.1.3/skeleton_framework.egg-info/requires.txt +0 -4
- {skeleton_framework-0.1.3 → skeleton_framework-1.0.0}/LICENSE +0 -0
- {skeleton_framework-0.1.3 → skeleton_framework-1.0.0}/setup.cfg +0 -0
- {skeleton_framework-0.1.3/skeleton → skeleton_framework-1.0.0/skeleton/boilerplate/app/backend/src}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates → skeleton_framework-1.0.0/skeleton/boilerplate}/app/frontend/src/static/img/skeleton.png +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates → skeleton_framework-1.0.0/skeleton/boilerplate}/app/frontend/src/static/js/script.js +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap → skeleton_framework-1.0.0/skeleton/cmd}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src → skeleton_framework-1.0.0/skeleton/context}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/commands → skeleton_framework-1.0.0/skeleton/decorators}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/commands/client → skeleton_framework-1.0.0/skeleton/docs}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/commands/dev → skeleton_framework-1.0.0/skeleton/engine}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/bootstrap/src/templates/app/backend/src → skeleton_framework-1.0.0/skeleton/environment}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/common/src → skeleton_framework-1.0.0/skeleton/layout}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/gateway → skeleton_framework-1.0.0/skeleton/parsers}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src → skeleton_framework-1.0.0/skeleton/repository}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/runners → skeleton_framework-1.0.0/skeleton/runtime}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/runners/src → skeleton_framework-1.0.0/skeleton/server}/__init__.py +0 -0
- {skeleton_framework-0.1.3/skeleton/infrastructure/gateway/src → skeleton_framework-1.0.0/skeleton/server}/schemas.py +0 -0
- {skeleton_framework-0.1.3 → skeleton_framework-1.0.0}/skeleton_framework.egg-info/dependency_links.txt +0 -0
- {skeleton_framework-0.1.3 → skeleton_framework-1.0.0}/skeleton_framework.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,497 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: skeleton-framework
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: A full-stack orchestration framework: Python orchestration + FastAPI + WebPack.
|
|
5
|
+
Author-email: lambdadotjoburg <lambdadotjoburg@gmail.com>
|
|
6
|
+
License-Expression: LicenseRef-Proprietary
|
|
7
|
+
Project-URL: Homepage, https://github.com/lambdadotjoburg/skeleton
|
|
8
|
+
Project-URL: Repository, https://github.com/lambdadotjoburg/skeleton
|
|
9
|
+
Project-URL: Issues, https://github.com/lambdadotjoburg/skeleton/issues
|
|
10
|
+
Requires-Python: >=3.11
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: twine>=7.0.0
|
|
14
|
+
Requires-Dist: build>=1.6.1
|
|
15
|
+
Requires-Dist: packaging<27,>=24
|
|
16
|
+
Requires-Dist: anyver<2.0,>=1.2
|
|
17
|
+
Requires-Dist: tomlkit>=0.15.2
|
|
18
|
+
Requires-Dist: pathspec<2.0,>=0.12
|
|
19
|
+
Requires-Dist: psutil<8.0,>=6.0
|
|
20
|
+
Requires-Dist: uvicorn<1.0,>=0.34
|
|
21
|
+
Requires-Dist: fastapi<1.0,>=0.115
|
|
22
|
+
Requires-Dist: httpx<1.0,>=0.28
|
|
23
|
+
Requires-Dist: watchfiles<2.0,>=1.0
|
|
24
|
+
Provides-Extra: dev
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
|
|
27
|
+
# Skeleton Framework
|
|
28
|
+
|
|
29
|
+

|
|
30
|
+
|
|
31
|
+
Skeleton is a full-stack application orchestration framework
|
|
32
|
+
that combines Python orchestration, a FastAPI reverse-proxy gateway,
|
|
33
|
+
a Python backend, and a TypeScript frontend.
|
|
34
|
+
|
|
35
|
+
It provides a structured development workflow for configuring,
|
|
36
|
+
initializing, installing, running, and building full-stack applications.
|
|
37
|
+
|
|
38
|
+
Skeleton supports multiple frontend profiles and manages the development
|
|
39
|
+
environments and tooling required by each application component.
|
|
40
|
+
|
|
41
|
+
## Features
|
|
42
|
+
|
|
43
|
+
- **Python orchestration** for project configuration, initialization, dependency installation and service execution.
|
|
44
|
+
- **FastAPI gateway** for centralizing request routing and communication with backend services.
|
|
45
|
+
- **Python backend** for application APIs.
|
|
46
|
+
- **Multiple frontend profiles** supports Vanilla TypeScript, React, SolidJS, Vue, and Svelte.
|
|
47
|
+
- **Webpack tooling** for frontend development and production builds.
|
|
48
|
+
- **JSON-based configuration** for project metadata, structure, dependencies, schemas, servers, etc.
|
|
49
|
+
- **Command-line interface** for project management, development, versioning, distribution, and cleanup.
|
|
50
|
+
|
|
51
|
+
## Architecture
|
|
52
|
+
|
|
53
|
+
Skeleton separates the application into cooperating layers:
|
|
54
|
+
|
|
55
|
+
| Layer | Technology |
|
|
56
|
+
|---------------------------|-------------|
|
|
57
|
+
| Orchestration and CLI | Python |
|
|
58
|
+
| Gateway | FastAPI |
|
|
59
|
+
| Backend APIs | FastAPI |
|
|
60
|
+
| HTTP server | Uvicorn |
|
|
61
|
+
| HTTP communication | HTTPX |
|
|
62
|
+
| Frontend | TypeScript |
|
|
63
|
+
| Frontend bundling | Webpack |
|
|
64
|
+
| Development file watching | watchfiles |
|
|
65
|
+
| Dependency management | pip and npm |
|
|
66
|
+
|
|
67
|
+
The gateway provides a central entry point for browser requests
|
|
68
|
+
and coordinates communication between the frontend and backend.
|
|
69
|
+
|
|
70
|
+
## Default Development Ports
|
|
71
|
+
|
|
72
|
+
The default development configuration uses the following ports:
|
|
73
|
+
|
|
74
|
+
| Service | Address |
|
|
75
|
+
|-----------------------------|-----------------------|
|
|
76
|
+
| Gateway / reverse proxy | http://127.0.0.1:8000 |
|
|
77
|
+
| Backend API | http://127.0.0.1:8080 |
|
|
78
|
+
| Frontend development server | http://127.0.0.1:3000 |
|
|
79
|
+
|
|
80
|
+
The gateway is the normal entry point for browser access.
|
|
81
|
+
|
|
82
|
+
For example, the index API endpoint can be accessed through:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
http://127.0.0.1:8000/api/
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
The corresponding backend endpoint may be available directly at:
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
http://127.0.0.1:8080/
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Actual routes depend on the application's server and gateway configuration.
|
|
95
|
+
|
|
96
|
+
## Installation
|
|
97
|
+
|
|
98
|
+
### 1. Requirements
|
|
99
|
+
|
|
100
|
+
Before getting started, install:
|
|
101
|
+
|
|
102
|
+
- Python 3.11 or later & pip.
|
|
103
|
+
- Node.js & npm.
|
|
104
|
+
|
|
105
|
+
### 2. .venv
|
|
106
|
+
|
|
107
|
+
It is recommended to create and activate a Python virtual environment before installing Skeleton.
|
|
108
|
+
|
|
109
|
+
From your project directory, run:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
python -m venv .my-venv
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Activate the environment using the command for your shell:
|
|
116
|
+
|
|
117
|
+
**Windows CMD**
|
|
118
|
+
|
|
119
|
+
```bat
|
|
120
|
+
.my-venv\Scripts\activate.bat
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Windows PowerShell**
|
|
124
|
+
|
|
125
|
+
```powershell
|
|
126
|
+
.\.my-venv\Scripts\Activate.ps1
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Git Bash**
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
source .my-venv/Scripts/activate
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
On **macOS / Linux** do:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
source .my-venv/bin/activate
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 3. pip installation
|
|
142
|
+
|
|
143
|
+
Install Skeleton from PyPI:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
python -m pip install skeleton-framework
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
The installed Python distribution provides the `skeleton` command.
|
|
150
|
+
|
|
151
|
+
## Quickstart
|
|
152
|
+
|
|
153
|
+
Create or enter an empty directory for your application:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
mkdir my-app
|
|
157
|
+
cd my-app
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Use the `quickstart` operation to configure & initialize
|
|
161
|
+
a client project & install its dependencies, for example:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
skeleton --quickstart --profile solid
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
The frontend profile is optional.
|
|
168
|
+
|
|
169
|
+
If omitted, Skeleton uses the default Vanilla TypeScript profile:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
skeleton --quickstart
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
To run the application:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
skeleton --start
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Follow the terminal output for service startup information
|
|
182
|
+
and open the application at the configured local address.
|
|
183
|
+
|
|
184
|
+
## Workflow
|
|
185
|
+
|
|
186
|
+
The [`--quickstart`](#quickstart) command combines `--config`, `--init` & `--install`.
|
|
187
|
+
|
|
188
|
+
For more control, skeleton exposes each command separately for better workflow.
|
|
189
|
+
|
|
190
|
+
### 1. Configure
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
skeleton --config --profile <profile>
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Generates the project configuration files using the selected frontend profile.
|
|
197
|
+
|
|
198
|
+
Review and customize the configuration before continuing, if necessary.
|
|
199
|
+
|
|
200
|
+
### 2. Initialize
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
skeleton --init
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Creates the application structure
|
|
207
|
+
from the framework's boilerplate
|
|
208
|
+
& prepares the frontend & backend components.
|
|
209
|
+
|
|
210
|
+
### 3. Install
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
skeleton --install
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Installs frontend dependencies using npm
|
|
217
|
+
& backend Python dependencies into
|
|
218
|
+
the backend virtual environment.
|
|
219
|
+
|
|
220
|
+
### 4. Start
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
skeleton --start
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Starts the configured application services.
|
|
227
|
+
|
|
228
|
+
## Command-Line Interface
|
|
229
|
+
|
|
230
|
+
### Help
|
|
231
|
+
|
|
232
|
+
Display available commands:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
skeleton --help
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Display help for a specific command:
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
skeleton --help --<command>
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Project inspection
|
|
245
|
+
|
|
246
|
+
Inspect the project directory structure:
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
skeleton --tree
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Control the displayed depth:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
skeleton --tree --depth 5
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Inspect Skeleton documentation:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
skeleton --readme
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Display a specific documentation section:
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
skeleton --readme --section architecture
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Write documentation to a file/output:
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
skeleton --readme --write README.md
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Or write a documentation section to a file/output:
|
|
277
|
+
```bash
|
|
278
|
+
skeleton --readme --section architecture --write ARCHITECTURE.md
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### Common Flags
|
|
282
|
+
|
|
283
|
+
Most commands support additional execution flags:
|
|
284
|
+
|
|
285
|
+
| Flag | Purpose |
|
|
286
|
+
|-------------|-------------------------------------------------|
|
|
287
|
+
| `--dry` | Previews an operation without applying changes. |
|
|
288
|
+
| `--verbose` | Displays additional execution information. |
|
|
289
|
+
|
|
290
|
+
Flags are command-specific. Use `--help` to inspect their availability.
|
|
291
|
+
|
|
292
|
+
### Lifecycle Commands
|
|
293
|
+
|
|
294
|
+
Manage generated project distributions and build artifacts:
|
|
295
|
+
|
|
296
|
+
| Command | Purpose |
|
|
297
|
+
|--------------------|---------------------------------------------|
|
|
298
|
+
| `skeleton --dist` | Builds the client distribution. |
|
|
299
|
+
| `skeleton --purge` | Removes generated build artifacts. |
|
|
300
|
+
|
|
301
|
+
`--purge` is destructive & will remove all build artifacts
|
|
302
|
+
as listed in `config/skeleton-project.json`, including `node_modules`.
|
|
303
|
+
|
|
304
|
+
## Project Structure
|
|
305
|
+
|
|
306
|
+
A client project consists of three main directories:
|
|
307
|
+
|
|
308
|
+
- `config/` - project and service configuration files.
|
|
309
|
+
- `backend/` - Python application and API.
|
|
310
|
+
- `frontend/` - TypeScript application and static assets.
|
|
311
|
+
|
|
312
|
+
The project root also contains its `README.md` and `.gitignore` files.
|
|
313
|
+
|
|
314
|
+
Dependency installation creates a backend `.venv/` and frontend `node_modules/` directory.
|
|
315
|
+
|
|
316
|
+
The exact structure depends on the selected frontend profile and project configuration.
|
|
317
|
+
|
|
318
|
+
Optional VS Code settings are generated in `.vscode/`.
|
|
319
|
+
|
|
320
|
+
To generate the optional `.vscode` settings for mypy support, run:
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
skeleton --vscode --feature mypy
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
To generate the optional `.vscode` settings for markdown support, run:
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
skeleton --vscode --feature markdown
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
## Framework Development
|
|
333
|
+
|
|
334
|
+
### Installation & Setup
|
|
335
|
+
|
|
336
|
+
Clone the repository and enter its directory:
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
git clone https://github.com/lambdadotjoburg/skeleton.git
|
|
340
|
+
cd skeleton
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
Follow the [Installation](#installation) instructions
|
|
344
|
+
to create and activate a virtual environment.
|
|
345
|
+
|
|
346
|
+
Install the framework in editable mode with development dependencies:
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
python -m pip install --upgrade pip
|
|
350
|
+
python -m pip install -e ".[dev]"
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Editable installation allows framework source
|
|
354
|
+
changes to take effect without reinstalling the package.
|
|
355
|
+
|
|
356
|
+
### Development Commands
|
|
357
|
+
|
|
358
|
+
Framework development commands are run from the repository root using `python run.py`.
|
|
359
|
+
|
|
360
|
+
| Command | Purpose |
|
|
361
|
+
|-------------------------|-----------------------------------------|
|
|
362
|
+
| `python run.py --dist` | Builds the framework distribution. |
|
|
363
|
+
| `python run.py --demo` | Creates a demo project & installs dist. |
|
|
364
|
+
| `python run.py --purge` | Removes framework build artifacts. |
|
|
365
|
+
|
|
366
|
+
To specify a demo project location:
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
python run.py --demo --target path/to/demo/project
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
The demo operation creates the project directory,
|
|
373
|
+
including its `.venv` environment, and installs
|
|
374
|
+
the framework dist into that environment.
|
|
375
|
+
|
|
376
|
+
## Versioning
|
|
377
|
+
|
|
378
|
+
Use `--bump` to update the project version using semantic versioning.
|
|
379
|
+
|
|
380
|
+
The `--major`, `--minor`, and `--patch` options accept an optional integer.
|
|
381
|
+
|
|
382
|
+
If omitted, the selected component increments by one.
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
skeleton --bump --major
|
|
386
|
+
skeleton --bump --minor 4
|
|
387
|
+
skeleton --bump --patch 2
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
Version components follow these rules:
|
|
391
|
+
|
|
392
|
+
- **Major:** Updates the major component, resets minor & patch to zero.
|
|
393
|
+
- **Minor:** Updates the minor component, resets patch to zero.
|
|
394
|
+
- **Patch:** Updates only the patch component.
|
|
395
|
+
|
|
396
|
+
Negative values decrement the selected component,
|
|
397
|
+
provided the result remains positive.
|
|
398
|
+
|
|
399
|
+
Otherwise, that component is set to zero.
|
|
400
|
+
Version components never become negative.
|
|
401
|
+
|
|
402
|
+
For example:
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
skeleton --bump --patch -2
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
Decrements the patch component by two,
|
|
409
|
+
or sets it to zero if the result would be zero or negative.
|
|
410
|
+
|
|
411
|
+
Use `--dry` to preview the proposed version without modifying `pyproject.toml`:
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
skeleton --bump --patch --dry
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
Add `--verbose` for additional execution information:
|
|
418
|
+
|
|
419
|
+
```bash
|
|
420
|
+
skeleton --bump --patch --dry --verbose
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
The operation updates the relevant files:
|
|
424
|
+
- the framework's `pyproject.toml` in framework development mode
|
|
425
|
+
- the backend's `pyproject.toml` + `package.json` in a client project.
|
|
426
|
+
|
|
427
|
+
## Publish
|
|
428
|
+
|
|
429
|
+
Install or update Twine & validate the generated artifacts:
|
|
430
|
+
|
|
431
|
+
```bash
|
|
432
|
+
python -m pip install --upgrade twine
|
|
433
|
+
python -m twine check dist/*
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
Upload the distribution to TestPyPI first:
|
|
437
|
+
|
|
438
|
+
```bash
|
|
439
|
+
python -m twine upload --repository testpypi dist/*
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
After verifying the TestPyPI installation, upload the **same artifacts** to PyPI:
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
python -m twine upload dist/*
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
Use the appropriate API token when prompted. TestPyPI and PyPI require separate credentials.
|
|
449
|
+
|
|
450
|
+
Never commit API tokens or other publishing credentials to the repository.
|
|
451
|
+
|
|
452
|
+
Do not rebuild or modify the distribution between the TestPyPI and PyPI uploads.
|
|
453
|
+
|
|
454
|
+
## Project Status
|
|
455
|
+
|
|
456
|
+
Skeleton is an experimental framework under active development.
|
|
457
|
+
|
|
458
|
+
Its goal is to provide a clear, reproducible foundation for full-stack
|
|
459
|
+
application development while keeping configuration, orchestration,
|
|
460
|
+
frontend tooling, and backend services independently manageable.
|
|
461
|
+
|
|
462
|
+
## TODO
|
|
463
|
+
|
|
464
|
+
### 1. Operational Improvements
|
|
465
|
+
|
|
466
|
+
- [ ] Explore combining `--dist` and `--preview` into a single operation.
|
|
467
|
+
|
|
468
|
+
### 2. Gateway Server updates
|
|
469
|
+
|
|
470
|
+
- [ ] Implement WebSocket support in the reverse-proxy gateway.
|
|
471
|
+
|
|
472
|
+
### 3. Release Validation
|
|
473
|
+
|
|
474
|
+
- [ ] Build and install the framework distribution in a demo project.
|
|
475
|
+
- [ ] Test the installed distribution using the standard client workflow.
|
|
476
|
+
- [ ] Perform integration testing before publishing releases through Hatch/Twine.
|
|
477
|
+
|
|
478
|
+
## Licence
|
|
479
|
+
|
|
480
|
+
Skeleton Framework is proprietary software. Copyright © 2026 lambdadotjoburg.
|
|
481
|
+
All rights reserved.
|
|
482
|
+
|
|
483
|
+
The source code is publicly available for inspection, but public availability
|
|
484
|
+
does not grant unrestricted rights to use, modify, or redistribute the framework.
|
|
485
|
+
|
|
486
|
+
Personal learning, educational activities, and non-commercial experimentation
|
|
487
|
+
are permitted under the terms of the root [LICENSE](./LICENSE) file.
|
|
488
|
+
|
|
489
|
+
Commercial use requires a separate paid licence from the copyright holder.
|
|
490
|
+
Redistribution requires prior written permission.
|
|
491
|
+
|
|
492
|
+
Third-party dependencies remain subject to their respective licences.
|
|
493
|
+
|
|
494
|
+
For commercial licensing, redistribution requests, or other permissions,
|
|
495
|
+
contact [lambdadotjoburg@gmail.com](mailto:lambdadotjoburg@gmail.com).
|
|
496
|
+
|
|
497
|
+
See the [LICENSE](./LICENSE) file for the complete terms.
|