@codeyam/codeyam-cli 0.1.0-staging.1 → 0.1.0-staging.da5baf5

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 (393) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +5 -5
  4. package/analyzer-template/packages/ai/index.ts +2 -1
  5. package/analyzer-template/packages/ai/package.json +2 -2
  6. package/analyzer-template/packages/ai/scripts/ai-test-matrix.mjs +424 -0
  7. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +24 -0
  8. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +6 -16
  9. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +197 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +28 -2
  11. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +127 -4
  12. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +1 -3
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1821 -542
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.ts +138 -0
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +1 -1
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +139 -0
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/DebugTracer.ts +224 -0
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/PathManager.ts +203 -0
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/README.md +294 -0
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +161 -0
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.ts +235 -0
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +14 -6
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/selectBestValue.ts +70 -0
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.ts +113 -0
  25. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +36 -0
  26. package/analyzer-template/packages/ai/src/lib/generateChangesEntityDocumentation.ts +20 -2
  27. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +51 -107
  28. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +56 -160
  29. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +79 -265
  30. package/analyzer-template/packages/ai/src/lib/generateEntityDocumentation.ts +16 -2
  31. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +53 -176
  32. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +53 -154
  33. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +84 -254
  34. package/analyzer-template/packages/ai/src/lib/generateStatementAnalysis.ts +48 -71
  35. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +27 -6
  36. package/analyzer-template/packages/ai/src/lib/getLLMCallStats.ts +0 -14
  37. package/analyzer-template/packages/ai/src/lib/modelInfo.ts +15 -0
  38. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +42 -4
  39. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.ts +8 -33
  40. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +54 -62
  41. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +93 -109
  42. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.ts +8 -27
  43. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +33 -38
  44. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +30 -30
  45. package/analyzer-template/packages/ai/src/lib/types/index.ts +2 -0
  46. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +39 -0
  47. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +52 -6
  48. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +238 -0
  49. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.ts +25 -0
  50. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/index.ts +2 -0
  51. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +8 -10
  52. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +6 -1
  53. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +34 -15
  54. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +17 -3
  55. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +35 -16
  56. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +7 -1
  57. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +9 -1
  58. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +6 -1
  59. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +9 -1
  60. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +15 -7
  61. package/analyzer-template/packages/aws/package.json +2 -2
  62. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +28 -21
  63. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts +18 -11
  64. package/analyzer-template/packages/generate/src/lib/scenarioComponent.ts +6 -3
  65. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  66. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +28 -21
  67. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  68. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.d.ts.map +1 -1
  69. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
  70. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
  71. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts.map +1 -1
  72. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js +5 -3
  73. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js.map +1 -1
  74. package/analyzer-template/packages/github/dist/utils/index.d.ts +2 -0
  75. package/analyzer-template/packages/github/dist/utils/index.d.ts.map +1 -1
  76. package/analyzer-template/packages/github/dist/utils/index.js +2 -0
  77. package/analyzer-template/packages/github/dist/utils/index.js.map +1 -1
  78. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts +25 -0
  79. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  80. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js +40 -0
  81. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js.map +1 -0
  82. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
  83. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
  84. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  85. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  86. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  87. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  88. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
  89. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  90. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  91. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  92. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  93. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  94. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +12 -0
  95. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
  96. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  97. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  98. package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemEditor.tsx +1 -1
  99. package/analyzer-template/packages/utils/dist/utils/index.d.ts +2 -0
  100. package/analyzer-template/packages/utils/dist/utils/index.d.ts.map +1 -1
  101. package/analyzer-template/packages/utils/dist/utils/index.js +2 -0
  102. package/analyzer-template/packages/utils/dist/utils/index.js.map +1 -1
  103. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts +25 -0
  104. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  105. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js +40 -0
  106. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js.map +1 -0
  107. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
  108. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
  109. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  110. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  111. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  112. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  113. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
  114. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  115. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  116. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  117. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  118. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  119. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +12 -0
  120. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
  121. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  122. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  123. package/analyzer-template/packages/utils/index.ts +2 -0
  124. package/analyzer-template/packages/utils/src/lib/Semaphore.ts +42 -0
  125. package/analyzer-template/packages/utils/src/lib/frameworks/getNextRoutePath.ts +8 -3
  126. package/analyzer-template/packages/utils/src/lib/frameworks/getRemixRoutePath.ts +2 -1
  127. package/analyzer-template/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.ts +2 -1
  128. package/analyzer-template/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.ts +1 -0
  129. package/analyzer-template/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.ts +33 -0
  130. package/analyzer-template/project/constructMockCode.ts +170 -6
  131. package/analyzer-template/project/reconcileMockDataKeys.ts +13 -0
  132. package/analyzer-template/project/startScenarioCapture.ts +24 -0
  133. package/analyzer-template/project/trackGeneratedFiles.ts +41 -0
  134. package/analyzer-template/project/writeMockDataTsx.ts +125 -4
  135. package/analyzer-template/project/writeScenarioComponents.ts +175 -45
  136. package/analyzer-template/project/writeUniversalMocks.ts +72 -10
  137. package/background/src/lib/virtualized/project/constructMockCode.js +158 -7
  138. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  139. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +12 -0
  140. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  141. package/background/src/lib/virtualized/project/startScenarioCapture.js +18 -0
  142. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  143. package/background/src/lib/virtualized/project/trackGeneratedFiles.js +30 -0
  144. package/background/src/lib/virtualized/project/trackGeneratedFiles.js.map +1 -0
  145. package/background/src/lib/virtualized/project/writeMockDataTsx.js +95 -3
  146. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  147. package/background/src/lib/virtualized/project/writeScenarioComponents.js +130 -28
  148. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  149. package/background/src/lib/virtualized/project/writeUniversalMocks.js +59 -9
  150. package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
  151. package/codeyam-cli/scripts/apply-setup.js +288 -0
  152. package/codeyam-cli/scripts/apply-setup.js.map +1 -0
  153. package/codeyam-cli/scripts/extract-setup.js +130 -0
  154. package/codeyam-cli/scripts/extract-setup.js.map +1 -0
  155. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +238 -0
  156. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +1 -0
  157. package/codeyam-cli/src/cli.js +4 -0
  158. package/codeyam-cli/src/cli.js.map +1 -1
  159. package/codeyam-cli/src/codeyam-cli.js +0 -0
  160. package/codeyam-cli/src/commands/debug.js +190 -0
  161. package/codeyam-cli/src/commands/debug.js.map +1 -0
  162. package/codeyam-cli/src/commands/init.js +4 -23
  163. package/codeyam-cli/src/commands/init.js.map +1 -1
  164. package/codeyam-cli/src/commands/setup-sandbox.js +164 -0
  165. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -0
  166. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js +6 -6
  167. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js.map +1 -1
  168. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +8 -0
  169. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  170. package/codeyam-cli/src/utils/analysisRunner.js +4 -3
  171. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  172. package/codeyam-cli/src/utils/backgroundServer.js +25 -5
  173. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  174. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js +2 -2
  175. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js.map +1 -1
  176. package/codeyam-cli/src/utils/fileWatcher.js +75 -5
  177. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  178. package/codeyam-cli/src/utils/queue/job.js +3 -2
  179. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  180. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +4 -0
  181. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  182. package/codeyam-cli/src/utils/webappDetection.js +2 -1
  183. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  184. package/codeyam-cli/src/webserver/app/lib/database.js +63 -2
  185. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  186. package/codeyam-cli/src/webserver/backgroundServer.js +15 -35
  187. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  188. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BFRmw1TF.js +1 -0
  189. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-Dh-FldQK.js → InteractivePreview-CRfBaL5B.js} +3 -3
  190. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-BYVx9KFp.js +3 -0
  191. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-Dp6DC845.js → LogViewer-CRcT5fOZ.js} +1 -1
  192. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-Bual6h18.js +1 -0
  193. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Dj4Mm0AR.js +6 -0
  194. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-wtCIkGzq.js +5 -0
  195. package/codeyam-cli/src/webserver/build/client/assets/_index-Cjdlwanz.js +1 -0
  196. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-Dv3k2aEm.js +10 -0
  197. package/codeyam-cli/src/webserver/build/client/assets/chart-column-DOftqM9U.js +1 -0
  198. package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-De6i8FUT.js +26 -0
  199. package/codeyam-cli/src/webserver/build/client/assets/circle-alert-0WShkwuc.js +1 -0
  200. package/codeyam-cli/src/webserver/build/client/assets/clock-DXui5oLF.js +1 -0
  201. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DPFKgE96.js +1 -0
  202. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-1Z6D0fLM.js → entity._sha._-BxaXKsIx.js} +10 -10
  203. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BRD2FrH5.js +1 -0
  204. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-69R47Ffu.js +5 -0
  205. package/codeyam-cli/src/webserver/build/client/assets/{entityVersioning-DO2gCvXv.js → entityVersioning-Bk_YB1jM.js} +1 -1
  206. package/codeyam-cli/src/webserver/build/client/assets/entry.client-B5l8I1m3.js +5 -0
  207. package/codeyam-cli/src/webserver/build/client/assets/file-text-fb2mx25c.js +1 -0
  208. package/codeyam-cli/src/webserver/build/client/assets/files-l_Eh9jQG.js +1 -0
  209. package/codeyam-cli/src/webserver/build/client/assets/git-BCnOUEl9.js +12 -0
  210. package/codeyam-cli/src/webserver/build/client/assets/globals-BxkM6Up7.css +1 -0
  211. package/codeyam-cli/src/webserver/build/client/assets/index-BgDzgbQW.js +8 -0
  212. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DE3HAwpF.js +1 -0
  213. package/codeyam-cli/src/webserver/build/client/assets/manifest-5579bc45.js +1 -0
  214. package/codeyam-cli/src/webserver/build/client/assets/root-o8NMI2bW.js +16 -0
  215. package/codeyam-cli/src/webserver/build/client/assets/search-BymWwY_X.js +1 -0
  216. package/codeyam-cli/src/webserver/build/client/assets/settings-C7G4GDvW.js +1 -0
  217. package/codeyam-cli/src/webserver/build/client/assets/settings-Dc4MlMpK.js +1 -0
  218. package/codeyam-cli/src/webserver/build/client/assets/simulations-Duh3oShE.js +1 -0
  219. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BBlyqxij.js → useLastLogLine-AlhS7g5F.js} +1 -1
  220. package/codeyam-cli/src/webserver/build/client/assets/useToast-XY00p4rI.js +1 -0
  221. package/codeyam-cli/src/webserver/build/client/assets/zap-Dra7vum1.js +1 -0
  222. package/codeyam-cli/src/webserver/build/server/assets/index-Dpr7o3dP.js +1 -0
  223. package/codeyam-cli/src/webserver/build/server/assets/server-build-BM5nyvlV.js +166 -0
  224. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  225. package/codeyam-cli/src/webserver/build-info.json +5 -5
  226. package/codeyam-cli/src/webserver/server.js +1 -1
  227. package/codeyam-cli/src/webserver/server.js.map +1 -1
  228. package/codeyam-cli/templates/codeyam-setup-skill.md +85 -94
  229. package/package.json +7 -10
  230. package/packages/ai/index.js +1 -2
  231. package/packages/ai/index.js.map +1 -1
  232. package/packages/ai/src/lib/analyzeScope.js +13 -0
  233. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  234. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +6 -15
  235. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  236. package/packages/ai/src/lib/astScopes/methodSemantics.js +134 -0
  237. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  238. package/packages/ai/src/lib/astScopes/paths.js +28 -3
  239. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  240. package/packages/ai/src/lib/astScopes/processExpression.js +111 -3
  241. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  242. package/packages/ai/src/lib/checkAllAttributes.js +1 -3
  243. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  244. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1320 -396
  245. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  246. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js +137 -1
  247. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js.map +1 -1
  248. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +1 -1
  249. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  250. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +112 -0
  251. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -0
  252. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js +176 -0
  253. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js.map +1 -0
  254. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js +178 -0
  255. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js.map +1 -0
  256. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +138 -0
  257. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -0
  258. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js +199 -0
  259. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js.map +1 -0
  260. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +14 -6
  261. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  262. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js +62 -0
  263. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js.map +1 -0
  264. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js +90 -0
  265. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js.map +1 -0
  266. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +22 -0
  267. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
  268. package/packages/ai/src/lib/generateChangesEntityDocumentation.js +19 -1
  269. package/packages/ai/src/lib/generateChangesEntityDocumentation.js.map +1 -1
  270. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +51 -107
  271. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +1 -1
  272. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +55 -156
  273. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  274. package/packages/ai/src/lib/generateChangesEntityScenarios.js +79 -262
  275. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  276. package/packages/ai/src/lib/generateEntityDocumentation.js +15 -1
  277. package/packages/ai/src/lib/generateEntityDocumentation.js.map +1 -1
  278. package/packages/ai/src/lib/generateEntityKeyAttributes.js +53 -176
  279. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -1
  280. package/packages/ai/src/lib/generateEntityScenarioData.js +52 -152
  281. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  282. package/packages/ai/src/lib/generateEntityScenarios.js +88 -258
  283. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  284. package/packages/ai/src/lib/generateStatementAnalysis.js +46 -71
  285. package/packages/ai/src/lib/generateStatementAnalysis.js.map +1 -1
  286. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +13 -8
  287. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  288. package/packages/ai/src/lib/getLLMCallStats.js +0 -14
  289. package/packages/ai/src/lib/getLLMCallStats.js.map +1 -1
  290. package/packages/ai/src/lib/modelInfo.js +15 -0
  291. package/packages/ai/src/lib/modelInfo.js.map +1 -1
  292. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +36 -3
  293. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  294. package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js +8 -33
  295. package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js.map +1 -1
  296. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +35 -41
  297. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  298. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +59 -72
  299. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  300. package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js +8 -27
  301. package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js.map +1 -1
  302. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +24 -27
  303. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  304. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +21 -22
  305. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  306. package/packages/ai/src/lib/types/index.js +2 -0
  307. package/packages/ai/src/lib/types/index.js.map +1 -1
  308. package/packages/ai/src/lib/worker/SerializableDataStructure.js +7 -0
  309. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  310. package/packages/analyze/src/lib/FileAnalyzer.js +45 -5
  311. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  312. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +191 -0
  313. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -0
  314. package/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.js +16 -0
  315. package/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.js.map +1 -0
  316. package/packages/analyze/src/lib/asts/sourceFiles/index.js +2 -0
  317. package/packages/analyze/src/lib/asts/sourceFiles/index.js.map +1 -1
  318. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +6 -8
  319. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  320. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +5 -1
  321. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  322. package/packages/analyze/src/lib/files/analyzeChange.js +21 -9
  323. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  324. package/packages/analyze/src/lib/files/analyzeEntity.js +10 -4
  325. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  326. package/packages/analyze/src/lib/files/analyzeInitial.js +21 -9
  327. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  328. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +6 -1
  329. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  330. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +9 -1
  331. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -1
  332. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +5 -1
  333. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  334. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +9 -1
  335. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  336. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +16 -7
  337. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  338. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +28 -21
  339. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  340. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
  341. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
  342. package/packages/generate/src/lib/scenarioComponent.js +5 -3
  343. package/packages/generate/src/lib/scenarioComponent.js.map +1 -1
  344. package/packages/utils/index.js +2 -0
  345. package/packages/utils/index.js.map +1 -1
  346. package/packages/utils/src/lib/Semaphore.js +40 -0
  347. package/packages/utils/src/lib/Semaphore.js.map +1 -0
  348. package/packages/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
  349. package/packages/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  350. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  351. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  352. package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  353. package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  354. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  355. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  356. package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  357. package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  358. package/analyzer-template/packages/ai/src/lib/generateEntityDataMap.ts +0 -375
  359. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-GqWwt5wG.js +0 -1
  360. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-p0fuyqGQ.js +0 -3
  361. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-xwuhwsZH.js +0 -1
  362. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Bl2IRh55.js +0 -1
  363. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-M2QuSHKC.js +0 -5
  364. package/codeyam-cli/src/webserver/build/client/assets/_index-CAVtep9Q.js +0 -1
  365. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CLmzsLsT.js +0 -10
  366. package/codeyam-cli/src/webserver/build/client/assets/chart-column-B2I7jQx2.js +0 -1
  367. package/codeyam-cli/src/webserver/build/client/assets/circle-alert-GwwOAbhw.js +0 -1
  368. package/codeyam-cli/src/webserver/build/client/assets/components-CAx5ONX_.js +0 -40
  369. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CgyOwWip.js +0 -1
  370. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DGy3zrli.js +0 -1
  371. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-ChAdTrrU.js +0 -1
  372. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-D9L7267w.js +0 -5
  373. package/codeyam-cli/src/webserver/build/client/assets/entry.client-C6FRgjPr.js +0 -1
  374. package/codeyam-cli/src/webserver/build/client/assets/files-C3-cQjgv.js +0 -1
  375. package/codeyam-cli/src/webserver/build/client/assets/git-Dp4EB9nv.js +0 -12
  376. package/codeyam-cli/src/webserver/build/client/assets/globals-Da3jt49-.css +0 -1
  377. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DN7Vr40D.js +0 -1
  378. package/codeyam-cli/src/webserver/build/client/assets/manifest-172a4629.js +0 -1
  379. package/codeyam-cli/src/webserver/build/client/assets/root-COyVTsPq.js +0 -16
  380. package/codeyam-cli/src/webserver/build/client/assets/search-CvyP_1Lo.js +0 -1
  381. package/codeyam-cli/src/webserver/build/client/assets/settings-Hbf8b7J_.js +0 -1
  382. package/codeyam-cli/src/webserver/build/client/assets/settings-MZc4XdmE.js +0 -1
  383. package/codeyam-cli/src/webserver/build/client/assets/simulations-BMBi0VzO.js +0 -1
  384. package/codeyam-cli/src/webserver/build/client/assets/useToast-C_VxoXTh.js +0 -1
  385. package/codeyam-cli/src/webserver/build/client/assets/zap-B4gsLUZQ.js +0 -1
  386. package/codeyam-cli/src/webserver/build/client/cy-logo-cli.svg +0 -13
  387. package/codeyam-cli/src/webserver/build/server/assets/index-eAULANMV.js +0 -1
  388. package/codeyam-cli/src/webserver/build/server/assets/server-build-lutv16q5.js +0 -161
  389. package/codeyam-cli/src/webserver/public/cy-logo-cli.svg +0 -13
  390. package/packages/ai/src/lib/generateEntityDataMap.js +0 -335
  391. package/packages/ai/src/lib/generateEntityDataMap.js.map +0 -1
  392. package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js +0 -17
  393. package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"componentScenarioPageRemix.d.ts","sourceRoot":"","sources":["../../../../../../generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAU5E,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,UA8FjB"}
