@yinuo-ngm/server 1.0.14 → 1.0.16

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 (257) hide show
  1. package/lib/app.js +2 -0
  2. package/lib/plugins/error-handler.plugin.js +5 -0
  3. package/lib/plugins/nginx.binding.store.d.ts +4 -0
  4. package/lib/plugins/nginx.binding.store.js +39 -0
  5. package/lib/plugins/nginx.plugin.d.ts +3 -0
  6. package/lib/plugins/nginx.plugin.js +23 -0
  7. package/lib/plugins/ws/topics/index.d.ts +1 -0
  8. package/lib/plugins/ws/topics/index.js +1 -0
  9. package/lib/plugins/ws/topics/nginx.ws.d.ts +7 -0
  10. package/lib/plugins/ws/topics/nginx.ws.js +59 -0
  11. package/lib/plugins/ws/ws.plugin.js +3 -0
  12. package/lib/routes/api-client/hub-cookie-jar.d.ts +3 -0
  13. package/lib/routes/api-client/hub-cookie-jar.js +54 -0
  14. package/lib/routes/api-client/hub-token.routes.d.ts +2 -0
  15. package/lib/routes/api-client/hub-token.routes.js +284 -0
  16. package/lib/routes/api-client/index.d.ts +1 -0
  17. package/lib/routes/api-client/index.js +1 -0
  18. package/lib/routes/api-client/send.routes.js +60 -1
  19. package/lib/routes/hub.routes.d.ts +2 -0
  20. package/lib/routes/hub.routes.js +103 -0
  21. package/lib/routes/index.js +7 -0
  22. package/lib/routes/nginx/nginx-config.routes.d.ts +2 -0
  23. package/lib/routes/nginx/nginx-config.routes.js +94 -0
  24. package/lib/routes/nginx/nginx-lifecycle.routes.d.ts +2 -0
  25. package/lib/routes/nginx/nginx-lifecycle.routes.js +108 -0
  26. package/lib/routes/nginx/nginx-log.routes.d.ts +2 -0
  27. package/lib/routes/nginx/nginx-log.routes.js +47 -0
  28. package/lib/routes/nginx/nginx-module.routes.d.ts +2 -0
  29. package/lib/routes/nginx/nginx-module.routes.js +123 -0
  30. package/lib/routes/nginx/nginx-route.context.d.ts +9 -0
  31. package/lib/routes/nginx/nginx-route.context.js +36 -0
  32. package/lib/routes/nginx/nginx-server.routes.d.ts +2 -0
  33. package/lib/routes/nginx/nginx-server.routes.js +97 -0
  34. package/lib/routes/nginx.routes.d.ts +2 -0
  35. package/lib/routes/nginx.routes.js +17 -0
  36. package/lib/routes/node-version.routes.d.ts +2 -0
  37. package/lib/routes/node-version.routes.js +56 -0
  38. package/lib/routes/project.routes.js +5 -0
  39. package/lib/routes/sprite-browse.routes.js +19 -5
  40. package/lib/routes/sprite.routes.js +17 -11
  41. package/lib/routes/static-files.routes.js +16 -0
  42. package/lib/routes/task.routes.js +7 -0
  43. package/package.json +5 -4
  44. package/www/3rdpartylicenses.txt +75 -0
  45. package/www/browser/assets/vs/_commonjsHelpers-CT9FvmAN.js +1 -0
  46. package/www/browser/assets/vs/abap-D-t0cyap.js +1 -0
  47. package/www/browser/assets/vs/apex-CcIm7xu6.js +1 -0
  48. package/www/browser/assets/vs/assets/css.worker-HnVq6Ewq.js +93 -0
  49. package/www/browser/assets/vs/assets/editor.worker-Be8ye1pW.js +26 -0
  50. package/www/browser/assets/vs/assets/html.worker-B51mlPHg.js +470 -0
  51. package/www/browser/assets/vs/assets/json.worker-DKiEKt88.js +58 -0
  52. package/www/browser/assets/vs/assets/ts.worker-CMbG-7ft.js +67731 -0
  53. package/www/browser/assets/vs/azcli-BA0tQDCg.js +1 -0
  54. package/www/browser/assets/vs/basic-languages/monaco.contribution.js +1 -0
  55. package/www/browser/assets/vs/bat-C397hTD6.js +1 -0
  56. package/www/browser/assets/vs/bicep-DF5aW17k.js +2 -0
  57. package/www/browser/assets/vs/cameligo-plsz8qhj.js +1 -0
  58. package/www/browser/assets/vs/clojure-Y2auQMzK.js +1 -0
  59. package/www/browser/assets/vs/coffee-Bu45yuWE.js +1 -0
  60. package/www/browser/assets/vs/cpp-CkKPQIni.js +1 -0
  61. package/www/browser/assets/vs/csharp-CX28MZyh.js +1 -0
  62. package/www/browser/assets/vs/csp-D8uWnyxW.js +1 -0
  63. package/www/browser/assets/vs/css-CaeNmE3S.js +3 -0
  64. package/www/browser/assets/vs/cssMode-CjiAH6dQ.js +1 -0
  65. package/www/browser/assets/vs/cypher-DVThT8BS.js +1 -0
  66. package/www/browser/assets/vs/dart-CmGfCvrO.js +1 -0
  67. package/www/browser/assets/vs/dockerfile-CZqqYdch.js +1 -0
  68. package/www/browser/assets/vs/ecl-30fUercY.js +1 -0
  69. package/www/browser/assets/vs/editor/editor.main.css +1 -0
  70. package/www/browser/assets/vs/editor/editor.main.js +5 -0
  71. package/www/browser/assets/vs/editor.api-CalNCsUg.js +903 -0
  72. package/www/browser/assets/vs/elixir-xjPaIfzF.js +1 -0
  73. package/www/browser/assets/vs/flow9-DqtmStfK.js +1 -0
  74. package/www/browser/assets/vs/freemarker2-Cz_sV6Md.js +3 -0
  75. package/www/browser/assets/vs/fsharp-BOMdg4U1.js +1 -0
  76. package/www/browser/assets/vs/go-D_hbi-Jt.js +1 -0
  77. package/www/browser/assets/vs/graphql-CKUU4kLG.js +1 -0
  78. package/www/browser/assets/vs/handlebars-OwglfO-1.js +1 -0
  79. package/www/browser/assets/vs/hcl-DTaboeZW.js +1 -0
  80. package/www/browser/assets/vs/html-Pa1xEWsY.js +1 -0
  81. package/www/browser/assets/vs/htmlMode-Bz67EXwp.js +1 -0
  82. package/www/browser/assets/vs/ini-CsNwO04R.js +1 -0
  83. package/www/browser/assets/vs/java-CI4ZMsH9.js +1 -0
  84. package/www/browser/assets/vs/javascript-PczUCGdz.js +1 -0
  85. package/www/browser/assets/vs/jsonMode-DULH5oaX.js +7 -0
  86. package/www/browser/assets/vs/julia-BwzEvaQw.js +1 -0
  87. package/www/browser/assets/vs/kotlin-IUYPiTV8.js +1 -0
  88. package/www/browser/assets/vs/language/css/monaco.contribution.js +1 -0
  89. package/www/browser/assets/vs/language/html/monaco.contribution.js +1 -0
  90. package/www/browser/assets/vs/language/json/monaco.contribution.js +1 -0
  91. package/www/browser/assets/vs/language/typescript/monaco.contribution.js +1 -0
  92. package/www/browser/assets/vs/less-C0eDYdqa.js +2 -0
  93. package/www/browser/assets/vs/lexon-iON-Kj97.js +1 -0
  94. package/www/browser/assets/vs/liquid-DqKjdPGy.js +1 -0
  95. package/www/browser/assets/vs/loader.js +1368 -0
  96. package/www/browser/assets/vs/lspLanguageFeatures-kM9O9rjY.js +4 -0
  97. package/www/browser/assets/vs/lua-DtygF91M.js +1 -0
  98. package/www/browser/assets/vs/m3-CsR4AuFi.js +1 -0
  99. package/www/browser/assets/vs/markdown-C_rD0bIw.js +1 -0
  100. package/www/browser/assets/vs/mdx-DEWtB1K5.js +1 -0
  101. package/www/browser/assets/vs/mips-CiYP61RB.js +1 -0
  102. package/www/browser/assets/vs/monaco.contribution-D2OdxNBt.js +1 -0
  103. package/www/browser/assets/vs/monaco.contribution-DO3azKX8.js +1 -0
  104. package/www/browser/assets/vs/monaco.contribution-EcChJV6a.js +1 -0
  105. package/www/browser/assets/vs/monaco.contribution-qLAYrEOP.js +1 -0
  106. package/www/browser/assets/vs/msdax-C38-sJlp.js +1 -0
  107. package/www/browser/assets/vs/mysql-CdtbpvbG.js +1 -0
  108. package/www/browser/assets/vs/nls.messages-loader.js +1 -0
  109. package/www/browser/assets/vs/nls.messages.cs.js.js +17 -0
  110. package/www/browser/assets/vs/nls.messages.de.js.js +17 -0
  111. package/www/browser/assets/vs/nls.messages.es.js.js +17 -0
  112. package/www/browser/assets/vs/nls.messages.fr.js.js +15 -0
  113. package/www/browser/assets/vs/nls.messages.it.js.js +15 -0
  114. package/www/browser/assets/vs/nls.messages.ja.js.js +17 -0
  115. package/www/browser/assets/vs/nls.messages.js.js +10 -0
  116. package/www/browser/assets/vs/nls.messages.ko.js.js +25 -0
  117. package/www/browser/assets/vs/nls.messages.pl.js.js +17 -0
  118. package/www/browser/assets/vs/nls.messages.pt-br.js.js +6 -0
  119. package/www/browser/assets/vs/nls.messages.ru.js.js +17 -0
  120. package/www/browser/assets/vs/nls.messages.tr.js.js +15 -0
  121. package/www/browser/assets/vs/nls.messages.zh-cn.js.js +17 -0
  122. package/www/browser/assets/vs/nls.messages.zh-tw.js.js +15 -0
  123. package/www/browser/assets/vs/objective-c-CntZFaHX.js +1 -0
  124. package/www/browser/assets/vs/pascal-r6kuqfl_.js +1 -0
  125. package/www/browser/assets/vs/pascaligo-BiXoTmXh.js +1 -0
  126. package/www/browser/assets/vs/perl-DABw_TcH.js +1 -0
  127. package/www/browser/assets/vs/pgsql-me_jFXeX.js +1 -0
  128. package/www/browser/assets/vs/php-D_kh-9LK.js +1 -0
  129. package/www/browser/assets/vs/pla-VfZjczW0.js +1 -0
  130. package/www/browser/assets/vs/postiats-BBSzz8Pk.js +1 -0
  131. package/www/browser/assets/vs/powerquery-Dt-g_2cc.js +1 -0
  132. package/www/browser/assets/vs/powershell-B-7ap1zc.js +1 -0
  133. package/www/browser/assets/vs/protobuf-BmtuEB1A.js +2 -0
  134. package/www/browser/assets/vs/pug-BRpRNeEb.js +1 -0
  135. package/www/browser/assets/vs/python-Cr0UkIbn.js +1 -0
  136. package/www/browser/assets/vs/qsharp-BzsFaUU9.js +1 -0
  137. package/www/browser/assets/vs/r-f8dDdrp4.js +1 -0
  138. package/www/browser/assets/vs/razor-BYAHOTkz.js +1 -0
  139. package/www/browser/assets/vs/redis-fvZQY4PI.js +1 -0
  140. package/www/browser/assets/vs/redshift-45Et0LQi.js +1 -0
  141. package/www/browser/assets/vs/restructuredtext-C7UUFKFD.js +1 -0
  142. package/www/browser/assets/vs/ruby-CZO8zYTz.js +1 -0
  143. package/www/browser/assets/vs/rust-Bfetafyc.js +1 -0
  144. package/www/browser/assets/vs/sb-3GYllVck.js +1 -0
  145. package/www/browser/assets/vs/scala-foMgrKo1.js +1 -0
  146. package/www/browser/assets/vs/scheme-CHdMtr7p.js +1 -0
  147. package/www/browser/assets/vs/scss-C1cmLt9V.js +3 -0
  148. package/www/browser/assets/vs/shell-ClXCKCEW.js +1 -0
  149. package/www/browser/assets/vs/solidity-MZ6ExpPy.js +1 -0
  150. package/www/browser/assets/vs/sophia-DWkuSsPQ.js +1 -0
  151. package/www/browser/assets/vs/sparql-AUGFYSyk.js +1 -0
  152. package/www/browser/assets/vs/sql-32GpJSV2.js +1 -0
  153. package/www/browser/assets/vs/st-CuDFIVZ_.js +1 -0
  154. package/www/browser/assets/vs/swift-n-2HociN.js +3 -0
  155. package/www/browser/assets/vs/systemverilog-Ch4vA8Yt.js +1 -0
  156. package/www/browser/assets/vs/tcl-D74tq1nH.js +1 -0
  157. package/www/browser/assets/vs/tsMode-CZz1Umrk.js +11 -0
  158. package/www/browser/assets/vs/twig-C6taOxMV.js +1 -0
  159. package/www/browser/assets/vs/typescript-DfOrAzoV.js +1 -0
  160. package/www/browser/assets/vs/typespec-D-PIh9Xw.js +1 -0
  161. package/www/browser/assets/vs/vb-Dyb2648j.js +1 -0
  162. package/www/browser/assets/vs/wgsl-BhLXMOR0.js +298 -0
  163. package/www/browser/assets/vs/workers-DcJshg-q.js +1 -0
  164. package/www/browser/assets/vs/xml-CdsdnY8S.js +1 -0
  165. package/www/browser/assets/vs/yaml-DYGvmE88.js +1 -0
  166. package/www/browser/chunk-2BZRE4G7.js +1 -0
  167. package/www/browser/chunk-2X3MRS27.js +1 -0
  168. package/www/browser/chunk-4KETC6EB.js +1 -0
  169. package/www/browser/{chunk-SNCDDYQR.js → chunk-5T5KA5PG.js} +1 -1
  170. package/www/browser/chunk-6CGHNKJI.js +1 -0
  171. package/www/browser/chunk-76TVIB33.js +63 -0
  172. package/www/browser/chunk-7J24TP36.js +1 -0
  173. package/www/browser/chunk-ACAZUX6C.js +1 -0
  174. package/www/browser/chunk-B6MBYCXI.js +1 -0
  175. package/www/browser/chunk-BYEU6KGP.js +2 -0
  176. package/www/browser/chunk-CZ5AZ3VW.js +1 -0
  177. package/www/browser/chunk-DW7F5PEA.js +1 -0
  178. package/www/browser/chunk-DXF7BVK5.js +1 -0
  179. package/www/browser/{chunk-HEKO7RQP.js → chunk-EEVPZGEY.js} +1 -1
  180. package/www/browser/chunk-G2W3B7TJ.js +1 -0
  181. package/www/browser/chunk-GDWS2L66.js +1 -0
  182. package/www/browser/chunk-HGONFYP6.js +1 -0
  183. package/www/browser/chunk-HHBPULJW.js +2 -0
  184. package/www/browser/chunk-HRXCR3IN.js +1 -0
  185. package/www/browser/chunk-INL2PELS.js +1 -0
  186. package/www/browser/chunk-JHMEKUZ5.js +1 -0
  187. package/www/browser/{chunk-OC62FHHS.js → chunk-JU3TEDBV.js} +2 -2
  188. package/www/browser/chunk-JZULA5JV.js +1 -0
  189. package/www/browser/{chunk-HZ73CM45.js → chunk-KVFR7GFV.js} +1 -1
  190. package/www/browser/chunk-L5D75AMV.js +1 -0
  191. package/www/browser/chunk-L7TMCSHV.js +1 -0
  192. package/www/browser/{chunk-E6LF4XBJ.js → chunk-LQ5OXSW7.js} +2 -2
  193. package/www/browser/chunk-MVQTKINJ.js +1 -0
  194. package/www/browser/chunk-N4LRZJBP.js +1 -0
  195. package/www/browser/chunk-O2EYEF7J.js +1 -0
  196. package/www/browser/chunk-OMDHJIUB.js +1 -0
  197. package/www/browser/chunk-OWUAAOHW.js +2 -0
  198. package/www/browser/chunk-PIK5YPIB.js +1 -0
  199. package/www/browser/chunk-RHLQRQDK.js +9 -0
  200. package/www/browser/chunk-RW2JPJV7.js +1 -0
  201. package/www/browser/chunk-S3SJ4VVM.js +11 -0
  202. package/www/browser/chunk-SPRWNZHF.js +15 -0
  203. package/www/browser/chunk-SQQNR223.js +1 -0
  204. package/www/browser/chunk-SVQWPHF5.js +1 -0
  205. package/www/browser/{chunk-56SDBJDG.js → chunk-SYCNSLAW.js} +4 -4
  206. package/www/browser/chunk-T3KK7ZXB.js +2 -0
  207. package/www/browser/chunk-TMX5TTV3.js +1 -0
  208. package/www/browser/chunk-UFY3FLDK.js +1 -0
  209. package/www/browser/chunk-UJOHBN2Y.js +1 -0
  210. package/www/browser/chunk-UQGCUFNM.js +1 -0
  211. package/www/browser/chunk-UXXWRMM6.js +1 -0
  212. package/www/browser/chunk-UZRJGJTD.js +2 -0
  213. package/www/browser/chunk-WD4IAQR3.js +1 -0
  214. package/www/browser/chunk-WF2QTF5L.js +1 -0
  215. package/www/browser/chunk-WI67LAOV.js +4 -0
  216. package/www/browser/chunk-WNCM6QKB.js +1 -0
  217. package/www/browser/chunk-XJ5KZQNN.js +1 -0
  218. package/www/browser/chunk-YETDFSQE.js +1 -0
  219. package/www/browser/chunk-YMTC5GZK.js +1 -0
  220. package/www/browser/chunk-YVZHJ76K.js +1 -0
  221. package/www/browser/chunk-ZNTJRLVH.js +1 -0
  222. package/www/browser/favicon.ico +0 -0
  223. package/www/browser/index.html +2 -2
  224. package/www/browser/main-6LN5C22E.js +34 -0
  225. package/www/browser/scripts-U25HCVEI.js +6 -0
  226. package/www/browser/chunk-25RT7L2O.js +0 -1
  227. package/www/browser/chunk-2P5WKSWB.js +0 -5
  228. package/www/browser/chunk-2XZHN52E.js +0 -1
  229. package/www/browser/chunk-3MBM5AMR.js +0 -1
  230. package/www/browser/chunk-3V5PIKHE.js +0 -11
  231. package/www/browser/chunk-42JVTVYH.js +0 -1
  232. package/www/browser/chunk-4IQIZX7Y.js +0 -1
  233. package/www/browser/chunk-4UAHOL42.js +0 -1
  234. package/www/browser/chunk-5DD65JMJ.js +0 -1
  235. package/www/browser/chunk-5EQOKH7G.js +0 -12
  236. package/www/browser/chunk-6JH45SUC.js +0 -1
  237. package/www/browser/chunk-6X6PEDE5.js +0 -1
  238. package/www/browser/chunk-AI6SNMEH.js +0 -1
  239. package/www/browser/chunk-AMXCOT2F.js +0 -1
  240. package/www/browser/chunk-DP3VTELD.js +0 -1
  241. package/www/browser/chunk-EMK65RIU.js +0 -1
  242. package/www/browser/chunk-EYGWZTTT.js +0 -1
  243. package/www/browser/chunk-GKY4LJF4.js +0 -1
  244. package/www/browser/chunk-HJC5MNP5.js +0 -1
  245. package/www/browser/chunk-ITXWAN4J.js +0 -1
  246. package/www/browser/chunk-IZNTCWTR.js +0 -1
  247. package/www/browser/chunk-KN3WZJH7.js +0 -1
  248. package/www/browser/chunk-KPO75P5E.js +0 -1
  249. package/www/browser/chunk-LWBZC6ZL.js +0 -2
  250. package/www/browser/chunk-NYXWJKSW.js +0 -1
  251. package/www/browser/chunk-QM5ROT66.js +0 -1
  252. package/www/browser/chunk-SJG2JCPL.js +0 -4
  253. package/www/browser/chunk-W633D3VG.js +0 -1
  254. package/www/browser/chunk-X3HFJACM.js +0 -2
  255. package/www/browser/chunk-YFAKNLWB.js +0 -2
  256. package/www/browser/chunk-ZSPNEYSK.js +0 -1
  257. package/www/browser/main-O5GAJRDW.js +0 -34
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nginxRoutes = nginxRoutes;
4
+ const nginx_route_context_1 = require("./nginx/nginx-route.context");
5
+ const nginx_config_routes_1 = require("./nginx/nginx-config.routes");
6
+ const nginx_lifecycle_routes_1 = require("./nginx/nginx-lifecycle.routes");
7
+ const nginx_log_routes_1 = require("./nginx/nginx-log.routes");
8
+ const nginx_module_routes_1 = require("./nginx/nginx-module.routes");
9
+ const nginx_server_routes_1 = require("./nginx/nginx-server.routes");
10
+ async function nginxRoutes(fastify) {
11
+ const context = (0, nginx_route_context_1.createNginxRouteContext)(fastify);
12
+ (0, nginx_lifecycle_routes_1.registerNginxLifecycleRoutes)(context);
13
+ (0, nginx_config_routes_1.registerNginxConfigRoutes)(context);
14
+ (0, nginx_server_routes_1.registerNginxServerRoutes)(context);
15
+ (0, nginx_module_routes_1.registerNginxModuleRoutes)(context);
16
+ (0, nginx_log_routes_1.registerNginxLogRoutes)(context);
17
+ }
@@ -0,0 +1,2 @@
1
+ import type { FastifyInstance } from 'fastify';
2
+ export default function nodeVersionRoutes(fastify: FastifyInstance): Promise<void>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = nodeVersionRoutes;
4
+ const core_1 = require("@yinuo-ngm/core");
5
+ async function nodeVersionRoutes(fastify) {
6
+ fastify.get('/current', async () => {
7
+ const service = fastify.core.nodeVersion;
8
+ return await service.getCurrentVersion();
9
+ });
10
+ fastify.post('/switch', async (req) => {
11
+ const { version } = req.body || {};
12
+ if (!version) {
13
+ throw new core_1.AppError('VERSION_REQUIRED', '请指定要切换的 Node 版本', {});
14
+ }
15
+ const service = fastify.core.nodeVersion;
16
+ return await service.switchVersion(version);
17
+ });
18
+ fastify.post('/project-requirement', async (req) => {
19
+ const { projectPath } = req.body || {};
20
+ if (!projectPath) {
21
+ throw new core_1.AppError('PROJECT_PATH_REQUIRED', '请指定项目路径', {});
22
+ }
23
+ const service = fastify.core.nodeVersion;
24
+ return await service.detectProjectRequirement(projectPath);
25
+ });
26
+ fastify.post('/install', async (req) => {
27
+ const { version } = req.body || {};
28
+ if (!version) {
29
+ throw new core_1.AppError('VERSION_REQUIRED', '请指定要安装的 Node 版本', {});
30
+ }
31
+ const service = fastify.core.nodeVersion;
32
+ const result = await service.installNodeVersion(version);
33
+ return result;
34
+ });
35
+ fastify.post('/uninstall', async (req) => {
36
+ const { version } = req.body || {};
37
+ if (!version) {
38
+ throw new core_1.AppError('VERSION_REQUIRED', '请指定要卸载的 Node 版本', {});
39
+ }
40
+ const service = fastify.core.nodeVersion;
41
+ const success = await service.uninstallNodeVersion(version);
42
+ return { success };
43
+ });
44
+ fastify.post('/write-engine-config', async (req) => {
45
+ const { projectPath, version } = req.body || {};
46
+ if (!projectPath) {
47
+ throw new core_1.AppError('PROJECT_PATH_REQUIRED', '请指定项目路径', {});
48
+ }
49
+ if (!version) {
50
+ throw new core_1.AppError('VERSION_REQUIRED', '请指定版本要求', {});
51
+ }
52
+ const service = fastify.core.nodeVersion;
53
+ const success = await service.writeEngineConfig(projectPath, version);
54
+ return { success };
55
+ });
56
+ }
@@ -152,6 +152,11 @@ async function projectRoutes(fastify) {
152
152
  const updated = await fastify.core.project.rename(id, body.name.trim());
153
153
  return updated;
154
154
  });
