create-swdg-frontend 0.1.6 → 0.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 (469) hide show
  1. package/README.md +31 -13
  2. package/bin/index.js +3 -244
  3. package/lib/argv.js +43 -0
  4. package/lib/cli.js +141 -0
  5. package/lib/constants.js +24 -0
  6. package/lib/gis.js +92 -0
  7. package/lib/manifest.js +23 -0
  8. package/lib/prompts.js +55 -0
  9. package/lib/scaffold.js +118 -0
  10. package/package.json +6 -2
  11. package/scripts/sync-template.js +120 -0
  12. package/scripts/validate-template.mjs +74 -0
  13. package/stubs/tsconfig.node.json +11 -0
  14. package/stubs/types-env.d.ts +9 -0
  15. package/stubs/vite.config.ts +64 -0
  16. package/template/.env.example +6 -0
  17. package/template/.github/workflows/ci.yml +23 -0
  18. package/template/.github/workflows/release.yml +69 -0
  19. package/template/.husky/commit-msg +42 -42
  20. package/template/.husky/pre-commit +2 -2
  21. package/template/.husky/prepare-commit-msg +0 -0
  22. package/template/.lintstagedrc +5 -5
  23. package/template/.prettierignore +26 -26
  24. package/template/.prettierrc.cjs +10 -10
  25. package/template/.stylelintignore +1 -1
  26. package/template/.stylelintrc.json +12 -6
  27. package/template/README.md +99 -36
  28. package/template/auto-imports.d.ts +10 -0
  29. package/template/commitlint.config.cjs +64 -64
  30. package/template/docs/MAINTAINER.md +77 -0
  31. package/template/docs/ONBOARDING.md +284 -0
  32. package/template/docs/TESTING.md +104 -0
  33. package/template/eslint.config.js +97 -96
  34. package/template/index.html +17 -17
  35. package/template/interface/user.ts +5 -5
  36. package/template/package.json +88 -86
  37. package/template/pnpm-lock.yaml +6360 -0
  38. package/template/postcss.config.js +5 -0
  39. package/template/scripts/gen-api.cjs +280 -230
  40. package/template/scripts/release.mjs +53 -59
  41. package/template/scripts/set-release-version.mjs +46 -0
  42. package/template/scripts/test-pipeline.mjs +85 -0
  43. package/template/scripts/test-scaffold.mjs +197 -0
  44. package/template/scripts/test-template.mjs +52 -0
  45. package/template/scripts/verify.mjs +28 -0
  46. package/template/scripts/vite-plugin-cesium-dev.ts +56 -0
  47. package/template/src/App.vue +6 -6
  48. package/template/src/api/README.md +7 -3
  49. package/template/src/assets/favicon.svg +49 -49
  50. package/template/src/components/Body/index.vue +80 -16
  51. package/template/src/components/CesiumViewer/index.vue +36 -0
  52. package/template/src/components/Header/index.vue +19 -8
  53. package/template/src/components/OnboardingDeck/index.vue +449 -0
  54. package/template/src/data/onboardingSlides.ts +208 -0
  55. package/template/src/directive/focus.ts +9 -9
  56. package/template/src/layout/BasicLayout.vue +28 -28
  57. package/template/src/main.ts +25 -33
  58. package/template/src/router/index.ts +30 -24
  59. package/template/src/router/routeUtils.ts +13 -0
  60. package/template/src/stores/README.md +3 -3
  61. package/template/src/stores/useCounter.ts +12 -12
  62. package/template/src/styles/alerts.less +85 -85
  63. package/template/src/styles/global.css +326 -326
  64. package/template/src/styles/shell.css +232 -0
  65. package/template/src/utils/alert.ts +58 -58
  66. package/template/src/utils/axios-middleware.js +180 -0
  67. package/template/src/utils/cesium/index.ts +71 -0
  68. package/template/src/utils/components.ts +21 -21
  69. package/template/src/utils/composables/useAlert.ts +14 -14
  70. package/template/src/utils/composables/useFeatureGis.ts +24 -0
  71. package/template/src/utils/http.ts +5 -0
  72. package/template/src/views/examples/cesium/index.vue +85 -0
  73. package/template/src/views/examples/guide/index.vue +42 -0
  74. package/template/src/views/examples/test/index.vue +63 -0
  75. package/template/src/views/index.vue +8 -9
  76. package/template/src/vite-env.d.ts +1 -1
  77. package/template/tests/README.md +7 -6
  78. package/template/tests/e2e/README.md +3 -3
  79. package/template/tests/setup.ts +1 -1
  80. package/template/tests/unit/onboardingSlides.test.ts +20 -0
  81. package/template/tests/unit/router.utils.test.ts +21 -0
  82. package/template/tests/unit/scaffold.lib.test.ts +44 -0
  83. package/template/tests/unit/useFeatureGis.test.ts +14 -0
  84. package/template/tests/utils/helpers.ts +1 -1
  85. package/template/tsconfig.json +51 -51
  86. package/template/tsconfig.node.json +11 -11
  87. package/template/types/README.md +3 -3
  88. package/template/types/env.d.ts +13 -0
  89. package/template/types/global.d.ts +9 -9
  90. package/template/vite.config.ts +89 -75
  91. package/template/vitest.config.ts +22 -9
  92. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_0.json +0 -1012
  93. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_1.json +0 -1012
  94. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_10.json +0 -1012
  95. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_11.json +0 -1012
  96. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_12.json +0 -1012
  97. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_13.json +0 -1012
  98. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_14.json +0 -1012
  99. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_15.json +0 -1012
  100. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_16.json +0 -1012
  101. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_17.json +0 -1012
  102. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_18.json +0 -1012
  103. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_19.json +0 -1012
  104. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_2.json +0 -1012
  105. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_20.json +0 -1012
  106. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_21.json +0 -1012
  107. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_22.json +0 -1012
  108. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_23.json +0 -1012
  109. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_24.json +0 -1012
  110. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_25.json +0 -1012
  111. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_26.json +0 -1012
  112. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_27.json +0 -438
  113. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_3.json +0 -1012
  114. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_4.json +0 -1012
  115. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_5.json +0 -1012
  116. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_6.json +0 -1012
  117. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_7.json +0 -1012
  118. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_8.json +0 -1012
  119. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_9.json +0 -1012
  120. package/template/public/Cesium1.119/Assets/Images/bing_maps_credit.png +0 -0
  121. package/template/public/Cesium1.119/Assets/Images/cesium_credit.png +0 -0
  122. package/template/public/Cesium1.119/Assets/Images/google_earth_credit.png +0 -0
  123. package/template/public/Cesium1.119/Assets/Images/ion-credit.png +0 -0
  124. package/template/public/Cesium1.119/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  125. package/template/public/Cesium1.119/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  126. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  127. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  128. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  129. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  130. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  131. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  132. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  133. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  134. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  135. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  136. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  137. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  138. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  139. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  140. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  141. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  142. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  143. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  144. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  145. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  146. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  147. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  148. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  149. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  150. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  151. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  152. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  153. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  154. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  155. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  156. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  157. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  158. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  159. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  160. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  161. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  162. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  163. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  164. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  165. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  166. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  167. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  168. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/tilemapresource.xml +0 -14
  169. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  170. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  171. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  172. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  173. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  174. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  175. package/template/public/Cesium1.119/Assets/Textures/maki/airfield.png +0 -0
  176. package/template/public/Cesium1.119/Assets/Textures/maki/airport.png +0 -0
  177. package/template/public/Cesium1.119/Assets/Textures/maki/alcohol-shop.png +0 -0
  178. package/template/public/Cesium1.119/Assets/Textures/maki/america-football.png +0 -0
  179. package/template/public/Cesium1.119/Assets/Textures/maki/art-gallery.png +0 -0
  180. package/template/public/Cesium1.119/Assets/Textures/maki/bakery.png +0 -0
  181. package/template/public/Cesium1.119/Assets/Textures/maki/bank.png +0 -0
  182. package/template/public/Cesium1.119/Assets/Textures/maki/bar.png +0 -0
  183. package/template/public/Cesium1.119/Assets/Textures/maki/baseball.png +0 -0
  184. package/template/public/Cesium1.119/Assets/Textures/maki/basketball.png +0 -0
  185. package/template/public/Cesium1.119/Assets/Textures/maki/beer.png +0 -0
  186. package/template/public/Cesium1.119/Assets/Textures/maki/bicycle.png +0 -0
  187. package/template/public/Cesium1.119/Assets/Textures/maki/building.png +0 -0
  188. package/template/public/Cesium1.119/Assets/Textures/maki/bus.png +0 -0
  189. package/template/public/Cesium1.119/Assets/Textures/maki/cafe.png +0 -0
  190. package/template/public/Cesium1.119/Assets/Textures/maki/camera.png +0 -0
  191. package/template/public/Cesium1.119/Assets/Textures/maki/campsite.png +0 -0
  192. package/template/public/Cesium1.119/Assets/Textures/maki/car.png +0 -0
  193. package/template/public/Cesium1.119/Assets/Textures/maki/cemetery.png +0 -0
  194. package/template/public/Cesium1.119/Assets/Textures/maki/cesium.png +0 -0
  195. package/template/public/Cesium1.119/Assets/Textures/maki/chemist.png +0 -0
  196. package/template/public/Cesium1.119/Assets/Textures/maki/cinema.png +0 -0
  197. package/template/public/Cesium1.119/Assets/Textures/maki/circle-stroked.png +0 -0
  198. package/template/public/Cesium1.119/Assets/Textures/maki/circle.png +0 -0
  199. package/template/public/Cesium1.119/Assets/Textures/maki/city.png +0 -0
  200. package/template/public/Cesium1.119/Assets/Textures/maki/clothing-store.png +0 -0
  201. package/template/public/Cesium1.119/Assets/Textures/maki/college.png +0 -0
  202. package/template/public/Cesium1.119/Assets/Textures/maki/commercial.png +0 -0
  203. package/template/public/Cesium1.119/Assets/Textures/maki/cricket.png +0 -0
  204. package/template/public/Cesium1.119/Assets/Textures/maki/cross.png +0 -0
  205. package/template/public/Cesium1.119/Assets/Textures/maki/dam.png +0 -0
  206. package/template/public/Cesium1.119/Assets/Textures/maki/danger.png +0 -0
  207. package/template/public/Cesium1.119/Assets/Textures/maki/disability.png +0 -0
  208. package/template/public/Cesium1.119/Assets/Textures/maki/dog-park.png +0 -0
  209. package/template/public/Cesium1.119/Assets/Textures/maki/embassy.png +0 -0
  210. package/template/public/Cesium1.119/Assets/Textures/maki/emergency-telephone.png +0 -0
  211. package/template/public/Cesium1.119/Assets/Textures/maki/entrance.png +0 -0
  212. package/template/public/Cesium1.119/Assets/Textures/maki/farm.png +0 -0
  213. package/template/public/Cesium1.119/Assets/Textures/maki/fast-food.png +0 -0
  214. package/template/public/Cesium1.119/Assets/Textures/maki/ferry.png +0 -0
  215. package/template/public/Cesium1.119/Assets/Textures/maki/fire-station.png +0 -0
  216. package/template/public/Cesium1.119/Assets/Textures/maki/fuel.png +0 -0
  217. package/template/public/Cesium1.119/Assets/Textures/maki/garden.png +0 -0
  218. package/template/public/Cesium1.119/Assets/Textures/maki/gift.png +0 -0
  219. package/template/public/Cesium1.119/Assets/Textures/maki/golf.png +0 -0
  220. package/template/public/Cesium1.119/Assets/Textures/maki/grocery.png +0 -0
  221. package/template/public/Cesium1.119/Assets/Textures/maki/hairdresser.png +0 -0
  222. package/template/public/Cesium1.119/Assets/Textures/maki/harbor.png +0 -0
  223. package/template/public/Cesium1.119/Assets/Textures/maki/heart.png +0 -0
  224. package/template/public/Cesium1.119/Assets/Textures/maki/heliport.png +0 -0
  225. package/template/public/Cesium1.119/Assets/Textures/maki/hospital.png +0 -0
  226. package/template/public/Cesium1.119/Assets/Textures/maki/ice-cream.png +0 -0
  227. package/template/public/Cesium1.119/Assets/Textures/maki/industrial.png +0 -0
  228. package/template/public/Cesium1.119/Assets/Textures/maki/land-use.png +0 -0
  229. package/template/public/Cesium1.119/Assets/Textures/maki/laundry.png +0 -0
  230. package/template/public/Cesium1.119/Assets/Textures/maki/library.png +0 -0
  231. package/template/public/Cesium1.119/Assets/Textures/maki/lighthouse.png +0 -0
  232. package/template/public/Cesium1.119/Assets/Textures/maki/lodging.png +0 -0
  233. package/template/public/Cesium1.119/Assets/Textures/maki/logging.png +0 -0
  234. package/template/public/Cesium1.119/Assets/Textures/maki/london-underground.png +0 -0
  235. package/template/public/Cesium1.119/Assets/Textures/maki/marker-stroked.png +0 -0
  236. package/template/public/Cesium1.119/Assets/Textures/maki/marker.png +0 -0
  237. package/template/public/Cesium1.119/Assets/Textures/maki/minefield.png +0 -0
  238. package/template/public/Cesium1.119/Assets/Textures/maki/mobilephone.png +0 -0
  239. package/template/public/Cesium1.119/Assets/Textures/maki/monument.png +0 -0
  240. package/template/public/Cesium1.119/Assets/Textures/maki/museum.png +0 -0
  241. package/template/public/Cesium1.119/Assets/Textures/maki/music.png +0 -0
  242. package/template/public/Cesium1.119/Assets/Textures/maki/oil-well.png +0 -0
  243. package/template/public/Cesium1.119/Assets/Textures/maki/park.png +0 -0
  244. package/template/public/Cesium1.119/Assets/Textures/maki/park2.png +0 -0
  245. package/template/public/Cesium1.119/Assets/Textures/maki/parking-garage.png +0 -0
  246. package/template/public/Cesium1.119/Assets/Textures/maki/parking.png +0 -0
  247. package/template/public/Cesium1.119/Assets/Textures/maki/pharmacy.png +0 -0
  248. package/template/public/Cesium1.119/Assets/Textures/maki/pitch.png +0 -0
  249. package/template/public/Cesium1.119/Assets/Textures/maki/place-of-worship.png +0 -0
  250. package/template/public/Cesium1.119/Assets/Textures/maki/playground.png +0 -0
  251. package/template/public/Cesium1.119/Assets/Textures/maki/police.png +0 -0
  252. package/template/public/Cesium1.119/Assets/Textures/maki/polling-place.png +0 -0
  253. package/template/public/Cesium1.119/Assets/Textures/maki/post.png +0 -0
  254. package/template/public/Cesium1.119/Assets/Textures/maki/prison.png +0 -0
  255. package/template/public/Cesium1.119/Assets/Textures/maki/rail-above.png +0 -0
  256. package/template/public/Cesium1.119/Assets/Textures/maki/rail-light.png +0 -0
  257. package/template/public/Cesium1.119/Assets/Textures/maki/rail-metro.png +0 -0
  258. package/template/public/Cesium1.119/Assets/Textures/maki/rail-underground.png +0 -0
  259. package/template/public/Cesium1.119/Assets/Textures/maki/rail.png +0 -0
  260. package/template/public/Cesium1.119/Assets/Textures/maki/religious-christian.png +0 -0
  261. package/template/public/Cesium1.119/Assets/Textures/maki/religious-jewish.png +0 -0
  262. package/template/public/Cesium1.119/Assets/Textures/maki/religious-muslim.png +0 -0
  263. package/template/public/Cesium1.119/Assets/Textures/maki/restaurant.png +0 -0
  264. package/template/public/Cesium1.119/Assets/Textures/maki/roadblock.png +0 -0
  265. package/template/public/Cesium1.119/Assets/Textures/maki/rocket.png +0 -0
  266. package/template/public/Cesium1.119/Assets/Textures/maki/school.png +0 -0
  267. package/template/public/Cesium1.119/Assets/Textures/maki/scooter.png +0 -0
  268. package/template/public/Cesium1.119/Assets/Textures/maki/shop.png +0 -0
  269. package/template/public/Cesium1.119/Assets/Textures/maki/skiing.png +0 -0
  270. package/template/public/Cesium1.119/Assets/Textures/maki/slaughterhouse.png +0 -0
  271. package/template/public/Cesium1.119/Assets/Textures/maki/soccer.png +0 -0
  272. package/template/public/Cesium1.119/Assets/Textures/maki/square-stroked.png +0 -0
  273. package/template/public/Cesium1.119/Assets/Textures/maki/square.png +0 -0
  274. package/template/public/Cesium1.119/Assets/Textures/maki/star-stroked.png +0 -0
  275. package/template/public/Cesium1.119/Assets/Textures/maki/star.png +0 -0
  276. package/template/public/Cesium1.119/Assets/Textures/maki/suitcase.png +0 -0
  277. package/template/public/Cesium1.119/Assets/Textures/maki/swimming.png +0 -0
  278. package/template/public/Cesium1.119/Assets/Textures/maki/telephone.png +0 -0
  279. package/template/public/Cesium1.119/Assets/Textures/maki/tennis.png +0 -0
  280. package/template/public/Cesium1.119/Assets/Textures/maki/theatre.png +0 -0
  281. package/template/public/Cesium1.119/Assets/Textures/maki/toilets.png +0 -0
  282. package/template/public/Cesium1.119/Assets/Textures/maki/town-hall.png +0 -0
  283. package/template/public/Cesium1.119/Assets/Textures/maki/town.png +0 -0
  284. package/template/public/Cesium1.119/Assets/Textures/maki/triangle-stroked.png +0 -0
  285. package/template/public/Cesium1.119/Assets/Textures/maki/triangle.png +0 -0
  286. package/template/public/Cesium1.119/Assets/Textures/maki/village.png +0 -0
  287. package/template/public/Cesium1.119/Assets/Textures/maki/warehouse.png +0 -0
  288. package/template/public/Cesium1.119/Assets/Textures/maki/waste-basket.png +0 -0
  289. package/template/public/Cesium1.119/Assets/Textures/maki/water.png +0 -0
  290. package/template/public/Cesium1.119/Assets/Textures/maki/wetland.png +0 -0
  291. package/template/public/Cesium1.119/Assets/Textures/maki/zoo.png +0 -0
  292. package/template/public/Cesium1.119/Assets/Textures/moonSmall.jpg +0 -0
  293. package/template/public/Cesium1.119/Assets/Textures/pin.svg +0 -1
  294. package/template/public/Cesium1.119/Assets/Textures/waterNormals.jpg +0 -0
  295. package/template/public/Cesium1.119/Assets/Textures/waterNormalsSmall.jpg +0 -0
  296. package/template/public/Cesium1.119/Assets/approximateTerrainHeights.json +0 -10924
  297. package/template/public/Cesium1.119/Cesium.js +0 -185772
  298. package/template/public/Cesium1.119/ThirdParty/Workers/package.json +0 -3
  299. package/template/public/Cesium1.119/ThirdParty/Workers/pako_deflate.min.js +0 -1681
  300. package/template/public/Cesium1.119/ThirdParty/Workers/pako_inflate.min.js +0 -1489
  301. package/template/public/Cesium1.119/ThirdParty/Workers/z-worker-pako.js +0 -1070
  302. package/template/public/Cesium1.119/ThirdParty/basis_transcoder.wasm +0 -0
  303. package/template/public/Cesium1.119/ThirdParty/draco_decoder.wasm +0 -0
  304. package/template/public/Cesium1.119/ThirdParty/google-earth-dbroot-parser.js +0 -11424
  305. package/template/public/Cesium1.119/Widgets/Animation/Animation.css +0 -127
  306. package/template/public/Cesium1.119/Widgets/Animation/lighter.css +0 -78
  307. package/template/public/Cesium1.119/Widgets/BaseLayerPicker/BaseLayerPicker.css +0 -112
  308. package/template/public/Cesium1.119/Widgets/BaseLayerPicker/lighter.css +0 -28
  309. package/template/public/Cesium1.119/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +0 -104
  310. package/template/public/Cesium1.119/Widgets/CesiumInspector/CesiumInspector.css +0 -115
  311. package/template/public/Cesium1.119/Widgets/CesiumWidget/CesiumWidget.css +0 -119
  312. package/template/public/Cesium1.119/Widgets/CesiumWidget/lighter.css +0 -14
  313. package/template/public/Cesium1.119/Widgets/FullscreenButton/FullscreenButton.css +0 -8
  314. package/template/public/Cesium1.119/Widgets/Geocoder/Geocoder.css +0 -72
  315. package/template/public/Cesium1.119/Widgets/Geocoder/lighter.css +0 -17
  316. package/template/public/Cesium1.119/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +0 -27
  317. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
  318. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
  319. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
  320. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
  321. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
  322. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
  323. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
  324. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
  325. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
  326. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
  327. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
  328. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
  329. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
  330. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
  331. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
  332. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
  333. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
  334. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
  335. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
  336. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/Mouse.svg +0 -84
  337. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/MouseLeft.svg +0 -76
  338. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/MouseMiddle.svg +0 -76
  339. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/MouseRight.svg +0 -76
  340. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/Touch.svg +0 -120
  341. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/TouchDrag.svg +0 -129
  342. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/TouchRotate.svg +0 -76
  343. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/TouchTilt.svg +0 -135
  344. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/TouchZoom.svg +0 -74
  345. package/template/public/Cesium1.119/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
  346. package/template/public/Cesium1.119/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
  347. package/template/public/Cesium1.119/Widgets/Images/TimelineIcons.png +0 -0
  348. package/template/public/Cesium1.119/Widgets/Images/info-loading.gif +0 -0
  349. package/template/public/Cesium1.119/Widgets/InfoBox/InfoBox.css +0 -94
  350. package/template/public/Cesium1.119/Widgets/InfoBox/InfoBoxDescription.css +0 -178
  351. package/template/public/Cesium1.119/Widgets/NavigationHelpButton/NavigationHelpButton.css +0 -95
  352. package/template/public/Cesium1.119/Widgets/NavigationHelpButton/lighter.css +0 -38
  353. package/template/public/Cesium1.119/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +0 -15
  354. package/template/public/Cesium1.119/Widgets/ProjectionPicker/ProjectionPicker.css +0 -46
  355. package/template/public/Cesium1.119/Widgets/SceneModePicker/SceneModePicker.css +0 -72
  356. package/template/public/Cesium1.119/Widgets/SelectionIndicator/SelectionIndicator.css +0 -22
  357. package/template/public/Cesium1.119/Widgets/Timeline/Timeline.css +0 -103
  358. package/template/public/Cesium1.119/Widgets/Timeline/lighter.css +0 -18
  359. package/template/public/Cesium1.119/Widgets/VRButton/VRButton.css +0 -8
  360. package/template/public/Cesium1.119/Widgets/Viewer/Viewer.css +0 -107
  361. package/template/public/Cesium1.119/Widgets/VoxelInspector/VoxelInspector.css +0 -18
  362. package/template/public/Cesium1.119/Widgets/lighter.css +0 -246
  363. package/template/public/Cesium1.119/Widgets/lighterShared.css +0 -46
  364. package/template/public/Cesium1.119/Widgets/shared.css +0 -103
  365. package/template/public/Cesium1.119/Widgets/widgets.css +0 -1376
  366. package/template/public/Cesium1.119/Workers/chunk-3C7WC463.js +0 -611
  367. package/template/public/Cesium1.119/Workers/chunk-3JW36LZF.js +0 -166
  368. package/template/public/Cesium1.119/Workers/chunk-4BTGX3WJ.js +0 -264
  369. package/template/public/Cesium1.119/Workers/chunk-4WRMLZA7.js +0 -128
  370. package/template/public/Cesium1.119/Workers/chunk-7Z5IIKOJ.js +0 -8046
  371. package/template/public/Cesium1.119/Workers/chunk-ABGXSJNX.js +0 -341
  372. package/template/public/Cesium1.119/Workers/chunk-AMQUWUD4.js +0 -269
  373. package/template/public/Cesium1.119/Workers/chunk-ATPDRNKI.js +0 -28
  374. package/template/public/Cesium1.119/Workers/chunk-BMHPVZ4H.js +0 -199
  375. package/template/public/Cesium1.119/Workers/chunk-CBEO3SHS.js +0 -1102
  376. package/template/public/Cesium1.119/Workers/chunk-CV7DLCWG.js +0 -485
  377. package/template/public/Cesium1.119/Workers/chunk-DQO6B4EQ.js +0 -76
  378. package/template/public/Cesium1.119/Workers/chunk-ED3TLP6D.js +0 -91
  379. package/template/public/Cesium1.119/Workers/chunk-EFZKO5RU.js +0 -42
  380. package/template/public/Cesium1.119/Workers/chunk-F5IHREXR.js +0 -2678
  381. package/template/public/Cesium1.119/Workers/chunk-FKRG4HDY.js +0 -516
  382. package/template/public/Cesium1.119/Workers/chunk-FYOYUPXG.js +0 -399
  383. package/template/public/Cesium1.119/Workers/chunk-GFN7NNSJ.js +0 -65
  384. package/template/public/Cesium1.119/Workers/chunk-HEEMUCG6.js +0 -92
  385. package/template/public/Cesium1.119/Workers/chunk-HSWA4OEL.js +0 -672
  386. package/template/public/Cesium1.119/Workers/chunk-IAC5XVZV.js +0 -287
  387. package/template/public/Cesium1.119/Workers/chunk-II4VNKYR.js +0 -50
  388. package/template/public/Cesium1.119/Workers/chunk-ILGBPNP6.js +0 -28
  389. package/template/public/Cesium1.119/Workers/chunk-IRH46BDL.js +0 -124
  390. package/template/public/Cesium1.119/Workers/chunk-IUA6FAOZ.js +0 -31
  391. package/template/public/Cesium1.119/Workers/chunk-K4ASOM65.js +0 -331
  392. package/template/public/Cesium1.119/Workers/chunk-KCIZBVXL.js +0 -258
  393. package/template/public/Cesium1.119/Workers/chunk-KF5NF354.js +0 -162
  394. package/template/public/Cesium1.119/Workers/chunk-KRKI6AAO.js +0 -773
  395. package/template/public/Cesium1.119/Workers/chunk-KZNJOCYU.js +0 -162
  396. package/template/public/Cesium1.119/Workers/chunk-O5IJ3OGP.js +0 -857
  397. package/template/public/Cesium1.119/Workers/chunk-OO23RBLX.js +0 -183
  398. package/template/public/Cesium1.119/Workers/chunk-P37AI2DW.js +0 -85
  399. package/template/public/Cesium1.119/Workers/chunk-PDMQLSBL.js +0 -108
  400. package/template/public/Cesium1.119/Workers/chunk-PEYJTJPE.js +0 -73
  401. package/template/public/Cesium1.119/Workers/chunk-POASMU2N.js +0 -2372
  402. package/template/public/Cesium1.119/Workers/chunk-PXCJYT2S.js +0 -73
  403. package/template/public/Cesium1.119/Workers/chunk-Q6L7X3LP.js +0 -538
  404. package/template/public/Cesium1.119/Workers/chunk-QB3MDM4J.js +0 -1670
  405. package/template/public/Cesium1.119/Workers/chunk-R6KGAEF6.js +0 -392
  406. package/template/public/Cesium1.119/Workers/chunk-RXTBM4OI.js +0 -57
  407. package/template/public/Cesium1.119/Workers/chunk-SB224QGV.js +0 -72
  408. package/template/public/Cesium1.119/Workers/chunk-T6BE4RZK.js +0 -37
  409. package/template/public/Cesium1.119/Workers/chunk-TAMCUKAR.js +0 -814
  410. package/template/public/Cesium1.119/Workers/chunk-TMSETF7M.js +0 -579
  411. package/template/public/Cesium1.119/Workers/chunk-TOGHF3VN.js +0 -376
  412. package/template/public/Cesium1.119/Workers/chunk-UH2WFNTA.js +0 -111
  413. package/template/public/Cesium1.119/Workers/chunk-V7JEDBOE.js +0 -573
  414. package/template/public/Cesium1.119/Workers/chunk-VBIROZR5.js +0 -633
  415. package/template/public/Cesium1.119/Workers/chunk-W23CU777.js +0 -271
  416. package/template/public/Cesium1.119/Workers/chunk-X5IHHI6X.js +0 -173
  417. package/template/public/Cesium1.119/Workers/chunk-XHX2UPDO.js +0 -217
  418. package/template/public/Cesium1.119/Workers/combineGeometry.js +0 -53
  419. package/template/public/Cesium1.119/Workers/createBoxGeometry.js +0 -45
  420. package/template/public/Cesium1.119/Workers/createBoxOutlineGeometry.js +0 -189
  421. package/template/public/Cesium1.119/Workers/createCircleGeometry.js +0 -148
  422. package/template/public/Cesium1.119/Workers/createCircleOutlineGeometry.js +0 -105
  423. package/template/public/Cesium1.119/Workers/createCoplanarPolygonGeometry.js +0 -293
  424. package/template/public/Cesium1.119/Workers/createCoplanarPolygonOutlineGeometry.js +0 -143
  425. package/template/public/Cesium1.119/Workers/createCorridorGeometry.js +0 -830
  426. package/template/public/Cesium1.119/Workers/createCorridorOutlineGeometry.js +0 -417
  427. package/template/public/Cesium1.119/Workers/createCylinderGeometry.js +0 -47
  428. package/template/public/Cesium1.119/Workers/createCylinderOutlineGeometry.js +0 -170
  429. package/template/public/Cesium1.119/Workers/createEllipseGeometry.js +0 -58
  430. package/template/public/Cesium1.119/Workers/createEllipseOutlineGeometry.js +0 -51
  431. package/template/public/Cesium1.119/Workers/createEllipsoidGeometry.js +0 -46
  432. package/template/public/Cesium1.119/Workers/createEllipsoidOutlineGeometry.js +0 -45
  433. package/template/public/Cesium1.119/Workers/createFrustumGeometry.js +0 -45
  434. package/template/public/Cesium1.119/Workers/createFrustumOutlineGeometry.js +0 -164
  435. package/template/public/Cesium1.119/Workers/createGeometry.js +0 -159
  436. package/template/public/Cesium1.119/Workers/createGroundPolylineGeometry.js +0 -911
  437. package/template/public/Cesium1.119/Workers/createPlaneGeometry.js +0 -185
  438. package/template/public/Cesium1.119/Workers/createPlaneOutlineGeometry.js +0 -93
  439. package/template/public/Cesium1.119/Workers/createPolygonGeometry.js +0 -884
  440. package/template/public/Cesium1.119/Workers/createPolygonOutlineGeometry.js +0 -359
  441. package/template/public/Cesium1.119/Workers/createPolylineGeometry.js +0 -349
  442. package/template/public/Cesium1.119/Workers/createPolylineVolumeGeometry.js +0 -262
  443. package/template/public/Cesium1.119/Workers/createPolylineVolumeOutlineGeometry.js +0 -177
  444. package/template/public/Cesium1.119/Workers/createRectangleGeometry.js +0 -787
  445. package/template/public/Cesium1.119/Workers/createRectangleOutlineGeometry.js +0 -299
  446. package/template/public/Cesium1.119/Workers/createSimplePolylineGeometry.js +0 -294
  447. package/template/public/Cesium1.119/Workers/createSphereGeometry.js +0 -84
  448. package/template/public/Cesium1.119/Workers/createSphereOutlineGeometry.js +0 -83
  449. package/template/public/Cesium1.119/Workers/createTaskProcessorWorker.js +0 -28
  450. package/template/public/Cesium1.119/Workers/createVectorTileClampedPolylines.js +0 -289
  451. package/template/public/Cesium1.119/Workers/createVectorTileGeometries.js +0 -258
  452. package/template/public/Cesium1.119/Workers/createVectorTilePoints.js +0 -79
  453. package/template/public/Cesium1.119/Workers/createVectorTilePolygons.js +0 -275
  454. package/template/public/Cesium1.119/Workers/createVectorTilePolylines.js +0 -176
  455. package/template/public/Cesium1.119/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -375
  456. package/template/public/Cesium1.119/Workers/createVerticesFromHeightmap.js +0 -1772
  457. package/template/public/Cesium1.119/Workers/createVerticesFromQuantizedTerrainMesh.js +0 -425
  458. package/template/public/Cesium1.119/Workers/createWallGeometry.js +0 -320
  459. package/template/public/Cesium1.119/Workers/createWallOutlineGeometry.js +0 -229
  460. package/template/public/Cesium1.119/Workers/decodeDraco.js +0 -227
  461. package/template/public/Cesium1.119/Workers/decodeGoogleEarthEnterprisePacket.js +0 -1836
  462. package/template/public/Cesium1.119/Workers/decodeI3S.js +0 -924
  463. package/template/public/Cesium1.119/Workers/transcodeKTX2.js +0 -3180
  464. package/template/public/Cesium1.119/Workers/transferTypedArrayTest.js +0 -34
  465. package/template/public/Cesium1.119/Workers/upsampleQuantizedTerrainMesh.js +0 -534
  466. package/template/public/Cesium1.119/index.cjs +0 -185632
  467. package/template/public/Cesium1.119/index.js +0 -182874
  468. package/template/src/views/Test/index.vue +0 -23
  469. package/template/tests/unit/example.test.ts +0 -7
