@tappify/cli 1.3.2 → 1.5.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/README.md +106 -31
- package/dist/src/app.module.js +6 -2
- package/dist/src/app.module.js.map +1 -1
- package/dist/src/core/api/api.service.d.ts +28 -2
- package/dist/src/core/api/api.service.js +151 -27
- package/dist/src/core/api/api.service.js.map +1 -1
- package/dist/src/core/auth/auth.service.d.ts +2 -0
- package/dist/src/core/auth/auth.service.js +31 -3
- package/dist/src/core/auth/auth.service.js.map +1 -1
- package/dist/src/core/config/config.service.d.ts +11 -2
- package/dist/src/core/config/config.service.js +13 -3
- package/dist/src/core/config/config.service.js.map +1 -1
- package/dist/src/core/core.module.js +33 -2
- package/dist/src/core/core.module.js.map +1 -1
- package/dist/src/core/environment/environment.service.d.ts +24 -0
- package/dist/src/core/environment/environment.service.js +93 -0
- package/dist/src/core/environment/environment.service.js.map +1 -0
- package/dist/src/core/environment/index.d.ts +1 -0
- package/dist/src/core/environment/index.js +18 -0
- package/dist/src/core/environment/index.js.map +1 -0
- package/dist/src/core/image/image-size.d.ts +5 -0
- package/dist/src/core/image/image-size.js +37 -0
- package/dist/src/core/image/image-size.js.map +1 -0
- package/dist/src/core/image/index.d.ts +1 -0
- package/dist/src/{domains/init/runners → core/image}/index.js +1 -1
- package/dist/src/core/image/index.js.map +1 -0
- package/dist/src/core/index.d.ts +10 -0
- package/dist/src/core/index.js +10 -0
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/core/link/project-link.service.d.ts +13 -0
- package/dist/src/{domains/init/runners/init.runner.js → core/link/project-link.service.js} +54 -44
- package/dist/src/core/link/project-link.service.js.map +1 -0
- package/dist/src/core/manifest/index.d.ts +2 -0
- package/dist/src/core/manifest/index.js +19 -0
- package/dist/src/core/manifest/index.js.map +1 -0
- package/dist/src/core/manifest/manifest.service.d.ts +14 -0
- package/dist/src/core/manifest/manifest.service.js +141 -0
- package/dist/src/core/manifest/manifest.service.js.map +1 -0
- package/dist/src/core/manifest/scope-rules.d.ts +8 -0
- package/dist/src/core/manifest/scope-rules.js +95 -0
- package/dist/src/core/manifest/scope-rules.js.map +1 -0
- package/dist/src/core/output/colors.d.ts +6 -0
- package/dist/src/core/output/colors.js +27 -0
- package/dist/src/core/output/colors.js.map +1 -0
- package/dist/src/core/output/index.d.ts +2 -0
- package/dist/src/core/output/index.js +19 -0
- package/dist/src/core/output/index.js.map +1 -0
- package/dist/src/core/output/output.service.d.ts +37 -0
- package/dist/src/core/output/output.service.js +119 -0
- package/dist/src/core/output/output.service.js.map +1 -0
- package/dist/src/core/project/index.d.ts +1 -0
- package/dist/src/core/project/index.js +18 -0
- package/dist/src/core/project/index.js.map +1 -0
- package/dist/src/core/project/package-manager.d.ts +6 -0
- package/dist/src/core/project/package-manager.js +47 -0
- package/dist/src/core/project/package-manager.js.map +1 -0
- package/dist/src/core/prompt/prompt.service.d.ts +17 -0
- package/dist/src/core/prompt/prompt.service.js +299 -0
- package/dist/src/core/prompt/prompt.service.js.map +1 -0
- package/dist/src/core/registry/index.d.ts +1 -0
- package/dist/src/core/registry/index.js +18 -0
- package/dist/src/core/registry/index.js.map +1 -0
- package/dist/src/core/registry/registry.service.d.ts +55 -0
- package/dist/src/core/registry/registry.service.js +119 -0
- package/dist/src/core/registry/registry.service.js.map +1 -0
- package/dist/src/core/shell/shell.service.d.ts +10 -5
- package/dist/src/core/shell/shell.service.js +109 -15
- package/dist/src/core/shell/shell.service.js.map +1 -1
- package/dist/src/core/shutdown/teardown.d.ts +3 -0
- package/dist/src/core/shutdown/teardown.js +22 -0
- package/dist/src/core/shutdown/teardown.js.map +1 -0
- package/dist/src/core/templates/index.d.ts +1 -0
- package/dist/src/core/templates/index.js +18 -0
- package/dist/src/core/templates/index.js.map +1 -0
- package/dist/src/core/templates/template.service.d.ts +10 -0
- package/dist/src/core/templates/template.service.js +91 -0
- package/dist/src/core/templates/template.service.js.map +1 -0
- package/dist/src/core/update/update-notifier.d.ts +6 -0
- package/dist/src/core/update/update-notifier.js +90 -28
- package/dist/src/core/update/update-notifier.js.map +1 -1
- package/dist/src/core/version.d.ts +5 -0
- package/dist/src/core/version.js +21 -0
- package/dist/src/core/version.js.map +1 -0
- package/dist/src/domains/auth/runners/login.runner.js +5 -1
- package/dist/src/domains/auth/runners/login.runner.js.map +1 -1
- package/dist/src/domains/auth/runners/logout.runner.js +1 -1
- package/dist/src/domains/auth/runners/logout.runner.js.map +1 -1
- package/dist/src/domains/deployments/runners/configure.runner.d.ts +6 -1
- package/dist/src/domains/deployments/runners/configure.runner.js +231 -200
- package/dist/src/domains/deployments/runners/configure.runner.js.map +1 -1
- package/dist/src/domains/environment/environment.module.d.ts +2 -0
- package/dist/src/domains/environment/environment.module.js +25 -0
- package/dist/src/domains/environment/environment.module.js.map +1 -0
- package/dist/src/domains/environment/index.d.ts +2 -0
- package/dist/src/domains/{deploy → environment}/index.js +1 -1
- package/dist/src/domains/environment/index.js.map +1 -0
- package/dist/src/domains/environment/runners/environment-current.runner.d.ts +7 -0
- package/dist/src/domains/environment/runners/environment-current.runner.js +35 -0
- package/dist/src/domains/environment/runners/environment-current.runner.js.map +1 -0
- package/dist/src/domains/environment/runners/environment-switcher.service.d.ts +11 -0
- package/dist/src/domains/environment/runners/environment-switcher.service.js +74 -0
- package/dist/src/domains/environment/runners/environment-switcher.service.js.map +1 -0
- package/dist/src/domains/environment/runners/environment-use.runner.d.ts +11 -0
- package/dist/src/domains/environment/runners/environment-use.runner.js +46 -0
- package/dist/src/domains/environment/runners/environment-use.runner.js.map +1 -0
- package/dist/src/domains/environment/runners/environment.command.d.ts +12 -0
- package/dist/src/domains/environment/runners/environment.command.js +53 -0
- package/dist/src/domains/environment/runners/environment.command.js.map +1 -0
- package/dist/src/domains/environment/runners/index.d.ts +4 -0
- package/dist/src/domains/environment/runners/index.js +21 -0
- package/dist/src/domains/environment/runners/index.js.map +1 -0
- package/dist/src/domains/extension/containers.d.ts +13 -0
- package/dist/src/domains/extension/containers.js +239 -0
- package/dist/src/domains/extension/containers.js.map +1 -0
- package/dist/src/domains/extension/extension.module.d.ts +2 -0
- package/dist/src/domains/extension/extension.module.js +66 -0
- package/dist/src/domains/extension/extension.module.js.map +1 -0
- package/dist/src/domains/extension/index.d.ts +1 -0
- package/dist/src/domains/extension/index.js +18 -0
- package/dist/src/domains/extension/index.js.map +1 -0
- package/dist/src/domains/extension/kinds.assistant.d.ts +2 -0
- package/dist/src/domains/extension/kinds.assistant.js +296 -0
- package/dist/src/domains/extension/kinds.assistant.js.map +1 -0
- package/dist/src/domains/extension/kinds.d.ts +8 -0
- package/dist/src/domains/extension/kinds.js +42 -0
- package/dist/src/domains/extension/kinds.js.map +1 -0
- package/dist/src/domains/extension/kinds.server.d.ts +3 -0
- package/dist/src/domains/extension/kinds.server.js +221 -0
- package/dist/src/domains/extension/kinds.server.js.map +1 -0
- package/dist/src/domains/extension/kinds.types.d.ts +65 -0
- package/dist/src/domains/extension/kinds.types.js +98 -0
- package/dist/src/domains/extension/kinds.types.js.map +1 -0
- package/dist/src/domains/extension/kinds.ui.d.ts +4 -0
- package/dist/src/domains/extension/kinds.ui.js +309 -0
- package/dist/src/domains/extension/kinds.ui.js.map +1 -0
- package/dist/src/domains/extension/labels.d.ts +27 -0
- package/dist/src/domains/extension/labels.js +143 -0
- package/dist/src/domains/extension/labels.js.map +1 -0
- package/dist/src/domains/extension/runners/add.runner.d.ts +69 -0
- package/dist/src/domains/extension/runners/add.runner.js +453 -0
- package/dist/src/domains/extension/runners/add.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/dev.runner.d.ts +33 -0
- package/dist/src/domains/extension/runners/dev.runner.js +257 -0
- package/dist/src/domains/extension/runners/dev.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/doctor.runner.d.ts +18 -0
- package/dist/src/domains/extension/runners/doctor.runner.js +107 -0
- package/dist/src/domains/extension/runners/doctor.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/events-add.runner.d.ts +12 -0
- package/dist/src/domains/extension/runners/events-add.runner.js +97 -0
- package/dist/src/domains/extension/runners/events-add.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/events-remove.runner.d.ts +10 -0
- package/dist/src/domains/extension/runners/events-remove.runner.js +75 -0
- package/dist/src/domains/extension/runners/events-remove.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/events.runner.d.ts +6 -0
- package/dist/src/domains/extension/runners/events.runner.js +40 -0
- package/dist/src/domains/extension/runners/events.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/extension.command.d.ts +10 -0
- package/dist/src/domains/extension/runners/extension.command.js +71 -0
- package/dist/src/domains/extension/runners/extension.command.js.map +1 -0
- package/dist/src/domains/extension/runners/extension.runner.d.ts +17 -0
- package/dist/src/domains/extension/runners/extension.runner.js +53 -0
- package/dist/src/domains/extension/runners/extension.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/index.d.ts +20 -0
- package/dist/src/domains/extension/runners/index.js +37 -0
- package/dist/src/domains/extension/runners/index.js.map +1 -0
- package/dist/src/domains/extension/runners/init.runner.d.ts +31 -0
- package/dist/src/domains/extension/runners/init.runner.js +276 -0
- package/dist/src/domains/extension/runners/init.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/list.runner.d.ts +10 -0
- package/dist/src/domains/extension/runners/list.runner.js +79 -0
- package/dist/src/domains/extension/runners/list.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/publish.runner.d.ts +38 -0
- package/dist/src/domains/extension/runners/publish.runner.js +178 -0
- package/dist/src/domains/extension/runners/publish.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/remove.runner.d.ts +20 -0
- package/dist/src/domains/extension/runners/remove.runner.js +105 -0
- package/dist/src/domains/extension/runners/remove.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/retire.runner.d.ts +18 -0
- package/dist/src/domains/extension/runners/retire.runner.js +80 -0
- package/dist/src/domains/extension/runners/retire.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/scopes-add.runner.d.ts +16 -0
- package/dist/src/domains/extension/runners/scopes-add.runner.js +122 -0
- package/dist/src/domains/extension/runners/scopes-add.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/scopes-remove.runner.d.ts +12 -0
- package/dist/src/domains/extension/runners/scopes-remove.runner.js +73 -0
- package/dist/src/domains/extension/runners/scopes-remove.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/scopes.runner.d.ts +6 -0
- package/dist/src/domains/extension/runners/scopes.runner.js +40 -0
- package/dist/src/domains/extension/runners/scopes.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/set.runner.d.ts +17 -0
- package/dist/src/domains/extension/runners/set.runner.js +157 -0
- package/dist/src/domains/extension/runners/set.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/status.runner.d.ts +12 -0
- package/dist/src/domains/extension/runners/status.runner.js +88 -0
- package/dist/src/domains/extension/runners/status.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/types.runner.d.ts +10 -0
- package/dist/src/domains/extension/runners/types.runner.js +43 -0
- package/dist/src/domains/extension/runners/types.runner.js.map +1 -0
- package/dist/src/domains/extension/runners/whoami.runner.d.ts +10 -0
- package/dist/src/domains/extension/runners/whoami.runner.js +71 -0
- package/dist/src/domains/extension/runners/whoami.runner.js.map +1 -0
- package/dist/src/domains/extension/services/add.service.d.ts +26 -0
- package/dist/src/domains/extension/services/add.service.js +263 -0
- package/dist/src/domains/extension/services/add.service.js.map +1 -0
- package/dist/src/domains/extension/services/checks/a11y-check.d.ts +3 -0
- package/dist/src/domains/extension/services/checks/a11y-check.js +84 -0
- package/dist/src/domains/extension/services/checks/a11y-check.js.map +1 -0
- package/dist/src/domains/extension/services/checks/bundle-checks.d.ts +3 -0
- package/dist/src/domains/extension/services/checks/bundle-checks.js +234 -0
- package/dist/src/domains/extension/services/checks/bundle-checks.js.map +1 -0
- package/dist/src/domains/extension/services/checks/bundle-files.d.ts +14 -0
- package/dist/src/domains/extension/services/checks/bundle-files.js +139 -0
- package/dist/src/domains/extension/services/checks/bundle-files.js.map +1 -0
- package/dist/src/domains/extension/services/checks/file-checks.d.ts +6 -0
- package/dist/src/domains/extension/services/checks/file-checks.js +128 -0
- package/dist/src/domains/extension/services/checks/file-checks.js.map +1 -0
- package/dist/src/domains/extension/services/checks/index.d.ts +7 -0
- package/dist/src/domains/extension/services/checks/index.js +24 -0
- package/dist/src/domains/extension/services/checks/index.js.map +1 -0
- package/dist/src/domains/extension/services/checks/manifest-checks.d.ts +7 -0
- package/dist/src/domains/extension/services/checks/manifest-checks.js +95 -0
- package/dist/src/domains/extension/services/checks/manifest-checks.js.map +1 -0
- package/dist/src/domains/extension/services/checks/project-checks.d.ts +7 -0
- package/dist/src/domains/extension/services/checks/project-checks.js +86 -0
- package/dist/src/domains/extension/services/checks/project-checks.js.map +1 -0
- package/dist/src/domains/extension/services/checks/types.d.ts +23 -0
- package/dist/src/domains/extension/services/checks/types.js +50 -0
- package/dist/src/domains/extension/services/checks/types.js.map +1 -0
- package/dist/src/domains/extension/services/dev.service.d.ts +26 -0
- package/dist/src/domains/extension/services/dev.service.js +58 -0
- package/dist/src/domains/extension/services/dev.service.js.map +1 -0
- package/dist/src/domains/extension/services/doctor.service.d.ts +36 -0
- package/dist/src/domains/extension/services/doctor.service.js +213 -0
- package/dist/src/domains/extension/services/doctor.service.js.map +1 -0
- package/dist/src/domains/extension/services/failures.d.ts +8 -0
- package/dist/src/domains/extension/services/failures.js +112 -0
- package/dist/src/domains/extension/services/failures.js.map +1 -0
- package/dist/src/domains/extension/services/guided.service.d.ts +36 -0
- package/dist/src/domains/extension/services/guided.service.js +133 -0
- package/dist/src/domains/extension/services/guided.service.js.map +1 -0
- package/dist/src/domains/extension/services/publish.service.d.ts +14 -0
- package/dist/src/domains/extension/services/publish.service.js +93 -0
- package/dist/src/domains/extension/services/publish.service.js.map +1 -0
- package/dist/src/domains/extension/services/registration.service.d.ts +7 -0
- package/dist/src/domains/extension/services/registration.service.js +43 -0
- package/dist/src/domains/extension/services/registration.service.js.map +1 -0
- package/dist/src/domains/extension/services/remove.service.d.ts +22 -0
- package/dist/src/domains/extension/services/remove.service.js +137 -0
- package/dist/src/domains/extension/services/remove.service.js.map +1 -0
- package/dist/src/domains/extension/services/types.service.d.ts +21 -0
- package/dist/src/domains/extension/services/types.service.js +81 -0
- package/dist/src/domains/extension/services/types.service.js.map +1 -0
- package/dist/src/domains/index.d.ts +6 -2
- package/dist/src/domains/index.js +6 -2
- package/dist/src/domains/index.js.map +1 -1
- package/dist/src/domains/{init → link}/index.d.ts +1 -1
- package/dist/src/domains/{init → link}/index.js +1 -1
- package/dist/src/domains/link/index.js.map +1 -0
- package/dist/src/domains/link/link.module.d.ts +2 -0
- package/dist/src/domains/{init/init.module.js → link/link.module.js} +8 -8
- package/dist/src/domains/link/link.module.js.map +1 -0
- package/dist/src/domains/link/runners/index.d.ts +1 -0
- package/dist/src/domains/{deploy → link}/runners/index.js +1 -1
- package/dist/src/domains/link/runners/index.js.map +1 -0
- package/dist/src/domains/link/runners/link.runner.d.ts +20 -0
- package/dist/src/domains/link/runners/link.runner.js +129 -0
- package/dist/src/domains/link/runners/link.runner.js.map +1 -0
- package/dist/src/domains/mcp/index.d.ts +5 -0
- package/dist/src/domains/mcp/index.js +22 -0
- package/dist/src/domains/mcp/index.js.map +1 -0
- package/dist/src/domains/mcp/mcp.module.d.ts +2 -0
- package/dist/src/domains/mcp/mcp.module.js +25 -0
- package/dist/src/domains/mcp/mcp.module.js.map +1 -0
- package/dist/src/domains/mcp/runners/mcp.runner.d.ts +7 -0
- package/dist/src/domains/mcp/runners/mcp.runner.js +45 -0
- package/dist/src/domains/mcp/runners/mcp.runner.js.map +1 -0
- package/dist/src/domains/mcp/services/docs-search.service.d.ts +23 -0
- package/dist/src/domains/mcp/services/docs-search.service.js +164 -0
- package/dist/src/domains/mcp/services/docs-search.service.js.map +1 -0
- package/dist/src/domains/mcp/services/mcp-server.factory.d.ts +42 -0
- package/dist/src/domains/mcp/services/mcp-server.factory.js +438 -0
- package/dist/src/domains/mcp/services/mcp-server.factory.js.map +1 -0
- package/dist/src/domains/mcp/services/validate.service.d.ts +17 -0
- package/dist/src/domains/mcp/services/validate.service.js +57 -0
- package/dist/src/domains/mcp/services/validate.service.js.map +1 -0
- package/dist/src/domains/upgrade/index.d.ts +1 -0
- package/dist/src/domains/upgrade/index.js +18 -0
- package/dist/src/domains/upgrade/index.js.map +1 -0
- package/dist/src/domains/upgrade/runners/index.d.ts +1 -0
- package/dist/src/domains/upgrade/runners/index.js +18 -0
- package/dist/src/domains/upgrade/runners/index.js.map +1 -0
- package/dist/src/domains/upgrade/runners/upgrade.runner.d.ts +12 -0
- package/dist/src/domains/upgrade/runners/upgrade.runner.js +191 -0
- package/dist/src/domains/upgrade/runners/upgrade.runner.js.map +1 -0
- package/dist/src/domains/upgrade/upgrade.module.d.ts +2 -0
- package/dist/src/domains/{deploy/deploy.module.js → upgrade/upgrade.module.js} +8 -8
- package/dist/src/domains/upgrade/upgrade.module.js.map +1 -0
- package/dist/src/domains/vendor/index.d.ts +1 -0
- package/dist/src/domains/vendor/index.js +18 -0
- package/dist/src/domains/vendor/index.js.map +1 -0
- package/dist/src/domains/vendor/runners/index.d.ts +2 -0
- package/dist/src/domains/vendor/runners/index.js +19 -0
- package/dist/src/domains/vendor/runners/index.js.map +1 -0
- package/dist/src/domains/vendor/runners/vendor-create.runner.d.ts +20 -0
- package/dist/src/domains/vendor/runners/vendor-create.runner.js +121 -0
- package/dist/src/domains/vendor/runners/vendor-create.runner.js.map +1 -0
- package/dist/src/domains/vendor/runners/vendor.command.d.ts +10 -0
- package/dist/src/domains/vendor/runners/vendor.command.js +42 -0
- package/dist/src/domains/vendor/runners/vendor.command.js.map +1 -0
- package/dist/src/domains/vendor/vendor.module.d.ts +2 -0
- package/dist/src/domains/vendor/vendor.module.js +22 -0
- package/dist/src/domains/vendor/vendor.module.js.map +1 -0
- package/dist/src/main.js +16 -2
- package/dist/src/main.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +43 -7
- package/templates/contributions/action/schemas/__file__.input.json +14 -0
- package/templates/contributions/action/server/actions/__file__.ts +8 -0
- package/templates/contributions/connector/server/metrics.ts +19 -0
- package/templates/contributions/context/server/context/__file__.ts +10 -0
- package/templates/contributions/knowledge/knowledge/__file__.md +6 -0
- package/templates/contributions/mention/server/mentions/__file__.ts +10 -0
- package/templates/contributions/page/src/pages/__file__.tsx +21 -0
- package/templates/contributions/page/test/__file__.test.tsx +12 -0
- package/templates/contributions/procedure/schemas/__file__.input.json +13 -0
- package/templates/contributions/procedure/schemas/__file__.output.json +13 -0
- package/templates/contributions/procedure/server/procedures/__file__.ts +13 -0
- package/templates/contributions/prompt/schemas/__file__.input.json +14 -0
- package/templates/contributions/row-action/src/row-actions/__file__.tsx +20 -0
- package/templates/contributions/row-action/test/__file__.test.tsx +17 -0
- package/templates/contributions/settings/schemas/settings.json +14 -0
- package/templates/contributions/settings/src/settings.tsx +24 -0
- package/templates/contributions/settings/test/settings.test.tsx +12 -0
- package/templates/contributions/skill/skills/__file__.md +14 -0
- package/templates/contributions/storage/schemas/__file__.json +14 -0
- package/templates/contributions/tab/src/tabs/__file__.tsx +21 -0
- package/templates/contributions/tab/test/__file__.test.tsx +12 -0
- package/templates/contributions/tool/schemas/__file__.input.json +14 -0
- package/templates/contributions/tool/server/tools/__file__.ts +8 -0
- package/templates/contributions/webhook/schemas/__file__.payload.json +13 -0
- package/templates/contributions/widget/src/widgets/__file__.tsx +48 -0
- package/templates/contributions/widget/test/__file__.test.tsx +16 -0
- package/templates/contributions/work/server/work.ts +14 -0
- package/templates/starter/README.md +75 -0
- package/templates/starter/api/tappify/[...path].ts +6 -0
- package/templates/starter/gitignore +6 -0
- package/templates/starter/icon.svg +4 -0
- package/templates/starter/package.json +37 -0
- package/templates/starter/pnpm-workspace.yaml +3 -0
- package/templates/starter/schemas/get-summary.input.json +11 -0
- package/templates/starter/schemas/get-summary.output.json +12 -0
- package/templates/starter/schemas/preferences.json +18 -0
- package/templates/starter/schemas/settings.json +19 -0
- package/templates/starter/server/actions/index.ts +1 -0
- package/templates/starter/server/context/index.ts +1 -0
- package/templates/starter/server/handler.ts +25 -0
- package/templates/starter/server/mentions/index.ts +1 -0
- package/templates/starter/server/procedures/get-summary.ts +32 -0
- package/templates/starter/server/procedures/index.ts +5 -0
- package/templates/starter/server/tools/index.ts +1 -0
- package/templates/starter/server/worker.ts +5 -0
- package/templates/starter/src/settings.tsx +24 -0
- package/templates/starter/src/styles.css +16 -0
- package/templates/starter/src/tappify.d.ts +59 -0
- package/templates/starter/src/widgets/summary.tsx +122 -0
- package/templates/starter/tappify.extension.json +68 -0
- package/templates/starter/test/matchers.d.ts +2 -0
- package/templates/starter/test/server.test.ts +69 -0
- package/templates/starter/test/settings.test.tsx +46 -0
- package/templates/starter/test/summary.test.tsx +109 -0
- package/templates/starter/tsconfig.json +20 -0
- package/templates/starter/vite.config.ts +8 -0
- package/templates/starter/vitest.config.ts +29 -0
- package/templates/starter/wrangler.toml +7 -0
- package/dist/src/domains/deploy/deploy.module.d.ts +0 -2
- package/dist/src/domains/deploy/deploy.module.js.map +0 -1
- package/dist/src/domains/deploy/index.d.ts +0 -2
- package/dist/src/domains/deploy/index.js.map +0 -1
- package/dist/src/domains/deploy/runners/deploy.runner.d.ts +0 -10
- package/dist/src/domains/deploy/runners/deploy.runner.js +0 -132
- package/dist/src/domains/deploy/runners/deploy.runner.js.map +0 -1
- package/dist/src/domains/deploy/runners/index.d.ts +0 -1
- package/dist/src/domains/deploy/runners/index.js.map +0 -1
- package/dist/src/domains/init/index.js.map +0 -1
- package/dist/src/domains/init/init.module.d.ts +0 -2
- package/dist/src/domains/init/init.module.js.map +0 -1
- package/dist/src/domains/init/runners/index.d.ts +0 -1
- package/dist/src/domains/init/runners/index.js.map +0 -1
- package/dist/src/domains/init/runners/init.runner.d.ts +0 -4
- package/dist/src/domains/init/runners/init.runner.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,6 +4,20 @@ A command line interface for managing deployments and more.
|
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
|
+
The CLI ships as a standalone binary (no Node.js required). npm remains available for Node users.
|
|
8
|
+
|
|
9
|
+
### curl (macOS/Linux)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
curl -fsSL https://get.tappify.ai | sh
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### winget (Windows)
|
|
16
|
+
|
|
17
|
+
```powershell
|
|
18
|
+
winget install Tappify.CLI
|
|
19
|
+
```
|
|
20
|
+
|
|
7
21
|
### NPM
|
|
8
22
|
|
|
9
23
|
```bash
|
|
@@ -33,60 +47,121 @@ choco install tappify
|
|
|
33
47
|
## Usage
|
|
34
48
|
|
|
35
49
|
```bash
|
|
36
|
-
# Show available commands
|
|
37
50
|
tappify --help
|
|
38
|
-
|
|
39
|
-
# Authenticate with Tappify
|
|
40
51
|
tappify login
|
|
52
|
+
tappify environment
|
|
53
|
+
tappify extension init
|
|
54
|
+
tappify extension dev
|
|
55
|
+
tappify extension publish
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Commands
|
|
59
|
+
|
|
60
|
+
### `login`, `logout`
|
|
61
|
+
|
|
62
|
+
Authenticate with Tappify through the device authorization flow, and clear the stored session.
|
|
41
63
|
|
|
42
|
-
|
|
43
|
-
tappify init
|
|
64
|
+
### `upgrade`
|
|
44
65
|
|
|
45
|
-
|
|
46
|
-
tappify publish
|
|
66
|
+
Update the CLI to the latest version. Self-updates binary installs; otherwise prints the right command for your package manager.
|
|
47
67
|
|
|
48
|
-
|
|
49
|
-
tappify logout
|
|
68
|
+
### `environment`, `env`
|
|
50
69
|
|
|
51
|
-
|
|
52
|
-
|
|
70
|
+
Choose whether the CLI connects to Production or the internal Staging sandbox:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
tappify environment
|
|
74
|
+
tappify environment current
|
|
75
|
+
tappify environment use production
|
|
76
|
+
tappify environment use staging --yes
|
|
53
77
|
```
|
|
54
78
|
|
|
55
|
-
|
|
79
|
+
Staging requires confirmation unless `--yes` is supplied:
|
|
56
80
|
|
|
57
|
-
|
|
81
|
+
```text
|
|
82
|
+
WARNING: INTERNAL TESTING ENVIRONMENT
|
|
58
83
|
|
|
59
|
-
|
|
84
|
+
Staging uses https://staging.api.tappify.ai.
|
|
85
|
+
Data may be incomplete, changed, or deleted.
|
|
86
|
+
Do not use this environment unless you know what you are doing.
|
|
87
|
+
```
|
|
60
88
|
|
|
61
|
-
|
|
89
|
+
Switching environments logs the CLI out and clears the selected sandbox project, so run `tappify login` again. `TAPPIFY_API_URL` is an internal and CI escape hatch; while set, it overrides the selected environment and emits a custom-API warning.
|
|
62
90
|
|
|
63
|
-
|
|
91
|
+
### `link`
|
|
64
92
|
|
|
65
|
-
|
|
93
|
+
Link this directory to a Tappify project and its apps, writing `.tappify/project.json`.
|
|
66
94
|
|
|
67
|
-
|
|
95
|
+
### `deployments configure`
|
|
68
96
|
|
|
69
|
-
|
|
97
|
+
Configure CI code signing for an app.
|
|
70
98
|
|
|
71
|
-
|
|
99
|
+
### `vendor create`
|
|
72
100
|
|
|
73
|
-
|
|
101
|
+
Create a vendor account, its workspace and its sandbox project. Every `extension` command that finds no vendor points you here.
|
|
74
102
|
|
|
75
|
-
|
|
103
|
+
### `extension`
|
|
76
104
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
105
|
+
Build, test and publish an extension. `tappify ext` is the same command.
|
|
106
|
+
|
|
107
|
+
| Command | Does |
|
|
108
|
+
| -------------------------------- | ------------------------------------------------------------------ |
|
|
109
|
+
| `extension init [dir]` | Scaffolds an extension from the starter |
|
|
110
|
+
| `extension add <kind> [name]` | Adds a contribution, scaffolds its files and regenerates the types |
|
|
111
|
+
| `extension remove <kind> <id>` | Removes a contribution and, with confirmation, its files |
|
|
112
|
+
| `extension list` | Lists the contributions and scopes this extension declares |
|
|
113
|
+
| `extension set <field> <value>` | Sets one field in the manifest |
|
|
114
|
+
| `extension scopes add <key>` | Grants this extension one more scope |
|
|
115
|
+
| `extension scopes remove <key>` | Takes one scope away |
|
|
116
|
+
| `extension events add <name>` | Receives one Tappify event on your server |
|
|
117
|
+
| `extension events remove <name>` | Stops receiving one Tappify event on your server |
|
|
118
|
+
| `extension types` | Regenerates `src/tappify.d.ts` |
|
|
119
|
+
| `extension dev` | Serves the extension and previews it while you edit |
|
|
120
|
+
| `extension doctor` | Runs every check the Tap Store runs, here |
|
|
121
|
+
| `extension publish` | Builds, checks and sends the release to the Tap Store |
|
|
122
|
+
| `extension retire` | Takes the extension out of the Tap Store and every install |
|
|
123
|
+
| `extension status` | Shows the live release, the release in review and the installs |
|
|
124
|
+
| `extension whoami` | Shows the vendor, your role and the sandbox project |
|
|
125
|
+
|
|
126
|
+
Run `tappify extension <command> --help` for the flags.
|
|
127
|
+
|
|
128
|
+
### `mcp`
|
|
129
|
+
|
|
130
|
+
Serves the MCP server for agents over stdio.
|
|
131
|
+
|
|
132
|
+
Editors and agents run `tappify mcp` themselves. The Claude Code plugin at `tappify-dev/claude-plugin` declares it, so installing that plugin is all a Claude Code user does.
|
|
133
|
+
|
|
134
|
+
### `--json`
|
|
135
|
+
|
|
136
|
+
Every `vendor` and `extension` command takes `--json` and prints one object on stdout: the same result its two human lines describe. A failure prints `{ "ok": false, "error": { "what": …, "why": …, "fix": … } }` and exits non-zero. `login`, `logout`, `link`, `upgrade` and `deployments configure` take no `--json`, and `mcp` has none either — its stdout carries the protocol.
|
|
137
|
+
|
|
138
|
+
Each payload below also carries `ok: true`.
|
|
80
139
|
|
|
81
|
-
|
|
140
|
+
| Command | Keys |
|
|
141
|
+
| --------------------------------- | ---------------------------------------------------------- |
|
|
142
|
+
| `tappify vendor create` | `vendor`, `workspace`, `sandboxProject` |
|
|
143
|
+
| `tappify extension init` | `id`, `name`, `directory`, `files` |
|
|
144
|
+
| `tappify extension add` | `kind`, `id`, `files`, `scopesAdded` |
|
|
145
|
+
| `tappify extension remove` | `kind`, `id`, `files` |
|
|
146
|
+
| `tappify extension list` | `id`, `contributions`, `scopes` |
|
|
147
|
+
| `tappify extension set` | `field`, `value` |
|
|
148
|
+
| `tappify extension scopes add` | `key`, `justification`, `requiresSecurityReview` |
|
|
149
|
+
| `tappify extension scopes remove` | `key`, `stillNeeded` |
|
|
150
|
+
| `tappify extension events add` | `name`, `events` |
|
|
151
|
+
| `tappify extension events remove` | `name`, `events`, `usedBy` |
|
|
152
|
+
| `tappify extension types` | `file`, `schemas` |
|
|
153
|
+
| `tappify extension dev` | `id`, `remoteEntry`, `previewUrl`, `hostUrl`, `installId` |
|
|
154
|
+
| `tappify extension doctor` | `id`, `errors`, `warnings`, `passed`, `fixed`, `checks` |
|
|
155
|
+
| `tappify extension publish` | `id`, `status`, `releaseId`, `bytes`, `entries`, `pending` |
|
|
156
|
+
| `tappify extension retire` | `id`, `status` |
|
|
157
|
+
| `tappify extension status` | `id`, `live`, `pending`, `timeline`, `installCount` |
|
|
158
|
+
| `tappify extension whoami` | `user`, `vendor`, `role`, `sandboxProject` |
|
|
82
159
|
|
|
83
|
-
|
|
160
|
+
`publish` carries `pending` only when the release goes to review with scopes or contribution kinds the live release does not have. `doctor` prints the same six keys whether or not a check failed; when one did, the object is the `ok: false` form and `errors` is above zero. `fixed` lists what `--fix` changed, and is empty without the flag. `scopes remove` carries `stillNeeded` on both forms: `null` when the scope went, and the reason it stayed when it did not. A failure carries whatever keys the command has beside `error`, so the shape a command prints does not change when it refuses.
|
|
84
161
|
|
|
85
|
-
|
|
162
|
+
`events remove` carries `usedBy`: the markers and banners that draw the event, which keep working because they are inbound webhooks rather than this subscription.
|
|
86
163
|
|
|
87
|
-
|
|
88
|
-
- `-b, --branch <branch>`: Git branch to deploy
|
|
89
|
-
- `-d, --dry-run`: Run without making actual changes
|
|
164
|
+
`tappify vendor --json`, `tappify extension --json`, `tappify extension scopes --json` and `tappify extension events --json` print `{ commands }` — the verbs the group holds, not a result.
|
|
90
165
|
|
|
91
166
|
## License
|
|
92
167
|
|
package/dist/src/app.module.js
CHANGED
|
@@ -18,9 +18,13 @@ exports.AppModule = AppModule = __decorate([
|
|
|
18
18
|
imports: [
|
|
19
19
|
core_1.CoreModule,
|
|
20
20
|
domains_1.DeploymentsModule,
|
|
21
|
+
domains_1.EnvironmentModule,
|
|
22
|
+
domains_1.ExtensionModule,
|
|
21
23
|
domains_1.AuthModule,
|
|
22
|
-
domains_1.
|
|
23
|
-
domains_1.
|
|
24
|
+
domains_1.LinkModule,
|
|
25
|
+
domains_1.McpModule,
|
|
26
|
+
domains_1.UpgradeModule,
|
|
27
|
+
domains_1.VendorModule,
|
|
24
28
|
],
|
|
25
29
|
controllers: [],
|
|
26
30
|
providers: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iCAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iCAAoC;AACpC,uCASmB;AACnB,2CAAwC;AAiBjC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAfrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,iBAAU;YACV,2BAAiB;YACjB,2BAAiB;YACjB,yBAAe;YACf,oBAAU;YACV,oBAAU;YACV,mBAAS;YACT,uBAAa;YACb,sBAAY;SACb;QACD,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,EAAE;KACd,CAAC;GACW,SAAS,CAAG"}
|
|
@@ -1,11 +1,37 @@
|
|
|
1
|
+
import { AuthService } from '../../core/auth/auth.service.js';
|
|
1
2
|
import { ConfigService } from '../../core/config/config.service.js';
|
|
3
|
+
import { EnvironmentService } from '../../core/environment/environment.service.js';
|
|
4
|
+
export declare class ApiError extends Error {
|
|
5
|
+
readonly status: number;
|
|
6
|
+
readonly errorCode: string | null;
|
|
7
|
+
readonly path: string;
|
|
8
|
+
readonly additionalData: Record<string, unknown> | null;
|
|
9
|
+
constructor(message: string, status: number, errorCode: string | null, path: string, additionalData?: Record<string, unknown> | null);
|
|
10
|
+
}
|
|
2
11
|
export declare class ApiService {
|
|
3
12
|
private readonly configService;
|
|
13
|
+
private readonly authService;
|
|
14
|
+
private readonly environment;
|
|
4
15
|
private readonly logger;
|
|
5
|
-
constructor(configService: ConfigService);
|
|
16
|
+
constructor(configService: ConfigService, authService: AuthService, environment: EnvironmentService);
|
|
6
17
|
private get baseUrl();
|
|
7
|
-
private
|
|
18
|
+
private authHeader;
|
|
19
|
+
private expiresInMs;
|
|
20
|
+
private isExpiring;
|
|
21
|
+
private ensureFreshToken;
|
|
22
|
+
private authedFetch;
|
|
23
|
+
private toError;
|
|
24
|
+
private parseBody;
|
|
8
25
|
get<T = unknown>(path: string): Promise<T>;
|
|
9
26
|
post<T = unknown>(path: string, body: unknown): Promise<T>;
|
|
27
|
+
getPublic<T = unknown>(path: string, options?: {
|
|
28
|
+
timeoutMs?: number;
|
|
29
|
+
}): Promise<T>;
|
|
30
|
+
del<T = unknown>(path: string): Promise<T>;
|
|
31
|
+
uploadMultipart<T = unknown>(path: string, files: {
|
|
32
|
+
field: string;
|
|
33
|
+
filePath: string;
|
|
34
|
+
filename: string;
|
|
35
|
+
}[], fields?: Record<string, string>): Promise<T>;
|
|
10
36
|
upload<T = unknown>(path: string, filePath: string): Promise<T>;
|
|
11
37
|
}
|
|
@@ -13,70 +13,194 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
var ApiService_1;
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.ApiService = void 0;
|
|
16
|
+
exports.ApiService = exports.ApiError = void 0;
|
|
17
|
+
const auth_service_js_1 = require("../../core/auth/auth.service.js");
|
|
17
18
|
const config_service_js_1 = require("../../core/config/config.service.js");
|
|
19
|
+
const environment_service_js_1 = require("../../core/environment/environment.service.js");
|
|
18
20
|
const common_1 = require("@nestjs/common");
|
|
19
21
|
const form_data_1 = __importDefault(require("form-data"));
|
|
20
22
|
const node_fs_1 = require("node:fs");
|
|
23
|
+
class ApiError extends Error {
|
|
24
|
+
status;
|
|
25
|
+
errorCode;
|
|
26
|
+
path;
|
|
27
|
+
additionalData;
|
|
28
|
+
constructor(message, status, errorCode, path, additionalData = null) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.status = status;
|
|
31
|
+
this.errorCode = errorCode;
|
|
32
|
+
this.path = path;
|
|
33
|
+
this.additionalData = additionalData;
|
|
34
|
+
this.name = 'ApiError';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.ApiError = ApiError;
|
|
38
|
+
const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
39
|
+
const readErrorBody = (text) => {
|
|
40
|
+
try {
|
|
41
|
+
const parsed = JSON.parse(text);
|
|
42
|
+
return isRecord(parsed) ? parsed : {};
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return {};
|
|
46
|
+
}
|
|
47
|
+
};
|
|
21
48
|
let ApiService = ApiService_1 = class ApiService {
|
|
22
49
|
configService;
|
|
50
|
+
authService;
|
|
51
|
+
environment;
|
|
23
52
|
logger = new common_1.Logger(ApiService_1.name);
|
|
24
|
-
constructor(configService) {
|
|
53
|
+
constructor(configService, authService, environment) {
|
|
25
54
|
this.configService = configService;
|
|
55
|
+
this.authService = authService;
|
|
56
|
+
this.environment = environment;
|
|
26
57
|
}
|
|
27
58
|
get baseUrl() {
|
|
28
|
-
return
|
|
59
|
+
return this.environment.current().apiBaseUrl;
|
|
29
60
|
}
|
|
30
|
-
|
|
61
|
+
authHeader() {
|
|
31
62
|
const token = this.configService.get('accessToken');
|
|
32
|
-
return {
|
|
33
|
-
|
|
34
|
-
|
|
63
|
+
return token ? { Authorization: `Bearer ${token}` } : {};
|
|
64
|
+
}
|
|
65
|
+
expiresInMs(token) {
|
|
66
|
+
if (!token)
|
|
67
|
+
return null;
|
|
68
|
+
try {
|
|
69
|
+
const [, payload] = token.split('.');
|
|
70
|
+
const { exp } = JSON.parse(Buffer.from(payload, 'base64url').toString());
|
|
71
|
+
return typeof exp === 'number' ? exp * 1000 - Date.now() : null;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
isExpiring(token) {
|
|
78
|
+
const left = this.expiresInMs(token);
|
|
79
|
+
return left !== null && left <= 30_000;
|
|
80
|
+
}
|
|
81
|
+
async ensureFreshToken() {
|
|
82
|
+
if (this.isExpiring(this.configService.get('accessToken'))) {
|
|
83
|
+
await this.authService.refresh();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async authedFetch(path, init) {
|
|
87
|
+
await this.ensureFreshToken();
|
|
88
|
+
const url = `${this.baseUrl}${path}`;
|
|
89
|
+
let res = await fetch(url, {
|
|
90
|
+
...init,
|
|
91
|
+
headers: { ...init.headers, ...this.authHeader() },
|
|
92
|
+
});
|
|
93
|
+
if (res.status === 401 && (await this.authService.refresh())) {
|
|
94
|
+
res = await fetch(url, {
|
|
95
|
+
...init,
|
|
96
|
+
headers: { ...init.headers, ...this.authHeader() },
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return res;
|
|
100
|
+
}
|
|
101
|
+
async toError(method, path, res) {
|
|
102
|
+
const text = await res.text();
|
|
103
|
+
const body = readErrorBody(text);
|
|
104
|
+
const errorCode = typeof body.errorCode === 'string' ? body.errorCode : null;
|
|
105
|
+
const message = typeof body.message === 'string' ? body.message : text;
|
|
106
|
+
const additionalData = isRecord(body.additionalData)
|
|
107
|
+
? body.additionalData
|
|
108
|
+
: null;
|
|
109
|
+
if (res.status === 401) {
|
|
110
|
+
const left = this.expiresInMs(this.configService.get('accessToken'));
|
|
111
|
+
if (left !== null && left > 0) {
|
|
112
|
+
return new ApiError(`The server at ${this.baseUrl} rejected your credentials even though your login is still valid. ` +
|
|
113
|
+
`That environment's API is likely misconfigured (wrong auth provider), not a login problem.`, 401, errorCode ?? 'INVALID_TOKEN', path, additionalData);
|
|
114
|
+
}
|
|
115
|
+
return new ApiError('Your session has expired. Run `tappify login`.', 401, 'SESSION_EXPIRED', path, additionalData);
|
|
116
|
+
}
|
|
117
|
+
return new ApiError(message === '' ? `${method} ${path} failed (${res.status}).` : message, res.status, errorCode, path, additionalData);
|
|
118
|
+
}
|
|
119
|
+
async parseBody(res) {
|
|
120
|
+
if (res.status === 204)
|
|
121
|
+
return undefined;
|
|
122
|
+
const text = await res.text();
|
|
123
|
+
return (text ? JSON.parse(text) : undefined);
|
|
35
124
|
}
|
|
36
125
|
async get(path) {
|
|
37
|
-
const res = await
|
|
126
|
+
const res = await this.authedFetch(path, {
|
|
38
127
|
method: 'GET',
|
|
39
|
-
headers: {
|
|
128
|
+
headers: { 'Content-Type': 'application/json' },
|
|
40
129
|
});
|
|
41
|
-
if (!res.ok)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
return res.json();
|
|
130
|
+
if (!res.ok)
|
|
131
|
+
throw await this.toError('GET', path, res);
|
|
132
|
+
return this.parseBody(res);
|
|
46
133
|
}
|
|
47
134
|
async post(path, body) {
|
|
48
|
-
const res = await
|
|
135
|
+
const res = await this.authedFetch(path, {
|
|
49
136
|
method: 'POST',
|
|
50
|
-
headers: {
|
|
137
|
+
headers: { 'Content-Type': 'application/json' },
|
|
51
138
|
body: JSON.stringify(body),
|
|
52
139
|
});
|
|
53
|
-
if (!res.ok)
|
|
54
|
-
|
|
55
|
-
|
|
140
|
+
if (!res.ok)
|
|
141
|
+
throw await this.toError('POST', path, res);
|
|
142
|
+
return this.parseBody(res);
|
|
143
|
+
}
|
|
144
|
+
async getPublic(path, options = {}) {
|
|
145
|
+
const res = await fetch(`${this.baseUrl}${path}`, {
|
|
146
|
+
method: 'GET',
|
|
147
|
+
headers: { 'Content-Type': 'application/json' },
|
|
148
|
+
...(options.timeoutMs === undefined
|
|
149
|
+
? {}
|
|
150
|
+
: { signal: AbortSignal.timeout(options.timeoutMs) }),
|
|
151
|
+
});
|
|
152
|
+
if (!res.ok)
|
|
153
|
+
throw await this.toError('GET', path, res);
|
|
154
|
+
return this.parseBody(res);
|
|
155
|
+
}
|
|
156
|
+
async del(path) {
|
|
157
|
+
const res = await this.authedFetch(path, { method: 'DELETE' });
|
|
158
|
+
if (!res.ok)
|
|
159
|
+
throw await this.toError('DELETE', path, res);
|
|
160
|
+
return this.parseBody(res);
|
|
161
|
+
}
|
|
162
|
+
async uploadMultipart(path, files, fields = {}) {
|
|
163
|
+
await this.ensureFreshToken();
|
|
164
|
+
const form = new form_data_1.default();
|
|
165
|
+
for (const [name, value] of Object.entries(fields)) {
|
|
166
|
+
form.append(name, value);
|
|
56
167
|
}
|
|
57
|
-
|
|
168
|
+
for (const file of files) {
|
|
169
|
+
form.append(file.field, (0, node_fs_1.readFileSync)(file.filePath), {
|
|
170
|
+
filename: file.filename,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
const res = await fetch(`${this.baseUrl}${path}`, {
|
|
174
|
+
method: 'POST',
|
|
175
|
+
headers: { ...this.authHeader(), ...form.getHeaders() },
|
|
176
|
+
body: new Uint8Array(form.getBuffer()),
|
|
177
|
+
});
|
|
178
|
+
if (!res.ok)
|
|
179
|
+
throw await this.toError('POST', path, res);
|
|
180
|
+
return this.parseBody(res);
|
|
58
181
|
}
|
|
59
182
|
async upload(path, filePath) {
|
|
183
|
+
await this.ensureFreshToken();
|
|
60
184
|
const form = new form_data_1.default();
|
|
61
185
|
form.append('file', (0, node_fs_1.createReadStream)(filePath));
|
|
62
186
|
const res = await fetch(`${this.baseUrl}${path}`, {
|
|
63
187
|
method: 'POST',
|
|
64
188
|
headers: {
|
|
65
|
-
...this.
|
|
189
|
+
...this.authHeader(),
|
|
66
190
|
...form.getHeaders(),
|
|
67
191
|
},
|
|
68
192
|
body: form,
|
|
69
193
|
});
|
|
70
|
-
if (!res.ok)
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
return (await res.json());
|
|
194
|
+
if (!res.ok)
|
|
195
|
+
throw await this.toError('Upload to', path, res);
|
|
196
|
+
return this.parseBody(res);
|
|
75
197
|
}
|
|
76
198
|
};
|
|
77
199
|
exports.ApiService = ApiService;
|
|
78
200
|
exports.ApiService = ApiService = ApiService_1 = __decorate([
|
|
79
201
|
(0, common_1.Injectable)(),
|
|
80
|
-
__metadata("design:paramtypes", [config_service_js_1.ConfigService
|
|
202
|
+
__metadata("design:paramtypes", [config_service_js_1.ConfigService,
|
|
203
|
+
auth_service_js_1.AuthService,
|
|
204
|
+
environment_service_js_1.EnvironmentService])
|
|
81
205
|
], ApiService);
|
|
82
206
|
//# sourceMappingURL=api.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.service.js","sourceRoot":"","sources":["../../../../src/core/api/api.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uEAAgE;AAChE,2CAAoD;AACpD,0DAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"api.service.js","sourceRoot":"","sources":["../../../../src/core/api/api.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,8 +22,10 @@ export declare class AuthService {
|
|
|
22
22
|
private readonly configService;
|
|
23
23
|
private readonly logger;
|
|
24
24
|
constructor(configService: ConfigService);
|
|
25
|
+
private get clientId();
|
|
25
26
|
startDeviceAuthorization(): Promise<DeviceAuthResponse>;
|
|
26
27
|
pollForToken(deviceCode: string, interval: number, expiresIn: number): Promise<TokenResponse>;
|
|
28
|
+
refresh(): Promise<boolean>;
|
|
27
29
|
private storeCredentials;
|
|
28
30
|
private sleep;
|
|
29
31
|
}
|
|
@@ -14,18 +14,23 @@ exports.AuthService = void 0;
|
|
|
14
14
|
const config_service_js_1 = require("../../core/config/config.service.js");
|
|
15
15
|
const common_1 = require("@nestjs/common");
|
|
16
16
|
const WORKOS_BASE_URL = 'https://api.workos.com';
|
|
17
|
-
const
|
|
17
|
+
const DEFAULT_CLIENT_ID = 'client_01JYN3YC15ECJVH7805KERWA1Y';
|
|
18
18
|
let AuthService = AuthService_1 = class AuthService {
|
|
19
19
|
configService;
|
|
20
20
|
logger = new common_1.Logger(AuthService_1.name);
|
|
21
21
|
constructor(configService) {
|
|
22
22
|
this.configService = configService;
|
|
23
23
|
}
|
|
24
|
+
get clientId() {
|
|
25
|
+
return (process.env.WORKOS_CLIENT_ID ??
|
|
26
|
+
this.configService.get('workosClientId') ??
|
|
27
|
+
DEFAULT_CLIENT_ID);
|
|
28
|
+
}
|
|
24
29
|
async startDeviceAuthorization() {
|
|
25
30
|
const res = await fetch(`${WORKOS_BASE_URL}/user_management/authorize/device`, {
|
|
26
31
|
method: 'POST',
|
|
27
32
|
headers: { 'Content-Type': 'application/json' },
|
|
28
|
-
body: JSON.stringify({ client_id:
|
|
33
|
+
body: JSON.stringify({ client_id: this.clientId }),
|
|
29
34
|
});
|
|
30
35
|
if (!res.ok) {
|
|
31
36
|
const text = await res.text();
|
|
@@ -42,7 +47,7 @@ let AuthService = AuthService_1 = class AuthService {
|
|
|
42
47
|
method: 'POST',
|
|
43
48
|
headers: { 'Content-Type': 'application/json' },
|
|
44
49
|
body: JSON.stringify({
|
|
45
|
-
client_id:
|
|
50
|
+
client_id: this.clientId,
|
|
46
51
|
grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
|
|
47
52
|
device_code: deviceCode,
|
|
48
53
|
}),
|
|
@@ -64,6 +69,29 @@ let AuthService = AuthService_1 = class AuthService {
|
|
|
64
69
|
}
|
|
65
70
|
throw new Error('Device authorization timed out.');
|
|
66
71
|
}
|
|
72
|
+
async refresh() {
|
|
73
|
+
const refreshToken = this.configService.get('refreshToken');
|
|
74
|
+
if (!refreshToken)
|
|
75
|
+
return false;
|
|
76
|
+
try {
|
|
77
|
+
const res = await fetch(`${WORKOS_BASE_URL}/user_management/authenticate`, {
|
|
78
|
+
method: 'POST',
|
|
79
|
+
headers: { 'Content-Type': 'application/json' },
|
|
80
|
+
body: JSON.stringify({
|
|
81
|
+
client_id: this.clientId,
|
|
82
|
+
grant_type: 'refresh_token',
|
|
83
|
+
refresh_token: refreshToken,
|
|
84
|
+
}),
|
|
85
|
+
});
|
|
86
|
+
if (!res.ok)
|
|
87
|
+
return false;
|
|
88
|
+
this.storeCredentials((await res.json()));
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
67
95
|
storeCredentials(data) {
|
|
68
96
|
this.configService.set('accessToken', data.access_token);
|
|
69
97
|
this.configService.set('refreshToken', data.refresh_token);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../../src/core/auth/auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,uEAAgE;AAChE,2CAAoD;AA4BpD,MAAM,eAAe,GAAG,wBAAwB,CAAC;AACjD,MAAM,
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../../src/core/auth/auth.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,15 @@ export interface TappifyConfig {
|
|
|
4
4
|
userId?: string;
|
|
5
5
|
organizationId?: string;
|
|
6
6
|
apiBaseUrl?: string;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
environment?: 'production' | 'staging';
|
|
8
|
+
workosClientId?: string;
|
|
9
|
+
portalUrl?: string;
|
|
10
|
+
sandboxProjectId?: string;
|
|
11
|
+
sandboxProjectName?: string;
|
|
12
|
+
updateCheckedAtStable?: number;
|
|
13
|
+
updateCheckedAtCanary?: number;
|
|
14
|
+
latestVersionStable?: string;
|
|
15
|
+
latestVersionCanary?: string;
|
|
9
16
|
}
|
|
10
17
|
export declare class ConfigService {
|
|
11
18
|
private readonly store;
|
|
@@ -14,5 +21,7 @@ export declare class ConfigService {
|
|
|
14
21
|
set<K extends keyof TappifyConfig>(key: K, value: TappifyConfig[K]): void;
|
|
15
22
|
delete<K extends keyof TappifyConfig>(key: K): void;
|
|
16
23
|
clear(): void;
|
|
24
|
+
clearAuth(): void;
|
|
25
|
+
clearEnvironmentSession(): void;
|
|
17
26
|
isAuthenticated(): boolean;
|
|
18
27
|
}
|
|
@@ -20,9 +20,6 @@ let ConfigService = class ConfigService {
|
|
|
20
20
|
constructor() {
|
|
21
21
|
this.store = new conf_1.default({
|
|
22
22
|
projectName: 'tappify',
|
|
23
|
-
defaults: {
|
|
24
|
-
apiBaseUrl: 'https://api.tappify.io/api/v1',
|
|
25
|
-
},
|
|
26
23
|
});
|
|
27
24
|
}
|
|
28
25
|
get(key) {
|
|
@@ -37,6 +34,19 @@ let ConfigService = class ConfigService {
|
|
|
37
34
|
clear() {
|
|
38
35
|
this.store.clear();
|
|
39
36
|
}
|
|
37
|
+
clearAuth() {
|
|
38
|
+
['accessToken', 'refreshToken', 'userId', 'organizationId'].forEach(key => this.store.delete(key));
|
|
39
|
+
}
|
|
40
|
+
clearEnvironmentSession() {
|
|
41
|
+
[
|
|
42
|
+
'accessToken',
|
|
43
|
+
'refreshToken',
|
|
44
|
+
'userId',
|
|
45
|
+
'organizationId',
|
|
46
|
+
'sandboxProjectId',
|
|
47
|
+
'sandboxProjectName',
|
|
48
|
+
].forEach(key => this.store.delete(key));
|
|
49
|
+
}
|
|
40
50
|
isAuthenticated() {
|
|
41
51
|
return !!this.store.get('accessToken');
|
|
42
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../../src/core/config/config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gDAAwB;
|
|
1
|
+
{"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../../src/core/config/config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gDAAwB;AAqBjB,IAAM,aAAa,GAAnB,MAAM,aAAa;IACP,KAAK,CAAsB;IAE5C;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,cAAI,CAAgB;YACnC,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAgC,GAAM;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,GAAG,CAAgC,GAAM,EAAE,KAAuB;QAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAgC,GAAM;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAOD,SAAS;QAEL,CAAC,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,CAC3D,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,uBAAuB;QAEnB;YACE,aAAa;YACb,cAAc;YACd,QAAQ;YACR,gBAAgB;YAChB,kBAAkB;YAClB,oBAAoB;SAEvB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,eAAe;QACb,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;CACF,CAAA;AApDY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;;GACA,aAAa,CAoDzB"}
|