@nocobase/app 2.1.0-alpha.45 → 2.1.0-alpha.47

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 (323) hide show
  1. package/client/public/browser-checker.js +32 -11
  2. package/client/rsbuild.config.ts +8 -1
  3. package/client-v2/public/browser-checker.js +32 -11
  4. package/client-v2/rsbuild.config.ts +36 -5
  5. package/client-v2/src/main.tsx +39 -5
  6. package/dist/client/assets/1507-be1bb59f.js +7 -0
  7. package/dist/client/assets/2702-2229ffce.js +5 -0
  8. package/dist/client/assets/3475-c853dcfb.js +1 -0
  9. package/dist/client/assets/3660-ae135b62.js +6 -0
  10. package/dist/client/assets/3916-03cc08e1.js +6 -0
  11. package/dist/client/assets/4687-cb88a94b.js +1 -0
  12. package/dist/client/assets/6269-d8f21ee9.js +1 -0
  13. package/dist/client/assets/{index-c4fba8c8.js → index-7d00cae2.js} +300 -300
  14. package/dist/client/assets/runtime-6964d231.js +1 -0
  15. package/dist/client/browser-checker.js +32 -11
  16. package/dist/client/index.html +1 -1
  17. package/dist/client/index.html.tpl +1 -1
  18. package/dist/client/v/assets/1310-c0031389.js +59 -0
  19. package/dist/client/v/assets/1425-69534606.js +42 -0
  20. package/dist/client/v/assets/1507-9a211af0.js +7 -0
  21. package/dist/client/v/assets/158-5273dfbb.js +23 -0
  22. package/dist/client/v/assets/1725-d9ce2582.js +83 -0
  23. package/dist/client/v/assets/1786-e6c321bb.js +16 -0
  24. package/dist/client/v/assets/1951-84be8ebc.js +55 -0
  25. package/dist/client/v/assets/2017-29a9879a.js +26 -0
  26. package/dist/client/v/assets/212-0f8a26a2.js +18 -0
  27. package/dist/client/v/assets/2335-669f21bd.js +22 -0
  28. package/dist/client/v/assets/2555-4ca49e21.js +31 -0
  29. package/dist/client/v/assets/2702-5ce93acd.js +5 -0
  30. package/dist/client/v/assets/2710-e7286996.js +36 -0
  31. package/dist/client/v/assets/2726-4d19faa1.js +23 -0
  32. package/dist/client/v/assets/2898-7656f7f9.js +17 -0
  33. package/dist/client/v/assets/2958-93de29a6.js +27 -0
  34. package/dist/client/v/assets/3117-cc936eae.js +33 -0
  35. package/dist/client/v/assets/3475-be655098.js +1 -0
  36. package/dist/client/v/assets/3660-280439df.js +6 -0
  37. package/dist/client/v/assets/3662-8dff1ffe.js +28 -0
  38. package/dist/client/v/assets/3727-1cfef422.js +44 -0
  39. package/dist/client/v/assets/3916-3b34f216.js +6 -0
  40. package/dist/client/v/assets/3989-c8fcfd6c.js +27 -0
  41. package/dist/client/v/assets/4313-ab774fd9.js +28 -0
  42. package/dist/client/v/assets/5501-387a31be.js +17 -0
  43. package/dist/client/v/assets/5721-af25e047.js +18 -0
  44. package/dist/client/v/assets/5759-2b3bdcc6.js +47 -0
  45. package/dist/client/v/assets/5761-857b6bbb.js +28 -0
  46. package/dist/client/v/assets/6269-a8a1ea3f.js +1 -0
  47. package/dist/client/v/assets/6437-3865fd7e.js +12 -0
  48. package/dist/client/v/assets/6738-c6598897.js +20 -0
  49. package/dist/client/v/assets/700-e75b7faa.js +15 -0
  50. package/dist/client/v/assets/7021-4975d54d.js +45 -0
  51. package/dist/client/v/assets/7201-5b49ce84.js +14 -0
  52. package/dist/client/v/assets/7959-f7ef21c6.js +40 -0
  53. package/dist/client/v/assets/8138-e90c290e.js +24 -0
  54. package/dist/client/v/assets/8434-9140d106.js +25 -0
  55. package/dist/client/v/assets/8438-d2ff6bc1.js +37 -0
  56. package/dist/client/v/assets/8562-ffa35312.js +17 -0
  57. package/dist/client/v/assets/9836-fcbb81f6.js +22 -0
  58. package/dist/client/v/assets/index-349a92de.js +1576 -0
  59. package/dist/client/{v2/assets/runtime-0629701e.js → v/assets/runtime-72080663.js} +1 -1
  60. package/dist/client/{v2 → v}/browser-checker.js +32 -11
  61. package/dist/client/v/index.html +21 -0
  62. package/package.json +7 -7
  63. package/dist/client/assets/1507-bfaf088d.js +0 -7
  64. package/dist/client/assets/2702-448a397f.js +0 -5
  65. package/dist/client/assets/3475-9e7a0395.js +0 -1
  66. package/dist/client/assets/3660-fdea8689.js +0 -6
  67. package/dist/client/assets/3916-a8888466.js +0 -6
  68. package/dist/client/assets/6269-5467af50.js +0 -1
  69. package/dist/client/assets/runtime-1dde2b80.js +0 -1
  70. package/dist/client/v2/assets/1310-21e5c8a8.js +0 -59
  71. package/dist/client/v2/assets/1425-a2b446a6.js +0 -42
  72. package/dist/client/v2/assets/1507-a673a0c0.js +0 -7
  73. package/dist/client/v2/assets/158-6a033567.js +0 -23
  74. package/dist/client/v2/assets/1725-6f5b8d53.js +0 -83
  75. package/dist/client/v2/assets/1786-8969223a.js +0 -16
  76. package/dist/client/v2/assets/1951-f63bc4b3.js +0 -55
  77. package/dist/client/v2/assets/2017-b35f125d.js +0 -26
  78. package/dist/client/v2/assets/212-59d29e60.js +0 -18
  79. package/dist/client/v2/assets/2335-1d33c3cf.js +0 -22
  80. package/dist/client/v2/assets/2555-dee484a1.js +0 -31
  81. package/dist/client/v2/assets/2702-8d5ab2a8.js +0 -5
  82. package/dist/client/v2/assets/2710-93d67bf0.js +0 -36
  83. package/dist/client/v2/assets/2726-f6cc5db9.js +0 -23
  84. package/dist/client/v2/assets/2898-2a7d5793.js +0 -17
  85. package/dist/client/v2/assets/2958-5a85effa.js +0 -27
  86. package/dist/client/v2/assets/3117-3d38bb4d.js +0 -33
  87. package/dist/client/v2/assets/3475-c42974e1.js +0 -1
  88. package/dist/client/v2/assets/3660-27f9c6c5.js +0 -6
  89. package/dist/client/v2/assets/3662-135bbea1.js +0 -28
  90. package/dist/client/v2/assets/3727-b74fc29b.js +0 -44
  91. package/dist/client/v2/assets/3916-ba5b43b5.js +0 -6
  92. package/dist/client/v2/assets/3989-e72345bb.js +0 -27
  93. package/dist/client/v2/assets/4313-9687f912.js +0 -28
  94. package/dist/client/v2/assets/5501-a3b5b97f.js +0 -17
  95. package/dist/client/v2/assets/5721-f00ddbf2.js +0 -18
  96. package/dist/client/v2/assets/5759-d5b1d946.js +0 -47
  97. package/dist/client/v2/assets/5761-8ab1974d.js +0 -28
  98. package/dist/client/v2/assets/6269-35e90156.js +0 -1
  99. package/dist/client/v2/assets/6437-2f91d29a.js +0 -12
  100. package/dist/client/v2/assets/6738-eb09fa59.js +0 -20
  101. package/dist/client/v2/assets/700-5f166286.js +0 -15
  102. package/dist/client/v2/assets/7021-01608dc5.js +0 -45
  103. package/dist/client/v2/assets/7201-8e6e91a3.js +0 -14
  104. package/dist/client/v2/assets/7959-ab57fce2.js +0 -40
  105. package/dist/client/v2/assets/8138-704104a5.js +0 -24
  106. package/dist/client/v2/assets/8434-79232eec.js +0 -25
  107. package/dist/client/v2/assets/8438-9d210970.js +0 -37
  108. package/dist/client/v2/assets/8562-215edc37.js +0 -17
  109. package/dist/client/v2/assets/9836-288424d8.js +0 -22
  110. package/dist/client/v2/assets/index-bdb156e2.js +0 -1576
  111. package/dist/client/v2/index.html +0 -20
  112. /package/dist/client/assets/{index-c4fba8c8.js.LICENSE.txt → index-7d00cae2.js.LICENSE.txt} +0 -0
  113. /package/dist/client/{v2 → v}/assets/1052-2ed99808.js +0 -0
  114. /package/dist/client/{v2 → v}/assets/108-76a3fdea.js +0 -0
  115. /package/dist/client/{v2 → v}/assets/108-76a3fdea.js.LICENSE.txt +0 -0
  116. /package/dist/client/{v2 → v}/assets/1101-53bb815a.js +0 -0
  117. /package/dist/client/{v2 → v}/assets/1179-1ec4826c.js +0 -0
  118. /package/dist/client/{v2 → v}/assets/1329-0e47aabd.js +0 -0
  119. /package/dist/client/{v2 → v}/assets/1434-d603f255.js +0 -0
  120. /package/dist/client/{v2 → v}/assets/1463-11b9abe3.js +0 -0
  121. /package/dist/client/{v2 → v}/assets/1469-477cfa59.js +0 -0
  122. /package/dist/client/{v2 → v}/assets/1481-59e4188c.js +0 -0
  123. /package/dist/client/{v2 → v}/assets/1586-73831f88.js +0 -0
  124. /package/dist/client/{v2 → v}/assets/1667-88ad86eb.js +0 -0
  125. /package/dist/client/{v2 → v}/assets/1675-3cbafc50.js +0 -0
  126. /package/dist/client/{v2 → v}/assets/1676-5db7433e.js +0 -0
  127. /package/dist/client/{v2 → v}/assets/183-963396ee.js +0 -0
  128. /package/dist/client/{v2 → v}/assets/1846-0deb6fc0.js +0 -0
  129. /package/dist/client/{v2 → v}/assets/1848-0ef98f01.js +0 -0
  130. /package/dist/client/{v2 → v}/assets/1863-9160dd98.js +0 -0
  131. /package/dist/client/{v2 → v}/assets/1887-bf619cb3.js +0 -0
  132. /package/dist/client/{v2 → v}/assets/192-c347bb96.js +0 -0
  133. /package/dist/client/{v2 → v}/assets/1979-a893b852.js +0 -0
  134. /package/dist/client/{v2 → v}/assets/1986-01c03982.js +0 -0
  135. /package/dist/client/{v2 → v}/assets/2110-961b6f8e.js +0 -0
  136. /package/dist/client/{v2 → v}/assets/2203-9aa79271.js +0 -0
  137. /package/dist/client/{v2 → v}/assets/2258-f667d700.js +0 -0
  138. /package/dist/client/{v2 → v}/assets/2270-ff70d8cb.js +0 -0
  139. /package/dist/client/{v2 → v}/assets/2301-2db05359.js +0 -0
  140. /package/dist/client/{v2 → v}/assets/2322-b9f077c3.js +0 -0
  141. /package/dist/client/{v2 → v}/assets/242-c3e15c94.js +0 -0
  142. /package/dist/client/{v2 → v}/assets/2446-ac5fccd3.js +0 -0
  143. /package/dist/client/{v2 → v}/assets/2512-82c2f81f.js +0 -0
  144. /package/dist/client/{v2 → v}/assets/2512-82c2f81f.js.LICENSE.txt +0 -0
  145. /package/dist/client/{v2 → v}/assets/2565-ad63e92f.js +0 -0
  146. /package/dist/client/{v2 → v}/assets/2606-c4dcd1e1.js +0 -0
  147. /package/dist/client/{v2 → v}/assets/2613-98648bd2.js +0 -0
  148. /package/dist/client/{v2 → v}/assets/2622-3389992f.js +0 -0
  149. /package/dist/client/{v2 → v}/assets/2861-48106fd8.js +0 -0
  150. /package/dist/client/{v2 → v}/assets/2913-6b4e6c17.js +0 -0
  151. /package/dist/client/{v2 → v}/assets/300-ca09229f.js +0 -0
  152. /package/dist/client/{v2 → v}/assets/3005-1449fc4e.js +0 -0
  153. /package/dist/client/{v2 → v}/assets/3018-fc630932.js +0 -0
  154. /package/dist/client/{v2 → v}/assets/3028-efe6f61f.js +0 -0
  155. /package/dist/client/{v2 → v}/assets/3039-7f273921.js +0 -0
  156. /package/dist/client/{v2 → v}/assets/3102-b985963e.js +0 -0
  157. /package/dist/client/{v2 → v}/assets/32-88d3c82f.js +0 -0
  158. /package/dist/client/{v2 → v}/assets/32-88d3c82f.js.LICENSE.txt +0 -0
  159. /package/dist/client/{v2 → v}/assets/3260-3b3c7cd3.js +0 -0
  160. /package/dist/client/{v2 → v}/assets/3279-8d73fd19.js +0 -0
  161. /package/dist/client/{v2 → v}/assets/3283-654f42f7.js +0 -0
  162. /package/dist/client/{v2 → v}/assets/3309-172e3f79.js +0 -0
  163. /package/dist/client/{v2 → v}/assets/335-da9c4d81.js +0 -0
  164. /package/dist/client/{v2 → v}/assets/338-2f192edd.js +0 -0
  165. /package/dist/client/{v2 → v}/assets/3396-4422ee26.js +0 -0
  166. /package/dist/client/{v2 → v}/assets/3458-2958f051.js +0 -0
  167. /package/dist/client/{v2 → v}/assets/3523-5313a211.js +0 -0
  168. /package/dist/client/{v2 → v}/assets/3526-17f4e8e7.js +0 -0
  169. /package/dist/client/{v2 → v}/assets/3641-c2439c22.js +0 -0
  170. /package/dist/client/{v2 → v}/assets/3646-aa6a2478.js +0 -0
  171. /package/dist/client/{v2 → v}/assets/3690-4a8bdf43.js +0 -0
  172. /package/dist/client/{v2 → v}/assets/3859-fa4f6d5d.js +0 -0
  173. /package/dist/client/{v2 → v}/assets/3898-6236af03.js +0 -0
  174. /package/dist/client/{v2 → v}/assets/3937-af967d62.js +0 -0
  175. /package/dist/client/{v2 → v}/assets/3977-3feadc2c.js +0 -0
  176. /package/dist/client/{v2 → v}/assets/3978-29c2602c.js +0 -0
  177. /package/dist/client/{v2 → v}/assets/406-497829bb.js +0 -0
  178. /package/dist/client/{v2 → v}/assets/4076-f68c25bd.js +0 -0
  179. /package/dist/client/{v2 → v}/assets/4096-0050f491.js +0 -0
  180. /package/dist/client/{v2 → v}/assets/4171-0710965d.js +0 -0
  181. /package/dist/client/{v2 → v}/assets/4171-0710965d.js.LICENSE.txt +0 -0
  182. /package/dist/client/{v2 → v}/assets/4195-2a00794d.js +0 -0
  183. /package/dist/client/{v2 → v}/assets/4222-29a8147d.js +0 -0
  184. /package/dist/client/{v2 → v}/assets/4223-3821a30e.js +0 -0
  185. /package/dist/client/{v2 → v}/assets/4358-0a504478.js +0 -0
  186. /package/dist/client/{v2 → v}/assets/4419-3ab9c709.js +0 -0
  187. /package/dist/client/{v2 → v}/assets/4456-49679669.js +0 -0
  188. /package/dist/client/{v2 → v}/assets/448-57d6a00d.js +0 -0
  189. /package/dist/client/{v2 → v}/assets/4594-4e72041f.js +0 -0
  190. /package/dist/client/{v2 → v}/assets/4672-573e9a61.js +0 -0
  191. /package/dist/client/{v2 → v}/assets/4686-afbf676f.js +0 -0
  192. /package/dist/client/{v2 → v}/assets/474-ce4285d1.js +0 -0
  193. /package/dist/client/{v2 → v}/assets/4767-8f9d30dc.js +0 -0
  194. /package/dist/client/{v2 → v}/assets/4784-c69aaa68.js +0 -0
  195. /package/dist/client/{v2 → v}/assets/4801-06781ed7.js +0 -0
  196. /package/dist/client/{v2 → v}/assets/492-937af2ba.js +0 -0
  197. /package/dist/client/{v2 → v}/assets/4930-41adc6b7.js +0 -0
  198. /package/dist/client/{v2 → v}/assets/5064-93d8e29e.js +0 -0
  199. /package/dist/client/{v2 → v}/assets/5087-c505a60e.js +0 -0
  200. /package/dist/client/{v2 → v}/assets/5108-a028f8af.js +0 -0
  201. /package/dist/client/{v2 → v}/assets/5122-649463de.js +0 -0
  202. /package/dist/client/{v2 → v}/assets/5123-0bd0a6f2.js +0 -0
  203. /package/dist/client/{v2 → v}/assets/5139-3039fde4.js +0 -0
  204. /package/dist/client/{v2 → v}/assets/5459-c1f208e3.js +0 -0
  205. /package/dist/client/{v2 → v}/assets/5506-a1f27be3.js +0 -0
  206. /package/dist/client/{v2 → v}/assets/553-1c3126df.js +0 -0
  207. /package/dist/client/{v2 → v}/assets/557-950114e1.js +0 -0
  208. /package/dist/client/{v2 → v}/assets/5640-f846c2a0.js +0 -0
  209. /package/dist/client/{v2 → v}/assets/5642-5c0bab20.js +0 -0
  210. /package/dist/client/{v2 → v}/assets/5674-e33e384f.js +0 -0
  211. /package/dist/client/{v2 → v}/assets/5701-8fe417d1.js +0 -0
  212. /package/dist/client/{v2 → v}/assets/5757-81a89522.js +0 -0
  213. /package/dist/client/{v2 → v}/assets/5791-7c59ba08.js +0 -0
  214. /package/dist/client/{v2 → v}/assets/58-77bfd6c9.js +0 -0
  215. /package/dist/client/{v2 → v}/assets/5815-04fc432a.js +0 -0
  216. /package/dist/client/{v2 → v}/assets/5819-225de680.js +0 -0
  217. /package/dist/client/{v2 → v}/assets/5861-ac056534.js +0 -0
  218. /package/dist/client/{v2 → v}/assets/5870-0c3ecc40.js +0 -0
  219. /package/dist/client/{v2 → v}/assets/5881-b4c942f1.js +0 -0
  220. /package/dist/client/{v2 → v}/assets/5905-a5c3fce6.js +0 -0
  221. /package/dist/client/{v2 → v}/assets/5933-fbe50cd6.js +0 -0
  222. /package/dist/client/{v2 → v}/assets/6062-0e469079.js +0 -0
  223. /package/dist/client/{v2 → v}/assets/6093-641fcafc.js +0 -0
  224. /package/dist/client/{v2 → v}/assets/6157-8e763248.js +0 -0
  225. /package/dist/client/{v2 → v}/assets/6241-55a319df.js +0 -0
  226. /package/dist/client/{v2 → v}/assets/630-110e12f4.js +0 -0
  227. /package/dist/client/{v2 → v}/assets/6345-187e76cf.js +0 -0
  228. /package/dist/client/{v2 → v}/assets/6346-94bdf034.js +0 -0
  229. /package/dist/client/{v2 → v}/assets/6373-9d047c6b.js +0 -0
  230. /package/dist/client/{v2 → v}/assets/6581-51c928bf.js +0 -0
  231. /package/dist/client/{v2 → v}/assets/6660-54e08a8d.js +0 -0
  232. /package/dist/client/{v2 → v}/assets/6870-6a6dba63.js +0 -0
  233. /package/dist/client/{v2 → v}/assets/6914-00d913e7.js +0 -0
  234. /package/dist/client/{v2 → v}/assets/70-f4dc53ad.js +0 -0
  235. /package/dist/client/{v2 → v}/assets/7095-4f425b85.js +0 -0
  236. /package/dist/client/{v2 → v}/assets/7141-b8e2a787.js +0 -0
  237. /package/dist/client/{v2 → v}/assets/7211-b8c71ed2.js +0 -0
  238. /package/dist/client/{v2 → v}/assets/7318-6e1c7877.js +0 -0
  239. /package/dist/client/{v2 → v}/assets/7386-2f5752d4.js +0 -0
  240. /package/dist/client/{v2 → v}/assets/7413-241d463c.js +0 -0
  241. /package/dist/client/{v2 → v}/assets/7492-5c593f52.js +0 -0
  242. /package/dist/client/{v2 → v}/assets/7507-a015d8cf.js +0 -0
  243. /package/dist/client/{v2 → v}/assets/754-41b763b9.js +0 -0
  244. /package/dist/client/{v2 → v}/assets/7555-f42cdb72.js +0 -0
  245. /package/dist/client/{v2 → v}/assets/7608-2b3f2db0.js +0 -0
  246. /package/dist/client/{v2 → v}/assets/7669-8bd94b73.js +0 -0
  247. /package/dist/client/{v2 → v}/assets/7761-637067c6.js +0 -0
  248. /package/dist/client/{v2 → v}/assets/7765-5c7b4a6f.css +0 -0
  249. /package/dist/client/{v2 → v}/assets/7765-abeeeaed.js +0 -0
  250. /package/dist/client/{v2 → v}/assets/7765-abeeeaed.js.LICENSE.txt +0 -0
  251. /package/dist/client/{v2 → v}/assets/7876-673cbc3c.js +0 -0
  252. /package/dist/client/{v2 → v}/assets/791-9cfa98c8.js +0 -0
  253. /package/dist/client/{v2 → v}/assets/7946-09b77e08.js +0 -0
  254. /package/dist/client/{v2 → v}/assets/8053-fa93540e.js +0 -0
  255. /package/dist/client/{v2 → v}/assets/8087-90829087.js +0 -0
  256. /package/dist/client/{v2 → v}/assets/8217-de1369d7.js +0 -0
  257. /package/dist/client/{v2 → v}/assets/8242-3f880357.js +0 -0
  258. /package/dist/client/{v2 → v}/assets/8252-1153ffdd.js +0 -0
  259. /package/dist/client/{v2 → v}/assets/8262-7a324b59.js +0 -0
  260. /package/dist/client/{v2 → v}/assets/8269-52ea88cd.js +0 -0
  261. /package/dist/client/{v2 → v}/assets/8276-b3dfc452.js +0 -0
  262. /package/dist/client/{v2 → v}/assets/828-55028e33.js +0 -0
  263. /package/dist/client/{v2 → v}/assets/8294-9c81768d.js +0 -0
  264. /package/dist/client/{v2 → v}/assets/8295-447d3bb3.js +0 -0
  265. /package/dist/client/{v2 → v}/assets/8349-82eb3ecd.js +0 -0
  266. /package/dist/client/{v2 → v}/assets/8473-b1118703.js +0 -0
  267. /package/dist/client/{v2 → v}/assets/8480-c16f7ee4.js +0 -0
  268. /package/dist/client/{v2 → v}/assets/8624-847569d9.js +0 -0
  269. /package/dist/client/{v2 → v}/assets/8631-b2fd9aac.js +0 -0
  270. /package/dist/client/{v2 → v}/assets/8635-27980c94.js +0 -0
  271. /package/dist/client/{v2 → v}/assets/8676-987fe455.js +0 -0
  272. /package/dist/client/{v2 → v}/assets/8729-9adea5fe.js +0 -0
  273. /package/dist/client/{v2 → v}/assets/8759-4d7f7a69.js +0 -0
  274. /package/dist/client/{v2 → v}/assets/896-d07bab4d.js +0 -0
  275. /package/dist/client/{v2 → v}/assets/9021-ec1b8442.js +0 -0
  276. /package/dist/client/{v2 → v}/assets/9065-5df7b63d.js +0 -0
  277. /package/dist/client/{v2 → v}/assets/9170-efbfcc1e.js +0 -0
  278. /package/dist/client/{v2 → v}/assets/9204-6cb7a01b.js +0 -0
  279. /package/dist/client/{v2 → v}/assets/9217-f27c2dcb.js +0 -0
  280. /package/dist/client/{v2 → v}/assets/9248-ff8e06d0.js +0 -0
  281. /package/dist/client/{v2 → v}/assets/9274-83aa1da2.js +0 -0
  282. /package/dist/client/{v2 → v}/assets/929-a37c623d.js +0 -0
  283. /package/dist/client/{v2 → v}/assets/93-dc732e8a.js +0 -0
  284. /package/dist/client/{v2 → v}/assets/9518-4c8b8805.js +0 -0
  285. /package/dist/client/{v2 → v}/assets/9550-2daf603c.js +0 -0
  286. /package/dist/client/{v2 → v}/assets/9565-2158d75f.js +0 -0
  287. /package/dist/client/{v2 → v}/assets/9578-f64d8970.js +0 -0
  288. /package/dist/client/{v2 → v}/assets/9584-969e1d2b.js +0 -0
  289. /package/dist/client/{v2 → v}/assets/9592-523a3fa6.js +0 -0
  290. /package/dist/client/{v2 → v}/assets/9827-d1f02095.js +0 -0
  291. /package/dist/client/{v2 → v}/assets/9847-bc9f1ba4.js +0 -0
  292. /package/dist/client/{v2 → v}/assets/9953-407a1cde.js +0 -0
  293. /package/dist/client/{v2/assets/index-bdb156e2.js.LICENSE.txt → v/assets/index-349a92de.js.LICENSE.txt} +0 -0
  294. /package/dist/client/{v2 → v}/assets/vendor-antd-debce1bd.css +0 -0
  295. /package/dist/client/{v2 → v}/assets/vendor-antd-ecosystem-de737eca.js +0 -0
  296. /package/dist/client/{v2 → v}/assets/vendor-antd-ecosystem-de737eca.js.LICENSE.txt +0 -0
  297. /package/dist/client/{v2 → v}/assets/vendor-antd-f8c3ace1.js +0 -0
  298. /package/dist/client/{v2 → v}/assets/vendor-antd-icons-63769f51.js +0 -0
  299. /package/dist/client/{v2 → v}/assets/vendor-antd-icons-63769f51.js.LICENSE.txt +0 -0
  300. /package/dist/client/{v2 → v}/assets/vendor-lodash-905dd3b8.js +0 -0
  301. /package/dist/client/{v2 → v}/assets/vendor-lodash-905dd3b8.js.LICENSE.txt +0 -0
  302. /package/dist/client/{v2 → v}/assets/vendor-moment-84b317dc.js +0 -0
  303. /package/dist/client/{v2 → v}/assets/vendor-moment-84b317dc.js.LICENSE.txt +0 -0
  304. /package/dist/client/{v2 → v}/assets/vendor-ses-b7bccbcd.js +0 -0
  305. /package/dist/client/{v2 → v}/favicon/favicon.ico +0 -0
  306. /package/dist/client/{v2 → v}/file-placeholder/ai-200-200.png +0 -0
  307. /package/dist/client/{v2 → v}/file-placeholder/audio-200-200.png +0 -0
  308. /package/dist/client/{v2 → v}/file-placeholder/docx-200-200.png +0 -0
  309. /package/dist/client/{v2 → v}/file-placeholder/eps-200-200.png +0 -0
  310. /package/dist/client/{v2 → v}/file-placeholder/gif-200-200.png +0 -0
  311. /package/dist/client/{v2 → v}/file-placeholder/jpeg-200-200.png +0 -0
  312. /package/dist/client/{v2 → v}/file-placeholder/pdf-200-200.png +0 -0
  313. /package/dist/client/{v2 → v}/file-placeholder/png-200-200.png +0 -0
  314. /package/dist/client/{v2 → v}/file-placeholder/pptx-200-200.png +0 -0
  315. /package/dist/client/{v2 → v}/file-placeholder/psd-200-200.png +0 -0
  316. /package/dist/client/{v2 → v}/file-placeholder/svg-200-200.png +0 -0
  317. /package/dist/client/{v2 → v}/file-placeholder/unknown-200-200.png +0 -0
  318. /package/dist/client/{v2 → v}/file-placeholder/video-200-200.png +0 -0
  319. /package/dist/client/{v2 → v}/file-placeholder/xlsx-200-200.png +0 -0
  320. /package/dist/client/{v2 → v}/file-placeholder/zip-200-200.png +0 -0
  321. /package/dist/client/{v2 → v}/global.css +0 -0
  322. /package/dist/client/{v2 → v}/nocobase.png +0 -0
  323. /package/dist/client/{v2 → v}/robots.txt +0 -0
