@sitecore-content-sdk/core 1.3.0-canary.9 → 1.4.0-canary.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 (342) hide show
  1. package/README.md +7 -7
  2. package/dist/cjs/cache-client.js +55 -54
  3. package/dist/cjs/client/constants.js +7 -7
  4. package/dist/cjs/client/edge-proxy.js +24 -22
  5. package/dist/cjs/client/index.js +15 -15
  6. package/dist/cjs/client/models.js +2 -2
  7. package/dist/cjs/client/sitecore-client.js +421 -419
  8. package/dist/cjs/client/utils.js +47 -46
  9. package/dist/cjs/config/define-config.js +194 -193
  10. package/dist/cjs/config/index.js +7 -7
  11. package/dist/cjs/config/models.js +12 -11
  12. package/dist/cjs/config-cli/define-cli-config.js +23 -22
  13. package/dist/cjs/config-cli/index.js +7 -7
  14. package/dist/cjs/config-cli/models.js +8 -7
  15. package/dist/cjs/constants.js +49 -17
  16. package/dist/cjs/debug.js +48 -46
  17. package/dist/cjs/editing/codegen/index.js +14 -9
  18. package/dist/cjs/editing/codegen/preview.js +277 -193
  19. package/dist/cjs/editing/component-layout-service.js +62 -61
  20. package/dist/cjs/editing/design-library.js +183 -126
  21. package/dist/cjs/editing/editing-service.js +75 -74
  22. package/dist/cjs/editing/index.js +33 -27
  23. package/dist/cjs/editing/metadata.js +42 -42
  24. package/dist/cjs/editing/models.js +44 -38
  25. package/dist/cjs/editing/utils.js +108 -90
  26. package/dist/cjs/form/form.js +81 -78
  27. package/dist/cjs/form/index.js +7 -7
  28. package/dist/cjs/graphql-request-client.js +108 -107
  29. package/dist/cjs/i18n/dictionary-service.js +122 -121
  30. package/dist/cjs/i18n/index.js +7 -7
  31. package/dist/cjs/i18n/utils.js +16 -15
  32. package/dist/cjs/index.js +60 -60
  33. package/dist/cjs/layout/content-styles.js +72 -71
  34. package/dist/cjs/layout/index.js +24 -24
  35. package/dist/cjs/layout/layout-service.js +62 -57
  36. package/dist/cjs/layout/models.js +39 -34
  37. package/dist/cjs/layout/themes.js +76 -75
  38. package/dist/cjs/layout/utils.js +117 -110
  39. package/dist/cjs/media/index.js +38 -38
  40. package/dist/cjs/media/media-api.js +100 -96
  41. package/dist/cjs/models.js +2 -2
  42. package/dist/cjs/native-fetcher.js +194 -179
  43. package/dist/cjs/personalize/index.js +15 -15
  44. package/dist/cjs/personalize/layout-personalizer.js +98 -97
  45. package/dist/cjs/personalize/personalize-service.js +98 -94
  46. package/dist/cjs/personalize/utils.js +143 -136
  47. package/dist/cjs/retries.js +43 -42
  48. package/dist/cjs/site/error-pages-service.js +65 -64
  49. package/dist/cjs/site/index.js +26 -26
  50. package/dist/cjs/site/models.js +2 -2
  51. package/dist/cjs/site/redirects-service.js +94 -81
  52. package/dist/cjs/site/robots-service.js +66 -65
  53. package/dist/cjs/site/site-resolver.js +73 -72
  54. package/dist/cjs/site/siteinfo-service.js +84 -80
  55. package/dist/cjs/site/sitemap-xml-service.js +84 -83
  56. package/dist/cjs/site/sitepath-service.js +165 -164
  57. package/dist/cjs/site/utils.js +55 -47
  58. package/dist/cjs/sitecore-service-base.js +36 -36
  59. package/dist/cjs/tools/auth/flow.js +65 -64
  60. package/dist/cjs/tools/auth/index.js +5 -5
  61. package/dist/cjs/tools/auth/models.js +2 -2
  62. package/dist/cjs/tools/auth/tenant-store.js +38 -38
  63. package/dist/cjs/tools/codegen/component-generation.js +52 -50
  64. package/dist/cjs/tools/codegen/extract-files.js +105 -107
  65. package/dist/cjs/tools/codegen/import-map.js +401 -349
  66. package/dist/cjs/tools/codegen/utils.js +418 -418
  67. package/dist/cjs/tools/generate-map.js +2 -2
  68. package/dist/cjs/tools/generateMetadata.js +36 -35
  69. package/dist/cjs/tools/generateSites.js +59 -58
  70. package/dist/cjs/tools/index.js +75 -73
  71. package/dist/cjs/tools/scaffold.js +60 -59
  72. package/dist/cjs/tools/templating/components.js +96 -266
  73. package/dist/cjs/tools/templating/index.js +11 -14
  74. package/dist/cjs/tools/templating/plugins.js +80 -78
  75. package/dist/cjs/tools/templating/utils.js +67 -66
  76. package/dist/cjs/utils/ensurePath.js +20 -20
  77. package/dist/cjs/utils/env.js +28 -27
  78. package/dist/cjs/utils/globalCache.js +55 -0
  79. package/dist/cjs/utils/index.js +26 -21
  80. package/dist/cjs/utils/is-server.js +11 -10
  81. package/dist/cjs/utils/normalize-url.js +5 -5
  82. package/dist/cjs/utils/timeout-promise.js +31 -31
  83. package/dist/cjs/utils/utils.js +254 -229
  84. package/dist/esm/cache-client.js +51 -50
  85. package/dist/esm/client/constants.js +4 -4
  86. package/dist/esm/client/edge-proxy.js +19 -17
  87. package/dist/esm/client/index.js +5 -5
  88. package/dist/esm/client/models.js +1 -1
  89. package/dist/esm/client/sitecore-client.js +414 -412
  90. package/dist/esm/client/utils.js +43 -42
  91. package/dist/esm/config/define-config.js +188 -187
  92. package/dist/esm/config/index.js +2 -2
  93. package/dist/esm/config/models.js +9 -8
  94. package/dist/esm/config-cli/define-cli-config.js +19 -18
  95. package/dist/esm/config-cli/index.js +2 -2
  96. package/dist/esm/config-cli/models.js +5 -4
  97. package/dist/esm/constants.js +46 -14
  98. package/dist/esm/debug.js +41 -39
  99. package/dist/esm/editing/codegen/index.js +1 -1
  100. package/dist/esm/editing/codegen/preview.js +263 -185
  101. package/dist/esm/editing/component-layout-service.js +55 -54
  102. package/dist/esm/editing/design-library.js +171 -117
  103. package/dist/esm/editing/editing-service.js +68 -67
  104. package/dist/esm/editing/index.js +6 -5
  105. package/dist/esm/editing/metadata.js +39 -39
  106. package/dist/esm/editing/models.js +41 -35
  107. package/dist/esm/editing/utils.js +98 -80
  108. package/dist/esm/form/form.js +72 -69
  109. package/dist/esm/form/index.js +1 -1
  110. package/dist/esm/graphql-request-client.js +101 -100
  111. package/dist/esm/i18n/dictionary-service.js +115 -114
  112. package/dist/esm/i18n/index.js +2 -2
  113. package/dist/esm/i18n/utils.js +13 -12
  114. package/dist/esm/index.js +13 -13
  115. package/dist/esm/layout/content-styles.js +64 -63
  116. package/dist/esm/layout/index.js +6 -6
  117. package/dist/esm/layout/layout-service.js +55 -50
  118. package/dist/esm/layout/models.js +36 -31
  119. package/dist/esm/layout/themes.js +71 -70
  120. package/dist/esm/layout/utils.js +109 -102
  121. package/dist/esm/media/index.js +2 -2
  122. package/dist/esm/media/media-api.js +90 -86
  123. package/dist/esm/models.js +1 -1
  124. package/dist/esm/native-fetcher.js +187 -172
  125. package/dist/esm/personalize/index.js +3 -3
  126. package/dist/esm/personalize/layout-personalizer.js +93 -92
  127. package/dist/esm/personalize/personalize-service.js +91 -87
  128. package/dist/esm/personalize/utils.js +135 -128
  129. package/dist/esm/retries.js +39 -38
  130. package/dist/esm/site/error-pages-service.js +58 -57
  131. package/dist/esm/site/index.js +8 -8
  132. package/dist/esm/site/models.js +1 -1
  133. package/dist/esm/site/redirects-service.js +87 -74
  134. package/dist/esm/site/robots-service.js +59 -58
  135. package/dist/esm/site/site-resolver.js +69 -68
  136. package/dist/esm/site/siteinfo-service.js +77 -73
  137. package/dist/esm/site/sitemap-xml-service.js +77 -76
  138. package/dist/esm/site/sitepath-service.js +157 -156
  139. package/dist/esm/site/utils.js +49 -41
  140. package/dist/esm/sitecore-service-base.js +29 -29
  141. package/dist/esm/tools/auth/flow.js +62 -61
  142. package/dist/esm/tools/auth/index.js +1 -1
  143. package/dist/esm/tools/auth/models.js +1 -1
  144. package/dist/esm/tools/auth/tenant-store.js +35 -35
  145. package/dist/esm/tools/codegen/component-generation.js +44 -42
  146. package/dist/esm/tools/codegen/extract-files.js +99 -101
  147. package/dist/esm/tools/codegen/import-map.js +358 -306
  148. package/dist/esm/tools/codegen/utils.js +373 -373
  149. package/dist/esm/tools/generate-map.js +1 -1
  150. package/dist/esm/tools/generateMetadata.js +29 -28
  151. package/dist/esm/tools/generateSites.js +52 -51
  152. package/dist/esm/tools/index.js +28 -27
  153. package/dist/esm/tools/scaffold.js +52 -51
  154. package/dist/esm/tools/templating/components.js +59 -223
  155. package/dist/esm/tools/templating/index.js +3 -3
  156. package/dist/esm/tools/templating/plugins.js +72 -70
  157. package/dist/esm/tools/templating/utils.js +59 -58
  158. package/dist/esm/utils/ensurePath.js +13 -13
  159. package/dist/esm/utils/env.js +24 -23
  160. package/dist/esm/utils/globalCache.js +49 -0
  161. package/dist/esm/utils/index.js +4 -3
  162. package/dist/esm/utils/is-server.js +9 -8
  163. package/dist/esm/utils/normalize-url.js +1 -1
  164. package/dist/esm/utils/timeout-promise.js +28 -28
  165. package/dist/esm/utils/utils.js +238 -213
  166. package/package.json +73 -5
  167. package/types/cache-client.d.ts +68 -64
  168. package/types/cache-client.d.ts.map +1 -0
  169. package/types/client/constants.d.ts +5 -4
  170. package/types/client/constants.d.ts.map +1 -0
  171. package/types/client/edge-proxy.d.ts +18 -15
  172. package/types/client/edge-proxy.d.ts.map +1 -0
  173. package/types/client/index.d.ts +8 -7
  174. package/types/client/index.d.ts.map +1 -0
  175. package/types/client/models.d.ts +21 -19
  176. package/types/client/models.d.ts.map +1 -0
  177. package/types/client/sitecore-client.d.ts +338 -327
  178. package/types/client/sitecore-client.d.ts.map +1 -0
  179. package/types/client/utils.d.ts +15 -9
  180. package/types/client/utils.d.ts.map +1 -0
  181. package/types/config/define-config.d.ts +20 -18
  182. package/types/config/define-config.d.ts.map +1 -0
  183. package/types/config/index.d.ts +3 -2
  184. package/types/config/index.d.ts.map +1 -0
  185. package/types/config/models.d.ts +287 -268
  186. package/types/config/models.d.ts.map +1 -0
  187. package/types/config-cli/define-cli-config.d.ts +9 -7
  188. package/types/config-cli/define-cli-config.d.ts.map +1 -0
  189. package/types/config-cli/index.d.ts +3 -2
  190. package/types/config-cli/index.d.ts.map +1 -0
  191. package/types/config-cli/models.d.ts +6 -4
  192. package/types/config-cli/models.d.ts.map +1 -0
  193. package/types/constants.d.ts +44 -11
  194. package/types/constants.d.ts.map +1 -0
  195. package/types/debug.d.ts +35 -28
  196. package/types/debug.d.ts.map +1 -0
  197. package/types/editing/codegen/index.d.ts +2 -1
  198. package/types/editing/codegen/index.d.ts.map +1 -0
  199. package/types/editing/codegen/preview.d.ts +256 -195
  200. package/types/editing/codegen/preview.d.ts.map +1 -0
  201. package/types/editing/component-layout-service.d.ts +84 -80
  202. package/types/editing/component-layout-service.d.ts.map +1 -0
  203. package/types/editing/design-library.d.ts +111 -63
  204. package/types/editing/design-library.d.ts.map +1 -0
  205. package/types/editing/editing-service.d.ts +72 -62
  206. package/types/editing/editing-service.d.ts.map +1 -0
  207. package/types/editing/index.d.ts +7 -6
  208. package/types/editing/index.d.ts.map +1 -0
  209. package/types/editing/metadata.d.ts +8 -7
  210. package/types/editing/metadata.d.ts.map +1 -0
  211. package/types/editing/models.d.ts +103 -92
  212. package/types/editing/models.d.ts.map +1 -0
  213. package/types/editing/utils.d.ts +91 -74
  214. package/types/editing/utils.d.ts.map +1 -0
  215. package/types/form/form.d.ts +25 -21
  216. package/types/form/form.d.ts.map +1 -0
  217. package/types/form/index.d.ts +2 -1
  218. package/types/form/index.d.ts.map +1 -0
  219. package/types/graphql-request-client.d.ts +112 -105
  220. package/types/graphql-request-client.d.ts.map +1 -0
  221. package/types/i18n/dictionary-service.d.ts +135 -131
  222. package/types/i18n/dictionary-service.d.ts.map +1 -0
  223. package/types/i18n/index.d.ts +3 -2
  224. package/types/i18n/index.d.ts.map +1 -0
  225. package/types/i18n/utils.d.ts +9 -7
  226. package/types/i18n/utils.d.ts.map +1 -0
  227. package/types/index.d.ts +13 -12
  228. package/types/index.d.ts.map +1 -0
  229. package/types/layout/content-styles.d.ts +20 -18
  230. package/types/layout/content-styles.d.ts.map +1 -0
  231. package/types/layout/index.d.ts +6 -5
  232. package/types/layout/index.d.ts.map +1 -0
  233. package/types/layout/layout-service.d.ts +45 -35
  234. package/types/layout/layout-service.d.ts.map +1 -0
  235. package/types/layout/models.d.ts +174 -151
  236. package/types/layout/models.d.ts.map +1 -0
  237. package/types/layout/themes.d.ts +13 -11
  238. package/types/layout/themes.d.ts.map +1 -0
  239. package/types/layout/utils.d.ts +56 -41
  240. package/types/layout/utils.d.ts.map +1 -0
  241. package/types/media/index.d.ts +3 -2
  242. package/types/media/index.d.ts.map +1 -0
  243. package/types/media/media-api.d.ts +60 -55
  244. package/types/media/media-api.d.ts.map +1 -0
  245. package/types/models.d.ts +94 -84
  246. package/types/models.d.ts.map +1 -0
  247. package/types/native-fetcher.d.ts +124 -114
  248. package/types/native-fetcher.d.ts.map +1 -0
  249. package/types/personalize/index.d.ts +4 -3
  250. package/types/personalize/index.d.ts.map +1 -0
  251. package/types/personalize/layout-personalizer.d.ts +29 -27
  252. package/types/personalize/layout-personalizer.d.ts.map +1 -0
  253. package/types/personalize/personalize-service.d.ts +90 -80
  254. package/types/personalize/personalize-service.d.ts.map +1 -0
  255. package/types/personalize/utils.d.ts +78 -69
  256. package/types/personalize/utils.d.ts.map +1 -0
  257. package/types/retries.d.ts +26 -24
  258. package/types/retries.d.ts.map +1 -0
  259. package/types/site/error-pages-service.d.ts +64 -57
  260. package/types/site/error-pages-service.d.ts.map +1 -0
  261. package/types/site/index.d.ts +10 -9
  262. package/types/site/index.d.ts.map +1 -0
  263. package/types/site/models.d.ts +23 -18
  264. package/types/site/models.d.ts.map +1 -0
  265. package/types/site/redirects-service.d.ts +92 -69
  266. package/types/site/redirects-service.d.ts.map +1 -0
  267. package/types/site/robots-service.d.ts +57 -50
  268. package/types/site/robots-service.d.ts.map +1 -0
  269. package/types/site/site-resolver.d.ts +28 -26
  270. package/types/site/site-resolver.d.ts.map +1 -0
  271. package/types/site/siteinfo-service.d.ts +65 -52
  272. package/types/site/siteinfo-service.d.ts.map +1 -0
  273. package/types/site/sitemap-xml-service.d.ts +63 -56
  274. package/types/site/sitemap-xml-service.d.ts.map +1 -0
  275. package/types/site/sitepath-service.d.ts +137 -134
  276. package/types/site/sitepath-service.d.ts.map +1 -0
  277. package/types/site/utils.d.ts +41 -28
  278. package/types/site/utils.d.ts.map +1 -0
  279. package/types/sitecore-service-base.d.ts +31 -30
  280. package/types/sitecore-service-base.d.ts.map +1 -0
  281. package/types/tools/auth/flow.d.ts +29 -27
  282. package/types/tools/auth/flow.d.ts.map +1 -0
  283. package/types/tools/auth/index.d.ts +2 -1
  284. package/types/tools/auth/index.d.ts.map +1 -0
  285. package/types/tools/auth/models.d.ts +35 -33
  286. package/types/tools/auth/models.d.ts.map +1 -0
  287. package/types/tools/auth/tenant-store.d.ts +12 -11
  288. package/types/tools/auth/tenant-store.d.ts.map +1 -0
  289. package/types/tools/codegen/component-generation.d.ts +50 -47
  290. package/types/tools/codegen/component-generation.d.ts.map +1 -0
  291. package/types/tools/codegen/extract-files.d.ts +24 -22
  292. package/types/tools/codegen/extract-files.d.ts.map +1 -0
  293. package/types/tools/codegen/import-map.d.ts +103 -70
  294. package/types/tools/codegen/import-map.d.ts.map +1 -0
  295. package/types/tools/codegen/utils.d.ts +76 -75
  296. package/types/tools/codegen/utils.d.ts.map +1 -0
  297. package/types/tools/generate-map.d.ts +36 -26
  298. package/types/tools/generate-map.d.ts.map +1 -0
  299. package/types/tools/generateMetadata.d.ts +24 -22
  300. package/types/tools/generateMetadata.d.ts.map +1 -0
  301. package/types/tools/generateSites.d.ts +25 -22
  302. package/types/tools/generateSites.d.ts.map +1 -0
  303. package/types/tools/index.d.ts +22 -20
  304. package/types/tools/index.d.ts.map +1 -0
  305. package/types/tools/scaffold.d.ts +27 -25
  306. package/types/tools/scaffold.d.ts.map +1 -0
  307. package/types/tools/templating/components.d.ts +104 -103
  308. package/types/tools/templating/components.d.ts.map +1 -0
  309. package/types/tools/templating/index.d.ts +4 -3
  310. package/types/tools/templating/index.d.ts.map +1 -0
  311. package/types/tools/templating/plugins.d.ts +71 -67
  312. package/types/tools/templating/plugins.d.ts.map +1 -0
  313. package/types/tools/templating/utils.d.ts +42 -40
  314. package/types/tools/templating/utils.d.ts.map +1 -0
  315. package/types/utils/ensurePath.d.ts +7 -6
  316. package/types/utils/ensurePath.d.ts.map +1 -0
  317. package/types/utils/env.d.ts +9 -7
  318. package/types/utils/env.d.ts.map +1 -0
  319. package/types/utils/globalCache.d.ts +37 -0
  320. package/types/utils/globalCache.d.ts.map +1 -0
  321. package/types/utils/index.d.ts +5 -3
  322. package/types/utils/index.d.ts.map +1 -0
  323. package/types/utils/is-server.d.ts +8 -6
  324. package/types/utils/is-server.d.ts.map +1 -0
  325. package/types/utils/normalize-url.d.ts +2 -1
  326. package/types/utils/normalize-url.d.ts.map +1 -0
  327. package/types/utils/timeout-promise.d.ts +18 -17
  328. package/types/utils/timeout-promise.d.ts.map +1 -0
  329. package/types/utils/utils.d.ts +104 -79
  330. package/types/utils/utils.d.ts.map +1 -0
  331. package/client.js +0 -1
  332. package/codegen.js +0 -1
  333. package/config-cli.js +0 -1
  334. package/config.js +0 -1
  335. package/editing.js +0 -1
  336. package/i18n.js +0 -1
  337. package/layout.js +0 -1
  338. package/media.js +0 -1
  339. package/personalize.js +0 -1
  340. package/site.js +0 -1
  341. package/tools.js +0 -1
  342. package/utils.js +0 -1