1
+ {"version":3,"file":"componentScenarioPageRemix.d.ts","sourceRoot":"","sources":["../../../../../../generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAU5E,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,UAqGjB"}
@@ -7,8 +7,6 @@ import getImageReplacementCode from './getImageReplacementCode';
7
7
  const VERSION = '0.5.1';
8
8
  export default function componentScenarioPageRemix(file, entity, analysis, currentPath, appPath, scenario, mocksDir) {
9
9
  return `import { ReactNode, useEffect, useCallback, useState } from 'react';
10
- import type { MetaFunction } from "@remix-run/node";
11
- import { useSearchParams } from "@remix-run/react";
12
10
  ${analysis.scenarios?.length > 0 && `import { scenarios } from "${mocksDir}/MockData_${safeFileName(scenario.name)}";`}
13
11
  ${getComponentImportStatement({
14
12
  file,
@@ -26,13 +24,6 @@ ${getComponentImportStatement({
26
24
  // Inject image interception code at module level to run before any rendering
27
25
  ${getImageReplacementCode()}
28
26
 
29
- export const meta: MetaFunction = () => {
30
- return [
31
- { title: "${file.name}: ${escapeQuotes(scenario.name)} CodeYam Demo v${VERSION}" },
32
- { name: "description", content: "This is a demo of the ${file.name} component under the scenario: ${escapeQuotes(scenario.description)}" },
33
- ];
34
- };
35
-
36
27
  function Scenario({ name, width, height, children }: { name: string, width: string, height: string, children: ReactNode }) {
37
28
 
38
29
  useEffect(() => {
@@ -73,7 +64,7 @@ function Scenario({ name, width, height, children }: { name: string, width: stri
73
64
  return (
74
65
  <div className='w-full flex items-center justify-center'>
75
66
  <div id='component' style={{
76
- minWidth: \`min(\${width}, 100vw)\`,
67
+ minWidth: width !== 'auto' ? \`min(\${width}, 100vw)\` : undefined,
77
68
  height: height !== 'auto' ? height : undefined,
78
69
  minHeight: height !== 'auto' ? height : undefined,
79
70
  display: 'block',
@@ -86,9 +77,25 @@ function Scenario({ name, width, height, children }: { name: string, width: stri
86
77
  }
87
78
 
88
79
  export default function Index() {
89
- const [searchParams] = useSearchParams();
80
+ const [searchParams] = useState(() =>
81
+ typeof window !== 'undefined'
82
+ ? new URLSearchParams(window.location.search)
83
+ : new URLSearchParams()
84
+ );
90
85
  const widthOverride = searchParams.get('width');
91
86
  const heightOverride = searchParams.get('height') || 'auto';
87
+
88
+ useEffect(() => {
89
+ document.title = "${file.name}: ${escapeQuotes(scenario.name)} CodeYam Demo v${VERSION}";
90
+ let metaDesc = document.querySelector('meta[name="description"]');
91
+ if (!metaDesc) {
92
+ metaDesc = document.createElement('meta');
93
+ metaDesc.setAttribute('name', 'description');
94
+ document.head.appendChild(metaDesc);
95
+ }
96
+ metaDesc.setAttribute('content', "This is a demo of the ${file.name} component under the scenario: ${escapeQuotes(scenario.description)}");
97
+ }, []);
98
+
92
99
  ${getIFrameMessageListenerCode({ scenarioName: scenario.name })}
93
100
 
94
101
  return (
@@ -1 +1 @@
1
- {"version":3,"file":"componentScenarioPageRemix.js","sourceRoot":"","sources":["../../../../../../generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,2BAA2B,MAAM,gCAAgC,CAAC;AACzE,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,IAAU,EACV,MAAc,EACd,QAAkB,EAClB,WAAmB,EACnB,OAAe,EACf,QAAkB,EAClB,QAAgB;IAEhB,OAAO;;;EAGP,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,8BAA8B,QAAQ,aAAa,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;EACpH,2BAA2B,CAAC;QAC5B,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,OAAO;QACP,OAAO,EAAE,IAAI;QACb,WAAW,EACT,MAAM,CAAC,IAAI,KAAK,SAAS;YACzB,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;YAC7D,MAAM,CAAC,UAAU,KAAK,SAAS;KAClC,CAAC;;;EAGA,uBAAuB,EAAE;;;;gBAIX,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,OAAO;6DACrB,IAAI,CAAC,IAAI,kCAAkC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4DtI,4BAA4B,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;;;;QAIzD,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;;;EAG3E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"componentScenarioPageRemix.js","sourceRoot":"","sources":["../../../../../../generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,2BAA2B,MAAM,gCAAgC,CAAC;AACzE,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,IAAU,EACV,MAAc,EACd,QAAkB,EAClB,WAAmB,EACnB,OAAe,EACf,QAAkB,EAClB,QAAgB;IAEhB,OAAO;EACP,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,8BAA8B,QAAQ,aAAa,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;EACpH,2BAA2B,CAAC;QAC5B,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,OAAO;QACP,OAAO,EAAE,IAAI;QACb,WAAW,EACT,MAAM,CAAC,IAAI,KAAK,SAAS;YACzB,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;YAC7D,MAAM,CAAC,UAAU,KAAK,SAAS;KAClC,CAAC;;;EAGA,uBAAuB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAgEH,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,OAAO;;;;;;;8DAO5B,IAAI,CAAC,IAAI,kCAAkC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;;;IAGvI,4BAA4B,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;;;;QAIzD,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;;;EAG3E,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scenarioComponent.d.ts","sourceRoot":"","sources":["../../../../../generate/src/lib/scenarioComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAcjE,MAAM,WAAW,wBAAwB;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,wBAA6B,UAgGvC"}
1
+ {"version":3,"file":"scenarioComponent.d.ts","sourceRoot":"","sources":["../../../../../generate/src/lib/scenarioComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAiBjE,MAAM,WAAW,wBAAwB;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,wBAA6B,UAgGvC"}
@@ -1,5 +1,7 @@
1
1
  import { safeFileName } from '~codeyam/utils';
2
2
  import handleWrappers from './handleWrappers';
3
+ // Escape double quotes for use in JavaScript string literals
4
+ const escapeForJsString = (s) => s.replace(/"/g, '\\"');
3
5
  const dimensionString = (dimension) => {
4
6
  if (!dimension)
5
7
  return 'auto';
@@ -60,9 +62,9 @@ export default function scenarioComponent(entity, analysis, scenario, options =
60
62
  ? `${uniqueProps
61
63
  .map((name) => isNaN(parseInt(name))
62
64
  ? name.endsWith(')')
63
- ? `${name.split('(')[0]}={() => _getScenarioProps({ argumentIndex: 0, propName: "${name}" }) as any}`
64
- : `${name}={_getScenarioProps({ argumentIndex: 0, propName: "${name}" }) as any}`
65
- : `positionalArgument_${name}={_getScenarioProps({ argumentIndex: 0, propName: "positionalArgument_${name}" }) as any}`)
65
+ ? `${name.split('(')[0]}={() => _getScenarioProps({ argumentIndex: 0, propName: "${escapeForJsString(name)}" }) as any}`
66
+ : `${name}={_getScenarioProps({ argumentIndex: 0, propName: "${escapeForJsString(name)}" }) as any}`
67
+ : `positionalArgument_${name}={_getScenarioProps({ argumentIndex: 0, propName: "positionalArgument_${escapeForJsString(name)}" }) as any}`)
66
68
  .join(argsSpacing)}\n >`
67
69
  : `>`;
68
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scenarioComponent.js","sourceRoot":"","sources":["../../../../../generate/src/lib/scenarioComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scenarioComponent.js","sourceRoot":"","sources":["../../../../../generate/src/lib/scenarioComponent.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export { default as Semaphore } from './src/lib/Semaphore';
1
2
  export { default as isRemixRoute } from './src/lib/frameworks/isRemixRoute';
2
3
  export { default as isNextRoute } from './src/lib/frameworks/isNextRoute';
3
4
  export { default as isFrameworkRoute } from './src/lib/frameworks/isFrameworkRoute';
@@ -7,6 +8,7 @@ export { default as frameworkRouteFileNameToRoute } from './src/lib/frameworks/f
7
8
  export { default as getRemixRoutePath } from './src/lib/frameworks/getRemixRoutePath';
8
9
  export { default as getNextRoutePath } from './src/lib/frameworks/getNextRoutePath';
9
10
  export { default as getFrameworkRoutePath } from './src/lib/frameworks/getFrameworkRoutePath';
11
+ export { default as sanitizeNextRouteSegments } from './src/lib/frameworks/sanitizeNextRouteSegments';
10
12
  export { default as safeFileName } from './src/lib/safeFileName';
11
13
  export { default as normalizeKey } from './src/lib/normalizeKey';
12
14
  export { default as awsLog, awsLogDebugLevel, setThreadContext, } from './src/lib/awsLog';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAC9G,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,OAAO,IAAI,mBAAmB,EAC9B,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAOpF,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAGlD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,iBAAiB,GACvB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAC9G,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,OAAO,IAAI,mBAAmB,EAC9B,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAOpF,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAGlD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,iBAAiB,GACvB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC"}
@@ -1,3 +1,4 @@
1
+ export { default as Semaphore } from './src/lib/Semaphore';
1
2
  export { default as isRemixRoute } from './src/lib/frameworks/isRemixRoute';
2
3
  export { default as isNextRoute } from './src/lib/frameworks/isNextRoute';
3
4
  export { default as isFrameworkRoute } from './src/lib/frameworks/isFrameworkRoute';
@@ -7,6 +8,7 @@ export { default as frameworkRouteFileNameToRoute } from './src/lib/frameworks/f
7
8
  export { default as getRemixRoutePath } from './src/lib/frameworks/getRemixRoutePath';
8
9
  export { default as getNextRoutePath } from './src/lib/frameworks/getNextRoutePath';
9
10
  export { default as getFrameworkRoutePath } from './src/lib/frameworks/getFrameworkRoutePath';
11
+ export { default as sanitizeNextRouteSegments } from './src/lib/frameworks/sanitizeNextRouteSegments';
10
12
  export { default as safeFileName } from './src/lib/safeFileName';
11
13
  export { default as normalizeKey } from './src/lib/normalizeKey';
12
14
  export { default as awsLog, awsLogDebugLevel, setThreadContext, } from './src/lib/awsLog';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAC9G,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,OAAO,IAAI,mBAAmB,EAC9B,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEpF,4EAA4E;AAC5E,iDAAiD;AACjD,2EAA2E;AAC3E,qGAAqG;AAErG,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAElD,iDAAiD;AACjD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,GAEvB,MAAM,sCAAsC,CAAC;AAE9C,8BAA8B;AAC9B,OAAO,EACL,mBAAmB,GAIpB,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAC9G,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,OAAO,IAAI,mBAAmB,EAC9B,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEpF,4EAA4E;AAC5E,iDAAiD;AACjD,2EAA2E;AAC3E,qGAAqG;AAErG,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAElD,iDAAiD;AACjD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,GAEvB,MAAM,sCAAsC,CAAC;AAE9C,8BAA8B;AAC9B,OAAO,EACL,mBAAmB,GAIpB,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * An async semaphore for limiting concurrent access to a resource.
3
+ *
4
+ * Useful for controlling parallelism when some operations are CPU-bound
5
+ * and shouldn't all run simultaneously, while allowing I/O-bound operations
6
+ * to proceed freely.
7
+ */
8
+ export default class Semaphore {
9
+ private count;
10
+ private waiting;
11
+ constructor(count: number);
12
+ /**
13
+ * Acquire a permit from the semaphore.
14
+ * If a permit is available, returns immediately.
15
+ * Otherwise, blocks until a permit becomes available.
16
+ */
17
+ acquire(): Promise<void>;
18
+ /**
19
+ * Release a permit back to the semaphore.
20
+ * If there are waiters, the first one in line gets the permit.
21
+ * Otherwise, increments the available count.
22
+ */
23
+ release(): void;
24
+ }
25
+ //# sourceMappingURL=Semaphore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Semaphore.d.ts","sourceRoot":"","sources":["../../../../../utils/src/lib/Semaphore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAyB;gBAE5B,KAAK,EAAE,MAAM;IAIzB;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAQhB"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * An async semaphore for limiting concurrent access to a resource.
3
+ *
4
+ * Useful for controlling parallelism when some operations are CPU-bound
5
+ * and shouldn't all run simultaneously, while allowing I/O-bound operations
6
+ * to proceed freely.
7
+ */
8
+ export default class Semaphore {
9
+ constructor(count) {
10
+ this.waiting = [];
11
+ this.count = count;
12
+ }
13
+ /**
14
+ * Acquire a permit from the semaphore.
15
+ * If a permit is available, returns immediately.
16
+ * Otherwise, blocks until a permit becomes available.
17
+ */
18
+ async acquire() {
19
+ if (this.count > 0) {
20
+ this.count--;
21
+ return;
22
+ }
23
+ await new Promise((resolve) => this.waiting.push(resolve));
24
+ }
25
+ /**
26
+ * Release a permit back to the semaphore.
27
+ * If there are waiters, the first one in line gets the permit.
28
+ * Otherwise, increments the available count.
29
+ */
30
+ release() {
31
+ const next = this.waiting.shift();
32
+ if (next) {
33
+ next();
34
+ }
35
+ else {
36
+ this.count++;
37
+ }
38
+ }
39
+ }
40
+ //# sourceMappingURL=Semaphore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Semaphore.js","sourceRoot":"","sources":["../../../../../utils/src/lib/Semaphore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAI5B,YAAY,KAAa;QAFjB,YAAO,GAAsB,EAAE,CAAC;QAGtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;QACT,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getNextRoutePath.d.ts","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/getNextRoutePath.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,OAAO,EACP,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,QAAQ,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B,UAuBA"}
1
+ {"version":3,"file":"getNextRoutePath.d.ts","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/getNextRoutePath.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,OAAO,EACP,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,QAAQ,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B,UA2BA"}
@@ -1,11 +1,13 @@
1
- import { safeFileName } from '~codeyam/utils';
1
+ import { getAppDirectoryForFile, safeFileName } from '~codeyam/utils';
2
2
  import { PROJECT_RELATIVE_PATH } from '~codeyam/utils';
3
+ import sanitizeNextRouteSegments from './sanitizeNextRouteSegments';
3
4
  export default function getNextRoutePath({ file, entity, rootAnalysis, project, framework, scenario, }) {
4
- const routePath = file.path.split('/').slice(1);
5
+ const routePath = sanitizeNextRouteSegments(file.path.split('/').slice(1));
5
6
  const scenarioSlug = scenario ? safeFileName(scenario.name) : undefined;
7
+ const appDirectory = getAppDirectoryForFile(file.path, project.metadata?.webapps);
6
8
  const pathComponents = [
7
9
  PROJECT_RELATIVE_PATH,
8
- 'app',
10
+ appDirectory,
9
11
  'static',
10
12
  project.slug,
11
13
  rootAnalysis.id,
@@ -1 +1 @@
1
- {"version":3,"file":"getNextRoutePath.js","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/getNextRoutePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,GAST;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,cAAc,GAAG;QACrB,qBAAqB;QACrB,KAAK;QACL,QAAQ;QACR,OAAO,CAAC,IAAI;QACZ,YAAY,CAAC,EAAE;QACf,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC;QACrC,YAAY;QACZ,GAAG,SAAS;KACb,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CACT,iCAAiC,EACjC,IAAI,CAAC,IAAI,EACT,MAAM,CAAC,IAAI,EACX,QAAQ,CACT,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"getNextRoutePath.js","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/getNextRoutePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,GAST;IACC,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,YAAY,GAAG,sBAAsB,CACzC,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,QAAQ,EAAE,OAAO,CAC1B,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,qBAAqB;QACrB,YAAY;QACZ,QAAQ;QACR,OAAO,CAAC,IAAI;QACZ,YAAY,CAAC,EAAE;QACf,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC;QACrC,YAAY;QACZ,GAAG,SAAS;KACb,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CACT,iCAAiC,EACjC,IAAI,CAAC,IAAI,EACT,MAAM,CAAC,IAAI,EACX,QAAQ,CACT,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getRemixRoutePath.d.ts","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/getRemixRoutePath.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEzE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,SAAiB,EACjB,OAAO,EACP,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B,UA2BA"}
1
+ {"version":3,"file":"getRemixRoutePath.d.ts","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/getRemixRoutePath.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEzE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,SAAiB,EACjB,OAAO,EACP,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B,UA4BA"}
@@ -6,7 +6,8 @@ export default function getRemixRoutePath({ file, rootFile, entity, rootAnalysis
6
6
  const route = file.path.slice(routesIndex);
7
7
  const cleanRoute = route
8
8
  .replace(/\//g, '.')
9
- .replace('$', '')
9
+ .replace(/\$(\w+)/g, '$1') // $slug -> slug (named params)
10
+ .replace(/\$/g, 'splat') // bare $ -> splat (catch-all)
10
11
  .replace(/_/g, 'x');
11
12
  const scenarioSlug = scenario ? `.${safeFileName(scenario.name)}` : '';
12
13
  let routePath = `${PROJECT_RELATIVE_PATH}/${basePath}/static.${project.slug}.${rootAnalysis.id}.${safeFileName(rootAnalysis.entityName)}${scenarioSlug}.${cleanRoute}`;
@@ -1 +1 @@
1
- {"version":3,"file":"getRemixRoutePath.js","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/getRemixRoutePath.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAGxB,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,SAAS,GAAG,KAAK,EACjB,OAAO,EACP,QAAQ,GAST;IACC,MAAM,YAAY,GAAG,sBAAsB,CACzC,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,QAAQ,CAAC,OAAO,CACzB,CAAC;IACF,MAAM,QAAQ,GAAG,GAAG,YAAY,SAAS,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,KAAK;SACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;SAChB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEtB,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,IAAI,SAAS,GAAG,GAAG,qBAAqB,IAAI,QAAQ,WAAW,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC,EAAE,IAAI,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC;IAEvK,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC;QAC5B,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE,EAAE,YAAY,SAAS,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,CAAC,GAAG,CACT,mCAAmC,EACnC,IAAI,CAAC,IAAI,EACT,MAAM,CAAC,IAAI,EACX,SAAS,CACV,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"getRemixRoutePath.js","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/getRemixRoutePath.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAGxB,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,SAAS,GAAG,KAAK,EACjB,OAAO,EACP,QAAQ,GAST;IACC,MAAM,YAAY,GAAG,sBAAsB,CACzC,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,QAAQ,CAAC,OAAO,CACzB,CAAC;IACF,MAAM,QAAQ,GAAG,GAAG,YAAY,SAAS,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,KAAK;SACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,+BAA+B;SACzD,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,8BAA8B;SACtD,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEtB,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,IAAI,SAAS,GAAG,GAAG,qBAAqB,IAAI,QAAQ,WAAW,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC,EAAE,IAAI,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC;IAEvK,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC;QAC5B,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE,EAAE,YAAY,SAAS,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,CAAC,GAAG,CACT,mCAAmC,EACnC,IAAI,CAAC,IAAI,EACT,MAAM,CAAC,IAAI,EACX,SAAS,CACV,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"nextRouteFileNameToRoute.d.ts","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/nextRouteFileNameToRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGhD,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,YAAY,CAAC,EAAE,MAAM,UAYtB"}
1
+ {"version":3,"file":"nextRouteFileNameToRoute.d.ts","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/nextRouteFileNameToRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAIhD,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,YAAY,CAAC,EAAE,MAAM,UAYtB"}
@@ -1,6 +1,7 @@
1
1
  import safeFileName from '../safeFileName';
2
+ import sanitizeNextRouteSegments from './sanitizeNextRouteSegments';
2
3
  export default function nextRouteFileNameToRoute(projectSlug, file, analysis, scenarioName) {
3
- const route = file.path.split('/').slice(1, -1);
4
+ const route = sanitizeNextRouteSegments(file.path.split('/').slice(1, -1));
4
5
  const pathComponents = [
5
6
  'static',
6
7
  projectSlug,
@@ -1 +1 @@
1
- {"version":3,"file":"nextRouteFileNameToRoute.js","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/nextRouteFileNameToRoute.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAE3C,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,WAAmB,EACnB,IAAU,EACV,QAAkB,EAClB,YAAqB;IAErB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG;QACrB,QAAQ;QACR,WAAW;QACX,QAAQ,CAAC,EAAE;QACX,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;QACrD,GAAG,KAAK;KACT,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"nextRouteFileNameToRoute.js","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/nextRouteFileNameToRoute.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,WAAmB,EACnB,IAAU,EACV,QAAkB,EAClB,YAAqB;IAErB,MAAM,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAG;QACrB,QAAQ;QACR,WAAW;QACX,QAAQ,CAAC,EAAE;QACX,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;QACrD,GAAG,KAAK;KACT,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"remixRouteFileNameToRoute.d.ts","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/remixRouteFileNameToRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGhD,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,YAAY,CAAC,EAAE,MAAM,UAmBtB"}
1
+ {"version":3,"file":"remixRouteFileNameToRoute.d.ts","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/remixRouteFileNameToRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGhD,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,YAAY,CAAC,EAAE,MAAM,UAoBtB"}
@@ -13,6 +13,7 @@ export default function remixRouteFileNameToRoute(projectSlug, file, analysis, s
13
13
  .replace(/\(\$(\w+)\)/g, '$1')
14
14
  .replace(/\$(\w+)/g, '$1')
15
15
  .replace(/\((\w+)\)/g, '$1')
16
+ .replace(/\$/g, 'splat')
16
17
  .replace(/_/g, 'x'),
17
18
  'default',
18
19
  ].filter(Boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"remixRouteFileNameToRoute.js","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/remixRouteFileNameToRoute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,WAAmB,EACnB,IAAU,EACV,QAAkB,EAClB,YAAqB;IAErB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG;QACrB,QAAQ;QACR,WAAW;QACX,QAAQ,CAAC,EAAE;QACX,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;QACrD,KAAK;aACF,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;aACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;aAC7B,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;aACzB,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;aAC3B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACrB,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"remixRouteFileNameToRoute.js","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/remixRouteFileNameToRoute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,WAAmB,EACnB,IAAU,EACV,QAAkB,EAClB,YAAqB;IAErB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG;QACrB,QAAQ;QACR,WAAW;QACX,QAAQ,CAAC,EAAE;QACX,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;QACrD,KAAK;aACF,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;aACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;aAC7B,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;aACzB,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;aAC3B,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;aACvB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACrB,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Sanitize Next.js route path segments to remove special syntax.
3
+ * - Route groups (folder) become folder (strip parens, keep name)
4
+ * - Dynamic segments [param] become param0 (suffix avoids Next.js private folder convention)
5
+ * - Catch-all [...slug] becomes slug0
6
+ * - Optional catch-all [[...slug]] becomes slug0
7
+ *
8
+ * Note: We use suffix "0" instead of prefix "_" because Next.js treats folders
9
+ * starting with underscore as private segments that are excluded from routing.
10
+ */
11
+ export default function sanitizeNextRouteSegments(segments: string[]): string[];
12
+ //# sourceMappingURL=sanitizeNextRouteSegments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizeNextRouteSegments.d.ts","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/sanitizeNextRouteSegments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,CAoBV"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Sanitize Next.js route path segments to remove special syntax.
3
+ * - Route groups (folder) become folder (strip parens, keep name)
4
+ * - Dynamic segments [param] become param0 (suffix avoids Next.js private folder convention)
5
+ * - Catch-all [...slug] becomes slug0
6
+ * - Optional catch-all [[...slug]] becomes slug0
7
+ *
8
+ * Note: We use suffix "0" instead of prefix "_" because Next.js treats folders
9
+ * starting with underscore as private segments that are excluded from routing.
10
+ */
11
+ export default function sanitizeNextRouteSegments(segments) {
12
+ return segments.map((segment) => {
13
+ // Handle route groups (folder) - strip parens, keep name
14
+ const routeGroup = segment.match(/^\(([^)]+)\)$/);
15
+ if (routeGroup)
16
+ return routeGroup[1];
17
+ // Handle optional catch-all [[...param]]
18
+ const optionalCatchAll = segment.match(/^\[\[\.\.\.([\w]+)\]\]$/);
19
+ if (optionalCatchAll)
20
+ return `${optionalCatchAll[1]}0`;
21
+ // Handle catch-all [...param]
22
+ const catchAll = segment.match(/^\[\.\.\.([\w]+)\]$/);
23
+ if (catchAll)
24
+ return `${catchAll[1]}0`;
25
+ // Handle dynamic [param]
26
+ const dynamic = segment.match(/^\[([\w]+)\]$/);
27
+ if (dynamic)
28
+ return `${dynamic[1]}0`;
29
+ return segment;
30
+ });
31
+ }
32
+ //# sourceMappingURL=sanitizeNextRouteSegments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizeNextRouteSegments.js","sourceRoot":"","sources":["../../../../../../utils/src/lib/frameworks/sanitizeNextRouteSegments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,QAAkB;IAElB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,yDAAyD;QACzD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;QAErC,yCAAyC;QACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAClE,IAAI,gBAAgB;YAAE,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;QAEvD,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACtD,IAAI,QAAQ;YAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;QAEvC,yBAAyB;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAI,OAAO;YAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAErC,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,4 @@
1
- import { useMemo, useState } from 'react';
1
+ import { useMemo } from 'react';
2
2
  import { DataItemEditorProps } from '../types';
3
3
  import { isNotPrimitive, arrayCount, sortKeys } from '../utils';
4
4
  import DataItemLink from './DataItemLink';
@@ -1,3 +1,4 @@
1
+ export { default as Semaphore } from './src/lib/Semaphore';
1
2
  export { default as isRemixRoute } from './src/lib/frameworks/isRemixRoute';
2
3
  export { default as isNextRoute } from './src/lib/frameworks/isNextRoute';
3
4
  export { default as isFrameworkRoute } from './src/lib/frameworks/isFrameworkRoute';
@@ -7,6 +8,7 @@ export { default as frameworkRouteFileNameToRoute } from './src/lib/frameworks/f
7
8
  export { default as getRemixRoutePath } from './src/lib/frameworks/getRemixRoutePath';
8
9
  export { default as getNextRoutePath } from './src/lib/frameworks/getNextRoutePath';
9
10
  export { default as getFrameworkRoutePath } from './src/lib/frameworks/getFrameworkRoutePath';
11
+ export { default as sanitizeNextRouteSegments } from './src/lib/frameworks/sanitizeNextRouteSegments';
10
12
  export { default as safeFileName } from './src/lib/safeFileName';
11
13
  export { default as normalizeKey } from './src/lib/normalizeKey';
12
14
  export { default as awsLog, awsLogDebugLevel, setThreadContext, } from './src/lib/awsLog';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAC9G,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,OAAO,IAAI,mBAAmB,EAC9B,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAOpF,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAGlD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,iBAAiB,GACvB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAC9G,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,OAAO,IAAI,mBAAmB,EAC9B,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAOpF,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAGlD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,iBAAiB,GACvB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC"}
@@ -1,3 +1,4 @@
1
+ export { default as Semaphore } from './src/lib/Semaphore';
1
2
  export { default as isRemixRoute } from './src/lib/frameworks/isRemixRoute';
2
3
  export { default as isNextRoute } from './src/lib/frameworks/isNextRoute';
3
4
  export { default as isFrameworkRoute } from './src/lib/frameworks/isFrameworkRoute';
@@ -7,6 +8,7 @@ export { default as frameworkRouteFileNameToRoute } from './src/lib/frameworks/f
7
8
  export { default as getRemixRoutePath } from './src/lib/frameworks/getRemixRoutePath';
8
9
  export { default as getNextRoutePath } from './src/lib/frameworks/getNextRoutePath';
9
10
  export { default as getFrameworkRoutePath } from './src/lib/frameworks/getFrameworkRoutePath';
11
+ export { default as sanitizeNextRouteSegments } from './src/lib/frameworks/sanitizeNextRouteSegments';
10
12
  export { default as safeFileName } from './src/lib/safeFileName';
11
13
  export { default as normalizeKey } from './src/lib/normalizeKey';
12
14
  export { default as awsLog, awsLogDebugLevel, setThreadContext, } from './src/lib/awsLog';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAC9G,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,OAAO,IAAI,mBAAmB,EAC9B,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEpF,4EAA4E;AAC5E,iDAAiD;AACjD,2EAA2E;AAC3E,qGAAqG;AAErG,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAElD,iDAAiD;AACjD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,GAEvB,MAAM,sCAAsC,CAAC;AAE9C,8BAA8B;AAC9B,OAAO,EACL,mBAAmB,GAIpB,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAC9G,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,OAAO,IAAI,mBAAmB,EAC9B,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEpF,4EAA4E;AAC5E,iDAAiD;AACjD,2EAA2E;AAC3E,qGAAqG;AAErG,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAElD,iDAAiD;AACjD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,GAEvB,MAAM,sCAAsC,CAAC;AAE9C,8BAA8B;AAC9B,OAAO,EACL,mBAAmB,GAIpB,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * An async semaphore for limiting concurrent access to a resource.
3
+ *
4
+ * Useful for controlling parallelism when some operations are CPU-bound
5
+ * and shouldn't all run simultaneously, while allowing I/O-bound operations
6
+ * to proceed freely.
7
+ */
8
+ export default class Semaphore {
9
+ private count;
10
+ private waiting;
11
+ constructor(count: number);
12
+ /**
13
+ * Acquire a permit from the semaphore.
14
+ * If a permit is available, returns immediately.
15
+ * Otherwise, blocks until a permit becomes available.
16
+ */
17
+ acquire(): Promise<void>;
18
+ /**
19
+ * Release a permit back to the semaphore.
20
+ * If there are waiters, the first one in line gets the permit.
21
+ * Otherwise, increments the available count.
22
+ */
23
+ release(): void;
24
+ }
25
+ //# sourceMappingURL=Semaphore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Semaphore.d.ts","sourceRoot":"","sources":["../../../../src/lib/Semaphore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAyB;gBAE5B,KAAK,EAAE,MAAM;IAIzB;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAQhB"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * An async semaphore for limiting concurrent access to a resource.
3
+ *
4
+ * Useful for controlling parallelism when some operations are CPU-bound
5
+ * and shouldn't all run simultaneously, while allowing I/O-bound operations
6
+ * to proceed freely.
7
+ */
8
+ export default class Semaphore {
9
+ constructor(count) {
10
+ this.waiting = [];
11
+ this.count = count;
12
+ }
13
+ /**
14
+ * Acquire a permit from the semaphore.
15
+ * If a permit is available, returns immediately.
16
+ * Otherwise, blocks until a permit becomes available.
17
+ */
18
+ async acquire() {
19
+ if (this.count > 0) {
20
+ this.count--;
21
+ return;
22
+ }
23
+ await new Promise((resolve) => this.waiting.push(resolve));
24
+ }
25
+ /**
26
+ * Release a permit back to the semaphore.
27
+ * If there are waiters, the first one in line gets the permit.
28
+ * Otherwise, increments the available count.
29
+ */
30
+ release() {
31
+ const next = this.waiting.shift();
32
+ if (next) {
33
+ next();
34
+ }
35
+ else {
36
+ this.count++;
37
+ }
38
+ }
39
+ }
40
+ //# sourceMappingURL=Semaphore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Semaphore.js","sourceRoot":"","sources":["../../../../src/lib/Semaphore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAI5B,YAAY,KAAa;QAFjB,YAAO,GAAsB,EAAE,CAAC;QAGtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;QACT,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getNextRoutePath.d.ts","sourceRoot":"","sources":["../../../../../src/lib/frameworks/getNextRoutePath.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,OAAO,EACP,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,QAAQ,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B,UAuBA"}
1
+ {"version":3,"file":"getNextRoutePath.d.ts","sourceRoot":"","sources":["../../../../../src/lib/frameworks/getNextRoutePath.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,OAAO,EACP,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,QAAQ,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B,UA2BA"}
@@ -1,11 +1,13 @@
1
- import { safeFileName } from '~codeyam/utils';
1
+ import { getAppDirectoryForFile, safeFileName } from '~codeyam/utils';
2
2
  import { PROJECT_RELATIVE_PATH } from '~codeyam/utils';
3
+ import sanitizeNextRouteSegments from './sanitizeNextRouteSegments';
3
4
  export default function getNextRoutePath({ file, entity, rootAnalysis, project, framework, scenario, }) {
4
- const routePath = file.path.split('/').slice(1);
5
+ const routePath = sanitizeNextRouteSegments(file.path.split('/').slice(1));
5
6
  const scenarioSlug = scenario ? safeFileName(scenario.name) : undefined;
7
+ const appDirectory = getAppDirectoryForFile(file.path, project.metadata?.webapps);
6
8
  const pathComponents = [
7
9
  PROJECT_RELATIVE_PATH,
8
- 'app',
10
+ appDirectory,
9
11
  'static',
10
12
  project.slug,
11
13
  rootAnalysis.id,
@@ -1 +1 @@
1
- {"version":3,"file":"getNextRoutePath.js","sourceRoot":"","sources":["../../../../../src/lib/frameworks/getNextRoutePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,GAST;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,cAAc,GAAG;QACrB,qBAAqB;QACrB,KAAK;QACL,QAAQ;QACR,OAAO,CAAC,IAAI;QACZ,YAAY,CAAC,EAAE;QACf,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC;QACrC,YAAY;QACZ,GAAG,SAAS;KACb,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CACT,iCAAiC,EACjC,IAAI,CAAC,IAAI,EACT,MAAM,CAAC,IAAI,EACX,QAAQ,CACT,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"getNextRoutePath.js","sourceRoot":"","sources":["../../../../../src/lib/frameworks/getNextRoutePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,GAST;IACC,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,YAAY,GAAG,sBAAsB,CACzC,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,QAAQ,EAAE,OAAO,CAC1B,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,qBAAqB;QACrB,YAAY;QACZ,QAAQ;QACR,OAAO,CAAC,IAAI;QACZ,YAAY,CAAC,EAAE;QACf,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC;QACrC,YAAY;QACZ,GAAG,SAAS;KACb,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CACT,iCAAiC,EACjC,IAAI,CAAC,IAAI,EACT,MAAM,CAAC,IAAI,EACX,QAAQ,CACT,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getRemixRoutePath.d.ts","sourceRoot":"","sources":["../../../../../src/lib/frameworks/getRemixRoutePath.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEzE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,SAAiB,EACjB,OAAO,EACP,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B,UA2BA"}
1
+ {"version":3,"file":"getRemixRoutePath.d.ts","sourceRoot":"","sources":["../../../../../src/lib/frameworks/getRemixRoutePath.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEzE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,SAAiB,EACjB,OAAO,EACP,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B,UA4BA"}
@@ -6,7 +6,8 @@ export default function getRemixRoutePath({ file, rootFile, entity, rootAnalysis
6
6
  const route = file.path.slice(routesIndex);
7
7
  const cleanRoute = route
8
8
  .replace(/\//g, '.')
9
- .replace('$', '')
9
+ .replace(/\$(\w+)/g, '$1') // $slug -> slug (named params)
10
+ .replace(/\$/g, 'splat') // bare $ -> splat (catch-all)
10
11
  .replace(/_/g, 'x');
11
12
  const scenarioSlug = scenario ? `.${safeFileName(scenario.name)}` : '';
12
13
  let routePath = `${PROJECT_RELATIVE_PATH}/${basePath}/static.${project.slug}.${rootAnalysis.id}.${safeFileName(rootAnalysis.entityName)}${scenarioSlug}.${cleanRoute}`;