@xaviele/ag-kit 1.0.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 +20 -0
- package/bin/cli.js +63 -0
- package/package.json +27 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/template/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/template/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
- package/template/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
- package/template/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
- package/template/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/template/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
- package/template/.agent/ARCHITECTURE.md +281 -0
- package/template/.agent/agents/backend-specialist.md +263 -0
- package/template/.agent/agents/code-archaeologist.md +106 -0
- package/template/.agent/agents/database-architect.md +226 -0
- package/template/.agent/agents/debugger.md +225 -0
- package/template/.agent/agents/devops-engineer.md +242 -0
- package/template/.agent/agents/documentation-writer.md +104 -0
- package/template/.agent/agents/explorer-agent.md +73 -0
- package/template/.agent/agents/frontend-specialist.md +593 -0
- package/template/.agent/agents/game-developer.md +162 -0
- package/template/.agent/agents/mobile-developer.md +377 -0
- package/template/.agent/agents/orchestrator.md +416 -0
- package/template/.agent/agents/penetration-tester.md +188 -0
- package/template/.agent/agents/performance-optimizer.md +187 -0
- package/template/.agent/agents/product-manager.md +112 -0
- package/template/.agent/agents/product-owner.md +95 -0
- package/template/.agent/agents/project-planner.md +406 -0
- package/template/.agent/agents/qa-automation-engineer.md +103 -0
- package/template/.agent/agents/security-auditor.md +170 -0
- package/template/.agent/agents/seo-specialist.md +111 -0
- package/template/.agent/agents/test-engineer.md +158 -0
- package/template/.agent/mcp_config.json +24 -0
- package/template/.agent/rules/GEMINI.md +273 -0
- package/template/.agent/scripts/auto_preview.py +148 -0
- package/template/.agent/scripts/checklist.py +217 -0
- package/template/.agent/scripts/session_manager.py +120 -0
- package/template/.agent/scripts/verify_all.py +327 -0
- package/template/.agent/skills/adr/SKILL.md +282 -0
- package/template/.agent/skills/alirezarezvani-code-to-prd/SKILL.md +499 -0
- package/template/.agent/skills/api-patterns/SKILL.md +81 -0
- package/template/.agent/skills/api-patterns/api-style.md +42 -0
- package/template/.agent/skills/api-patterns/auth.md +24 -0
- package/template/.agent/skills/api-patterns/documentation.md +26 -0
- package/template/.agent/skills/api-patterns/graphql.md +41 -0
- package/template/.agent/skills/api-patterns/rate-limiting.md +31 -0
- package/template/.agent/skills/api-patterns/response.md +37 -0
- package/template/.agent/skills/api-patterns/rest.md +40 -0
- package/template/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/template/.agent/skills/api-patterns/security-testing.md +122 -0
- package/template/.agent/skills/api-patterns/trpc.md +41 -0
- package/template/.agent/skills/api-patterns/versioning.md +22 -0
- package/template/.agent/skills/app-builder/SKILL.md +75 -0
- package/template/.agent/skills/app-builder/agent-coordination.md +71 -0
- package/template/.agent/skills/app-builder/feature-building.md +53 -0
- package/template/.agent/skills/app-builder/project-detection.md +34 -0
- package/template/.agent/skills/app-builder/scaffolding.md +118 -0
- package/template/.agent/skills/app-builder/tech-stack.md +41 -0
- package/template/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/template/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/template/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/template/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/template/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/template/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/template/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/template/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/template/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/template/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/template/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/template/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/template/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/template/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/template/.agent/skills/architecture/SKILL.md +55 -0
- package/template/.agent/skills/architecture/context-discovery.md +43 -0
- package/template/.agent/skills/architecture/examples.md +94 -0
- package/template/.agent/skills/architecture/pattern-selection.md +68 -0
- package/template/.agent/skills/architecture/patterns-reference.md +50 -0
- package/template/.agent/skills/architecture/trade-off-analysis.md +77 -0
- package/template/.agent/skills/bash-linux/SKILL.md +199 -0
- package/template/.agent/skills/behavioral-modes/SKILL.md +242 -0
- package/template/.agent/skills/brainstorming/SKILL.md +163 -0
- package/template/.agent/skills/brainstorming/dynamic-questioning.md +350 -0
- package/template/.agent/skills/claudekit-ai-multimodal/SKILL.md +353 -0
- package/template/.agent/skills/clean-code/SKILL.md +201 -0
- package/template/.agent/skills/code-review-checklist/SKILL.md +109 -0
- package/template/.agent/skills/database-design/SKILL.md +52 -0
- package/template/.agent/skills/database-design/database-selection.md +43 -0
- package/template/.agent/skills/database-design/indexing.md +39 -0
- package/template/.agent/skills/database-design/migrations.md +48 -0
- package/template/.agent/skills/database-design/optimization.md +36 -0
- package/template/.agent/skills/database-design/orm-selection.md +30 -0
- package/template/.agent/skills/database-design/schema-design.md +56 -0
- package/template/.agent/skills/database-design/scripts/schema_validator.py +172 -0
- package/template/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/template/.agent/skills/doc.md +177 -0
- package/template/.agent/skills/document/SKILL.md +250 -0
- package/template/.agent/skills/documentation-templates/SKILL.md +194 -0
- package/template/.agent/skills/frontend-design/SKILL.md +452 -0
- package/template/.agent/skills/frontend-design/animation-guide.md +331 -0
- package/template/.agent/skills/frontend-design/color-system.md +311 -0
- package/template/.agent/skills/frontend-design/decision-trees.md +418 -0
- package/template/.agent/skills/frontend-design/motion-graphics.md +306 -0
- package/template/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/template/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/template/.agent/skills/frontend-design/typography-system.md +345 -0
- package/template/.agent/skills/frontend-design/ux-psychology.md +1116 -0
- package/template/.agent/skills/frontend-design/visual-effects.md +383 -0
- package/template/.agent/skills/game-development/2d-games/SKILL.md +119 -0
- package/template/.agent/skills/game-development/3d-games/SKILL.md +135 -0
- package/template/.agent/skills/game-development/SKILL.md +167 -0
- package/template/.agent/skills/game-development/game-art/SKILL.md +185 -0
- package/template/.agent/skills/game-development/game-audio/SKILL.md +190 -0
- package/template/.agent/skills/game-development/game-design/SKILL.md +129 -0
- package/template/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
- package/template/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
- package/template/.agent/skills/game-development/pc-games/SKILL.md +144 -0
- package/template/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
- package/template/.agent/skills/game-development/web-games/SKILL.md +150 -0
- package/template/.agent/skills/geo-fundamentals/SKILL.md +156 -0
- package/template/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/template/.agent/skills/i18n-localization/SKILL.md +154 -0
- package/template/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/template/.agent/skills/intelligent-routing/SKILL.md +335 -0
- package/template/.agent/skills/lint-and-validate/SKILL.md +45 -0
- package/template/.agent/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/template/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/template/.agent/skills/mcp-builder/SKILL.md +176 -0
- package/template/.agent/skills/mindrally-meta-prompt/SKILL.md +129 -0
- package/template/.agent/skills/mobile-design/SKILL.md +394 -0
- package/template/.agent/skills/mobile-design/decision-trees.md +516 -0
- package/template/.agent/skills/mobile-design/mobile-backend.md +491 -0
- package/template/.agent/skills/mobile-design/mobile-color-system.md +420 -0
- package/template/.agent/skills/mobile-design/mobile-debugging.md +122 -0
- package/template/.agent/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/template/.agent/skills/mobile-design/mobile-navigation.md +458 -0
- package/template/.agent/skills/mobile-design/mobile-performance.md +767 -0
- package/template/.agent/skills/mobile-design/mobile-testing.md +356 -0
- package/template/.agent/skills/mobile-design/mobile-typography.md +433 -0
- package/template/.agent/skills/mobile-design/platform-android.md +666 -0
- package/template/.agent/skills/mobile-design/platform-ios.md +561 -0
- package/template/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/template/.agent/skills/mobile-design/touch-psychology.md +537 -0
- package/template/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +351 -0
- package/template/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/template/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/template/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/template/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/template/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/template/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/template/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/template/.agent/skills/nextjs-react-expert/9-cache-components.md +103 -0
- package/template/.agent/skills/nextjs-react-expert/SKILL.md +293 -0
- package/template/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/template/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/template/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
- package/template/.agent/skills/parallel-agents/SKILL.md +175 -0
- package/template/.agent/skills/performance-profiling/SKILL.md +143 -0
- package/template/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/template/.agent/skills/plan-writing/SKILL.md +152 -0
- package/template/.agent/skills/pm-skills-create-prd/SKILL.md +88 -0
- package/template/.agent/skills/powershell-windows/SKILL.md +167 -0
- package/template/.agent/skills/prompt-engineering/SKILL.md +566 -0
- package/template/.agent/skills/python-patterns/SKILL.md +441 -0
- package/template/.agent/skills/red-team-tactics/SKILL.md +199 -0
- package/template/.agent/skills/rust-pro/SKILL.md +176 -0
- package/template/.agent/skills/seo-fundamentals/SKILL.md +129 -0
- package/template/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/template/.agent/skills/server-management/SKILL.md +161 -0
- package/template/.agent/skills/skills/adr/SKILL.md +282 -0
- package/template/.agent/skills/skills/alirezarezvani-code-to-prd/SKILL.md +499 -0
- package/template/.agent/skills/skills/claudekit-ai-multimodal/SKILL.md +353 -0
- package/template/.agent/skills/skills/document/SKILL.md +250 -0
- package/template/.agent/skills/skills/mindrally-meta-prompt/SKILL.md +129 -0
- package/template/.agent/skills/skills/pm-skills-create-prd/SKILL.md +88 -0
- package/template/.agent/skills/skills/prompt-engineering/SKILL.md +566 -0
- package/template/.agent/skills/systematic-debugging/SKILL.md +109 -0
- package/template/.agent/skills/tailwind-patterns/SKILL.md +269 -0
- package/template/.agent/skills/tdd-workflow/SKILL.md +149 -0
- package/template/.agent/skills/testing-patterns/SKILL.md +178 -0
- package/template/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/template/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
- package/template/.agent/skills/vulnerability-scanner/checklists.md +121 -0
- package/template/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/template/.agent/skills/web-design-guidelines/SKILL.md +57 -0
- package/template/.agent/skills/webapp-testing/SKILL.md +187 -0
- package/template/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/template/.agent/skills/zalo-mini-app/SKILL.md +81 -0
- package/template/.agent/skills/zalo-mini-app/references/api-device.md +121 -0
- package/template/.agent/skills/zalo-mini-app/references/api-overview.md +88 -0
- package/template/.agent/skills/zalo-mini-app/references/api-storage.md +74 -0
- package/template/.agent/skills/zalo-mini-app/references/api-ui.md +124 -0
- package/template/.agent/skills/zalo-mini-app/references/api-user.md +113 -0
- package/template/.agent/skills/zalo-mini-app/references/api-zalo.md +127 -0
- package/template/.agent/skills/zalo-mini-app/references/design-guidelines.md +70 -0
- package/template/.agent/skills/zalo-mini-app/references/getting-started.md +95 -0
- package/template/.agent/skills/zalo-mini-app/references/react-best-practices.md +790 -0
- package/template/.agent/skills/zalo-mini-app/references/web-design-guidelines.md +591 -0
- package/template/.agent/skills/zalo-mini-app/references/zaui-display.md +103 -0
- package/template/.agent/skills/zalo-mini-app/references/zaui-form.md +108 -0
- package/template/.agent/skills/zalo-mini-app/references/zaui-layout.md +94 -0
- package/template/.agent/skills/zalo-mini-app/references/zaui-overlay.md +98 -0
- package/template/.agent/skills/zalo-mini-app/references/zaui-overview.md +82 -0
- package/template/.agent/workflows/brainstorm.md +113 -0
- package/template/.agent/workflows/create.md +59 -0
- package/template/.agent/workflows/debug.md +103 -0
- package/template/.agent/workflows/deploy.md +176 -0
- package/template/.agent/workflows/enhance.md +63 -0
- package/template/.agent/workflows/orchestrate.md +237 -0
- package/template/.agent/workflows/plan.md +89 -0
- package/template/.agent/workflows/preview.md +81 -0
- package/template/.agent/workflows/status.md +86 -0
- package/template/.agent/workflows/test.md +144 -0
- package/template/.agent/workflows/ui-ux-pro-max.md +296 -0
- package/template/.agent/workflows/veo-marketing.md +46 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# User & Authorization APIs
|
|
2
|
+
|
|
3
|
+
## authorize
|
|
4
|
+
Request permission for sensitive data.
|
|
5
|
+
```js
|
|
6
|
+
import { authorize } from "zmp-sdk/apis";
|
|
7
|
+
|
|
8
|
+
await authorize({ scopes: ["scope.userInfo", "scope.userPhonenumber"] });
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Scopes:
|
|
12
|
+
- `scope.userInfo` - Name & avatar
|
|
13
|
+
- `scope.userPhonenumber` - Phone number
|
|
14
|
+
- `scope.userLocation` - GPS location
|
|
15
|
+
|
|
16
|
+
## getUserID
|
|
17
|
+
Get unique user identifier (no permission required).
|
|
18
|
+
```js
|
|
19
|
+
import { getUserID } from "zmp-sdk/apis";
|
|
20
|
+
|
|
21
|
+
const userID = await getUserID({});
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## getUserInfo
|
|
25
|
+
Get user profile with name and avatar.
|
|
26
|
+
```js
|
|
27
|
+
import { getUserInfo } from "zmp-sdk/apis";
|
|
28
|
+
|
|
29
|
+
const { userInfo } = await getUserInfo({
|
|
30
|
+
autoRequestPermission: true, // Auto-show permission dialog
|
|
31
|
+
avatarType: "normal" // "small" | "normal" | "large"
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// userInfo: { id, name, avatar, followedOA, idByOA, isSensitive }
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Handle permission denied:
|
|
38
|
+
```js
|
|
39
|
+
try {
|
|
40
|
+
const { userInfo } = await getUserInfo();
|
|
41
|
+
} catch (error) {
|
|
42
|
+
if (error.code === -1401) {
|
|
43
|
+
// User denied permission
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## getPhoneNumber
|
|
49
|
+
Get user phone number (requires permission).
|
|
50
|
+
```js
|
|
51
|
+
import { getPhoneNumber } from "zmp-sdk/apis";
|
|
52
|
+
|
|
53
|
+
const { number } = await getPhoneNumber({});
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## getAccessToken
|
|
57
|
+
Get token for backend verification.
|
|
58
|
+
```js
|
|
59
|
+
import { getAccessToken } from "zmp-sdk/apis";
|
|
60
|
+
|
|
61
|
+
const { accessToken } = await getAccessToken({});
|
|
62
|
+
// Send to backend for verification via Open API
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## getSetting
|
|
66
|
+
Check current permission status.
|
|
67
|
+
```js
|
|
68
|
+
import { getSetting } from "zmp-sdk/apis";
|
|
69
|
+
|
|
70
|
+
const settings = await getSetting({});
|
|
71
|
+
// { "scope.userInfo": true, "scope.userPhonenumber": false }
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## getAppInfo
|
|
75
|
+
Get Mini App information.
|
|
76
|
+
```js
|
|
77
|
+
import { getAppInfo } from "zmp-sdk/apis";
|
|
78
|
+
|
|
79
|
+
const { appId, appName, version } = await getAppInfo({});
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## getSystemInfo
|
|
83
|
+
Get device and Zalo app info.
|
|
84
|
+
```js
|
|
85
|
+
import { getSystemInfo } from "zmp-sdk/apis";
|
|
86
|
+
|
|
87
|
+
const {
|
|
88
|
+
platform, // "android" | "ios"
|
|
89
|
+
zaloVersion,
|
|
90
|
+
language,
|
|
91
|
+
screenWidth,
|
|
92
|
+
screenHeight,
|
|
93
|
+
statusBarHeight,
|
|
94
|
+
safeAreaInsets
|
|
95
|
+
} = await getSystemInfo({});
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## getDeviceIdAsync
|
|
99
|
+
Get unique device identifier.
|
|
100
|
+
```js
|
|
101
|
+
import { getDeviceIdAsync } from "zmp-sdk/apis";
|
|
102
|
+
|
|
103
|
+
const deviceId = await getDeviceIdAsync({});
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## getContextAsync
|
|
107
|
+
Get context when Mini App was opened.
|
|
108
|
+
```js
|
|
109
|
+
import { getContextAsync } from "zmp-sdk/apis";
|
|
110
|
+
|
|
111
|
+
const context = await getContextAsync({});
|
|
112
|
+
// { entryPoint, referrer, ... }
|
|
113
|
+
```
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Zalo Platform APIs
|
|
2
|
+
|
|
3
|
+
## Official Account (OA)
|
|
4
|
+
|
|
5
|
+
### followOA / unfollowOA
|
|
6
|
+
Prompt user to follow/unfollow OA.
|
|
7
|
+
```js
|
|
8
|
+
import { followOA, unfollowOA } from "zmp-sdk/apis";
|
|
9
|
+
|
|
10
|
+
await followOA({ oaId: "your-oa-id" });
|
|
11
|
+
await unfollowOA({ oaId: "your-oa-id" });
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### interactOA
|
|
15
|
+
Open OA interaction options.
|
|
16
|
+
```js
|
|
17
|
+
import { interactOA } from "zmp-sdk/apis";
|
|
18
|
+
|
|
19
|
+
await interactOA({ oaId: "your-oa-id" });
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### viewOAQr
|
|
23
|
+
Display OA QR code.
|
|
24
|
+
```js
|
|
25
|
+
import { viewOAQr } from "zmp-sdk/apis";
|
|
26
|
+
|
|
27
|
+
viewOAQr({ oaId: "your-oa-id" });
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Chat & Social
|
|
31
|
+
|
|
32
|
+
### openChat
|
|
33
|
+
Open chat with user or OA.
|
|
34
|
+
```js
|
|
35
|
+
import { openChat } from "zmp-sdk/apis";
|
|
36
|
+
|
|
37
|
+
openChat({
|
|
38
|
+
type: "oa", // "user" | "oa"
|
|
39
|
+
id: "oa-or-user-id",
|
|
40
|
+
message: "Hello!"
|
|
41
|
+
});
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### openProfile
|
|
45
|
+
Open user/OA profile.
|
|
46
|
+
```js
|
|
47
|
+
import { openProfile } from "zmp-sdk/apis";
|
|
48
|
+
|
|
49
|
+
openProfile({
|
|
50
|
+
type: "user",
|
|
51
|
+
id: "user-id"
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### openProfilePicker
|
|
56
|
+
Open friend selector.
|
|
57
|
+
```js
|
|
58
|
+
import { openProfilePicker } from "zmp-sdk/apis";
|
|
59
|
+
|
|
60
|
+
const { users } = await openProfilePicker({
|
|
61
|
+
maxSelection: 5
|
|
62
|
+
});
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### openShareSheet
|
|
66
|
+
Share content.
|
|
67
|
+
```js
|
|
68
|
+
import { openShareSheet } from "zmp-sdk/apis";
|
|
69
|
+
|
|
70
|
+
openShareSheet({
|
|
71
|
+
type: "link",
|
|
72
|
+
data: {
|
|
73
|
+
link: "https://zalo.me/s/app-id",
|
|
74
|
+
title: "Check this out!",
|
|
75
|
+
description: "Amazing mini app",
|
|
76
|
+
thumbnail: "https://example.com/thumb.jpg"
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### openPostFeed
|
|
82
|
+
Post to Zalo feed.
|
|
83
|
+
```js
|
|
84
|
+
import { openPostFeed } from "zmp-sdk/apis";
|
|
85
|
+
|
|
86
|
+
openPostFeed({
|
|
87
|
+
type: "link",
|
|
88
|
+
data: {
|
|
89
|
+
link: "https://example.com",
|
|
90
|
+
title: "My Post"
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## App Features
|
|
96
|
+
|
|
97
|
+
### createShortcut
|
|
98
|
+
Add shortcut to home screen.
|
|
99
|
+
```js
|
|
100
|
+
import { createShortcut } from "zmp-sdk/apis";
|
|
101
|
+
|
|
102
|
+
await createShortcut({});
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### addRating
|
|
106
|
+
Prompt user to rate mini app.
|
|
107
|
+
```js
|
|
108
|
+
import { addRating } from "zmp-sdk/apis";
|
|
109
|
+
|
|
110
|
+
addRating({});
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### minimizeApp
|
|
114
|
+
Minimize to background.
|
|
115
|
+
```js
|
|
116
|
+
import { minimizeApp } from "zmp-sdk/apis";
|
|
117
|
+
|
|
118
|
+
minimizeApp({});
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### favoriteApp
|
|
122
|
+
Add to favorites.
|
|
123
|
+
```js
|
|
124
|
+
import { favoriteApp } from "zmp-sdk/apis";
|
|
125
|
+
|
|
126
|
+
favoriteApp({});
|
|
127
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Design Guidelines
|
|
2
|
+
|
|
3
|
+
## Core Principles
|
|
4
|
+
1. **Fast & Friendly** - Quick, intuitive experience
|
|
5
|
+
2. **Clear & Consistent** - Easy navigation, unified UI
|
|
6
|
+
3. **User Control** - Undo actions, feedback, status display
|
|
7
|
+
4. **Reduce Cognitive Load** - Minimize required actions
|
|
8
|
+
|
|
9
|
+
## Navigation
|
|
10
|
+
|
|
11
|
+
### Header Bar
|
|
12
|
+
- Fixed header with back/home button on left
|
|
13
|
+
- Menu button (fixed by Zalo) on top right
|
|
14
|
+
- Don't place elements under menu button
|
|
15
|
+
|
|
16
|
+
### Bottom Navigation
|
|
17
|
+
- Max 4 tabs recommended
|
|
18
|
+
- Use for main sections only
|
|
19
|
+
|
|
20
|
+
## Loading States
|
|
21
|
+
1. **Splash Loading** - Initial app load (auto by Zalo)
|
|
22
|
+
2. **Progress Bar** - Below action bar for page loads
|
|
23
|
+
3. **Modal Loading** - Full overlay for operations
|
|
24
|
+
|
|
25
|
+
## Feedback
|
|
26
|
+
- Show toast for success/error states
|
|
27
|
+
- Provide empty states for no content
|
|
28
|
+
- Show error states with retry options
|
|
29
|
+
|
|
30
|
+
## Colors
|
|
31
|
+
| Type | Color |
|
|
32
|
+
|------|-------|
|
|
33
|
+
| Primary | #006AF5 |
|
|
34
|
+
| Success | #00C853 |
|
|
35
|
+
| Warning | #FFA000 |
|
|
36
|
+
| Error | #FF3B30 |
|
|
37
|
+
| Text Primary | #141415 |
|
|
38
|
+
| Text Secondary | #767A7F |
|
|
39
|
+
| Background | #F4F5F6 |
|
|
40
|
+
|
|
41
|
+
## Typography
|
|
42
|
+
- Title: 20px, Bold
|
|
43
|
+
- Subtitle: 16px, Medium
|
|
44
|
+
- Body: 14px, Regular
|
|
45
|
+
- Caption: 12px, Regular
|
|
46
|
+
|
|
47
|
+
## Spacing
|
|
48
|
+
Base unit: 4px (U1)
|
|
49
|
+
- Component padding: 12-16px
|
|
50
|
+
- Section spacing: 24px
|
|
51
|
+
- Screen margin: 16px
|
|
52
|
+
|
|
53
|
+
## Corner Radius
|
|
54
|
+
- Buttons: 8px
|
|
55
|
+
- Cards: 12px
|
|
56
|
+
- Modals: 16px
|
|
57
|
+
- Avatar: 20% of width
|
|
58
|
+
|
|
59
|
+
## Performance
|
|
60
|
+
- Bundle size: <10MB
|
|
61
|
+
- First load: <3 seconds
|
|
62
|
+
- Optimize images, lazy load
|
|
63
|
+
|
|
64
|
+
## Review Checklist
|
|
65
|
+
- [ ] Logo, name, description accurate
|
|
66
|
+
- [ ] No 3rd party links without approval
|
|
67
|
+
- [ ] No crashes, smooth performance
|
|
68
|
+
- [ ] Good UI/UX following guidelines
|
|
69
|
+
- [ ] Proper authentication
|
|
70
|
+
- [ ] No malicious code
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Getting Started with Zalo Mini App
|
|
2
|
+
|
|
3
|
+
## Prerequisites
|
|
4
|
+
- Node.js installed
|
|
5
|
+
- Zalo Developer account at [Zalo for Developers](https://developers.zalo.me/)
|
|
6
|
+
|
|
7
|
+
## Create Zalo App & Mini App
|
|
8
|
+
1. Login to [Zalo for Developers](https://developers.zalo.me/), create a Zalo App
|
|
9
|
+
2. In Settings, activate the app
|
|
10
|
+
3. Go to [Mini App Center](https://miniapp.zaloplatforms.com/), select Zalo App, create Mini App
|
|
11
|
+
4. Note the Mini App ID for development
|
|
12
|
+
|
|
13
|
+
## Install Dev Tools
|
|
14
|
+
```bash
|
|
15
|
+
npm install -g zmp-cli
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Create New Project
|
|
19
|
+
```bash
|
|
20
|
+
zmp create my-app
|
|
21
|
+
cd my-app
|
|
22
|
+
zmp start
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Project Structure
|
|
26
|
+
```
|
|
27
|
+
my-app/
|
|
28
|
+
├── src/
|
|
29
|
+
│ ├── pages/ # Page components
|
|
30
|
+
│ ├── components/ # Reusable components
|
|
31
|
+
│ └── app.js # Entry point
|
|
32
|
+
├── app-config.json # Mini App configuration
|
|
33
|
+
├── .env # Environment variables
|
|
34
|
+
└── package.json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## app-config.json
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"app": {
|
|
41
|
+
"title": "My App",
|
|
42
|
+
"headerColor": "#1843EF",
|
|
43
|
+
"headerTitle": "App Title",
|
|
44
|
+
"textColor": "white",
|
|
45
|
+
"leftButton": "back",
|
|
46
|
+
"statusBar": "normal",
|
|
47
|
+
"actionBarHidden": false
|
|
48
|
+
},
|
|
49
|
+
"listCSS": [],
|
|
50
|
+
"listSyncJS": [],
|
|
51
|
+
"listAsyncJS": []
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
| Field | Description |
|
|
56
|
+
|-------|-------------|
|
|
57
|
+
| headerColor | Navigation bar background color |
|
|
58
|
+
| headerTitle | Title displayed on navigation bar |
|
|
59
|
+
| textColor | Text color ("white" or "black") |
|
|
60
|
+
| leftButton | "back" or "home" |
|
|
61
|
+
| statusBar | "normal" or "fullscreen" |
|
|
62
|
+
| actionBarHidden | Hide navigation bar |
|
|
63
|
+
|
|
64
|
+
## Deploy & Test
|
|
65
|
+
```bash
|
|
66
|
+
zmp deploy # Deploy to testing
|
|
67
|
+
zmp login # Login to Zalo
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Test on Device
|
|
71
|
+
1. Open Zalo app
|
|
72
|
+
2. Scan QR code from Mini App Center
|
|
73
|
+
3. Or use link: `https://zalo.me/s/{mini-appId}`
|
|
74
|
+
|
|
75
|
+
## Convert Web App to Mini App
|
|
76
|
+
```bash
|
|
77
|
+
cd your-web-app
|
|
78
|
+
zmp init
|
|
79
|
+
# Select "Using ZMP to deploy only"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Update root element selector to `#app`:
|
|
83
|
+
```js
|
|
84
|
+
const root = createRoot(document.getElementById("app"));
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
For Vite, set `base: "./"` in vite.config.js.
|
|
88
|
+
For Webpack, use `window.APP_VERSION` for public path.
|
|
89
|
+
|
|
90
|
+
## Publishing
|
|
91
|
+
1. Go to Mini App Center > Version Management
|
|
92
|
+
2. Submit version for review
|
|
93
|
+
3. After approval, click Publish
|
|
94
|
+
|
|
95
|
+
See [design-guidelines.md](./design-guidelines.md) for UI requirements.
|