@@ -1,266 +1,96 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.componentUnitMocks = exports.getComponentList = void 0;
40
- exports.detectRouterType = detectRouterType;
41
- exports.detectComponentType = detectComponentType;
42
- exports.getComponentListWithTypes = getComponentListWithTypes;
43
- exports.filterComponentsByType = filterComponentsByType;
44
- const glob = __importStar(require("glob"));
45
- const fs_1 = __importDefault(require("fs"));
46
- const ts = __importStar(require("typescript"));
47
- exports.getComponentList = _getComponentList;
48
- exports.componentUnitMocks = {
49
- set getComponentList(mockImplementation) {
50
- exports.getComponentList = mockImplementation;
51
- },
52
- get getComponentList() {
53
- return _getComponentList;
54
- },
55
- };
56
- const componentNamePattern = /^[\/]*(.+[\/\\])*(.+)\.[jt]sx?$/;
57
- const componentPathPattern = /^([\/]*.+[\/\\].+)\..+$/;
58
- /**
59
- * Get list of components from @var path
60
- * Returns a list of components in the following format:
61
- * {
62
- * path: 'path/to/component',
63
- * componentName: 'ComponentName',
64
- * moduleName: 'ComponentName'
65
- * }
66
- * @param {string[]} paths paths to search
67
- * @param {string[]} [exclude] paths and glob patterns to exclude from final result
68
- * @param {boolean} [includeVariants] whether to include variant components
69
- */
70
- function _getComponentList(paths, exclude, includeVariants) {
71
- const components = paths.reduce((result, path) => {
72
- const globPath = glob.hasMagic(path, { magicalBraces: true }) || path.match(componentNamePattern)
73
- ? path
74
- : path.replace(/\/$/, '').concat('/**/*.{js,jsx,ts,tsx}');
75
- return result.concat(...glob
76
- .sync(globPath, { ignore: exclude, nodir: true })
77
- .filter((path) => path.match(componentNamePattern))
78
- .map((filePath) => {
79
- const name = filePath.match(componentNamePattern)[2];
80
- return {
81
- filePath,
82
- importPath: filePath.match(componentPathPattern)[1].replace(/\\/g, '/'), // use forward slashes for consistency
83
- componentName: name,
84
- moduleName: name.replace(/[^\w]+/g, ''),
85
- };
86
- }));
87
- }, []);
88
- return includeVariants
89
- ? components
90
- : components.filter((component) => !component.componentName.includes('.'));
91
- }
92
- /**
93
- * Detects the Next.js router type (App Router or Pages Router) based on directory structure.
94
- * @param {string} projectRoot - The project root directory. Defaults to current working directory.
95
- * @returns {RouterType} 'app' if App Router is detected, 'pages' otherwise
96
- */
97
- function detectRouterType(projectRoot = process.cwd()) {
98
- const appDirExists = fs_1.default.existsSync(`${projectRoot}/src/app`) || fs_1.default.existsSync(`${projectRoot}/app`);
99
- const pagesDirExists = fs_1.default.existsSync(`${projectRoot}/src/pages`) || fs_1.default.existsSync(`${projectRoot}/pages`);
100
- if (appDirExists) {
101
- return 'app';
102
- }
103
- if (pagesDirExists) {
104
- return 'pages';
105
- }
106
- return 'pages';
107
- }
108
- /**
109
- * Detects the component type based on directives, imports, and router context.
110
- * - Checks for 'use client' directive
111
- * - Checks for explicit componentType export
112
- * - Checks for server-only imports (next/headers, etc.)
113
- * - Defaults to 'server' for App Router, 'universal' for Pages Router
114
- * @param {string} filePath - Path to the component file
115
- * @param {RouterType} [routerType] - Optional router type override. Auto-detected if not provided.
116
- * @returns {ComponentType} 'server', 'client', or 'universal'
117
- */
118
- function detectComponentType(filePath, routerType) {
119
- try {
120
- const content = fs_1.default.readFileSync(filePath, 'utf-8');
121
- // Parse using TypeScript AST (following patterns from import-map.ts and utils.ts)
122
- const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
123
- let hasUseClientDirective = false;
124
- let explicitComponentType = null;
125
- let hasServerOnlyImports = false;
126
- // Auto-detect router type if not provided
127
- const detectedRouterType = routerType || detectRouterType();
128
- // Track position to ensure directives come before imports/other statements
129
- let foundFirstNonDirectiveStatement = false;
130
- // Helper function to check if a node is a valid directive
131
- const isValidDirective = (node) => {
132
- return (ts.isExpressionStatement(node) &&
133
- ts.isStringLiteral(node.expression) &&
134
- !foundFirstNonDirectiveStatement);
135
- };
136
- // More comprehensive AST traversal (following patterns from import-map.ts and utils.ts)
137
- const traverseNode = (node) => {
138
- var _a;
139
- // Check for 'use client'/'use server' directives (must be at top, before imports)
140
- if (isValidDirective(node) &&
141
- ts.isStringLiteral(node.expression)) {
142
- const directiveText = node.expression
143
- .text;
144
- if (directiveText === 'use client') {
145
- hasUseClientDirective = true;
146
- return; // Don't mark as non-directive statement
147
- }
148
- if (directiveText === 'use server') {
149
- explicitComponentType = 'server';
150
- return; // Don't mark as non-directive statement
151
- }
152
- }
153
- // Mark that we've seen a non-directive statement (imports, declarations, etc.)
154
- if (ts.isImportDeclaration(node) ||
155
- ts.isVariableStatement(node) ||
156
- ts.isFunctionDeclaration(node) ||
157
- ts.isExportDeclaration(node) ||
158
- ts.isExportAssignment(node)) {
159
- foundFirstNonDirectiveStatement = true;
160
- }
161
- // Check for import declarations with server-only modules
162
- if (ts.isImportDeclaration(node)) {
163
- const moduleSpecifier = node.moduleSpecifier;
164
- if (ts.isStringLiteral(moduleSpecifier)) {
165
- const importPath = moduleSpecifier.text;
166
- // Expand server-only module detection
167
- if (importPath === 'next/headers' ||
168
- importPath === 'server-only' ||
169
- importPath === 'next/cache' ||
170
- importPath === 'next/cookies' ||
171
- importPath.startsWith('node:') ||
172
- importPath === 'fs' ||
173
- importPath === 'path') {
174
- hasServerOnlyImports = true;
175
- }
176
- }
177
- }
178
- // Check for explicit componentType export (improved detection)
179
- if (ts.isVariableStatement(node)) {
180
- const hasExportModifier = (_a = node.modifiers) === null || _a === void 0 ? void 0 : _a.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword);
181
- if (hasExportModifier) {
182
- node.declarationList.declarations.forEach((declaration) => {
183
- if (ts.isIdentifier(declaration.name) &&
184
- declaration.name.text === 'componentType' &&
185
- declaration.initializer) {
186
- // Handle string literal
187
- if (ts.isStringLiteral(declaration.initializer)) {
188
- const typeValue = declaration.initializer.text;
189
- if (typeValue === 'server' || typeValue === 'client' || typeValue === 'universal') {
190
- explicitComponentType = typeValue;
191
- }
192
- }
193
- // Handle template literal (e.g., `client`)
194
- else if (ts.isNoSubstitutionTemplateLiteral(declaration.initializer)) {
195
- const typeValue = declaration.initializer.text;
196
- if (typeValue === 'server' || typeValue === 'client' || typeValue === 'universal') {
197
- explicitComponentType = typeValue;
198
- }
199
- }
200
- }
201
- });
202
- }
203
- }
204
- // Check for named export of componentType (export const componentType = ...)
205
- if (ts.isExportDeclaration(node) &&
206
- node.exportClause &&
207
- ts.isNamedExports(node.exportClause)) {
208
- node.exportClause.elements.forEach((exportSpecifier) => {
209
- if (exportSpecifier.name.text === 'componentType') {
210
- // This would need additional logic to resolve the actual value, but for now
211
- // we'll rely on the variable declaration detection above
212
- }
213
- });
214
- }
215
- // Recursively traverse child nodes (following import-map.ts pattern)
216
- ts.forEachChild(node, traverseNode);
217
- };
218
- // Start traversal from the source file (following utils.ts pattern)
219
- ts.forEachChild(sourceFile, traverseNode);
220
- // Priority: explicit componentType export > use client/server directives > server-only imports > universal default
221
- if (explicitComponentType) {
222
- return explicitComponentType;
223
- }
224
- if (hasUseClientDirective) {
225
- return 'client';
226
- }
227
- if (hasServerOnlyImports) {
228
- return 'server';
229
- }
230
- // Router-aware defaults:
231
- // - App Router: defaults to server (RSC by default)
232
- // - Pages Router: defaults to universal (isomorphic by default)
233
- if (detectedRouterType === 'app') {
234
- return 'server';
235
- }
236
- else {
237
- return 'universal';
238
- }
239
- }
240
- catch (error) {
241
- console.warn(`Failed to parse component file ${filePath}, defaulting to universal:`, error);
242
- return 'universal';
243
- }
244
- }
245
- /**
246
- * Get list of components with detected types (server, client, or universal).
247
- * @param {string[]} paths - Paths to search for components
248
- * @param {string[]} [exclude] - Paths and glob patterns to exclude from final result
249
- * @param {boolean} includeVariants - Whether to include variant components
250
- * @param {RouterType} [routerType] - Optional router type override for type detection. Auto-detected if not provided.
251
- * @returns {ComponentFileWithType[]} Array of components with their detected types
252
- */
253
- function getComponentListWithTypes(paths, exclude, includeVariants, routerType) {
254
- const components = (0, exports.getComponentList)(paths, exclude, includeVariants);
255
- const detectedRouterType = routerType || detectRouterType();
256
- return components.map((component) => (Object.assign(Object.assign({}, component), { componentType: detectComponentType(component.filePath, detectedRouterType) })));
257
- }
258
- /**
259
- * Filters components by their detected type.
260
- * @param {ComponentFileWithType[]} components - Array of components with types
261
- * @param {ComponentType[]} allowedTypes - Array of allowed component types to filter by
262
- * @returns {ComponentFileWithType[]} Filtered array containing only components matching allowed types
263
- */
264
- function filterComponentsByType(components, allowedTypes) {
265
- return components.filter((component) => allowedTypes.includes(component.componentType));
266
- }
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.componentUnitMocks = exports.getComponentList = void 0;
37
+ exports.filterComponentsByType = filterComponentsByType;
38
+ const glob = __importStar(require("glob"));
39
+ /**
40
+ * @public
41
+ */
42
+ exports.getComponentList = _getComponentList;
43
+ exports.componentUnitMocks = {
44
+ set getComponentList(mockImplementation) {
45
+ exports.getComponentList = mockImplementation;
46
+ },
47
+ get getComponentList() {
48
+ return _getComponentList;
49
+ },
50
+ };
51
+ const componentNamePattern = /^[\/]*(.+[\/\\])*(.+)\.[jt]sx?$/;
52
+ const componentPathPattern = /^([\/]*.+[\/\\].+)\..+$/;
53
+ /**
54
+ * Get list of components from @var path
55
+ * Returns a list of components in the following format:
56
+ * {
57
+ * path: 'path/to/component',
58
+ * componentName: 'ComponentName',
59
+ * moduleName: 'ComponentName'
60
+ * }
61
+ * @param {string[]} paths paths to search
62
+ * @param {string[]} [exclude] paths and glob patterns to exclude from final result
63
+ * @param {boolean} [includeVariants] whether to include variant components
64
+ */
65
+ function _getComponentList(paths, exclude, includeVariants) {
66
+ const components = paths.reduce((result, path) => {
67
+ const globPath = glob.hasMagic(path, { magicalBraces: true }) || path.match(componentNamePattern)
68
+ ? path
69
+ : path.replace(/\/$/, '').concat('/**/*.{js,jsx,ts,tsx}');
70
+ return result.concat(...glob
71
+ .sync(globPath, { ignore: exclude, nodir: true })
72
+ .filter((path) => path.match(componentNamePattern))
73
+ .map((filePath) => {
74
+ const name = filePath.match(componentNamePattern)[2];
75
+ return {
76
+ filePath,
77
+ importPath: filePath.match(componentPathPattern)[1].replace(/\\/g, '/'), // use forward slashes for consistency
78
+ componentName: name,
79
+ moduleName: name.replace(/[^\w]+/g, ''),
80
+ };
81
+ }));
82
+ }, []);
83
+ return includeVariants
84
+ ? components
85
+ : components.filter((component) => !component.componentName.includes('.'));
86
+ }
87
+ /**
88
+ * Filters components by their detected type.
89
+ * @param {ComponentFileWithType[]} components - Array of components with types
90
+ * @param {ComponentType[]} allowedTypes - Array of allowed component types to filter by
91
+ * @returns {ComponentFileWithType[]} Filtered array containing only components matching allowed types
92
+ * @internal
93
+ */
94
+ function filterComponentsByType(components, allowedTypes) {
95
+ return components.filter((component) => allowedTypes.includes(component.componentType));
96
+ }
@@ -1,14 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.matchPath = exports.ModuleType = exports.generatePlugins = exports.filterComponentsByType = exports.getComponentListWithTypes = exports.detectComponentType = exports.detectRouterType = exports.getComponentList = void 0;
4
- var components_1 = require("./components");
5
- Object.defineProperty(exports, "getComponentList", { enumerable: true, get: function () { return components_1.getComponentList; } });
6
- Object.defineProperty(exports, "detectRouterType", { enumerable: true, get: function () { return components_1.detectRouterType; } });
7
- Object.defineProperty(exports, "detectComponentType", { enumerable: true, get: function () { return components_1.detectComponentType; } });
8
- Object.defineProperty(exports, "getComponentListWithTypes", { enumerable: true, get: function () { return components_1.getComponentListWithTypes; } });
9
- Object.defineProperty(exports, "filterComponentsByType", { enumerable: true, get: function () { return components_1.filterComponentsByType; } });
10
- var plugins_1 = require("./plugins");
11
- Object.defineProperty(exports, "generatePlugins", { enumerable: true, get: function () { return plugins_1.generatePlugins; } });
12
- Object.defineProperty(exports, "ModuleType", { enumerable: true, get: function () { return plugins_1.ModuleType; } });
13
- var utils_1 = require("./utils");
14
- Object.defineProperty(exports, "matchPath", { enumerable: true, get: function () { return utils_1.matchPath; } });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.matchPath = exports.ModuleType = exports.generatePlugins = exports.filterComponentsByType = exports.getComponentList = void 0;
4
+ var components_1 = require("./components");
5
+ Object.defineProperty(exports, "getComponentList", { enumerable: true, get: function () { return components_1.getComponentList; } });
6
+ Object.defineProperty(exports, "filterComponentsByType", { enumerable: true, get: function () { return components_1.filterComponentsByType; } });
7
+ var plugins_1 = require("./plugins");
8
+ Object.defineProperty(exports, "generatePlugins", { enumerable: true, get: function () { return plugins_1.generatePlugins; } });
9
+ Object.defineProperty(exports, "ModuleType", { enumerable: true, get: function () { return plugins_1.ModuleType; } });
10
+ var utils_1 = require("./utils");
11
+ Object.defineProperty(exports, "matchPath", { enumerable: true, get: function () { return utils_1.matchPath; } });
@@ -1,78 +1,80 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ModuleType = void 0;
7
- exports.getPluginList = getPluginList;
8
- exports.generatePlugins = generatePlugins;
9
- const fs_1 = __importDefault(require("fs"));
10
- const path_1 = __importDefault(require("path"));
11
- const utils_1 = require("./utils");
12
- /**
13
- * Identifies the format of the module to be compiled
14
- */
15
- var ModuleType;
16
- (function (ModuleType) {
17
- ModuleType[ModuleType["CJS"] = 0] = "CJS";
18
- ModuleType[ModuleType["ESM"] = 1] = "ESM";
19
- })(ModuleType || (exports.ModuleType = ModuleType = {}));
20
- /**
21
- * Get list of plugins from @var path
22
- * Returns a list of plugins in the following format:
23
- * {
24
- * path: 'path/to/plugin/foo',
25
- * name: 'fooPlugin'
26
- * }
27
- * @example getPluginList('src/foo/plugins', 'Foo')
28
- * @param {object} definition plugin definition
29
- * @param {string} definition.path path to get plugin from
30
- * @param {string} definition.pluginName plugin name
31
- * @param {boolean} [definition.silent] whether to suppress console output
32
- */
33
- function getPluginList({ path, pluginName, silent = false, }) {
34
- const plugins = (0, utils_1.getItems)({
35
- path,
36
- resolveItem: (path, name) => ({
37
- path: `${path}/${name}`,
38
- name: `${name.replace(/-./g, (x) => x[1].toUpperCase())}Plugin`,
39
- }),
40
- cb: (name) => !silent && console.debug(`Registering ${pluginName} plugin ${name}`),
41
- });
42
- return plugins;
43
- }
44
- /**
45
- * Generates the plugins file and saves it to the filesystem.
46
- * By convention, we expect to find plugins under {pluginName}/plugins/** (subfolders are searched recursively).
47
- * generated file will be saved to @var {distPath} and will contain a list of plugins in the following format:
48
- * CJS: exports.fooPlugin = require('{pluginPath}');
49
- * ESM: export { fooPlugin } from '{pluginPath}';
50
- * @example generatePlugins({ distPath: 'src/temp/foo-plugins.js', rootPath: 'src/foo/plugins', moduleType: ModuleType.CJS })
51
- * @param {PluginDefinition} definition plugin definition
52
- */
53
- function generatePlugins(definition) {
54
- const { rootPath, distPath, moduleType, relative = false, silent } = definition;
55
- const segments = rootPath.split('/');
56
- const pluginName = segments[segments.length - 2];
57
- const plugins = getPluginList({ path: rootPath, pluginName, silent });
58
- let fileContent = '';
59
- fileContent = plugins
60
- .map((plugin) => {
61
- const sourcePath = relative
62
- ? path_1.default.relative(path_1.default.dirname(distPath), plugin.path).replace(/\\/g, '/')
63
- : plugin.path;
64
- return moduleType === ModuleType.CJS
65
- ? `exports.${plugin.name} = require('${sourcePath}');`
66
- : `export { ${plugin.name} } from '${sourcePath}';`;
67
- })
68
- .join('\r\n')
69
- .concat('\r\n');
70
- if (!plugins.length) {
71
- fileContent = moduleType === ModuleType.CJS ? 'module.exports = {};\r\n' : 'export {};\r\n';
72
- }
73
- const filePath = path_1.default.resolve(distPath);
74
- !silent && console.log(`Writing ${pluginName} plugins to ${filePath}`);
75
- fs_1.default.writeFileSync(filePath, fileContent, {
76
- encoding: 'utf8',
77
- });
78
- }
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ModuleType = void 0;
7
+ exports.getPluginList = getPluginList;
8
+ exports.generatePlugins = generatePlugins;
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const utils_1 = require("./utils");
12
+ /**
13
+ * Identifies the format of the module to be compiled
14
+ * @public
15
+ */
16
+ var ModuleType;
17
+ (function (ModuleType) {
18
+ ModuleType[ModuleType["CJS"] = 0] = "CJS";
19
+ ModuleType[ModuleType["ESM"] = 1] = "ESM";
20
+ })(ModuleType || (exports.ModuleType = ModuleType = {}));
21
+ /**
22
+ * Get list of plugins from @var path
23
+ * Returns a list of plugins in the following format:
24
+ * {
25
+ * path: 'path/to/plugin/foo',
26
+ * name: 'fooPlugin'
27
+ * }
28
+ * @example getPluginList('src/foo/plugins', 'Foo')
29
+ * @param {object} definition plugin definition
30
+ * @param {string} definition.path path to get plugin from
31
+ * @param {string} definition.pluginName plugin name
32
+ * @param {boolean} [definition.silent] whether to suppress console output
33
+ */
34
+ function getPluginList({ path, pluginName, silent = false, }) {
35
+ const plugins = (0, utils_1.getItems)({
36
+ path,
37
+ resolveItem: (path, name) => ({
38
+ path: `${path}/${name}`,
39
+ name: `${name.replace(/-./g, (x) => x[1].toUpperCase())}Plugin`,
40
+ }),
41
+ cb: (name) => !silent && console.debug(`Registering ${pluginName} plugin ${name}`),
42
+ });
43
+ return plugins;
44
+ }
45
+ /**
46
+ * Generates the plugins file and saves it to the filesystem.
47
+ * By convention, we expect to find plugins under {pluginName}/plugins/** (subfolders are searched recursively).
48
+ * generated file will be saved to @var {distPath} and will contain a list of plugins in the following format:
49
+ * CJS: exports.fooPlugin = require('{pluginPath}');
50
+ * ESM: export { fooPlugin } from '{pluginPath}';
51
+ * @example generatePlugins({ distPath: 'src/temp/foo-plugins.js', rootPath: 'src/foo/plugins', moduleType: ModuleType.CJS })
52
+ * @param {PluginDefinition} definition plugin definition
53
+ * @public
54
+ */
55
+ function generatePlugins(definition) {
56
+ const { rootPath, distPath, moduleType, relative = false, silent } = definition;
57
+ const segments = rootPath.split('/');
58
+ const pluginName = segments[segments.length - 2];
59
+ const plugins = getPluginList({ path: rootPath, pluginName, silent });
60
+ let fileContent = '';
61
+ fileContent = plugins
62
+ .map((plugin) => {
63
+ const sourcePath = relative
64
+ ? path_1.default.relative(path_1.default.dirname(distPath), plugin.path).replace(/\\/g, '/')
65
+ : plugin.path;
66
+ return moduleType === ModuleType.CJS
67
+ ? `exports.${plugin.name} = require('${sourcePath}');`
68
+ : `export { ${plugin.name} } from '${sourcePath}';`;
69
+ })
70
+ .join('\r\n')
71
+ .concat('\r\n');
72
+ if (!plugins.length) {
73
+ fileContent = moduleType === ModuleType.CJS ? 'module.exports = {};\r\n' : 'export {};\r\n';
74
+ }
75
+ const filePath = path_1.default.resolve(distPath);
76
+ !silent && console.log(`Writing ${pluginName} plugins to ${filePath}`);
77
+ fs_1.default.writeFileSync(filePath, fileContent, {
78
+ encoding: 'utf8',
79
+ });
80
+ }