@zeppos/zeus-cli 1.1.8 → 1.2.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 (229) hide show
  1. package/bin/{cli.js → main.js} +11 -7
  2. package/bin/post-command.js +3 -5
  3. package/index.js +0 -3
  4. package/modules/bridge.js +18 -21
  5. package/modules/build.js +86 -215
  6. package/modules/create.js +244 -0
  7. package/modules/help.js +16 -16
  8. package/modules/run.js +23 -83
  9. package/package.json +41 -51
  10. package/{api → private-modules/zeppos-app-utils/dist/api}/index.js +64 -98
  11. package/private-modules/zeppos-app-utils/dist/config/device.js +247 -0
  12. package/private-modules/zeppos-app-utils/dist/config/index.js +18 -0
  13. package/private-modules/zeppos-app-utils/dist/config/project.js +104 -0
  14. package/{utils → private-modules/zeppos-app-utils/dist}/hm-analytics.js +6 -6
  15. package/private-modules/zeppos-app-utils/dist/index.js +38 -0
  16. package/private-modules/zeppos-app-utils/dist/logger/index.js +54 -0
  17. package/private-modules/zeppos-app-utils/dist/logger/my-logger.js +69 -0
  18. package/private-modules/zeppos-app-utils/dist/modules/build.js +334 -0
  19. package/{modules → private-modules/zeppos-app-utils/dist/modules}/config.js +31 -57
  20. package/private-modules/zeppos-app-utils/dist/modules/create/index.js +254 -0
  21. package/{modules → private-modules/zeppos-app-utils/dist/modules}/create/local-app.js +10 -10
  22. package/{modules → private-modules/zeppos-app-utils/dist/modules}/create/yeoman-app.js +2 -2
  23. package/private-modules/zeppos-app-utils/dist/modules/index.js +21 -0
  24. package/{modules → private-modules/zeppos-app-utils/dist/modules}/login.js +17 -45
  25. package/{modules → private-modules/zeppos-app-utils/dist/modules}/status.js +32 -42
  26. package/{public → private-modules/zeppos-app-utils/dist/public}/scripts/png2vglite.py +0 -0
  27. package/{public → private-modules/zeppos-app-utils/dist/public}/scripts/requirements.txt +0 -0
  28. package/{public/template/package.json → private-modules/zeppos-app-utils/dist/public/template/v1/_package.json} +0 -0
  29. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/empty/app-side/i18n/en-US.po +0 -0
  30. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/empty/app-side/index.js +0 -0
  31. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/empty/app.js +0 -0
  32. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/empty/app.json +1 -1
  33. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/empty/assets/default/icon.png +0 -0
  34. package/{public/template/empty/pages → private-modules/zeppos-app-utils/dist/public/template/v1/empty/page}/i18n/en-US.po +0 -0
  35. package/{public/template/empty/pages → private-modules/zeppos-app-utils/dist/public/template/v1/empty/page}/index.js +0 -0
  36. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/empty/setting/i18n/en-US.po +0 -0
  37. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/empty/setting/index.js +0 -0
  38. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/empty/watchface/index.js +0 -0
  39. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/app-side/index.js +0 -0
  40. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/app.js +0 -0
  41. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/app.json +0 -0
  42. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/assets/gtr3/icon.png +0 -0
  43. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/assets/gtr3/image/logo.png +0 -0
  44. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/assets/gtr3-pro/icon.png +0 -0
  45. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/assets/gtr3-pro/image/logo.png +0 -0
  46. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/assets/gts3/icon.png +0 -0
  47. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/assets/gts3/image/logo.png +0 -0
  48. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/page/gtr3/home/index.page.js +0 -0
  49. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/page/gtr3/home/index.page.json +0 -0
  50. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/page/gtr3/home/index.style.js +0 -0
  51. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/page/gtr3-pro/home/index.page.js +0 -0
  52. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/page/gtr3-pro/home/index.page.json +0 -0
  53. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/page/gtr3-pro/home/index.style.js +0 -0
  54. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/page/gts3/home/index.page.js +0 -0
  55. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/page/gts3/home/index.page.json +0 -0
  56. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/page/gts3/home/index.style.js +0 -0
  57. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/page/i18n/en-US.po +0 -0
  58. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/setting/i18n/en-US.po +0 -0
  59. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/setting/index.js +0 -0
  60. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/hello-world/utils/index.js +0 -0
  61. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/jsconfig.json +0 -0
  62. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/app.js +0 -0
  63. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/app.json +0 -0
  64. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bg/bg.png +0 -0
  65. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bigNum/0.png +0 -0
  66. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bigNum/1.png +0 -0
  67. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bigNum/2.png +0 -0
  68. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bigNum/3.png +0 -0
  69. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bigNum/4.png +0 -0
  70. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bigNum/5.png +0 -0
  71. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bigNum/6.png +0 -0
  72. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bigNum/7.png +0 -0
  73. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bigNum/8.png +0 -0
  74. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bigNum/9.png +0 -0
  75. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/bigNum/sp.png +0 -0
  76. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/btn/back.png +0 -0
  77. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/btn/lv.png +0 -0
  78. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/btn/red.png +0 -0
  79. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/point/bg.png +0 -0
  80. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/point/bottom.png +0 -0
  81. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/point/center.png +0 -0
  82. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/point/h.png +0 -0
  83. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/point/left.png +0 -0
  84. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/point/m.png +0 -0
  85. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/point/right.png +0 -0
  86. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/point/s.png +0 -0
  87. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/preview.png +0 -0
  88. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/second/second.png +0 -0
  89. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/0.png +0 -0
  90. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/1.png +0 -0
  91. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/2.png +0 -0
  92. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/3.png +0 -0
  93. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/4.png +0 -0
  94. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/5.png +0 -0
  95. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/6.png +0 -0
  96. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/7.png +0 -0
  97. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/8.png +0 -0
  98. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/9.png +0 -0
  99. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/d.png +0 -0
  100. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/smallNum/n.png +0 -0
  101. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_ch/1.png +0 -0
  102. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_ch/2.png +0 -0
  103. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_ch/3.png +0 -0
  104. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_ch/4.png +0 -0
  105. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_ch/5.png +0 -0
  106. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_ch/6.png +0 -0
  107. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_ch/7.png +0 -0
  108. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_en/1.png +0 -0
  109. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_en/2.png +0 -0
  110. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_en/3.png +0 -0
  111. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_en/4.png +0 -0
  112. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_en/5.png +0 -0
  113. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_en/6.png +0 -0
  114. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/assets/gtr-3-pro/images/week_en/7.png +0 -0
  115. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/shared/buffer.js +0 -0
  116. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/shared/device-polyfill.js +0 -0
  117. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/shared/global.js +0 -0
  118. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/shared/js-module.js +0 -0
  119. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/shared/logger.js +0 -0
  120. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/shared/setTimeout.js +0 -0
  121. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/watchface/gtr-3-pro/index.js +0 -0
  122. package/{public/template → private-modules/zeppos-app-utils/dist/public/template/v1}/timer/watchface/round/index.js +0 -0
  123. package/private-modules/zeppos-app-utils/dist/public/template/v2/_package.json +14 -0
  124. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/app.js +28 -0
  125. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/app.json +56 -0
  126. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/consume.png +0 -0
  127. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/food/beer.png +0 -0
  128. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/food/cake.png +0 -0
  129. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/food/chocolate.png +0 -0
  130. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/food/coffee.png +0 -0
  131. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/food/cookies.png +0 -0
  132. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/food/ham.png +0 -0
  133. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/food/hamburger.png +0 -0
  134. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/food/ice cream.png +0 -0
  135. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/food/pizza.png +0 -0
  136. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/food/sausage.png +0 -0
  137. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/icon.png +0 -0
  138. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/multiply.png +0 -0
  139. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/selected.png +0 -0
  140. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/assets/gts/unselected.png +0 -0
  141. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/page/gts/food-list.js +113 -0
  142. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/page/gts/index.js +126 -0
  143. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/page/i18n/en-US.po +42 -0
  144. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/page/i18n/zh-CN.po +42 -0
  145. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/utils/constants.js +54 -0
  146. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/utils/storage.js +42 -0
  147. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/utils/styles-gts-3.js +141 -0
  148. package/private-modules/zeppos-app-utils/dist/public/template/v2/calories/utils/styles.js +142 -0
  149. package/private-modules/zeppos-app-utils/dist/public/template/v2/empty/app-side/i18n/en-US.po +2 -0
  150. package/private-modules/zeppos-app-utils/dist/public/template/v2/empty/app-side/index.js +13 -0
  151. package/private-modules/zeppos-app-utils/dist/public/template/v2/empty/app.js +10 -0
  152. package/private-modules/zeppos-app-utils/dist/public/template/v2/empty/app.json +60 -0
  153. package/private-modules/zeppos-app-utils/dist/public/template/v2/empty/assets/default/icon.png +0 -0
  154. package/private-modules/zeppos-app-utils/dist/public/template/v2/empty/page/i18n/en-US.po +2 -0
  155. package/private-modules/zeppos-app-utils/dist/public/template/v2/empty/page/index.js +7 -0
  156. package/private-modules/zeppos-app-utils/dist/public/template/v2/empty/setting/i18n/en-US.po +2 -0
  157. package/private-modules/zeppos-app-utils/dist/public/template/v2/empty/setting/index.js +7 -0
  158. package/private-modules/zeppos-app-utils/dist/public/template/v2/empty/watchface/index.js +13 -0
  159. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/app-side/i18n/en-US.po +2 -0
  160. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/app-side/index.js +57 -0
  161. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/app.js +23 -0
  162. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/app.json +65 -0
  163. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/assets/common/icon.png +0 -0
  164. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/pages/i18n/en-US.po +2 -0
  165. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/pages/index.js +55 -0
  166. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/shared/data.js +67 -0
  167. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/shared/defer.js +35 -0
  168. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/shared/device-polyfill.js +6 -0
  169. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/shared/es6-promise.js +1149 -0
  170. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/shared/event.js +42 -0
  171. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/shared/message-side.js +1145 -0
  172. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/shared/message.js +1151 -0
  173. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/utils/config/constants.js +2 -0
  174. package/private-modules/zeppos-app-utils/dist/public/template/v2/fetch-api/utils/config/device.js +2 -0
  175. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/app-side/index.js +11 -0
  176. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/app.js +10 -0
  177. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/app.json +101 -0
  178. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/assets/gtr/icon.png +0 -0
  179. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/assets/gtr/image/logo.png +0 -0
  180. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/assets/gts/icon.png +0 -0
  181. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/assets/gts/image/logo.png +0 -0
  182. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/page/gtr/home/index.page.js +20 -0
  183. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/page/gtr/home/index.page.json +1 -0
  184. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/page/gtr/home/index.style.js +18 -0
  185. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/page/gts/home/index.page.js +21 -0
  186. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/page/gts/home/index.page.json +1 -0
  187. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/page/gts/home/index.style.js +17 -0
  188. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/page/i18n/en-US.po +3 -0
  189. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/setting/i18n/en-US.po +2 -0
  190. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/setting/index.js +5 -0
  191. package/private-modules/zeppos-app-utils/dist/public/template/v2/hello-world/utils/index.js +3 -0
  192. package/private-modules/zeppos-app-utils/dist/public/template/v2/jsconfig.json +14 -0
  193. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/.prettierrc.js +6 -0
  194. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/app-side/index.js +48 -0
  195. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/app.js +25 -0
  196. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/app.json +75 -0
  197. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/assets/gts/icon.png +0 -0
  198. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/page/home/index.page.js +155 -0
  199. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/page/home/index.page.json +1 -0
  200. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/page/home/index.style.js +93 -0
  201. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/page/i18n/en-US.po +8 -0
  202. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/setting/i18n/en-US.po +5 -0
  203. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/setting/index.js +145 -0
  204. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/shared/data.js +67 -0
  205. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/shared/defer.js +35 -0
  206. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/shared/device-polyfill.js +6 -0
  207. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/shared/es6-promise.js +1149 -0
  208. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/shared/event.js +42 -0
  209. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/shared/message-side.js +1145 -0
  210. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/shared/message.js +1151 -0
  211. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/utils/constants.js +3 -0
  212. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/utils/fs.js +38 -0
  213. package/private-modules/zeppos-app-utils/dist/public/template/v2/todo-list/utils/index.js +38 -0
  214. package/private-modules/zeppos-app-utils/dist/simulator.js +58 -0
  215. package/{modules/storage.js → private-modules/zeppos-app-utils/dist/storage/index.js} +2 -1
  216. package/private-modules/zeppos-app-utils/dist/tools/index.js +133 -0
  217. package/private-modules/zeppos-app-utils/dist/websocket.js +165 -0
  218. package/private-modules/zeppos-app-utils/package.json +51 -0
  219. package/utils/pre-check.js +9 -35
  220. package/config/device.js +0 -122
  221. package/config/project.js +0 -48
  222. package/font-icon.js +0 -27
  223. package/modules/create/index.js +0 -358
  224. package/modules/simulator.js +0 -82
  225. package/modules/websocket.js +0 -112
  226. package/utils/common.js +0 -138
  227. package/utils/logger.js +0 -31
  228. package/utils/md5.js +0 -11
  229. package/utils/sleep.js +0 -8