@@ -0,0 +1,5 @@
1
+ export default {
2
+ plugins: {
3
+ autoprefixer: {},
4
+ },
5
+ };
@@ -1,230 +1,280 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
- const axios = require('axios');
4
- const { execFileSync } = require('child_process');
5
- const fse = require('fs-extra');
6
-
7
- function fixTypeName(name) {
8
- return name.replace(/\s+/g, '');
9
- }
10
-
11
- function fixSwagger(doc) {
12
- if (doc.components && doc.components.schemas) {
13
- for (const [key, schema] of Object.entries(doc.components.schemas)) {
14
- if (key.includes(' ')) {
15
- const newKey = fixTypeName(key);
16
- doc.components.schemas[newKey] = schema;
17
- delete doc.components.schemas[key];
18
- }
19
- }
20
- }
21
- if (doc.paths) {
22
- for (const [_, methods] of Object.entries(doc.paths)) {
23
- for (const [_, method] of Object.entries(methods)) {
24
- if (method.parameters) {
25
- method.parameters = method.parameters
26
- .filter((p) => p.in !== 'header')
27
- .map((p) => {
28
- if (p.type) {
29
- p.schema = { type: fixTypeName(p.type) };
30
- if (p.format) p.schema.format = p.format;
31
- delete p.type;
32
- delete p.format;
33
- }
34
- if (p.schema && p.schema.$ref) {
35
- p.schema.$ref = p.schema.$ref.replace(/\s+/g, '');
36
- }
37
- return p;
38
- });
39
- }
40
- if (method.requestBody && method.requestBody.content) {
41
- for (const contentType in method.requestBody.content) {
42
- const schema = method.requestBody.content[contentType].schema;
43
- if (schema && schema.$ref) {
44
- schema.$ref = schema.$ref.replace(/\s+/g, '');
45
- }
46
- }
47
- }
48
- if (method.responses) {
49
- for (const code in method.responses) {
50
- const resp = method.responses[code];
51
- if (resp.content) {
52
- for (const contentType in resp.content) {
53
- const schema = resp.content[contentType].schema;
54
- if (schema && schema.$ref) {
55
- schema.$ref = schema.$ref.replace(/\s+/g, '');
56
- }
57
- }
58
- }
59
- }
60
- }
61
- if (method.operationId && typeof method.operationId === 'string') {
62
- const parts = method.operationId.split('/');
63
- method.operationId = parts[parts.length - 1];
64
- }
65
- }
66
- }
67
- }
68
- return doc;
69
- }
70
-
71
- async function fetchAndFixSwagger(url, outputPath) {
72
- const { data } = await axios.get(url);
73
- const fixed = fixSwagger(data);
74
- fs.writeFileSync(outputPath, JSON.stringify(fixed, null, 2), 'utf-8');
75
- }
76
-
77
- function quoteForCmd(arg) {
78
- if (arg === '') return '""';
79
- const needsQuote = /[\s&()^\[\]{}=;!'+,`~|<>"]/g.test(arg);
80
- if (!needsQuote) return arg;
81
- return `"${String(arg).replace(/"/g, '\\"')}"`;
82
- }
83
-
84
- function execOnWindowsViaCmd(commandLine) {
85
- execFileSync('cmd.exe', ['/d', '/s', '/c', commandLine], { stdio: 'inherit' });
86
- }
87
-
88
- function runAndReport(cmd, args, options = {}) {
89
- try {
90
- execFileSync(cmd, args, options);
91
- } catch (e) {
92
- const stdout = e && e.stdout ? e.stdout.toString() : '';
93
- const stderr = e && e.stderr ? e.stderr.toString() : '';
94
- if (stdout.trim()) console.error(`\n[openapi-generator stdout]\n${stdout}\n`);
95
- if (stderr.trim()) console.error(`\n[openapi-generator stderr]\n${stderr}\n`);
96
- throw e;
97
- }
98
- }
99
-
100
- /**
101
- * 如果你不想改系统环境变量:
102
- * 1) 安装 JDK 后,改这里的路径为你的 JDK 安装目录
103
- * 2) 脚本会临时把 JAVA_HOME/bin 注入 PATH,只影响本次运行
104
- */
105
- function withJavaEnv(baseEnv) {
106
- const env = { ...baseEnv };
107
-
108
- // 如果你已全局装好 Java(java -version 可用),可以把这块注释掉
109
- // TODO: 把这里改成你的 JDK 路径
110
- const JDK_HOME = env.JDK_HOME || env.JAVA_HOME || 'C:\\Program Files\\Java\\jdk-17';
111
-
112
- if (process.platform === 'win32') {
113
- const javaBin = path.join(JDK_HOME, 'bin');
114
- env.JAVA_HOME = JDK_HOME;
115
- env.PATH = `${javaBin};${env.PATH || ''}`;
116
- } else {
117
- // Unix: 一般装好后 java 已在 PATH;如需也可注入
118
- // env.JAVA_HOME = JDK_HOME;
119
- // env.PATH = `${path.join(JDK_HOME, 'bin')}:${env.PATH || ''}`;
120
- }
121
-
122
- return env;
123
- }
124
-
125
- function runOpenapiGenerator(args) {
126
- const localCliMain = path.resolve(
127
- process.cwd(),
128
- 'node_modules',
129
- '@openapitools',
130
- 'openapi-generator-cli',
131
- 'main.js'
132
- );
133
-
134
- const env = withJavaEnv(process.env);
135
-
136
- if (fs.existsSync(localCliMain)) {
137
- runAndReport(process.execPath, [localCliMain, ...args], {
138
- stdio: ['ignore', 'pipe', 'pipe'],
139
- env,
140
- });
141
- return;
142
- }
143
-
144
- if (process.platform === 'win32') {
145
- const cmdline = ['npx', 'openapi-generator-cli', ...args]
146
- .map(quoteForCmd)
147
- .join(' ');
148
- execFileSync('cmd.exe', ['/d', '/s', '/c', cmdline], { stdio: 'inherit', env });
149
- return;
150
- }
151
-
152
- runAndReport('npx', ['openapi-generator-cli', ...args], {
153
- stdio: ['ignore', 'pipe', 'pipe'],
154
- env,
155
- });
156
- }
157
-
158
- function generateClient(inputPath, outputDir) {
159
- const relativeInputPath = path.relative(process.cwd(), inputPath);
160
- const relativeOutputDir = path.relative(process.cwd(), outputDir);
161
-
162
- try {
163
- runOpenapiGenerator([
164
- 'generate',
165
- '--skip-validate-spec',
166
- '-i',
167
- relativeInputPath,
168
- '-g',
169
- 'typescript-axios',
170
- '-o',
171
- relativeOutputDir,
172
- ]);
173
- } catch (e) {
174
- const msg = e && e.message ? e.message : String(e);
175
- console.error(`❌ openapi-generator 执行失败: ${msg}`);
176
- throw e;
177
- }
178
- }
179
-
180
- function moveToSrcApi(serviceName, tempDir, targetBase) {
181
- const destDir = path.join(targetBase, serviceName);
182
- if (fs.existsSync(destDir)) fse.removeSync(destDir);
183
-
184
- const filesToRemove = [
185
- '.swagger-codegen',
186
- '.gitignore',
187
- '.npmignore',
188
- '.swagger-codegen-ignore',
189
- 'git_push.sh',
190
- 'package.json',
191
- 'README.md',
192
- 'tsconfig.json',
193
- ];
194
- for (const file of filesToRemove) {
195
- const f = path.join(tempDir, file);
196
- if (fs.existsSync(f)) fs.rmSync(f, { recursive: true, force: true });
197
- }
198
-
199
- fse.moveSync(tempDir, destDir, { overwrite: true });
200
- console.log(`✅ ${serviceName} 接口生成完毕,已移动到 src/api/${serviceName}`);
201
- }
202
-
203
- async function generateService(serviceName, apiUrl) {
204
- const tempPath = path.join(__dirname, '.tmp', serviceName);
205
- const fixedJsonPath = path.join(tempPath, 'swagger-fixed.json');
206
-
207
- fs.mkdirSync(tempPath, { recursive: true });
208
- await fetchAndFixSwagger(apiUrl, fixedJsonPath);
209
- generateClient(fixedJsonPath, tempPath);
210
- moveToSrcApi(serviceName, tempPath, path.resolve(__dirname, '../src/api'));
211
- }
212
-
213
- async function main() {
214
- const base = 'http://10.20.124.50:30030';
215
- const services = [
216
- { name: 'userservice', url: `${base}/userservice/v2/v3/api-docs` },
217
- { name: 'storageservice', url: `${base}/storageservice/v2/v3/api-docs` },
218
- { name: 'underwatersys', url: `${base}/underwatersys/v3/api-docs` },
219
- ];
220
-
221
- for (const svc of services) {
222
- try {
223
- await generateService(svc.name, svc.url);
224
- } catch (err) {
225
- console.error(`❌ 生成失败: ${svc.name}`, err && err.message ? err.message : err);
226
- }
227
- }
228
- }
229
-
230
- main();
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const axios = require('axios');
4
+ const { execFileSync } = require('child_process');
5
+ const fse = require('fs-extra');
6
+
7
+ function fixTypeName(name) {
8
+ return name.replace(/\s+/g, '');
9
+ }
10
+
11
+ function fixSwagger(doc) {
12
+ if (Array.isArray(doc.servers)) {
13
+ doc.servers = [{ url: '' }];
14
+ }
15
+ if (doc.components && doc.components.schemas) {
16
+ for (const [key, schema] of Object.entries(doc.components.schemas)) {
17
+ if (key.includes(' ')) {
18
+ const newKey = fixTypeName(key);
19
+ doc.components.schemas[newKey] = schema;
20
+ delete doc.components.schemas[key];
21
+ }
22
+ }
23
+ }
24
+ if (doc.paths) {
25
+ for (const [_, methods] of Object.entries(doc.paths)) {
26
+ for (const [_, method] of Object.entries(methods)) {
27
+ if (method.parameters) {
28
+ method.parameters = method.parameters
29
+ .filter((p) => p.in !== 'header')
30
+ .map((p) => {
31
+ if (p.type) {
32
+ p.schema = { type: fixTypeName(p.type) };
33
+ if (p.format) p.schema.format = p.format;
34
+ delete p.type;
35
+ delete p.format;
36
+ }
37
+ if (p.schema && p.schema.$ref) {
38
+ p.schema.$ref = p.schema.$ref.replace(/\s+/g, '');
39
+ }
40
+ return p;
41
+ });
42
+ }
43
+ if (method.requestBody && method.requestBody.content) {
44
+ for (const contentType in method.requestBody.content) {
45
+ const schema = method.requestBody.content[contentType].schema;
46
+ if (schema && schema.$ref) {
47
+ schema.$ref = schema.$ref.replace(/\s+/g, '');
48
+ }
49
+ }
50
+ }
51
+ if (method.responses) {
52
+ for (const code in method.responses) {
53
+ const resp = method.responses[code];
54
+ if (resp.content) {
55
+ for (const contentType in resp.content) {
56
+ const schema = resp.content[contentType].schema;
57
+ if (schema && schema.$ref) {
58
+ schema.$ref = schema.$ref.replace(/\s+/g, '');
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ if (method.operationId && typeof method.operationId === 'string') {
65
+ const parts = method.operationId.split('/');
66
+ method.operationId = parts[parts.length - 1];
67
+ }
68
+ }
69
+ }
70
+ }
71
+ return doc;
72
+ }
73
+
74
+ async function fetchAndFixSwagger(url, outputPath) {
75
+ const { data } = await axios.get(url);
76
+ const fixed = fixSwagger(data);
77
+ fs.writeFileSync(outputPath, JSON.stringify(fixed, null, 2), 'utf-8');
78
+ }
79
+
80
+ function quoteForCmd(arg) {
81
+ if (arg === '') return '""';
82
+ const needsQuote = /[\s&()^\[\]{}=;!'+,`~|<>"]/g.test(arg);
83
+ if (!needsQuote) return arg;
84
+ return `"${String(arg).replace(/"/g, '\\"')}"`;
85
+ }
86
+
87
+ function execOnWindowsViaCmd(commandLine) {
88
+ execFileSync('cmd.exe', ['/d', '/s', '/c', commandLine], {
89
+ stdio: 'inherit',
90
+ });
91
+ }
92
+
93
+ function runAndReport(cmd, args, options = {}) {
94
+ try {
95
+ execFileSync(cmd, args, options);
96
+ } catch (e) {
97
+ const stdout = e && e.stdout ? e.stdout.toString() : '';
98
+ const stderr = e && e.stderr ? e.stderr.toString() : '';
99
+ if (stdout.trim())
100
+ console.error(`\n[openapi-generator stdout]\n${stdout}\n`);
101
+ if (stderr.trim())
102
+ console.error(`\n[openapi-generator stderr]\n${stderr}\n`);
103
+ throw e;
104
+ }
105
+ }
106
+
107
+ /**
108
+ * 如果你不想改系统环境变量:
109
+ * 1) 安装 JDK 后,改这里的路径为你的 JDK 安装目录
110
+ * 2) 脚本会临时把 JAVA_HOME/bin 注入 PATH,只影响本次运行
111
+ */
112
+ function withJavaEnv(baseEnv) {
113
+ const env = { ...baseEnv };
114
+
115
+ // 如果你已全局装好 Java(java -version 可用),可以把这块注释掉
116
+ // TODO: 把这里改成你的 JDK 路径
117
+ const JDK_HOME =
118
+ env.JDK_HOME || env.JAVA_HOME || 'C:\\Program Files\\Java\\jdk-17';
119
+
120
+ if (process.platform === 'win32') {
121
+ const javaBin = path.join(JDK_HOME, 'bin');
122
+ env.JAVA_HOME = JDK_HOME;
123
+ env.PATH = `${javaBin};${env.PATH || ''}`;
124
+ } else {
125
+ // Unix: 一般装好后 java 已在 PATH;如需也可注入
126
+ // env.JAVA_HOME = JDK_HOME;
127
+ // env.PATH = `${path.join(JDK_HOME, 'bin')}:${env.PATH || ''}`;
128
+ }
129
+
130
+ return env;
131
+ }
132
+
133
+ function runOpenapiGenerator(args) {
134
+ const localCliMain = path.resolve(
135
+ process.cwd(),
136
+ 'node_modules',
137
+ '@openapitools',
138
+ 'openapi-generator-cli',
139
+ 'main.js'
140
+ );
141
+
142
+ const env = withJavaEnv(process.env);
143
+
144
+ if (fs.existsSync(localCliMain)) {
145
+ runAndReport(process.execPath, [localCliMain, ...args], {
146
+ stdio: ['ignore', 'pipe', 'pipe'],
147
+ env,
148
+ });
149
+ return;
150
+ }
151
+
152
+ if (process.platform === 'win32') {
153
+ const cmdline = ['npx', 'openapi-generator-cli', ...args]
154
+ .map(quoteForCmd)
155
+ .join(' ');
156
+ execFileSync('cmd.exe', ['/d', '/s', '/c', cmdline], {
157
+ stdio: 'inherit',
158
+ env,
159
+ });
160
+ return;
161
+ }
162
+
163
+ runAndReport('npx', ['openapi-generator-cli', ...args], {
164
+ stdio: ['ignore', 'pipe', 'pipe'],
165
+ env,
166
+ });
167
+ }
168
+
169
+ function generateClient(inputPath, outputDir) {
170
+ const relativeInputPath = path.relative(process.cwd(), inputPath);
171
+ const relativeOutputDir = path.relative(process.cwd(), outputDir);
172
+
173
+ try {
174
+ runOpenapiGenerator([
175
+ 'generate',
176
+ '--skip-validate-spec',
177
+ '-i',
178
+ relativeInputPath,
179
+ '-g',
180
+ 'typescript-axios',
181
+ '-o',
182
+ relativeOutputDir,
183
+ ]);
184
+ } catch (e) {
185
+ const msg = e && e.message ? e.message : String(e);
186
+ console.error(`❌ openapi-generator 执行失败: ${msg}`);
187
+ throw e;
188
+ }
189
+ }
190
+
191
+ function moveToSrcApi(serviceName, tempDir, targetBase) {
192
+ const destDir = path.join(targetBase, serviceName);
193
+ if (fs.existsSync(destDir)) fse.removeSync(destDir);
194
+
195
+ const filesToRemove = [
196
+ '.swagger-codegen',
197
+ '.gitignore',
198
+ '.npmignore',
199
+ '.swagger-codegen-ignore',
200
+ 'git_push.sh',
201
+ 'package.json',
202
+ 'README.md',
203
+ 'tsconfig.json',
204
+ ];
205
+ for (const file of filesToRemove) {
206
+ const f = path.join(tempDir, file);
207
+ if (fs.existsSync(f)) fs.rmSync(f, { recursive: true, force: true });
208
+ }
209
+
210
+ fse.moveSync(tempDir, destDir, { overwrite: true });
211
+ console.log(
212
+ `✅ ${serviceName} 接口生成完毕,已移动到 src/api/${serviceName}`
213
+ );
214
+ }
215
+
216
+ function toCamelExportName(serviceName) {
217
+ const parts = serviceName.split(/[^a-zA-Z0-9]+/).filter(Boolean);
218
+ if (parts.length === 0) return serviceName;
219
+ const [first, ...rest] = parts;
220
+ return (
221
+ first.toLowerCase() +
222
+ rest.map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join('')
223
+ );
224
+ }
225
+
226
+ function toEnvKey(serviceName) {
227
+ return serviceName.replace(/[^a-zA-Z0-9]+/g, '_').toUpperCase();
228
+ }
229
+
230
+ function writeServiceClient(serviceName, targetBase) {
231
+ const destDir = path.join(targetBase, serviceName);
232
+ const envKey = `VITE_${toEnvKey(serviceName)}_API_BASE`;
233
+ const content = `import { Configuration } from "@/api/${serviceName}/configuration";\nimport http from "@/utils/http";\n\nconst env = import.meta.env as Record<string, string | undefined>;\nconst apiBase = (env[\"${envKey}\"] ?? import.meta.env.VITE_API_BASE ?? \"\").replace(/\\/+$/, \"\");\nconst configuration = new Configuration({\n basePath: apiBase,\n});\n\ntype ApiConstructor<T> = new (\n config?: Configuration,\n basePath?: string,\n axios?: typeof http,\n) => T;\n\nexport const createApi = <T>(ApiClass: ApiConstructor<T>): T =>\n new ApiClass(configuration, undefined, http);\n\nexport const apiConfig = configuration;\nexport { http };\n`;
234
+ fs.writeFileSync(path.join(destDir, 'client.ts'), content, 'utf-8');
235
+ }
236
+
237
+ function updateApiIndex(services, targetBase) {
238
+ const lines = services.map(
239
+ (svc) =>
240
+ `export * as ${toCamelExportName(svc.name)} from "@/api/${svc.name}/client";`
241
+ );
242
+ const content = `${lines.join('\n')}\n`;
243
+ fs.writeFileSync(path.join(targetBase, 'index.ts'), content, 'utf-8');
244
+ }
245
+
246
+ async function generateService(serviceName, apiUrl) {
247
+ const tempPath = path.join(__dirname, '.tmp', serviceName);
248
+ const fixedJsonPath = path.join(tempPath, 'swagger-fixed.json');
249
+
250
+ fs.mkdirSync(tempPath, { recursive: true });
251
+ await fetchAndFixSwagger(apiUrl, fixedJsonPath);
252
+ generateClient(fixedJsonPath, tempPath);
253
+ const apiBaseDir = path.resolve(__dirname, '../src/api');
254
+ moveToSrcApi(serviceName, tempPath, apiBaseDir);
255
+ writeServiceClient(serviceName, apiBaseDir);
256
+ }
257
+
258
+ async function main() {
259
+ const base = 'http://10.20.124.50:30030';
260
+ const services = [
261
+ { name: 'userservice', url: `${base}/userservice/v2/v3/api-docs` },
262
+ { name: 'storageservice', url: `${base}/storageservice/v2/v3/api-docs` },
263
+ { name: 'underwatersys', url: `${base}/underwatersys/v3/api-docs` },
264
+ ];
265
+
266
+ for (const svc of services) {
267
+ try {
268
+ await generateService(svc.name, svc.url);
269
+ } catch (err) {
270
+ console.error(
271
+ `❌ 生成失败: ${svc.name}`,
272
+ err && err.message ? err.message : err
273
+ );
274
+ }
275
+ }
276
+
277
+ updateApiIndex(services, path.resolve(__dirname, '../src/api'));
278
+ }
279
+
280
+ main();
@@ -1,59 +1,53 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import process from 'node:process';
4
- import { execSync } from 'node:child_process';
5
-
6
- const rootDir = process.cwd();
7
- const createDir = path.join(rootDir, 'create-swdg');
8
- const swdgDir = path.join(rootDir, 'swdg');
9
-
10
- const createPkgPath = path.join(createDir, 'package.json');
11
- const swdgPkgPath = path.join(swdgDir, 'package.json');
12
-
13
- const input = process.argv[2];
14
- if (!input) {
15
- console.error('Usage: node scripts/release.mjs <x.y.z>');
16
- process.exit(1);
17
- }
18
-
19
- const readJson = (filePath) => JSON.parse(fs.readFileSync(filePath, 'utf8'));
20
- const writeJson = (filePath, data) =>
21
- fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n', 'utf8');
22
-
23
- const isValidVersion = (value) => /^\d+\.\d+\.\d+$/.test(value);
24
- const createPkg = readJson(createPkgPath);
25
- const swdgPkg = readJson(swdgPkgPath);
26
-
27
- if (!isValidVersion(input)) {
28
- console.error('Version must be in x.y.z format, e.g. 0.1.2');
29
- process.exit(1);
30
- }
31
-
32
- const nextVersion = input;
33
-
34
- createPkg.version = nextVersion;
35
- swdgPkg.version = nextVersion;
36
- swdgPkg.dependencies = swdgPkg.dependencies || {};
37
- swdgPkg.dependencies['create-swdg-frontend'] = `^${nextVersion}`;
38
-
39
- writeJson(createPkgPath, createPkg);
40
- writeJson(swdgPkgPath, swdgPkg);
41
-
42
- try {
43
- execSync('npm config set registry https://registry.npmjs.org/', {
44
- stdio: 'inherit',
45
- });
46
- execSync('pnpm -C create-swdg run prepublishOnly', { stdio: 'inherit' });
47
- execSync('npm publish --access public --registry https://registry.npmjs.org/', {
48
- stdio: 'inherit',
49
- cwd: createDir,
50
- });
51
- execSync('npm publish --access public --registry https://registry.npmjs.org/', {
52
- stdio: 'inherit',
53
- cwd: swdgDir,
54
- });
55
- } finally {
56
- execSync('npm config set registry https://registry.npmmirror.com/', {
57
- stdio: 'inherit',
58
- });
59
- }
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import process from 'node:process';
4
+ import { execSync } from 'node:child_process';
5
+
6
+ const rootDir = process.cwd();
7
+ const createDir = path.join(rootDir, 'create-swdg');
8
+ const swdgDir = path.join(rootDir, 'swdg');
9
+
10
+ const input = process.argv[2];
11
+ if (!input) {
12
+ console.error('Usage: node scripts/release.mjs <x.y.z>');
13
+ console.error('Tip: push tag v<x.y.z> to GitHub for automated npm publish.');
14
+ process.exit(1);
15
+ }
16
+
17
+ if (!/^\d+\.\d+\.\d+$/.test(input)) {
18
+ console.error('Version must be in x.y.z format, e.g. 0.1.2');
19
+ process.exit(1);
20
+ }
21
+
22
+ console.log('\nRunning release test pipeline (must pass before publish)…\n');
23
+ execSync('node scripts/test-pipeline.mjs', { stdio: 'inherit', cwd: rootDir });
24
+
25
+ execSync(`node scripts/set-release-version.mjs ${input}`, {
26
+ stdio: 'inherit',
27
+ cwd: rootDir,
28
+ });
29
+
30
+ try {
31
+ execSync('npm config set registry https://registry.npmjs.org/', {
32
+ stdio: 'inherit',
33
+ });
34
+ execSync('pnpm -C create-swdg run prepublishOnly', { stdio: 'inherit' });
35
+ execSync(
36
+ 'npm publish --access public --registry https://registry.npmjs.org/',
37
+ {
38
+ stdio: 'inherit',
39
+ cwd: createDir,
40
+ }
41
+ );
42
+ execSync(
43
+ 'npm publish --access public --registry https://registry.npmjs.org/',
44
+ {
45
+ stdio: 'inherit',
46
+ cwd: swdgDir,
47
+ }
48
+ );
49
+ } finally {
50
+ execSync('npm config set registry https://registry.npmmirror.com/', {
51
+ stdio: 'inherit',
52
+ });
53
+ }