asc-appstore-tools 0.1.28__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.
- asc_appstore_tools-0.1.28/.agents/skills/frontend-design/SKILL.md +30 -0
- asc_appstore_tools-0.1.28/.cursor/mcp.json +8 -0
- asc_appstore_tools-0.1.28/.github/workflows/ci.yml +47 -0
- asc_appstore_tools-0.1.28/.github/workflows/publish.yml +32 -0
- asc_appstore_tools-0.1.28/.gitignore +13 -0
- asc_appstore_tools-0.1.28/.gitlab-ci.yml +21 -0
- asc_appstore_tools-0.1.28/AGENTS.md +52 -0
- asc_appstore_tools-0.1.28/ARCHITECTURE.md +662 -0
- asc_appstore_tools-0.1.28/CLAUDE.md +269 -0
- asc_appstore_tools-0.1.28/PKG-INFO +269 -0
- asc_appstore_tools-0.1.28/README.md +234 -0
- asc_appstore_tools-0.1.28/README.zh-CN.md +234 -0
- asc_appstore_tools-0.1.28/config/.env.example +14 -0
- asc_appstore_tools-0.1.28/data/appstore_info.csv +3 -0
- asc_appstore_tools-0.1.28/data/iap_packages.json +36 -0
- asc_appstore_tools-0.1.28/data/iap_review/premium_monthly.png +0 -0
- asc_appstore_tools-0.1.28/data/screenshots/cn/IMG_2702.PNG +0 -0
- asc_appstore_tools-0.1.28/data/screenshots/cn/IMG_2703.PNG +0 -0
- asc_appstore_tools-0.1.28/data/screenshots/cn/IMG_2704.PNG +0 -0
- asc_appstore_tools-0.1.28/data/screenshots/cn/IMG_2705.PNG +0 -0
- asc_appstore_tools-0.1.28/data/screenshots/en-US/IMG_2702.PNG +0 -0
- asc_appstore_tools-0.1.28/data/screenshots/en-US/IMG_2703.PNG +0 -0
- asc_appstore_tools-0.1.28/data/screenshots/en-US/IMG_2704.PNG +0 -0
- asc_appstore_tools-0.1.28/data/screenshots/en-US/IMG_2705.PNG +0 -0
- asc_appstore_tools-0.1.28/docs/specs/2026-05-18-web-ui-ux-improvements-design.md +161 -0
- asc_appstore_tools-0.1.28/docs/specs/2026-07-29-csv-english-headers-design.md +147 -0
- asc_appstore_tools-0.1.28/docs/specs/2026-07-29-csv-english-headers-plan.md +708 -0
- asc_appstore_tools-0.1.28/docs/specs/2026-07-29-web-i18n-design.md +171 -0
- asc_appstore_tools-0.1.28/docs/specs/2026-07-30-web-i18n-plan.md +798 -0
- asc_appstore_tools-0.1.28/docs/tutorials/01-install-and-init.md +214 -0
- asc_appstore_tools-0.1.28/docs/tutorials/01-install-and-init.zh-CN.md +216 -0
- asc_appstore_tools-0.1.28/docs/tutorials/02-metadata-and-screenshots.md +199 -0
- asc_appstore_tools-0.1.28/docs/tutorials/02-metadata-and-screenshots.zh-CN.md +199 -0
- asc_appstore_tools-0.1.28/docs/tutorials/03-iap-and-subscriptions.md +197 -0
- asc_appstore_tools-0.1.28/docs/tutorials/03-iap-and-subscriptions.zh-CN.md +200 -0
- asc_appstore_tools-0.1.28/docs/tutorials/04-whats-new-and-urls.md +97 -0
- asc_appstore_tools-0.1.28/docs/tutorials/04-whats-new-and-urls.zh-CN.md +97 -0
- asc_appstore_tools-0.1.28/docs/tutorials/05-build-and-deploy.md +174 -0
- asc_appstore_tools-0.1.28/docs/tutorials/05-build-and-deploy.zh-CN.md +174 -0
- asc_appstore_tools-0.1.28/docs/tutorials/06-multi-app-profiles.md +141 -0
- asc_appstore_tools-0.1.28/docs/tutorials/06-multi-app-profiles.zh-CN.md +141 -0
- asc_appstore_tools-0.1.28/docs/tutorials/07-guard-security.md +119 -0
- asc_appstore_tools-0.1.28/docs/tutorials/07-guard-security.zh-CN.md +119 -0
- asc_appstore_tools-0.1.28/docs/tutorials/08-ci-cd.md +202 -0
- asc_appstore_tools-0.1.28/docs/tutorials/08-ci-cd.zh-CN.md +202 -0
- asc_appstore_tools-0.1.28/docs/tutorials/README.md +22 -0
- asc_appstore_tools-0.1.28/docs/tutorials/README.zh-CN.md +22 -0
- asc_appstore_tools-0.1.28/docs/web-task-log-stability-verification.md +335 -0
- asc_appstore_tools-0.1.28/frontend/index.html +13 -0
- asc_appstore_tools-0.1.28/frontend/package-lock.json +5040 -0
- asc_appstore_tools-0.1.28/frontend/package.json +33 -0
- asc_appstore_tools-0.1.28/frontend/src/App.vue +19 -0
- asc_appstore_tools-0.1.28/frontend/src/api/http.ts +119 -0
- asc_appstore_tools-0.1.28/frontend/src/api/types.ts +32 -0
- asc_appstore_tools-0.1.28/frontend/src/auto-imports.d.ts +10 -0
- asc_appstore_tools-0.1.28/frontend/src/components/AgentPanel.vue +1617 -0
- asc_appstore_tools-0.1.28/frontend/src/components/AppSidebar.vue +385 -0
- asc_appstore_tools-0.1.28/frontend/src/components/AppTopbar.vue +185 -0
- asc_appstore_tools-0.1.28/frontend/src/components/BuildStageProgress.vue +273 -0
- asc_appstore_tools-0.1.28/frontend/src/components/ExampleHelp.vue +236 -0
- asc_appstore_tools-0.1.28/frontend/src/components/FileBrowser.vue +93 -0
- asc_appstore_tools-0.1.28/frontend/src/components/ImageViewer.vue +127 -0
- asc_appstore_tools-0.1.28/frontend/src/components/LocalePicker.vue +74 -0
- asc_appstore_tools-0.1.28/frontend/src/components/LocaleSelectTabs.vue +183 -0
- asc_appstore_tools-0.1.28/frontend/src/components/PageLoading.vue +109 -0
- asc_appstore_tools-0.1.28/frontend/src/components/RightRail.vue +194 -0
- asc_appstore_tools-0.1.28/frontend/src/components/TaskLogPanel.vue +203 -0
- asc_appstore_tools-0.1.28/frontend/src/components/TaskRunBar.vue +273 -0
- asc_appstore_tools-0.1.28/frontend/src/components.d.ts +55 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/agentAttachments.ts +157 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/agentStream.ts +369 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useAddProfile.ts +11 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useAgent.ts +539 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useAgentContext.ts +48 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useAppLocales.ts +88 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useBrowse.ts +66 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useCompareSession.ts +132 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useFormMemory.ts +460 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useFormPaths.ts +29 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useIapWorkflow.ts +506 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useImageViewer.ts +32 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useListingScope.ts +284 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useListingWorkflow.ts +427 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useLocaleCatalog.ts +133 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useProfile.ts +24 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useRightRail.ts +126 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useTaskLog.ts +333 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useTaskPagePhase.ts +217 -0
- asc_appstore_tools-0.1.28/frontend/src/composables/useUpdateRestart.ts +114 -0
- asc_appstore_tools-0.1.28/frontend/src/env.d.ts +13 -0
- asc_appstore_tools-0.1.28/frontend/src/i18n/index.ts +11 -0
- asc_appstore_tools-0.1.28/frontend/src/layouts/AppShell.vue +77 -0
- asc_appstore_tools-0.1.28/frontend/src/main.ts +126 -0
- asc_appstore_tools-0.1.28/frontend/src/router/index.ts +51 -0
- asc_appstore_tools-0.1.28/frontend/src/styles/tdesign-overrides.css +344 -0
- asc_appstore_tools-0.1.28/frontend/src/styles/tokens.css +320 -0
- asc_appstore_tools-0.1.28/frontend/src/utils/listingMedia.ts +23 -0
- asc_appstore_tools-0.1.28/frontend/src/utils/logLevel.ts +47 -0
- asc_appstore_tools-0.1.28/frontend/src/views/BuildView.vue +611 -0
- asc_appstore_tools-0.1.28/frontend/src/views/DashboardView.vue +786 -0
- asc_appstore_tools-0.1.28/frontend/src/views/GuardView.vue +9 -0
- asc_appstore_tools-0.1.28/frontend/src/views/IapView.vue +219 -0
- asc_appstore_tools-0.1.28/frontend/src/views/ListingView.vue +237 -0
- asc_appstore_tools-0.1.28/frontend/src/views/ProfilesView.vue +9 -0
- asc_appstore_tools-0.1.28/frontend/src/views/SettingsView.vue +9 -0
- asc_appstore_tools-0.1.28/frontend/src/views/UpdateView.vue +9 -0
- asc_appstore_tools-0.1.28/frontend/src/views/UrlsView.vue +156 -0
- asc_appstore_tools-0.1.28/frontend/src/views/WhatsNewView.vue +339 -0
- asc_appstore_tools-0.1.28/frontend/src/views/iap/CreateStep.vue +343 -0
- asc_appstore_tools-0.1.28/frontend/src/views/iap/EditStep.vue +868 -0
- asc_appstore_tools-0.1.28/frontend/src/views/iap/IapEditorDialog.vue +586 -0
- asc_appstore_tools-0.1.28/frontend/src/views/iap/IapReviewThumb.vue +98 -0
- asc_appstore_tools-0.1.28/frontend/src/views/iap/UploadStep.vue +329 -0
- asc_appstore_tools-0.1.28/frontend/src/views/listing/CreateStep.vue +195 -0
- asc_appstore_tools-0.1.28/frontend/src/views/listing/ListingEditorDialog.vue +254 -0
- asc_appstore_tools-0.1.28/frontend/src/views/listing/PreviewStep.vue +969 -0
- asc_appstore_tools-0.1.28/frontend/src/views/listing/UploadStep.vue +251 -0
- asc_appstore_tools-0.1.28/frontend/src/views/system/GuardTab.vue +521 -0
- asc_appstore_tools-0.1.28/frontend/src/views/system/ProfilesTab.vue +687 -0
- asc_appstore_tools-0.1.28/frontend/src/views/system/SettingsTab.vue +516 -0
- asc_appstore_tools-0.1.28/frontend/src/views/system/UpdateTab.vue +286 -0
- asc_appstore_tools-0.1.28/frontend/tsconfig.app.json +29 -0
- asc_appstore_tools-0.1.28/frontend/tsconfig.json +29 -0
- asc_appstore_tools-0.1.28/frontend/tsconfig.node.json +16 -0
- asc_appstore_tools-0.1.28/frontend/vite.config.ts +46 -0
- asc_appstore_tools-0.1.28/generate_placeholder_screenshots.py +67 -0
- asc_appstore_tools-0.1.28/install.sh +324 -0
- asc_appstore_tools-0.1.28/operateLog.md +118 -0
- asc_appstore_tools-0.1.28/pyproject.toml +57 -0
- asc_appstore_tools-0.1.28/scripts/build_web_assets.sh +33 -0
- asc_appstore_tools-0.1.28/skills-lock.json +10 -0
- asc_appstore_tools-0.1.28/src/asc/__init__.py +3 -0
- asc_appstore_tools-0.1.28/src/asc/__main__.py +14 -0
- asc_appstore_tools-0.1.28/src/asc/api.py +1379 -0
- asc_appstore_tools-0.1.28/src/asc/cli.py +287 -0
- asc_appstore_tools-0.1.28/src/asc/commands/__init__.py +1 -0
- asc_appstore_tools-0.1.28/src/asc/commands/app_config.py +774 -0
- asc_appstore_tools-0.1.28/src/asc/commands/build.py +900 -0
- asc_appstore_tools-0.1.28/src/asc/commands/build_inputs.py +704 -0
- asc_appstore_tools-0.1.28/src/asc/commands/guard_cmd.py +178 -0
- asc_appstore_tools-0.1.28/src/asc/commands/iap.py +642 -0
- asc_appstore_tools-0.1.28/src/asc/commands/iap_review_screenshots.py +487 -0
- asc_appstore_tools-0.1.28/src/asc/commands/metadata.py +1022 -0
- asc_appstore_tools-0.1.28/src/asc/commands/screenshots.py +637 -0
- asc_appstore_tools-0.1.28/src/asc/commands/subscriptions.py +888 -0
- asc_appstore_tools-0.1.28/src/asc/commands/uninstall_cmd.py +30 -0
- asc_appstore_tools-0.1.28/src/asc/commands/update_cmd.py +699 -0
- asc_appstore_tools-0.1.28/src/asc/commands/web_cmd.py +195 -0
- asc_appstore_tools-0.1.28/src/asc/commands/whats_new.py +533 -0
- asc_appstore_tools-0.1.28/src/asc/config.py +473 -0
- asc_appstore_tools-0.1.28/src/asc/constants.py +131 -0
- asc_appstore_tools-0.1.28/src/asc/data/asc_locales.json +52 -0
- asc_appstore_tools-0.1.28/src/asc/error_handler.py +357 -0
- asc_appstore_tools-0.1.28/src/asc/exceptions.py +36 -0
- asc_appstore_tools-0.1.28/src/asc/guard.py +670 -0
- asc_appstore_tools-0.1.28/src/asc/i18n.py +692 -0
- asc_appstore_tools-0.1.28/src/asc/iap/__init__.py +51 -0
- asc_appstore_tools-0.1.28/src/asc/iap/diff.py +152 -0
- asc_appstore_tools-0.1.28/src/asc/iap/infer.py +498 -0
- asc_appstore_tools-0.1.28/src/asc/iap/local.py +355 -0
- asc_appstore_tools-0.1.28/src/asc/iap/models.py +237 -0
- asc_appstore_tools-0.1.28/src/asc/iap/remote.py +345 -0
- asc_appstore_tools-0.1.28/src/asc/iap/translator.py +139 -0
- asc_appstore_tools-0.1.28/src/asc/iap/validate.py +272 -0
- asc_appstore_tools-0.1.28/src/asc/listing/__init__.py +17 -0
- asc_appstore_tools-0.1.28/src/asc/listing/diff.py +49 -0
- asc_appstore_tools-0.1.28/src/asc/listing/filters.py +37 -0
- asc_appstore_tools-0.1.28/src/asc/listing/local.py +400 -0
- asc_appstore_tools-0.1.28/src/asc/listing/models.py +71 -0
- asc_appstore_tools-0.1.28/src/asc/listing/remote.py +377 -0
- asc_appstore_tools-0.1.28/src/asc/listing/translator.py +201 -0
- asc_appstore_tools-0.1.28/src/asc/llm.py +264 -0
- asc_appstore_tools-0.1.28/src/asc/llm_presets.py +246 -0
- asc_appstore_tools-0.1.28/src/asc/locales_catalog.py +78 -0
- asc_appstore_tools-0.1.28/src/asc/progress.py +362 -0
- asc_appstore_tools-0.1.28/src/asc/reporting.py +1314 -0
- asc_appstore_tools-0.1.28/src/asc/services/__init__.py +1 -0
- asc_appstore_tools-0.1.28/src/asc/services/translator.py +92 -0
- asc_appstore_tools-0.1.28/src/asc/templates/__init__.py +0 -0
- asc_appstore_tools-0.1.28/src/asc/templates/iap_packages.json +64 -0
- asc_appstore_tools-0.1.28/src/asc/templates/iap_review/premium_monthly.png +0 -0
- asc_appstore_tools-0.1.28/src/asc/utils.py +562 -0
- asc_appstore_tools-0.1.28/src/asc/web/__init__.py +1 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent.py +827 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_agui.py +312 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_asc.py +72 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_attachments.py +285 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_classify.py +172 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_context.py +125 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_domain.py +281 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_knowledge.py +267 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_redact.py +47 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_rerun.py +237 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_store.py +502 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_tools.py +1828 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_vision.py +89 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_workflow.py +127 -0
- asc_appstore_tools-0.1.28/src/asc/web/agent_workspace.py +643 -0
- asc_appstore_tools-0.1.28/src/asc/web/auth.py +129 -0
- asc_appstore_tools-0.1.28/src/asc/web/daemon.py +565 -0
- asc_appstore_tools-0.1.28/src/asc/web/dashboard.py +139 -0
- asc_appstore_tools-0.1.28/src/asc/web/i18n.py +80 -0
- asc_appstore_tools-0.1.28/src/asc/web/input.css +3 -0
- asc_appstore_tools-0.1.28/src/asc/web/knowledge/INDEX.md +22 -0
- asc_appstore_tools-0.1.28/src/asc/web/knowledge/__init__.py +1 -0
- asc_appstore_tools-0.1.28/src/asc/web/knowledge/iap.md +134 -0
- asc_appstore_tools-0.1.28/src/asc/web/knowledge/listing.md +110 -0
- asc_appstore_tools-0.1.28/src/asc/web/knowledge/locales.md +110 -0
- asc_appstore_tools-0.1.28/src/asc/web/knowledge/pitfalls.md +42 -0
- asc_appstore_tools-0.1.28/src/asc/web/knowledge/screenshots.md +54 -0
- asc_appstore_tools-0.1.28/src/asc/web/knowledge/version.md +64 -0
- asc_appstore_tools-0.1.28/src/asc/web/locales/en.json +1020 -0
- asc_appstore_tools-0.1.28/src/asc/web/locales/zh.json +1020 -0
- asc_appstore_tools-0.1.28/src/asc/web/notifications.py +328 -0
- asc_appstore_tools-0.1.28/src/asc/web/profile_context.py +51 -0
- asc_appstore_tools-0.1.28/src/asc/web/profile_select.py +36 -0
- asc_appstore_tools-0.1.28/src/asc/web/routes_agent.py +582 -0
- asc_appstore_tools-0.1.28/src/asc/web/routes_api.py +2781 -0
- asc_appstore_tools-0.1.28/src/asc/web/routes_iap.py +927 -0
- asc_appstore_tools-0.1.28/src/asc/web/routes_listing.py +1132 -0
- asc_appstore_tools-0.1.28/src/asc/web/security.py +138 -0
- asc_appstore_tools-0.1.28/src/asc/web/server.py +122 -0
- asc_appstore_tools-0.1.28/src/asc/web/sse.py +83 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/.gitkeep +1 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/SOURCES.md +12 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/jizBRFtNs2ka5fXjeivQ4LroWlx-6zUTjnTLgNs.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/jizBRFtNs2ka5fXjeivQ4LroWlx-6zsTjnTLgNuZ5w.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/jizHRFtNs2ka5fXjeivQ4LroWlx-6zAjgn7Motmp5r61.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/jizHRFtNs2ka5fXjeivQ4LroWlx-6zAjjH7Motmp5g.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/rP2Hp2ywxg089UriCZ2IHTWEBlwu8Q.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/rP2Hp2ywxg089UriCZOIHTWEBlw.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/rP2Wp2ywxg089UriCZaSExdy3sGt9zz86GPwyKK58UfivUw4aw.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/rP2Wp2ywxg089UriCZaSExdy3sGt9zz86GPwyKy58UfivUw.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/uU9NCBsR6Z2vfE9aq3bh09SDqFGedCMX.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/uU9NCBsR6Z2vfE9aq3bh0NSDqFGedCMX.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/uU9NCBsR6Z2vfE9aq3bh0dSDqFGedCMX.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/uU9NCBsR6Z2vfE9aq3bh2dSDqFGedCMX.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/uU9NCBsR6Z2vfE9aq3bh3dSDqFGedA.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/uU9NCBsR6Z2vfE9aq3bh3tSDqFGedCMX.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts/uU9NCBsR6Z2vfE9aq3bhZ_Wmh3mUfBsu_Q.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/fonts.css +333 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/logo.svg +13 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/spa/assets/ch-icon-B4_9eV4V.svg +1 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/spa/assets/ch-icon-CtSW7tPu.woff2 +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/spa/assets/ch-icon-DGULDtm-.ttf +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/spa/assets/ch-icon-Dx62VQ3Q.woff +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/spa/assets/ch-icon-cTDLe1xS.eot +0 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/spa/assets/index-BuJWlawP.css +1 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/spa/assets/index-aN2lcRdA.js +13803 -0
- asc_appstore_tools-0.1.28/src/asc/web/static/spa/index.html +14 -0
- asc_appstore_tools-0.1.28/src/asc/web/tailwind.config.js +39 -0
- asc_appstore_tools-0.1.28/src/asc/web/task_runner.py +694 -0
- asc_appstore_tools-0.1.28/src/asc/web/tasks.py +1795 -0
- asc_appstore_tools-0.1.28/src/asc/web/thumbs.py +87 -0
- asc_appstore_tools-0.1.28/src/asc/web/webhook_clients.py +99 -0
- asc_appstore_tools-0.1.28/tests/__init__.py +0 -0
- asc_appstore_tools-0.1.28/tests/conftest.py +372 -0
- asc_appstore_tools-0.1.28/tests/test_agent_agui.py +236 -0
- asc_appstore_tools-0.1.28/tests/test_agent_apply.py +604 -0
- asc_appstore_tools-0.1.28/tests/test_agent_asc.py +282 -0
- asc_appstore_tools-0.1.28/tests/test_agent_attachments.py +224 -0
- asc_appstore_tools-0.1.28/tests/test_agent_classify.py +121 -0
- asc_appstore_tools-0.1.28/tests/test_agent_compact.py +146 -0
- asc_appstore_tools-0.1.28/tests/test_agent_context.py +130 -0
- asc_appstore_tools-0.1.28/tests/test_agent_domain.py +308 -0
- asc_appstore_tools-0.1.28/tests/test_agent_knowledge.py +167 -0
- asc_appstore_tools-0.1.28/tests/test_agent_metrics.py +380 -0
- asc_appstore_tools-0.1.28/tests/test_agent_redact.py +28 -0
- asc_appstore_tools-0.1.28/tests/test_agent_skill_workflow.py +245 -0
- asc_appstore_tools-0.1.28/tests/test_agent_store.py +194 -0
- asc_appstore_tools-0.1.28/tests/test_agent_tool_cards.py +534 -0
- asc_appstore_tools-0.1.28/tests/test_agent_tools.py +654 -0
- asc_appstore_tools-0.1.28/tests/test_agent_vision.py +170 -0
- asc_appstore_tools-0.1.28/tests/test_agent_workflow.py +356 -0
- asc_appstore_tools-0.1.28/tests/test_agent_workspace_tools.py +426 -0
- asc_appstore_tools-0.1.28/tests/test_api.py +841 -0
- asc_appstore_tools-0.1.28/tests/test_app_config.py +392 -0
- asc_appstore_tools-0.1.28/tests/test_app_import.py +305 -0
- asc_appstore_tools-0.1.28/tests/test_build.py +957 -0
- asc_appstore_tools-0.1.28/tests/test_build_inputs.py +1007 -0
- asc_appstore_tools-0.1.28/tests/test_build_progress.py +655 -0
- asc_appstore_tools-0.1.28/tests/test_check_cmd.py +56 -0
- asc_appstore_tools-0.1.28/tests/test_cli_no_agent.py +14 -0
- asc_appstore_tools-0.1.28/tests/test_cli_version.py +156 -0
- asc_appstore_tools-0.1.28/tests/test_config_llm.py +112 -0
- asc_appstore_tools-0.1.28/tests/test_constants.py +129 -0
- asc_appstore_tools-0.1.28/tests/test_error_handler.py +294 -0
- asc_appstore_tools-0.1.28/tests/test_guard.py +787 -0
- asc_appstore_tools-0.1.28/tests/test_guard_cmd.py +182 -0
- asc_appstore_tools-0.1.28/tests/test_guard_integration.py +54 -0
- asc_appstore_tools-0.1.28/tests/test_iap_core.py +983 -0
- asc_appstore_tools-0.1.28/tests/test_iap_diff.py +91 -0
- asc_appstore_tools-0.1.28/tests/test_iap_dispatch.py +49 -0
- asc_appstore_tools-0.1.28/tests/test_iap_infer.py +74 -0
- asc_appstore_tools-0.1.28/tests/test_iap_local.py +192 -0
- asc_appstore_tools-0.1.28/tests/test_iap_remote.py +88 -0
- asc_appstore_tools-0.1.28/tests/test_iap_review_screenshots.py +448 -0
- asc_appstore_tools-0.1.28/tests/test_iap_review_screenshots_cli.py +181 -0
- asc_appstore_tools-0.1.28/tests/test_iap_translate.py +85 -0
- asc_appstore_tools-0.1.28/tests/test_init_cmd.py +146 -0
- asc_appstore_tools-0.1.28/tests/test_install_cmd.py +99 -0
- asc_appstore_tools-0.1.28/tests/test_listing_diff.py +63 -0
- asc_appstore_tools-0.1.28/tests/test_listing_filters.py +58 -0
- asc_appstore_tools-0.1.28/tests/test_listing_local.py +413 -0
- asc_appstore_tools-0.1.28/tests/test_listing_remote.py +272 -0
- asc_appstore_tools-0.1.28/tests/test_listing_translator.py +69 -0
- asc_appstore_tools-0.1.28/tests/test_llm.py +375 -0
- asc_appstore_tools-0.1.28/tests/test_llm_presets.py +166 -0
- asc_appstore_tools-0.1.28/tests/test_locales_catalog.py +99 -0
- asc_appstore_tools-0.1.28/tests/test_metadata.py +330 -0
- asc_appstore_tools-0.1.28/tests/test_no_progress_protocol.py +11 -0
- asc_appstore_tools-0.1.28/tests/test_profile_select.py +87 -0
- asc_appstore_tools-0.1.28/tests/test_progress.py +115 -0
- asc_appstore_tools-0.1.28/tests/test_project_dependencies.py +51 -0
- asc_appstore_tools-0.1.28/tests/test_reporting.py +1338 -0
- asc_appstore_tools-0.1.28/tests/test_screenshots.py +698 -0
- asc_appstore_tools-0.1.28/tests/test_screenshots_filter.py +30 -0
- asc_appstore_tools-0.1.28/tests/test_subscriptions_core.py +1010 -0
- asc_appstore_tools-0.1.28/tests/test_subscriptions_validation.py +171 -0
- asc_appstore_tools-0.1.28/tests/test_translator.py +267 -0
- asc_appstore_tools-0.1.28/tests/test_uninstall_cmd.py +49 -0
- asc_appstore_tools-0.1.28/tests/test_update_cmd.py +530 -0
- asc_appstore_tools-0.1.28/tests/test_urls_update_progress.py +1143 -0
- asc_appstore_tools-0.1.28/tests/test_utils.py +554 -0
- asc_appstore_tools-0.1.28/tests/test_verbose_plumbing.py +135 -0
- asc_appstore_tools-0.1.28/tests/test_web_agent.py +551 -0
- asc_appstore_tools-0.1.28/tests/test_web_agent_e2e.py +799 -0
- asc_appstore_tools-0.1.28/tests/test_web_agent_routes.py +472 -0
- asc_appstore_tools-0.1.28/tests/test_web_app_locales.py +168 -0
- asc_appstore_tools-0.1.28/tests/test_web_auth.py +195 -0
- asc_appstore_tools-0.1.28/tests/test_web_bootstrap.py +111 -0
- asc_appstore_tools-0.1.28/tests/test_web_build_scan_sidebar.py +95 -0
- asc_appstore_tools-0.1.28/tests/test_web_cmd.py +172 -0
- asc_appstore_tools-0.1.28/tests/test_web_confirm.py +77 -0
- asc_appstore_tools-0.1.28/tests/test_web_daemon.py +354 -0
- asc_appstore_tools-0.1.28/tests/test_web_dashboard.py +207 -0
- asc_appstore_tools-0.1.28/tests/test_web_form_memory.py +349 -0
- asc_appstore_tools-0.1.28/tests/test_web_i18n.py +463 -0
- asc_appstore_tools-0.1.28/tests/test_web_iap.py +710 -0
- asc_appstore_tools-0.1.28/tests/test_web_listing.py +1400 -0
- asc_appstore_tools-0.1.28/tests/test_web_loading_indicators.py +243 -0
- asc_appstore_tools-0.1.28/tests/test_web_metadata_locales.py +416 -0
- asc_appstore_tools-0.1.28/tests/test_web_notifications.py +596 -0
- asc_appstore_tools-0.1.28/tests/test_web_security.py +252 -0
- asc_appstore_tools-0.1.28/tests/test_web_server.py +2726 -0
- asc_appstore_tools-0.1.28/tests/test_web_sse.py +87 -0
- asc_appstore_tools-0.1.28/tests/test_web_system_pages.py +393 -0
- asc_appstore_tools-0.1.28/tests/test_web_task_log_fidelity.py +576 -0
- asc_appstore_tools-0.1.28/tests/test_web_task_log_levels.py +91 -0
- asc_appstore_tools-0.1.28/tests/test_web_task_log_switch.py +128 -0
- asc_appstore_tools-0.1.28/tests/test_web_task_page_phase.py +118 -0
- asc_appstore_tools-0.1.28/tests/test_web_task_page_state.py +138 -0
- asc_appstore_tools-0.1.28/tests/test_web_task_replay.py +142 -0
- asc_appstore_tools-0.1.28/tests/test_web_task_runner.py +535 -0
- asc_appstore_tools-0.1.28/tests/test_web_tasks.py +2132 -0
- asc_appstore_tools-0.1.28/tests/test_web_thumbs.py +94 -0
- asc_appstore_tools-0.1.28/tests/test_web_webhook_settings.py +312 -0
- asc_appstore_tools-0.1.28/tests/test_web_whats_new.py +364 -0
- asc_appstore_tools-0.1.28/tests/test_whats_new.py +82 -0
- asc_appstore_tools-0.1.28/tests/test_whats_new_e2e.py +222 -0
- asc_appstore_tools-0.1.28/tests/test_whats_new_progress.py +154 -0
- asc_appstore_tools-0.1.28/tests/test_whats_new_translate.py +254 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-design
|
|
3
|
+
description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill for UI tasks that build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
|
|
4
|
+
license: Complete terms in LICENSE.txt
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Use this skill to design and implement bold, production-ready frontends when the request involves UI. Combine it with repository UI/UX requirements (`docs/ui/requirements.md`) and existing design systems.
|
|
8
|
+
|
|
9
|
+
## Design Thinking
|
|
10
|
+
|
|
11
|
+
Before coding, lock in a clear, memorable direction:
|
|
12
|
+
- **Purpose**: What problem does the interface solve? Who uses it?
|
|
13
|
+
- **Tone**: Commit to a strong aesthetic (e.g., brutalist/raw, retro-futuristic, editorial/magazine, luxury/refined, playful/toy-like, industrial/utilitarian). Choose one and execute it precisely.
|
|
14
|
+
- **Constraints**: Framework, performance, accessibility, build tooling.
|
|
15
|
+
- **Differentiation**: What makes this unforgettable? Aim for a single standout idea.
|
|
16
|
+
|
|
17
|
+
Then build working code (HTML/CSS/JS, React, templ, etc.) that is:
|
|
18
|
+
- Production-grade and functional
|
|
19
|
+
- Visually striking with a cohesive point of view
|
|
20
|
+
- Meticulous in spacing, motion, and detail
|
|
21
|
+
|
|
22
|
+
## Frontend Aesthetics Guidelines
|
|
23
|
+
|
|
24
|
+
- **Typography**: Pick characterful, non-default fonts; pair a distinctive display font with a refined body font. Avoid Arial/Inter/Roboto/system defaults.
|
|
25
|
+
- **Color & Theme**: Define a strong palette with CSS variables; prefer decisive dominance + accents over timid mixes.
|
|
26
|
+
- **Motion**: Use meaningful animations (page load, staggered reveals, purposeful hover states). Prefer CSS; keep motion aligned to the chosen aesthetic.
|
|
27
|
+
- **Spatial Composition**: Consider asymmetry, overlap, generous negative space or intentional density. Avoid cookie-cutter layouts.
|
|
28
|
+
- **Background & Details**: Build atmosphere with gradients, meshes, textures, layered transparencies, dramatic shadows, decorative borders, custom cursors, or grain overlays—matching the aesthetic.
|
|
29
|
+
|
|
30
|
+
Avoid generic AI-looking designs (purple-on-white defaults, predictable layouts, overused fonts, interchangeable components). Each UI should feel intentionally crafted for its context. Match implementation effort to the chosen style: maximalism demands rich effects; minimalism demands precise restraint.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
pull_request:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
test:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
strategy:
|
|
11
|
+
fail-fast: false
|
|
12
|
+
matrix:
|
|
13
|
+
python-version: ["3.9", "3.12"]
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Set up Python
|
|
18
|
+
uses: actions/setup-python@v5
|
|
19
|
+
with:
|
|
20
|
+
python-version: ${{ matrix.python-version }}
|
|
21
|
+
|
|
22
|
+
- name: Install package
|
|
23
|
+
run: pip install -e ".[dev]"
|
|
24
|
+
|
|
25
|
+
- name: Check package version alignment
|
|
26
|
+
run: pytest tests/test_project_dependencies.py::test_package_version_matches_cli_version -q
|
|
27
|
+
|
|
28
|
+
- name: Run tests
|
|
29
|
+
run: pytest -q -m "not e2e"
|
|
30
|
+
|
|
31
|
+
frontend:
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v4
|
|
35
|
+
|
|
36
|
+
- name: Set up Node
|
|
37
|
+
uses: actions/setup-node@v4
|
|
38
|
+
with:
|
|
39
|
+
node-version: "20"
|
|
40
|
+
cache: npm
|
|
41
|
+
cache-dependency-path: frontend/package-lock.json
|
|
42
|
+
|
|
43
|
+
- name: Install and build SPA
|
|
44
|
+
working-directory: frontend
|
|
45
|
+
run: |
|
|
46
|
+
npm ci
|
|
47
|
+
npm run build
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*.*.*"
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
publish:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Set up Python
|
|
18
|
+
uses: actions/setup-python@v5
|
|
19
|
+
with:
|
|
20
|
+
python-version: "3.11"
|
|
21
|
+
|
|
22
|
+
- name: Install build tools
|
|
23
|
+
run: pip install build twine
|
|
24
|
+
|
|
25
|
+
- name: Build package
|
|
26
|
+
run: python -m build
|
|
27
|
+
|
|
28
|
+
- name: Publish to PyPI
|
|
29
|
+
env:
|
|
30
|
+
TWINE_USERNAME: __token__
|
|
31
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
32
|
+
run: twine upload dist/*
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
stages:
|
|
2
|
+
- test
|
|
3
|
+
|
|
4
|
+
variables:
|
|
5
|
+
PIP_DISABLE_PIP_VERSION_CHECK: "1"
|
|
6
|
+
|
|
7
|
+
pytest:
|
|
8
|
+
stage: test
|
|
9
|
+
image: python:3.12-bookworm
|
|
10
|
+
script:
|
|
11
|
+
- pip install -e ".[dev]"
|
|
12
|
+
- pytest tests/test_project_dependencies.py::test_package_version_matches_cli_version -q
|
|
13
|
+
- pytest -q -m "not e2e"
|
|
14
|
+
|
|
15
|
+
frontend:
|
|
16
|
+
stage: test
|
|
17
|
+
image: node:20-bookworm
|
|
18
|
+
script:
|
|
19
|
+
- cd frontend
|
|
20
|
+
- npm ci
|
|
21
|
+
- npm run build
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Repository Guidelines
|
|
2
|
+
|
|
3
|
+
## Project Structure & Module Organization
|
|
4
|
+
|
|
5
|
+
This repository is a Python CLI package for App Store Connect automation. Source code lives in `src/asc/`, with Typer CLI wiring in `cli.py`, API access in `api.py`, configuration in `config.py`, and feature commands under `src/asc/commands/`. Template upload data lives in `src/asc/templates/`. Tests are in `tests/` and mirror feature areas with files such as `test_api.py`, `test_metadata.py`, and `test_build.py`. Example user data and screenshots are under `data/`; tutorials and architecture notes are in `docs/` and `ARCHITECTURE.md`.
|
|
6
|
+
|
|
7
|
+
## Build, Test, and Development Commands
|
|
8
|
+
|
|
9
|
+
Install the package for local development:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pip install -e ".[dev]"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Run the test suite:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pytest
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Build distributable packages:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
python -m build
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Run the CLI locally after editable install:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
asc --help
|
|
31
|
+
asc --app myapp upload --dry-run
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Publishing is handled by `.github/workflows/publish.yml` when a `v*.*.*` tag is pushed.
|
|
35
|
+
|
|
36
|
+
## Coding Style & Naming Conventions
|
|
37
|
+
|
|
38
|
+
Use Python 3.9+ syntax and keep modules focused on one command or concern. Follow existing style: 4-space indentation, `from __future__ import annotations` in modules that already use it, snake_case functions and variables, PascalCase classes, and `test_*` test functions. Prefer small command handlers that delegate shared behavior to reusable core functions. Keep user-facing CLI text compatible with the existing Chinese/English i18n pattern in `src/asc/i18n.py`.
|
|
39
|
+
|
|
40
|
+
## Testing Guidelines
|
|
41
|
+
|
|
42
|
+
Tests use `pytest` and mocks for App Store Connect interactions by default. Add or update tests in `tests/` for any behavior change, especially command dispatch, config precedence, API retries, guard behavior, and upload validation. Use `tmp_path`, fixtures, and `unittest.mock` rather than real credentials or network calls. Live ASC tests must remain opt-in, for example via `ASC_TEST_LIVE=1`.
|
|
43
|
+
|
|
44
|
+
## Commit & Pull Request Guidelines
|
|
45
|
+
|
|
46
|
+
Recent commits use concise Conventional Commit-style messages, such as `feat(update): add --version and --branch options`, `fix(update): skip editable check...`, `test: add tests...`, and `docs: add...`. Follow that pattern.
|
|
47
|
+
|
|
48
|
+
Pull requests should include a clear summary, linked issue when applicable, test results (`pytest` output is sufficient), and screenshots or sample CLI output for user-visible command changes. Note any credential, App Store state, or CI implications.
|
|
49
|
+
|
|
50
|
+
## Security & Configuration Tips
|
|
51
|
+
|
|
52
|
+
Never commit real `.p8` keys, `.env` files, local profiles, or generated credentials. Local project config belongs in `.asc/config.toml`; reusable profiles and keys are stored under `~/.config/asc/`. Use dry-run commands before uploads that modify metadata, screenshots, IAP, or release state.
|