@nocobase/app 2.3.0-alpha.1 → 3.0.0-alpha.2

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 (273) hide show
  1. package/__tests__/browserChecker.test.ts +129 -0
  2. package/__tests__/settingsDevProxy.test.ts +96 -0
  3. package/__tests__/settingsPluginImports.test.ts +106 -0
  4. package/client/rsbuild.config.ts +37 -15
  5. package/client-settings/generatePluginImports.ts +36 -0
  6. package/client-settings/index.html +11 -0
  7. package/client-settings/rsbuild.config.ts +270 -0
  8. package/client-settings/src/.plugins/index.ts +4 -0
  9. package/client-settings/src/SettingsPresetPlugin.ts +56 -0
  10. package/client-settings/src/__tests__/runtimePublicPath.test.ts +23 -0
  11. package/client-settings/src/__tests__/runtimeScope.test.ts +29 -0
  12. package/client-settings/src/env.d.ts +22 -0
  13. package/client-settings/src/main.tsx +78 -0
  14. package/client-settings/src/runtimePublicPath.ts +21 -0
  15. package/client-settings/src/runtimeScope.ts +49 -0
  16. package/client-settings/tsconfig.json +19 -0
  17. package/client-v2/public/browser-checker.js +76 -1
  18. package/client-v2/rsbuild.config.ts +31 -9
  19. package/dist/client/assets/{index-800d06ee.js → index-c94119b4.js} +369 -355
  20. package/dist/client/assets/{vendor-antd-f421fb70.js → vendor-antd-b77deb8f.js} +4 -4
  21. package/dist/client/index.html +1 -1
  22. package/dist/client/index.html.tpl +1 -1
  23. package/dist/client/settings/assets/1052-2ed99808.js +1 -0
  24. package/dist/client/settings/assets/108-76a3fdea.js +82 -0
  25. package/dist/client/settings/assets/108-76a3fdea.js.LICENSE.txt +17 -0
  26. package/dist/client/settings/assets/1101-53bb815a.js +1 -0
  27. package/dist/client/settings/assets/1179-1ec4826c.js +1 -0
  28. package/dist/client/settings/assets/1310-c0031389.js +59 -0
  29. package/dist/client/settings/assets/1329-0e47aabd.js +1 -0
  30. package/dist/client/settings/assets/1425-69534606.js +42 -0
  31. package/dist/client/settings/assets/1434-d603f255.js +1 -0
  32. package/dist/client/settings/assets/1463-11b9abe3.js +1 -0
  33. package/dist/client/settings/assets/1469-477cfa59.js +1 -0
  34. package/dist/client/settings/assets/1481-59e4188c.js +1 -0
  35. package/dist/client/settings/assets/1507-9a211af0.js +7 -0
  36. package/dist/client/settings/assets/158-5273dfbb.js +23 -0
  37. package/dist/client/settings/assets/1586-73831f88.js +1 -0
  38. package/dist/client/settings/assets/1667-88ad86eb.js +1 -0
  39. package/dist/client/settings/assets/1675-3cbafc50.js +1 -0
  40. package/dist/client/settings/assets/1676-5db7433e.js +9 -0
  41. package/dist/client/settings/assets/1725-d9ce2582.js +83 -0
  42. package/dist/client/settings/assets/1786-e6c321bb.js +16 -0
  43. package/dist/client/settings/assets/183-963396ee.js +1 -0
  44. package/dist/client/settings/assets/1846-0deb6fc0.js +1 -0
  45. package/dist/client/settings/assets/1848-0ef98f01.js +1 -0
  46. package/dist/client/settings/assets/1863-9160dd98.js +1 -0
  47. package/dist/client/settings/assets/1887-bf619cb3.js +1 -0
  48. package/dist/client/settings/assets/192-c347bb96.js +1 -0
  49. package/dist/client/settings/assets/1951-84be8ebc.js +55 -0
  50. package/dist/client/settings/assets/1979-a893b852.js +1 -0
  51. package/dist/client/settings/assets/1986-01c03982.js +1 -0
  52. package/dist/client/settings/assets/2017-29a9879a.js +26 -0
  53. package/dist/client/settings/assets/2110-961b6f8e.js +1 -0
  54. package/dist/client/settings/assets/212-0f8a26a2.js +18 -0
  55. package/dist/client/settings/assets/2203-9aa79271.js +4 -0
  56. package/dist/client/settings/assets/2258-f667d700.js +1 -0
  57. package/dist/client/settings/assets/2270-ff70d8cb.js +1 -0
  58. package/dist/client/settings/assets/2301-2db05359.js +1 -0
  59. package/dist/client/settings/assets/2322-b9f077c3.js +1 -0
  60. package/dist/client/settings/assets/2335-669f21bd.js +22 -0
  61. package/dist/client/settings/assets/242-c3e15c94.js +1 -0
  62. package/dist/client/settings/assets/2446-ac5fccd3.js +1 -0
  63. package/dist/client/settings/assets/2512-5343dabb.js +1185 -0
  64. package/dist/client/settings/assets/2512-5343dabb.js.LICENSE.txt +9 -0
  65. package/dist/client/settings/assets/2555-4ca49e21.js +31 -0
  66. package/dist/client/settings/assets/2565-ad63e92f.js +1 -0
  67. package/dist/client/settings/assets/2606-c4dcd1e1.js +1 -0
  68. package/dist/client/settings/assets/2613-98648bd2.js +1 -0
  69. package/dist/client/settings/assets/2622-3389992f.js +1 -0
  70. package/dist/client/settings/assets/2702-5ce93acd.js +5 -0
  71. package/dist/client/settings/assets/2710-e7286996.js +36 -0
  72. package/dist/client/settings/assets/2726-4d19faa1.js +23 -0
  73. package/dist/client/settings/assets/2861-48106fd8.js +3 -0
  74. package/dist/client/settings/assets/2898-7656f7f9.js +17 -0
  75. package/dist/client/settings/assets/2913-6b4e6c17.js +1 -0
  76. package/dist/client/settings/assets/2958-93de29a6.js +27 -0
  77. package/dist/client/settings/assets/300-ca09229f.js +1 -0
  78. package/dist/client/settings/assets/3005-1449fc4e.js +56 -0
  79. package/dist/client/settings/assets/3018-fc630932.js +3 -0
  80. package/dist/client/settings/assets/3028-efe6f61f.js +1 -0
  81. package/dist/client/settings/assets/3039-7f273921.js +1 -0
  82. package/dist/client/settings/assets/3102-b985963e.js +1 -0
  83. package/dist/client/settings/assets/3117-cc936eae.js +33 -0
  84. package/dist/client/settings/assets/32-88d3c82f.js +2 -0
  85. package/dist/client/settings/assets/3260-3b3c7cd3.js +1 -0
  86. package/dist/client/settings/assets/3279-8d73fd19.js +1 -0
  87. package/dist/client/settings/assets/3283-654f42f7.js +1 -0
  88. package/dist/client/settings/assets/3309-172e3f79.js +1 -0
  89. package/dist/client/settings/assets/335-da9c4d81.js +1 -0
  90. package/dist/client/settings/assets/338-2f192edd.js +3 -0
  91. package/dist/client/settings/assets/3396-4422ee26.js +1 -0
  92. package/dist/client/settings/assets/3458-2958f051.js +1 -0
  93. package/dist/client/settings/assets/3475-be655098.js +1 -0
  94. package/dist/client/settings/assets/3523-5313a211.js +1 -0
  95. package/dist/client/settings/assets/3526-17f4e8e7.js +1 -0
  96. package/dist/client/settings/assets/3641-c2439c22.js +1 -0
  97. package/dist/client/settings/assets/3646-aa6a2478.js +1 -0
  98. package/dist/client/settings/assets/3660-280439df.js +6 -0
  99. package/dist/client/settings/assets/3662-8dff1ffe.js +28 -0
  100. package/dist/client/settings/assets/3690-4a8bdf43.js +12 -0
  101. package/dist/client/settings/assets/3727-1cfef422.js +44 -0
  102. package/dist/client/settings/assets/3859-fa4f6d5d.js +1 -0
  103. package/dist/client/settings/assets/3898-6236af03.js +1 -0
  104. package/dist/client/settings/assets/3916-3b34f216.js +6 -0
  105. package/dist/client/settings/assets/3937-af967d62.js +3 -0
  106. package/dist/client/settings/assets/3977-3feadc2c.js +1 -0
  107. package/dist/client/settings/assets/3978-29c2602c.js +1 -0
  108. package/dist/client/settings/assets/3989-c8fcfd6c.js +27 -0
  109. package/dist/client/settings/assets/406-497829bb.js +1 -0
  110. package/dist/client/settings/assets/4076-f68c25bd.js +1 -0
  111. package/dist/client/settings/assets/4096-0050f491.js +1 -0
  112. package/dist/client/settings/assets/4171-0710965d.js +2 -0
  113. package/dist/client/settings/assets/4171-0710965d.js.LICENSE.txt +6 -0
  114. package/dist/client/settings/assets/4195-2a00794d.js +1 -0
  115. package/dist/client/settings/assets/4222-29a8147d.js +5 -0
  116. package/dist/client/settings/assets/4223-3821a30e.js +1 -0
  117. package/dist/client/settings/assets/4313-ab774fd9.js +28 -0
  118. package/dist/client/settings/assets/4358-0a504478.js +1 -0
  119. package/dist/client/settings/assets/4419-3ab9c709.js +1 -0
  120. package/dist/client/settings/assets/4456-49679669.js +1 -0
  121. package/dist/client/settings/assets/448-57d6a00d.js +1 -0
  122. package/dist/client/settings/assets/4594-4e72041f.js +1 -0
  123. package/dist/client/settings/assets/4672-573e9a61.js +1 -0
  124. package/dist/client/settings/assets/4686-afbf676f.js +1 -0
  125. package/dist/client/settings/assets/474-ce4285d1.js +1 -0
  126. package/dist/client/settings/assets/4767-8f9d30dc.js +1 -0
  127. package/dist/client/settings/assets/4784-c69aaa68.js +1 -0
  128. package/dist/client/settings/assets/4801-06781ed7.js +1 -0
  129. package/dist/client/settings/assets/492-937af2ba.js +1 -0
  130. package/dist/client/settings/assets/4930-41adc6b7.js +1 -0
  131. package/dist/client/settings/assets/5064-93d8e29e.js +10 -0
  132. package/dist/client/settings/assets/5087-c505a60e.js +1 -0
  133. package/dist/client/settings/assets/5108-a028f8af.js +1 -0
  134. package/dist/client/settings/assets/5122-649463de.js +1 -0
  135. package/dist/client/settings/assets/5123-0bd0a6f2.js +1 -0
  136. package/dist/client/settings/assets/5139-3039fde4.js +1 -0
  137. package/dist/client/settings/assets/5459-c1f208e3.js +1 -0
  138. package/dist/client/settings/assets/5501-387a31be.js +17 -0
  139. package/dist/client/settings/assets/5506-a1f27be3.js +1 -0
  140. package/dist/client/settings/assets/553-1c3126df.js +1 -0
  141. package/dist/client/settings/assets/557-950114e1.js +1 -0
  142. package/dist/client/settings/assets/5640-f846c2a0.js +1 -0
  143. package/dist/client/settings/assets/5642-5c0bab20.js +1 -0
  144. package/dist/client/settings/assets/5674-e33e384f.js +1 -0
  145. package/dist/client/settings/assets/5701-8fe417d1.js +1 -0
  146. package/dist/client/settings/assets/5721-af25e047.js +18 -0
  147. package/dist/client/settings/assets/5757-81a89522.js +1 -0
  148. package/dist/client/settings/assets/5759-2b3bdcc6.js +47 -0
  149. package/dist/client/settings/assets/5761-857b6bbb.js +28 -0
  150. package/dist/client/settings/assets/5791-7c59ba08.js +1 -0
  151. package/dist/client/settings/assets/58-77bfd6c9.js +1 -0
  152. package/dist/client/settings/assets/5815-04fc432a.js +1 -0
  153. package/dist/client/settings/assets/5819-225de680.js +1 -0
  154. package/dist/client/settings/assets/5861-ac056534.js +1 -0
  155. package/dist/client/settings/assets/5870-0c3ecc40.js +1 -0
  156. package/dist/client/settings/assets/5881-b4c942f1.js +1 -0
  157. package/dist/client/settings/assets/5905-a5c3fce6.js +1 -0
  158. package/dist/client/settings/assets/5933-fbe50cd6.js +1 -0
  159. package/dist/client/settings/assets/6062-0e469079.js +1 -0
  160. package/dist/client/settings/assets/6093-641fcafc.js +1 -0
  161. package/dist/client/settings/assets/6157-8e763248.js +1 -0
  162. package/dist/client/settings/assets/6241-55a319df.js +1 -0
  163. package/dist/client/settings/assets/6269-a8a1ea3f.js +1 -0
  164. package/dist/client/settings/assets/630-110e12f4.js +1 -0
  165. package/dist/client/settings/assets/6345-187e76cf.js +1 -0
  166. package/dist/client/settings/assets/6346-94bdf034.js +1 -0
  167. package/dist/client/settings/assets/6373-9d047c6b.js +13 -0
  168. package/dist/client/settings/assets/6437-3865fd7e.js +12 -0
  169. package/dist/client/settings/assets/6581-51c928bf.js +21 -0
  170. package/dist/client/settings/assets/6660-54e08a8d.js +1 -0
  171. package/dist/client/settings/assets/6738-c6598897.js +20 -0
  172. package/dist/client/settings/assets/6870-6a6dba63.js +1 -0
  173. package/dist/client/settings/assets/6914-00d913e7.js +1 -0
  174. package/dist/client/settings/assets/70-f4dc53ad.js +1 -0
  175. package/dist/client/settings/assets/700-e75b7faa.js +15 -0
  176. package/dist/client/settings/assets/7021-4975d54d.js +45 -0
  177. package/dist/client/settings/assets/7095-4f425b85.js +1 -0
  178. package/dist/client/settings/assets/7141-b8e2a787.js +1 -0
  179. package/dist/client/settings/assets/7201-5b49ce84.js +14 -0
  180. package/dist/client/settings/assets/7211-b8c71ed2.js +9 -0
  181. package/dist/client/settings/assets/7245-1058e96e.js +474 -0
  182. package/dist/client/settings/assets/7245-1058e96e.js.LICENSE.txt +2567 -0
  183. package/dist/client/settings/assets/7245-db3cd5c2.css +1 -0
  184. package/dist/client/settings/assets/7318-6e1c7877.js +1 -0
  185. package/dist/client/settings/assets/7386-2f5752d4.js +1 -0
  186. package/dist/client/settings/assets/7413-241d463c.js +1 -0
  187. package/dist/client/settings/assets/7492-5c593f52.js +5 -0
  188. package/dist/client/settings/assets/7507-a015d8cf.js +1 -0
  189. package/dist/client/settings/assets/754-41b763b9.js +17 -0
  190. package/dist/client/settings/assets/7555-f42cdb72.js +1 -0
  191. package/dist/client/settings/assets/7608-2b3f2db0.js +1 -0
  192. package/dist/client/settings/assets/7669-8bd94b73.js +1 -0
  193. package/dist/client/settings/assets/7761-637067c6.js +123 -0
  194. package/dist/client/settings/assets/7876-673cbc3c.js +6 -0
  195. package/dist/client/settings/assets/791-9cfa98c8.js +1 -0
  196. package/dist/client/settings/assets/7946-e07199df.js +13 -0
  197. package/dist/client/settings/assets/7959-f7ef21c6.js +40 -0
  198. package/dist/client/settings/assets/8053-fa93540e.js +1 -0
  199. package/dist/client/settings/assets/8087-90829087.js +1 -0
  200. package/dist/client/settings/assets/8138-e90c290e.js +24 -0
  201. package/dist/client/settings/assets/8217-de1369d7.js +1 -0
  202. package/dist/client/settings/assets/8242-3f880357.js +108 -0
  203. package/dist/client/settings/assets/8252-1153ffdd.js +1 -0
  204. package/dist/client/settings/assets/8262-7a324b59.js +9 -0
  205. package/dist/client/settings/assets/8269-52ea88cd.js +1 -0
  206. package/dist/client/settings/assets/8276-b3dfc452.js +1 -0
  207. package/dist/client/settings/assets/828-55028e33.js +1 -0
  208. package/dist/client/settings/assets/8294-9c81768d.js +1 -0
  209. package/dist/client/settings/assets/8295-447d3bb3.js +1 -0
  210. package/dist/client/settings/assets/8349-82eb3ecd.js +1 -0
  211. package/dist/client/settings/assets/8434-9140d106.js +25 -0
  212. package/dist/client/settings/assets/8438-d2ff6bc1.js +37 -0
  213. package/dist/client/settings/assets/8473-b1118703.js +1 -0
  214. package/dist/client/settings/assets/8480-c16f7ee4.js +1 -0
  215. package/dist/client/settings/assets/8562-ffa35312.js +17 -0
  216. package/dist/client/settings/assets/8624-847569d9.js +1 -0
  217. package/dist/client/settings/assets/8631-b2fd9aac.js +1 -0
  218. package/dist/client/settings/assets/8635-27980c94.js +1 -0
  219. package/dist/client/settings/assets/8676-987fe455.js +1 -0
  220. package/dist/client/settings/assets/8729-9adea5fe.js +1 -0
  221. package/dist/client/settings/assets/8759-4d7f7a69.js +1 -0
  222. package/dist/client/settings/assets/896-d07bab4d.js +1 -0
  223. package/dist/client/settings/assets/9021-ec1b8442.js +1 -0
  224. package/dist/client/settings/assets/9065-5df7b63d.js +1 -0
  225. package/dist/client/settings/assets/9170-efbfcc1e.js +1 -0
  226. package/dist/client/settings/assets/9204-6cb7a01b.js +1 -0
  227. package/dist/client/settings/assets/9217-f27c2dcb.js +1 -0
  228. package/dist/client/settings/assets/9248-ff8e06d0.js +1 -0
  229. package/dist/client/settings/assets/9274-83aa1da2.js +1 -0
  230. package/dist/client/settings/assets/929-a37c623d.js +1 -0
  231. package/dist/client/settings/assets/93-dc732e8a.js +1 -0
  232. package/dist/client/settings/assets/9518-4c8b8805.js +1 -0
  233. package/dist/client/settings/assets/9550-2daf603c.js +1 -0
  234. package/dist/client/settings/assets/9565-2158d75f.js +1 -0
  235. package/dist/client/settings/assets/9578-f64d8970.js +1 -0
  236. package/dist/client/settings/assets/9584-969e1d2b.js +1 -0
  237. package/dist/client/settings/assets/9592-523a3fa6.js +1 -0
  238. package/dist/client/settings/assets/9827-d1f02095.js +9 -0
  239. package/dist/client/settings/assets/9836-fcbb81f6.js +22 -0
  240. package/dist/client/settings/assets/9847-bc9f1ba4.js +1 -0
  241. package/dist/client/settings/assets/9953-407a1cde.js +1 -0
  242. package/dist/client/settings/assets/index-3da8ef5b.js +1946 -0
  243. package/dist/client/settings/assets/index-3da8ef5b.js.LICENSE.txt +1 -0
  244. package/dist/client/settings/assets/runtime-6b2f3ebe.js +1 -0
  245. package/dist/client/settings/browser-checker.js +282 -0
  246. package/dist/client/settings/favicon/favicon.ico +0 -0
  247. package/dist/client/settings/file-placeholder/ai-200-200.png +0 -0
  248. package/dist/client/settings/file-placeholder/audio-200-200.png +0 -0
  249. package/dist/client/settings/file-placeholder/docx-200-200.png +0 -0
  250. package/dist/client/settings/file-placeholder/eps-200-200.png +0 -0
  251. package/dist/client/settings/file-placeholder/gif-200-200.png +0 -0
  252. package/dist/client/settings/file-placeholder/jpeg-200-200.png +0 -0
  253. package/dist/client/settings/file-placeholder/pdf-200-200.png +0 -0
  254. package/dist/client/settings/file-placeholder/png-200-200.png +0 -0
  255. package/dist/client/settings/file-placeholder/pptx-200-200.png +0 -0
  256. package/dist/client/settings/file-placeholder/psd-200-200.png +0 -0
  257. package/dist/client/settings/file-placeholder/svg-200-200.png +0 -0
  258. package/dist/client/settings/file-placeholder/unknown-200-200.png +0 -0
  259. package/dist/client/settings/file-placeholder/video-200-200.png +0 -0
  260. package/dist/client/settings/file-placeholder/xlsx-200-200.png +0 -0
  261. package/dist/client/settings/file-placeholder/zip-200-200.png +0 -0
  262. package/dist/client/settings/global.css +63 -0
  263. package/dist/client/settings/index.html +22 -0
  264. package/dist/client/settings/nocobase.png +0 -0
  265. package/dist/client/settings/robots.txt +2 -0
  266. package/dist/client/v/assets/{index-2f7426fe.js → index-41529ca7.js} +167 -153
  267. package/dist/client/v/assets/index-41529ca7.js.LICENSE.txt +1 -0
  268. package/dist/client/v/browser-checker.js +76 -1
  269. package/dist/client/v/index.html +1 -1
  270. package/package.json +7 -7
  271. package/settingsDevProxy.ts +52 -0
  272. /package/dist/client/assets/{index-800d06ee.js.LICENSE.txt → index-c94119b4.js.LICENSE.txt} +0 -0
  273. /package/dist/client/{v/assets/index-2f7426fe.js.LICENSE.txt → settings/assets/32-88d3c82f.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ /* istanbul ignore file -- @preserve */
@@ -17,11 +17,86 @@ function normalizePublicPath(value) {
17
17
  return ensureTrailingSlash(normalized);
18
18
  }
19
19
 
20
+ function normalizePathname(value) {
21
+ const normalized = ensureLeadingSlash(String(value || '/').trim() || '/').replace(/\/{2,}/g, '/');
22
+ return normalized === '/' ? normalized : normalized.replace(/\/+$/g, '');
23
+ }
24
+
25
+ function resolveSettingsRootPath(publicPath, modernPrefix, pathname) {
26
+ const normalizedPublicPath = normalizePublicPath(publicPath);
27
+ const normalizedModernPrefix =
28
+ String(modernPrefix || 'v')
29
+ .trim()
30
+ .replace(/^\/+|\/+$/g, '') || 'v';
31
+ const modernPublicPathSuffix = `/${normalizedModernPrefix}/`;
32
+ if (!normalizedPublicPath.endsWith(modernPublicPathSuffix)) {
33
+ return null;
34
+ }
35
+
36
+ const modernRootPath = normalizePathname(normalizedPublicPath);
37
+ const normalizedPathname = normalizePathname(pathname);
38
+ let relativePath = '';
39
+ if (normalizedPathname !== modernRootPath) {
40
+ if (!normalizedPathname.startsWith(`${modernRootPath}/`)) {
41
+ return null;
42
+ }
43
+ relativePath = normalizedPathname.slice(modernRootPath.length + 1);
44
+ }
45
+
46
+ let appScope = '';
47
+ if (relativePath) {
48
+ const match = /^(apps|_app)\/([^/]+)$/.exec(relativePath);
49
+ if (!match) {
50
+ return null;
51
+ }
52
+ appScope = `/${match[1]}/${match[2]}`;
53
+ }
54
+
55
+ const rootPublicPath = normalizedPublicPath.slice(0, -(normalizedModernPrefix.length + 1));
56
+ const rootPrefix = rootPublicPath === '/' ? '' : rootPublicPath.replace(/\/+$/g, '');
57
+ return `${rootPrefix}/settings${appScope}`;
58
+ }
59
+
60
+ function isSettingsBrowserCheckerScript(script) {
61
+ const source = String((script && script.src) || '').split(/[?#]/)[0];
62
+ return source.endsWith('/settings/browser-checker.js');
63
+ }
64
+
65
+ function resolveScopedSettingsRootPath(publicPath, pathname) {
66
+ const normalizedPublicPath = normalizePublicPath(publicPath);
67
+ const rootPrefix = normalizedPublicPath === '/' ? '' : normalizedPublicPath.replace(/\/+$/g, '');
68
+ const settingsRootPath = `${rootPrefix}/settings`;
69
+ if (!pathname.startsWith(`${settingsRootPath}/`)) {
70
+ return null;
71
+ }
72
+
73
+ const relativePath = pathname.slice(settingsRootPath.length + 1);
74
+ if (!/^(apps|_app)\/[^/]+$/.test(relativePath)) {
75
+ return null;
76
+ }
77
+
78
+ return `${pathname}/`;
79
+ }
80
+
20
81
  const basename = normalizePublicPath(window['__nocobase_public_path__'] || '/');
21
82
  const currentPath = ensureLeadingSlash(String(window.location.pathname || '/').trim() || '/').replace(/\/{2,}/g, '/');
22
83
  const basenameWithoutTrailingSlash = basename === '/' ? '/' : basename.replace(/\/+$/, '');
84
+ const appClientEntryMode = window['__nocobase_app_client_entry_mode__'];
85
+ const settingsRootPath =
86
+ appClientEntryMode === 'modern-only'
87
+ ? resolveSettingsRootPath(basename, window['__nocobase_modern_client_prefix__'], currentPath)
88
+ : null;
89
+ const scopedSettingsRootPath = isSettingsBrowserCheckerScript(document.currentScript)
90
+ ? resolveScopedSettingsRootPath(basename, currentPath)
91
+ : null;
23
92
 
24
- if (basename !== '/' && currentPath === basenameWithoutTrailingSlash) {
93
+ if (settingsRootPath) {
94
+ const newUrl = `${window.location.origin}${settingsRootPath}${window.location.search}${window.location.hash}`;
95
+ window.location.replace(newUrl);
96
+ } else if (scopedSettingsRootPath) {
97
+ const newUrl = `${window.location.origin}${scopedSettingsRootPath}${window.location.search}${window.location.hash}`;
98
+ window.location.replace(newUrl);
99
+ } else if (basename !== '/' && currentPath === basenameWithoutTrailingSlash) {
25
100
  const newUrl = `${window.location.origin}${basename}${window.location.search}${window.location.hash}`;
26
101
  window.location.replace(newUrl);
27
102
  } else if (basename !== '/' && !currentPath.startsWith(basename)) {
@@ -14,7 +14,7 @@ window['__nocobase_ws_url__'] = window['__nocobase_ws_url__'] || "";
14
14
  window['__nocobase_ws_path__'] = window['__nocobase_ws_path__'] || "/ws";
15
15
  window['__nocobase_app_dev__'] = window['__nocobase_app_dev__'] || false;
16
16
  window['__esm_cdn_base_url__'] = window['__esm_cdn_base_url__'] || "https://esm.sh";
17
- window['__esm_cdn_suffix__'] = window['__esm_cdn_suffix__'] || "";</script><script src="/v/browser-checker.js?v=1"></script><script type="module" src="/v/assets/runtime-72080663.js"></script><script type="module" src="/v/assets/vendor-antd-ecosystem-de737eca.js"></script><script type="module" src="/v/assets/vendor-moment-84b317dc.js"></script><script type="module" src="/v/assets/vendor-lodash-905dd3b8.js"></script><script type="module" src="/v/assets/vendor-ses-b7bccbcd.js"></script><script type="module" src="/v/assets/vendor-antd-icons-97ed2369.js"></script><script type="module" src="/v/assets/vendor-antd-155a4c9b.js"></script><script type="module" src="/v/assets/8384-1634db4d.js"></script><script type="module" src="/v/assets/index-2f7426fe.js"></script><link href="/v/assets/vendor-antd-debce1bd.css" rel="stylesheet"><link href="/v/assets/8384-336ef7b3.css" rel="stylesheet"></head>
17
+ window['__esm_cdn_suffix__'] = window['__esm_cdn_suffix__'] || "";</script><script src="/v/browser-checker.js?v=1"></script><script type="module" src="/v/assets/runtime-72080663.js"></script><script type="module" src="/v/assets/vendor-antd-ecosystem-de737eca.js"></script><script type="module" src="/v/assets/vendor-moment-84b317dc.js"></script><script type="module" src="/v/assets/vendor-lodash-905dd3b8.js"></script><script type="module" src="/v/assets/vendor-ses-b7bccbcd.js"></script><script type="module" src="/v/assets/vendor-antd-icons-97ed2369.js"></script><script type="module" src="/v/assets/vendor-antd-155a4c9b.js"></script><script type="module" src="/v/assets/8384-1634db4d.js"></script><script type="module" src="/v/assets/index-41529ca7.js"></script><link href="/v/assets/vendor-antd-debce1bd.css" rel="stylesheet"><link href="/v/assets/8384-336ef7b3.css" rel="stylesheet"></head>
18
18
  <body>
19
19
  <div id="root"></div>
20
20
  </body>
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@nocobase/app",
3
- "version": "2.3.0-alpha.1",
3
+ "version": "3.0.0-alpha.2",
4
4
  "description": "",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./lib/index.js",
7
7
  "types": "./lib/index.d.ts",
8
8
  "dependencies": {
9
- "@nocobase/cli-v1": "2.3.0-alpha.1",
10
- "@nocobase/database": "2.3.0-alpha.1",
11
- "@nocobase/preset-nocobase": "2.3.0-alpha.1",
12
- "@nocobase/server": "2.3.0-alpha.1"
9
+ "@nocobase/cli-v1": "3.0.0-alpha.2",
10
+ "@nocobase/database": "3.0.0-alpha.2",
11
+ "@nocobase/preset-nocobase": "3.0.0-alpha.2",
12
+ "@nocobase/server": "3.0.0-alpha.2"
13
13
  },
14
14
  "devDependencies": {
15
- "@nocobase/client": "2.3.0-alpha.1"
15
+ "@nocobase/client": "3.0.0-alpha.2"
16
16
  },
17
17
  "repository": {
18
18
  "type": "git",
19
19
  "url": "git+https://github.com/nocobase/nocobase.git",
20
20
  "directory": "packages/core/app"
21
21
  },
22
- "gitHead": "2377df8ceb12549149017f7f14a61207bf6e49a2"
22
+ "gitHead": "a3faea21082b30989301de04591ee1b91fd4e6a5"
23
23
  }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ function normalizePublicPath(value: string) {
11
+ let normalized = value || '/';
12
+ if (!normalized.startsWith('/')) {
13
+ normalized = `/${normalized}`;
14
+ }
15
+ if (!normalized.endsWith('/')) {
16
+ normalized = `${normalized}/`;
17
+ }
18
+ return normalized.replace(/\/{2,}/g, '/');
19
+ }
20
+
21
+ function escapeRegExp(value: string) {
22
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
23
+ }
24
+
25
+ function createSettingsPathPattern(appPublicPath: string) {
26
+ const publicPath = normalizePublicPath(appPublicPath);
27
+ return new RegExp(`^${escapeRegExp(publicPath)}settings(?:/|$)`);
28
+ }
29
+
30
+ export function isSettingsDevPath(url: string, appPublicPath: string) {
31
+ const [pathname] = String(url || '/').split(/[?#]/, 1);
32
+ return createSettingsPathPattern(appPublicPath).test(pathname);
33
+ }
34
+
35
+ export function rewriteSettingsDevProxyPath(url: string, appPublicPath: string) {
36
+ const publicPath = normalizePublicPath(appPublicPath);
37
+ const settingsRoot = `${publicPath}settings`;
38
+ const settingsRootWithoutTrailingSlash = new RegExp(`^${escapeRegExp(settingsRoot)}(?=[?#]|$)`);
39
+
40
+ return url.replace(settingsRootWithoutTrailingSlash, `${settingsRoot}/`);
41
+ }
42
+
43
+ export function createSettingsDevProxyOptions(appPublicPath: string, settingsPort: number) {
44
+ return {
45
+ context: (pathname: string) => isSettingsDevPath(pathname, appPublicPath),
46
+ target: `http://127.0.0.1:${settingsPort}`,
47
+ changeOrigin: true,
48
+ ws: true,
49
+ xfwd: true,
50
+ pathRewrite: (pathname: string) => rewriteSettingsDevProxyPath(pathname, appPublicPath),
51
+ };
52
+ }