155
+ fastify.post("/refreshScripts/:id", async (req) => {
156
+ const { id } = req.params;
157
+ const updated = await fastify.core.project.refreshScripts(id);
158
+ return updated;
159
+ });
155
160
  fastify.post("/edit/:id", async (req) => {
156
161
  const { id } = req.params;
157
162
  const body = req.body;
@@ -48,26 +48,40 @@ async function spriteBrowseRoutes(fastify) {
48
48
  fastify.get("/icons/groups/:projectId", async (req) => {
49
49
  const { projectId } = req.params;
50
50
  const project = await fastify.core.project.get(projectId);
51
- const root = project?.assets?.iconsSvn?.localDir;
51
+ const cfg = await fastify.core.sprite.getConfig(projectId);
52
+ const localRoot = String(cfg?.localImageRoot ?? "").trim();
53
+ const root = localRoot || project?.assets?.iconsSvn?.localDir;
52
54
  if (!root) {
53
55
  return { root: "", entries: [] };
54
56
  }
55
- return { root, entries: listDir(root).filter(e => e.kind === "dir") };
57
+ const entries = listDir(root).filter(e => e.kind === "dir");
58
+ if (localRoot) {
59
+ const rootFiles = listDir(root).filter((e) => e.kind === "file" && (e.ext === ".png" || e.ext === ".svg"));
60
+ if (rootFiles.length > 0) {
61
+ entries.unshift({ name: "root", kind: "dir", ext: undefined });
62
+ }
63
+ }
64
+ return { root, entries };
56
65
  });
57
66
  fastify.get("/icons/files/:projectId", async (req) => {
58
67
  const { projectId } = req.params;
59
68
  const group = req.query?.group;
60
69
  const project = await fastify.core.project.get(projectId);
61
- const root = project?.assets?.iconsSvn?.localDir;
70
+ const cfg = await fastify.core.sprite.getConfig(projectId);
71
+ const localRoot = String(cfg?.localImageRoot ?? "").trim();
72
+ const root = localRoot || project?.assets?.iconsSvn?.localDir;
62
73
  if (!root) {
63
74
  return { root: "", entries: [] };
64
75
  }
65
- const groupDir = safeJoin(root, group || '');
76
+ const isRootGroup = !!localRoot && (group === "root");
77
+ const groupDir = isRootGroup ? root : safeJoin(root, group || '');
66
78
  const entries = listDir(groupDir)
67
79
  .filter(e => e.kind === "file")
68
80
  .map(e => ({
69
81
  ...e,
70
- url: `/api/static/svn/${projectId}/icons/${group}/${e.name}`,
82
+ url: localRoot
83
+ ? `/api/static/local/${projectId}/${isRootGroup ? e.name : `${group}/${e.name}`}`
84
+ : `/api/static/svn/${projectId}/icons/${group}/${e.name}`,
71
85
  }));
72
86
  return { root: groupDir, entries };
73
87
  });
@@ -14,26 +14,30 @@ async function spriteRoutes(fastify) {
14
14
  fastify.post("/config/:projectId", async (req) => {
15
15
  const { projectId } = req.params;
16
16
  const body = req.body;
17
- if (!body || !body.config || !body.assets) {
18
- throw new core_1.AppError('BAD_REQUEST', 'Missing config or assets in request body');
17
+ if (!body || !body.config) {
18
+ throw new core_1.AppError('BAD_REQUEST', 'Missing config in request body');
19
19
  }
20
20
  const nextCfg = body.config;
21
- const nextAssets = body.assets;
22
- if (!nextAssets.iconsSvn) {
23
- throw new core_1.AppError('BAD_REQUEST', 'iconsSvn asset is required');
21
+ const nextAssets = body.assets || {};
22
+ const hasLocalImageRoot = !!String(nextCfg.localImageRoot ?? "").trim();
23
+ if (!nextAssets.iconsSvn && !hasLocalImageRoot) {
24
+ throw new core_1.AppError('BAD_REQUEST', 'iconsSvn asset or localImageRoot is required');
24
25
  }
25
- if (nextCfg.localDir) {
26
+ if (nextCfg.localDir && nextAssets.iconsSvn) {
26
27
  nextAssets.iconsSvn.localDir = node_path_1.default.join(nextCfg.localDir, nextAssets.iconsSvn.label || 'icons');
27
28
  if (nextAssets.cutImageSvn) {
28
29
  nextAssets.cutImageSvn.localDir = node_path_1.default.join(nextCfg.localDir, nextAssets.cutImageSvn.label || 'images');
29
30
  }
30
31
  }
31
- const p = await fastify.core.project.updateAssets(projectId, nextAssets);
32
- if (p.assets?.iconsSvn) {
33
- nextCfg.sourceId = p.assets.iconsSvn.id;
32
+ const shouldUpdateAssets = !!(nextAssets.iconsSvn || nextAssets.cutImageSvn);
33
+ const project = shouldUpdateAssets
34
+ ? await fastify.core.project.updateAssets(projectId, nextAssets)
35
+ : await fastify.core.project.get(projectId);
36
+ if (project.assets?.iconsSvn) {
37
+ nextCfg.sourceId = project.assets.iconsSvn.id;
34
38
  }
35
39
  const cfg = await fastify.core.sprite.createConfig(projectId, nextCfg);
36
- return { cfg, project: p };
40
+ return { cfg, project };
37
41
  });
38
42
  fastify.post("/generate/:projectId", async (req) => {
39
43
  const { projectId } = req.params;
@@ -48,6 +52,8 @@ async function spriteRoutes(fastify) {
48
52
  });
49
53
  fastify.get("/list/:projectId", async (req) => {
50
54
  const { projectId } = req.params;
51
- return await fastify.core.sprite.getSprites(projectId);
55
+ const query = req.query;
56
+ const local = String(query['local'] ?? '').toLowerCase() === 'true';
57
+ return await fastify.core.sprite.getSprites(projectId, local);
52
58
  });
53
59
  }
@@ -80,4 +80,20 @@ async function staticFileRoutes(fastify) {
80
80
  reply.header("Content-Type", ct);
81
81
  return reply.send((0, node_fs_1.createReadStream)(filePath));
82
82
  });
83
+ fastify.get("/local/:projectId/*", async (req, reply) => {
84
+ const { projectId } = req.params;
85
+ const file = req.params["*"];
86
+ const cfg = await fastify.core.sprite.getConfig(projectId);
87
+ const root = String(cfg?.localImageRoot ?? "").trim();
88
+ if (!root) {
89
+ throw new core_1.AppError("ASSET_NOT_FOUND", "localImageRoot not configured");
90
+ }
91
+ const filePath = safeJoin(root, file);
92
+ if (!node_fs_1.default.existsSync(filePath)) {
93
+ throw new core_1.AppError("NOT_FOUND", "Requested file not found in local folder");
94
+ }
95
+ const ct = mime_types_1.default.lookup(filePath) || "application/octet-stream";
96
+ reply.header("Content-Type", ct);
97
+ return reply.send((0, node_fs_1.createReadStream)(filePath));
98
+ });
83
99
  }
@@ -32,6 +32,13 @@ async function taskRoutes(fastify) {
32
32
  throw new core_1.AppError("TASK_ID_REQUIRED", "taskId is required", { body });
33
33
  return await fastify.core.task.stop(taskId);
34
34
  });
35
+ fastify.post("/restart", async (req) => {
36
+ const body = req.body;
37
+ const taskId = body?.taskId?.trim();
38
+ if (!taskId)
39
+ throw new core_1.AppError("TASK_ID_REQUIRED", "taskId is required", { body });
40
+ return await fastify.core.task.restart(taskId);
41
+ });
35
42
  fastify.get("/status/:taskId", async (req) => {
36
43
  const { taskId } = req.params;
37
44
  return await fastify.core.task.status(taskId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yinuo-ngm/server",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "a server package for Yinuo NG Manager",
5
5
  "author": "ZhangJing <892295834@qq.com>",
6
6
  "license": "ISC",
@@ -22,8 +22,9 @@
22
22
  "dependencies": {
23
23
  "@fastify/static": "^9.0.0",
24
24
  "@fastify/websocket": "^11.2.0",
25
- "@yinuo-ngm/api": "^0.1.4",
26
- "@yinuo-ngm/core": "^0.1.6",
25
+ "@yinuo-ngm/api": "^0.1.5",
26
+ "@yinuo-ngm/core": "^0.1.8",
27
+ "@yinuo-ngm/nginx": "^0.1.1",
27
28
  "fastify": "^5.6.2",
28
29
  "fastify-plugin": "^5.1.0",
29
30
  "launch-editor": "^2.12.0",
@@ -35,5 +36,5 @@
35
36
  "@types/mime-types": "^3.0.1",
36
37
  "tsx": "^4.21.0"
37
38
  },
38
- "gitHead": "e290fb282902950892b7ff1f36c633bd37e77dab"
39
+ "gitHead": "a460311e2e16b1287561f722b184d3533dc2849a"
39
40
  }
@@ -82,6 +82,81 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
82
82
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
83
83
  THE SOFTWARE.
84
84
 
85
+ --------------------------------------------------------------------------------
86
+ Package: marked
87
+ License: "MIT"
88
+
89
+ # License information
90
+
91
+ ## Contribution License Agreement
92
+
93
+ If you contribute code to this project, you are implicitly allowing your code
94
+ to be distributed under the MIT license. You are also implicitly verifying that
95
+ all code is your original work. `</legalese>`
96
+
97
+ ## Marked
98
+
99
+ Copyright (c) 2018+, MarkedJS (https://github.com/markedjs/)
100
+ Copyright (c) 2011-2018, Christopher Jeffrey (https://github.com/chjj/)
101
+
102
+ Permission is hereby granted, free of charge, to any person obtaining a copy
103
+ of this software and associated documentation files (the "Software"), to deal
104
+ in the Software without restriction, including without limitation the rights
105
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
106
+ copies of the Software, and to permit persons to whom the Software is
107
+ furnished to do so, subject to the following conditions:
108
+
109
+ The above copyright notice and this permission notice shall be included in
110
+ all copies or substantial portions of the Software.
111
+
112
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
113
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
114
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
115
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
116
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
117
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
118
+ THE SOFTWARE.
119
+
120
+ ## Markdown
121
+
122
+ Copyright © 2004, John Gruber
123
+ http://daringfireball.net/
124
+ All rights reserved.
125
+
126
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
127
+
128
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
129
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
130
+ * Neither the name “Markdown” nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
131
+
132
+ This software is provided by the copyright holders and contributors “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
133
+
134
+ --------------------------------------------------------------------------------
135
+ Package: ngx-markdown
136
+ License: "MIT"
137
+
138
+ MIT License
139
+
140
+ Copyright (c) 2017-2025 Jean-Francois Cere
141
+
142
+ Permission is hereby granted, free of charge, to any person obtaining a copy
143
+ of this software and associated documentation files (the "Software"), to deal
144
+ in the Software without restriction, including without limitation the rights
145
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
146
+ copies of the Software, and to permit persons to whom the Software is
147
+ furnished to do so, subject to the following conditions:
148
+
149
+ The above copyright notice and this permission notice shall be included in all
150
+ copies or substantial portions of the Software.
151
+
152
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
153
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
154
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
155
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
156
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
157
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
158
+ SOFTWARE.
159
+
85
160
  --------------------------------------------------------------------------------
86
161
  Package: @angular/animations
87
162
  License: "MIT"
@@ -0,0 +1 @@
1
+ define("vs/_commonjsHelpers-CT9FvmAN",["exports"],(function(t){"use strict";function o(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}t.getDefaultExportFromCjs=o}));
@@ -0,0 +1 @@
1
+ define("vs/abap-D-t0cyap",["exports"],(function(e){"use strict";const t={comments:{lineComment:"*"},brackets:[["[","]"],["(",")"]]},n={defaultToken:"invalid",ignoreCase:!0,tokenPostfix:".abap",keywords:["abap-source","abbreviated","abstract","accept","accepting","according","activation","actual","add","add-corresponding","adjacent","after","alias","aliases","align","all","allocate","alpha","analysis","analyzer","and","append","appendage","appending","application","archive","area","arithmetic","as","ascending","aspect","assert","assign","assigned","assigning","association","asynchronous","at","attributes","authority","authority-check","avg","back","background","backup","backward","badi","base","before","begin","between","big","binary","bintohex","bit","black","blank","blanks","blob","block","blocks","blue","bound","boundaries","bounds","boxed","break-point","buffer","by","bypassing","byte","byte-order","call","calling","case","cast","casting","catch","center","centered","chain","chain-input","chain-request","change","changing","channels","character","char-to-hex","check","checkbox","ci_","circular","class","class-coding","class-data","class-events","class-methods","class-pool","cleanup","clear","client","clob","clock","close","coalesce","code","coding","col_background","col_group","col_heading","col_key","col_negative","col_normal","col_positive","col_total","collect","color","column","columns","comment","comments","commit","common","communication","comparing","component","components","compression","compute","concat","concat_with_space","concatenate","cond","condense","condition","connect","connection","constants","context","contexts","continue","control","controls","conv","conversion","convert","copies","copy","corresponding","country","cover","cpi","create","creating","critical","currency","currency_conversion","current","cursor","cursor-selection","customer","customer-function","dangerous","data","database","datainfo","dataset","date","dats_add_days","dats_add_months","dats_days_between","dats_is_valid","daylight","dd/mm/yy","dd/mm/yyyy","ddmmyy","deallocate","decimal_shift","decimals","declarations","deep","default","deferred","define","defining","definition","delete","deleting","demand","department","descending","describe","destination","detail","dialog","directory","disconnect","display","display-mode","distinct","divide","divide-corresponding","division","do","dummy","duplicate","duplicates","duration","during","dynamic","dynpro","edit","editor-call","else","elseif","empty","enabled","enabling","encoding","end","endat","endcase","endcatch","endchain","endclass","enddo","endenhancement","end-enhancement-section","endexec","endform","endfunction","endian","endif","ending","endinterface","end-lines","endloop","endmethod","endmodule","end-of-definition","end-of-editing","end-of-file","end-of-page","end-of-selection","endon","endprovide","endselect","end-test-injection","end-test-seam","endtry","endwhile","endwith","engineering","enhancement","enhancement-point","enhancements","enhancement-section","entries","entry","enum","environment","equiv","errormessage","errors","escaping","event","events","exact","except","exception","exceptions","exception-table","exclude","excluding","exec","execute","exists","exit","exit-command","expand","expanding","expiration","explicit","exponent","export","exporting","extend","extended","extension","extract","fail","fetch","field","field-groups","fields","field-symbol","field-symbols","file","filter","filters","filter-table","final","find","first","first-line","fixed-point","fkeq","fkge","flush","font","for","form","format","forward","found","frame","frames","free","friends","from","function","functionality","function-pool","further","gaps","generate","get","giving","gkeq","gkge","global","grant","green","group","groups","handle","handler","harmless","hashed","having","hdb","header","headers","heading","head-lines","help-id","help-request","hextobin","hide","high","hint","hold","hotspot","icon","id","identification","identifier","ids","if","ignore","ignoring","immediately","implementation","implementations","implemented","implicit","import","importing","in","inactive","incl","include","includes","including","increment","index","index-line","infotypes","inheriting","init","initial","initialization","inner","inout","input","insert","instance","instances","instr","intensified","interface","interface-pool","interfaces","internal","intervals","into","inverse","inverted-date","is","iso","job","join","keep","keeping","kernel","key","keys","keywords","kind","language","last","late","layout","leading","leave","left","left-justified","leftplus","leftspace","legacy","length","let","level","levels","like","line","lines","line-count","linefeed","line-selection","line-size","list","listbox","list-processing","little","llang","load","load-of-program","lob","local","locale","locator","logfile","logical","log-point","long","loop","low","lower","lpad","lpi","ltrim","mail","main","major-id","mapping","margin","mark","mask","match","matchcode","max","maximum","medium","members","memory","mesh","message","message-id","messages","messaging","method","methods","min","minimum","minor-id","mm/dd/yy","mm/dd/yyyy","mmddyy","mode","modif","modifier","modify","module","move","move-corresponding","multiply","multiply-corresponding","name","nametab","native","nested","nesting","new","new-line","new-page","new-section","next","no","no-display","no-extension","no-gap","no-gaps","no-grouping","no-heading","no-scrolling","no-sign","no-title","no-topofpage","no-zero","node","nodes","non-unicode","non-unique","not","null","number","object","objects","obligatory","occurrence","occurrences","occurs","of","off","offset","ole","on","only","open","option","optional","options","or","order","other","others","out","outer","output","output-length","overflow","overlay","pack","package","pad","padding","page","pages","parameter","parameters","parameter-table","part","partially","pattern","percentage","perform","performing","person","pf1","pf10","pf11","pf12","pf13","pf14","pf15","pf2","pf3","pf4","pf5","pf6","pf7","pf8","pf9","pf-status","pink","places","pool","pos_high","pos_low","position","pragmas","precompiled","preferred","preserving","primary","print","print-control","priority","private","procedure","process","program","property","protected","provide","public","push","pushbutton","put","queue-only","quickinfo","radiobutton","raise","raising","range","ranges","read","reader","read-only","receive","received","receiver","receiving","red","redefinition","reduce","reduced","ref","reference","refresh","regex","reject","remote","renaming","replace","replacement","replacing","report","request","requested","reserve","reset","resolution","respecting","responsible","result","results","resumable","resume","retry","return","returncode","returning","returns","right","right-justified","rightplus","rightspace","risk","rmc_communication_failure","rmc_invalid_status","rmc_system_failure","role","rollback","rows","rpad","rtrim","run","sap","sap-spool","saving","scale_preserving","scale_preserving_scientific","scan","scientific","scientific_with_leading_zero","scroll","scroll-boundary","scrolling","search","secondary","seconds","section","select","selection","selections","selection-screen","selection-set","selection-sets","selection-table","select-options","send","separate","separated","set","shared","shift","short","shortdump-id","sign_as_postfix","single","size","skip","skipping","smart","some","sort","sortable","sorted","source","specified","split","spool","spots","sql","sqlscript","stable","stamp","standard","starting","start-of-editing","start-of-selection","state","statement","statements","static","statics","statusinfo","step-loop","stop","structure","structures","style","subkey","submatches","submit","subroutine","subscreen","subtract","subtract-corresponding","suffix","sum","summary","summing","supplied","supply","suppress","switch","switchstates","symbol","syncpoints","syntax","syntax-check","syntax-trace","system-call","system-exceptions","system-exit","tab","tabbed","table","tables","tableview","tabstrip","target","task","tasks","test","testing","test-injection","test-seam","text","textpool","then","throw","time","times","timestamp","timezone","tims_is_valid","title","titlebar","title-lines","to","tokenization","tokens","top-lines","top-of-page","trace-file","trace-table","trailing","transaction","transfer","transformation","translate","transporting","trmac","truncate","truncation","try","tstmp_add_seconds","tstmp_current_utctimestamp","tstmp_is_valid","tstmp_seconds_between","type","type-pool","type-pools","types","uline","unassign","under","unicode","union","unique","unit_conversion","unix","unpack","until","unwind","up","update","upper","user","user-command","using","utf-8","valid","value","value-request","values","vary","varying","verification-message","version","via","view","visible","wait","warning","when","whenever","where","while","width","window","windows","with","with-heading","without","with-title","word","work","write","writer","xml","xsd","yellow","yes","yymmdd","zero","zone","abap_system_timezone","abap_user_timezone","access","action","adabas","adjust_numbers","allow_precision_loss","allowed","amdp","applicationuser","as_geo_json","as400","associations","balance","behavior","breakup","bulk","cds","cds_client","check_before_save","child","clients","corr","corr_spearman","cross","cycles","datn_add_days","datn_add_months","datn_days_between","dats_from_datn","dats_tims_to_tstmp","dats_to_datn","db2","db6","ddl","dense_rank","depth","deterministic","discarding","entities","entity","error","failed","finalize","first_value","fltp_to_dec","following","fractional","full","graph","grouping","hierarchy","hierarchy_ancestors","hierarchy_ancestors_aggregate","hierarchy_descendants","hierarchy_descendants_aggregate","hierarchy_siblings","incremental","indicators","lag","last_value","lead","leaves","like_regexpr","link","locale_sap","lock","locks","many","mapped","matched","measures","median","mssqlnt","multiple","nodetype","ntile","nulls","occurrences_regexpr","one","operations","oracle","orphans","over","parent","parents","partition","pcre","period","pfcg_mapping","preceding","privileged","product","projection","rank","redirected","replace_regexpr","reported","response","responses","root","row","row_number","sap_system_date","save","schema","session","sets","shortdump","siblings","spantree","start","stddev","string_agg","subtotal","sybase","tims_from_timn","tims_to_timn","to_blob","to_clob","total","trace-entry","tstmp_to_dats","tstmp_to_dst","tstmp_to_tims","tstmpl_from_utcl","tstmpl_to_utcl","unbounded","utcl_add_seconds","utcl_current","utcl_seconds_between","uuid","var","verbatim"],builtinFunctions:["abs","acos","asin","atan","bit-set","boolc","boolx","ceil","char_off","charlen","cmax","cmin","concat_lines_of","contains","contains_any_not_of","contains_any_of","cos","cosh","count","count_any_not_of","count_any_of","dbmaxlen","distance","escape","exp","find_any_not_of","find_any_of","find_end","floor","frac","from_mixed","ipow","line_exists","line_index","log","log10","matches","nmax","nmin","numofchar","repeat","rescale","reverse","round","segment","shift_left","shift_right","sign","sin","sinh","sqrt","strlen","substring","substring_after","substring_before","substring_from","substring_to","tan","tanh","to_lower","to_mixed","to_upper","trunc","utclong_add","utclong_current","utclong_diff","xsdbool","xstrlen"],typeKeywords:["b","c","d","decfloat16","decfloat34","f","i","int8","n","p","s","string","t","utclong","x","xstring","any","clike","csequence","decfloat","numeric","simple","xsequence","accp","char","clnt","cuky","curr","datn","dats","d16d","d16n","d16r","d34d","d34n","d34r","dec","df16_dec","df16_raw","df34_dec","df34_raw","fltp","geom_ewkb","int1","int2","int4","lang","lchr","lraw","numc","quan","raw","rawstring","sstring","timn","tims","unit","utcl","df16_scl","df34_scl","prec","varc","abap_bool","abap_false","abap_true","abap_undefined","me","screen","space","super","sy","syst","table_line","*sys*"],builtinMethods:["class_constructor","constructor"],derivedTypes:["%CID","%CID_REF","%CONTROL","%DATA","%ELEMENT","%FAIL","%KEY","%MSG","%PARAM","%PID","%PID_ASSOC","%PID_PARENT","%_HINTS"],cdsLanguage:["@AbapAnnotation","@AbapCatalog","@AccessControl","@API","@ClientDependent","@ClientHandling","@CompatibilityContract","@DataAging","@EndUserText","@Environment","@LanguageDependency","@MappingRole","@Metadata","@MetadataExtension","@ObjectModel","@Scope","@Semantics","$EXTENSION","$SELF"],selectors:["->","->*","=>","~","~*"],operators:[" +"," -","/","*","**","div","mod","=","#","@","+=","-=","*=","/=","**=","&&=","?=","&","&&","bit-and","bit-not","bit-or","bit-xor","m","o","z","<"," >","<=",">=","<>","><","=<","=>","bt","byte-ca","byte-cn","byte-co","byte-cs","byte-na","byte-ns","ca","cn","co","cp","cs","eq","ge","gt","le","lt","na","nb","ne","np","ns","*/","*:","--","/*","//"],symbols:/[=><!~?&+\-*\/\^%#@]+/,tokenizer:{root:[[/[a-z_\/$%@]([\w\/$%]|-(?!>))*/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@cdsLanguage":"annotation","@derivedTypes":"type","@builtinFunctions":"type","@builtinMethods":"type","@operators":"key","@default":"identifier"}}],[/<[\w]+>/,"identifier"],[/##[\w|_]+/,"comment"],{include:"@whitespace"},[/[:,.]/,"delimiter"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@selectors":"tag","@operators":"key","@default":""}}],[/'/,{token:"string",bracket:"@open",next:"@stringquote"}],[/`/,{token:"string",bracket:"@open",next:"@stringping"}],[/\|/,{token:"string",bracket:"@open",next:"@stringtemplate"}],[/\d+/,"number"]],stringtemplate:[[/[^\\\|]+/,"string"],[/\\\|/,"string"],[/\|/,{token:"string",bracket:"@close",next:"@pop"}]],stringping:[[/[^\\`]+/,"string"],[/`/,{token:"string",bracket:"@close",next:"@pop"}]],stringquote:[[/[^\\']+/,"string"],[/'/,{token:"string",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/^\*.*$/,"comment"],[/\".*$/,"comment"]]}};e.conf=t,e.language=n,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1 @@
1
+ define("vs/apex-CcIm7xu6",["exports"],(function(s){"use strict";const o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"),end:new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))")}}},n=["abstract","activate","and","any","array","as","asc","assert","autonomous","begin","bigdecimal","blob","boolean","break","bulk","by","case","cast","catch","char","class","collect","commit","const","continue","convertcurrency","decimal","default","delete","desc","do","double","else","end","enum","exception","exit","export","extends","false","final","finally","float","for","from","future","get","global","goto","group","having","hint","if","implements","import","in","inner","insert","instanceof","int","interface","into","join","last_90_days","last_month","last_n_days","last_week","like","limit","list","long","loop","map","merge","native","new","next_90_days","next_month","next_n_days","next_week","not","null","nulls","number","object","of","on","or","outer","override","package","parallel","pragma","private","protected","public","retrieve","return","returning","rollback","savepoint","search","select","set","short","sort","stat","static","strictfp","super","switch","synchronized","system","testmethod","then","this","this_month","this_week","throw","throws","today","tolabel","tomorrow","transaction","transient","trigger","true","try","type","undelete","update","upsert","using","virtual","void","volatile","webservice","when","where","while","yesterday"],i=e=>e.charAt(0).toUpperCase()+e.substr(1);let t=[];n.forEach(e=>{t.push(e),t.push(e.toUpperCase()),t.push(i(e))});const a={defaultToken:"",tokenPostfix:".apex",keywords:t,operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[a-z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@apexdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],apexdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}};s.conf=o,s.language=a,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})}));