@@ -0,0 +1,42 @@
1
+
2
+ msgid "unit"
3
+ msgstr "KCAL"
4
+
5
+ msgid "cake"
6
+ msgstr "蛋糕"
7
+
8
+ msgid "coffee"
9
+ msgstr "咖啡"
10
+
11
+ msgid "calories"
12
+ msgstr "卡路里"
13
+
14
+ msgid "beer"
15
+ msgstr "啤酒"
16
+
17
+ msgid "iceCream"
18
+ msgstr "冰淇淋"
19
+
20
+ msgid "equivalent"
21
+ msgstr "相当于"
22
+
23
+ msgid "hamburger"
24
+ msgstr "汉堡包"
25
+
26
+ msgid "pizza"
27
+ msgstr "披萨"
28
+
29
+ msgid "chocolate"
30
+ msgstr "巧克力"
31
+
32
+ msgid "consumption"
33
+ msgstr "今日消耗"
34
+
35
+ msgid "sausage"
36
+ msgstr "香肠"
37
+
38
+ msgid "ham"
39
+ msgstr "火腿"
40
+
41
+ msgid "cookie"
42
+ msgstr "曲奇饼"
@@ -0,0 +1,54 @@
1
+ import { getText } from '@zos/i18n'
2
+
3
+ export const FOOD_CALORIES = [
4
+ {
5
+ name: getText('hamburger'),
6
+ type: 'hamburger',
7
+ value: 512,
8
+ },
9
+ {
10
+ name: getText('chocolate'),
11
+ type: 'chocolate',
12
+ value: 71,
13
+ },
14
+ {
15
+ name: getText('cookie'),
16
+ type: 'cookies',
17
+ value: 44,
18
+ },
19
+ {
20
+ name: getText('cake'),
21
+ type: 'cake',
22
+ value: 379,
23
+ },
24
+ {
25
+ name: getText('pizza'),
26
+ type: 'pizza',
27
+ value: 470,
28
+ },
29
+ {
30
+ name: getText('sausage'),
31
+ type: 'sausage',
32
+ value: 381,
33
+ },
34
+ {
35
+ name: getText('ham'),
36
+ type: 'ham',
37
+ value: 99,
38
+ },
39
+ {
40
+ name: getText('iceCream'),
41
+ type: 'ice cream',
42
+ value: 64,
43
+ },
44
+ {
45
+ name: getText('coffee'),
46
+ type: 'coffee',
47
+ value: 64,
48
+ },
49
+ {
50
+ name: getText('beer'),
51
+ type: 'beer',
52
+ value: 64,
53
+ },
54
+ ]
@@ -0,0 +1,42 @@
1
+ import {
2
+ statSync,
3
+ writeFileSync,
4
+ readFileSync
5
+ } from '@zos/fs'
6
+
7
+ export default class LocalStorage {
8
+ constructor(fileName = "") {
9
+ this.fileName = fileName
10
+ this.contentObj = {}
11
+ }
12
+
13
+ set(obj) {
14
+ writeFileSync({
15
+ path: this.fileName,
16
+ data: JSON.stringify(obj),
17
+ options: {
18
+ encoding: 'utf8'
19
+ }
20
+ })
21
+ }
22
+
23
+ get() {
24
+ const fStat = statSync({
25
+ path: this.fileName
26
+ })
27
+ if (fStat) {
28
+ try {
29
+ this.contentObj = JSON.parse(readFileSync({
30
+ path: this.fileName,
31
+ options: {
32
+ encoding: 'utf8'
33
+ }
34
+ }))
35
+ } catch (error) {
36
+ this.contentObj = {}
37
+ }
38
+ }
39
+
40
+ return this.contentObj
41
+ }
42
+ }
@@ -0,0 +1,141 @@
1
+ import * as hmUI from '@zos/ui'
2
+ import { getText } from '@zos/i18n'
3
+ import { getDeviceInfo } from '@zos/device'
4
+ import { px } from '@zos/utils'
5
+
6
+ export const { width: DEVICE_WIDTH, height: DEVICE_HEIGHT } = getDeviceInfo()
7
+
8
+ export const COMMON_TITLE_TEXT = {
9
+ text: getText('calories'),
10
+ x: 32,
11
+ y: 11,
12
+ w: 232,
13
+ h: 42,
14
+ color: 0xffffff,
15
+ text_size: 32,
16
+ align_v: hmUI.align.LEFT,
17
+ text_style: hmUI.text_style.WRAP,
18
+ }
19
+
20
+ export const ALIGN_DESC_GROUP = {
21
+ x: 0,
22
+ y: px(80),
23
+ w: 0,
24
+ h: px(82),
25
+ }
26
+ export const IMGAE_CALORIES_MARIN = px(0)
27
+ export const CALORIES_UNIT_MARIN = px(8)
28
+ export const CALORIE_TEXT_SIZE = px(72)
29
+ export const CALORIE_TEXT = {
30
+ text: '400',
31
+ x: 0,
32
+ y: 0,
33
+ w: 0,
34
+ h: px(82),
35
+ color: 0xffffff,
36
+ text_size: CALORIE_TEXT_SIZE,
37
+ align_h: hmUI.align.LEFT,
38
+ align_v: hmUI.align.CENTER_V,
39
+ }
40
+ export const UNIT_TEXT_SIZE = px(24)
41
+ export const UNIT_TEXT = {
42
+ text: getText('unit'),
43
+ x: 0,
44
+ y: px(46),
45
+ w: 0,
46
+ h: px(34),
47
+ color: 0x999999,
48
+ text_size: UNIT_TEXT_SIZE,
49
+ align_h: hmUI.align.LEFT,
50
+ align_v: hmUI.align.CENTER_V,
51
+ }
52
+
53
+ export const TOTAL_CONSUME_TEXT = {
54
+ text: getText('consumption'),
55
+ x: 4,
56
+ y: 162,
57
+ w: 382,
58
+ h: 38,
59
+ color: 0x999999,
60
+ text_size: 28,
61
+ align_h: hmUI.align.CENTER_H,
62
+ align_v: hmUI.align.CENTER_V,
63
+ }
64
+
65
+ export const EQUIVALENT_TO_BUTTON = {
66
+ text: getText('equivalent'),
67
+ press_color: 0x333333,
68
+ normal_color: 0x1a1a1a,
69
+ x: 71,
70
+ y: 330,
71
+ w: 248,
72
+ h: 48,
73
+ color: 0xffffff,
74
+ text_size: 28,
75
+ radius: 28,
76
+ }
77
+
78
+ export const CONSUME_ICON_WIDTH = px(32)
79
+ export const CONSUME_ICON = {
80
+ src: 'consume.png',
81
+ x: 0,
82
+ y: px(47),
83
+ }
84
+
85
+ export const EQUIVALENT_MARGIN = 8
86
+ export const EQUIVALENT_MORE_X = 113
87
+ export const EQUIVALENT_TO_FOOD_ICON_WIDTH = 72
88
+
89
+ export const EQUIVALENT_TO_FOOD_ICON = {
90
+ src: 'food/hamburger.png',
91
+ x: 103, //0
92
+ y: 224,
93
+ }
94
+
95
+ export const EQUIVALENT_MORE_FOOD_ICON = {
96
+ src: 'multiply.png',
97
+ x: 183,
98
+ y: 235,
99
+ }
100
+
101
+ export const EQUIVALENT_MORE_FOOD_NUM = {
102
+ text: '',
103
+ x: 237,
104
+ y: 225,
105
+ w: 60,
106
+ h: 60,
107
+ color: 0xee801e,
108
+ text_size: 50,
109
+ align_h: hmUI.align.LEFT,
110
+ align_v: hmUI.align.CENTER_V,
111
+ }
112
+
113
+ export const FOOD_LIST_Y = 96
114
+ export const FOOD_LIST_ITEM_MARGIN = 60
115
+ export const FOOD_LIST_ITEM_HEIGHT = 52
116
+ export const FOOD_LIST_RADIOGROUP = {
117
+ select_src: 'selected.png',
118
+ unselect_src: 'unselected.png',
119
+ x: 30,
120
+ y: FOOD_LIST_Y,
121
+ w: -1,
122
+ h: -1,
123
+ }
124
+
125
+ export const FOOD_LIST_RADIO_ITEM = {
126
+ x: 0,
127
+ y: FOOD_LIST_Y,
128
+ w: FOOD_LIST_ITEM_HEIGHT,
129
+ h: FOOD_LIST_ITEM_HEIGHT,
130
+ }
131
+
132
+ export const FOOD_LIST_RADIO_ITEM_TEXT = {
133
+ x: 106,
134
+ y: 97,
135
+ w: 254,
136
+ h: FOOD_LIST_ITEM_HEIGHT,
137
+ color: 0xffffff,
138
+ text_size: 32,
139
+ align_h: hmUI.align.LEFT,
140
+ align_v: hmUI.align.CENTER_V,
141
+ }
@@ -0,0 +1,142 @@
1
+ import * as hmUI from '@zos/ui'
2
+ import { getText } from '@zos/i18n'
3
+ import { getDeviceInfo } from '@zos/device'
4
+ import { px } from '@zos/utils'
5
+
6
+ export const { width: DEVICE_WIDTH, height: DEVICE_HEIGHT } = getDeviceInfo()
7
+
8
+ export const COMMON_TITLE_TEXT = {
9
+ text: getText('calories'),
10
+ x: px(96),
11
+ y: px(40),
12
+ w: px(288),
13
+ h: px(46),
14
+ color: 0xffffff,
15
+ text_size: px(36),
16
+ align_h: hmUI.align.CENTER_H,
17
+ align_v: hmUI.align.CENTER_V,
18
+ text_style: hmUI.text_style.WRAP,
19
+ }
20
+
21
+ export const ALIGN_DESC_GROUP = {
22
+ x: 0,
23
+ y: px(118),
24
+ w: 0,
25
+ h: px(100),
26
+ }
27
+ export const IMGAE_CALORIES_MARIN = px(0)
28
+ export const CALORIES_UNIT_MARIN = px(8)
29
+ export const CALORIE_TEXT_SIZE = px(100)
30
+ export const CALORIE_TEXT = {
31
+ text: '',
32
+ x: px(0),
33
+ y: px(0),
34
+ w: px(0),
35
+ h: px(100),
36
+ color: 0xffffff,
37
+ text_size: CALORIE_TEXT_SIZE,
38
+ align_h: hmUI.align.LEFT,
39
+ align_v: hmUI.align.CENTER_V,
40
+ }
41
+ export const UNIT_TEXT_SIZE = px(28)
42
+ export const UNIT_TEXT = {
43
+ text: getText('unit'),
44
+ x: px(0),
45
+ y: px(63),
46
+ w: px(0),
47
+ h: px(34),
48
+ color: 0x999999,
49
+ text_size: UNIT_TEXT_SIZE,
50
+ align_h: hmUI.align.LEFT,
51
+ align_v: hmUI.align.CENTER_V,
52
+ }
53
+
54
+ export const TOTAL_CONSUME_TEXT = {
55
+ text: getText('consumption'),
56
+ x: px(40),
57
+ y: px(218),
58
+ w: px(400),
59
+ h: px(38),
60
+ color: 0x999999,
61
+ text_size: px(28),
62
+ align_h: hmUI.align.CENTER_H,
63
+ align_v: hmUI.align.CENTER_V,
64
+ }
65
+
66
+ export const EQUIVALENT_TO_BUTTON = {
67
+ text: getText('equivalent'),
68
+ press_color: 0x333333,
69
+ normal_color: 0x1a1a1a,
70
+ x: px(108),
71
+ y: px(376),
72
+ w: px(264),
73
+ h: px(56),
74
+ color: 0xffffff,
75
+ text_size: px(32),
76
+ radius: px(28),
77
+ }
78
+
79
+ export const CONSUME_ICON_WIDTH = px(48)
80
+ export const CONSUME_ICON = {
81
+ src: 'consume.png',
82
+ x: px(0),
83
+ y: px(53),
84
+ }
85
+
86
+ export const EQUIVALENT_MARGIN = 8
87
+ export const EQUIVALENT_MORE_X = 155
88
+ export const EQUIVALENT_TO_FOOD_ICON_WIDTH = 80
89
+
90
+ export const EQUIVALENT_TO_FOOD_ICON = {
91
+ src: 'food/hamburger.png',
92
+ x: px(0),
93
+ y: px(288),
94
+ }
95
+
96
+ export const EQUIVALENT_MORE_FOOD_ICON = {
97
+ src: 'multiply.png',
98
+ x: px(243),
99
+ y: px(304),
100
+ }
101
+
102
+ export const EQUIVALENT_MORE_FOOD_NUM = {
103
+ text: '',
104
+ x: px(299),
105
+ y: px(294),
106
+ w: px(100),
107
+ h: px(60),
108
+ color: 0xee801e,
109
+ text_size: px(55),
110
+ align_h: hmUI.align.LEFT,
111
+ align_v: hmUI.align.CENTER_V,
112
+ }
113
+
114
+ export const FOOD_LIST_Y = 178
115
+ export const FOOD_LIST_ITEM_MARGIN = 64
116
+ export const FOOD_LIST_ITEM_HEIGHT = 64
117
+ export const FOOD_LIST_RADIOGROUP = {
118
+ select_src: 'selected.png',
119
+ unselect_src: 'unselected.png',
120
+ x: px(44),
121
+ y: px(FOOD_LIST_Y),
122
+ w: -1,
123
+ h: -1,
124
+ }
125
+
126
+ export const FOOD_LIST_RADIO_ITEM = {
127
+ x: px(0),
128
+ y: px(0),
129
+ w: px(FOOD_LIST_ITEM_HEIGHT),
130
+ h: px(FOOD_LIST_ITEM_HEIGHT),
131
+ }
132
+
133
+ export const FOOD_LIST_RADIO_ITEM_TEXT = {
134
+ x: px(120),
135
+ y: px(0),
136
+ w: px(360),
137
+ h: px(64),
138
+ color: 0xffffff,
139
+ text_size: px(32),
140
+ align_h: hmUI.align.LEFT,
141
+ align_v: hmUI.align.CENTER_V,
142
+ }
@@ -0,0 +1,2 @@
1
+ msgid "example"
2
+ msgstr "This is an example in app-side"
@@ -0,0 +1,13 @@
1
+ import { gettext } from 'i18n'
2
+
3
+ AppSideService({
4
+ onInit() {
5
+ console.log(gettext('example'))
6
+ },
7
+
8
+ onRun() {
9
+ },
10
+
11
+ onDestroy() {
12
+ }
13
+ })
@@ -0,0 +1,10 @@
1
+ App({
2
+ globalData: {},
3
+ onCreate(options) {
4
+ console.log('app on create invoke')
5
+ },
6
+
7
+ onDestroy(options) {
8
+ console.log('app on destroy invoke')
9
+ }
10
+ })
@@ -0,0 +1,60 @@
1
+ {
2
+ "configVersion": "v2",
3
+ "app": {
4
+ "appId": 20000,
5
+ "appName": "Empty",
6
+ "appType": "app",
7
+ "version": {
8
+ "code": 1,
9
+ "name": "1.0.0"
10
+ },
11
+ "icon": "icon.png",
12
+ "vender": "zepp",
13
+ "description": "empty application"
14
+ },
15
+ "permissions": [
16
+ "data:os.device.info",
17
+ "device:os.local_storage",
18
+ "data:user.hd.calorie"
19
+ ],
20
+ "runtime": {
21
+ "apiVersion": {
22
+ "compatible": "2.0.0",
23
+ "target": "2.0.0",
24
+ "minVersion": "2.0.0"
25
+ }
26
+ },
27
+ "targets": {
28
+ "default": {
29
+ "module": {
30
+ "page": {
31
+ "pages": [
32
+ "page/index"
33
+ ]
34
+ },
35
+ "app-side": {
36
+ "path": "app-side/index"
37
+ },
38
+ "setting": {
39
+ "path": "setting/index"
40
+ }
41
+ },
42
+ "platforms": [{
43
+ "name": "gtr3-pro",
44
+ "deviceSource": 229
45
+ },
46
+ {
47
+ "name": "gtr3-pro-w",
48
+ "deviceSource": 230
49
+ }
50
+ ],
51
+ "designWidth": 480
52
+ }
53
+ },
54
+ "i18n": {
55
+ "en-US": {
56
+ "appName": "Empty"
57
+ }
58
+ },
59
+ "defaultLanguage": "en-US"
60
+ }
@@ -0,0 +1,2 @@
1
+ msgid "example"
2
+ msgstr "This is an example in device"
@@ -0,0 +1,7 @@
1
+ import { gettext } from 'i18n'
2
+
3
+ Page({
4
+ build() {
5
+ console.log(gettext('example'))
6
+ }
7
+ })
@@ -0,0 +1,2 @@
1
+ msgid "example"
2
+ msgstr "This is an example in app-side"
@@ -0,0 +1,7 @@
1
+ import { gettext } from 'i18n'
2
+
3
+ AppSettingsPage({
4
+ build() {
5
+ console.log(gettext('example'))
6
+ }
7
+ })
@@ -0,0 +1,13 @@
1
+ WatchFace({
2
+ onInit() {
3
+ console.log('index page.js on init invoke')
4
+ },
5
+
6
+ build() {
7
+ console.log('index page.js on build invoke')
8
+ },
9
+
10
+ onDestroy() {
11
+ console.log('index page.js on destroy invoke')
12
+ },
13
+ })
@@ -0,0 +1,2 @@
1
+ msgid "example"
2
+ msgstr "This is an example in app-side"
@@ -0,0 +1,57 @@
1
+ import { MessageBuilder } from '../shared/message-side'
2
+
3
+ const messageBuilder = new MessageBuilder()
4
+
5
+ // Simulating an asynchronous network request using Promise
6
+ const mockAPI = async () => {
7
+ return new Promise((resolve, reject) => {
8
+ setTimeout(() => {
9
+ resolve({
10
+ body: {
11
+ data: {
12
+ text: 'HELLO ZEPPOS'
13
+ }
14
+ }
15
+ })
16
+ }, 1000)
17
+ })
18
+ }
19
+
20
+ const fetchData = async (ctx) => {
21
+ try {
22
+ // Requesting network data using the fetch API
23
+ // The sample program is for simulation only and does not request real network data, so it is commented here
24
+ // const { body: { data = {} } = {} } = await fetch('https://xxx.com/api/xxx')
25
+
26
+ // A network request is simulated here
27
+ const { body: { data = {} } = {} } = await mockAPI()
28
+
29
+ ctx.response({
30
+ data: { result: data },
31
+ })
32
+
33
+ } catch (error) {
34
+ ctx.response({
35
+ data: { result: 'ERROR' },
36
+ })
37
+ }
38
+ }
39
+
40
+ AppSideService({
41
+ onInit() {
42
+ messageBuilder.listen(() => {})
43
+
44
+ messageBuilder.on('request', (ctx) => {
45
+ const jsonRpc = messageBuilder.buf2Json(ctx.request.payload)
46
+ if (jsonRpc.method === 'GET_DATA') {
47
+ return fetchData(ctx)
48
+ }
49
+ })
50
+ },
51
+
52
+ onRun() {
53
+ },
54
+
55
+ onDestroy() {
56
+ }
57
+ })
@@ -0,0 +1,23 @@
1
+ import './shared/device-polyfill'
2
+ import { MessageBuilder } from './shared/message'
3
+ import { getPackageInfo } from '@zos/app'
4
+ import * as ble from '@zos/ble'
5
+
6
+
7
+ App({
8
+ globalData: {
9
+ messageBuilder: null,
10
+ },
11
+ onCreate(options) {
12
+ console.log('app on create invoke')
13
+ const { appId } = getPackageInfo()
14
+ const messageBuilder = new MessageBuilder({ appId, appDevicePort: 20, appSidePort: 0, ble })
15
+ this.globalData.messageBuilder = messageBuilder
16
+ messageBuilder.connect()
17
+ },
18
+
19
+ onDestroy(options) {
20
+ console.log('app on destroy invoke')
21
+ this.globalData.messageBuilder && this.globalData.messageBuilder.disConnect()
22
+ }
23
+ })
@@ -0,0 +1,65 @@
1
+ {
2
+ "configVersion": "v2",
3
+ "app": {
4
+ "appId": 20001,
5
+ "appName": "Fetch API",
6
+ "appType": "app",
7
+ "version": {
8
+ "code": 1,
9
+ "name": "1.0.1"
10
+ },
11
+ "icon": "icon.png",
12
+ "vender": "zepp",
13
+ "description": "A sample application to demonstrate the fetch API"
14
+ },
15
+ "permissions": [
16
+ "data:os.device.info",
17
+ "device:os.local_storage"
18
+ ],
19
+ "runtime": {
20
+ "apiVersion": {
21
+ "compatible": "2.0.0",
22
+ "target": "2.0.0",
23
+ "minVersion": "2.0.0"
24
+ }
25
+ },
26
+ "targets": {
27
+ "common": {
28
+ "module": {
29
+ "page": {
30
+ "pages": [
31
+ "pages/index"
32
+ ]
33
+ },
34
+ "app-side": {
35
+ "path": "app-side/index"
36
+ }
37
+ },
38
+ "platforms": [
39
+ {
40
+ "name": "gtr4",
41
+ "deviceSource": 7930112
42
+ },
43
+ {
44
+ "name": "gtr4-w",
45
+ "deviceSource": 7930113
46
+ },
47
+ {
48
+ "name": "gts4",
49
+ "deviceSource": 7995648
50
+ },
51
+ {
52
+ "name": "gts4-w",
53
+ "deviceSource": 7995649
54
+ }
55
+ ],
56
+ "designWidth": 480
57
+ }
58
+ },
59
+ "i18n": {
60
+ "en-US": {
61
+ "appName": "Fetch API"
62
+ }
63
+ },
64
+ "defaultLanguage": "en-US"
65
+ }