@@ -1,14 +1,35 @@
1
- const basename = window['__nocobase_public_path__'] || '/';
2
- let currentPath = window.location.pathname;
3
- if (currentPath === basename.slice(0, -1)) {
1
+ function ensureLeadingSlash(value) {
2
+ if (!value) {
3
+ return '/';
4
+ }
5
+ return value.startsWith('/') ? value : `/${value}`;
6
+ }
7
+
8
+ function ensureTrailingSlash(value) {
9
+ if (!value) {
10
+ return '/';
11
+ }
12
+ return value.endsWith('/') ? value : `${value}/`;
13
+ }
14
+
15
+ function normalizePublicPath(value) {
16
+ const normalized = ensureLeadingSlash(String(value || '/').trim() || '/').replace(/\/{2,}/g, '/');
17
+ return ensureTrailingSlash(normalized);
18
+ }
19
+
20
+ const basename = normalizePublicPath(window['__nocobase_public_path__'] || '/');
21
+ const currentPath = ensureLeadingSlash(String(window.location.pathname || '/').trim() || '/').replace(/\/{2,}/g, '/');
22
+ const basenameWithoutTrailingSlash = basename === '/' ? '/' : basename.replace(/\/+$/, '');
23
+
24
+ if (currentPath === basenameWithoutTrailingSlash) {
4
25
  const newUrl = `${window.location.origin}${basename}${window.location.search}${window.location.hash}`;
5
26
  window.location.replace(newUrl);
6
- } else if (!currentPath.startsWith(basename)) {
7
- let newPath = basename + (currentPath.startsWith('/') ? currentPath.slice(1) : currentPath);
27
+ } else if (basename !== '/' && !currentPath.startsWith(basename)) {
28
+ const newPath = currentPath === '/' ? basename : `${basenameWithoutTrailingSlash}${currentPath}`;
8
29
  let newUrl = window.location.origin + newPath + window.location.search + window.location.hash;
9
30
  window.location.replace(newUrl);
10
31
  }
11
- showLog = true;
32
+ let showLog = true;
12
33
  function log(m) {
13
34
  if (window.console && showLog) {
14
35
  console.log(m);
@@ -46,7 +67,7 @@ function css_browser_selector(u) {
46
67
  dv = 'device_',
47
68
  html = document.documentElement,
48
69
  b = [
49
- (!/opera|webtv/i.test(ua) && /msie\s(\d+)/.test(ua)) || /trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.test(ua)
70
+ (!/opera|webtv/i.test(ua) && /msie\s(\d+)/.test(ua)) || /trident\/.*rv:([0-9]{1,}[.0-9]{0,})/.test(ua)
50
71
  ? 'ie ie' + (/trident\/4\.0/.test(ua) ? '8' : RegExp.$1 == '11.0' ? '11' : RegExp.$1)
51
72
  : is('firefox/')
52
73
  ? g +
@@ -70,7 +91,7 @@ function css_browser_selector(u) {
70
91
  ? bb +
71
92
  (/Version\/(\d+)(\.(\d+)+)/i.test(ua)
72
93
  ? ' ' + bb + RegExp.$1 + ' ' + bb + RegExp.$1 + RegExp.$2.replace('.', '_')
73
- : /Blackberry ?(([0-9]+)([a-z]?))[\/|;]/gi.test(ua)
94
+ : /Blackberry ?(([0-9]+)([a-z]?))[/|;]/gi.test(ua)
74
95
  ? ' ' + bb + RegExp.$2 + (RegExp.$3 ? ' ' + bb + RegExp.$2 + RegExp.$3 : '')
75
96
  : '')
76
97
  : is('android')
@@ -112,7 +133,7 @@ function css_browser_selector(u) {
112
133
  is('j2me')
113
134
  ? 'j2me'
114
135
  : is('ipad|ipod|iphone')
115
- ? (/CPU( iPhone)? OS (\d+[_|\.]\d+([_|\.]\d+)*)/i.test(ua) ? 'ios' + version('ios', RegExp.$2) : '') +
136
+ ? (/CPU( iPhone)? OS (\d+[_.]\d+([_.]\d+)*)/i.test(ua) ? 'ios' + version('ios', RegExp.$2) : '') +
116
137
  ' ' +
117
138
  (/(ip(ad|od|hone))/gi.test(ua) ? RegExp.$1 : '')
118
139
  : is('playbook')
@@ -144,7 +165,7 @@ function css_browser_selector(u) {
144
165
  : is('x11|linux')
145
166
  ? 'linux'
146
167
  : '',
147
- /[; |\[](([a-z]{2})(\-[a-z]{2})?)[)|;|\]]/i.test(ua)
168
+ /(?:[; |]|\[)(([a-z]{2})(-[a-z]{2})?)(?:\)|;|\||])/i.test(ua)
148
169
  ? (lang + RegExp.$2).replace('-', '_') + (RegExp.$3 != '' ? (' ' + lang + RegExp.$1).replace('-', '_') : '')
149
170
  : '',
150
171
  is('ipad|iphone|ipod') && !is('safari') ? 'ipad_app' : '',
@@ -161,7 +182,7 @@ function css_browser_selector(u) {
161
182
  break;
162
183
  }
163
184
  }
164
- widthClasses = '';
185
+ let widthClasses = '';
165
186
  for (var info in uaInfo) {
166
187
  widthClasses += ' ' + info + '_' + uaInfo[info];
167
188
  }
@@ -99,7 +99,14 @@ export default defineConfig(({ command }) => {
99
99
  const localStorageBasePath = ensurePublicPath(`${resolvedAppPublicPath}storage/uploads/`, '/storage/uploads/');
100
100
  const staticBasePath = ensurePublicPath(`${resolvedAppPublicPath}static/`, '/static/');
101
101
  const wsBasePath = ensurePublicPath(process.env.WS_PATH, '/ws/');
102
- const v2BasePath = ensurePublicPath(`${resolvedAppPublicPath.replace(/\/$/, '')}/v2/`, '/v2/');
102
+ const modernClientPrefix =
103
+ String(process.env.APP_MODERN_CLIENT_PREFIX || 'v')
104
+ .trim()
105
+ .replace(/^\/+|\/+$/g, '') || 'v';
106
+ const v2BasePath = ensurePublicPath(
107
+ `${resolvedAppPublicPath.replace(/\/$/, '')}/${modernClientPrefix}/`,
108
+ `/${modernClientPrefix}/`,
109
+ );
103
110
  const clientPort = toNumber(process.env.APP_PORT, 13001);
104
111
  const v2Port = toNumber(process.env.APP_V2_PORT, clientPort + 2);
105
112
  const hmrPath = `${resolvedAppPublicPath.replace(/\/$/, '')}/__rspack_hmr`;
@@ -1,14 +1,35 @@
1
- const basename = window['__nocobase_public_path__'] || '/';
2
- let currentPath = window.location.pathname;
3
- if (currentPath === basename.slice(0, -1)) {
1
+ function ensureLeadingSlash(value) {
2
+ if (!value) {
3
+ return '/';
4
+ }
5
+ return value.startsWith('/') ? value : `/${value}`;
6
+ }
7
+
8
+ function ensureTrailingSlash(value) {
9
+ if (!value) {
10
+ return '/';
11
+ }
12
+ return value.endsWith('/') ? value : `${value}/`;
13
+ }
14
+
15
+ function normalizePublicPath(value) {
16
+ const normalized = ensureLeadingSlash(String(value || '/').trim() || '/').replace(/\/{2,}/g, '/');
17
+ return ensureTrailingSlash(normalized);
18
+ }
19
+
20
+ const basename = normalizePublicPath(window['__nocobase_public_path__'] || '/');
21
+ const currentPath = ensureLeadingSlash(String(window.location.pathname || '/').trim() || '/').replace(/\/{2,}/g, '/');
22
+ const basenameWithoutTrailingSlash = basename === '/' ? '/' : basename.replace(/\/+$/, '');
23
+
24
+ if (currentPath === basenameWithoutTrailingSlash) {
4
25
  const newUrl = `${window.location.origin}${basename}${window.location.search}${window.location.hash}`;
5
26
  window.location.replace(newUrl);
6
- } else if (!currentPath.startsWith(basename)) {
7
- let newPath = basename + (currentPath.startsWith('/') ? currentPath.slice(1) : currentPath);
27
+ } else if (basename !== '/' && !currentPath.startsWith(basename)) {
28
+ const newPath = currentPath === '/' ? basename : `${basenameWithoutTrailingSlash}${currentPath}`;
8
29
  let newUrl = window.location.origin + newPath + window.location.search + window.location.hash;
9
30
  window.location.replace(newUrl);
10
31
  }
11
- showLog = true;
32
+ let showLog = true;
12
33
  function log(m) {
13
34
  if (window.console && showLog) {
14
35
  console.log(m);
@@ -46,7 +67,7 @@ function css_browser_selector(u) {
46
67
  dv = 'device_',
47
68
  html = document.documentElement,
48
69
  b = [
49
- (!/opera|webtv/i.test(ua) && /msie\s(\d+)/.test(ua)) || /trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.test(ua)
70
+ (!/opera|webtv/i.test(ua) && /msie\s(\d+)/.test(ua)) || /trident\/.*rv:([0-9]{1,}[.0-9]{0,})/.test(ua)
50
71
  ? 'ie ie' + (/trident\/4\.0/.test(ua) ? '8' : RegExp.$1 == '11.0' ? '11' : RegExp.$1)
51
72
  : is('firefox/')
52
73
  ? g +
@@ -70,7 +91,7 @@ function css_browser_selector(u) {
70
91
  ? bb +
71
92
  (/Version\/(\d+)(\.(\d+)+)/i.test(ua)
72
93
  ? ' ' + bb + RegExp.$1 + ' ' + bb + RegExp.$1 + RegExp.$2.replace('.', '_')
73
- : /Blackberry ?(([0-9]+)([a-z]?))[\/|;]/gi.test(ua)
94
+ : /Blackberry ?(([0-9]+)([a-z]?))[/|;]/gi.test(ua)
74
95
  ? ' ' + bb + RegExp.$2 + (RegExp.$3 ? ' ' + bb + RegExp.$2 + RegExp.$3 : '')
75
96
  : '')
76
97
  : is('android')
@@ -112,7 +133,7 @@ function css_browser_selector(u) {
112
133
  is('j2me')
113
134
  ? 'j2me'
114
135
  : is('ipad|ipod|iphone')
115
- ? (/CPU( iPhone)? OS (\d+[_|\.]\d+([_|\.]\d+)*)/i.test(ua) ? 'ios' + version('ios', RegExp.$2) : '') +
136
+ ? (/CPU( iPhone)? OS (\d+[_.]\d+([_.]\d+)*)/i.test(ua) ? 'ios' + version('ios', RegExp.$2) : '') +
116
137
  ' ' +
117
138
  (/(ip(ad|od|hone))/gi.test(ua) ? RegExp.$1 : '')
118
139
  : is('playbook')
@@ -144,7 +165,7 @@ function css_browser_selector(u) {
144
165
  : is('x11|linux')
145
166
  ? 'linux'
146
167
  : '',
147
- /[; |\[](([a-z]{2})(\-[a-z]{2})?)[)|;|\]]/i.test(ua)
168
+ /(?:[; |]|\[)(([a-z]{2})(-[a-z]{2})?)(?:\)|;|\||])/i.test(ua)
148
169
  ? (lang + RegExp.$2).replace('-', '_') + (RegExp.$3 != '' ? (' ' + lang + RegExp.$1).replace('-', '_') : '')
149
170
  : '',
150
171
  is('ipad|iphone|ipod') && !is('safari') ? 'ipad_app' : '',
@@ -161,7 +182,7 @@ function css_browser_selector(u) {
161
182
  break;
162
183
  }
163
184
  }
164
- widthClasses = '';
185
+ let widthClasses = '';
165
186
  for (var info in uaInfo) {
166
187
  widthClasses += ' ' + info + '_' + uaInfo[info];
167
188
  }
@@ -21,8 +21,23 @@ const __dirname = path.dirname(__filename);
21
21
 
22
22
  generateV2Plugins();
23
23
 
24
+ // Fixed on-disk build-output directory name for the modern (v2) client. A
25
+ // sibling copy of this default lives in packages/core/cli-v1/src/util.js
26
+ // (DEFAULT_MODERN_CLIENT_PREFIX) and packages/core/server/src/gateway (utils.ts
27
+ // MODERN_CLIENT_DIST_DIR). Keep them in sync. See docs/adr/0001-modern-client-prefix.md.
28
+ const MODERN_CLIENT_DIST_DIR = 'v';
29
+
30
+ // Normalize APP_MODERN_CLIENT_PREFIX (accepts `v`, `/v`, `/v/`)
31
+ // to a bare segment, falling back to the fixed dist dir name.
32
+ function normalizeModernClientPrefix(value: string | undefined) {
33
+ const segment = String(value || '')
34
+ .trim()
35
+ .replace(/^\/+|\/+$/g, '');
36
+ return segment || MODERN_CLIENT_DIST_DIR;
37
+ }
38
+
24
39
  function ensurePublicPath(value: string) {
25
- let normalized = value || '/v2/';
40
+ let normalized = value || `/${MODERN_CLIENT_DIST_DIR}/`;
26
41
  if (!normalized.startsWith('/')) {
27
42
  normalized = `/${normalized}`;
28
43
  }
@@ -37,10 +52,13 @@ function toNumber(value: string | undefined, fallback: number) {
37
52
  return Number.isFinite(parsed) ? parsed : fallback;
38
53
  }
39
54
 
40
- function createRuntimeHeadScript(v2PublicPath: string, isBuild: boolean) {
55
+ function createRuntimeHeadScript(v2PublicPath: string, isBuild: boolean, modernClientPrefix: string) {
41
56
  if (!isBuild) {
42
57
  return [
43
58
  `window['__nocobase_public_path__'] = window['__nocobase_public_path__'] || ${JSON.stringify(v2PublicPath)};`,
59
+ `window['__nocobase_modern_client_prefix__'] = window['__nocobase_modern_client_prefix__'] || ${JSON.stringify(
60
+ modernClientPrefix,
61
+ )};`,
44
62
  `window['__nocobase_app_dev__'] = window['__nocobase_app_dev__'] || ${JSON.stringify(
45
63
  process.env.NOCOBASE_APP_DEV === 'true',
46
64
  )};`,
@@ -55,6 +73,9 @@ function createRuntimeHeadScript(v2PublicPath: string, isBuild: boolean) {
55
73
 
56
74
  return [
57
75
  `window['__nocobase_public_path__'] = window['__nocobase_public_path__'] || ${JSON.stringify(v2PublicPath)};`,
76
+ `window['__nocobase_modern_client_prefix__'] = window['__nocobase_modern_client_prefix__'] || ${JSON.stringify(
77
+ modernClientPrefix,
78
+ )};`,
58
79
  `window['__nocobase_api_base_url__'] = window['__nocobase_api_base_url__'] || ${JSON.stringify(
59
80
  process.env.API_BASE_URL || process.env.API_BASE_PATH || '',
60
81
  )};`,
@@ -104,7 +125,13 @@ export default defineConfig(({ command }) => {
104
125
  const apiBasePath = ensurePublicPath(process.env.API_BASE_PATH || '/api/');
105
126
  const localStorageBasePath = ensurePublicPath(`${appPublicPath.replace(/\/$/, '')}/storage/uploads/`);
106
127
  const staticBasePath = ensurePublicPath(`${appPublicPath.replace(/\/$/, '')}/static/`);
107
- const v2PublicPath = ensurePublicPath(`${appPublicPath.replace(/\/$/, '')}/v2/`);
128
+ const modernClientPrefix = normalizeModernClientPrefix(process.env.APP_MODERN_CLIENT_PREFIX);
129
+ // Build bakes the FIXED dist-dir segment (`/v/`) as a sentinel that the
130
+ // server rewrites to the runtime prefix per request. Dev serves under the
131
+ // actual runtime prefix so URLs line up with the v1 dev proxy.
132
+ const modernClientDistPath = ensurePublicPath(`${appPublicPath.replace(/\/$/, '')}/${MODERN_CLIENT_DIST_DIR}/`);
133
+ const modernClientPublicPath = ensurePublicPath(`${appPublicPath.replace(/\/$/, '')}/${modernClientPrefix}/`);
134
+ const v2PublicPath = isBuild ? modernClientDistPath : modernClientPublicPath;
108
135
  const wsBasePath = ensurePublicPath(process.env.WS_PATH || '/ws/');
109
136
  const hmrPath = `${v2PublicPath.replace(/\/$/, '')}/__rspack_hmr`;
110
137
  const v2Port = toNumber(process.env.APP_V2_PORT, 13002);
@@ -151,7 +178,11 @@ export default defineConfig(({ command }) => {
151
178
  },
152
179
  {
153
180
  tag: 'script',
154
- children: createRuntimeHeadScript(v2PublicPath, isBuild),
181
+ children: createRuntimeHeadScript(
182
+ v2PublicPath,
183
+ isBuild,
184
+ isBuild ? MODERN_CLIENT_DIST_DIR : modernClientPrefix,
185
+ ),
155
186
  head: true,
156
187
  append: false,
157
188
  },
@@ -169,7 +200,7 @@ export default defineConfig(({ command }) => {
169
200
  output: {
170
201
  target: 'web',
171
202
  distPath: {
172
- root: path.resolve(__dirname, '../dist/client/v2'),
203
+ root: path.resolve(__dirname, `../dist/client/${MODERN_CLIENT_DIST_DIR}`),
173
204
  js: 'assets',
174
205
  jsAsync: 'assets',
175
206
  css: 'assets',
@@ -7,13 +7,15 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- import { Application } from '@nocobase/client-v2';
10
+ import { Application, getModernClientPrefix } from '@nocobase/client-v2';
11
11
  import devDynamicImport from './.plugins';
12
12
  import { NocoBaseClientPresetPluginV2 } from '@nocobase/preset-nocobase/client-v2';
13
13
 
14
14
  declare global {
15
15
  interface Window {
16
16
  __nocobase_public_path__?: string;
17
+ __nocobase_modern_client_prefix__?: string;
18
+ __webpack_public_path__?: string;
17
19
  __nocobase_api_base_url__?: string;
18
20
  __nocobase_api_client_storage_prefix__?: string;
19
21
  __nocobase_api_client_storage_type__?: string;
@@ -38,8 +40,20 @@ function ensureSlash(pathname: string, fallback: string) {
38
40
  return normalized;
39
41
  }
40
42
 
43
+ function getModernPrefixSuffix() {
44
+ return `/${getModernClientPrefix()}/`;
45
+ }
46
+
47
+ function stripPrefixSuffix(value: string) {
48
+ const suffix = getModernPrefixSuffix();
49
+ if (value.endsWith(suffix)) {
50
+ return ensureSlash(value.slice(0, value.length - suffix.length), '/');
51
+ }
52
+ return ensureSlash(value, '/');
53
+ }
54
+
41
55
  function inferRootPublicPathFromLocation() {
42
- const marker = '/v2/';
56
+ const marker = getModernPrefixSuffix();
43
57
  const pathname = window.location.pathname;
44
58
  const index = pathname.indexOf(marker);
45
59
  if (index >= 0) {
@@ -51,17 +65,18 @@ function inferRootPublicPathFromLocation() {
51
65
  function getRootPublicPath() {
52
66
  const fromWindow = window.__nocobase_public_path__;
53
67
  if (fromWindow) {
54
- return ensureSlash(fromWindow.replace(/\/v2\/$/, '/'), '/');
68
+ return stripPrefixSuffix(ensureSlash(fromWindow, '/'));
55
69
  }
56
70
  const fromBase = import.meta.env.BASE_URL;
57
71
  if (fromBase) {
58
- return ensureSlash(fromBase.replace(/\/v2\/$/, '/'), '/');
72
+ return stripPrefixSuffix(ensureSlash(fromBase, '/'));
59
73
  }
60
74
  return inferRootPublicPathFromLocation();
61
75
  }
62
76
 
63
77
  function getV2PublicPath() {
64
- return ensureSlash(`${getRootPublicPath().replace(/\/$/, '')}/v2/`, '/v2/');
78
+ const suffix = getModernPrefixSuffix();
79
+ return ensureSlash(`${getRootPublicPath().replace(/\/$/, '')}${suffix}`, suffix);
65
80
  }
66
81
 
67
82
  function parseShareToken(value: boolean | string | undefined) {
@@ -83,6 +98,25 @@ function parseStorageType(value: string | undefined): ClientStorageType {
83
98
  const rootPublicPath = getRootPublicPath();
84
99
  const v2PublicPath = getV2PublicPath();
85
100
 
101
+ // The fixed build-output directory segment baked into asset paths at build time
102
+ // (e.g. `v`), derived from the baked BASE_URL. Distinct from the runtime
103
+ // modern-client prefix, which may be overridden per-deployment.
104
+ function getBuildAssetDir() {
105
+ const base = (import.meta.env.BASE_URL || '/v/').replace(/\/+$/, '');
106
+ return base.split('/').pop() || 'v';
107
+ }
108
+
109
+ // Point dynamically-imported chunks of the main bundle at the runtime modern
110
+ // client asset path, so a runtime prefix override / sub-path deployment / CDN
111
+ // works without rebuilding (mirrors AutoInjectPublicPathPlugin used for plugins).
112
+ // `__webpack_public_path__` is a webpack magic global that must be assigned.
113
+ declare let __webpack_public_path__: string;
114
+ const cdnBase = window.__webpack_public_path__;
115
+ // eslint-disable-next-line prefer-const
116
+ __webpack_public_path__ = cdnBase
117
+ ? ensureSlash(`${cdnBase.replace(/\/$/, '')}/${getBuildAssetDir()}/`, '/')
118
+ : v2PublicPath;
119
+
86
120
  const app = new Application({
87
121
  publicPath: v2PublicPath,
88
122
  apiClient: {
@@ -0,0 +1,7 @@
1
+ "use strict";(globalThis.webpackChunknocobase=globalThis.webpackChunknocobase||[]).push([["1507"],{98542(e,n,t){t.r(n),t.d(n,{JSFieldRunJSContext:()=>l});var a=t(29007),o=t(4418);class l extends a.uk{}l.define({label:"JSField RunJS context",properties:{element:(0,o.e)(`ElementProxy instance providing a safe DOM container for field rendering.
2
+ Supports innerHTML, append, and other DOM manipulation methods.`),value:`Current value of the field (read-only).
3
+ Contains the data value stored in this field.`,record:`Current record data object (read-only).
4
+ Contains all field values of the parent record.`,collection:`Collection definition metadata (read-only).
5
+ Provides schema information about the collection this field belongs to.`},methods:{onRefReady:`Wait for field container DOM element to be ready before executing callback.
6
+ Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
7
+ Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = ctx.value })`}}),l.define({label:"JS 字段 RunJS 上下文",properties:{element:(0,o.V)("ElementProxy,字段渲染容器,支持 innerHTML/append 等 DOM 操作"),value:"字段当前值(只读)",record:"当前记录对象(只读,包含父记录全部字段值)",collection:"集合定义元数据(只读,描述字段所属集合的 Schema)"},methods:{onRefReady:"在字段容器 DOM 就绪后执行回调。参数:(ref, callback, timeout?);示例:ctx.onRefReady(ctx.ref, el => { el.innerHTML = ctx.value })"}},{locale:"zh-CN"})}}]);
@@ -0,0 +1,5 @@
1
+ "use strict";(globalThis.webpackChunknocobase=globalThis.webpackChunknocobase||[]).push([["2702"],{32221(e,t,r){r.r(t),r.d(t,{JSItemRunJSContext:()=>n});var o=r(29007),a=r(4418);class n extends o.uk{}n.define({label:"JSItem RunJS context",properties:{element:(0,a.e)(`ElementProxy instance providing a safe DOM container for form item rendering.
2
+ Supports innerHTML, append, and other DOM manipulation methods.`),resource:`Current resource instance (read-only).
3
+ Provides access to the data resource associated with the current form context.`,record:`Current record data object (read-only).
4
+ Contains all field values of the parent record.`,formValues:{description:"Snapshot of current form values (object). Available in form contexts (CreateForm/EditForm).",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:`Wait for form item container DOM element to be ready before executing callback.
5
+ Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void`}}),n.define({label:"JS 表单项 RunJS 上下文",properties:{element:(0,a.V)("ElementProxy,表单项渲染容器,支持 innerHTML/append 等 DOM 操作"),resource:"当前资源(只读)",record:"当前记录(只读)",formValues:{description:"当前表单值快照(对象)。仅表单相关上下文可用(Create/Edit Form)。",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:"容器就绪后执行回调。参数:(ref, callback, timeout?)"}},{locale:"zh-CN"})}}]);
@@ -0,0 +1 @@
1
+ "use strict";(globalThis.webpackChunknocobase=globalThis.webpackChunknocobase||[]).push([["3475"],{99502(e,t,a){a.r(t),a.d(t,{JSEditableFieldRunJSContext:()=>i});var n=a(29007),l=a(4418);class i extends n.uk{}i.define({label:"JSEditableField RunJS context",properties:{element:(0,l.e)("ElementProxy instance providing a safe DOM container for field rendering. In editable mode this container is typically a <span> element."),value:{description:"Current field value (read-only snapshot). In editable scenarios, prefer ctx.getValue()/ctx.setValue(v) for two-way binding.",detail:"any",examples:["const v = ctx.getValue?.() ?? ctx.value;",'ctx.setValue?.("new value");']},record:{description:"Current record data object (read-only). Available in forms that are bound to a record.",detail:"Record<string, any>"},form:{description:'Ant Design Form instance for reading/writing other fields. Example: ctx.form.getFieldValue("name")',detail:"FormInstance"},formValues:{description:"Snapshot of current form values (object). Prefer ctx.form.getFieldsValue() when you need the latest values.",detail:"Record<string, any>"},namePath:{description:"Field namePath in the form (array). Useful for advanced Form operations.",detail:"Array<string | number>"},disabled:"Whether the field is disabled (boolean).",readOnly:"Whether the field is read-only (boolean)."},methods:{getValue:{description:"Get current field value (recommended for editable custom fields).",detail:"() => any",completion:{insertText:"ctx.getValue?.()"}},setValue:{description:"Set current field value (two-way binding with the form).",detail:"(value: any) => void",completion:{insertText:"ctx.setValue?.(value)"},examples:["ctx.setValue?.(e.target.value);"]}}}),i.define({label:"JS 可编辑字段 RunJS 上下文",properties:{element:(0,l.V)("ElementProxy,字段渲染的安全容器(通常为 <span> 容器)。"),value:{description:"字段当前值(只读快照)。可编辑场景建议使用 ctx.getValue()/ctx.setValue(v) 做双向绑定。",detail:"any",examples:["const v = ctx.getValue?.() ?? ctx.value;",'ctx.setValue?.("新值");']},record:{description:"当前记录对象(只读;表单绑定记录时可用)。",detail:"Record<string, any>"},form:{description:"Ant Design Form 实例,可读写其它字段。",detail:"FormInstance"},formValues:{description:"当前表单值快照(对象)。需要最新值可用 ctx.form.getFieldsValue()。",detail:"Record<string, any>"},namePath:{description:"字段在表单中的 namePath(数组)。",detail:"Array<string | number>"},disabled:"是否禁用(boolean)",readOnly:"是否只读(boolean)"},methods:{getValue:{description:"获取字段当前值(可编辑字段推荐使用)。",detail:"() => any",completion:{insertText:"ctx.getValue?.()"}},setValue:{description:"设置字段当前值(与表单双向绑定)。",detail:"(value: any) => void",completion:{insertText:"ctx.setValue?.(value)"},examples:["ctx.setValue?.(e.target.value);"]}}},{locale:"zh-CN"})}}]);
@@ -0,0 +1,6 @@
1
+ "use strict";(globalThis.webpackChunknocobase=globalThis.webpackChunknocobase||[]).push([["3660"],{79271(e,t,n){n.r(t),n.d(t,{JSBlockRunJSContext:()=>o});var a=n(29007),r=n(4418);class o extends a.uk{}o.define({label:"RunJS context",properties:{element:(0,r.e)(`ElementProxy instance providing a safe DOM container.
2
+ Supports innerHTML, append, and other DOM manipulation methods.
3
+ Use this to render content in the JS block.`),record:`Current record data object (read-only).
4
+ Available when the JS block is within a data block or detail view context.`,value:"Current value of the field or component, if available in the current context.",React:"React library",antd:"Ant Design library"},methods:{onRefReady:`Wait for container DOM element to be ready before executing callback.
5
+ Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
6
+ Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = "Ready!" })`,requireAsync:"Load external library: `const lib = await ctx.requireAsync(url)`",importAsync:"Dynamically import an ESM module by URL: `const mod = await ctx.importAsync(url)`.\nNote: if the module has only a default export, ctx.importAsync returns that default value directly (no `.default`)."}}),o.define({label:"RunJS 上下文",properties:{element:(0,r.V)("ElementProxy,安全的 DOM 容器,支持 innerHTML/append 等"),record:"当前记录(只读,用于数据区块/详情等场景)",value:"当前值(若存在)",React:"React 库",antd:"Ant Design 库"},methods:{onRefReady:"容器 ref 就绪回调:\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",requireAsync:"加载外部库:`const lib = await ctx.requireAsync(url)`",importAsync:"按 URL 动态导入 ESM 模块:`const mod = await ctx.importAsync(url)`。\n注意:当模块只有 default 一个导出时,ctx.importAsync 会直接返回 default 值(无需再写 `.default`)。"}},{locale:"zh-CN"})}}]);
@@ -0,0 +1,6 @@
1
+ "use strict";(globalThis.webpackChunknocobase=globalThis.webpackChunknocobase||[]).push([["3916"],{25831(e,o,a){a.r(o),a.d(o,{FormJSFieldItemRunJSContext:()=>l});var r=a(29007),t=a(4418);class l extends r.uk{}l.define({label:"FormJSFieldItem RunJS context",properties:{element:(0,t.e)(`ElementProxy instance providing a safe DOM container for form field rendering.
2
+ Supports innerHTML, append, and other DOM manipulation methods.`),value:"Current field value (read-only in display mode; in controlled scenarios, use setProps to modify).",record:`Current record data object (read-only).
3
+ Contains all field values of the parent record.`,formValues:{description:"Snapshot of current form values (object). Available in form contexts (CreateForm/EditForm).",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:`Wait for form field container DOM element to be ready before executing callback.
4
+ Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void`,setProps:`Set form field properties programmatically.
5
+ Parameters: (fieldModel: any, props: { value?: any, disabled?: boolean, visible?: boolean }) => void
6
+ Example: ctx.setProps(fieldModel, { value: "new value" })`}}),l.define({label:"表单 JS 字段项 RunJS 上下文",properties:{element:(0,t.V)("ElementProxy,表单字段容器"),value:"字段值(展示模式为只读;受控场景用 setProps 修改)",record:"当前记录(只读)",formValues:{description:"当前表单值快照(对象)。仅表单相关上下文可用(Create/Edit Form)。",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:"容器就绪回调",setProps:"设置表单项属性:`setProps(fieldModel, { value })`(由联动/表单上下文提供)"}},{locale:"zh-CN"})}}]);
@@ -0,0 +1 @@
1
+ "use strict";(globalThis.webpackChunknocobase=globalThis.webpackChunknocobase||[]).push([["4687"],{4418(e,t,n){n.d(t,{V:()=>o,e:()=>l});let i={innerHTML:"Sanitized inner HTML string.",outerHTML:"Sanitized outer HTML string.",textContent:"Text content.",style:"Inline style declaration.",classList:"DOMTokenList for CSS classes.",appendChild:{type:"function",description:"Append a DOM node or text.",detail:"(child: Node | string) => void",completion:{insertText:"ctx.element.appendChild('text')"}},setAttribute:{type:"function",description:"Set an HTML attribute.",detail:"(name: string, value: string) => void",completion:{insertText:"ctx.element.setAttribute('data-key', 'value')"}},getAttribute:{type:"function",description:"Read an HTML attribute.",detail:"(name: string) => string | null",completion:{insertText:"ctx.element.getAttribute('data-key')"}},querySelector:{type:"function",description:"Find the first matching descendant.",detail:"(selectors: string) => Element | null",completion:{insertText:"ctx.element.querySelector('.selector')"}},querySelectorAll:{type:"function",description:"Find all matching descendants.",detail:"(selectors: string) => NodeListOf<Element>",completion:{insertText:"ctx.element.querySelectorAll('.selector')"}},addEventListener:{type:"function",description:"Attach an event listener to the element.",detail:"(type: string, listener: EventListener) => void",completion:{insertText:"ctx.element.addEventListener('click', (event) => {})"}},removeEventListener:{type:"function",description:"Remove an event listener from the element.",detail:"(type: string, listener: EventListener) => void",completion:{insertText:"ctx.element.removeEventListener('click', handler)"}}},r={innerHTML:"已消毒的 innerHTML 字符串。",outerHTML:"已消毒的 outerHTML 字符串。",textContent:"文本内容。",style:"内联样式声明。",classList:"CSS class 列表。",appendChild:{type:"function",description:"追加 DOM 节点或文本。",detail:"(child: Node | string) => void",completion:{insertText:"ctx.element.appendChild('text')"}},setAttribute:{type:"function",description:"设置 HTML 属性。",detail:"(name: string, value: string) => void",completion:{insertText:"ctx.element.setAttribute('data-key', 'value')"}},getAttribute:{type:"function",description:"读取 HTML 属性。",detail:"(name: string) => string | null",completion:{insertText:"ctx.element.getAttribute('data-key')"}},querySelector:{type:"function",description:"查询第一个匹配的后代元素。",detail:"(selectors: string) => Element | null",completion:{insertText:"ctx.element.querySelector('.selector')"}},querySelectorAll:{type:"function",description:"查询所有匹配的后代元素。",detail:"(selectors: string) => NodeListOf<Element>",completion:{insertText:"ctx.element.querySelectorAll('.selector')"}},addEventListener:{type:"function",description:"给元素添加事件监听。",detail:"(type: string, listener: EventListener) => void",completion:{insertText:"ctx.element.addEventListener('click', (event) => {})"}},removeEventListener:{type:"function",description:"移除元素事件监听。",detail:"(type: string, listener: EventListener) => void",completion:{insertText:"ctx.element.removeEventListener('click', handler)"}}};function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Current DOM container for this RunJS context. Usually an ElementProxy.";return{description:e,detail:"HTMLElement | ElementProxy",properties:i}}function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"当前 RunJS 上下文的 DOM 容器,通常为 ElementProxy。";return{description:e,detail:"HTMLElement | ElementProxy",properties:r}}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(globalThis.webpackChunknocobase=globalThis.webpackChunknocobase||[]).push([["6269"],{96108(e,r,n){n.r(r),n.d(r,{JSColumnRunJSContext:()=>a});var t=n(29007),o=n(4418);class a extends t.uk{}a.define({label:"JSColumn RunJS context",properties:{element:(0,o.e)("ElementProxy instance providing a safe DOM container for the current table cell. Supports innerHTML/append and basic DOM APIs."),record:"Current row record object (read-only).",recordIndex:"Index of the current row in the page (0-based).",collection:"Collection definition metadata (read-only).",viewer:"View controller providing dialog/drawer/embed helpers for interactions initiated from the cell (e.g., open details).",React:"React library",antd:"Ant Design library"},methods:{onRefReady:"Wait for cell DOM element to be ready before executing callback. Parameters: (ref, callback, timeout?) => void",requireAsync:"Load external library by URL: `const lib = await ctx.requireAsync(url)`",importAsync:"Dynamically import ESM module by URL: `const mod = await ctx.importAsync(url)`"}}),a.define({label:"JS 列 RunJS 上下文",properties:{element:(0,o.V)("ElementProxy,表格单元格的安全 DOM 容器,支持 innerHTML/append 等"),record:"当前行记录对象(只读)",recordIndex:"当前行索引(从 0 开始)",collection:"集合定义元数据(只读)",viewer:"视图控制器,可用于在单元格中触发抽屉/对话框/内嵌等交互",React:"React 库",antd:"Ant Design 库"},methods:{onRefReady:"等待单元格 DOM 就绪后执行回调。参数:(ref, callback, timeout?)",requireAsync:"按 URL 异步加载外部库:`const lib = await ctx.requireAsync(url)`",importAsync:"按 URL 动态导入 ESM 模块:`const mod = await ctx.importAsync(url)`"}},{locale:"zh-CN"})}}]);