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.
Files changed (308) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +50 -0
  3. package/dist/bin/ae-tracking.d.ts +2 -0
  4. package/dist/bin/ae-tracking.js +20 -0
  5. package/dist/scripts/postinstall.d.ts +1 -0
  6. package/dist/scripts/postinstall.js +17 -0
  7. package/dist/src/auth.d.ts +12 -0
  8. package/dist/src/auth.js +215 -0
  9. package/dist/src/cli/auth.d.ts +8 -0
  10. package/dist/src/cli/auth.js +81 -0
  11. package/dist/src/cli/code.d.ts +2 -0
  12. package/dist/src/cli/code.js +85 -0
  13. package/dist/src/cli/debug.d.ts +2 -0
  14. package/dist/src/cli/debug.js +152 -0
  15. package/dist/src/cli/home.d.ts +4 -0
  16. package/dist/src/cli/home.js +15 -0
  17. package/dist/src/cli/init.d.ts +14 -0
  18. package/dist/src/cli/init.js +107 -0
  19. package/dist/src/cli/package-root.d.ts +1 -0
  20. package/dist/src/cli/package-root.js +20 -0
  21. package/dist/src/cli/plan.d.ts +2 -0
  22. package/dist/src/cli/plan.js +242 -0
  23. package/dist/src/cli/wiki.d.ts +2 -0
  24. package/dist/src/cli/wiki.js +20 -0
  25. package/dist/src/client.d.ts +62 -0
  26. package/dist/src/client.js +56 -0
  27. package/dist/src/config.d.ts +4 -0
  28. package/dist/src/config.js +29 -0
  29. package/dist/src/plan/autotrack.d.ts +18 -0
  30. package/dist/src/plan/autotrack.js +350 -0
  31. package/dist/src/plan/conflict.d.ts +34 -0
  32. package/dist/src/plan/conflict.js +106 -0
  33. package/dist/src/plan/draft.d.ts +39 -0
  34. package/dist/src/plan/draft.js +104 -0
  35. package/dist/src/plan/fix.d.ts +32 -0
  36. package/dist/src/plan/fix.js +187 -0
  37. package/dist/src/plan/types.d.ts +57 -0
  38. package/dist/src/plan/types.js +1 -0
  39. package/dist/src/project-detect/detect.d.ts +2 -0
  40. package/dist/src/project-detect/detect.js +120 -0
  41. package/dist/src/project-detect/types.d.ts +9 -0
  42. package/dist/src/project-detect/types.js +1 -0
  43. package/dist/src/te-debug/client.d.ts +12 -0
  44. package/dist/src/te-debug/client.js +54 -0
  45. package/dist/src/te-debug/types.d.ts +16 -0
  46. package/dist/src/te-debug/types.js +1 -0
  47. package/dist/src/te-plan/fetch.d.ts +3 -0
  48. package/dist/src/te-plan/fetch.js +47 -0
  49. package/dist/src/te-plan/types.d.ts +7 -0
  50. package/dist/src/te-plan/types.js +1 -0
  51. package/dist/src/wiki/block-to-md.d.ts +74 -0
  52. package/dist/src/wiki/block-to-md.js +88 -0
  53. package/dist/src/wiki/crawler.d.ts +3 -0
  54. package/dist/src/wiki/crawler.js +71 -0
  55. package/dist/src/wiki/index-writer.d.ts +4 -0
  56. package/dist/src/wiki/index-writer.js +70 -0
  57. package/dist/src/wiki/slugify.d.ts +1 -0
  58. package/dist/src/wiki/slugify.js +11 -0
  59. package/dist/src/wiki/types.d.ts +29 -0
  60. package/dist/src/wiki/types.js +1 -0
  61. package/dist/src/wiki-query/query.d.ts +8 -0
  62. package/dist/src/wiki-query/query.js +32 -0
  63. package/dist/src/xlsx/read.d.ts +2 -0
  64. package/dist/src/xlsx/read.js +457 -0
  65. package/dist/src/xlsx/write.d.ts +3 -0
  66. package/dist/src/xlsx/write.js +251 -0
  67. package/package.json +47 -0
  68. package/skills/generate-tracking-code/SKILL.md +551 -0
  69. package/skills/generate-tracking-code/references/client-sdk-insert.md +92 -0
  70. package/skills/generate-tracking-code/references/datax-config.md +41 -0
  71. package/skills/generate-tracking-code/references/debug-script.md +99 -0
  72. package/skills/generate-tracking-code/references/logbus-config.md +224 -0
  73. package/skills/generate-tracking-code/references/modes.md +81 -0
  74. package/skills/generate-tracking-code/references/restful-call.md +34 -0
  75. package/skills/generate-tracking-code/references/sdk-index.md +123 -0
  76. package/skills/generate-tracking-code/references/server-sdk-insert.md +175 -0
  77. package/skills/generate-tracking-code/references/snippet-delivery.md +240 -0
  78. package/skills/generate-tracking-code/references/te-api.md +181 -0
  79. package/skills/generate-tracking-plan/SKILL.md +826 -0
  80. package/skills/generate-tracking-plan/references/autotrack-events.md +238 -0
  81. package/skills/generate-tracking-plan/references/te-api.md +97 -0
  82. package/skills/generate-tracking-plan/references/xlsx-schema.md +149 -0
  83. package/skills/te-wiki-synthesize/SKILL.md +142 -0
  84. package/wiki/te-docs/index.md +223 -0
  85. package/wiki/te-docs/log.md +28 -0
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227/sdk-information-collection-rules.md +63 -0
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. 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
  149. 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
  150. 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
  151. 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
  152. 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
  153. 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
  154. 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
  155. 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
  156. 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
  157. 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
  158. 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
  159. 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
  160. 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
  161. 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
  162. 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
  163. 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
  164. 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
  165. 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
  166. 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
  167. 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
  168. 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
  169. 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
  170. 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
  171. 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
  172. 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
  173. 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
  174. 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
  175. 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
  176. 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
  177. 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
  178. 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
  179. 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
  180. 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
  181. 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
  182. 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
  183. 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
  184. 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
  185. 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
  186. 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
  187. 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
  188. 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
  189. 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
  190. 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
  191. 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
  192. 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
  193. 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
  194. 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
  195. 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
  196. 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
  197. 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
  198. 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
  199. 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
  200. 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
  201. 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
  202. 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
  203. 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
  204. 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
  205. 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
  206. 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
  207. 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
  208. 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
  209. 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
  210. 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
  211. 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
  212. 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
  213. 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
  214. 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
  215. 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
  216. 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
  217. 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
  218. 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
  219. 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
  220. 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
  221. 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
  222. 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
  223. 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
  224. 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
  225. 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
  226. 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
  227. 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
  228. 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
  229. 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
  230. 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
  231. 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
  232. 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
  233. 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
  234. 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
  235. 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
  236. 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
  237. 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
  238. 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
  239. 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
  240. 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
  241. 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
  242. 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
  243. 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
  244. 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
  245. 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
  246. 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
  247. 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
  248. 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
  249. 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
  250. 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
  251. 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
  252. 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
  253. 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
  254. 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
  255. 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
  256. 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
  257. 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
  258. 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
  259. 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
  260. 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
  261. 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
  262. 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
  263. 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
  264. 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
  265. 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
  266. 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
  267. 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
  268. 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
  269. 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
  270. 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
  271. 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
  272. 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
  273. 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
  274. 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
  275. 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
  276. 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
  277. 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
  278. 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
  279. 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
  280. 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
  281. 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
  282. 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
  283. 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
  284. 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
  285. 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
  286. 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
  287. 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
  288. 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
  289. 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
  290. 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
  291. 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
  292. 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
  293. 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
  294. 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
  295. 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
  296. 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
  297. 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
  298. 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
  299. package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227.md +64 -0
  300. 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
  301. 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
  302. 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
  303. package/wiki/te-docs/schema.md +17 -0
  304. package/wiki/te-docs/synthesis/batch-ingest-comparison.md +117 -0
  305. package/wiki/te-docs/synthesis/js-sdk-cheatsheet.md +136 -0
  306. package/wiki/te-docs/synthesis/restful-api-reference.md +142 -0
  307. package/wiki/te-docs/synthesis/sdk-selection.md +79 -0
  308. package/wiki/te-docs/synthesis/server-sdk-overview.md +124 -0
