ae-tracking 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/README.md +50 -0
- package/dist/bin/ae-tracking.d.ts +2 -0
- package/dist/bin/ae-tracking.js +20 -0
- package/dist/scripts/postinstall.d.ts +1 -0
- package/dist/scripts/postinstall.js +17 -0
- package/dist/src/auth.d.ts +12 -0
- package/dist/src/auth.js +215 -0
- package/dist/src/cli/auth.d.ts +8 -0
- package/dist/src/cli/auth.js +81 -0
- package/dist/src/cli/code.d.ts +2 -0
- package/dist/src/cli/code.js +85 -0
- package/dist/src/cli/debug.d.ts +2 -0
- package/dist/src/cli/debug.js +152 -0
- package/dist/src/cli/home.d.ts +4 -0
- package/dist/src/cli/home.js +15 -0
- package/dist/src/cli/init.d.ts +14 -0
- package/dist/src/cli/init.js +107 -0
- package/dist/src/cli/package-root.d.ts +1 -0
- package/dist/src/cli/package-root.js +20 -0
- package/dist/src/cli/plan.d.ts +2 -0
- package/dist/src/cli/plan.js +242 -0
- package/dist/src/cli/wiki.d.ts +2 -0
- package/dist/src/cli/wiki.js +20 -0
- package/dist/src/client.d.ts +62 -0
- package/dist/src/client.js +56 -0
- package/dist/src/config.d.ts +4 -0
- package/dist/src/config.js +29 -0
- package/dist/src/plan/autotrack.d.ts +18 -0
- package/dist/src/plan/autotrack.js +350 -0
- package/dist/src/plan/conflict.d.ts +34 -0
- package/dist/src/plan/conflict.js +106 -0
- package/dist/src/plan/draft.d.ts +39 -0
- package/dist/src/plan/draft.js +104 -0
- package/dist/src/plan/fix.d.ts +32 -0
- package/dist/src/plan/fix.js +187 -0
- package/dist/src/plan/types.d.ts +57 -0
- package/dist/src/plan/types.js +1 -0
- package/dist/src/project-detect/detect.d.ts +2 -0
- package/dist/src/project-detect/detect.js +120 -0
- package/dist/src/project-detect/types.d.ts +9 -0
- package/dist/src/project-detect/types.js +1 -0
- package/dist/src/te-debug/client.d.ts +12 -0
- package/dist/src/te-debug/client.js +54 -0
- package/dist/src/te-debug/types.d.ts +16 -0
- package/dist/src/te-debug/types.js +1 -0
- package/dist/src/te-plan/fetch.d.ts +3 -0
- package/dist/src/te-plan/fetch.js +47 -0
- package/dist/src/te-plan/types.d.ts +7 -0
- package/dist/src/te-plan/types.js +1 -0
- package/dist/src/wiki/block-to-md.d.ts +74 -0
- package/dist/src/wiki/block-to-md.js +88 -0
- package/dist/src/wiki/crawler.d.ts +3 -0
- package/dist/src/wiki/crawler.js +71 -0
- package/dist/src/wiki/index-writer.d.ts +4 -0
- package/dist/src/wiki/index-writer.js +70 -0
- package/dist/src/wiki/slugify.d.ts +1 -0
- package/dist/src/wiki/slugify.js +11 -0
- package/dist/src/wiki/types.d.ts +29 -0
- package/dist/src/wiki/types.js +1 -0
- package/dist/src/wiki-query/query.d.ts +8 -0
- package/dist/src/wiki-query/query.js +32 -0
- package/dist/src/xlsx/read.d.ts +2 -0
- package/dist/src/xlsx/read.js +457 -0
- package/dist/src/xlsx/write.d.ts +3 -0
- package/dist/src/xlsx/write.js +251 -0
- package/package.json +47 -0
- package/skills/generate-tracking-code/SKILL.md +551 -0
- package/skills/generate-tracking-code/references/client-sdk-insert.md +92 -0
- package/skills/generate-tracking-code/references/datax-config.md +41 -0
- package/skills/generate-tracking-code/references/debug-script.md +99 -0
- package/skills/generate-tracking-code/references/logbus-config.md +224 -0
- package/skills/generate-tracking-code/references/modes.md +81 -0
- package/skills/generate-tracking-code/references/restful-call.md +34 -0
- package/skills/generate-tracking-code/references/sdk-index.md +123 -0
- package/skills/generate-tracking-code/references/server-sdk-insert.md +175 -0
- package/skills/generate-tracking-code/references/snippet-delivery.md +240 -0
- package/skills/generate-tracking-code/references/te-api.md +181 -0
- package/skills/generate-tracking-plan/SKILL.md +826 -0
- package/skills/generate-tracking-plan/references/autotrack-events.md +238 -0
- package/skills/generate-tracking-plan/references/te-api.md +97 -0
- package/skills/generate-tracking-plan/references/xlsx-schema.md +149 -0
- package/skills/te-wiki-synthesize/SKILL.md +142 -0
- package/wiki/te-docs/index.md +223 -0
- package/wiki/te-docs/log.md +28 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/345/211/215/345/207/206/345/244/207/345/267/245/344/275/234//346/225/260/346/215/256/350/247/204/345/210/231.md +379 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/345/211/215/345/207/206/345/244/207/345/267/245/344/275/234//347/224/250/346/210/267/350/257/206/345/210/253/350/247/204/345/210/231.md +461 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/345/211/215/345/207/206/345/244/207/345/267/245/344/275/234//351/242/204/347/275/256/345/261/236/346/200/247/344/270/216/347/263/273/347/273/237/345/255/227/346/256/265.md +634 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/345/211/215/345/207/206/345/244/207/345/267/245/344/275/234.md +190 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227/restful-api-/344/275/277/347/224/250/346/214/207/345/215/227.md +195 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227/sdk-information-collection-rules.md +63 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/205/263/344/272/216-gdpr.md +81 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//345/220/210/350/247/204/346/214/207/345/215/227.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//346/233/264/346/226/260/346/227/245/345/277/227.md +502 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227//344/270/211/346/226/271/346/225/260/346/215/256.md +367 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +117 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +96 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +947 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +686 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227.md +1126 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android.md +461 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//346/233/264/346/226/260/346/227/245/345/277/227-RCu1wk.md +64 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//346/233/264/346/226/260/346/227/245/345/277/227.md +167 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225-T57MwB.md +56 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +57 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227-JARDwp.md +455 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227.md +477 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c-Uicgw2.md +145 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c.md +253 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/h5-/344/270/216-app-sdk-/346/211/223/351/200/232.md +179 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//345/220/210/350/247/204/346/214/207/345/215/227.md +37 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//346/233/264/346/226/260/346/227/245/345/277/227.md +491 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227//344/270/211/346/226/271/346/225/260/346/215/256.md +154 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +148 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +92 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +479 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +587 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227.md +912 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//351/232/220/347/247/201/346/270/205/345/215/225.md +183 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios.md +397 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//345/220/210/350/247/204/346/214/207/345/215/227.md +39 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//346/233/264/346/226/260/346/227/245/345/277/227.md +239 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +55 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +113 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +267 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//350/277/233/351/230/266/346/214/207/345/215/227.md +455 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript.md +257 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/macos//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +77 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/macos//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +249 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/macos//350/277/233/351/230/266/346/214/207/345/215/227.md +738 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/macos.md +317 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//345/220/210/350/247/204/346/214/207/345/215/227.md +345 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//346/233/264/346/226/260/346/227/245/345/277/227.md +128 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +60 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +121 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +286 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227.md +408 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony.md +209 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/256/242/346/210/267/347/253/257-sdk-/345/270/270/350/247/201/351/227/256/351/242/230.md +72 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//345/220/210/350/247/204/346/214/207/345/215/227.md +56 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//346/233/264/346/226/260/346/227/245/345/277/227.md +313 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +78 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +58 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +192 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +301 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227.md +644 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217.md +440 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//345/220/210/350/247/204/346/214/207/345/215/227.md +35 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//346/233/264/346/226/260/346/227/245/345/277/227.md +49 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +53 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +32 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +65 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227.md +288 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua.md +236 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//345/220/210/350/247/204/346/214/207/345/215/227.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//346/233/264/346/226/260/346/227/245/345/277/227.md +122 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +27 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +53 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +177 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//350/277/233/351/230/266/346/214/207/345/215/227.md +368 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x.md +311 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//345/220/210/350/247/204/346/214/207/345/215/227.md +42 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//346/233/264/346/226/260/346/227/245/345/277/227.md +184 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +142 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +60 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +96 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +255 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//350/277/233/351/230/266/346/214/207/345/215/227.md +659 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator.md +213 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//345/220/210/350/247/204/346/214/207/345/215/227.md +39 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//346/233/264/346/226/260/346/227/245/345/277/227.md +42 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +59 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +37 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +50 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//350/277/233/351/230/266/346/214/207/345/215/227.md +281 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona.md +304 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//346/233/264/346/226/260/346/227/245/345/277/227.md +129 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +74 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +60 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +74 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +228 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227.md +640 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret.md +210 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//346/233/264/346/226/260/346/227/245/345/277/227.md +129 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +79 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +60 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +73 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +254 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227.md +626 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair.md +228 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//345/216/206/345/217/262/347/211/210/346/234/254-unity-sdk-/344/275/277/347/224/250/346/214/207/345/215/227.md +503 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//345/220/210/350/247/204/346/214/207/345/215/227.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//346/233/264/346/226/260/346/227/245/345/277/227.md +505 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//344/270/211/346/226/271/346/225/260/346/215/256.md +86 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//345/216/237/347/224/237-sdk-/345/217/257/346/217/222/346/213/224.md +44 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +55 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +53 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +156 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +293 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227.md +667 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity.md +203 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//345/220/210/350/247/204/346/214/207/345/215/227.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//346/233/264/346/226/260/346/227/245/345/277/227.md +209 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//350/277/233/351/230/266/346/214/207/345/215/227//344/270/211/346/226/271/346/225/260/346/215/256.md +152 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +41 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +81 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +181 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//350/277/233/351/230/266/346/214/207/345/215/227.md +346 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal.md +228 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216.md +20 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//345/220/210/350/247/204/346/214/207/345/215/227.md +37 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//346/233/264/346/226/260/346/227/245/345/277/227.md +201 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +139 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +65 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//350/277/233/351/230/266/346/214/207/345/215/227.md +356 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter.md +176 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//345/220/210/350/247/204/346/214/207/345/215/227.md +37 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//346/233/264/346/226/260/346/227/245/345/277/227.md +162 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +60 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +140 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +23 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//350/277/233/351/230/266/346/214/207/345/215/227.md +375 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native.md +176 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//346/233/264/346/226/260/346/227/245/345/277/227.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +96 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +48 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +57 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +68 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +249 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227.md +420 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app.md +193 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266.md +15 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk.md +35 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/225/260/346/215/256/345/257/274/345/205/245/filebeat-logstash-/344/275/277/347/224/250/346/214/207/345/215/227.md +638 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/225/260/346/215/256/345/257/274/345/205/245/logbus2-/344/275/277/347/224/250/346/214/207/345/215/227.md +1140 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/225/260/346/215/256/345/257/274/345/205/245/ta-datax-writer-/346/217/222/344/273/266/344/275/277/347/224/250/346/214/207/345/215/227.md +256 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/225/260/346/215/256/345/257/274/345/205/245.md +17 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/225/260/346/225/260/347/247/221/346/212/200sdk/351/232/220/347/247/201/345/243/260/346/230/216.md +298 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//346/233/264/346/226/260/346/227/245/345/277/227-HZrPwz.md +80 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//346/233/264/346/226/260/346/227/245/345/277/227-U1zKwj.md +108 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//346/233/264/346/226/260/346/227/245/345/277/227.md +114 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225-LEb9wx.md +46 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225-TfR3wg.md +46 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +93 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247-U1Qvwk.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247-X08Fw7.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227-Jc1dwk.md +245 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227-YGuuwc.md +237 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227.md +242 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c-D4KBwg.md +211 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c-HF7Dwv.md +169 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c.md +225 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/erlang//346/233/264/346/226/260/346/227/245/345/277/227.md +55 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/erlang//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +51 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/erlang//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/erlang//350/277/233/351/230/266/346/214/207/345/215/227.md +151 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/erlang.md +204 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/golang//346/233/264/346/226/260/346/227/245/345/277/227.md +135 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/golang//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +46 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/golang//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/golang//350/277/233/351/230/266/346/214/207/345/215/227.md +208 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/golang.md +193 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/java//346/233/264/346/226/260/346/227/245/345/277/227.md +138 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/java//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +52 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/java//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/java//350/277/233/351/230/266/346/214/207/345/215/227.md +289 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/java.md +214 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/lua//346/233/264/346/226/260/346/227/245/345/277/227.md +123 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/lua//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +57 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/lua//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/lua//350/277/233/351/230/266/346/214/207/345/215/227.md +234 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/lua.md +165 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/nodejs//346/233/264/346/226/260/346/227/245/345/277/227.md +89 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/nodejs//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +65 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/nodejs//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/nodejs//350/277/233/351/230/266/346/214/207/345/215/227.md +263 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/nodejs.md +161 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/php//346/233/264/346/226/260/346/227/245/345/277/227.md +86 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/php//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +48 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/php//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/php//350/277/233/351/230/266/346/214/207/345/215/227.md +269 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/php.md +206 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/python//346/233/264/346/226/260/346/227/245/345/277/227.md +155 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/python//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +47 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/python//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/python//350/277/233/351/230/266/346/214/207/345/215/227.md +274 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/python.md +162 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/ruby//346/233/264/346/226/260/346/227/245/345/277/227.md +53 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/ruby//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +50 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/ruby//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/ruby//350/277/233/351/230/266/346/214/207/345/215/227.md +226 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/ruby.md +165 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk.md +23 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227.md +64 -0
- package/wiki/te-docs/raw//350/277/233/351/230/266/346/225/260/346/215/256/347/261/273/345/236/213//345/217/257/346/233/264/346/226/260/344/272/213/344/273/266.md +109 -0
- package/wiki/te-docs/raw//350/277/233/351/230/266/346/225/260/346/215/256/347/261/273/345/236/213//351/246/226/346/254/241/344/272/213/344/273/266/346/240/241/351/252/214.md +88 -0
- package/wiki/te-docs/raw//350/277/233/351/230/266/346/225/260/346/215/256/347/261/273/345/236/213.md +22 -0
- package/wiki/te-docs/schema.md +17 -0
- package/wiki/te-docs/synthesis/batch-ingest-comparison.md +117 -0
- package/wiki/te-docs/synthesis/js-sdk-cheatsheet.md +136 -0
- package/wiki/te-docs/synthesis/restful-api-reference.md +142 -0
- package/wiki/te-docs/synthesis/sdk-selection.md +79 -0
- package/wiki/te-docs/synthesis/server-sdk-overview.md +124 -0
|
@@ -0,0 +1,551 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: generate-tracking-code
|
|
3
|
+
description: 交互式将 AE 埋点方案落为用户项目代码、LogBus2 配置或 debug 脚本。触发词:代码埋点、埋点代码、tracking code、埋点落地、logbus 配置、AE 上报代码。支持多端多平台独立选择输出方式(插入/片段),服务端默认 LoggerConsumer + LogBus2 架构。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# generate-tracking-code
|
|
7
|
+
|
|
8
|
+
## 何时触发
|
|
9
|
+
|
|
10
|
+
用户说"生成埋点代码 / 帮我做 web 端埋点 / 生成 logbus 配置 / 服务端上报代码" 时触发。支持多端多平台独立选择输出方式。
|
|
11
|
+
|
|
12
|
+
## Phase 0 — Anchor(每个问题单独一条消息)
|
|
13
|
+
|
|
14
|
+
### 前置:从 draft.json 读取已有配置
|
|
15
|
+
|
|
16
|
+
首先检查 `.ae-tracking/draft.json` 是否存在,读取已有配置:
|
|
17
|
+
|
|
18
|
+
| 配置项 | draft.json 字段 | 处理方式 |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| AE projectId | `meta.project_id` | 有值 → 确认;无值 → 询问 |
|
|
21
|
+
| AE web 地址 | `meta.host` | 有值 → 确认;无值 → 询问 |
|
|
22
|
+
| SDK 集成模式 | `meta.sdk_integration_mode` | 有值 → 直接使用 |
|
|
23
|
+
| 客户端 SDK 类型 | `meta.client_platforms`(优先)或 `meta.client_sdk_type` | 有值 → 直接使用 |
|
|
24
|
+
| 服务端语言 | `meta.server_language` | 有值 → 直接使用 |
|
|
25
|
+
| 用户体系 | `meta.user_identity` | 有值 → 直接使用 |
|
|
26
|
+
|
|
27
|
+
**多平台支持**:
|
|
28
|
+
- 若 `client_platforms` 存在(数组),则为多平台场景,需为每个平台生成代码
|
|
29
|
+
- 若只有 `client_sdk_type`,则为单平台(向后兼容)
|
|
30
|
+
- 示例:`client_platforms: ["android", "openharmony"]` → 生成 Android + OpenHarmony 代码
|
|
31
|
+
|
|
32
|
+
**开发语言支持**:
|
|
33
|
+
- Android SDK:支持 Java / Kotlin(可生成两种代码)
|
|
34
|
+
- iOS SDK:支持 Objective-C / Swift(可生成两种代码)
|
|
35
|
+
- 其他 SDK:固定语言,无需选择
|
|
36
|
+
|
|
37
|
+
**语言配置来源**:
|
|
38
|
+
- 优先读取 `meta.client_platform_languages`(如 `{"android": ["java", "kotlin"]}`)
|
|
39
|
+
- 若无配置,对于 Android/iOS 平台需追问用户选择
|
|
40
|
+
|
|
41
|
+
**确认流程**:
|
|
42
|
+
- 有值:问 **"确认使用 draft.json 中的配置:<值>?yes / 输入新值"**
|
|
43
|
+
- 用户 `yes` → 使用 draft 值
|
|
44
|
+
- 用户输入新值 → 更新 draft.json 并使用新值
|
|
45
|
+
|
|
46
|
+
### 需要询问的配置(如果 draft 中无值)
|
|
47
|
+
|
|
48
|
+
1. **SERVER_URL** — 数据上报地址(**与 web 地址不同**;请前往 AE 系统「项目管理」→「接入配置」→ 填写「公网地址」)
|
|
49
|
+
- ⚠️ 「公网地址」需要填写过才会显示,如果没填过不会显示此字段
|
|
50
|
+
- 解决方案:咨询运维获取地址,或**跳过此步骤**(代码中可暂时用 `SERVER_URL` 或 `PUSH_URL` 替代)
|
|
51
|
+
2. **appId** — 请前往 AE 系统「项目管理」→「接入配置」→ 复制「APP_ID」
|
|
52
|
+
|
|
53
|
+
**host 处理**(可选):
|
|
54
|
+
- 如果需要从 AE fetch plan(无本地 draft.json)→ 询问 host
|
|
55
|
+
- 如果已有本地 draft.json → host 不必须,仅在验证阶段提示用户打开 AE Debug 页面
|
|
56
|
+
|
|
57
|
+
### 如果只有 xlsx 文件(无 draft.json)
|
|
58
|
+
|
|
59
|
+
用户直接提供 xlsx 埋点方案文件(通过 `ae-tracking code import-xlsx` 命令或放在 `.ae-tracking/draft.xlsx`),则进入此流程:
|
|
60
|
+
|
|
61
|
+
**Step 1:解析 xlsx 文件**
|
|
62
|
+
|
|
63
|
+
执行以下命令解析 xlsx:
|
|
64
|
+
```bash
|
|
65
|
+
ae-tracking code import-xlsx --xlsx <xlsx路径> --out .ae-tracking/draft.json
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
此命令会:
|
|
69
|
+
1. 读取 xlsx 中的事件、事件属性、公共属性、用户属性
|
|
70
|
+
2. 根据事件 `platform` 字段推断 `sdk_integration_mode`
|
|
71
|
+
3. 输出 draft.json(meta 部分仅有 events 和 plan_name)
|
|
72
|
+
|
|
73
|
+
**Step 2:从 xlsx 可推断的信息**
|
|
74
|
+
|
|
75
|
+
| 字段 | 是否可推断 | 说明 |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| 事件列表 | ✅ | 从 `#事件数据` sheet |
|
|
78
|
+
| 事件属性池 | ✅ | 从 `#事件数据` sheet |
|
|
79
|
+
| 公共事件属性 | ✅ | 从 `#公共事件属性` sheet |
|
|
80
|
+
| 用户属性 | ✅ | 从 `#用户数据` sheet |
|
|
81
|
+
| sdk_integration_mode | ⚠️ 有限支持 | xlsx 的"采集端"列可推断(client/server/both),但若无该列则需询问 |
|
|
82
|
+
| client_platforms | ❌ | 需询问用户选择 |
|
|
83
|
+
| client_platform_languages | ❌ | 需询问用户选择(仅 Android/iOS) |
|
|
84
|
+
| server_language | ❌ | 需询问用户选择(仅 sdk_integration_mode 含 server) |
|
|
85
|
+
| user_identity | ❌ | 需询问用户选择 |
|
|
86
|
+
| host / project_id | ❌ | 需询问或跳过 |
|
|
87
|
+
|
|
88
|
+
**"采集端"列解析规则**:
|
|
89
|
+
- 空值 / 无此列 → 无法推断 platform,默认生成客户端代码(向后兼容)
|
|
90
|
+
- `客户端` / `client` → 仅客户端采集,解析为 `platform: "client"`
|
|
91
|
+
- `服务端` / `server` → 仅服务端采集,解析为 `platform: "server"`
|
|
92
|
+
- `客户端,服务端` / `client,server` / `服务端,客户端` / `server,client` → 两端都采集,解析为 `platform: "both"`
|
|
93
|
+
|
|
94
|
+
**内部表示**:xlsx 中的 "采集端" 值经过 `ae-tracking code import-xlsx` 解析后,统一转为 `platform` 字段的内部值:
|
|
95
|
+
- `client` → 客户端采集
|
|
96
|
+
- `server` → 服务端采集
|
|
97
|
+
- `both` → 两端都采集(xlsx 中是 "客户端,服务端" 或 "client,server")
|
|
98
|
+
|
|
99
|
+
**代码生成时的平台过滤**:
|
|
100
|
+
- 客户端代码:只生成 `platform === "client"` 或 `platform === "both"` 的事件
|
|
101
|
+
- 服务端代码:只生成 `platform === "server"` 或 `platform === "both"` 的事件
|
|
102
|
+
- 若 xlsx 无 platform 列,客户端和服务端代码都会生成(向后兼容)
|
|
103
|
+
|
|
104
|
+
**Step 3:询问缺失配置**
|
|
105
|
+
|
|
106
|
+
按顺序依次询问,每项单独一条消息:
|
|
107
|
+
|
|
108
|
+
1. **SDK 集成模式**:问 **"埋点通过客户端还是服务端上报?客户端 / 服务端 / 两者都有"**
|
|
109
|
+
|
|
110
|
+
2. **客户端平台**(仅 sdk_integration_mode 含 client):
|
|
111
|
+
问 **"这是什么平台的 App?"**
|
|
112
|
+
- Android / Android SDK
|
|
113
|
+
- iOS / iOS SDK
|
|
114
|
+
- OpenHarmony / OpenHarmony SDK
|
|
115
|
+
- Web / H5(JavaScript SDK)
|
|
116
|
+
- 微信小程序(小程序 SDK)
|
|
117
|
+
- 微信小游戏(小游戏 SDK)
|
|
118
|
+
- Unity 游戏(Unity SDK)
|
|
119
|
+
- Cocos 游戏(CocosCreator / Cocos2d-x / LayaAir)
|
|
120
|
+
- React Native / Flutter / uni-app
|
|
121
|
+
- 其他
|
|
122
|
+
|
|
123
|
+
→ 用户选择后,**仅当选择 Android 或 iOS 时**,追问:
|
|
124
|
+
- Android → 问 **"开发语言是什么?Java / Kotlin / 两者都支持"**
|
|
125
|
+
- iOS → 问 **"开发语言是什么?Objective-C / Swift / 两者都支持"**
|
|
126
|
+
|
|
127
|
+
3. **服务端语言**(仅 sdk_integration_mode 含 server):
|
|
128
|
+
问 **"服务端语言是什么?"**
|
|
129
|
+
- Java
|
|
130
|
+
- Python
|
|
131
|
+
- Go
|
|
132
|
+
- Node.js
|
|
133
|
+
- PHP
|
|
134
|
+
- C# / .NET
|
|
135
|
+
- 其他
|
|
136
|
+
|
|
137
|
+
4. **用户体系**:
|
|
138
|
+
- 账号 ID 来源:user_account / role_id / none
|
|
139
|
+
- 访客 ID 策略:auto / device_id / custom
|
|
140
|
+
|
|
141
|
+
5. **SERVER_URL / APP_ID**(如已配置则跳过)
|
|
142
|
+
|
|
143
|
+
**Step 4:合并配置并进入 Phase 1**
|
|
144
|
+
|
|
145
|
+
将询问结果写入 `.ae-tracking/draft.json` 的 meta 部分,然后进入 Phase 1 执行。
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### 如果无本地 plan 文件
|
|
150
|
+
|
|
151
|
+
如果没有 `.ae-tracking/draft.json` 或 `.ae-tracking/remote-plan.json`,需要:
|
|
152
|
+
|
|
153
|
+
1. **AE projectId** — 从 AE 后台获取
|
|
154
|
+
2. **AE web 地址** — 用于 fetch plan
|
|
155
|
+
3. 执行 `ae-tracking plan fetch` 获取埋点方案
|
|
156
|
+
|
|
157
|
+
**追问规则**(根据集成模式确定需要生成代码的端/平台):
|
|
158
|
+
|
|
159
|
+
| 集成模式 | 需要生成的端/平台 |
|
|
160
|
+
|---|---|
|
|
161
|
+
| `client_only` | 1 个客户端平台(从 plan 读取 `client_sdk_type` 或询问) |
|
|
162
|
+
| `server_only` | 1 个服务端语言(从 plan 读取 `server_language` 或询问) |
|
|
163
|
+
| `both` | 客户端平台 + 服务端语言(两者都需要) |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### 端/平台定义
|
|
168
|
+
|
|
169
|
+
**客户端平台**(对应客户端 SDK):
|
|
170
|
+
|
|
171
|
+
| plan 字段 | 平台 | SDK | 文档路径 |
|
|
172
|
+
|---|---|---|---|
|
|
173
|
+
| `android` | Android | Android SDK | `wiki/te-docs/raw/client/android/` |
|
|
174
|
+
| `ios` | iOS | iOS SDK | `wiki/te-docs/raw/client/ios/` |
|
|
175
|
+
| `openharmony` | OpenHarmony | OpenHarmony SDK | `wiki/te-docs/raw/client/openharmony/` |
|
|
176
|
+
| `javascript` | Web / H5 | JavaScript SDK | `wiki/te-docs/raw/client/js/` |
|
|
177
|
+
| `miniprogram` | 小程序 | 小程序 SDK | `wiki/te-docs/raw/client/miniprogram/` |
|
|
178
|
+
| `unity` | Unity | Unity SDK | `wiki/te-docs/raw/client/unity/` |
|
|
179
|
+
| `game_engine` | 游戏引擎 | Cocos / Laya / Unreal | 见 `references/sdk-index.md` |
|
|
180
|
+
|
|
181
|
+
**服务端语言**(对应服务端 SDK):
|
|
182
|
+
|
|
183
|
+
| plan 字段 | 语言 | SDK | 文档路径 |
|
|
184
|
+
|---|---|---|---|
|
|
185
|
+
| `java` | Java | Java SDK | `wiki/te-docs/raw/server/java/` |
|
|
186
|
+
| `python` | Python | Python SDK | `wiki/te-docs/raw/server/python/` |
|
|
187
|
+
| `go` | Go | Go SDK | `wiki/te-docs/raw/server/go/` |
|
|
188
|
+
| `nodejs` | Node.js | Node SDK | `wiki/te-docs/raw/server/node/` |
|
|
189
|
+
| `php` | PHP | PHP SDK | `wiki/te-docs/raw/server/php/` |
|
|
190
|
+
| `csharp` | C# | C# SDK | `wiki/te-docs/raw/server/csharp/` |
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
### 输出方式定义
|
|
195
|
+
|
|
196
|
+
每个端/平台可选择两种输出方式:
|
|
197
|
+
|
|
198
|
+
| 方式 | 说明 | 参数 | 产物 |
|
|
199
|
+
|---|---|---|---|
|
|
200
|
+
| **insert**(插入) | 直接 Edit 写入用户项目 | 需指定项目路径 | 代码写入指定目录 |
|
|
201
|
+
| **snippet**(片段) | markdown 打印 + 生成代码文件 | 无需路径 | `.ae-tracking/output/<platform>-sdk.<ext>` |
|
|
202
|
+
|
|
203
|
+
**服务端默认附加**:
|
|
204
|
+
- LoggerConsumer 代码(插入或片段,根据选择)
|
|
205
|
+
- LogBus2 配置文件(`.ae-tracking/output/daemon.json`)
|
|
206
|
+
- 官方文档链接:https://docs-v2.thinkingdata.cn/?version=latest&code=logbus2_installation
|
|
207
|
+
|
|
208
|
+
**独立选项**:
|
|
209
|
+
- `debug` — 校验脚本(生成测试上报代码)
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Phase 1 — Load plan
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
ae-tracking auth login --host <host>
|
|
217
|
+
ae-tracking auth status
|
|
218
|
+
ae-tracking plan fetch --project <projectId> --host <host> > .ae-tracking/remote-plan.json
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
失败降级:
|
|
222
|
+
- AE 无法访问 → 问用户是否用 `.ae-tracking/draft.json`(本地已有 plan)
|
|
223
|
+
- 两者都没有 → 终止,让用户先跑 `generate-tracking-plan`
|
|
224
|
+
|
|
225
|
+
**读取 SDK 集成配置**:
|
|
226
|
+
从 plan 文件中读取:
|
|
227
|
+
- `meta.sdk_integration_mode` — SDK 集成模式
|
|
228
|
+
- `meta.client_sdk_type` — 客户端 SDK 类型(如 `client_only` 或 `both`)
|
|
229
|
+
- `meta.server_language` — 服务端开发语言(如 `server_only` 或 `both`)
|
|
230
|
+
- `meta.user_identity` — 用户体系配置(用于生成 `login()` / `identify()` 调用)
|
|
231
|
+
|
|
232
|
+
**确定需要生成代码的端/平台列表**:
|
|
233
|
+
```
|
|
234
|
+
端/平台列表 = {
|
|
235
|
+
client: [client_sdk_type] // 如 ['android'] 或 ['javascript']
|
|
236
|
+
server: [server_language] // 如 ['java'] 或 ['python']
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Phase 2 — Route mode(选择输出方式)
|
|
243
|
+
|
|
244
|
+
### 2.1 展示端/平台列表
|
|
245
|
+
|
|
246
|
+
根据 Phase 1 读取的配置,展示需要生成代码的端/平台:
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
需要生成代码的端/平台:
|
|
250
|
+
|
|
251
|
+
客户端:
|
|
252
|
+
- android(Android SDK)
|
|
253
|
+
|
|
254
|
+
服务端:
|
|
255
|
+
- java(Java SDK,默认 LoggerConsumer + LogBus2)
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### 2.2 快捷选项
|
|
259
|
+
|
|
260
|
+
提供快捷选项,简化交互:
|
|
261
|
+
|
|
262
|
+
**选项 1:全都生成片段**
|
|
263
|
+
- 所有端/平台都选择 `snippet`
|
|
264
|
+
- 一次性输出 markdown + 多个代码文件 + LogBus2 配置
|
|
265
|
+
- 无需指定项目路径
|
|
266
|
+
|
|
267
|
+
**选项 2:逐个选择**
|
|
268
|
+
- 每个端/平台独立选择输出方式
|
|
269
|
+
|
|
270
|
+
### 2.3 逐个选择流程
|
|
271
|
+
|
|
272
|
+
如果用户选择「逐个选择」,按端/平台顺序询问:
|
|
273
|
+
|
|
274
|
+
**客户端平台询问**:
|
|
275
|
+
```
|
|
276
|
+
客户端 android 选择输出方式:
|
|
277
|
+
1. insert(插入)— 需指定项目路径
|
|
278
|
+
2. snippet(片段)— 无需路径,生成代码文件
|
|
279
|
+
|
|
280
|
+
请选择:insert / snippet
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
- 选 `insert` → 问 **"项目路径是什么?(绝对路径)"**
|
|
284
|
+
- 选 `snippet` → 无需额外参数
|
|
285
|
+
|
|
286
|
+
**服务端语言询问**:
|
|
287
|
+
```
|
|
288
|
+
服务端 java 选择输出方式:
|
|
289
|
+
1. insert(插入)— 需指定项目路径
|
|
290
|
+
2. snippet(片段)— 无需路径,生成代码文件
|
|
291
|
+
|
|
292
|
+
请选择:insert / snippet
|
|
293
|
+
|
|
294
|
+
(默认附加:LoggerConsumer + LogBus2 配置 + 官方文档链接)
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
- 选 `insert` → 问 **"项目路径是什么?(绝对路径)"**
|
|
298
|
+
- 选 `snippet` → 无需额外参数
|
|
299
|
+
- 服务端无论选择哪种,都额外生成 `.ae-tracking/output/daemon.json`
|
|
300
|
+
- **同步提供 LogBus2 官方文档链接**:https://docs-v2.thinkingdata.cn/?version=latest&code=logbus2_installation
|
|
301
|
+
|
|
302
|
+
### 2.4 独立选项
|
|
303
|
+
|
|
304
|
+
在端/平台选择完成后,询问:
|
|
305
|
+
|
|
306
|
+
**"是否需要生成 debug 校验脚本?yes / no"**
|
|
307
|
+
|
|
308
|
+
- `yes` → 生成 `.ae-tracking/output/te-debug.<ext>`
|
|
309
|
+
- `no` → 跳过
|
|
310
|
+
|
|
311
|
+
### 2.5 汇总选择结果
|
|
312
|
+
|
|
313
|
+
展示最终选择汇总:
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
输出方式汇总:
|
|
317
|
+
|
|
318
|
+
客户端 android:snippet(片段)
|
|
319
|
+
产物:.ae-tracking/output/android-sdk.java
|
|
320
|
+
|
|
321
|
+
服务端 java:snippet(片段)
|
|
322
|
+
产物:.ae-tracking/output/java-sdk.java
|
|
323
|
+
.ae-tracking/output/daemon.json
|
|
324
|
+
|
|
325
|
+
LogBus2 官方文档:https://docs-v2.thinkingdata.cn/?version=latest&code=logbus2_installation
|
|
326
|
+
|
|
327
|
+
独立选项:debug
|
|
328
|
+
产物:te-debug.java
|
|
329
|
+
|
|
330
|
+
确认?yes / no
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Phase 3 — Execute(按端/平台执行)
|
|
336
|
+
|
|
337
|
+
### 3.1 执行前检查
|
|
338
|
+
|
|
339
|
+
Phase 3 开始前检查:
|
|
340
|
+
```bash
|
|
341
|
+
test -z "$(git status --porcelain)" || echo "uncommitted changes present"
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
**处理规则**:
|
|
345
|
+
- 所有 `insert` 选择 → 必须检查 git 状态
|
|
346
|
+
- 有未提交改动 → 拒绝执行所有 `insert`,提示用户先 commit/stash
|
|
347
|
+
- `snippet` / `debug` → 无需检查(不写用户代码)
|
|
348
|
+
|
|
349
|
+
### 3.2 按端/平台分发执行
|
|
350
|
+
|
|
351
|
+
**事件平台过滤规则**(重要):
|
|
352
|
+
- xlsx "采集端" 列的值映射为 `platform` 字段:
|
|
353
|
+
- `客户端` / `client` → `platform: "client"`
|
|
354
|
+
- `服务端` / `server` → `platform: "server"`
|
|
355
|
+
- `客户端,服务端` / `client,server` → `platform: "both"`
|
|
356
|
+
- 客户端代码:只生成 `platform === "client"` 或 `platform === "both"` 的事件
|
|
357
|
+
- 服务端代码:只生成 `platform === "server"` 或 `platform === "both"` 的事件
|
|
358
|
+
- 若 xlsx 无 platform 列(早期方案),则生成全部事件(向后兼容)
|
|
359
|
+
- `platform === undefined`(xlsx 无此列)→ 两端代码都生成
|
|
360
|
+
|
|
361
|
+
**客户端代码生成**:
|
|
362
|
+
|
|
363
|
+
| 输出方式 | 执行流程 |
|
|
364
|
+
|---|---|
|
|
365
|
+
| `insert` | 读 `references/client-sdk-insert.md` → Explore 项目 → 制定插入计划 → Edit 写入 |
|
|
366
|
+
| `snippet` | 读 `references/snippet-delivery.md` → markdown 打印 + 生成 `.ae-tracking/output/<platform>-sdk.<ext>` |
|
|
367
|
+
|
|
368
|
+
**只生成 `platform === "client"` 或 `platform === "both"` 的事件**
|
|
369
|
+
|
|
370
|
+
生成前必须读取 wiki 对应 SDK 文档(见 `references/sdk-index.md`)。
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
**服务端代码生成**:
|
|
375
|
+
|
|
376
|
+
| 输出方式 | 执行流程 |
|
|
377
|
+
|---|---|
|
|
378
|
+
| `insert` | 读 `references/server-sdk-insert.md` → Explore 项目 → 制定插入计划 → Edit 写入 |
|
|
379
|
+
| `snippet` | markdown 打印 + 生成 `.ae-tracking/output/<language>-sdk.<ext>` |
|
|
380
|
+
|
|
381
|
+
**只生成 `platform === "server"` 或 `platform === "both"` 的事件**
|
|
382
|
+
|
|
383
|
+
**服务端默认附加**:
|
|
384
|
+
- 生成 LoggerConsumer 模式代码(写本地日志文件)
|
|
385
|
+
- 生成 `.ae-tracking/output/daemon.json`(LogBus2 配置)
|
|
386
|
+
- **同步提供 LogBus2 官方文档链接**:https://docs-v2.thinkingdata.cn/?version=latest&code=logbus2_installation
|
|
387
|
+
|
|
388
|
+
生成前必须读取 wiki 对应 SDK 文档(见 `references/sdk-index.md`)。
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
**独立选项执行**:
|
|
393
|
+
|
|
394
|
+
| 选项 | 执行流程 |
|
|
395
|
+
|---|---|
|
|
396
|
+
| `debug` | 读 `references/debug-script.md` → 生成 `.ae-tracking/output/te-debug.<ext>` |
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
## Phase 4 — Deliver(产物展示)
|
|
401
|
+
|
|
402
|
+
根据选择的输出方式展示产物:
|
|
403
|
+
|
|
404
|
+
### 全都生成片段
|
|
405
|
+
|
|
406
|
+
```
|
|
407
|
+
产物清单:
|
|
408
|
+
|
|
409
|
+
客户端:
|
|
410
|
+
- .ae-tracking/output/android-sdk.java(Android SDK 代码片段)
|
|
411
|
+
|
|
412
|
+
服务端:
|
|
413
|
+
- .ae-tracking/output/java-sdk.java(Java SDK LoggerConsumer 代码)
|
|
414
|
+
- .ae-tracking/output/daemon.json(LogBus2 配置)
|
|
415
|
+
|
|
416
|
+
LogBus2 官方文档:https://docs-v2.thinkingdata.cn/?version=latest&code=logbus2_installation
|
|
417
|
+
|
|
418
|
+
独立选项:
|
|
419
|
+
- .ae-tracking/output/te-debug.java(校验脚本)
|
|
420
|
+
|
|
421
|
+
README:.ae-tracking/output/README.md(使用说明)
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### 混合选择(部分 insert + 部分 snippet)
|
|
425
|
+
|
|
426
|
+
```
|
|
427
|
+
产物清单:
|
|
428
|
+
|
|
429
|
+
客户端 android(insert):
|
|
430
|
+
- <项目路径>/src/main/java/.../TrackingHelper.java(SDK init + 事件调用)
|
|
431
|
+
|
|
432
|
+
服务端 java(snippet):
|
|
433
|
+
- .ae-tracking/output/java-sdk.java(LoggerConsumer 代码片段)
|
|
434
|
+
- .ae-tracking/output/daemon.json(LogBus2 配置)
|
|
435
|
+
|
|
436
|
+
LogBus2 官方文档:https://docs-v2.thinkingdata.cn/?version=latest&code=logbus2_installation
|
|
437
|
+
|
|
438
|
+
独立选项:
|
|
439
|
+
- .ae-tracking/output/te-debug.java(校验脚本)
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### Markdown 代码片段展示
|
|
443
|
+
|
|
444
|
+
对于所有 `snippet` 选择,在 markdown 响应中按端/平台分组展示:
|
|
445
|
+
|
|
446
|
+
```
|
|
447
|
+
## 客户端 Android
|
|
448
|
+
|
|
449
|
+
### SDK 初始化
|
|
450
|
+
```java
|
|
451
|
+
TDAnalytics.init(this, SERVER_URL, APPID);
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
### 公共属性
|
|
455
|
+
```java
|
|
456
|
+
Map<String, Object> superProperties = new HashMap<>();
|
|
457
|
+
superProperties.put("channel", "app_store");
|
|
458
|
+
TDAnalytics.setSuperProperties(superProperties);
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### 事件组:auth
|
|
462
|
+
#### user_login
|
|
463
|
+
```java
|
|
464
|
+
TDAnalytics.track("user_login", new HashMap<String, Object>() {{
|
|
465
|
+
put("login_method", "phone");
|
|
466
|
+
}});
|
|
467
|
+
```
|
|
468
|
+
...
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
## Phase 5 — Validate hint
|
|
474
|
+
|
|
475
|
+
根据选择的端/平台给出验证建议:
|
|
476
|
+
|
|
477
|
+
### 验证步骤
|
|
478
|
+
|
|
479
|
+
```
|
|
480
|
+
验证步骤:
|
|
481
|
+
1. 运行校验脚本:
|
|
482
|
+
- 客户端:运行 .ae-tracking/output/te-debug-client.<ext>
|
|
483
|
+
- 服务端:运行 .ae-tracking/output/te-debug-server.<ext>
|
|
484
|
+
|
|
485
|
+
2. 打开 AE Debug 页面:
|
|
486
|
+
https://<host>/#/data/debug
|
|
487
|
+
|
|
488
|
+
3. 筛选 distinct_id=claude-test 查看上报数据
|
|
489
|
+
|
|
490
|
+
4. 如有 LogBus2:
|
|
491
|
+
- 将 daemon.json 复制到 LogBus2 的 conf/ 目录
|
|
492
|
+
- 启动:./logbus start
|
|
493
|
+
- 官方文档:https://docs-v2.thinkingdata.cn/?version=latest&code=logbus2_installation
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
### 验证通过后
|
|
497
|
+
|
|
498
|
+
- 提示用户 commit 改动(如有 `insert`)
|
|
499
|
+
- 提示用户在代码中调用 `login()` / `identify()` 以关联用户 ID
|
|
500
|
+
- 提示用户将 daemon.json 复制到 LogBus2 的 conf/ 目录
|
|
501
|
+
|
|
502
|
+
### 验证失败
|
|
503
|
+
|
|
504
|
+
- 让用户贴错误文案回来 debug
|
|
505
|
+
- 检查 SERVER_URL / appId 是否正确
|
|
506
|
+
- 检查网络连通性
|
|
507
|
+
- 检查 LogBus2 配置文件格式
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
## 禁止
|
|
512
|
+
|
|
513
|
+
- 任何 `insert` 执行前未跑 `git status` 检查
|
|
514
|
+
- 在 Phase 3 跳 reference 直接乱插
|
|
515
|
+
- 忽略 `// @tracking <event>` 注释的增量检测
|
|
516
|
+
- 复用 web host 当 SERVER_URL(必须分开)
|
|
517
|
+
- **使用 LogBus v1(已过时,只用 LogBus2)**
|
|
518
|
+
- 生成 LogBus2 配置时未提供官方文档链接
|
|
519
|
+
- 生成客户端代码时包含 `platform === "server"` 的专属事件
|
|
520
|
+
- 生成服务端代码时包含 `platform === "client"` 的专属事件(除非 `platform === "both"`)
|
|
521
|
+
- **跳过读 SDK 主文档直接凭猜测选集成方式** — 各 SDK 集成方式不同,必须先读 wiki 主文档的「集成 SDK」章节,根据项目特征(有/无构建工具)选择正确方式
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
## 内部参考
|
|
526
|
+
|
|
527
|
+
所有输出方式的实际规则在 `references/*.md`。本 SKILL.md 只做 Phase 编排。
|
|
528
|
+
|
|
529
|
+
**SDK 文档索引**:
|
|
530
|
+
- `references/sdk-index.md` — 所有 SDK 的 wiki 文档路径索引(权威源)
|
|
531
|
+
|
|
532
|
+
**输出方式参考**:
|
|
533
|
+
- `references/client-sdk-insert.md` — 客户端代码插入流程
|
|
534
|
+
- `references/snippet-delivery.md` — 代码片段生成流程
|
|
535
|
+
- `references/server-sdk-insert.md` — 服务端代码插入流程(LoggerConsumer + LogBus2)
|
|
536
|
+
- `references/logbus-config.md` — LogBus2 配置生成(含官方文档链接)
|
|
537
|
+
- `references/debug-script.md` — 校验脚本生成
|
|
538
|
+
|
|
539
|
+
**LogBus2 官方文档**(生成配置时必须同步提供):
|
|
540
|
+
- 使用指南:https://docs-v2.thinkingdata.cn/?version=latest&code=logbus2_installation
|
|
541
|
+
- 下载地址在官方文档「二、下载 LogBus2」章节中
|
|
542
|
+
|
|
543
|
+
**wiki 目录结构**(见 `wiki/te-docs/schema.md`):
|
|
544
|
+
- `wiki/te-docs/raw/` — AE 官方文档镜像(只读,由 crawler 维护)
|
|
545
|
+
- `wiki/te-docs/synthesis/` — LLM 合成的概览文档
|
|
546
|
+
|
|
547
|
+
**生成代码时的文档读取顺序**:
|
|
548
|
+
1. 读 `references/sdk-index.md` 找到对应 SDK 的文档路径
|
|
549
|
+
2. 读 wiki 主文档(初始化、基础 API)
|
|
550
|
+
3. 读 wiki 进阶指南(LoggerConsumer、用户属性等)
|
|
551
|
+
4. 检查进阶指南下的子文档(如需要)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# 模式 A — 客户端 SDK 代码插入
|
|
2
|
+
|
|
3
|
+
## Stage 0: Wiki(必须完成,禁止跳过)
|
|
4
|
+
1. 读 `references/sdk-index.md` 找到对应 SDK 的主文档路径
|
|
5
|
+
2. **读 SDK 主文档的「集成 SDK」章节**,了解该 SDK 的所有集成方式(如 JS SDK 有 npm / CDN同步 / CDN异步 三种)
|
|
6
|
+
3. 根据项目特征(有无 package.json / 构建工具 / 纯 HTML)选择对应的集成方式
|
|
7
|
+
4. 读 `~/.ae-tracking/wiki/te-docs/synthesis/sdk-selection.md`,确认 appType 对应的 npm 包名与 init 签名
|
|
8
|
+
5. 读对应 cheatsheet(如 `js-sdk-cheatsheet.md`)补充细节
|
|
9
|
+
|
|
10
|
+
**禁止**:跳过 Stage 0 直接写代码、凭猜测选择集成方式、使用不确定的 CDN URL
|
|
11
|
+
|
|
12
|
+
## Stage 1: Explore
|
|
13
|
+
1. Grep 入口:`src/main.*`、`src/App.*`、`pages/_app.*`、`index.html`
|
|
14
|
+
2. Grep 现有埋点:`ta\.track|thinkingdata|TA\.init|// @tracking`
|
|
15
|
+
3. Grep 路由:`react-router|vue-router|next/router`
|
|
16
|
+
4. Grep 用户态:`(handleLogin|onLogin|signIn|doLogin)` / `(handleLogout|signOut)`
|
|
17
|
+
- Astro 专属:
|
|
18
|
+
- 入口:`src/middleware.ts`(SSR 中间件,适合 page_view)、`src/layouts/*.astro`(全局布局插 init)、`astro.config.mjs`(integrations)
|
|
19
|
+
- 客户端组件:`*.astro` 文件里 `<script>` 块、含 `client:*` 指令的 React/Vue island 组件
|
|
20
|
+
|
|
21
|
+
## Stage 2: Insertion Plan(markdown 表格)
|
|
22
|
+
|
|
23
|
+
**平台过滤**:
|
|
24
|
+
- xlsx "采集端" 值为 `客户端` / `client` → `platform: "client"`(仅客户端采集)
|
|
25
|
+
- xlsx "采集端" 值为 `客户端,服务端` / `client,server` → `platform: "both"`(两端都采集)
|
|
26
|
+
- xlsx "采集端" 值为 `服务端` / `server` → `platform: "server"`(仅服务端采集,不在客户端生成)
|
|
27
|
+
- 只插入 `platform === "client"` 或 `platform === "both"` 的事件
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
## SDK 初始化
|
|
31
|
+
- 文件: <path>:<line>
|
|
32
|
+
- 代码: init(...) with appId/SERVER_URL
|
|
33
|
+
|
|
34
|
+
## 公共事件属性
|
|
35
|
+
- 文件: <path>:<line>
|
|
36
|
+
- setSuperProperties({...})
|
|
37
|
+
|
|
38
|
+
## 用户属性
|
|
39
|
+
- 文件: <path>:<line>
|
|
40
|
+
- user_set / user_setOnce / user_add
|
|
41
|
+
|
|
42
|
+
## 事件组: <tag>
|
|
43
|
+
- <event_name>: <file>:<symbol> 或 SKIP (already present at file:line)
|
|
44
|
+
- ...
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
展示后问用户 `ok` 进入 Stage 3,或 "回到事件 X 改映射"。
|
|
48
|
+
|
|
49
|
+
## Stage 3: 分批 Edit
|
|
50
|
+
- Batch 1: SDK init + 公共属性
|
|
51
|
+
- Batch 2: 用户属性
|
|
52
|
+
- Batch 3..N: 按 `event_tag` 分组
|
|
53
|
+
- 每批用 Edit 工具;写完打印文件清单 + 新增行数,问 `ok / undo`
|
|
54
|
+
- `undo` → 反向 Edit 回滚本批
|
|
55
|
+
|
|
56
|
+
## Stage 4: 汇总
|
|
57
|
+
- 打印所有改过的文件 + 每文件新增的事件列表
|
|
58
|
+
- 提示用户考虑跑 F 模式
|
|
59
|
+
|
|
60
|
+
## 代码风格
|
|
61
|
+
- 单例:新建 `src/lib/tracking.ts`(若不存在),export `ta` 单例
|
|
62
|
+
- 每个 track 调用前加 `// @tracking <event_name>` 注释
|
|
63
|
+
- 不加 try/catch
|
|
64
|
+
- 事件名 / 属性名严格来自 plan,不改
|
|
65
|
+
- Astro:SDK init 放 `src/layouts/BaseLayout.astro` 的 `<script>` 块里;page_view 用 middleware 或 `Astro.url.pathname` 监听
|
|
66
|
+
|
|
67
|
+
## 前置检查
|
|
68
|
+
- `git status --porcelain` 非空 → 拒绝,提示用户先 commit/stash
|
|
69
|
+
|
|
70
|
+
## Stage 5: 验证步骤(insert 模式专用)
|
|
71
|
+
|
|
72
|
+
**⚠️ insert 模式 debug 默认关闭,不得引导用户到 Debug 页面查看数据**
|
|
73
|
+
|
|
74
|
+
### 验证步骤
|
|
75
|
+
1. **集成 SDK**(按集成方式选择对应步骤)
|
|
76
|
+
- **npm / 包管理器集成**(JavaScript/React Native/Flutter/uni-app):执行 `npm install` 或对应包管理器命令安装 SDK
|
|
77
|
+
- **构建工具集成**(Unity/Unreal):通过 Package Manager 或 Epic Games Launcher 添加 SDK 依赖
|
|
78
|
+
- **依赖管理集成**(Android/iOS):在 `build.gradle` / `Podfile` 中添加 SDK 依赖
|
|
79
|
+
- **手动下载集成**(Web H5/小程序/游戏引擎等):下载 SDK 文件并放置到项目对应目录
|
|
80
|
+
|
|
81
|
+
参考 `references/sdk-index.md` 中对应 SDK 的官方文档
|
|
82
|
+
|
|
83
|
+
2. **打开 AE 实时数据页面**(非 Debug 页面)
|
|
84
|
+
- `https://<host>/#/data/realtime`
|
|
85
|
+
- 因为 debug 模式关闭,数据走正常上报流程,实时数据页面才能看到
|
|
86
|
+
|
|
87
|
+
3. **操作应用触发事件**,查看是否有数据上报
|
|
88
|
+
|
|
89
|
+
### 上线前检查清单
|
|
90
|
+
- [ ] 确认 `debug: false` 或配置中无 debug 字段
|
|
91
|
+
- [ ] SDK 已正确集成(依赖已添加 / 文件已放置)
|
|
92
|
+
- [ ] 实时数据页面能看到事件上报
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 模式 D — DataX job.json
|
|
2
|
+
|
|
3
|
+
## 询问用户
|
|
4
|
+
1. 数据源类型(MySQL / Oracle / PostgreSQL / OSS / HDFS / 其它)
|
|
5
|
+
2. 连接信息 / 库表名 / 查询条件(或文件路径)
|
|
6
|
+
|
|
7
|
+
## 产物
|
|
8
|
+
`.ae-tracking/output/datax-job.json`:
|
|
9
|
+
|
|
10
|
+
```json
|
|
11
|
+
{
|
|
12
|
+
"job": {
|
|
13
|
+
"content": [{
|
|
14
|
+
"reader": {
|
|
15
|
+
"name": "<mysqlreader|oraclereader|...>",
|
|
16
|
+
"parameter": { "connection": [ { "jdbcUrl": ["<TODO>"], "table": ["<TODO>"] } ], "username": "<TODO>", "password": "<TODO>", "column": ["*"] }
|
|
17
|
+
},
|
|
18
|
+
"writer": {
|
|
19
|
+
"name": "tewriter",
|
|
20
|
+
"parameter": {
|
|
21
|
+
"push_url": "<SERVER_URL>",
|
|
22
|
+
"appid": "<appId>",
|
|
23
|
+
"eventName": "<from plan>",
|
|
24
|
+
"columnMapping": { "<db_col>": "<te_prop>" }
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}],
|
|
28
|
+
"setting": { "speed": { "channel": 2 } }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
`.ae-tracking/output/datax-README.md`:
|
|
34
|
+
- 启动:`python datax.py datax-job.json`
|
|
35
|
+
- 前置:DataX 运行环境
|
|
36
|
+
- `<TODO>` 清单
|
|
37
|
+
|
|
38
|
+
## 生成步骤
|
|
39
|
+
1. 确定 reader 插件名
|
|
40
|
+
2. 按 plan 的第一个事件(或用户指定事件)填 `eventName` + `columnMapping`
|
|
41
|
+
3. 写两份文件
|