@@ -0,0 +1,104 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { getAutotrackEvents } from './autotrack.js';
4
+ export function emptyDraft(meta) {
5
+ return {
6
+ meta: {
7
+ app_type: meta.app_type,
8
+ sdk_integration_mode: meta.sdk_integration_mode,
9
+ client_platforms: meta.client_platforms,
10
+ client_sdk_type: meta.client_sdk_type,
11
+ client_languages: meta.client_languages,
12
+ client_platform_languages: meta.client_platform_languages,
13
+ server_language: meta.server_language,
14
+ project_id: meta.project_id,
15
+ plan_name: meta.plan_name,
16
+ scenario: meta.scenario,
17
+ user_identity: meta.user_identity,
18
+ },
19
+ events: [],
20
+ event_properties: [],
21
+ common_event_properties: [],
22
+ user_properties: [],
23
+ };
24
+ }
25
+ // 兼容旧接口
26
+ export function emptyDraftLegacy(appType, planName, sdkType) {
27
+ return emptyDraft({
28
+ app_type: appType,
29
+ sdk_integration_mode: 'client_only',
30
+ client_sdk_type: sdkType,
31
+ plan_name: planName,
32
+ });
33
+ }
34
+ export function loadDraft(p) {
35
+ return JSON.parse(fs.readFileSync(p, 'utf8'));
36
+ }
37
+ export function saveDraft(d, p) {
38
+ fs.mkdirSync(path.dirname(p), { recursive: true });
39
+ fs.writeFileSync(p, JSON.stringify(d, null, 2));
40
+ }
41
+ /**
42
+ * 向 draft 注入 SDK 自动采集事件
43
+ * 自动采集事件放在 events 数组末尾,标记 source: "autotrack", platform: "client"
44
+ */
45
+ export function injectAutotrackEvents(draft) {
46
+ const mode = draft.meta.sdk_integration_mode;
47
+ // 仅 client_only 或 both 模式才注入自动采集事件
48
+ if (mode === 'server_only') {
49
+ return draft; // 服务端 SDK 无自动采集事件
50
+ }
51
+ // 兼容:优先使用 client_sdk_type,fallback 到旧字段 sdk_type
52
+ const sdkType = draft.meta.client_sdk_type || draft.meta.sdk_type;
53
+ if (!sdkType) {
54
+ return draft; // 未指定客户端 SDK 类型,不注入
55
+ }
56
+ // 支持数组类型(多平台场景):合并去重
57
+ let autotrackEvents = [];
58
+ if (Array.isArray(sdkType)) {
59
+ const allEvents = sdkType.map(t => getAutotrackEvents(t)).flat();
60
+ // 去重(Android 和 iOS 的自动采集事件相同)
61
+ const seen = new Set();
62
+ autotrackEvents = allEvents.filter(e => {
63
+ if (seen.has(e.event_name))
64
+ return false;
65
+ seen.add(e.event_name);
66
+ return true;
67
+ });
68
+ }
69
+ else {
70
+ autotrackEvents = getAutotrackEvents(sdkType);
71
+ }
72
+ // 过滤掉已存在的自动采集事件(避免重复注入)
73
+ const existingAutotrackNames = new Set(draft.events.filter(e => e.source === 'autotrack').map(e => e.event_name));
74
+ const newEvents = autotrackEvents.filter(e => !existingAutotrackNames.has(e.event_name));
75
+ // 将自动采集事件追加到末尾,并设置 platform: "client"
76
+ const eventsWithPlatform = newEvents.map(e => ({
77
+ ...e,
78
+ platform: 'client',
79
+ }));
80
+ draft.events.push(...eventsWithPlatform);
81
+ return draft;
82
+ }
83
+ /**
84
+ * 获取 draft 中的业务事件(排除自动采集事件)
85
+ */
86
+ export function getBusinessEvents(draft) {
87
+ return draft.events.filter(e => e.source !== 'autotrack');
88
+ }
89
+ /**
90
+ * 获取 draft 中的自动采集事件
91
+ */
92
+ export function getAutotrackEventsFromDraft(draft) {
93
+ return draft.events.filter(e => e.source === 'autotrack');
94
+ }
95
+ /**
96
+ * 按 platform 分组获取事件
97
+ */
98
+ export function getEventsByPlatform(draft) {
99
+ return {
100
+ client: draft.events.filter(e => e.platform === 'client'),
101
+ server: draft.events.filter(e => e.platform === 'server'),
102
+ both: draft.events.filter(e => e.platform === 'both'),
103
+ };
104
+ }
@@ -0,0 +1,32 @@
1
+ import type { Draft } from './types.js';
2
+ /**
3
+ * 埋点方案自动修复
4
+ * 根据 AE API 返回的错误自动修复 draft.json
5
+ */
6
+ export interface TEUploadError {
7
+ errorType: string;
8
+ errorTypeDesc: string;
9
+ cellName: string;
10
+ row: number;
11
+ value: string;
12
+ }
13
+ export interface TEUploadResponse {
14
+ return_code: number;
15
+ return_message: string;
16
+ data?: {
17
+ eventErrorMap?: Record<string, TEUploadError[]>;
18
+ userErrorMap?: Record<string, TEUploadError[]>;
19
+ };
20
+ }
21
+ /**
22
+ * 从 AE API 响应中提取错误
23
+ */
24
+ export declare function extractErrors(response: TEUploadResponse): TEUploadError[];
25
+ /**
26
+ * 自动修复 draft.json
27
+ */
28
+ export declare function fixDraft(draft: Draft, response: TEUploadResponse): string[];
29
+ /**
30
+ * 内部校验修复(在生成 xlsx 前执行)
31
+ */
32
+ export declare function validateAndFix(draft: Draft): string[];
@@ -0,0 +1,187 @@
1
+ /**
2
+ * 从 AE API 响应中提取错误
3
+ */
4
+ export function extractErrors(response) {
5
+ const errors = [];
6
+ if (response.data?.eventErrorMap) {
7
+ for (const [errorType, items] of Object.entries(response.data.eventErrorMap)) {
8
+ for (const item of items) {
9
+ errors.push({ ...item, errorType });
10
+ }
11
+ }
12
+ }
13
+ if (response.data?.userErrorMap) {
14
+ for (const [errorType, items] of Object.entries(response.data.userErrorMap)) {
15
+ for (const item of items) {
16
+ errors.push({ ...item, errorType });
17
+ }
18
+ }
19
+ }
20
+ return errors;
21
+ }
22
+ /**
23
+ * 修复显示名重复错误
24
+ */
25
+ function fixDisplayDuplicate(draft, errors) {
26
+ // 收集重复的显示名
27
+ const duplicateDisplayNames = new Map();
28
+ for (const error of errors) {
29
+ if (error.errorType === 'event_prop_display_duplicate') {
30
+ const names = duplicateDisplayNames.get(error.value) || [];
31
+ names.push(error.value);
32
+ duplicateDisplayNames.set(error.value, names);
33
+ }
34
+ }
35
+ // 修复:给重复的显示名添加区分前缀
36
+ for (const prop of draft.event_properties) {
37
+ if (duplicateDisplayNames.has(prop.display_name || '')) {
38
+ // 找到这个属性在哪些事件中被引用
39
+ const eventsUsingProp = draft.events.filter(e => e.prop_names.includes(prop.name));
40
+ // 根据属性类型添加前缀
41
+ if (prop.name.includes('.')) {
42
+ // 子属性:添加"明细"前缀
43
+ prop.display_name = `明细${prop.display_name}`;
44
+ }
45
+ else if (eventsUsingProp.length > 0) {
46
+ // 根据事件类型添加前缀
47
+ prop.display_name = `${prop.display_name}(详情)`;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ /**
53
+ * 修复对象组子属性不一致
54
+ */
55
+ function fixArrayRowConsistency(draft, errors) {
56
+ // 收集每个 array_row 的完整子属性
57
+ const arrayRowChildren = new Map();
58
+ for (const prop of draft.event_properties) {
59
+ if (prop.type === 'array_row') {
60
+ arrayRowChildren.set(prop.name, []);
61
+ }
62
+ }
63
+ for (const prop of draft.event_properties) {
64
+ if (prop.name.includes('.')) {
65
+ const parent = prop.name.split('.')[0];
66
+ const children = arrayRowChildren.get(parent);
67
+ if (children) {
68
+ children.push(prop.name);
69
+ }
70
+ }
71
+ }
72
+ // 对每个事件,确保引用的 array_row 包含完整子属性
73
+ for (const event of draft.events) {
74
+ const propNamesSet = new Set(event.prop_names);
75
+ for (const [arrayRow, children] of arrayRowChildren) {
76
+ if (propNamesSet.has(arrayRow)) {
77
+ // 检查是否包含所有子属性
78
+ for (const child of children) {
79
+ if (!propNamesSet.has(child)) {
80
+ // 添加缺失的子属性
81
+ event.prop_names.push(child);
82
+ }
83
+ }
84
+ // 重新排序:先父属性,再子属性(按顺序)
85
+ const arrayRowProps = event.prop_names.filter(p => p === arrayRow || p.startsWith(arrayRow + '.'));
86
+ // 排序:父属性在前,子属性按 children 顺序
87
+ const sorted = [arrayRow, ...children.filter(c => event.prop_names.includes(c))];
88
+ // 移除旧的 array_row 相关属性,插入排序后的
89
+ event.prop_names = event.prop_names.filter(p => !p.startsWith(arrayRow) || p === arrayRow);
90
+ // 在 arrayRow 位置插入排序后的属性
91
+ const idx = event.prop_names.indexOf(arrayRow);
92
+ if (idx >= 0) {
93
+ event.prop_names.splice(idx, 1, ...sorted);
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ /**
100
+ * 修复事件名重复
101
+ */
102
+ function fixEventNameDuplicate(draft, errors) {
103
+ const duplicateEvents = new Set();
104
+ for (const error of errors) {
105
+ if (error.errorType === 'event_name_duplicate') {
106
+ duplicateEvents.add(error.value);
107
+ }
108
+ }
109
+ // 移除重复的事件(保留第一个)
110
+ const seen = new Set();
111
+ draft.events = draft.events.filter(event => {
112
+ if (duplicateEvents.has(event.event_name)) {
113
+ if (seen.has(event.event_name)) {
114
+ return false; // 移除后续重复
115
+ }
116
+ seen.add(event.event_name);
117
+ }
118
+ return true;
119
+ });
120
+ }
121
+ /**
122
+ * 自动修复 draft.json
123
+ */
124
+ export function fixDraft(draft, response) {
125
+ const errors = extractErrors(response);
126
+ const fixed = [];
127
+ if (errors.length === 0) {
128
+ return fixed;
129
+ }
130
+ // 按错误类型分类
131
+ const errorTypes = new Set(errors.map(e => e.errorType));
132
+ // 修复显示名重复
133
+ if (errorTypes.has('event_prop_display_duplicate')) {
134
+ fixDisplayDuplicate(draft, errors);
135
+ fixed.push('修复显示名重复');
136
+ }
137
+ // 修复对象组子属性不一致
138
+ if (errorTypes.has('complex_event_property_should_has_same_child_property')) {
139
+ fixArrayRowConsistency(draft, errors);
140
+ fixed.push('修复对象组子属性不一致');
141
+ }
142
+ // 修复事件名重复
143
+ if (errorTypes.has('event_name_duplicate')) {
144
+ fixEventNameDuplicate(draft, errors);
145
+ fixed.push('移除重复事件');
146
+ }
147
+ return fixed;
148
+ }
149
+ /**
150
+ * 内部校验修复(在生成 xlsx 前执行)
151
+ */
152
+ export function validateAndFix(draft) {
153
+ const fixed = [];
154
+ // 修复对象组子属性不一致
155
+ const arrayRowChildren = new Map();
156
+ for (const prop of draft.event_properties) {
157
+ if (prop.type === 'array_row') {
158
+ arrayRowChildren.set(prop.name, []);
159
+ }
160
+ }
161
+ for (const prop of draft.event_properties) {
162
+ if (prop.name.includes('.')) {
163
+ const parent = prop.name.split('.')[0];
164
+ const children = arrayRowChildren.get(parent);
165
+ if (children) {
166
+ children.push(prop.name);
167
+ }
168
+ }
169
+ }
170
+ let needFix = false;
171
+ for (const event of draft.events) {
172
+ for (const [arrayRow, children] of arrayRowChildren) {
173
+ if (event.prop_names.includes(arrayRow)) {
174
+ for (const child of children) {
175
+ if (!event.prop_names.includes(child)) {
176
+ needFix = true;
177
+ }
178
+ }
179
+ }
180
+ }
181
+ }
182
+ if (needFix) {
183
+ fixArrayRowConsistency(draft, []);
184
+ fixed.push('修复对象组子属性不一致');
185
+ }
186
+ return fixed;
187
+ }
@@ -0,0 +1,57 @@
1
+ export type PropType = 'string' | 'number' | 'bool' | 'datetime' | 'array_row' | 'array_string';
2
+ export type UpdateType = 'user_set' | 'user_setOnce' | 'user_add';
3
+ export type Source = 'template' | 'prd' | 'chat' | 'autotrack';
4
+ export type SDKIntegrationMode = 'client_only' | 'server_only' | 'both';
5
+ export type EventPlatform = 'client' | 'server' | 'both';
6
+ export type ServerLanguage = 'java' | 'python' | 'go' | 'nodejs' | 'php' | 'csharp' | 'cpp' | 'ruby' | 'lua' | 'other';
7
+ export type ClientLanguage = 'java' | 'kotlin' | 'objc' | 'swift' | 'javascript' | 'typescript' | 'csharp' | 'cpp' | 'lua' | 'dart' | 'vue' | 'other';
8
+ export type SDKType = 'android' | 'ios' | 'openharmony' | 'javascript' | 'wechat_mp' | 'wechat_mg' | 'douyin_mp' | 'alipay_mp' | 'other_mp' | 'unity' | 'unity_wxmg' | 'cocos2dx' | 'cocoscreator' | 'layaair' | 'unreal' | 'react_native' | 'flutter' | 'uniapp_mp' | 'uniapp_app' | 'uniapp_h5';
9
+ export interface Property {
10
+ name: string;
11
+ display_name?: string;
12
+ type: PropType;
13
+ desc?: string;
14
+ source: Source;
15
+ }
16
+ export interface UserProperty extends Property {
17
+ update_type?: UpdateType;
18
+ prop_tag?: string;
19
+ }
20
+ export interface Event {
21
+ event_name: string;
22
+ display_name?: string;
23
+ event_tag?: string;
24
+ event_desc?: string;
25
+ platform?: EventPlatform;
26
+ source: Source;
27
+ prop_names: string[];
28
+ }
29
+ export type AccountIdSource = 'user_account' | 'role_id' | 'none';
30
+ export type DistinctIdStrategy = 'auto' | 'device_id' | 'custom';
31
+ export interface UserIdentity {
32
+ account_id_source: AccountIdSource;
33
+ account_id_field?: string;
34
+ distinct_id_strategy: DistinctIdStrategy;
35
+ distinct_id_custom_value?: string;
36
+ }
37
+ export interface Draft {
38
+ meta: {
39
+ app_type: string;
40
+ sdk_integration_mode: SDKIntegrationMode;
41
+ client_platforms?: SDKType[];
42
+ client_sdk_type?: SDKType;
43
+ client_languages?: ClientLanguage[];
44
+ client_platform_languages?: Record<SDKType, ClientLanguage[]>;
45
+ server_language?: ServerLanguage;
46
+ project_id?: number;
47
+ host?: string;
48
+ plan_name: string;
49
+ scenario?: string;
50
+ user_identity?: UserIdentity;
51
+ sdk_type?: SDKType;
52
+ };
53
+ events: Event[];
54
+ event_properties: Property[];
55
+ common_event_properties: Property[];
56
+ user_properties: UserProperty[];
57
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { DetectResult } from './types.js';
2
+ export declare function detectProject(cwd: string): Promise<DetectResult>;
@@ -0,0 +1,120 @@
1
+ import { readFile, readdir, stat } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ async function exists(p) {
4
+ try {
5
+ await stat(p);
6
+ return true;
7
+ }
8
+ catch {
9
+ return false;
10
+ }
11
+ }
12
+ async function readJson(p) {
13
+ try {
14
+ return JSON.parse(await readFile(p, 'utf8'));
15
+ }
16
+ catch {
17
+ return null;
18
+ }
19
+ }
20
+ /** Classify a single directory (no recursive walk). Returns 'unknown' if unrecognised. */
21
+ async function classifyDir(cwd) {
22
+ if (await exists(join(cwd, 'project.config.json'))) {
23
+ const cfg = await readJson(join(cwd, 'project.config.json'));
24
+ if (cfg && 'miniprogramRoot' in cfg)
25
+ return 'mini-program';
26
+ }
27
+ if (await exists(join(cwd, 'ProjectSettings/ProjectVersion.txt')))
28
+ return 'unity';
29
+ if (await exists(join(cwd, 'Podfile')))
30
+ return 'ios';
31
+ if (await exists(join(cwd, 'build.gradle')) || await exists(join(cwd, 'settings.gradle')))
32
+ return 'android';
33
+ const pkg = await readJson(join(cwd, 'package.json'));
34
+ if (pkg) {
35
+ const deps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };
36
+ if (deps.astro)
37
+ return 'web-astro';
38
+ if (deps.next)
39
+ return 'web-nextjs';
40
+ if (deps.react)
41
+ return 'web-react';
42
+ if (deps.vue)
43
+ return 'web-vue';
44
+ if (deps.express || deps.fastify || deps.koa)
45
+ return 'node-server';
46
+ return 'web-vanilla';
47
+ }
48
+ if (await exists(join(cwd, 'go.mod')))
49
+ return 'go-server';
50
+ if (await exists(join(cwd, 'pom.xml')))
51
+ return 'java-server';
52
+ if (await exists(join(cwd, 'pyproject.toml')) || await exists(join(cwd, 'requirements.txt')))
53
+ return 'python-server';
54
+ return 'unknown';
55
+ }
56
+ /** Classify cwd, walking 1 level into subdirs if cwd itself is unrecognised (monorepo support). */
57
+ async function classify(cwd) {
58
+ // 1. Try cwd directly
59
+ const direct = await classifyDir(cwd);
60
+ if (direct !== 'unknown')
61
+ return { appType: direct, subPath: undefined };
62
+ // 2. Walk direct children (max 20 to avoid huge monorepos)
63
+ let entries;
64
+ try {
65
+ entries = await readdir(cwd, { withFileTypes: true });
66
+ }
67
+ catch {
68
+ return { appType: 'unknown', subPath: undefined };
69
+ }
70
+ const dirs = entries
71
+ .filter(e => e.isDirectory() && !e.name.startsWith('.') && e.name !== 'node_modules')
72
+ .slice(0, 20);
73
+ // During monorepo walk, prefer specific types over 'web-vanilla' (which is a
74
+ // catch-all for any package.json with no recognised framework).
75
+ let vanillaMatch;
76
+ for (const d of dirs) {
77
+ const sub = await classifyDir(join(cwd, d.name));
78
+ if (sub !== 'unknown' && sub !== 'web-vanilla') {
79
+ return { appType: sub, subPath: d.name };
80
+ }
81
+ if (sub === 'web-vanilla' && !vanillaMatch) {
82
+ vanillaMatch = { appType: sub, subPath: d.name };
83
+ }
84
+ }
85
+ if (vanillaMatch)
86
+ return vanillaMatch;
87
+ return { appType: 'unknown', subPath: undefined };
88
+ }
89
+ function recommend(appType) {
90
+ switch (appType) {
91
+ case 'web-react':
92
+ case 'web-vue':
93
+ case 'web-nextjs':
94
+ case 'web-vanilla':
95
+ case 'web-astro':
96
+ case 'ios':
97
+ case 'android':
98
+ case 'mini-program':
99
+ case 'unity':
100
+ return ['A', 'F'];
101
+ case 'node-server':
102
+ case 'python-server':
103
+ case 'go-server':
104
+ case 'java-server':
105
+ return ['E', 'F'];
106
+ case 'unknown':
107
+ default:
108
+ return ['B', 'E'];
109
+ }
110
+ }
111
+ export async function detectProject(cwd) {
112
+ const { appType, subPath } = await classify(cwd);
113
+ return {
114
+ appType,
115
+ subPath,
116
+ entryFiles: [],
117
+ existingTracking: [],
118
+ recommendedModes: recommend(appType),
119
+ };
120
+ }
@@ -0,0 +1,9 @@
1
+ export type AppType = 'web-react' | 'web-vue' | 'web-nextjs' | 'web-vanilla' | 'web-astro' | 'ios' | 'android' | 'mini-program' | 'unity' | 'node-server' | 'python-server' | 'go-server' | 'java-server' | 'unknown';
2
+ export type Mode = 'A' | 'B' | 'C' | 'D' | 'E' | 'F';
3
+ export interface DetectResult {
4
+ appType: AppType;
5
+ subPath?: string;
6
+ entryFiles: string[];
7
+ existingTracking: string[];
8
+ recommendedModes: Mode[];
9
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { DebugClientOpts, DeviceInfo, DeviceDataResponse } from './types.js';
2
+ export declare class TEDebugClient {
3
+ private opts;
4
+ constructor(opts: DebugClientOpts);
5
+ private url;
6
+ private get;
7
+ listDevice(projectId: number): Promise<DeviceInfo[]>;
8
+ addDevice(projectId: number, deviceId: string, deviceName: string): Promise<void>;
9
+ selectDevice(projectId: number, deviceId: string): Promise<void>;
10
+ removeDevice(projectId: number, deviceId: string): Promise<void>;
11
+ listDeviceData(projectId: number, deviceId: string, startTime: string): Promise<DeviceDataResponse>;
12
+ }
@@ -0,0 +1,54 @@
1
+ import { request } from 'undici';
2
+ const BASE = '/v1/ta/bury/manage/debug';
3
+ export class TEDebugClient {
4
+ opts;
5
+ constructor(opts) {
6
+ this.opts = opts;
7
+ }
8
+ url(path, params) {
9
+ const parts = [`@t=${Date.now()}`];
10
+ for (const [k, v] of Object.entries(params)) {
11
+ parts.push(`${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`);
12
+ }
13
+ return this.opts.host.replace(/\/$/, '') + BASE + path + '?' + parts.join('&');
14
+ }
15
+ async get(path, params) {
16
+ const r = await request(this.url(path, params), {
17
+ method: 'GET',
18
+ headers: {
19
+ authorization: `bearer ${this.opts.token}`,
20
+ 'x-requested-with': 'XMLHttpRequest',
21
+ accept: 'application/json',
22
+ },
23
+ });
24
+ const env = (await r.body.json());
25
+ if (env.return_code !== 0) {
26
+ if (env.return_code === -1001) {
27
+ throw new Error(`AE token expired or invalid (return_code -1001). Re-login in Chrome, then run: ae-tracking auth login`);
28
+ }
29
+ throw new Error(env.return_message || `AE error ${env.return_code}`);
30
+ }
31
+ return env.data;
32
+ }
33
+ async listDevice(projectId) {
34
+ const data = await this.get('/listDevice', { projectId });
35
+ return data?.deviceList ?? [];
36
+ }
37
+ async addDevice(projectId, deviceId, deviceName) {
38
+ await this.get('/saveDevice', { deviceId, deviceName, projectId });
39
+ }
40
+ async selectDevice(projectId, deviceId) {
41
+ await this.get('/chooseDevice', { deviceId, projectId });
42
+ }
43
+ async removeDevice(projectId, deviceId) {
44
+ await this.get('/deleteDevice', { deviceId, projectId });
45
+ }
46
+ async listDeviceData(projectId, deviceId, startTime) {
47
+ const data = await this.get('/listDeviceData', {
48
+ deviceID: deviceId, // NB uppercase D — matches AE backend
49
+ projectId,
50
+ startTime,
51
+ });
52
+ return data ?? { eventList: [], deviceDataList: [] };
53
+ }
54
+ }
@@ -0,0 +1,16 @@
1
+ export interface DebugClientOpts {
2
+ host: string;
3
+ token: string;
4
+ }
5
+ export interface DeviceInfo {
6
+ deviceId: string;
7
+ deviceName: string;
8
+ lastClearTime?: string;
9
+ }
10
+ export interface DeviceDataItem {
11
+ [key: string]: unknown;
12
+ }
13
+ export interface DeviceDataResponse {
14
+ eventList: DeviceDataItem[];
15
+ deviceDataList: DeviceDataItem[];
16
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { Draft } from '../plan/types.js';
2
+ import type { FetchPlanArgs } from './types.js';
3
+ export declare function fetchPlan({ projectId, host, token }: FetchPlanArgs): Promise<Draft>;
@@ -0,0 +1,47 @@
1
+ import { request } from 'undici';
2
+ const PLAN_PATH = '/v1/ta/bury/manage/program/query';
3
+ export async function fetchPlan({ projectId, host, token }) {
4
+ const url = `${host.replace(/\/$/, '')}${PLAN_PATH}?@t=${Date.now()}&projectId=${projectId}`;
5
+ const { statusCode, body } = await request(url, {
6
+ method: 'GET',
7
+ headers: {
8
+ authorization: `bearer ${token}`,
9
+ 'x-requested-with': 'XMLHttpRequest',
10
+ },
11
+ });
12
+ if (statusCode !== 200) {
13
+ const text = await body.text();
14
+ throw new Error(`AE plan fetch failed (${statusCode}): ${text.slice(0, 200)}`);
15
+ }
16
+ const payload = (await body.json());
17
+ if (payload.return_code !== 0) {
18
+ if (payload.return_code === -1001) {
19
+ throw new Error(`AE token expired or invalid (return_code -1001). Re-login in Chrome, then run: ae-tracking auth login`);
20
+ }
21
+ throw new Error(`AE plan fetch return_code ${payload.return_code}: ${payload.return_message ?? ''}`);
22
+ }
23
+ return normalize(payload.data);
24
+ }
25
+ function normalize(data) {
26
+ return {
27
+ meta: { app_type: 'unknown', sdk_integration_mode: 'client_only', plan_name: 'from-te' },
28
+ events: (data.events ?? []).map((e) => ({
29
+ event_name: e.eventName,
30
+ display_name: e.displayName,
31
+ event_tag: e.eventTag,
32
+ event_desc: e.eventDesc,
33
+ source: 'chat',
34
+ prop_names: e.props ?? [],
35
+ })),
36
+ event_properties: (data.eventProps ?? []).map((p) => ({
37
+ name: p.name, display_name: p.displayName, type: (p.type?.toLowerCase() ?? 'string'), desc: p.desc, source: 'chat',
38
+ })),
39
+ common_event_properties: (data.commonEventProps ?? []).map((p) => ({
40
+ name: p.name, display_name: p.displayName, type: (p.type?.toLowerCase() ?? 'string'), desc: p.desc, source: 'chat',
41
+ })),
42
+ user_properties: (data.userProps ?? []).map((p) => ({
43
+ name: p.name, display_name: p.displayName, type: (p.type?.toLowerCase() ?? 'string'), desc: p.desc,
44
+ update_type: (p.updateType ?? 'user_set'), prop_tag: p.propTag, source: 'chat',
45
+ })),
46
+ };
47
+ }
@@ -0,0 +1,7 @@
1
+ import type { Draft } from '../plan/types.js';
2
+ export interface FetchPlanArgs {
3
+ projectId: number;
4
+ host: string;
5
+ token: string;
6
+ }
7
+ export type { Draft };
@@ -0,0 +1 @@
1
+ export {};