@codeyam/codeyam-cli 0.1.0-staging.b8a55ba → 0.1.0-staging.b8f4f94

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 (1184) hide show
  1. package/analyzer-template/.build-info.json +8 -8
  2. package/analyzer-template/common/execAsync.ts +1 -1
  3. package/analyzer-template/log.txt +3 -3
  4. package/analyzer-template/package.json +31 -28
  5. package/analyzer-template/packages/ai/index.ts +21 -5
  6. package/analyzer-template/packages/ai/package.json +4 -4
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +226 -24
  9. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +217 -13
  11. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +181 -23
  13. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  14. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +15 -0
  16. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  17. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1229 -30
  18. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  19. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +265 -6
  20. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  21. package/analyzer-template/packages/ai/src/lib/completionCall.ts +247 -66
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +2136 -349
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +7 -2
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +296 -35
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +120 -76
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +140 -20
  30. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  31. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  32. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +140 -14
  33. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  34. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  35. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  36. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -90
  37. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  38. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  39. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -0
  40. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  41. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  42. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  43. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
  44. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +86 -142
  45. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
  46. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1497 -88
  47. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +200 -196
  48. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +710 -0
  49. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  50. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
  51. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  52. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +5 -5
  53. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  54. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  55. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -142
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  61. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  62. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
  63. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -89
  64. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  65. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +11 -11
  66. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  67. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  68. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  69. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  70. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +122 -3
  71. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  72. package/analyzer-template/packages/analyze/index.ts +2 -0
  73. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  74. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +132 -33
  75. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  76. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  77. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  78. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  79. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  80. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  81. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  82. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  83. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  84. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  85. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  86. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +466 -270
  87. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +42 -1
  88. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +15 -0
  89. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  90. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  91. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  92. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  93. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  94. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  95. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  96. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  97. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1352 -0
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +201 -46
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  100. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +593 -84
  101. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  102. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +460 -84
  103. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
  104. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +35 -129
  105. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -3
  106. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +990 -141
  107. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  108. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  109. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  110. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  111. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  112. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  113. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  114. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  115. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  116. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  117. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  118. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  119. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  120. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  121. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  122. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  123. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  124. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  125. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  126. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  127. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  128. package/analyzer-template/packages/aws/package.json +10 -10
  129. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  130. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  131. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  132. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  133. package/analyzer-template/packages/database/index.ts +1 -0
  134. package/analyzer-template/packages/database/package.json +4 -4
  135. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  136. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  137. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  138. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  139. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  140. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  141. package/analyzer-template/packages/database/src/lib/kysely/db.ts +22 -1
  142. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  143. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +17 -1
  144. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +62 -0
  145. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  146. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  147. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  148. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  149. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  150. package/analyzer-template/packages/database/src/lib/loadCommits.ts +58 -19
  151. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  152. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  153. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +5 -6
  154. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  155. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  156. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  157. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +153 -144
  158. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  159. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  160. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  161. package/analyzer-template/packages/generate/index.ts +3 -0
  162. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  163. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +221 -0
  164. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  165. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  166. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  167. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  168. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  169. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  170. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  171. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  172. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  173. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  174. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  175. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  176. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  177. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  178. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  179. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  180. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  181. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  182. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +4 -0
  184. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  185. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +16 -1
  186. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  187. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -18
  188. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  189. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  190. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  191. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  192. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  193. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +17 -1
  194. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  195. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  196. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +20 -0
  197. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  198. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
  199. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  200. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  201. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  202. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  203. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  204. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  205. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  206. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +7 -6
  207. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  208. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  209. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  210. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  211. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  212. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  213. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  214. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  215. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  216. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  217. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  218. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  219. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  220. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  221. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  222. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +45 -14
  223. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  224. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  225. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  226. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  227. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  228. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  229. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  230. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  231. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  232. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +5 -5
  233. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  234. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  235. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  236. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  237. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  238. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  239. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  240. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  241. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  242. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +100 -88
  243. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  244. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  245. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  246. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  247. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  248. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  249. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  250. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  251. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  252. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  253. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  254. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  255. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  256. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  257. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  258. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  259. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +217 -0
  260. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  261. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  262. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  263. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  264. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  265. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  266. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  267. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  268. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  269. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  270. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  271. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  272. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  273. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  274. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  275. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  276. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  277. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  278. package/analyzer-template/packages/github/dist/types/index.d.ts +3 -4
  279. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  280. package/analyzer-template/packages/github/dist/types/index.js +0 -1
  281. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  282. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +71 -27
  283. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  284. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  285. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  286. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  287. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  288. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  289. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  290. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +19 -54
  291. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  292. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +1 -21
  293. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
  294. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  295. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  296. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  297. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  298. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  299. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  300. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  301. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  302. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  303. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  304. package/analyzer-template/packages/github/package.json +2 -2
  305. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  306. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  307. package/analyzer-template/packages/process/index.ts +2 -0
  308. package/analyzer-template/packages/process/package.json +12 -0
  309. package/analyzer-template/packages/process/tsconfig.json +8 -0
  310. package/analyzer-template/packages/types/index.ts +3 -6
  311. package/analyzer-template/packages/types/src/types/Analysis.ts +87 -27
  312. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  313. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  314. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +8 -0
  315. package/analyzer-template/packages/types/src/types/Scenario.ts +19 -77
  316. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +181 -5
  317. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  318. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  319. package/analyzer-template/packages/utils/dist/types/index.d.ts +3 -4
  320. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  321. package/analyzer-template/packages/utils/dist/types/index.js +0 -1
  322. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  323. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +71 -27
  324. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  325. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  326. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  327. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  328. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  329. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  330. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  331. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +19 -54
  332. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  333. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +1 -21
  334. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
  335. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  336. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  337. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  338. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  339. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  340. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  341. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  342. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +98 -3
  343. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  344. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  345. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  346. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  347. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  348. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +121 -3
  349. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  350. package/analyzer-template/playwright/capture.ts +57 -26
  351. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  352. package/analyzer-template/playwright/captureStatic.ts +1 -1
  353. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  354. package/analyzer-template/playwright/waitForServer.ts +21 -6
  355. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  356. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  357. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  358. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  359. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  360. package/analyzer-template/project/constructMockCode.ts +1341 -198
  361. package/analyzer-template/project/controller/startController.ts +16 -1
  362. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  363. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  364. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  365. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  366. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  367. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  368. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
  369. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  370. package/analyzer-template/project/orchestrateCapture.ts +85 -10
  371. package/analyzer-template/project/reconcileMockDataKeys.ts +231 -84
  372. package/analyzer-template/project/runAnalysis.ts +11 -0
  373. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  374. package/analyzer-template/project/start.ts +54 -15
  375. package/analyzer-template/project/startScenarioCapture.ts +15 -0
  376. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  377. package/analyzer-template/project/writeMockDataTsx.ts +362 -32
  378. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  379. package/analyzer-template/project/writeScenarioComponents.ts +466 -133
  380. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  381. package/analyzer-template/project/writeSimpleRoot.ts +28 -42
  382. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  383. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  384. package/analyzer-template/tsconfig.json +14 -1
  385. package/background/src/lib/local/createLocalAnalyzer.js +2 -30
  386. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  387. package/background/src/lib/local/execAsync.js +1 -1
  388. package/background/src/lib/local/execAsync.js.map +1 -1
  389. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  390. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  391. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  392. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  393. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  394. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  395. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  396. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  397. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  398. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  399. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  400. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  401. package/background/src/lib/virtualized/project/constructMockCode.js +1179 -147
  402. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  403. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  404. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  405. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  406. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  407. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  408. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  409. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  410. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  411. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  412. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  413. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  414. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  415. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  416. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  417. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +7 -5
  418. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  419. package/background/src/lib/virtualized/project/orchestrateCapture.js +69 -11
  420. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  421. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +198 -51
  422. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  423. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  424. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  425. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  426. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  427. package/background/src/lib/virtualized/project/start.js +49 -15
  428. package/background/src/lib/virtualized/project/start.js.map +1 -1
  429. package/background/src/lib/virtualized/project/startScenarioCapture.js +12 -0
  430. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  431. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  432. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  433. package/background/src/lib/virtualized/project/writeMockDataTsx.js +313 -27
  434. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  435. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  436. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  437. package/background/src/lib/virtualized/project/writeScenarioComponents.js +359 -110
  438. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  439. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  440. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  441. package/background/src/lib/virtualized/project/writeSimpleRoot.js +28 -41
  442. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  443. package/codeyam-cli/scripts/apply-setup.js +386 -9
  444. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  445. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  446. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  447. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  448. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  449. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  450. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  451. package/codeyam-cli/src/cli.js +38 -23
  452. package/codeyam-cli/src/cli.js.map +1 -1
  453. package/codeyam-cli/src/codeyam-cli.js +18 -2
  454. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  455. package/codeyam-cli/src/commands/analyze.js +22 -10
  456. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  457. package/codeyam-cli/src/commands/baseline.js +176 -0
  458. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  459. package/codeyam-cli/src/commands/debug.js +37 -23
  460. package/codeyam-cli/src/commands/debug.js.map +1 -1
  461. package/codeyam-cli/src/commands/default.js +43 -35
  462. package/codeyam-cli/src/commands/default.js.map +1 -1
  463. package/codeyam-cli/src/commands/editor.js +2027 -0
  464. package/codeyam-cli/src/commands/editor.js.map +1 -0
  465. package/codeyam-cli/src/commands/init.js +81 -260
  466. package/codeyam-cli/src/commands/init.js.map +1 -1
  467. package/codeyam-cli/src/commands/memory.js +278 -0
  468. package/codeyam-cli/src/commands/memory.js.map +1 -0
  469. package/codeyam-cli/src/commands/recapture.js +31 -18
  470. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  471. package/codeyam-cli/src/commands/report.js +46 -1
  472. package/codeyam-cli/src/commands/report.js.map +1 -1
  473. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  474. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  475. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  476. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  477. package/codeyam-cli/src/commands/start.js +8 -12
  478. package/codeyam-cli/src/commands/start.js.map +1 -1
  479. package/codeyam-cli/src/commands/status.js +23 -1
  480. package/codeyam-cli/src/commands/status.js.map +1 -1
  481. package/codeyam-cli/src/commands/test-startup.js +3 -1
  482. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  483. package/codeyam-cli/src/commands/verify.js +14 -2
  484. package/codeyam-cli/src/commands/verify.js.map +1 -1
  485. package/codeyam-cli/src/commands/wipe.js +108 -0
  486. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  487. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +480 -0
  488. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  489. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +126 -0
  490. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  491. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +306 -0
  492. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  493. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  494. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  495. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +100 -0
  496. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  497. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +147 -0
  498. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  499. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +105 -0
  500. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  501. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +1217 -0
  502. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  503. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  504. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  505. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  506. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  507. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  508. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  509. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  510. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  511. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  512. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  513. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  514. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  515. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +154 -82
  516. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  517. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  518. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  519. package/codeyam-cli/src/utils/analyzer.js +7 -0
  520. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  521. package/codeyam-cli/src/utils/backgroundServer.js +120 -23
  522. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  523. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  524. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  525. package/codeyam-cli/src/utils/database.js +91 -5
  526. package/codeyam-cli/src/utils/database.js.map +1 -1
  527. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  528. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  529. package/codeyam-cli/src/utils/editorAudit.js +122 -0
  530. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  531. package/codeyam-cli/src/utils/editorDevServer.js +98 -0
  532. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  533. package/codeyam-cli/src/utils/editorJournal.js +144 -0
  534. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  535. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  536. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  537. package/codeyam-cli/src/utils/editorPreloadHelpers.js +64 -0
  538. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  539. package/codeyam-cli/src/utils/editorPreview.js +66 -0
  540. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  541. package/codeyam-cli/src/utils/editorScenarios.js +56 -0
  542. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  543. package/codeyam-cli/src/utils/entityChangeStatus.js +255 -0
  544. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  545. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  546. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  547. package/codeyam-cli/src/utils/fileWatcher.js +25 -9
  548. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  549. package/codeyam-cli/src/utils/generateReport.js +4 -3
  550. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  551. package/codeyam-cli/src/utils/git.js +182 -0
  552. package/codeyam-cli/src/utils/git.js.map +1 -0
  553. package/codeyam-cli/src/utils/install-skills.js +120 -39
  554. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  555. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  556. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  557. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  558. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  559. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  560. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  561. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  562. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  563. package/codeyam-cli/src/utils/progress.js +7 -0
  564. package/codeyam-cli/src/utils/progress.js.map +1 -1
  565. package/codeyam-cli/src/utils/project.js +15 -5
  566. package/codeyam-cli/src/utils/project.js.map +1 -1
  567. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  568. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  569. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
  570. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  571. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  572. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  573. package/codeyam-cli/src/utils/queue/job.js +179 -1
  574. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  575. package/codeyam-cli/src/utils/queue/manager.js +7 -0
  576. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  577. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  578. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  579. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  580. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  581. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  582. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +229 -0
  583. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  584. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  585. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  586. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  587. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  588. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  589. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  590. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  591. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  592. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
  593. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  594. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
  595. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  596. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +113 -0
  597. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  598. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  599. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  600. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  601. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  602. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  603. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  604. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  605. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  606. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  607. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  608. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  609. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  610. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  611. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  612. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  613. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  614. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  615. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  616. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  617. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  618. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  619. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  620. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  621. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  622. package/codeyam-cli/src/utils/rules/index.js +7 -0
  623. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  624. package/codeyam-cli/src/utils/rules/parser.js +93 -0
  625. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  626. package/codeyam-cli/src/utils/rules/pathMatcher.js +49 -0
  627. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  628. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  629. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  630. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  631. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  632. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  633. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  634. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  635. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  636. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  637. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  638. package/codeyam-cli/src/utils/serverState.js +64 -12
  639. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  640. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +65 -41
  641. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  642. package/codeyam-cli/src/utils/simulationGateMiddleware.js +159 -0
  643. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  644. package/codeyam-cli/src/utils/syncMocksMiddleware.js +5 -24
  645. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  646. package/codeyam-cli/src/utils/testRunner.js +158 -0
  647. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  648. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  649. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  650. package/codeyam-cli/src/utils/versionInfo.js +67 -15
  651. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  652. package/codeyam-cli/src/utils/webappDetection.js +14 -2
  653. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  654. package/codeyam-cli/src/utils/wipe.js +128 -0
  655. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  656. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  657. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  658. package/codeyam-cli/src/webserver/app/lib/database.js +129 -50
  659. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  660. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  661. package/codeyam-cli/src/webserver/backgroundServer.js +166 -16
  662. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  663. package/codeyam-cli/src/webserver/bootstrap.js +51 -0
  664. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  665. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DmJveP3T.js +1 -0
  666. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-C76mRRiF.js +11 -0
  667. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CzGX-miz.js → EntityTypeBadge-g3saevPb.js} +1 -1
  668. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CobE682z.js +41 -0
  669. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +1 -0
  670. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-DYFW3lDD.js +25 -0
  671. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CBQPrpT0.js → LibraryFunctionPreview-DLeucoVX.js} +1 -1
  672. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-D1CdlbrV.js → LoadingDots-BU_OAEMP.js} +1 -1
  673. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-wDPcZNKx.js → LogViewer-ceAyBX-H.js} +1 -1
  674. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-djPLI-WV.js +11 -0
  675. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BfmDgXxG.js → SafeScreenshot-BED4B6sP.js} +1 -1
  676. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-B76aig_2.js +10 -0
  677. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +34 -0
  678. package/codeyam-cli/src/webserver/build/client/assets/Terminal-nZNBALox.js +41 -0
  679. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-6J7zDUD5.js → TruncatedFilePath-C8OKAR5x.js} +1 -1
  680. package/codeyam-cli/src/webserver/build/client/assets/_index-C96V0n15.js +11 -0
  681. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BpKzcsJz.js +27 -0
  682. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-CUXOrorO.js +1 -0
  683. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-Duc5hnl7.js +1 -0
  684. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-D9hemwl6.js +22 -0
  685. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  686. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  687. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  688. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  689. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  690. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  691. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  692. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  693. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  694. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  695. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  696. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  697. package/codeyam-cli/src/webserver/build/client/assets/api.editor-load-commit-l0sNRNKZ.js +1 -0
  698. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  699. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  700. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  701. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  702. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenarios-l0sNRNKZ.js +1 -0
  703. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  704. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  705. package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
  706. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  707. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  708. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  709. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  710. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  711. package/codeyam-cli/src/webserver/build/client/assets/book-open-D_nMCFmP.js +6 -0
  712. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BYimnrHg.js → chevron-down-BH2h1Ea2.js} +1 -1
  713. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-C4pqxYJB.js +51 -0
  714. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CaVsIRxt.js → circle-check-DyIKORY6.js} +1 -1
  715. package/codeyam-cli/src/webserver/build/client/assets/copy-NDbZjXao.js +11 -0
  716. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CgUsG7ib.js → createLucideIcon-CMT1jU2q.js} +1 -1
  717. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  718. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  719. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BiM6z3Do.js +1 -0
  720. package/codeyam-cli/src/webserver/build/client/assets/editor-DTwKl1Xu.js +10 -0
  721. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-zUEpfPsu.js → entity._sha._-CrjR3zZW.js} +12 -12
  722. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-DjACbfdI.js +6 -0
  723. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-C28BiQzt.js +6 -0
  724. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +6 -0
  725. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CfLCUi9S.js → entity._sha_.edit._scenarioId-BMvVHNXU.js} +2 -2
  726. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DKJyZfAY.js → entry.client-DTvKq3TY.js} +6 -6
  727. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  728. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DAtOlaWE.js → fileTableUtils-cPo8LiG3.js} +1 -1
  729. package/codeyam-cli/src/webserver/build/client/assets/files-DO4CZ16O.js +1 -0
  730. package/codeyam-cli/src/webserver/build/client/assets/git-CdN8sCqs.js +1 -0
  731. package/codeyam-cli/src/webserver/build/client/assets/globals-h1-1oFYI.css +1 -0
  732. package/codeyam-cli/src/webserver/build/client/assets/{index-CzNNiTkw.js → index-10oVnAAH.js} +1 -1
  733. package/codeyam-cli/src/webserver/build/client/assets/{index-BosqDOlH.js → index-BcvgDzbZ.js} +1 -1
  734. package/codeyam-cli/src/webserver/build/client/assets/index-yHOVb4rc.js +15 -0
  735. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +1 -0
  736. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CNp9QFCX.js → loader-circle-BAXYRVEO.js} +1 -1
  737. package/codeyam-cli/src/webserver/build/client/assets/manifest-9422aeab.js +1 -0
  738. package/codeyam-cli/src/webserver/build/client/assets/memory-Dg0mvYrI.js +96 -0
  739. package/codeyam-cli/src/webserver/build/client/assets/pause-DTAcYxBt.js +11 -0
  740. package/codeyam-cli/src/webserver/build/client/assets/root-BzQgN2ff.js +67 -0
  741. package/codeyam-cli/src/webserver/build/client/assets/{search-DDGjYAMJ.js → search-fKo7v0Zo.js} +1 -1
  742. package/codeyam-cli/src/webserver/build/client/assets/settings-DfuTtcJP.js +1 -0
  743. package/codeyam-cli/src/webserver/build/client/assets/simulations-B3aOzpCZ.js +1 -0
  744. package/codeyam-cli/src/webserver/build/client/assets/terminal-BG4heKCG.js +11 -0
  745. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CBc5dE1s.js → triangle-alert-DtSmdtM4.js} +1 -1
  746. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-ByhSyh0W.js +1 -0
  747. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C14nCb1q.js +2 -0
  748. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-O-jkvSPx.js +1 -0
  749. package/codeyam-cli/src/webserver/build/client/assets/{useToast-DWHcCcl1.js → useToast-9FIWuYfK.js} +1 -1
  750. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  751. package/codeyam-cli/src/webserver/build/server/assets/index-Bh_pNxNA.js +1 -0
  752. package/codeyam-cli/src/webserver/build/server/assets/server-build-Bqr22tlO.js +367 -0
  753. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  754. package/codeyam-cli/src/webserver/build-info.json +5 -5
  755. package/codeyam-cli/src/webserver/devServer.js +39 -5
  756. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  757. package/codeyam-cli/src/webserver/editorProxy.js +440 -0
  758. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  759. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +175 -0
  760. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +140 -0
  761. package/codeyam-cli/src/webserver/server.js +287 -26
  762. package/codeyam-cli/src/webserver/server.js.map +1 -1
  763. package/codeyam-cli/src/webserver/terminalServer.js +698 -0
  764. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  765. package/codeyam-cli/templates/codeyam-editor-claude.md +68 -0
  766. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  767. package/codeyam-cli/templates/commands/codeyam-diagnose.md +481 -0
  768. package/codeyam-cli/templates/editor-step-hook.py +194 -0
  769. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  770. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  771. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  772. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  773. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  774. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  775. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  776. package/codeyam-cli/templates/nextjs-prisma-sqlite/PRISMA_SETUP.md +84 -0
  777. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  778. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  779. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  780. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +19 -0
  781. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  782. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  783. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +43 -0
  784. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  785. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +35 -0
  786. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  787. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  788. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +37 -0
  789. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  790. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  791. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  792. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  793. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  794. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  795. package/codeyam-cli/templates/rule-notification-hook.py +83 -0
  796. package/codeyam-cli/templates/rule-reflection-hook.py +647 -0
  797. package/codeyam-cli/templates/rules-instructions.md +78 -0
  798. package/codeyam-cli/templates/{codeyam-debug-skill.md → skills/codeyam-debug/SKILL.md} +48 -4
  799. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
  800. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +74 -0
  801. package/codeyam-cli/templates/skills/codeyam-memory/SKILL.md +611 -0
  802. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  803. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  804. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  805. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  806. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  807. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  808. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  809. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  810. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  811. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  812. package/codeyam-cli/templates/skills/codeyam-new-rule/SKILL.md +11 -0
  813. package/codeyam-cli/templates/{codeyam-setup-skill.md → skills/codeyam-setup/SKILL.md} +151 -4
  814. package/codeyam-cli/templates/{codeyam-sim-skill.md → skills/codeyam-sim/SKILL.md} +1 -1
  815. package/codeyam-cli/templates/{codeyam-test-skill.md → skills/codeyam-test/SKILL.md} +1 -1
  816. package/codeyam-cli/templates/{codeyam-verify-skill.md → skills/codeyam-verify/SKILL.md} +1 -1
  817. package/package.json +29 -24
  818. package/packages/ai/index.js +8 -6
  819. package/packages/ai/index.js.map +1 -1
  820. package/packages/ai/src/lib/analyzeScope.js +179 -13
  821. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  822. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  823. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  824. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +160 -13
  825. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  826. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  827. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  828. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  829. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  830. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  831. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  832. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  833. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  834. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +7 -0
  835. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  836. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  837. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  838. package/packages/ai/src/lib/astScopes/processExpression.js +944 -30
  839. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  840. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  841. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  842. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  843. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  844. package/packages/ai/src/lib/completionCall.js +188 -38
  845. package/packages/ai/src/lib/completionCall.js.map +1 -1
  846. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1693 -206
  847. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  848. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +7 -2
  849. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  850. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +230 -23
  851. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  852. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +77 -55
  853. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  854. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  855. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  856. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  857. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  858. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  859. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  860. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +122 -14
  861. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  862. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  863. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  864. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  865. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  866. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +122 -12
  867. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  868. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  869. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  870. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  871. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  872. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  873. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  874. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -81
  875. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  876. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  877. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  878. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  879. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  880. package/packages/ai/src/lib/dataStructureChunking.js +130 -0
  881. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  882. package/packages/ai/src/lib/deepEqual.js +32 -0
  883. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  884. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  885. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  886. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  887. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  888. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  889. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  890. package/packages/ai/src/lib/generateChangesEntityScenarios.js +78 -120
  891. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  892. package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
  893. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  894. package/packages/ai/src/lib/generateEntityScenarioData.js +1185 -83
  895. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  896. package/packages/ai/src/lib/generateEntityScenarios.js +177 -163
  897. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  898. package/packages/ai/src/lib/generateExecutionFlows.js +495 -0
  899. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  900. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  901. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  902. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  903. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  904. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  905. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  906. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -2
  907. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  908. package/packages/ai/src/lib/isolateScopes.js +270 -7
  909. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  910. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  911. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  912. package/packages/ai/src/lib/mergeStatements.js +88 -46
  913. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  914. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  915. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  916. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
  917. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  918. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  919. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  920. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -100
  921. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  922. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  923. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  924. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  925. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  926. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -70
  927. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  928. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  929. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  930. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +9 -9
  931. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  932. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  933. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  934. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  935. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  936. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  937. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  938. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  939. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  940. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  941. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  942. package/packages/analyze/index.js +1 -0
  943. package/packages/analyze/index.js.map +1 -1
  944. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  945. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  946. package/packages/analyze/src/lib/ProjectAnalyzer.js +109 -30
  947. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  948. package/packages/analyze/src/lib/analysisContext.js +30 -5
  949. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  950. package/packages/analyze/src/lib/asts/index.js +4 -2
  951. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  952. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  953. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  954. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  955. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  956. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  957. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  958. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  959. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  960. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  961. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  962. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  963. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  964. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  965. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  966. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  967. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  968. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  969. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  970. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +211 -54
  971. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  972. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +31 -1
  973. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  974. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +11 -0
  975. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  976. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  977. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  978. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  979. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  980. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  981. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  982. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  983. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  984. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  985. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  986. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  987. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  988. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  989. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  990. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  991. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  992. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +907 -0
  993. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  994. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +170 -40
  995. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  996. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  997. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  998. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +480 -71
  999. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  1000. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  1001. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  1002. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +333 -66
  1003. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  1004. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  1005. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  1006. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +27 -98
  1007. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  1008. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -3
  1009. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  1010. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +817 -120
  1011. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  1012. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  1013. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  1014. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  1015. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  1016. package/packages/analyze/src/lib/index.js +1 -0
  1017. package/packages/analyze/src/lib/index.js.map +1 -1
  1018. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  1019. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  1020. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  1021. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  1022. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  1023. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  1024. package/packages/database/index.js +1 -0
  1025. package/packages/database/index.js.map +1 -1
  1026. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  1027. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  1028. package/packages/database/src/lib/analysisToDb.js +1 -1
  1029. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  1030. package/packages/database/src/lib/branchToDb.js +1 -1
  1031. package/packages/database/src/lib/branchToDb.js.map +1 -1
  1032. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  1033. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  1034. package/packages/database/src/lib/commitToDb.js +1 -1
  1035. package/packages/database/src/lib/commitToDb.js.map +1 -1
  1036. package/packages/database/src/lib/fileToDb.js +1 -1
  1037. package/packages/database/src/lib/fileToDb.js.map +1 -1
  1038. package/packages/database/src/lib/kysely/db.js +16 -1
  1039. package/packages/database/src/lib/kysely/db.js.map +1 -1
  1040. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  1041. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  1042. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  1043. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
  1044. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  1045. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  1046. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  1047. package/packages/database/src/lib/loadAnalyses.js +45 -2
  1048. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  1049. package/packages/database/src/lib/loadAnalysis.js +8 -0
  1050. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  1051. package/packages/database/src/lib/loadBranch.js +11 -1
  1052. package/packages/database/src/lib/loadBranch.js.map +1 -1
  1053. package/packages/database/src/lib/loadCommit.js +7 -0
  1054. package/packages/database/src/lib/loadCommit.js.map +1 -1
  1055. package/packages/database/src/lib/loadCommits.js +45 -14
  1056. package/packages/database/src/lib/loadCommits.js.map +1 -1
  1057. package/packages/database/src/lib/loadEntities.js +23 -4
  1058. package/packages/database/src/lib/loadEntities.js.map +1 -1
  1059. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  1060. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  1061. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +5 -5
  1062. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  1063. package/packages/database/src/lib/projectToDb.js +1 -1
  1064. package/packages/database/src/lib/projectToDb.js.map +1 -1
  1065. package/packages/database/src/lib/saveFiles.js +1 -1
  1066. package/packages/database/src/lib/saveFiles.js.map +1 -1
  1067. package/packages/database/src/lib/scenarioToDb.js +1 -1
  1068. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  1069. package/packages/database/src/lib/updateCommitMetadata.js +100 -88
  1070. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  1071. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  1072. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  1073. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  1074. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  1075. package/packages/generate/index.js +3 -0
  1076. package/packages/generate/index.js.map +1 -1
  1077. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  1078. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  1079. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +217 -0
  1080. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  1081. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  1082. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  1083. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  1084. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  1085. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  1086. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  1087. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  1088. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  1089. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  1090. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  1091. package/packages/process/index.js +3 -0
  1092. package/packages/process/index.js.map +1 -0
  1093. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  1094. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  1095. package/packages/process/src/ProcessManager.js.map +1 -0
  1096. package/packages/process/src/index.js.map +1 -0
  1097. package/packages/process/src/managedExecAsync.js.map +1 -0
  1098. package/packages/types/index.js +0 -1
  1099. package/packages/types/index.js.map +1 -1
  1100. package/packages/types/src/types/Scenario.js +1 -21
  1101. package/packages/types/src/types/Scenario.js.map +1 -1
  1102. package/packages/utils/src/lib/fs/rsyncCopy.js +98 -3
  1103. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  1104. package/packages/utils/src/lib/safeFileName.js +29 -3
  1105. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  1106. package/scripts/npm-post-install.cjs +34 -0
  1107. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  1108. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -409
  1109. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -288
  1110. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -495
  1111. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  1112. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -120
  1113. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  1114. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  1115. package/analyzer-template/process/README.md +0 -507
  1116. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  1117. package/background/src/lib/process/ProcessManager.js.map +0 -1
  1118. package/background/src/lib/process/index.js.map +0 -1
  1119. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  1120. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  1121. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  1122. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js +0 -7
  1123. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js.map +0 -1
  1124. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
  1125. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  1126. package/codeyam-cli/src/commands/list.js +0 -31
  1127. package/codeyam-cli/src/commands/list.js.map +0 -1
  1128. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  1129. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  1130. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  1131. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  1132. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +0 -1
  1133. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +0 -41
  1134. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +0 -25
  1135. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +0 -11
  1136. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +0 -15
  1137. package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +0 -11
  1138. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-2mG6mjVb.js +0 -32
  1139. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +0 -51
  1140. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +0 -1
  1141. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +0 -1
  1142. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +0 -1
  1143. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +0 -1
  1144. package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +0 -1
  1145. package/codeyam-cli/src/webserver/build/client/assets/git-D62Lxxmv.js +0 -15
  1146. package/codeyam-cli/src/webserver/build/client/assets/globals-C6vQASxy.css +0 -1
  1147. package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +0 -1
  1148. package/codeyam-cli/src/webserver/build/client/assets/manifest-09d684be.js +0 -1
  1149. package/codeyam-cli/src/webserver/build/client/assets/root-BxJUvKau.js +0 -56
  1150. package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +0 -1
  1151. package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +0 -1
  1152. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +0 -1
  1153. package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +0 -1
  1154. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-BqPPNjAl.js +0 -2
  1155. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +0 -1
  1156. package/codeyam-cli/src/webserver/build/server/assets/index-CV6i1S1A.js +0 -1
  1157. package/codeyam-cli/src/webserver/build/server/assets/server-build-BDlyhfrv.js +0 -175
  1158. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  1159. package/codeyam-cli/templates/debug-codeyam.md +0 -620
  1160. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  1161. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  1162. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -298
  1163. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  1164. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -226
  1165. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  1166. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -408
  1167. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  1168. package/packages/ai/src/lib/isFrontend.js +0 -5
  1169. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  1170. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  1171. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  1172. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -77
  1173. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  1174. package/scripts/finalize-analyzer.cjs +0 -81
  1175. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  1176. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  1177. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  1178. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  1179. /package/codeyam-cli/src/webserver/build/client/assets/{api.link-scenario-value-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
  1180. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-key-attributes-l0sNRNKZ.js → api.dev-mode-events-l0sNRNKZ.js} +0 -0
  1181. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-valid-values-l0sNRNKZ.js → api.editor-audit-l0sNRNKZ.js} +0 -0
  1182. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  1183. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  1184. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -1,51 +0,0 @@
1
- function Ba(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const a in n)if(a!=="default"&&!(a in e)){const o=Object.getOwnPropertyDescriptor(n,a);o&&Object.defineProperty(e,a,o.get?o:{enumerable:!0,get:()=>n[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var us=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wa(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Xt={exports:{}},ot={};/**
2
- * @license React
3
- * react-jsx-runtime.production.js
4
- *
5
- * Copyright (c) Meta Platforms, Inc. and affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */var Jr;function Ya(){if(Jr)return ot;Jr=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(n,a,o){var i=null;if(o!==void 0&&(i=""+o),a.key!==void 0&&(i=""+a.key),"key"in a){o={};for(var l in a)l!=="key"&&(o[l]=a[l])}else o=a;return a=o.ref,{$$typeof:e,type:n,key:i,ref:a!==void 0?a:null,props:o}}return ot.Fragment=t,ot.jsx=r,ot.jsxs=r,ot}var Gr;function Va(){return Gr||(Gr=1,Xt.exports=Ya()),Xt.exports}var cs=Va(),qt={exports:{}},B={};/**
10
- * @license React
11
- * react.production.js
12
- *
13
- * Copyright (c) Meta Platforms, Inc. and affiliates.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- */var Kr;function Ja(){if(Kr)return B;Kr=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),i=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),s=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),c=Symbol.for("react.activity"),y=Symbol.iterator;function g(p){return p===null||typeof p!="object"?null:(p=y&&p[y]||p["@@iterator"],typeof p=="function"?p:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,R={};function b(p,S,j){this.props=p,this.context=S,this.refs=R,this.updater=j||E}b.prototype.isReactComponent={},b.prototype.setState=function(p,S){if(typeof p!="object"&&typeof p!="function"&&p!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,p,S,"setState")},b.prototype.forceUpdate=function(p){this.updater.enqueueForceUpdate(this,p,"forceUpdate")};function L(){}L.prototype=b.prototype;function D(p,S,j){this.props=p,this.context=S,this.refs=R,this.updater=j||E}var k=D.prototype=new L;k.constructor=D,C(k,b.prototype),k.isPureReactComponent=!0;var T=Array.isArray;function _(){}var m={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function H(p,S,j){var N=j.ref;return{$$typeof:e,type:p,key:S,ref:N!==void 0?N:null,props:j}}function J(p,S){return H(p.type,S,p.props)}function K(p){return typeof p=="object"&&p!==null&&p.$$typeof===e}function ae(p){var S={"=":"=0",":":"=2"};return"$"+p.replace(/[=:]/g,function(j){return S[j]})}var le=/\/+/g;function Q(p,S){return typeof p=="object"&&p!==null&&p.key!=null?ae(""+p.key):S.toString(36)}function ue(p){switch(p.status){case"fulfilled":return p.value;case"rejected":throw p.reason;default:switch(typeof p.status=="string"?p.then(_,_):(p.status="pending",p.then(function(S){p.status==="pending"&&(p.status="fulfilled",p.value=S)},function(S){p.status==="pending"&&(p.status="rejected",p.reason=S)})),p.status){case"fulfilled":return p.value;case"rejected":throw p.reason}}throw p}function X(p,S,j,N,z){var G=typeof p;(G==="undefined"||G==="boolean")&&(p=null);var te=!1;if(p===null)te=!0;else switch(G){case"bigint":case"string":case"number":te=!0;break;case"object":switch(p.$$typeof){case e:case t:te=!0;break;case h:return te=p._init,X(te(p._payload),S,j,N,z)}}if(te)return z=z(p),te=N===""?"."+Q(p,0):N,T(z)?(j="",te!=null&&(j=te.replace(le,"$&/")+"/"),X(z,S,j,"",function(Yt){return Yt})):z!=null&&(K(z)&&(z=J(z,j+(z.key==null||p&&p.key===z.key?"":(""+z.key).replace(le,"$&/")+"/")+te)),S.push(z)),1;te=0;var de=N===""?".":N+":";if(T(p))for(var me=0;me<p.length;me++)N=p[me],G=de+Q(N,me),te+=X(N,S,j,G,z);else if(me=g(p),typeof me=="function")for(p=me.call(p),me=0;!(N=p.next()).done;)N=N.value,G=de+Q(N,me++),te+=X(N,S,j,G,z);else if(G==="object"){if(typeof p.then=="function")return X(ue(p),S,j,N,z);throw S=String(p),Error("Objects are not valid as a React child (found: "+(S==="[object Object]"?"object with keys {"+Object.keys(p).join(", ")+"}":S)+"). If you meant to render a collection of children, use an array instead.")}return te}function ee(p,S,j){if(p==null)return p;var N=[],z=0;return X(p,N,"","",function(G){return S.call(j,G,z++)}),N}function re(p){if(p._status===-1){var S=p._result;S=S(),S.then(function(j){(p._status===0||p._status===-1)&&(p._status=1,p._result=j)},function(j){(p._status===0||p._status===-1)&&(p._status=2,p._result=j)}),p._status===-1&&(p._status=0,p._result=S)}if(p._status===1)return p._result.default;throw p._result}var ce=typeof reportError=="function"?reportError:function(p){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var S=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof p=="object"&&p!==null&&typeof p.message=="string"?String(p.message):String(p),error:p});if(!window.dispatchEvent(S))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",p);return}console.error(p)},se={map:ee,forEach:function(p,S,j){ee(p,function(){S.apply(this,arguments)},j)},count:function(p){var S=0;return ee(p,function(){S++}),S},toArray:function(p){return ee(p,function(S){return S})||[]},only:function(p){if(!K(p))throw Error("React.Children.only expected to receive a single React element child.");return p}};return B.Activity=c,B.Children=se,B.Component=b,B.Fragment=r,B.Profiler=a,B.PureComponent=D,B.StrictMode=n,B.Suspense=s,B.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=m,B.__COMPILER_RUNTIME={__proto__:null,c:function(p){return m.H.useMemoCache(p)}},B.cache=function(p){return function(){return p.apply(null,arguments)}},B.cacheSignal=function(){return null},B.cloneElement=function(p,S,j){if(p==null)throw Error("The argument must be a React element, but you passed "+p+".");var N=C({},p.props),z=p.key;if(S!=null)for(G in S.key!==void 0&&(z=""+S.key),S)!M.call(S,G)||G==="key"||G==="__self"||G==="__source"||G==="ref"&&S.ref===void 0||(N[G]=S[G]);var G=arguments.length-2;if(G===1)N.children=j;else if(1<G){for(var te=Array(G),de=0;de<G;de++)te[de]=arguments[de+2];N.children=te}return H(p.type,z,N)},B.createContext=function(p){return p={$$typeof:i,_currentValue:p,_currentValue2:p,_threadCount:0,Provider:null,Consumer:null},p.Provider=p,p.Consumer={$$typeof:o,_context:p},p},B.createElement=function(p,S,j){var N,z={},G=null;if(S!=null)for(N in S.key!==void 0&&(G=""+S.key),S)M.call(S,N)&&N!=="key"&&N!=="__self"&&N!=="__source"&&(z[N]=S[N]);var te=arguments.length-2;if(te===1)z.children=j;else if(1<te){for(var de=Array(te),me=0;me<te;me++)de[me]=arguments[me+2];z.children=de}if(p&&p.defaultProps)for(N in te=p.defaultProps,te)z[N]===void 0&&(z[N]=te[N]);return H(p,G,z)},B.createRef=function(){return{current:null}},B.forwardRef=function(p){return{$$typeof:l,render:p}},B.isValidElement=K,B.lazy=function(p){return{$$typeof:h,_payload:{_status:-1,_result:p},_init:re}},B.memo=function(p,S){return{$$typeof:u,type:p,compare:S===void 0?null:S}},B.startTransition=function(p){var S=m.T,j={};m.T=j;try{var N=p(),z=m.S;z!==null&&z(j,N),typeof N=="object"&&N!==null&&typeof N.then=="function"&&N.then(_,ce)}catch(G){ce(G)}finally{S!==null&&j.types!==null&&(S.types=j.types),m.T=S}},B.unstable_useCacheRefresh=function(){return m.H.useCacheRefresh()},B.use=function(p){return m.H.use(p)},B.useActionState=function(p,S,j){return m.H.useActionState(p,S,j)},B.useCallback=function(p,S){return m.H.useCallback(p,S)},B.useContext=function(p){return m.H.useContext(p)},B.useDebugValue=function(){},B.useDeferredValue=function(p,S){return m.H.useDeferredValue(p,S)},B.useEffect=function(p,S){return m.H.useEffect(p,S)},B.useEffectEvent=function(p){return m.H.useEffectEvent(p)},B.useId=function(){return m.H.useId()},B.useImperativeHandle=function(p,S,j){return m.H.useImperativeHandle(p,S,j)},B.useInsertionEffect=function(p,S){return m.H.useInsertionEffect(p,S)},B.useLayoutEffect=function(p,S){return m.H.useLayoutEffect(p,S)},B.useMemo=function(p,S){return m.H.useMemo(p,S)},B.useOptimistic=function(p,S){return m.H.useOptimistic(p,S)},B.useReducer=function(p,S,j){return m.H.useReducer(p,S,j)},B.useRef=function(p){return m.H.useRef(p)},B.useState=function(p){return m.H.useState(p)},B.useSyncExternalStore=function(p,S,j){return m.H.useSyncExternalStore(p,S,j)},B.useTransition=function(){return m.H.useTransition()},B.version="19.2.3",B}var Xr;function Ga(){return Xr||(Xr=1,qt.exports=Ja()),qt.exports}var f=Ga();const Ka=Wa(f),Xa=Ba({__proto__:null,default:Ka},[f]);/**
18
- * react-router v7.11.0
19
- *
20
- * Copyright (c) Remix Software Inc.
21
- *
22
- * This source code is licensed under the MIT license found in the
23
- * LICENSE.md file in the root directory of this source tree.
24
- *
25
- * @license MIT
26
- */var Tn=e=>{throw TypeError(e)},qa=(e,t,r)=>t.has(e)||Tn("Cannot "+r),Qt=(e,t,r)=>(qa(e,t,"read from private field"),r?r.call(e):t.get(e)),Qa=(e,t,r)=>t.has(e)?Tn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),qr="popstate";function ds(e={}){function t(n,a){let{pathname:o,search:i,hash:l}=n.location;return ft("",{pathname:o,search:i,hash:l},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:Me(a)}return eo(t,r,null,e)}function W(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function oe(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Za(){return Math.random().toString(36).substring(2,10)}function Qr(e,t){return{usr:e.state,key:e.key,idx:t}}function ft(e,t,r=null,n){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?$e(t):t,state:r,key:t&&t.key||n||Za()}}function Me({pathname:e="/",search:t="",hash:r=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function $e(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function eo(e,t,r,n={}){let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,l="POP",s=null,u=h();u==null&&(u=0,i.replaceState({...i.state,idx:u},""));function h(){return(i.state||{idx:null}).idx}function c(){l="POP";let R=h(),b=R==null?null:R-u;u=R,s&&s({action:l,location:C.location,delta:b})}function y(R,b){l="PUSH";let L=ft(C.location,R,b);u=h()+1;let D=Qr(L,u),k=C.createHref(L);try{i.pushState(D,"",k)}catch(T){if(T instanceof DOMException&&T.name==="DataCloneError")throw T;a.location.assign(k)}o&&s&&s({action:l,location:C.location,delta:1})}function g(R,b){l="REPLACE";let L=ft(C.location,R,b);u=h();let D=Qr(L,u),k=C.createHref(L);i.replaceState(D,"",k),o&&s&&s({action:l,location:C.location,delta:0})}function E(R){return Mn(R)}let C={get action(){return l},get location(){return e(a,i)},listen(R){if(s)throw new Error("A history only accepts one active listener");return a.addEventListener(qr,c),s=R,()=>{a.removeEventListener(qr,c),s=null}},createHref(R){return t(a,R)},createURL:E,encodeLocation(R){let b=E(R);return{pathname:b.pathname,search:b.search,hash:b.hash}},push:y,replace:g,go(R){return i.go(R)}};return C}function Mn(e,t=!1){let r="http://localhost";typeof window<"u"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),W(r,"No window.location.(origin|href) available to create URL");let n=typeof e=="string"?e:Me(e);return n=n.replace(/ $/,"%20"),!t&&n.startsWith("//")&&(n=r+n),new URL(n,r)}var ut,Zr=class{constructor(e){if(Qa(this,ut,new Map),e)for(let[t,r]of e)this.set(t,r)}get(e){if(Qt(this,ut).has(e))return Qt(this,ut).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw new Error("No value found for context")}set(e,t){Qt(this,ut).set(e,t)}};ut=new WeakMap;var to=new Set(["lazy","caseSensitive","path","id","index","children"]);function ro(e){return to.has(e)}var no=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function ao(e){return no.has(e)}function oo(e){return e.index===!0}function ht(e,t,r=[],n={},a=!1){return e.map((o,i)=>{let l=[...r,String(i)],s=typeof o.id=="string"?o.id:l.join("-");if(W(o.index!==!0||!o.children,"Cannot specify children on an index route"),W(a||!n[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),oo(o)){let u={...o,id:s};return n[s]=en(u,t(u)),u}else{let u={...o,id:s,children:void 0};return n[s]=en(u,t(u)),o.children&&(u.children=ht(o.children,t,l,n,a)),u}})}function en(e,t){return Object.assign(e,{...t,...typeof t.lazy=="object"&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function Ie(e,t,r="/"){return ct(e,t,r,!1)}function ct(e,t,r,n){let a=typeof t=="string"?$e(t):t,o=be(a.pathname||"/",r);if(o==null)return null;let i=Dn(e);io(i);let l=null;for(let s=0;l==null&&s<i.length;++s){let u=vo(o);l=yo(i[s],u,n)}return l}function _n(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],loaderData:t[r.id],handle:r.handle}}function Dn(e,t=[],r=[],n="",a=!1){let o=(i,l,s=a,u)=>{let h={relativePath:u===void 0?i.path||"":u,caseSensitive:i.caseSensitive===!0,childrenIndex:l,route:i};if(h.relativePath.startsWith("/")){if(!h.relativePath.startsWith(n)&&s)return;W(h.relativePath.startsWith(n),`Absolute route path "${h.relativePath}" nested under path "${n}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),h.relativePath=h.relativePath.slice(n.length)}let c=Te([n,h.relativePath]),y=r.concat(h);i.children&&i.children.length>0&&(W(i.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${c}".`),Dn(i.children,t,y,c,s)),!(i.path==null&&!i.index)&&t.push({path:c,score:mo(c,i.index),routesMeta:y})};return e.forEach((i,l)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))o(i,l);else for(let u of On(i.path))o(i,l,!0,u)}),t}function On(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),o=r.replace(/\?$/,"");if(n.length===0)return a?[o,""]:[o];let i=On(n.join("/")),l=[];return l.push(...i.map(s=>s===""?o:[o,s].join("/"))),a&&l.push(...i),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function io(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:po(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}var lo=/^:[\w-]+$/,so=3,uo=2,co=1,fo=10,ho=-2,tn=e=>e==="*";function mo(e,t){let r=e.split("/"),n=r.length;return r.some(tn)&&(n+=ho),t&&(n+=uo),r.filter(a=>!tn(a)).reduce((a,o)=>a+(lo.test(o)?so:o===""?co:fo),n)}function po(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function yo(e,t,r=!1){let{routesMeta:n}=e,a={},o="/",i=[];for(let l=0;l<n.length;++l){let s=n[l],u=l===n.length-1,h=o==="/"?t:t.slice(o.length)||"/",c=Ft({path:s.relativePath,caseSensitive:s.caseSensitive,end:u},h),y=s.route;if(!c&&u&&r&&!n[n.length-1].route.index&&(c=Ft({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},h)),!c)return null;Object.assign(a,c.params),i.push({params:a,pathname:Te([o,c.pathname]),pathnameBase:Eo(Te([o,c.pathnameBase])),route:y}),c.pathnameBase!=="/"&&(o=Te([o,c.pathnameBase]))}return i}function Ft(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=An(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),l=a.slice(1);return{params:n.reduce((u,{paramName:h,isOptional:c},y)=>{if(h==="*"){let E=l[y]||"";i=o.slice(0,o.length-E.length).replace(/(.)\/+$/,"$1")}const g=l[y];return c&&!g?u[h]=void 0:u[h]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function An(e,t=!1,r=!0){oe(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,l,s)=>(n.push({paramName:l,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function vo(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return oe(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function be(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}function go({basename:e,pathname:t}){return t==="/"?e:Te([e,t])}var In=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,$t=e=>In.test(e);function wo(e,t="/"){let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?$e(e):e,o;if(r)if($t(r))o=r;else{if(r.includes("//")){let i=r;r=r.replace(/\/\/+/g,"/"),oe(!1,`Pathnames cannot have embedded double slashes - normalizing ${i} -> ${r}`)}r.startsWith("/")?o=rn(r.substring(1),"/"):o=rn(r,t)}else o=t;return{pathname:o,search:Ro(n),hash:bo(a)}}function rn(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function Zt(e,t,r,n){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(n)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Fn(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function wr(e){let t=Fn(e);return t.map((r,n)=>n===t.length-1?r.pathname:r.pathnameBase)}function Er(e,t,r,n=!1){let a;typeof e=="string"?a=$e(e):(a={...e},W(!a.pathname||!a.pathname.includes("?"),Zt("?","pathname","search",a)),W(!a.pathname||!a.pathname.includes("#"),Zt("#","pathname","hash",a)),W(!a.search||!a.search.includes("#"),Zt("#","search","hash",a)));let o=e===""||a.pathname==="",i=o?"/":a.pathname,l;if(i==null)l=r;else{let c=t.length-1;if(!n&&i.startsWith("..")){let y=i.split("/");for(;y[0]==="..";)y.shift(),c-=1;a.pathname=y.join("/")}l=c>=0?t[c]:"/"}let s=wo(a,l),u=i&&i!=="/"&&i.endsWith("/"),h=(o||i===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||h)&&(s.pathname+="/"),s}var Te=e=>e.join("/").replace(/\/\/+/g,"/"),Eo=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Ro=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,bo=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,So=class{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}};function xo(e,t){return new So(e,typeof t=="number"?{status:t}:t)}var Co=(e,t=302)=>{let r=t;typeof r=="number"?r={status:r}:typeof r.status>"u"&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,{...r,headers:n})},je=class{constructor(e,t,r,n=!1){this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function Ve(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function pt(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var kn=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Nn(e,t){let r=e;if(typeof r!="string"||!In.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let n=r,a=!1;if(kn)try{let o=new URL(window.location.href),i=r.startsWith("//")?new URL(o.protocol+r):new URL(r),l=be(i.pathname,t);i.origin===o.origin&&l!=null?r=l+i.search+i.hash:a=!0}catch{oe(!1,`<Link to="${r}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:n,isExternal:a,to:r}}var Ne=Symbol("Uninstrumented");function Lo(e,t){let r={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(a=>a({id:t.id,index:t.index,path:t.path,instrument(o){let i=Object.keys(r);for(let l of i)o[l]&&r[l].push(o[l])}}));let n={};if(typeof t.lazy=="function"&&r.lazy.length>0){let a=qe(r.lazy,t.lazy,()=>{});a&&(n.lazy=a)}if(typeof t.lazy=="object"){let a=t.lazy;["middleware","loader","action"].forEach(o=>{let i=a[o],l=r[`lazy.${o}`];if(typeof i=="function"&&l.length>0){let s=qe(l,i,()=>{});s&&(n.lazy=Object.assign(n.lazy||{},{[o]:s}))}})}return["loader","action"].forEach(a=>{let o=t[a];if(typeof o=="function"&&r[a].length>0){let i=o[Ne]??o,l=qe(r[a],i,(...s)=>nn(s[0]));l&&(l[Ne]=i,n[a]=l)}}),t.middleware&&t.middleware.length>0&&r.middleware.length>0&&(n.middleware=t.middleware.map(a=>{let o=a[Ne]??a,i=qe(r.middleware,o,(...l)=>nn(l[0]));return i?(i[Ne]=o,i):a})),n}function Po(e,t){let r={navigate:[],fetch:[]};if(t.forEach(n=>n({instrument(a){let o=Object.keys(a);for(let i of o)a[i]&&r[i].push(a[i])}})),r.navigate.length>0){let n=e.navigate[Ne]??e.navigate,a=qe(r.navigate,n,(...o)=>{let[i,l]=o;return{to:typeof i=="number"||typeof i=="string"?i:i?Me(i):".",...an(e,l??{})}});a&&(a[Ne]=n,e.navigate=a)}if(r.fetch.length>0){let n=e.fetch[Ne]??e.fetch,a=qe(r.fetch,n,(...o)=>{let[i,,l,s]=o;return{href:l??".",fetcherKey:i,...an(e,s??{})}});a&&(a[Ne]=n,e.fetch=a)}return e}function qe(e,t,r){return e.length===0?null:async(...n)=>{let a=await $n(e,r(...n),()=>t(...n),e.length-1);if(a.type==="error")throw a.value;return a.value}}async function $n(e,t,r,n){let a=e[n],o;if(a){let i,l=async()=>(i?console.error("You cannot call instrumented handlers more than once"):i=$n(e,t,r,n-1),o=await i,W(o,"Expected a result"),o.type==="error"&&o.value instanceof Error?{status:"error",error:o.value}:{status:"success",error:void 0});try{await a(l,t)}catch(s){console.error("An instrumentation function threw an error:",s)}i||await l(),await i}else try{o={type:"success",value:await r()}}catch(i){o={type:"error",value:i}}return o||{type:"error",value:new Error("No result assigned in instrumentation chain.")}}function nn(e){let{request:t,context:r,params:n,unstable_pattern:a}=e;return{request:To(t),params:{...n},unstable_pattern:a,context:Mo(r)}}function an(e,t){return{currentUrl:Me(e.state.location),..."formMethod"in t?{formMethod:t.formMethod}:{},..."formEncType"in t?{formEncType:t.formEncType}:{},..."formData"in t?{formData:t.formData}:{},..."body"in t?{body:t.body}:{}}}function To(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function Mo(e){if(Do(e)){let t={...e};return Object.freeze(t),t}else return{get:t=>e.get(t)}}var _o=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Do(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join("\0")===_o}var jn=["POST","PUT","PATCH","DELETE"],Oo=new Set(jn),Ao=["GET",...jn],Io=new Set(Ao),Un=new Set([301,302,303,307,308]),Fo=new Set([307,308]),er={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Hn={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},it={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ko=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),zn="remix-router-transitions",Bn=Symbol("ResetLoaderData");function fs(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u";W(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let n=e.hydrationRouteProperties||[],a=e.mapRouteProperties||ko,o=a;if(e.unstable_instrumentations){let d=e.unstable_instrumentations;o=v=>({...a(v),...Lo(d.map(w=>w.route).filter(Boolean),v)})}let i={},l=ht(e.routes,o,void 0,i),s,u=e.basename||"/";u.startsWith("/")||(u=`/${u}`);let h=e.dataStrategy||Ho,c={...e.future},y=null,g=new Set,E=null,C=null,R=null,b=e.hydrationData!=null,L=Ie(l,e.history.location,u),D=!1,k=null,T;if(L==null&&!e.patchRoutesOnNavigation){let d=xe(404,{pathname:e.history.location.pathname}),{matches:v,route:w}=Ct(l);T=!0,L=v,k={[w.id]:d}}else if(L&&!e.hydrationData&&Et(L,l,e.history.location.pathname).active&&(L=null),L)if(L.some(d=>d.route.lazy))T=!1;else if(!L.some(d=>Rr(d.route)))T=!0;else{let d=e.hydrationData?e.hydrationData.loaderData:null,v=e.hydrationData?e.hydrationData.errors:null;if(v){let w=L.findIndex(x=>v[x.route.id]!==void 0);T=L.slice(0,w+1).every(x=>!sr(x.route,d,v))}else T=L.every(w=>!sr(w.route,d,v))}else{T=!1,L=[];let d=Et(null,l,e.history.location.pathname);d.active&&d.matches&&(D=!0,L=d.matches)}let _,m={historyAction:e.history.action,location:e.history.location,matches:L,initialized:T,navigation:er,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||k,fetchers:new Map,blockers:new Map},M="POP",H=null,J=!1,K,ae=!1,le=new Map,Q=null,ue=!1,X=!1,ee=new Set,re=new Map,ce=0,se=-1,p=new Map,S=new Set,j=new Map,N=new Map,z=new Set,G=new Map,te,de=null;function me(){if(y=e.history.listen(({action:d,location:v,delta:w})=>{if(te){te(),te=void 0;return}oe(G.size===0||w!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let x=zr({currentLocation:m.location,nextLocation:v,historyAction:d});if(x&&w!=null){let P=new Promise(I=>{te=I});e.history.go(w*-1),wt(x,{state:"blocked",location:v,proceed(){wt(x,{state:"proceeding",proceed:void 0,reset:void 0,location:v}),P.then(()=>e.history.go(w))},reset(){let I=new Map(m.blockers);I.set(x,it),pe({blockers:I})}}),H==null||H.resolve(),H=null;return}return Ue(d,v)}),r){oi(t,le);let d=()=>ii(t,le);t.addEventListener("pagehide",d),Q=()=>t.removeEventListener("pagehide",d)}return m.initialized||Ue("POP",m.location,{initialHydration:!0}),_}function Yt(){y&&y(),Q&&Q(),g.clear(),K&&K.abort(),m.fetchers.forEach((d,v)=>Jt(v)),m.blockers.forEach((d,v)=>Hr(v))}function Pa(d){return g.add(d),()=>g.delete(d)}function pe(d,v={}){d.matches&&(d.matches=d.matches.map(P=>{let I=i[P.route.id],U=P.route;return U.element!==I.element||U.errorElement!==I.errorElement||U.hydrateFallbackElement!==I.hydrateFallbackElement?{...P,route:I}:P})),m={...m,...d};let w=[],x=[];m.fetchers.forEach((P,I)=>{P.state==="idle"&&(z.has(I)?w.push(I):x.push(I))}),z.forEach(P=>{!m.fetchers.has(P)&&!re.has(P)&&w.push(P)}),[...g].forEach(P=>P(m,{deletedFetchers:w,newErrors:d.errors??null,viewTransitionOpts:v.viewTransitionOpts,flushSync:v.flushSync===!0})),w.forEach(P=>Jt(P)),x.forEach(P=>m.fetchers.delete(P))}function Ge(d,v,{flushSync:w}={}){var Y,F;let x=m.actionData!=null&&m.navigation.formMethod!=null&&ve(m.navigation.formMethod)&&m.navigation.state==="loading"&&((Y=d.state)==null?void 0:Y._isRedirect)!==!0,P;v.actionData?Object.keys(v.actionData).length>0?P=v.actionData:P=null:x?P=m.actionData:P=null;let I=v.loaderData?pn(m.loaderData,v.loaderData,v.matches||[],v.errors):m.loaderData,U=m.blockers;U.size>0&&(U=new Map(U),U.forEach((V,q)=>U.set(q,it)));let O=ue?!1:Wr(d,v.matches||m.matches),A=J===!0||m.navigation.formMethod!=null&&ve(m.navigation.formMethod)&&((F=d.state)==null?void 0:F._isRedirect)!==!0;s&&(l=s,s=void 0),ue||M==="POP"||(M==="PUSH"?e.history.push(d,d.state):M==="REPLACE"&&e.history.replace(d,d.state));let $;if(M==="POP"){let V=le.get(m.location.pathname);V&&V.has(d.pathname)?$={currentLocation:m.location,nextLocation:d}:le.has(d.pathname)&&($={currentLocation:d,nextLocation:m.location})}else if(ae){let V=le.get(m.location.pathname);V?V.add(d.pathname):(V=new Set([d.pathname]),le.set(m.location.pathname,V)),$={currentLocation:m.location,nextLocation:d}}pe({...v,actionData:P,loaderData:I,historyAction:M,location:d,initialized:!0,navigation:er,revalidation:"idle",restoreScrollPosition:O,preventScrollReset:A,blockers:U},{viewTransitionOpts:$,flushSync:w===!0}),M="POP",J=!1,ae=!1,ue=!1,X=!1,H==null||H.resolve(),H=null,de==null||de.resolve(),de=null}async function Ir(d,v){if(H==null||H.resolve(),H=null,typeof d=="number"){H||(H=gn());let q=H.promise;return e.history.go(d),q}let w=lr(m.location,m.matches,u,d,v==null?void 0:v.fromRouteId,v==null?void 0:v.relative),{path:x,submission:P,error:I}=on(!1,w,v),U=m.location,O=ft(m.location,x,v&&v.state);O={...O,...e.history.encodeLocation(O)};let A=v&&v.replace!=null?v.replace:void 0,$="PUSH";A===!0?$="REPLACE":A===!1||P!=null&&ve(P.formMethod)&&P.formAction===m.location.pathname+m.location.search&&($="REPLACE");let Y=v&&"preventScrollReset"in v?v.preventScrollReset===!0:void 0,F=(v&&v.flushSync)===!0,V=zr({currentLocation:U,nextLocation:O,historyAction:$});if(V){wt(V,{state:"blocked",location:O,proceed(){wt(V,{state:"proceeding",proceed:void 0,reset:void 0,location:O}),Ir(d,v)},reset(){let q=new Map(m.blockers);q.set(V,it),pe({blockers:q})}});return}await Ue($,O,{submission:P,pendingError:I,preventScrollReset:Y,replace:v&&v.replace,enableViewTransition:v&&v.viewTransition,flushSync:F,callSiteDefaultShouldRevalidate:v&&v.unstable_defaultShouldRevalidate})}function Ta(){de||(de=gn()),Vt(),pe({revalidation:"loading"});let d=de.promise;return m.navigation.state==="submitting"?d:m.navigation.state==="idle"?(Ue(m.historyAction,m.location,{startUninterruptedRevalidation:!0}),d):(Ue(M||m.historyAction,m.navigation.location,{overrideNavigation:m.navigation,enableViewTransition:ae===!0}),d)}async function Ue(d,v,w){K&&K.abort(),K=null,M=d,ue=(w&&w.startUninterruptedRevalidation)===!0,ja(m.location,m.matches),J=(w&&w.preventScrollReset)===!0,ae=(w&&w.enableViewTransition)===!0;let x=s||l,P=w&&w.overrideNavigation,I=w!=null&&w.initialHydration&&m.matches&&m.matches.length>0&&!D?m.matches:Ie(x,v,u),U=(w&&w.flushSync)===!0;if(I&&m.initialized&&!X&&Ko(m.location,v)&&!(w&&w.submission&&ve(w.submission.formMethod))){Ge(v,{matches:I},{flushSync:U});return}let O=Et(I,x,v.pathname);if(O.active&&O.matches&&(I=O.matches),!I){let{error:fe,notFoundMatches:ge,route:ne}=Gt(v.pathname);Ge(v,{matches:ge,loaderData:{},errors:{[ne.id]:fe}},{flushSync:U});return}K=new AbortController;let A=Xe(e.history,v,K.signal,w&&w.submission),$=e.getContext?await e.getContext():new Zr,Y;if(w&&w.pendingError)Y=[ke(I).route.id,{type:"error",error:w.pendingError}];else if(w&&w.submission&&ve(w.submission.formMethod)){let fe=await Ma(A,v,w.submission,I,$,O.active,w&&w.initialHydration===!0,{replace:w.replace,flushSync:U});if(fe.shortCircuited)return;if(fe.pendingActionResult){let[ge,ne]=fe.pendingActionResult;if(Re(ne)&&Ve(ne.error)&&ne.error.status===404){K=null,Ge(v,{matches:fe.matches,loaderData:{},errors:{[ge]:ne.error}});return}}I=fe.matches||I,Y=fe.pendingActionResult,P=tr(v,w.submission),U=!1,O.active=!1,A=Xe(e.history,A.url,A.signal)}let{shortCircuited:F,matches:V,loaderData:q,errors:he}=await _a(A,v,I,$,O.active,P,w&&w.submission,w&&w.fetcherSubmission,w&&w.replace,w&&w.initialHydration===!0,U,Y,w&&w.callSiteDefaultShouldRevalidate);F||(K=null,Ge(v,{matches:V||I,...yn(Y),loaderData:q,errors:he}))}async function Ma(d,v,w,x,P,I,U,O={}){Vt();let A=ni(v,w);if(pe({navigation:A},{flushSync:O.flushSync===!0}),I){let F=await Rt(x,v.pathname,d.signal);if(F.type==="aborted")return{shortCircuited:!0};if(F.type==="error"){if(F.partialMatches.length===0){let{matches:q,route:he}=Ct(l);return{matches:q,pendingActionResult:[he.id,{type:"error",error:F.error}]}}let V=ke(F.partialMatches).route.id;return{matches:F.partialMatches,pendingActionResult:[V,{type:"error",error:F.error}]}}else if(F.matches)x=F.matches;else{let{notFoundMatches:V,error:q,route:he}=Gt(v.pathname);return{matches:V,pendingActionResult:[he.id,{type:"error",error:q}]}}}let $,Y=Dt(x,v);if(!Y.route.action&&!Y.route.lazy)$={type:"error",error:xe(405,{method:d.method,pathname:v.pathname,routeId:Y.route.id})};else{let F=Qe(o,i,d,x,Y,U?[]:n,P),V=await rt(d,F,P,null);if($=V[Y.route.id],!$){for(let q of x)if(V[q.route.id]){$=V[q.route.id];break}}if(d.signal.aborted)return{shortCircuited:!0}}if(Ye($)){let F;return O&&O.replace!=null?F=O.replace:F=fn($.response.headers.get("Location"),new URL(d.url),u)===m.location.pathname+m.location.search,await He(d,$,!0,{submission:w,replace:F}),{shortCircuited:!0}}if(Re($)){let F=ke(x,Y.route.id);return(O&&O.replace)!==!0&&(M="PUSH"),{matches:x,pendingActionResult:[F.route.id,$,Y.route.id]}}return{matches:x,pendingActionResult:[Y.route.id,$]}}async function _a(d,v,w,x,P,I,U,O,A,$,Y,F,V){let q=I||tr(v,U),he=U||O||vn(q),fe=!ue&&!$;if(P){if(fe){let ye=Fr(F);pe({navigation:q,...ye!==void 0?{actionData:ye}:{}},{flushSync:Y})}let Z=await Rt(w,v.pathname,d.signal);if(Z.type==="aborted")return{shortCircuited:!0};if(Z.type==="error"){if(Z.partialMatches.length===0){let{matches:Ke,route:We}=Ct(l);return{matches:Ke,loaderData:{},errors:{[We.id]:Z.error}}}let ye=ke(Z.partialMatches).route.id;return{matches:Z.partialMatches,loaderData:{},errors:{[ye]:Z.error}}}else if(Z.matches)w=Z.matches;else{let{error:ye,notFoundMatches:Ke,route:We}=Gt(v.pathname);return{matches:Ke,loaderData:{},errors:{[We.id]:ye}}}}let ge=s||l,{dsMatches:ne,revalidatingFetchers:Se}=ln(d,x,o,i,e.history,m,w,he,v,$?[]:n,$===!0,X,ee,z,j,S,ge,u,e.patchRoutesOnNavigation!=null,F,V);if(se=++ce,!e.dataStrategy&&!ne.some(Z=>Z.shouldLoad)&&!ne.some(Z=>Z.route.middleware&&Z.route.middleware.length>0)&&Se.length===0){let Z=jr();return Ge(v,{matches:w,loaderData:{},errors:F&&Re(F[1])?{[F[0]]:F[1].error}:null,...yn(F),...Z?{fetchers:new Map(m.fetchers)}:{}},{flushSync:Y}),{shortCircuited:!0}}if(fe){let Z={};if(!P){Z.navigation=q;let ye=Fr(F);ye!==void 0&&(Z.actionData=ye)}Se.length>0&&(Z.fetchers=Da(Se)),pe(Z,{flushSync:Y})}Se.forEach(Z=>{Oe(Z.key),Z.controller&&re.set(Z.key,Z.controller)});let ze=()=>Se.forEach(Z=>Oe(Z.key));K&&K.signal.addEventListener("abort",ze);let{loaderResults:nt,fetcherResults:Fe}=await kr(ne,Se,d,x);if(d.signal.aborted)return{shortCircuited:!0};K&&K.signal.removeEventListener("abort",ze),Se.forEach(Z=>re.delete(Z.key));let Pe=Lt(nt);if(Pe)return await He(d,Pe.result,!0,{replace:A}),{shortCircuited:!0};if(Pe=Lt(Fe),Pe)return S.add(Pe.key),await He(d,Pe.result,!0,{replace:A}),{shortCircuited:!0};let{loaderData:Kt,errors:at}=mn(m,w,nt,F,Se,Fe);$&&m.errors&&(at={...m.errors,...at});let Be=jr(),bt=Ur(se),St=Be||bt||Se.length>0;return{matches:w,loaderData:Kt,errors:at,...St?{fetchers:new Map(m.fetchers)}:{}}}function Fr(d){if(d&&!Re(d[1]))return{[d[0]]:d[1].data};if(m.actionData)return Object.keys(m.actionData).length===0?null:m.actionData}function Da(d){return d.forEach(v=>{let w=m.fetchers.get(v.key),x=lt(void 0,w?w.data:void 0);m.fetchers.set(v.key,x)}),new Map(m.fetchers)}async function Oa(d,v,w,x){Oe(d);let P=(x&&x.flushSync)===!0,I=s||l,U=lr(m.location,m.matches,u,w,v,x==null?void 0:x.relative),O=Ie(I,U,u),A=Et(O,I,U);if(A.active&&A.matches&&(O=A.matches),!O){De(d,v,xe(404,{pathname:U}),{flushSync:P});return}let{path:$,submission:Y,error:F}=on(!0,U,x);if(F){De(d,v,F,{flushSync:P});return}let V=e.getContext?await e.getContext():new Zr,q=(x&&x.preventScrollReset)===!0;if(Y&&ve(Y.formMethod)){await Aa(d,v,$,O,V,A.active,P,q,Y,x&&x.unstable_defaultShouldRevalidate);return}j.set(d,{routeId:v,path:$}),await Ia(d,v,$,O,V,A.active,P,q,Y)}async function Aa(d,v,w,x,P,I,U,O,A,$){Vt(),j.delete(d);let Y=m.fetchers.get(d);_e(d,ai(A,Y),{flushSync:U});let F=new AbortController,V=Xe(e.history,w,F.signal,A);if(I){let ie=await Rt(x,new URL(V.url).pathname,V.signal,d);if(ie.type==="aborted")return;if(ie.type==="error"){De(d,v,ie.error,{flushSync:U});return}else if(ie.matches)x=ie.matches;else{De(d,v,xe(404,{pathname:w}),{flushSync:U});return}}let q=Dt(x,w);if(!q.route.action&&!q.route.lazy){let ie=xe(405,{method:A.formMethod,pathname:w,routeId:v});De(d,v,ie,{flushSync:U});return}re.set(d,F);let he=ce,fe=Qe(o,i,V,x,q,n,P),ge=await rt(V,fe,P,d),ne=ge[q.route.id];if(!ne){for(let ie of fe)if(ge[ie.route.id]){ne=ge[ie.route.id];break}}if(V.signal.aborted){re.get(d)===F&&re.delete(d);return}if(z.has(d)){if(Ye(ne)||Re(ne)){_e(d,Ae(void 0));return}}else{if(Ye(ne))if(re.delete(d),se>he){_e(d,Ae(void 0));return}else return S.add(d),_e(d,lt(A)),He(V,ne,!1,{fetcherSubmission:A,preventScrollReset:O});if(Re(ne)){De(d,v,ne.error);return}}let Se=m.navigation.location||m.location,ze=Xe(e.history,Se,F.signal),nt=s||l,Fe=m.navigation.state!=="idle"?Ie(nt,m.navigation.location,u):m.matches;W(Fe,"Didn't find any matches after fetcher action");let Pe=++ce;p.set(d,Pe);let Kt=lt(A,ne.data);m.fetchers.set(d,Kt);let{dsMatches:at,revalidatingFetchers:Be}=ln(ze,P,o,i,e.history,m,Fe,A,Se,n,!1,X,ee,z,j,S,nt,u,e.patchRoutesOnNavigation!=null,[q.route.id,ne],$);Be.filter(ie=>ie.key!==d).forEach(ie=>{let xt=ie.key,Vr=m.fetchers.get(xt),za=lt(void 0,Vr?Vr.data:void 0);m.fetchers.set(xt,za),Oe(xt),ie.controller&&re.set(xt,ie.controller)}),pe({fetchers:new Map(m.fetchers)});let bt=()=>Be.forEach(ie=>Oe(ie.key));F.signal.addEventListener("abort",bt);let{loaderResults:St,fetcherResults:Z}=await kr(at,Be,ze,P);if(F.signal.aborted)return;if(F.signal.removeEventListener("abort",bt),p.delete(d),re.delete(d),Be.forEach(ie=>re.delete(ie.key)),m.fetchers.has(d)){let ie=Ae(ne.data);m.fetchers.set(d,ie)}let ye=Lt(St);if(ye)return He(ze,ye.result,!1,{preventScrollReset:O});if(ye=Lt(Z),ye)return S.add(ye.key),He(ze,ye.result,!1,{preventScrollReset:O});let{loaderData:Ke,errors:We}=mn(m,Fe,St,void 0,Be,Z);Ur(Pe),m.navigation.state==="loading"&&Pe>se?(W(M,"Expected pending action"),K&&K.abort(),Ge(m.navigation.location,{matches:Fe,loaderData:Ke,errors:We,fetchers:new Map(m.fetchers)})):(pe({errors:We,loaderData:pn(m.loaderData,Ke,Fe,We),fetchers:new Map(m.fetchers)}),X=!1)}async function Ia(d,v,w,x,P,I,U,O,A){let $=m.fetchers.get(d);_e(d,lt(A,$?$.data:void 0),{flushSync:U});let Y=new AbortController,F=Xe(e.history,w,Y.signal);if(I){let ne=await Rt(x,new URL(F.url).pathname,F.signal,d);if(ne.type==="aborted")return;if(ne.type==="error"){De(d,v,ne.error,{flushSync:U});return}else if(ne.matches)x=ne.matches;else{De(d,v,xe(404,{pathname:w}),{flushSync:U});return}}let V=Dt(x,w);re.set(d,Y);let q=ce,he=Qe(o,i,F,x,V,n,P),ge=(await rt(F,he,P,d))[V.route.id];if(re.get(d)===Y&&re.delete(d),!F.signal.aborted){if(z.has(d)){_e(d,Ae(void 0));return}if(Ye(ge))if(se>q){_e(d,Ae(void 0));return}else{S.add(d),await He(F,ge,!1,{preventScrollReset:O});return}if(Re(ge)){De(d,v,ge.error);return}_e(d,Ae(ge.data))}}async function He(d,v,w,{submission:x,fetcherSubmission:P,preventScrollReset:I,replace:U}={}){w||(H==null||H.resolve(),H=null),v.response.headers.has("X-Remix-Revalidate")&&(X=!0);let O=v.response.headers.get("Location");W(O,"Expected a Location header on the redirect Response"),O=fn(O,new URL(d.url),u);let A=ft(m.location,O,{_isRedirect:!0});if(r){let he=!1;if(v.response.headers.has("X-Remix-Reload-Document"))he=!0;else if($t(O)){const fe=Mn(O,!0);he=fe.origin!==t.location.origin||be(fe.pathname,u)==null}if(he){U?t.location.replace(O):t.location.assign(O);return}}K=null;let $=U===!0||v.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:Y,formAction:F,formEncType:V}=m.navigation;!x&&!P&&Y&&F&&V&&(x=vn(m.navigation));let q=x||P;if(Fo.has(v.response.status)&&q&&ve(q.formMethod))await Ue($,A,{submission:{...q,formAction:O},preventScrollReset:I||J,enableViewTransition:w?ae:void 0});else{let he=tr(A,x);await Ue($,A,{overrideNavigation:he,fetcherSubmission:P,preventScrollReset:I||J,enableViewTransition:w?ae:void 0})}}async function rt(d,v,w,x){var U;let P,I={};try{P=await Bo(h,d,v,x,w,!1)}catch(O){return v.filter(A=>A.shouldLoad).forEach(A=>{I[A.route.id]={type:"error",error:O}}),I}if(d.signal.aborted)return I;if(!ve(d.method))for(let O of v){if(((U=P[O.route.id])==null?void 0:U.type)==="error")break;!P.hasOwnProperty(O.route.id)&&!m.loaderData.hasOwnProperty(O.route.id)&&(!m.errors||!m.errors.hasOwnProperty(O.route.id))&&O.shouldCallHandler()&&(P[O.route.id]={type:"error",result:new Error(`No result returned from dataStrategy for route ${O.route.id}`)})}for(let[O,A]of Object.entries(P))if(Zo(A)){let $=A.result;I[O]={type:"redirect",response:Jo($,d,O,v,u)}}else I[O]=await Vo(A);return I}async function kr(d,v,w,x){let P=rt(w,d,x,null),I=Promise.all(v.map(async A=>{if(A.matches&&A.match&&A.request&&A.controller){let Y=(await rt(A.request,A.matches,x,A.key))[A.match.route.id];return{[A.key]:Y}}else return Promise.resolve({[A.key]:{type:"error",error:xe(404,{pathname:A.path})}})})),U=await P,O=(await I).reduce((A,$)=>Object.assign(A,$),{});return{loaderResults:U,fetcherResults:O}}function Vt(){X=!0,j.forEach((d,v)=>{re.has(v)&&ee.add(v),Oe(v)})}function _e(d,v,w={}){m.fetchers.set(d,v),pe({fetchers:new Map(m.fetchers)},{flushSync:(w&&w.flushSync)===!0})}function De(d,v,w,x={}){let P=ke(m.matches,v);Jt(d),pe({errors:{[P.route.id]:w},fetchers:new Map(m.fetchers)},{flushSync:(x&&x.flushSync)===!0})}function Nr(d){return N.set(d,(N.get(d)||0)+1),z.has(d)&&z.delete(d),m.fetchers.get(d)||Hn}function Fa(d,v){Oe(d,v==null?void 0:v.reason),_e(d,Ae(null))}function Jt(d){let v=m.fetchers.get(d);re.has(d)&&!(v&&v.state==="loading"&&p.has(d))&&Oe(d),j.delete(d),p.delete(d),S.delete(d),z.delete(d),ee.delete(d),m.fetchers.delete(d)}function ka(d){let v=(N.get(d)||0)-1;v<=0?(N.delete(d),z.add(d)):N.set(d,v),pe({fetchers:new Map(m.fetchers)})}function Oe(d,v){let w=re.get(d);w&&(w.abort(v),re.delete(d))}function $r(d){for(let v of d){let w=Nr(v),x=Ae(w.data);m.fetchers.set(v,x)}}function jr(){let d=[],v=!1;for(let w of S){let x=m.fetchers.get(w);W(x,`Expected fetcher: ${w}`),x.state==="loading"&&(S.delete(w),d.push(w),v=!0)}return $r(d),v}function Ur(d){let v=[];for(let[w,x]of p)if(x<d){let P=m.fetchers.get(w);W(P,`Expected fetcher: ${w}`),P.state==="loading"&&(Oe(w),p.delete(w),v.push(w))}return $r(v),v.length>0}function Na(d,v){let w=m.blockers.get(d)||it;return G.get(d)!==v&&G.set(d,v),w}function Hr(d){m.blockers.delete(d),G.delete(d)}function wt(d,v){let w=m.blockers.get(d)||it;W(w.state==="unblocked"&&v.state==="blocked"||w.state==="blocked"&&v.state==="blocked"||w.state==="blocked"&&v.state==="proceeding"||w.state==="blocked"&&v.state==="unblocked"||w.state==="proceeding"&&v.state==="unblocked",`Invalid blocker state transition: ${w.state} -> ${v.state}`);let x=new Map(m.blockers);x.set(d,v),pe({blockers:x})}function zr({currentLocation:d,nextLocation:v,historyAction:w}){if(G.size===0)return;G.size>1&&oe(!1,"A router only supports one blocker at a time");let x=Array.from(G.entries()),[P,I]=x[x.length-1],U=m.blockers.get(P);if(!(U&&U.state==="proceeding")&&I({currentLocation:d,nextLocation:v,historyAction:w}))return P}function Gt(d){let v=xe(404,{pathname:d}),w=s||l,{matches:x,route:P}=Ct(w);return{notFoundMatches:x,route:P,error:v}}function $a(d,v,w){if(E=d,R=v,C=w||null,!b&&m.navigation===er){b=!0;let x=Wr(m.location,m.matches);x!=null&&pe({restoreScrollPosition:x})}return()=>{E=null,R=null,C=null}}function Br(d,v){return C&&C(d,v.map(x=>_n(x,m.loaderData)))||d.key}function ja(d,v){if(E&&R){let w=Br(d,v);E[w]=R()}}function Wr(d,v){if(E){let w=Br(d,v),x=E[w];if(typeof x=="number")return x}return null}function Et(d,v,w){if(e.patchRoutesOnNavigation)if(d){if(Object.keys(d[0].params).length>0)return{active:!0,matches:ct(v,w,u,!0)}}else return{active:!0,matches:ct(v,w,u,!0)||[]};return{active:!1,matches:null}}async function Rt(d,v,w,x){if(!e.patchRoutesOnNavigation)return{type:"success",matches:d};let P=d;for(;;){let I=s==null,U=s||l,O=i;try{await e.patchRoutesOnNavigation({signal:w,path:v,matches:P,fetcherKey:x,patch:(Y,F)=>{w.aborted||sn(Y,F,U,O,o,!1)}})}catch(Y){return{type:"error",error:Y,partialMatches:P}}finally{I&&!w.aborted&&(l=[...l])}if(w.aborted)return{type:"aborted"};let A=Ie(U,v,u),$=null;if(A){if(Object.keys(A[0].params).length===0)return{type:"success",matches:A};if($=ct(U,v,u,!0),!($&&P.length<$.length&&Yr(P,$.slice(0,P.length))))return{type:"success",matches:A}}if($||($=ct(U,v,u,!0)),!$||Yr(P,$))return{type:"success",matches:null};P=$}}function Yr(d,v){return d.length===v.length&&d.every((w,x)=>w.route.id===v[x].route.id)}function Ua(d){i={},s=ht(d,o,void 0,i)}function Ha(d,v,w=!1){let x=s==null;sn(d,v,s||l,i,o,w),x&&(l=[...l],pe({}))}return _={get basename(){return u},get future(){return c},get state(){return m},get routes(){return l},get window(){return t},initialize:me,subscribe:Pa,enableScrollRestoration:$a,navigate:Ir,fetch:Oa,revalidate:Ta,createHref:d=>e.history.createHref(d),encodeLocation:d=>e.history.encodeLocation(d),getFetcher:Nr,resetFetcher:Fa,deleteFetcher:ka,dispose:Yt,getBlocker:Na,deleteBlocker:Hr,patchRoutes:Ha,_internalFetchControllers:re,_internalSetRoutes:Ua,_internalSetStateDoNotUseOrYouWillBreakYourApp(d){pe(d)}},e.unstable_instrumentations&&(_=Po(_,e.unstable_instrumentations.map(d=>d.router).filter(Boolean))),_}function No(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function lr(e,t,r,n,a,o){let i,l;if(a){i=[];for(let u of t)if(i.push(u),u.route.id===a){l=u;break}}else i=t,l=t[t.length-1];let s=Er(n||".",wr(i),be(e.pathname,r)||e.pathname,o==="path");if(n==null&&(s.search=e.search,s.hash=e.hash),(n==null||n===""||n===".")&&l){let u=br(s.search);if(l.route.index&&!u)s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index";else if(!l.route.index&&u){let h=new URLSearchParams(s.search),c=h.getAll("index");h.delete("index"),c.filter(g=>g).forEach(g=>h.append("index",g));let y=h.toString();s.search=y?`?${y}`:""}}return r!=="/"&&(s.pathname=go({basename:r,pathname:s.pathname})),Me(s)}function on(e,t,r){if(!r||!No(r))return{path:t};if(r.formMethod&&!ri(r.formMethod))return{path:t,error:xe(405,{method:r.formMethod})};let n=()=>({path:t,error:xe(400,{type:"invalid-body"})}),o=(r.formMethod||"get").toUpperCase(),i=Kn(t);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!ve(o))return n();let c=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((y,[g,E])=>`${y}${g}=${E}
27
- `,""):String(r.body);return{path:t,submission:{formMethod:o,formAction:i,formEncType:r.formEncType,formData:void 0,json:void 0,text:c}}}else if(r.formEncType==="application/json"){if(!ve(o))return n();try{let c=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:o,formAction:i,formEncType:r.formEncType,formData:void 0,json:c,text:void 0}}}catch{return n()}}}W(typeof FormData=="function","FormData is not available in this environment");let l,s;if(r.formData)l=cr(r.formData),s=r.formData;else if(r.body instanceof FormData)l=cr(r.body),s=r.body;else if(r.body instanceof URLSearchParams)l=r.body,s=hn(l);else if(r.body==null)l=new URLSearchParams,s=new FormData;else try{l=new URLSearchParams(r.body),s=hn(l)}catch{return n()}let u={formMethod:o,formAction:i,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:s,json:void 0,text:void 0};if(ve(u.formMethod))return{path:t,submission:u};let h=$e(t);return e&&h.search&&br(h.search)&&l.append("index",""),h.search=`?${l}`,{path:Me(h),submission:u}}function ln(e,t,r,n,a,o,i,l,s,u,h,c,y,g,E,C,R,b,L,D,k){var ue;let T=D?Re(D[1])?D[1].error:D[1].data:void 0,_=a.createURL(o.location),m=a.createURL(s),M;if(h&&o.errors){let X=Object.keys(o.errors)[0];M=i.findIndex(ee=>ee.route.id===X)}else if(D&&Re(D[1])){let X=D[0];M=i.findIndex(ee=>ee.route.id===X)-1}let H=D?D[1].statusCode:void 0,J=H&&H>=400,K={currentUrl:_,currentParams:((ue=o.matches[0])==null?void 0:ue.params)||{},nextUrl:m,nextParams:i[0].params,...l,actionResult:T,actionStatus:H},ae=pt(i),le=i.map((X,ee)=>{let{route:re}=X,ce=null;if(M!=null&&ee>M?ce=!1:re.lazy?ce=!0:Rr(re)?h?ce=sr(re,o.loaderData,o.errors):$o(o.loaderData,o.matches[ee],X)&&(ce=!0):ce=!1,ce!==null)return ur(r,n,e,ae,X,u,t,ce);let se=!1;typeof k=="boolean"?se=k:J?se=!1:(c||_.pathname+_.search===m.pathname+m.search||_.search!==m.search||jo(o.matches[ee],X))&&(se=!0);let p={...K,defaultShouldRevalidate:se},S=dt(X,p);return ur(r,n,e,ae,X,u,t,S,p,k)}),Q=[];return E.forEach((X,ee)=>{if(h||!i.some(z=>z.route.id===X.routeId)||g.has(ee))return;let re=o.fetchers.get(ee),ce=re&&re.state!=="idle"&&re.data===void 0,se=Ie(R,X.path,b);if(!se){if(L&&ce)return;Q.push({key:ee,routeId:X.routeId,path:X.path,matches:null,match:null,request:null,controller:null});return}if(C.has(ee))return;let p=Dt(se,X.path),S=new AbortController,j=Xe(a,X.path,S.signal),N=null;if(y.has(ee))y.delete(ee),N=Qe(r,n,j,se,p,u,t);else if(ce)c&&(N=Qe(r,n,j,se,p,u,t));else{let z;typeof k=="boolean"?z=k:J?z=!1:z=c;let G={...K,defaultShouldRevalidate:z};dt(p,G)&&(N=Qe(r,n,j,se,p,u,t,G))}N&&Q.push({key:ee,routeId:X.routeId,path:X.path,matches:N,match:p,request:j,controller:S})}),{dsMatches:le,revalidatingFetchers:Q}}function Rr(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function sr(e,t,r){if(e.lazy)return!0;if(!Rr(e))return!1;let n=t!=null&&e.id in t,a=r!=null&&r[e.id]!==void 0;return!n&&a?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!n&&!a}function $o(e,t,r){let n=!t||r.route.id!==t.route.id,a=!e.hasOwnProperty(r.route.id);return n||a}function jo(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function dt(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function sn(e,t,r,n,a,o){let i;if(e){let u=n[e];W(u,`No route found to patch children into: routeId = ${e}`),u.children||(u.children=[]),i=u.children}else i=r;let l=[],s=[];if(t.forEach(u=>{let h=i.find(c=>Wn(u,c));h?s.push({existingRoute:h,newRoute:u}):l.push(u)}),l.length>0){let u=ht(l,a,[e||"_","patch",String((i==null?void 0:i.length)||"0")],n);i.push(...u)}if(o&&s.length>0)for(let u=0;u<s.length;u++){let{existingRoute:h,newRoute:c}=s[u],y=h,[g]=ht([c],a,[],{},!0);Object.assign(y,{element:g.element?g.element:y.element,errorElement:g.errorElement?g.errorElement:y.errorElement,hydrateFallbackElement:g.hydrateFallbackElement?g.hydrateFallbackElement:y.hydrateFallbackElement})}}function Wn(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,n)=>{var a;return(a=t.children)==null?void 0:a.some(o=>Wn(r,o))}):!1}var un=new WeakMap,Yn=({key:e,route:t,manifest:r,mapRouteProperties:n})=>{let a=r[t.id];if(W(a,"No route found in manifest"),!a.lazy||typeof a.lazy!="object")return;let o=a.lazy[e];if(!o)return;let i=un.get(a);i||(i={},un.set(a,i));let l=i[e];if(l)return l;let s=(async()=>{let u=ro(e),c=a[e]!==void 0&&e!=="hasErrorBoundary";if(u)oe(!u,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),i[e]=Promise.resolve();else if(c)oe(!1,`Route "${a.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let y=await o();y!=null&&(Object.assign(a,{[e]:y}),Object.assign(a,n(a)))}typeof a.lazy=="object"&&(a.lazy[e]=void 0,Object.values(a.lazy).every(y=>y===void 0)&&(a.lazy=void 0))})();return i[e]=s,s},cn=new WeakMap;function Uo(e,t,r,n,a){let o=r[e.id];if(W(o,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy=="function"){let h=cn.get(o);if(h)return{lazyRoutePromise:h,lazyHandlerPromise:h};let c=(async()=>{W(typeof e.lazy=="function","No lazy route function found");let y=await e.lazy(),g={};for(let E in y){let C=y[E];if(C===void 0)continue;let R=ao(E),L=o[E]!==void 0&&E!=="hasErrorBoundary";R?oe(!R,"Route property "+E+" is not a supported property to be returned from a lazy route function. This property will be ignored."):L?oe(!L,`Route "${o.id}" has a static property "${E}" defined but its lazy function is also returning a value for this property. The lazy route property "${E}" will be ignored.`):g[E]=C}Object.assign(o,g),Object.assign(o,{...n(o),lazy:void 0})})();return cn.set(o,c),c.catch(()=>{}),{lazyRoutePromise:c,lazyHandlerPromise:c}}let i=Object.keys(e.lazy),l=[],s;for(let h of i){if(a&&a.includes(h))continue;let c=Yn({key:h,route:e,manifest:r,mapRouteProperties:n});c&&(l.push(c),h===t&&(s=c))}let u=l.length>0?Promise.all(l).then(()=>{}):void 0;return u==null||u.catch(()=>{}),s==null||s.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:s}}async function dn(e){let t=e.matches.filter(a=>a.shouldLoad),r={};return(await Promise.all(t.map(a=>a.resolve()))).forEach((a,o)=>{r[t[o].route.id]=a}),r}async function Ho(e){return e.matches.some(t=>t.route.middleware)?Vn(e,()=>dn(e)):dn(e)}function Vn(e,t){return zo(e,t,n=>{if(ti(n))throw n;return n},qo,r);function r(n,a,o){if(o)return Promise.resolve(Object.assign(o.value,{[a]:{type:"error",result:n}}));{let{matches:i}=e,l=Math.min(Math.max(i.findIndex(u=>u.route.id===a),0),Math.max(i.findIndex(u=>u.shouldCallHandler()),0)),s=ke(i,i[l].route.id).route.id;return Promise.resolve({[s]:{type:"error",result:n}})}}}async function zo(e,t,r,n,a){let{matches:o,request:i,params:l,context:s,unstable_pattern:u}=e,h=o.flatMap(y=>y.route.middleware?y.route.middleware.map(g=>[y.route.id,g]):[]);return await Jn({request:i,params:l,context:s,unstable_pattern:u},h,t,r,n,a)}async function Jn(e,t,r,n,a,o,i=0){let{request:l}=e;if(l.signal.aborted)throw l.signal.reason??new Error(`Request aborted: ${l.method} ${l.url}`);let s=t[i];if(!s)return await r();let[u,h]=s,c,y=async()=>{if(c)throw new Error("You may only call `next()` once per middleware");try{return c={value:await Jn(e,t,r,n,a,o,i+1)},c.value}catch(g){return c={value:await o(g,u,c)},c.value}};try{let g=await h(e,y),E=g!=null?n(g):void 0;return a(E)?E:c?E??c.value:(c={value:await y()},c.value)}catch(g){return await o(g,u,c)}}function Gn(e,t,r,n,a){let o=Yn({key:"middleware",route:n.route,manifest:t,mapRouteProperties:e}),i=Uo(n.route,ve(r.method)?"action":"loader",t,e,a);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function ur(e,t,r,n,a,o,i,l,s=null,u){let h=!1,c=Gn(e,t,r,a,o);return{...a,_lazyPromises:c,shouldLoad:l,shouldRevalidateArgs:s,shouldCallHandler(y){return h=!0,s?typeof u=="boolean"?dt(a,{...s,defaultShouldRevalidate:u}):typeof y=="boolean"?dt(a,{...s,defaultShouldRevalidate:y}):dt(a,s):l},resolve(y){let{lazy:g,loader:E,middleware:C}=a.route,R=h||l||y&&!ve(r.method)&&(g||E),b=C&&C.length>0&&!E&&!g;return R&&(ve(r.method)||!b)?Wo({request:r,unstable_pattern:n,match:a,lazyHandlerPromise:c==null?void 0:c.handler,lazyRoutePromise:c==null?void 0:c.route,handlerOverride:y,scopedContext:i}):Promise.resolve({type:"data",result:void 0})}}}function Qe(e,t,r,n,a,o,i,l=null){return n.map(s=>s.route.id!==a.route.id?{...s,shouldLoad:!1,shouldRevalidateArgs:l,shouldCallHandler:()=>!1,_lazyPromises:Gn(e,t,r,s,o),resolve:()=>Promise.resolve({type:"data",result:void 0})}:ur(e,t,r,pt(n),s,o,i,!0,l))}async function Bo(e,t,r,n,a,o){r.some(u=>{var h;return(h=u._lazyPromises)==null?void 0:h.middleware})&&await Promise.all(r.map(u=>{var h;return(h=u._lazyPromises)==null?void 0:h.middleware}));let i={request:t,unstable_pattern:pt(r),params:r[0].params,context:a,matches:r},s=await e({...i,fetcherKey:n,runClientMiddleware:u=>{let h=i;return Vn(h,()=>u({...h,fetcherKey:n,runClientMiddleware:()=>{throw new Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))}});try{await Promise.all(r.flatMap(u=>{var h,c;return[(h=u._lazyPromises)==null?void 0:h.handler,(c=u._lazyPromises)==null?void 0:c.route]}))}catch{}return s}async function Wo({request:e,unstable_pattern:t,match:r,lazyHandlerPromise:n,lazyRoutePromise:a,handlerOverride:o,scopedContext:i}){let l,s,u=ve(e.method),h=u?"action":"loader",c=y=>{let g,E=new Promise((b,L)=>g=L);s=()=>g(),e.signal.addEventListener("abort",s);let C=b=>typeof y!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${h}" [routeId: ${r.route.id}]`)):y({request:e,unstable_pattern:t,params:r.params,context:i},...b!==void 0?[b]:[]),R=(async()=>{try{return{type:"data",result:await(o?o(L=>C(L)):C())}}catch(b){return{type:"error",result:b}}})();return Promise.race([R,E])};try{let y=u?r.route.action:r.route.loader;if(n||a)if(y){let g,[E]=await Promise.all([c(y).catch(C=>{g=C}),n,a]);if(g!==void 0)throw g;l=E}else{await n;let g=u?r.route.action:r.route.loader;if(g)[l]=await Promise.all([c(g),a]);else if(h==="action"){let E=new URL(e.url),C=E.pathname+E.search;throw xe(405,{method:e.method,pathname:C,routeId:r.route.id})}else return{type:"data",result:void 0}}else if(y)l=await c(y);else{let g=new URL(e.url),E=g.pathname+g.search;throw xe(404,{pathname:E})}}catch(y){return{type:"error",result:y}}finally{s&&e.signal.removeEventListener("abort",s)}return l}async function Yo(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function Vo(e){var n,a,o,i,l;let{result:t,type:r}=e;if(jt(t)){let s;try{s=await Yo(t)}catch(u){return{type:"error",error:u}}return r==="error"?{type:"error",error:new je(t.status,t.statusText,s),statusCode:t.status,headers:t.headers}:{type:"data",data:s,statusCode:t.status,headers:t.headers}}return r==="error"?dr(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:(n=t.init)==null?void 0:n.status,headers:(a=t.init)!=null&&a.headers?new Headers(t.init.headers):void 0}:{type:"error",error:Xo(t),statusCode:Ve(t)?t.status:void 0,headers:(o=t.init)!=null&&o.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:Ve(t)?t.status:void 0}:dr(t)?{type:"data",data:t.data,statusCode:(i=t.init)==null?void 0:i.status,headers:(l=t.init)!=null&&l.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function Jo(e,t,r,n,a){let o=e.headers.get("Location");if(W(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!$t(o)){let i=n.slice(0,n.findIndex(l=>l.route.id===r)+1);o=lr(new URL(t.url),i,a,o),e.headers.set("Location",o)}return e}function fn(e,t,r){if($t(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),o=be(a.pathname,r)!=null;if(a.origin===t.origin&&o)return a.pathname+a.search+a.hash}return e}function Xe(e,t,r,n){let a=e.createURL(Kn(t)).toString(),o={signal:r};if(n&&ve(n.formMethod)){let{formMethod:i,formEncType:l}=n;o.method=i.toUpperCase(),l==="application/json"?(o.headers=new Headers({"Content-Type":l}),o.body=JSON.stringify(n.json)):l==="text/plain"?o.body=n.text:l==="application/x-www-form-urlencoded"&&n.formData?o.body=cr(n.formData):o.body=n.formData}return new Request(a,o)}function cr(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function hn(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Go(e,t,r,n=!1,a=!1){let o={},i=null,l,s=!1,u={},h=r&&Re(r[1])?r[1].error:void 0;return e.forEach(c=>{if(!(c.route.id in t))return;let y=c.route.id,g=t[y];if(W(!Ye(g),"Cannot handle redirect results in processLoaderData"),Re(g)){let E=g.error;if(h!==void 0&&(E=h,h=void 0),i=i||{},a)i[y]=E;else{let C=ke(e,y);i[C.route.id]==null&&(i[C.route.id]=E)}n||(o[y]=Bn),s||(s=!0,l=Ve(g.error)?g.error.status:500),g.headers&&(u[y]=g.headers)}else o[y]=g.data,g.statusCode&&g.statusCode!==200&&!s&&(l=g.statusCode),g.headers&&(u[y]=g.headers)}),h!==void 0&&r&&(i={[r[0]]:h},r[2]&&(o[r[2]]=void 0)),{loaderData:o,errors:i,statusCode:l||200,loaderHeaders:u}}function mn(e,t,r,n,a,o){let{loaderData:i,errors:l}=Go(t,r,n);return a.filter(s=>!s.matches||s.matches.some(u=>u.shouldLoad)).forEach(s=>{let{key:u,match:h,controller:c}=s;if(c&&c.signal.aborted)return;let y=o[u];if(W(y,"Did not find corresponding fetcher result"),Re(y)){let g=ke(e.matches,h==null?void 0:h.route.id);l&&l[g.route.id]||(l={...l,[g.route.id]:y.error}),e.fetchers.delete(u)}else if(Ye(y))W(!1,"Unhandled fetcher revalidation redirect");else{let g=Ae(y.data);e.fetchers.set(u,g)}}),{loaderData:i,errors:l}}function pn(e,t,r,n){let a=Object.entries(t).filter(([,o])=>o!==Bn).reduce((o,[i,l])=>(o[i]=l,o),{});for(let o of r){let i=o.route.id;if(!t.hasOwnProperty(i)&&e.hasOwnProperty(i)&&o.route.loader&&(a[i]=e[i]),n&&n.hasOwnProperty(i))break}return a}function yn(e){return e?Re(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function ke(e,t){return(t?e.slice(0,e.findIndex(n=>n.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function Ct(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function xe(e,{pathname:t,routeId:r,method:n,type:a,message:o}={}){let i="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(i="Bad Request",n&&t&&r?l=`You made a ${n} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:a==="invalid-body"&&(l="Unable to encode submission body")):e===403?(i="Forbidden",l=`Route "${r}" does not match URL "${t}"`):e===404?(i="Not Found",l=`No route matches URL "${t}"`):e===405&&(i="Method Not Allowed",n&&t&&r?l=`You made a ${n.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:n&&(l=`Invalid request method "${n.toUpperCase()}"`)),new je(e||500,i,new Error(l),!0)}function Lt(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,a]=t[r];if(Ye(a))return{key:n,result:a}}}function Kn(e){let t=typeof e=="string"?$e(e):e;return Me({...t,hash:""})}function Ko(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Xo(e){var t,r;return new je(((t=e.init)==null?void 0:t.status)??500,((r=e.init)==null?void 0:r.statusText)??"Internal Server Error",e.data)}function qo(e){return e!=null&&typeof e=="object"&&Object.entries(e).every(([t,r])=>typeof t=="string"&&Qo(r))}function Qo(e){return e!=null&&typeof e=="object"&&"type"in e&&"result"in e&&(e.type==="data"||e.type==="error")}function Zo(e){return jt(e.result)&&Un.has(e.result.status)}function Re(e){return e.type==="error"}function Ye(e){return(e&&e.type)==="redirect"}function dr(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function jt(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function ei(e){return Un.has(e)}function ti(e){return jt(e)&&ei(e.status)&&e.headers.has("Location")}function ri(e){return Io.has(e.toUpperCase())}function ve(e){return Oo.has(e.toUpperCase())}function br(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function Dt(e,t){let r=typeof t=="string"?$e(t).search:t.search;if(e[e.length-1].route.index&&br(r||""))return e[e.length-1];let n=Fn(e);return n[n.length-1]}function vn(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(o!=null)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function tr(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function ni(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function lt(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function ai(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function Ae(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function oi(e,t){try{let r=e.sessionStorage.getItem(zn);if(r){let n=JSON.parse(r);for(let[a,o]of Object.entries(n||{}))o&&Array.isArray(o)&&t.set(a,new Set(o||[]))}}catch{}}function ii(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(zn,JSON.stringify(r))}catch(n){oe(!1,`Failed to save applied view transitions in sessionStorage (${n}).`)}}}function gn(){let e,t,r=new Promise((n,a)=>{e=async o=>{n(o);try{await r}catch{}},t=async o=>{a(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}var Je=f.createContext(null);Je.displayName="DataRouter";var Ze=f.createContext(null);Ze.displayName="DataRouterState";var Xn=f.createContext(!1);function qn(){return f.useContext(Xn)}var Sr=f.createContext({isTransitioning:!1});Sr.displayName="ViewTransition";var xr=f.createContext(new Map);xr.displayName="Fetchers";var li=f.createContext(null);li.displayName="Await";var Ee=f.createContext(null);Ee.displayName="Navigation";var Ut=f.createContext(null);Ut.displayName="Location";var Ce=f.createContext({outlet:null,matches:[],isDataRoute:!1});Ce.displayName="Route";var Cr=f.createContext(null);Cr.displayName="RouteError";var Qn="REACT_ROUTER_ERROR",si="REDIRECT",ui="ROUTE_ERROR_RESPONSE";function ci(e){if(e.startsWith(`${Qn}:${si}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function di(e){if(e.startsWith(`${Qn}:${ui}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new je(t.status,t.statusText,t.data)}catch{}}function fi(e,{relative:t}={}){W(yt(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:n}=f.useContext(Ee),{hash:a,pathname:o,search:i}=vt(e,{relative:t}),l=o;return r!=="/"&&(l=o==="/"?r:Te([r,o])),n.createHref({pathname:l,search:i,hash:a})}function yt(){return f.useContext(Ut)!=null}function Le(){return W(yt(),"useLocation() may be used only in the context of a <Router> component."),f.useContext(Ut).location}var Zn="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function ea(e){f.useContext(Ee).static||f.useLayoutEffect(e)}function ta(){let{isDataRoute:e}=f.useContext(Ce);return e?Ti():hi()}function hi(){W(yt(),"useNavigate() may be used only in the context of a <Router> component.");let e=f.useContext(Je),{basename:t,navigator:r}=f.useContext(Ee),{matches:n}=f.useContext(Ce),{pathname:a}=Le(),o=JSON.stringify(wr(n)),i=f.useRef(!1);return ea(()=>{i.current=!0}),f.useCallback((s,u={})=>{if(oe(i.current,Zn),!i.current)return;if(typeof s=="number"){r.go(s);return}let h=Er(s,JSON.parse(o),a,u.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:Te([t,h.pathname])),(u.replace?r.replace:r.push)(h,u.state,u)},[t,r,o,a,e])}var mi=f.createContext(null);function pi(e){let t=f.useContext(Ce).outlet;return f.useMemo(()=>t&&f.createElement(mi.Provider,{value:e},t),[t,e])}function yi(){let{matches:e}=f.useContext(Ce),t=e[e.length-1];return t?t.params:{}}function vt(e,{relative:t}={}){let{matches:r}=f.useContext(Ce),{pathname:n}=Le(),a=JSON.stringify(wr(r));return f.useMemo(()=>Er(e,JSON.parse(a),n,t==="path"),[e,a,n,t])}function vi(e,t,r,n,a){W(yt(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:o}=f.useContext(Ee),{matches:i}=f.useContext(Ce),l=i[i.length-1],s=l?l.params:{},u=l?l.pathname:"/",h=l?l.pathnameBase:"/",c=l&&l.route;{let L=c&&c.path||"";oa(u,!c||L.endsWith("*")||L.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${u}" (under <Route path="${L}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
28
-
29
- Please change the parent <Route path="${L}"> to <Route path="${L==="/"?"*":`${L}/*`}">.`)}let y=Le(),g;g=y;let E=g.pathname||"/",C=E;if(h!=="/"){let L=h.replace(/^\//,"").split("/");C="/"+E.replace(/^\//,"").split("/").slice(L.length).join("/")}let R=Ie(e,{pathname:C});return oe(c||R!=null,`No routes matched location "${g.pathname}${g.search}${g.hash}" `),oe(R==null||R[R.length-1].route.element!==void 0||R[R.length-1].route.Component!==void 0||R[R.length-1].route.lazy!==void 0,`Matched leaf route at location "${g.pathname}${g.search}${g.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`),bi(R&&R.map(L=>Object.assign({},L,{params:Object.assign({},s,L.params),pathname:Te([h,o.encodeLocation?o.encodeLocation(L.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:L.pathname]),pathnameBase:L.pathnameBase==="/"?h:Te([h,o.encodeLocation?o.encodeLocation(L.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:L.pathnameBase])})),i,r,n,a)}function gi(){let e=aa(),t=Ve(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:n},o={padding:"2px 4px",backgroundColor:n},i=null;return console.error("Error handled by React Router default ErrorBoundary:",e),i=f.createElement(f.Fragment,null,f.createElement("p",null,"💿 Hey developer 👋"),f.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",f.createElement("code",{style:o},"ErrorBoundary")," or"," ",f.createElement("code",{style:o},"errorElement")," prop on your route.")),f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},t),r?f.createElement("pre",{style:a},r):null,i)}var wi=f.createElement(gi,null),ra=class extends f.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const r=di(e.digest);r&&(e=r)}let t=e!==void 0?f.createElement(Ce.Provider,{value:this.props.routeContext},f.createElement(Cr.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?f.createElement(Ei,{error:e},t):t}};ra.contextType=Xn;var rr=new WeakMap;function Ei({children:e,error:t}){let{basename:r}=f.useContext(Ee);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let n=ci(t.digest);if(n){let a=rr.get(t);if(a)throw a;let o=Nn(n.location,r);if(kn&&!rr.get(t))if(o.isExternal||n.reloadDocument)window.location.href=o.absoluteURL||o.to;else{const i=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(o.to,{replace:n.replace}));throw rr.set(t,i),i}return f.createElement("meta",{httpEquiv:"refresh",content:`0;url=${o.absoluteURL||o.to}`})}}return e}function Ri({routeContext:e,match:t,children:r}){let n=f.useContext(Je);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),f.createElement(Ce.Provider,{value:e},r)}function bi(e,t=[],r=null,n=null,a=null){if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,i=r==null?void 0:r.errors;if(i!=null){let h=o.findIndex(c=>c.route.id&&(i==null?void 0:i[c.route.id])!==void 0);W(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),o=o.slice(0,Math.min(o.length,h+1))}let l=!1,s=-1;if(r)for(let h=0;h<o.length;h++){let c=o[h];if((c.route.HydrateFallback||c.route.hydrateFallbackElement)&&(s=h),c.route.id){let{loaderData:y,errors:g}=r,E=c.route.loader&&!y.hasOwnProperty(c.route.id)&&(!g||g[c.route.id]===void 0);if(c.route.lazy||E){l=!0,s>=0?o=o.slice(0,s+1):o=[o[0]];break}}}let u=r&&n?(h,c)=>{var y,g;n(h,{location:r.location,params:((g=(y=r.matches)==null?void 0:y[0])==null?void 0:g.params)??{},unstable_pattern:pt(r.matches),errorInfo:c})}:void 0;return o.reduceRight((h,c,y)=>{let g,E=!1,C=null,R=null;r&&(g=i&&c.route.id?i[c.route.id]:void 0,C=c.route.errorElement||wi,l&&(s<0&&y===0?(oa("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),E=!0,R=null):s===y&&(E=!0,R=c.route.hydrateFallbackElement||null)));let b=t.concat(o.slice(0,y+1)),L=()=>{let D;return g?D=C:E?D=R:c.route.Component?D=f.createElement(c.route.Component,null):c.route.element?D=c.route.element:D=h,f.createElement(Ri,{match:c,routeContext:{outlet:h,matches:b,isDataRoute:r!=null},children:D})};return r&&(c.route.ErrorBoundary||c.route.errorElement||y===0)?f.createElement(ra,{location:r.location,revalidation:r.revalidation,component:C,error:g,children:L(),routeContext:{outlet:null,matches:b,isDataRoute:!0},onError:u}):L()},null)}function Lr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function na(e){let t=f.useContext(Je);return W(t,Lr(e)),t}function et(e){let t=f.useContext(Ze);return W(t,Lr(e)),t}function Si(e){let t=f.useContext(Ce);return W(t,Lr(e)),t}function gt(e){let t=Si(e),r=t.matches[t.matches.length-1];return W(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}function xi(){return gt("useRouteId")}function Ci(){return et("useNavigation").navigation}function hs(){let e=na("useRevalidator"),t=et("useRevalidator"),r=f.useCallback(async()=>{await e.router.revalidate()},[e.router]);return f.useMemo(()=>({revalidate:r,state:t.revalidation}),[r,t.revalidation])}function Pr(){let{matches:e,loaderData:t}=et("useMatches");return f.useMemo(()=>e.map(r=>_n(r,t)),[e,t])}function Li(){let e=et("useLoaderData"),t=gt("useLoaderData");return e.loaderData[t]}function Pi(){let e=et("useActionData"),t=gt("useLoaderData");return e.actionData?e.actionData[t]:void 0}function aa(){var n;let e=f.useContext(Cr),t=et("useRouteError"),r=gt("useRouteError");return e!==void 0?e:(n=t.errors)==null?void 0:n[r]}function Ti(){let{router:e}=na("useNavigate"),t=gt("useNavigate"),r=f.useRef(!1);return ea(()=>{r.current=!0}),f.useCallback(async(a,o={})=>{oe(r.current,Zn),r.current&&(typeof a=="number"?await e.navigate(a):await e.navigate(a,{fromRouteId:t,...o}))},[e,t])}var wn={};function oa(e,t,r){!t&&!wn[e]&&(wn[e]=!0,oe(!1,r))}var En={};function fr(e,t){!e&&!En[t]&&(En[t]=!0,console.warn(t))}var Mi="useOptimistic",Rn=Xa[Mi],_i=()=>{};function Di(e){return Rn?Rn(e):[e,_i]}function ms(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&oe(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:f.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&oe(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:f.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&oe(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:f.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var ps=["HydrateFallback","hydrateFallbackElement"],Oi=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",e(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",t(r))}})}};function ys({router:e,flushSync:t,onError:r,unstable_useTransitions:n}){n=qn()||n;let[o,i]=f.useState(e.state),[l,s]=Di(o),[u,h]=f.useState(),[c,y]=f.useState({isTransitioning:!1}),[g,E]=f.useState(),[C,R]=f.useState(),[b,L]=f.useState(),D=f.useRef(new Map),k=f.useCallback((M,{deletedFetchers:H,newErrors:J,flushSync:K,viewTransitionOpts:ae})=>{J&&r&&Object.values(J).forEach(Q=>{var ue;return r(Q,{location:M.location,params:((ue=M.matches[0])==null?void 0:ue.params)??{},unstable_pattern:pt(M.matches)})}),M.fetchers.forEach((Q,ue)=>{Q.data!==void 0&&D.current.set(ue,Q.data)}),H.forEach(Q=>D.current.delete(Q)),fr(K===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let le=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition=="function";if(fr(ae==null||le,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!ae||!le){t&&K?t(()=>i(M)):n===!1?i(M):f.startTransition(()=>{n===!0&&s(Q=>bn(Q,M)),i(M)});return}if(t&&K){t(()=>{C&&(g==null||g.resolve(),C.skipTransition()),y({isTransitioning:!0,flushSync:!0,currentLocation:ae.currentLocation,nextLocation:ae.nextLocation})});let Q=e.window.document.startViewTransition(()=>{t(()=>i(M))});Q.finished.finally(()=>{t(()=>{E(void 0),R(void 0),h(void 0),y({isTransitioning:!1})})}),t(()=>R(Q));return}C?(g==null||g.resolve(),C.skipTransition(),L({state:M,currentLocation:ae.currentLocation,nextLocation:ae.nextLocation})):(h(M),y({isTransitioning:!0,flushSync:!1,currentLocation:ae.currentLocation,nextLocation:ae.nextLocation}))},[e.window,t,C,g,n,s,r]);f.useLayoutEffect(()=>e.subscribe(k),[e,k]),f.useEffect(()=>{c.isTransitioning&&!c.flushSync&&E(new Oi)},[c]),f.useEffect(()=>{if(g&&u&&e.window){let M=u,H=g.promise,J=e.window.document.startViewTransition(async()=>{n===!1?i(M):f.startTransition(()=>{n===!0&&s(K=>bn(K,M)),i(M)}),await H});J.finished.finally(()=>{E(void 0),R(void 0),h(void 0),y({isTransitioning:!1})}),R(J)}},[u,g,e.window,n,s]),f.useEffect(()=>{g&&u&&l.location.key===u.location.key&&g.resolve()},[g,C,l.location,u]),f.useEffect(()=>{!c.isTransitioning&&b&&(h(b.state),y({isTransitioning:!0,flushSync:!1,currentLocation:b.currentLocation,nextLocation:b.nextLocation}),L(void 0))},[c.isTransitioning,b]);let T=f.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:M=>e.navigate(M),push:(M,H,J)=>e.navigate(M,{state:H,preventScrollReset:J==null?void 0:J.preventScrollReset}),replace:(M,H,J)=>e.navigate(M,{replace:!0,state:H,preventScrollReset:J==null?void 0:J.preventScrollReset})}),[e]),_=e.basename||"/",m=f.useMemo(()=>({router:e,navigator:T,static:!1,basename:_,onError:r}),[e,T,_,r]);return f.createElement(f.Fragment,null,f.createElement(Je.Provider,{value:m},f.createElement(Ze.Provider,{value:l},f.createElement(xr.Provider,{value:D.current},f.createElement(Sr.Provider,{value:c},f.createElement(Fi,{basename:_,location:l.location,navigationType:l.historyAction,navigator:T,unstable_useTransitions:n},f.createElement(Ai,{routes:e.routes,future:e.future,state:l,onError:r})))))),null)}function bn(e,t){return{...e,navigation:t.navigation.state!=="idle"?t.navigation:e.navigation,revalidation:t.revalidation!=="idle"?t.revalidation:e.revalidation,actionData:t.navigation.state!=="submitting"?t.actionData:e.actionData,fetchers:t.fetchers}}var Ai=f.memo(Ii);function Ii({routes:e,future:t,state:r,onError:n}){return vi(e,void 0,r,n,t)}function vs(e){return pi(e.context)}function Fi({basename:e="/",children:t=null,location:r,navigationType:n="POP",navigator:a,static:o=!1,unstable_useTransitions:i}){W(!yt(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),s=f.useMemo(()=>({basename:l,navigator:a,static:o,unstable_useTransitions:i,future:{}}),[l,a,o,i]);typeof r=="string"&&(r=$e(r));let{pathname:u="/",search:h="",hash:c="",state:y=null,key:g="default"}=r,E=f.useMemo(()=>{let C=be(u,l);return C==null?null:{location:{pathname:C,search:h,hash:c,state:y,key:g},navigationType:n}},[l,u,h,c,y,g,n]);return oe(E!=null,`<Router basename="${l}"> is not able to match the URL "${u}${h}${c}" because it does not start with the basename, so the <Router> won't render anything.`),E==null?null:f.createElement(Ee.Provider,{value:s},f.createElement(Ut.Provider,{children:t,value:E}))}function ki(){return{params:yi(),loaderData:Li(),actionData:Pi(),matches:Pr()}}function gs(e){return function(){const r=ki();return f.createElement(e,r)}}var Ot="get",At="application/x-www-form-urlencoded";function Ht(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function Ni(e){return Ht(e)&&e.tagName.toLowerCase()==="button"}function $i(e){return Ht(e)&&e.tagName.toLowerCase()==="form"}function ji(e){return Ht(e)&&e.tagName.toLowerCase()==="input"}function Ui(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Hi(e,t){return e.button===0&&(!t||t==="_self")&&!Ui(e)}function hr(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function zi(e,t){let r=hr(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(o=>{r.append(a,o)})}),r}var Pt=null;function Bi(){if(Pt===null)try{new FormData(document.createElement("form"),0),Pt=!1}catch{Pt=!0}return Pt}var Wi=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function nr(e){return e!=null&&!Wi.has(e)?(oe(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${At}"`),null):e}function Yi(e,t){let r,n,a,o,i;if($i(e)){let l=e.getAttribute("action");n=l?be(l,t):null,r=e.getAttribute("method")||Ot,a=nr(e.getAttribute("enctype"))||At,o=new FormData(e)}else if(Ni(e)||ji(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||l.getAttribute("action");if(n=s?be(s,t):null,r=e.getAttribute("formmethod")||l.getAttribute("method")||Ot,a=nr(e.getAttribute("formenctype"))||nr(l.getAttribute("enctype"))||At,o=new FormData(l,e),!Bi()){let{name:u,type:h,value:c}=e;if(h==="image"){let y=u?`${u}.`:"";o.append(`${y}x`,"0"),o.append(`${y}y`,"0")}else u&&o.append(u,c)}}else{if(Ht(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=Ot,n=null,a=At,i=e}return o&&a==="text/plain"&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}var Vi=-1,Ji=-2,Gi=-3,Ki=-4,Xi=-5,qi=-6,Qi=-7,Zi="B",el="D",ia="E",tl="M",rl="N",la="P",nl="R",al="S",ol="Y",il="U",ll="Z",sa=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function sl(){const e=new TextDecoder;let t="";return new TransformStream({transform(r,n){const a=e.decode(r,{stream:!0}),o=(t+a).split(`
30
- `);t=o.pop()||"";for(const i of o)n.enqueue(i)},flush(r){t&&r.enqueue(t)}})}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var ar=typeof window<"u"?window:typeof globalThis<"u"?globalThis:void 0;function mr(e){const{hydrated:t,values:r}=this;if(typeof e=="number")return Sn.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;const n=r.length;for(const a of e)r.push(a);return t.length=r.length,Sn.call(this,n)}function Sn(e){const{hydrated:t,values:r,deferred:n,plugins:a}=this;let o;const i=[[e,s=>{o=s}]];let l=[];for(;i.length>0;){const[s,u]=i.pop();switch(s){case Qi:u(void 0);continue;case Xi:u(null);continue;case Ji:u(NaN);continue;case qi:u(1/0);continue;case Gi:u(-1/0);continue;case Ki:u(-0);continue}if(t[s]){u(t[s]);continue}const h=r[s];if(!h||typeof h!="object"){t[s]=h,u(h);continue}if(Array.isArray(h))if(typeof h[0]=="string"){const[c,y,g]=h;switch(c){case el:u(t[s]=new Date(y));continue;case il:u(t[s]=new URL(y));continue;case Zi:u(t[s]=BigInt(y));continue;case nl:u(t[s]=new RegExp(y,g));continue;case ol:u(t[s]=Symbol.for(y));continue;case al:const E=new Set;t[s]=E;for(let k=h.length-1;k>0;k--)i.push([h[k],T=>{E.add(T)}]);u(E);continue;case tl:const C=new Map;t[s]=C;for(let k=h.length-2;k>0;k-=2){const T=[];i.push([h[k+1],_=>{T[1]=_}]),i.push([h[k],_=>{T[0]=_}]),l.push(()=>{C.set(T[0],T[1])})}u(C);continue;case rl:const R=Object.create(null);t[s]=R;for(const k of Object.keys(y).reverse()){const T=[];i.push([y[k],_=>{T[1]=_}]),i.push([Number(k.slice(1)),_=>{T[0]=_}]),l.push(()=>{R[T[0]]=T[1]})}u(R);continue;case la:if(t[y])u(t[s]=t[y]);else{const k=new sa;n[y]=k,u(t[s]=k.promise)}continue;case ia:const[,b,L]=h;let D=L&&ar&&ar[L]?new ar[L](b):new Error(b);t[s]=D,u(D);continue;case ll:u(t[s]=t[y]);continue;default:if(Array.isArray(a)){const k=[],T=h.slice(1);for(let _=0;_<T.length;_++){const m=T[_];i.push([m,M=>{k[_]=M}])}l.push(()=>{for(const _ of a){const m=_(h[0],...k);if(m){u(t[s]=m.value);return}}throw new SyntaxError});continue}throw new SyntaxError}}else{const c=[];t[s]=c;for(let y=0;y<h.length;y++){const g=h[y];g!==Vi&&i.push([g,E=>{c[y]=E}])}u(c);continue}else{const c={};t[s]=c;for(const y of Object.keys(h).reverse()){const g=[];i.push([h[y],E=>{g[1]=E}]),i.push([Number(y.slice(1)),E=>{g[0]=E}]),l.push(()=>{c[g[0]]=g[1]})}u(c);continue}}for(;l.length>0;)l.pop()();return o}async function ul(e,t){const{plugins:r}=t??{},n=new sa,a=e.pipeThrough(sl()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:r},i=await cl.call(o,a);let l=n.promise;return i.done?n.resolve():l=dl.call(o,a).then(n.resolve).catch(s=>{for(const u of Object.values(o.deferred))u.reject(s);n.reject(s)}),{done:l.then(()=>a.closed),value:i.value}}async function cl(e){const t=await e.read();if(!t.value)throw new SyntaxError;let r;try{r=JSON.parse(t.value)}catch{throw new SyntaxError}return{done:t.done,value:mr.call(this,r)}}async function dl(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;const r=t.value;switch(r[0]){case la:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),o=this.deferred[a];if(!o)throw new Error(`Deferred ID ${a} not found in stream`);const i=r.slice(n+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=mr.call(this,l);o.resolve(s);break}case ia:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),o=this.deferred[a];if(!o)throw new Error(`Deferred ID ${a} not found in stream`);const i=r.slice(n+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=mr.call(this,l);o.reject(s);break}default:throw new SyntaxError}t=await e.read()}}async function fl(e){let t={signal:e.signal};if(e.method!=="GET"){t.method=e.method;let r=e.headers.get("Content-Type");r&&/\bapplication\/json\b/.test(r)?(t.headers={"Content-Type":r},t.body=JSON.stringify(await e.json())):r&&/\btext\/plain\b/.test(r)?(t.headers={"Content-Type":r},t.body=await e.text()):r&&/\bapplication\/x-www-form-urlencoded\b/.test(r)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}var hl={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},ml=/[&><\u2028\u2029]/g;function pl(e){return e.replace(ml,t=>hl[t])}function we(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}var pr=Symbol("SingleFetchRedirect"),ua=class extends Error{},yl=202,vl=new Set([100,101,204,205]);function ws(e,t,r,n,a){let o=gl(e,i=>{let l=t.routes[i.route.id];we(l,"Route not found in manifest");let s=r[i.route.id];return{hasLoader:l.hasLoader,hasClientLoader:l.hasClientLoader,hasShouldRevalidate:!!(s!=null&&s.shouldRevalidate)}},Cl,n,a);return async i=>i.runClientMiddleware(o)}function gl(e,t,r,n,a,o=()=>!0){return async i=>{let{request:l,matches:s,fetcherKey:u}=i,h=e();if(l.method!=="GET")return wl(i,r,a);let c=s.some(y=>{let{hasLoader:g,hasClientLoader:E}=t(y);return y.shouldCallHandler()&&g&&!E});return!n&&!c?El(i,t,r,a):u?Sl(i,r,a):Rl(i,h,t,r,n,a,o)}}async function wl(e,t,r){let n=e.matches.find(i=>i.shouldCallHandler());we(n,"No action match found");let a,o=await n.resolve(async i=>await i(async()=>{let{data:s,status:u}=await t(e,r,[n.route.id]);return a=u,mt(s,n.route.id)}));return jt(o.result)||Ve(o.result)||dr(o.result)?{[n.route.id]:o}:{[n.route.id]:{type:o.type,result:xo(o.result,a)}}}async function El(e,t,r,n){let a=e.matches.filter(i=>i.shouldCallHandler()),o={};return await Promise.all(a.map(i=>i.resolve(async l=>{try{let{hasClientLoader:s}=t(i),u=i.route.id,h=s?await l(async()=>{let{data:c}=await r(e,n,[u]);return mt(c,u)}):await l();o[i.route.id]={type:"data",result:h}}catch(s){o[i.route.id]={type:"error",result:s}}}))),o}async function Rl(e,t,r,n,a,o,i=()=>!0){let l=new Set,s=!1,u=e.matches.map(()=>xn()),h=xn(),c={},y=Promise.all(e.matches.map(async(E,C)=>E.resolve(async R=>{u[C].resolve();let b=E.route.id,{hasLoader:L,hasClientLoader:D,hasShouldRevalidate:k}=r(E),T=!E.shouldRevalidateArgs||E.shouldRevalidateArgs.actionStatus==null||E.shouldRevalidateArgs.actionStatus<400;if(!E.shouldCallHandler(T)){s||(s=E.shouldRevalidateArgs!=null&&L&&k===!0);return}if(i(E)&&D){L&&(s=!0);try{let m=await R(async()=>{let{data:M}=await n(e,o,[b]);return mt(M,b)});c[b]={type:"data",result:m}}catch(m){c[b]={type:"error",result:m}}return}L&&l.add(b);try{let m=await R(async()=>{let M=await h.promise;return mt(M,b)});c[b]={type:"data",result:m}}catch(m){c[b]={type:"error",result:m}}})));if(await Promise.all(u.map(E=>E.promise)),(!t.state.initialized&&t.state.navigation.state==="idle"||l.size===0)&&!window.__reactRouterHdrActive)h.resolve({routes:{}});else{let E=a&&s&&l.size>0?[...l.keys()]:void 0;try{let C=await n(e,o,E);h.resolve(C.data)}catch(C){h.reject(C)}}return await y,await bl(h.promise,e.matches,l,c),c}async function bl(e,t,r,n){var a;try{let o,i=await e;if("routes"in i){for(let l of t)if(l.route.id in i.routes){let s=i.routes[l.route.id];if("error"in s){o=s.error,((a=n[l.route.id])==null?void 0:a.result)==null&&(n[l.route.id]={type:"error",result:o});break}}}o!==void 0&&Array.from(r.values()).forEach(l=>{n[l].result instanceof ua&&(n[l].result=o)})}catch{}}async function Sl(e,t,r){let n=e.matches.find(i=>i.shouldCallHandler());we(n,"No fetcher match found");let a=n.route.id,o=await n.resolve(async i=>i(async()=>{let{data:l}=await t(e,r,[a]);return mt(l,a)}));return{[n.route.id]:o}}function xl(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let n of t)n&&r.push(n);for(let n of r)e.searchParams.append("index",n);return e}function ca(e,t,r){let n=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return n.pathname==="/"?n.pathname=`_root.${r}`:t&&be(n.pathname,t)==="/"?n.pathname=`${t.replace(/\/$/,"")}/_root.${r}`:n.pathname=`${n.pathname.replace(/\/$/,"")}.${r}`,n}async function Cl(e,t,r){let{request:n}=e,a=ca(n.url,t,"data");n.method==="GET"&&(a=xl(a),r&&a.searchParams.set("_routes",r.join(",")));let o=await fetch(a,await fl(n));if(o.status>=400&&!o.headers.has("X-Remix-Response"))throw new je(o.status,o.statusText,await o.text());if(o.status===204&&o.headers.has("X-Remix-Redirect"))return{status:yl,data:{redirect:{redirect:o.headers.get("X-Remix-Redirect"),status:Number(o.headers.get("X-Remix-Status")||"302"),revalidate:o.headers.get("X-Remix-Revalidate")==="true",reload:o.headers.get("X-Remix-Reload-Document")==="true",replace:o.headers.get("X-Remix-Replace")==="true"}}};if(vl.has(o.status)){let i={};return r&&n.method!=="GET"&&(i[r[0]]={data:void 0}),{status:o.status,data:{routes:i}}}we(o.body,"No response body to decode");try{let i=await Ll(o.body,window),l;if(n.method==="GET"){let s=i.value;pr in s?l={redirect:s[pr]}:l={routes:s}}else{let s=i.value,u=r==null?void 0:r[0];we(u,"No routeId found for single fetch call decoding"),"redirect"in s?l={redirect:s}:l={routes:{[u]:s}}}return{status:o.status,data:l}}catch{throw new Error("Unable to decode turbo-stream response")}}function Ll(e,t){return ul(e,{plugins:[(r,...n)=>{if(r==="SanitizedError"){let[a,o,i]=n,l=Error;a&&a in t&&typeof t[a]=="function"&&(l=t[a]);let s=new l(o);return s.stack=i,{value:s}}if(r==="ErrorResponse"){let[a,o,i]=n;return{value:new je(o,i,a)}}if(r==="SingleFetchRedirect")return{value:{[pr]:n[0]}};if(r==="SingleFetchClassInstance")return{value:n[0]};if(r==="SingleFetchFallback")return{value:void 0}}]})}function mt(e,t){if("redirect"in e){let{redirect:n,revalidate:a,reload:o,replace:i,status:l}=e.redirect;throw Co(n,{status:l,headers:{...a?{"X-Remix-Revalidate":"yes"}:null,...o?{"X-Remix-Reload-Document":"yes"}:null,...i?{"X-Remix-Replace":"yes"}:null}})}let r=e.routes[t];if(r==null)throw new ua(`No result found for routeId "${t}"`);if("error"in r)throw r.error;if("data"in r)return r.data;throw new Error(`Invalid response found for routeId "${t}"`)}function xn(){let e,t,r=new Promise((n,a)=>{e=async o=>{n(o);try{await r}catch{}},t=async o=>{a(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}async function da(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(r){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(r),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Pl(e,t,r){let n=e.map(o=>{var s;let i=t[o.route.id],l=r.routes[o.route.id];return[l&&l.css?l.css.map(u=>({rel:"stylesheet",href:u})):[],((s=i==null?void 0:i.links)==null?void 0:s.call(i))||[]]}).flat(2),a=Mr(e,r);return pa(n,a)}function fa(e){return e.css?e.css.map(t=>({rel:"stylesheet",href:t})):[]}async function Tl(e){if(!e.css)return;let t=fa(e);await Promise.all(t.map(ma))}async function ha(e,t){if(!e.css&&!t.links||!Al())return;let r=[];if(e.css&&r.push(...fa(e)),t.links&&r.push(...t.links()),r.length===0)return;let n=[];for(let a of r)!Tr(a)&&a.rel==="stylesheet"&&n.push({...a,rel:"preload",as:"style"});await Promise.all(n.map(ma))}async function ma(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return t();let r=document.createElement("link");Object.assign(r,e);function n(){document.head.contains(r)&&document.head.removeChild(r)}r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)})}function Tr(e){return e!=null&&typeof e.page=="string"}function Ml(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function _l(e,t,r){let n=await Promise.all(e.map(async a=>{let o=t.routes[a.route.id];if(o){let i=await da(o,r);return i.links?i.links():[]}return[]}));return pa(n.flat(1).filter(Ml).filter(a=>a.rel==="stylesheet"||a.rel==="preload").map(a=>a.rel==="stylesheet"?{...a,rel:"prefetch",as:"style"}:{...a,rel:"prefetch"}))}function Cn(e,t,r,n,a,o){let i=(s,u)=>r[u]?s.route.id!==r[u].route.id:!0,l=(s,u)=>{var h;return r[u].pathname!==s.pathname||((h=r[u].route.path)==null?void 0:h.endsWith("*"))&&r[u].params["*"]!==s.params["*"]};return o==="assets"?t.filter((s,u)=>i(s,u)||l(s,u)):o==="data"?t.filter((s,u)=>{var c;let h=n.routes[s.route.id];if(!h||!h.hasLoader)return!1;if(i(s,u)||l(s,u))return!0;if(s.route.shouldRevalidate){let y=s.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:((c=r[0])==null?void 0:c.params)||{},nextUrl:new URL(e,window.origin),nextParams:s.params,defaultShouldRevalidate:!0});if(typeof y=="boolean")return y}return!0}):[]}function Mr(e,t,{includeHydrateFallback:r}={}){return Dl(e.map(n=>{let a=t.routes[n.route.id];if(!a)return[];let o=[a.module];return a.clientActionModule&&(o=o.concat(a.clientActionModule)),a.clientLoaderModule&&(o=o.concat(a.clientLoaderModule)),r&&a.hydrateFallbackModule&&(o=o.concat(a.hydrateFallbackModule)),a.imports&&(o=o.concat(a.imports)),o}).flat(1))}function Dl(e){return[...new Set(e)]}function Ol(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}function pa(e,t){let r=new Set,n=new Set(t);return e.reduce((a,o)=>{if(t&&!Tr(o)&&o.as==="script"&&o.href&&n.has(o.href))return a;let l=JSON.stringify(Ol(o));return r.has(l)||(r.add(l),a.push({key:l,link:o})),a},[])}var Tt;function Al(){if(Tt!==void 0)return Tt;let e=document.createElement("link");return Tt=e.relList.supports("preload"),e=null,Tt}function Il(){return f.createElement(yr,{title:"Loading...",renderScripts:!0},f.createElement("script",{dangerouslySetInnerHTML:{__html:`
31
- console.log(
32
- "💿 Hey developer 👋. You can provide a way better UX than this " +
33
- "when your app is loading JS modules and/or running \`clientLoader\` " +
34
- "functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback " +
35
- "for more information."
36
- );
37
- `}}))}function ya(e){let t={};return Object.values(e).forEach(r=>{if(r){let n=r.parentId||"";t[n]||(t[n]=[]),t[n].push(r)}}),t}function Fl(e,t,r){let n=va(t),a=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?Il:void 0,o=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>f.createElement(Ea,{error:aa()}):void 0;return e.id==="root"&&t.Layout?{...n?{element:f.createElement(t.Layout,null,f.createElement(n,null))}:{Component:n},...o?{errorElement:f.createElement(t.Layout,null,f.createElement(o,null))}:{ErrorBoundary:o},...a?{hydrateFallbackElement:f.createElement(t.Layout,null,f.createElement(a,null))}:{HydrateFallback:a}}:{Component:n,ErrorBoundary:o,HydrateFallback:a}}function Es(e,t,r,n,a,o){return _r(t,r,n,a,o,"",ya(t),e)}function Mt(e,t){if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction){let n=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;throw console.error(n),new je(400,"Bad Request",new Error(n),!0)}}function or(e,t){let r=e==="clientAction"?"a":"an",n=`Route "${t}" does not have ${r} ${e}, but you are trying to submit to it. To fix this, please add ${r} \`${e}\` function to the route`;throw console.error(n),new je(405,"Method Not Allowed",new Error(n),!0)}function _r(e,t,r,n,a,o="",i=ya(e),l){return(i[o]||[]).map(s=>{var L,D,k;let u=t[s.id];function h(T){return we(typeof T=="function","No single fetch function available for route handler"),T()}function c(T){return s.hasLoader?h(T):Promise.resolve(null)}function y(T){if(!s.hasAction)throw or("action",s.id);return h(T)}function g(T){import(T)}function E(T){T.clientActionModule&&g(T.clientActionModule),T.clientLoaderModule&&g(T.clientLoaderModule)}async function C(T){let _=t[s.id],m=_?ha(s,_):Promise.resolve();try{return T()}finally{await m}}let R={id:s.id,index:s.index,path:s.path};if(u){Object.assign(R,{...R,...Fl(s,u,a),middleware:u.clientMiddleware,handle:u.handle,shouldRevalidate:Ln(R.path,u,s,n,l)});let T=r&&r.loaderData&&s.id in r.loaderData,_=T?(L=r==null?void 0:r.loaderData)==null?void 0:L[s.id]:void 0,m=r&&r.errors&&s.id in r.errors,M=m?(D=r==null?void 0:r.errors)==null?void 0:D[s.id]:void 0,H=l==null&&(((k=u.clientLoader)==null?void 0:k.hydrate)===!0||!s.hasLoader);R.loader=async({request:J,params:K,context:ae,unstable_pattern:le},Q)=>{try{return await C(async()=>(we(u,"No `routeModule` available for critical-route loader"),u.clientLoader?u.clientLoader({request:J,params:K,context:ae,unstable_pattern:le,async serverLoader(){if(Mt("loader",s),H){if(T)return _;if(m)throw M}return c(Q)}}):c(Q)))}finally{H=!1}},R.loader.hydrate=$l(s.id,u.clientLoader,s.hasLoader,a),R.action=({request:J,params:K,context:ae,unstable_pattern:le},Q)=>C(async()=>{if(we(u,"No `routeModule` available for critical-route action"),!u.clientAction){if(a)throw or("clientAction",s.id);return y(Q)}return u.clientAction({request:J,params:K,context:ae,unstable_pattern:le,async serverAction(){return Mt("action",s),y(Q)}})})}else{s.hasClientLoader||(R.loader=(m,M)=>C(()=>c(M))),s.hasClientAction||(R.action=(m,M)=>C(()=>{if(a)throw or("clientAction",s.id);return y(M)}));let T;async function _(){return T?await T:(T=(async()=>{(s.clientLoaderModule||s.clientActionModule)&&await new Promise(M=>setTimeout(M,0));let m=Nl(s,t);return E(s),await m})(),await T)}R.lazy={loader:s.hasClientLoader?async()=>{let{clientLoader:m}=s.clientLoaderModule?await import(s.clientLoaderModule):await _();return we(m,"No `clientLoader` export found"),(M,H)=>m({...M,async serverLoader(){return Mt("loader",s),c(H)}})}:void 0,action:s.hasClientAction?async()=>{let m=s.clientActionModule?import(s.clientActionModule):_();E(s);let{clientAction:M}=await m;return we(M,"No `clientAction` export found"),(H,J)=>M({...H,async serverAction(){return Mt("action",s),y(J)}})}:void 0,middleware:s.hasClientMiddleware?async()=>{let{clientMiddleware:m}=s.clientMiddlewareModule?await import(s.clientMiddlewareModule):await _();return we(m,"No `clientMiddleware` export found"),m}:void 0,shouldRevalidate:async()=>{let m=await _();return Ln(R.path,m,s,n,l)},handle:async()=>(await _()).handle,Component:async()=>(await _()).Component,ErrorBoundary:s.hasErrorBoundary?async()=>(await _()).ErrorBoundary:void 0}}let b=_r(e,t,r,n,a,s.id,i,l);return b.length>0&&(R.children=b),R})}function Ln(e,t,r,n,a){if(a)return kl(r.id,t.shouldRevalidate,a);if(!n&&r.hasLoader&&!r.hasClientLoader){let o=e?An(e)[1].map(l=>l.paramName):[];const i=l=>o.some(s=>l.currentParams[s]!==l.nextParams[s]);if(t.shouldRevalidate){let l=t.shouldRevalidate;return s=>l({...s,defaultShouldRevalidate:i(s)})}else return l=>i(l)}return t.shouldRevalidate}function kl(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}async function Nl(e,t){let r=da(e,t),n=Tl(e),a=await r;return await Promise.all([n,ha(e,a)]),{Component:va(a),ErrorBoundary:a.ErrorBoundary,clientMiddleware:a.clientMiddleware,clientAction:a.clientAction,clientLoader:a.clientLoader,handle:a.handle,links:a.links,meta:a.meta,shouldRevalidate:a.shouldRevalidate}}function va(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function $l(e,t,r,n){return n&&e!=="root"||t!=null&&(t.hydrate===!0||r!==!0)}var It=new Set,jl=1e3,kt=new Set,Ul=7680;function Dr(e,t){return e.mode==="lazy"&&t===!0}function Hl({sri:e,...t},r){let n=new Set(r.state.matches.map(l=>l.route.id)),a=r.state.location.pathname.split("/").filter(Boolean),o=["/"];for(a.pop();a.length>0;)o.push(`/${a.join("/")}`),a.pop();o.forEach(l=>{let s=Ie(r.routes,l,r.basename);s&&s.forEach(u=>n.add(u.route.id))});let i=[...n].reduce((l,s)=>Object.assign(l,{[s]:t.routes[s]}),{});return{...t,routes:i,sri:e?!0:void 0}}function Rs(e,t,r,n,a,o){if(Dr(n,r))return async({path:i,patch:l,signal:s,fetcherKey:u})=>{kt.has(i)||await ga([i],u?window.location.href:i,e,t,r,a,o,n.manifestPath,l,s)}}function bs(e,t,r,n,a,o){f.useEffect(()=>{var h,c;if(!Dr(a,n)||((c=(h=window.navigator)==null?void 0:h.connection)==null?void 0:c.saveData)===!0)return;function i(y){let g=y.tagName==="FORM"?y.getAttribute("action"):y.getAttribute("href");if(!g)return;let E=y.tagName==="A"?y.pathname:new URL(g,window.location.origin).pathname;kt.has(E)||It.add(E)}async function l(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(i);let y=Array.from(It.keys()).filter(g=>kt.has(g)?(It.delete(g),!1):!0);if(y.length!==0)try{await ga(y,null,t,r,n,o,e.basename,a.manifestPath,e.patchRoutes)}catch(g){console.error("Failed to fetch manifest patches",g)}}let s=Wl(l,100);l();let u=new MutationObserver(()=>s());return u.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>u.disconnect()},[n,o,t,r,e,a])}function zl(e,t){let r=e||"/__manifest";return t==null?r:`${t}${r}`.replace(/\/+/g,"/")}var ir="react-router-manifest-version";async function ga(e,t,r,n,a,o,i,l,s,u){const h=new URLSearchParams;h.set("paths",e.sort().join(",")),h.set("version",r.version);let c=new URL(zl(l,i),window.location.origin);if(c.search=h.toString(),c.toString().length>Ul){It.clear();return}let y;try{let R=await fetch(c,{signal:u});if(R.ok){if(R.status===204&&R.headers.has("X-Remix-Reload-Document")){if(!t){console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.");return}try{if(sessionStorage.getItem(ir)===r.version){console.error("Unable to discover routes due to manifest version mismatch.");return}sessionStorage.setItem(ir,r.version)}catch{}window.location.href=t,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{})}else if(R.status>=400)throw new Error(await R.text())}else throw new Error(`${R.status} ${R.statusText}`);try{sessionStorage.removeItem(ir)}catch{}y=await R.json()}catch(R){if(u!=null&&u.aborted)return;throw R}let g=new Set(Object.keys(r.routes)),E=Object.values(y).reduce((R,b)=>(b&&!g.has(b.id)&&(R[b.id]=b),R),{});Object.assign(r.routes,E),e.forEach(R=>Bl(R,kt));let C=new Set;Object.values(E).forEach(R=>{R&&(!R.parentId||!E[R.parentId])&&C.add(R.parentId)}),C.forEach(R=>s(R||null,_r(E,n,null,a,o,R)))}function Bl(e,t){if(t.size>=jl){let r=t.values().next().value;t.delete(r)}t.add(e)}function Wl(e,t){let r;return(...n)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...n),t)}}function Or(){let e=f.useContext(Je);return we(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function zt(){let e=f.useContext(Ze);return we(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Bt=f.createContext(void 0);Bt.displayName="FrameworkContext";function tt(){let e=f.useContext(Bt);return we(e,"You must render this element inside a <HydratedRouter> element"),e}function Yl(e,t){let r=f.useContext(Bt),[n,a]=f.useState(!1),[o,i]=f.useState(!1),{onFocus:l,onBlur:s,onMouseEnter:u,onMouseLeave:h,onTouchStart:c}=t,y=f.useRef(null);f.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let C=b=>{b.forEach(L=>{i(L.isIntersecting)})},R=new IntersectionObserver(C,{threshold:.5});return y.current&&R.observe(y.current),()=>{R.disconnect()}}},[e]),f.useEffect(()=>{if(n){let C=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(C)}}},[n]);let g=()=>{a(!0)},E=()=>{a(!1),i(!1)};return r?e!=="intent"?[o,y,{}]:[o,y,{onFocus:st(l,g),onBlur:st(s,E),onMouseEnter:st(u,g),onMouseLeave:st(h,E),onTouchStart:st(c,g)}]:[!1,y,{}]}function st(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function Ar(e,t,r){if(r&&!Nt)return[e[0]];if(t){let n=e.findIndex(a=>t[a.route.id]!==void 0);return e.slice(0,n+1)}return e}var Pn="data-react-router-critical-css";function Ss({nonce:e}){let{isSpaMode:t,manifest:r,routeModules:n,criticalCss:a}=tt(),{errors:o,matches:i}=zt(),l=Ar(i,o,t),s=f.useMemo(()=>Pl(l,n,r),[l,n,r]);return f.createElement(f.Fragment,null,typeof a=="string"?f.createElement("style",{[Pn]:"",dangerouslySetInnerHTML:{__html:a}}):null,typeof a=="object"?f.createElement("link",{[Pn]:"",rel:"stylesheet",href:a.href,nonce:e}):null,s.map(({key:u,link:h})=>Tr(h)?f.createElement(wa,{key:u,nonce:e,...h}):f.createElement("link",{key:u,nonce:e,...h})))}function wa({page:e,...t}){let{router:r}=Or(),n=f.useMemo(()=>Ie(r.routes,e,r.basename),[r.routes,e,r.basename]);return n?f.createElement(Jl,{page:e,matches:n,...t}):null}function Vl(e){let{manifest:t,routeModules:r}=tt(),[n,a]=f.useState([]);return f.useEffect(()=>{let o=!1;return _l(e,t,r).then(i=>{o||a(i)}),()=>{o=!0}},[e,t,r]),n}function Jl({page:e,matches:t,...r}){let n=Le(),{manifest:a,routeModules:o}=tt(),{basename:i}=Or(),{loaderData:l,matches:s}=zt(),u=f.useMemo(()=>Cn(e,t,s,a,n,"data"),[e,t,s,a,n]),h=f.useMemo(()=>Cn(e,t,s,a,n,"assets"),[e,t,s,a,n]),c=f.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let E=new Set,C=!1;if(t.forEach(b=>{var D;let L=a.routes[b.route.id];!L||!L.hasLoader||(!u.some(k=>k.route.id===b.route.id)&&b.route.id in l&&((D=o[b.route.id])!=null&&D.shouldRevalidate)||L.hasClientLoader?C=!0:E.add(b.route.id))}),E.size===0)return[];let R=ca(e,i,"data");return C&&E.size>0&&R.searchParams.set("_routes",t.filter(b=>E.has(b.route.id)).map(b=>b.route.id).join(",")),[R.pathname+R.search]},[i,l,n,a,u,t,e,o]),y=f.useMemo(()=>Mr(h,a),[h,a]),g=Vl(h);return f.createElement(f.Fragment,null,c.map(E=>f.createElement("link",{key:E,rel:"prefetch",as:"fetch",href:E,...r})),y.map(E=>f.createElement("link",{key:E,rel:"modulepreload",href:E,...r})),g.map(({key:E,link:C})=>f.createElement("link",{key:E,nonce:r.nonce,...C})))}function xs(){let{isSpaMode:e,routeModules:t}=tt(),{errors:r,matches:n,loaderData:a}=zt(),o=Le(),i=Ar(n,r,e),l=null;r&&(l=r[i[i.length-1].route.id]);let s=[],u=null,h=[];for(let c=0;c<i.length;c++){let y=i[c],g=y.route.id,E=a[g],C=y.params,R=t[g],b=[],L={id:g,data:E,loaderData:E,meta:[],params:y.params,pathname:y.pathname,handle:y.route.handle,error:l};if(h[c]=L,R!=null&&R.meta?b=typeof R.meta=="function"?R.meta({data:E,loaderData:E,params:C,location:o,matches:h,error:l}):Array.isArray(R.meta)?[...R.meta]:R.meta:u&&(b=[...u]),b=b||[],!Array.isArray(b))throw new Error("The route at "+y.route.path+` returns an invalid value. All route meta functions must return an array of meta objects.
38
-
39
- To reference the meta function API, see https://remix.run/route/meta`);L.meta=b,h[c]=L,s=[...b],u=s}return f.createElement(f.Fragment,null,s.flat().map(c=>{if(!c)return null;if("tagName"in c){let{tagName:y,...g}=c;if(!Gl(y))return console.warn(`A meta object uses an invalid tagName: ${y}. Expected either 'link' or 'meta'`),null;let E=y;return f.createElement(E,{key:JSON.stringify(g),...g})}if("title"in c)return f.createElement("title",{key:"title"},String(c.title));if("charset"in c&&(c.charSet??(c.charSet=c.charset),delete c.charset),"charSet"in c&&c.charSet!=null)return typeof c.charSet=="string"?f.createElement("meta",{key:"charSet",charSet:c.charSet}):null;if("script:ld+json"in c)try{let y=JSON.stringify(c["script:ld+json"]);return f.createElement("script",{key:`script:ld+json:${y}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:pl(y)}})}catch{return null}return f.createElement("meta",{key:JSON.stringify(c),...c})}))}function Gl(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}var Nt=!1;function Kl(){Nt=!0}function Xl(e){let{manifest:t,serverHandoffString:r,isSpaMode:n,renderMeta:a,routeDiscovery:o,ssr:i}=tt(),{router:l,static:s,staticContext:u}=Or(),{matches:h}=zt(),c=qn(),y=Dr(o,i);a&&(a.didRenderScripts=!0);let g=Ar(h,null,n);f.useEffect(()=>{Kl()},[]);let E=f.useMemo(()=>{var k;if(c)return null;let L=u?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",D=s?`${(k=t.hmr)!=null&&k.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${y?"":`import ${JSON.stringify(t.url)}`};
40
- ${g.map((T,_)=>{let m=`route${_}`,M=t.routes[T.route.id];we(M,`Route ${T.route.id} not found in manifest`);let{clientActionModule:H,clientLoaderModule:J,clientMiddlewareModule:K,hydrateFallbackModule:ae,module:le}=M,Q=[...H?[{module:H,varName:`${m}_clientAction`}]:[],...J?[{module:J,varName:`${m}_clientLoader`}]:[],...K?[{module:K,varName:`${m}_clientMiddleware`}]:[],...ae?[{module:ae,varName:`${m}_HydrateFallback`}]:[],{module:le,varName:`${m}_main`}];if(Q.length===1)return`import * as ${m} from ${JSON.stringify(le)};`;let ue=Q.map(ee=>`import * as ${ee.varName} from "${ee.module}";`).join(`
41
- `),X=`const ${m} = {${Q.map(ee=>`...${ee.varName}`).join(",")}};`;return[ue,X].join(`
42
- `)}).join(`
43
- `)}
44
- ${y?`window.__reactRouterManifest = ${JSON.stringify(Hl(t,l),null,2)};`:""}
45
- window.__reactRouterRouteModules = {${g.map((T,_)=>`${JSON.stringify(T.route.id)}:route${_}`).join(",")}};
46
-
47
- import(${JSON.stringify(t.entry.module)});`:" ";return f.createElement(f.Fragment,null,f.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:L},type:void 0}),f.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:D},type:"module",async:!0}))},[]),C=Nt||c?[]:ql(t.entry.imports.concat(Mr(g,t,{includeHydrateFallback:!0}))),R=typeof t.sri=="object"?t.sri:{};return fr(!c,"The <Scripts /> element is a no-op when using RSC and can be safely removed."),Nt||c?null:f.createElement(f.Fragment,null,typeof t.sri=="object"?f.createElement("script",{"rr-importmap":"",type:"importmap",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:R})}}):null,y?null:f.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin,integrity:R[t.url],suppressHydrationWarning:!0}),f.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin,integrity:R[t.entry.module],suppressHydrationWarning:!0}),C.map(b=>f.createElement("link",{key:b,rel:"modulepreload",href:b,crossOrigin:e.crossOrigin,integrity:R[b],suppressHydrationWarning:!0})),E)}function ql(e){return[...new Set(e)]}function Ql(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}var Cs=class extends f.Component{constructor(e){super(e),this.state={error:e.error||null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:e.error||null,location:e.location}:{error:e.error||t.error,location:t.location}}render(){return this.state.error?f.createElement(Ea,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function Ea({error:e,isOutsideRemixApp:t}){console.error(e);let r=f.createElement("script",{dangerouslySetInnerHTML:{__html:`
48
- console.log(
49
- "💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
50
- );
51
- `}});if(Ve(e))return f.createElement(yr,{title:"Unhandled Thrown Response!"},f.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),r);let n;if(e instanceof Error)n=e;else{let a=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);n=new Error(a)}return f.createElement(yr,{title:"Application Error!",isOutsideRemixApp:t},f.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),f.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},n.stack),r)}function yr({title:e,renderScripts:t,isOutsideRemixApp:r,children:n}){var o;let{routeModules:a}=tt();return(o=a.root)!=null&&o.Layout&&!r?n:f.createElement("html",{lang:"en"},f.createElement("head",null,f.createElement("meta",{charSet:"utf-8"}),f.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),f.createElement("title",null,e)),f.createElement("body",null,f.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},n,t?f.createElement(Xl,null):null)))}var Zl=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Zl&&(window.__reactRouterVersion="7.11.0")}catch{}var Ra=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ba=f.forwardRef(function({onClick:t,discover:r="render",prefetch:n="none",relative:a,reloadDocument:o,replace:i,state:l,target:s,to:u,preventScrollReset:h,viewTransition:c,unstable_defaultShouldRevalidate:y,...g},E){let{basename:C,unstable_useTransitions:R}=f.useContext(Ee),b=typeof u=="string"&&Ra.test(u),L=Nn(u,C);u=L.to;let D=fi(u,{relative:a}),[k,T,_]=Yl(n,g),m=rs(u,{replace:i,state:l,target:s,preventScrollReset:h,relative:a,viewTransition:c,unstable_defaultShouldRevalidate:y,unstable_useTransitions:R});function M(J){t&&t(J),J.defaultPrevented||m(J)}let H=f.createElement("a",{...g,..._,href:L.absoluteURL||D,onClick:L.isExternal||o?t:M,ref:Ql(E,T),target:s,"data-discover":!b&&r==="render"?"true":void 0});return k&&!b?f.createElement(f.Fragment,null,H,f.createElement(wa,{page:D})):H});ba.displayName="Link";var es=f.forwardRef(function({"aria-current":t="page",caseSensitive:r=!1,className:n="",end:a=!1,style:o,to:i,viewTransition:l,children:s,...u},h){let c=vt(i,{relative:u.relative}),y=Le(),g=f.useContext(Ze),{navigator:E,basename:C}=f.useContext(Ee),R=g!=null&&ss(c)&&l===!0,b=E.encodeLocation?E.encodeLocation(c).pathname:c.pathname,L=y.pathname,D=g&&g.navigation&&g.navigation.location?g.navigation.location.pathname:null;r||(L=L.toLowerCase(),D=D?D.toLowerCase():null,b=b.toLowerCase()),D&&C&&(D=be(D,C)||D);const k=b!=="/"&&b.endsWith("/")?b.length-1:b.length;let T=L===b||!a&&L.startsWith(b)&&L.charAt(k)==="/",_=D!=null&&(D===b||!a&&D.startsWith(b)&&D.charAt(b.length)==="/"),m={isActive:T,isPending:_,isTransitioning:R},M=T?t:void 0,H;typeof n=="function"?H=n(m):H=[n,T?"active":null,_?"pending":null,R?"transitioning":null].filter(Boolean).join(" ");let J=typeof o=="function"?o(m):o;return f.createElement(ba,{...u,"aria-current":M,className:H,ref:h,style:J,to:i,viewTransition:l},typeof s=="function"?s(m):s)});es.displayName="NavLink";var Sa=f.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:n,replace:a,state:o,method:i=Ot,action:l,onSubmit:s,relative:u,preventScrollReset:h,viewTransition:c,unstable_defaultShouldRevalidate:y,...g},E)=>{let{unstable_useTransitions:C}=f.useContext(Ee),R=La(),b=os(l,{relative:u}),L=i.toLowerCase()==="get"?"get":"post",D=typeof l=="string"&&Ra.test(l),k=T=>{if(s&&s(T),T.defaultPrevented)return;T.preventDefault();let _=T.nativeEvent.submitter,m=(_==null?void 0:_.getAttribute("formmethod"))||i,M=()=>R(_||T.currentTarget,{fetcherKey:t,method:m,navigate:r,replace:a,state:o,relative:u,preventScrollReset:h,viewTransition:c,unstable_defaultShouldRevalidate:y});C&&r!==!1?f.startTransition(()=>M()):M()};return f.createElement("form",{ref:E,method:L,action:b,onSubmit:n?s:k,...g,"data-discover":!D&&e==="render"?"true":void 0})});Sa.displayName="Form";function ts({getKey:e,storageKey:t,...r}){let n=f.useContext(Bt),{basename:a}=f.useContext(Ee),o=Le(),i=Pr();is({getKey:e,storageKey:t});let l=f.useMemo(()=>{if(!n||!e)return null;let u=gr(o,i,a,e);return u!==o.key?u:null},[]);if(!n||n.isSpaMode)return null;let s=((u,h)=>{if(!window.history.state||!window.history.state.key){let c=Math.random().toString(32).slice(2);window.history.replaceState({key:c},"")}try{let y=JSON.parse(sessionStorage.getItem(u)||"{}")[h||window.history.state.key];typeof y=="number"&&window.scrollTo(0,y)}catch(c){console.error(c),sessionStorage.removeItem(u)}}).toString();return f.createElement("script",{...r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${s})(${JSON.stringify(t||vr)}, ${JSON.stringify(l)})`}})}ts.displayName="ScrollRestoration";function xa(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Wt(e){let t=f.useContext(Je);return W(t,xa(e)),t}function Ca(e){let t=f.useContext(Ze);return W(t,xa(e)),t}function rs(e,{target:t,replace:r,state:n,preventScrollReset:a,relative:o,viewTransition:i,unstable_defaultShouldRevalidate:l,unstable_useTransitions:s}={}){let u=ta(),h=Le(),c=vt(e,{relative:o});return f.useCallback(y=>{if(Hi(y,t)){y.preventDefault();let g=r!==void 0?r:Me(h)===Me(c),E=()=>u(e,{replace:g,state:n,preventScrollReset:a,relative:o,viewTransition:i,unstable_defaultShouldRevalidate:l});s?f.startTransition(()=>E()):E()}},[h,u,c,r,n,t,e,a,o,i,l,s])}function Ls(e){oe(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=f.useRef(hr(e)),r=f.useRef(!1),n=Le(),a=f.useMemo(()=>zi(n.search,r.current?null:t.current),[n.search]),o=ta(),i=f.useCallback((l,s)=>{const u=hr(typeof l=="function"?l(new URLSearchParams(a)):l);r.current=!0,o("?"+u,s)},[o,a]);return[a,i]}var ns=0,as=()=>`__${String(++ns)}__`;function La(){let{router:e}=Wt("useSubmit"),{basename:t}=f.useContext(Ee),r=xi(),n=e.fetch,a=e.navigate;return f.useCallback(async(o,i={})=>{let{action:l,method:s,encType:u,formData:h,body:c}=Yi(o,t);if(i.navigate===!1){let y=i.fetcherKey||as();await n(y,r,i.action||l,{unstable_defaultShouldRevalidate:i.unstable_defaultShouldRevalidate,preventScrollReset:i.preventScrollReset,formData:h,body:c,formMethod:i.method||s,formEncType:i.encType||u,flushSync:i.flushSync})}else await a(i.action||l,{unstable_defaultShouldRevalidate:i.unstable_defaultShouldRevalidate,preventScrollReset:i.preventScrollReset,formData:h,body:c,formMethod:i.method||s,formEncType:i.encType||u,replace:i.replace,state:i.state,fromRouteId:r,flushSync:i.flushSync,viewTransition:i.viewTransition})},[n,a,t,r])}function os(e,{relative:t}={}){let{basename:r}=f.useContext(Ee),n=f.useContext(Ce);W(n,"useFormAction must be used inside a RouteContext");let[a]=n.matches.slice(-1),o={...vt(e||".",{relative:t})},i=Le();if(e==null){o.search=i.search;let l=new URLSearchParams(o.search),s=l.getAll("index");if(s.some(h=>h==="")){l.delete("index"),s.filter(c=>c).forEach(c=>l.append("index",c));let h=l.toString();o.search=h?`?${h}`:""}}return(!e||e===".")&&a.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),r!=="/"&&(o.pathname=o.pathname==="/"?r:Te([r,o.pathname])),Me(o)}function Ps({key:e}={}){var T;let{router:t}=Wt("useFetcher"),r=Ca("useFetcher"),n=f.useContext(xr),a=f.useContext(Ce),o=(T=a.matches[a.matches.length-1])==null?void 0:T.route.id;W(n,"useFetcher must be used inside a FetchersContext"),W(a,"useFetcher must be used inside a RouteContext"),W(o!=null,'useFetcher can only be used on routes that contain a unique "id"');let i=f.useId(),[l,s]=f.useState(e||i);e&&e!==l&&s(e);let{deleteFetcher:u,getFetcher:h,resetFetcher:c,fetch:y}=t;f.useEffect(()=>(h(l),()=>u(l)),[u,h,l]);let g=f.useCallback(async(_,m)=>{W(o,"No routeId available for fetcher.load()"),await y(l,o,_,m)},[l,o,y]),E=La(),C=f.useCallback(async(_,m)=>{await E(_,{...m,navigate:!1,fetcherKey:l})},[l,E]),R=f.useCallback(_=>c(l,_),[c,l]),b=f.useMemo(()=>{let _=f.forwardRef((m,M)=>f.createElement(Sa,{...m,navigate:!1,fetcherKey:l,ref:M}));return _.displayName="fetcher.Form",_},[l]),L=r.fetchers.get(l)||Hn,D=n.get(l);return f.useMemo(()=>({Form:b,submit:C,load:g,reset:R,...L,data:D}),[b,C,g,R,L,D])}var vr="react-router-scroll-positions",_t={};function gr(e,t,r,n){let a=null;return n&&(r!=="/"?a=n({...e,pathname:be(e.pathname,r)||e.pathname},t):a=n(e,t)),a==null&&(a=e.key),a}function is({getKey:e,storageKey:t}={}){let{router:r}=Wt("useScrollRestoration"),{restoreScrollPosition:n,preventScrollReset:a}=Ca("useScrollRestoration"),{basename:o}=f.useContext(Ee),i=Le(),l=Pr(),s=Ci();f.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),ls(f.useCallback(()=>{if(s.state==="idle"){let u=gr(i,l,o,e);_t[u]=window.scrollY}try{sessionStorage.setItem(t||vr,JSON.stringify(_t))}catch(u){oe(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${u}).`)}window.history.scrollRestoration="auto"},[s.state,e,o,i,l,t])),typeof document<"u"&&(f.useLayoutEffect(()=>{try{let u=sessionStorage.getItem(t||vr);u&&(_t=JSON.parse(u))}catch{}},[t]),f.useLayoutEffect(()=>{let u=r==null?void 0:r.enableScrollRestoration(_t,()=>window.scrollY,e?(h,c)=>gr(h,c,o,e):void 0);return()=>u&&u()},[r,o,e]),f.useLayoutEffect(()=>{if(n!==!1){if(typeof n=="number"){window.scrollTo(0,n);return}try{if(i.hash){let u=document.getElementById(decodeURIComponent(i.hash.slice(1)));if(u){u.scrollIntoView();return}}}catch{oe(!1,`"${i.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}a!==!0&&window.scrollTo(0,0)}},[i,n,a]))}function ls(e,t){let{capture:r}={};f.useEffect(()=>{let n=r!=null?{capture:r}:void 0;return window.addEventListener("pagehide",e,n),()=>{window.removeEventListener("pagehide",e,n)}},[e,r])}function ss(e,{relative:t}={}){let r=f.useContext(Sr);W(r!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:n}=Wt("useViewTransitionState"),a=vt(e,{relative:t});if(!r.isTransitioning)return!1;let o=be(r.currentLocation.pathname,n)||r.currentLocation.pathname,i=be(r.nextLocation.pathname,n)||r.nextLocation.pathname;return Ft(a.pathname,i)!=null||Ft(a.pathname,o)!=null}export{ms as A,ps as B,Ss as C,Xl as D,je as E,Bt as F,Wa as G,us as H,ba as L,xs as M,vl as N,vs as O,Ka as R,ts as S,ta as a,Ls as b,Ps as c,Le as d,Pi as e,hs as f,Ga as g,yi as h,Ve as i,cs as j,W as k,bs as l,Ie as m,Cs as n,ys as o,Ll as p,_r as q,f as r,$l as s,fs as t,Li as u,Rs as v,gs as w,ws as x,ds as y,Es as z};
@@ -1 +0,0 @@
1
- const o="/assets/cy-logo-cli-C1gnJVOL.svg";export{o as c};
@@ -1 +0,0 @@
1
- import{w as t,c as r,j as e}from"./chunk-JMJ3UQ3L-BambyYE_.js";import{S as i}from"./ScenarioViewer-CUxUNEEC.js";import{W as n}from"./InteractivePreview-D-9pXIaY.js";import"./useCustomSizes-BMIGFP-m.js";import"./LogViewer-wDPcZNKx.js";import"./SafeScreenshot-BfmDgXxG.js";import"./useLastLogLine-BqPPNjAl.js";import"./useInteractiveMode-Dk_FQqWJ.js";import"./preload-helper-ckwbz45p.js";import"./ReportIssueModal-4lcOlid-.js";import"./createLucideIcon-CgUsG7ib.js";import"./circle-check-CaVsIRxt.js";import"./triangle-alert-CBc5dE1s.js";import"./scenarioStatus-B_8jpV3e.js";const N=()=>[{title:"Empty State - CodeYam"},{name:"description",content:"Simulations empty state development view"}],y=t(function(){r();const s={sha:"mock-sha",name:"Dashboard",filePath:"codeyam-cli/src/webserver/app/routes/_index.tsx",entityType:"visual"};return e.jsx(n,{children:e.jsxs("div",{className:"h-screen bg-[#f9f9f9] flex flex-col overflow-hidden",children:[e.jsx("header",{className:"bg-white border-b border-gray-200 shrink-0 relative h-[54px]",children:e.jsxs("div",{className:"flex items-center h-full px-6 gap-6",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsx("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M13 8.5H4M4 8.5L8.5 4M4 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),e.jsx("h1",{className:"text-lg font-semibold text-black m-0 leading-[26px] shrink-0",children:"Dashboard"}),e.jsx("span",{className:"text-xs text-[#626262] font-mono whitespace-nowrap overflow-hidden text-ellipsis min-w-0",children:"codeyam-cli/src/webserver/app/routes/_index.tsx"})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2 px-[15px] py-0 h-[26px] bg-[#efefef] border border-[#e1e1e1] rounded",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-[#626262]"}),e.jsx("span",{className:"text-xs font-semibold text-[#626262]",children:"Not analyzed"})]}),e.jsx("button",{className:"px-[15px] py-0 h-[26px] bg-[#005c75] text-white rounded text-xs font-semibold border-none cursor-pointer hover:bg-[#004a5e] transition-colors",children:"Analyze"})]}),e.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[#626262] ml-auto",children:[e.jsx("span",{className:"leading-[22px]",children:"Next Entity"}),e.jsx("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M4 8.5H13M13 8.5L8.5 4M13 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),e.jsx("div",{className:"bg-[#efefef] border-b border-[#efefef] shrink-0",children:e.jsxs("div",{className:"flex items-center gap-3 h-11 px-[15px]",children:[e.jsxs("div",{className:"px-4 flex items-center justify-center gap-3 shrink-0 text-sm rounded bg-[#343434] text-[#efefef] font-semibold h-8",children:["Scenarios",e.jsx("span",{className:"px-2 py-0.5 rounded-[9px] text-xs font-semibold bg-[#cbf3fa] text-[#005c75] min-w-[25px] text-center",children:"0"})]}),e.jsxs("div",{className:"px-4 flex items-center justify-center gap-3 shrink-0 text-sm rounded-[9px] text-[#3e3e3e] font-normal",children:["Related Entities",e.jsx("span",{className:"px-2 py-0.5 rounded-[9px] text-xs font-semibold bg-[#e1e1e1] text-[#3e3e3e] min-w-[25px] text-center",children:"5"})]}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"Code"}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"Data Structure"}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"History"})]})}),e.jsxs("div",{className:"flex flex-1 gap-0 min-h-0",children:[e.jsx("div",{className:"w-[165px] bg-[#e1e1e1] border-r border-[#c7c7c7] flex items-center justify-center shrink-0",children:e.jsx("span",{className:"text-xs font-medium text-[#8e8e8e] leading-5",children:"No Scenarios"})}),e.jsx(i,{selectedScenario:null,analysis:void 0,entity:s,viewMode:"screenshot",cacheBuster:Date.now(),hasScenarios:!1,isAnalyzing:!1,projectSlug:null,hasAnApiKey:!0})]})]})})});export{y as default,N as meta};
@@ -1 +0,0 @@
1
- import{w as K,u as Y,a as q,b as A,r as l,j as e}from"./chunk-JMJ3UQ3L-BambyYE_.js";import{u as G}from"./useInteractiveMode-Dk_FQqWJ.js";import{u as J}from"./useLastLogLine-BqPPNjAl.js";import{u as O,V as Q,S as X}from"./useCustomSizes-BMIGFP-m.js";import{c as Z}from"./cy-logo-cli-CKnwPCDr.js";const b=[{name:"Mobile",width:375,height:667},{name:"Tablet",width:768,height:1024},{name:"Laptop",width:1024,height:768},{name:"Desktop",width:1440,height:900}],le=K(function(){const{entity:a,scenario:s,analysis:r,projectSlug:m}=Y(),u=q();A();const[te,S]=l.useState(null),[M,k]=l.useState(1440),[i,g]=l.useState({name:"Desktop",width:1440,height:900}),[P,v]=l.useState(!1),[f,z]=l.useState(null),{customSizes:y,addCustomSize:_}=O(m),h=l.useMemo(()=>[...b,...y],[y]),{interactiveServerUrl:p,isStarting:w,isLoading:x,showIframe:L,iframeKey:B,onIframeLoad:D}=G({analysisId:r==null?void 0:r.id,scenarioId:s==null?void 0:s.id,scenarioName:s==null?void 0:s.name,projectSlug:m,enabled:!0}),{lastLine:C}=J(m,w||x),W=()=>{u(`/entity/${a.sha}`)},E=(t,n)=>{k(t);const o=h.find($=>$.width===t&&$.height===n);S(o||null),g({name:(o==null?void 0:o.name)||"Custom",width:t,height:n})},I=t=>{S(t),k(t.width),g({name:t.name,width:t.width,height:t.height})},U=t=>{_(t,i.width,i.height??900),v(!1),g(n=>({...n,name:t}))},c=(r==null?void 0:r.scenarios)||[],d=c.findIndex(t=>t.id===(s==null?void 0:s.id)),V=d+1,R=c.length,j=d>0,N=d<c.length-1,H=()=>{if(j){const t=c[d-1],n=encodeURIComponent(`/entity/${a.sha}/scenarios/${t.id}/fullscreen`);u(`/entity/${a.sha}/scenarios/${t.id}/fullscreen?from=${n}`)}},T=()=>{if(N){const t=c[d+1],n=encodeURIComponent(`/entity/${a.sha}/scenarios/${t.id}/fullscreen`);u(`/entity/${a.sha}/scenarios/${t.id}/fullscreen?from=${n}`)}},F=w||x||!L;return e.jsxs("div",{className:"fixed inset-0 bg-[#2d2d2d] flex flex-col",children:[e.jsxs("div",{className:"bg-[#3d3d3d] h-12 flex items-center px-4 gap-4 shrink-0 z-20",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx("img",{src:Z,alt:"CodeYam",className:"h-6 brightness-0 invert"}),e.jsx("span",{className:"text-white font-medium text-sm whitespace-nowrap",children:a.name}),e.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[e.jsx("button",{onClick:H,disabled:!j,className:`${j?"text-white hover:text-gray-300":"text-gray-600 cursor-not-allowed"} transition-colors`,"aria-label":"Previous scenario",children:e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:e.jsx("path",{d:"M12.5 15L7.5 10L12.5 5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),e.jsxs("span",{className:"text-gray-400 text-sm",children:[V,"/",R]}),e.jsx("button",{onClick:T,disabled:!N,className:`${N?"text-white hover:text-gray-300":"text-gray-600 cursor-not-allowed"} transition-colors`,"aria-label":"Next scenario",children:e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:e.jsx("path",{d:"M7.5 15L12.5 10L7.5 5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),e.jsxs("div",{className:"flex items-center gap-2 ml-2 min-w-0",children:[e.jsx("span",{className:"text-white font-semibold text-xs whitespace-nowrap shrink-0",children:s==null?void 0:s.name}),(s==null?void 0:s.description)&&e.jsxs("div",{className:"relative group min-w-0",children:[e.jsx("span",{className:"text-gray-400 text-xs truncate block",children:s.description}),e.jsx("div",{className:"absolute left-0 top-full mt-1 hidden group-hover:block z-50 bg-black text-white text-xs px-3 py-2 rounded shadow-lg max-w-md",children:s.description})]})]})]}),e.jsx("button",{onClick:W,className:"text-white hover:text-gray-300 transition-colors ml-4","aria-label":"Close fullscreen",children:e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:e.jsx("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})})]}),e.jsxs("div",{className:"bg-[#034456] border-b border-[rgba(0,92,117,0.25)] shrink-0 z-10 h-6 flex items-center justify-center relative",children:[e.jsx("div",{className:"absolute inset-0 flex justify-center",children:e.jsx("div",{style:{maxWidth:`${b[b.length-1].width}px`,width:"100%"},children:e.jsx(Q,{currentViewportWidth:M,currentPresetName:i.name,onDevicePresetClick:I,devicePresets:h,hideLabel:!0,onHoverChange:z})})}),e.jsxs("div",{className:"relative z-10 flex items-center gap-2",children:[e.jsxs("div",{className:"relative w-28 h-5",children:[e.jsxs("div",{className:"absolute inset-0 bg-[#007392] text-white text-xs px-2 rounded flex items-center justify-between pointer-events-none",children:[e.jsx("span",{className:"leading-none",children:(f==null?void 0:f.name)||i.name}),e.jsx("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),e.jsxs("select",{value:i.name,onChange:t=>{const n=h.find(o=>o.name===t.target.value);n&&I(n)},className:"relative w-full h-full opacity-0 cursor-pointer",children:[h.map(t=>e.jsx("option",{value:t.name,children:t.name},t.name)),i.name==="Custom"&&e.jsx("option",{value:"Custom",children:"Custom"})]})]}),e.jsx("input",{type:"number",value:i.width,onChange:t=>{const n=parseInt(t.target.value,10);!isNaN(n)&&n>0&&E(n,i.height??900)},className:"bg-white text-gray-900 text-xs px-1 rounded border border-gray-300 outline-none w-16 text-center h-5 leading-none",min:"200",max:"3840"}),e.jsx("span",{className:"text-gray-400 text-xs h-5 flex items-center leading-none",children:"×"}),e.jsx("span",{className:"bg-gray-100 text-gray-600 text-xs px-1 rounded w-14 text-center h-5 flex items-center justify-center leading-none",children:i.height??900}),i.name==="Custom"&&e.jsx("button",{onClick:()=>v(!0),className:"bg-[#007392] text-white text-xs px-2 rounded h-5 flex items-center leading-none hover:bg-[#005c75] transition-colors",children:"Save"})]})]}),e.jsx("div",{className:"flex-1 flex items-center justify-center overflow-auto p-8",children:p?e.jsxs("div",{className:"relative bg-white shadow-2xl w-full h-full",style:{maxWidth:`${i.width}px`,maxHeight:`${i.height}px`},children:[F&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-white z-10",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("div",{className:"w-12 h-12",children:e.jsx("svg",{className:"animate-spin",viewBox:"0 0 50 50",children:e.jsx("circle",{cx:"25",cy:"25",r:"20",fill:"none",stroke:"#005c75",strokeWidth:"4",strokeDasharray:"31.4 31.4",strokeLinecap:"round"})})}),e.jsx("p",{className:"text-base font-semibold text-[#005c75]",children:w&&!p?"Starting interactive mode...":"Loading interactive preview..."})]})}),e.jsx("iframe",{src:p,className:"w-full h-full border-none",title:`Interactive preview: ${s==null?void 0:s.name}`,onLoad:D,style:{opacity:L?1:0}},B)]}):e.jsxs("div",{className:"flex flex-col items-center gap-6 max-w-2xl",children:[e.jsx("div",{className:"w-12 h-12",children:e.jsx("svg",{className:"animate-spin",viewBox:"0 0 50 50",children:e.jsx("circle",{cx:"25",cy:"25",r:"20",fill:"none",stroke:"#005c75",strokeWidth:"4",strokeDasharray:"31.4 31.4",strokeLinecap:"round"})})}),e.jsx("h2",{className:"text-2xl font-semibold text-white leading-[30px] m-0 font-['IBM_Plex_Sans']",children:x?"Interactive mode ready: launching...":"Starting Interactive Mode..."}),C&&e.jsx("p",{className:"text-xs font-mono text-gray-400 text-center leading-5 m-0 max-w-xl font-['IBM_Plex_Mono']",children:C}),e.jsx("p",{className:"text-xs text-gray-500 text-center leading-5 m-0 font-['IBM_Plex_Mono']",children:x?"Loading the page in the background...":"Setting up the dev server for this scenario..."})]})}),P&&e.jsx(X,{width:i.width,height:i.height??900,onSave:U,onCancel:()=>v(!1)})]})});export{le as default};
@@ -1 +0,0 @@
1
- import{r as d,j as e,w as F,u as G,a as _,L as H}from"./chunk-JMJ3UQ3L-BambyYE_.js";import{W as Y,u as z,I as B}from"./InteractivePreview-D-9pXIaY.js";import{u as Q}from"./useInteractiveMode-Dk_FQqWJ.js";import{c as X}from"./keyAttributeCoverage-CTlFMihX.js";import"./preload-helper-ckwbz45p.js";import"./useLastLogLine-BqPPNjAl.js";function Z(t,r=50){if(t===null)return"null";if(t===void 0)return"undefined";let o;if(typeof t=="object")try{o=JSON.stringify(t)}catch{o="[complex object]"}else o=String(t);return o.length>r?o.slice(0,r)+"...":o}function ee({keyAttributes:t,selections:r,onChange:o,disabled:m=!1}){const[x,f]=d.useState({}),S=d.useCallback(a=>r.some(i=>i.path===a),[r]),p=d.useCallback(a=>r.find(i=>i.path===a),[r]),P=d.useCallback(a=>{if(S(a.path))o(r.filter(i=>i.path!==a.path));else{const s=a.validValues.find(c=>c.usedInScenarios.length===0)||a.validValues[0];o(s?[...r,{path:a.path,value:s.value,valueOptionIndex:s.index,isCustom:!1}]:[...r,{path:a.path,value:"",isCustom:!0}])}},[r,o,S]),A=d.useCallback((a,i)=>{const s=t.find(n=>n.path===a);if(!s)return;const c=r.map(n=>{if(n.path!==a)return n;if(i==="custom")return{...n,value:x[a]||"",valueOptionIndex:void 0,isCustom:!0};const l=parseInt(i,10),u=s.validValues[l];return u?{...n,value:u.value,valueOptionIndex:l,isCustom:!1}:n});o(c)},[r,o,t,x]),j=d.useCallback((a,i)=>{f(c=>({...c,[a]:i}));const s=r.map(c=>c.path!==a||!c.isCustom?c:{...c,value:i});o(s)},[r,o]);return t.length===0?e.jsx("div",{className:"text-sm text-gray-500 py-2",children:"No key attributes found."}):e.jsx("div",{className:"space-y-3",children:t.map(a=>{const i=S(a.path),s=p(a.path),c=a.validValues.filter(n=>n.usedInScenarios.length===0).length;return e.jsxs("div",{className:"border-b border-gray-100 pb-3 last:border-0 last:pb-0",children:[e.jsxs("label",{className:"flex items-start gap-2 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:i,onChange:()=>P(a),disabled:m,className:"mt-0.5 h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"font-mono text-sm font-medium text-gray-900",children:a.localVariable}),c>0&&e.jsxs("span",{className:"text-xs px-1.5 py-0.5 bg-amber-100 text-amber-700 rounded",children:[c," uncovered"]})]}),a.description&&e.jsx("p",{className:"text-xs text-gray-500 mt-0.5 m-0",children:a.description})]})]}),i&&e.jsxs("div",{className:"ml-6 mt-2",children:[e.jsxs("select",{value:s!=null&&s.isCustom?"custom":String((s==null?void 0:s.valueOptionIndex)??0),onChange:n=>A(a.path,n.target.value),disabled:m,className:"w-full text-sm border border-gray-300 rounded px-2 py-1.5 focus:border-blue-400 focus:outline-none focus:ring-1 focus:ring-blue-400",children:[a.validValues.map((n,l)=>{const u=n.usedInScenarios.length>0;return e.jsxs("option",{value:l,children:[Z(n.value),!u&&" (uncovered)"]},l)}),e.jsx("option",{value:"custom",children:"Custom value..."})]}),(s==null?void 0:s.isCustom)&&e.jsx("input",{type:"text",placeholder:"Enter custom value",value:x[a.path]||(s==null?void 0:s.value)||"",onChange:n=>j(a.path,n.target.value),disabled:m,className:"w-full mt-2 text-sm border border-gray-300 rounded px-2 py-1.5 focus:border-blue-400 focus:outline-none focus:ring-1 focus:ring-blue-400"}),a.dependencies&&a.dependencies.length>0&&e.jsxs("div",{className:"mt-2 p-2 bg-amber-50 rounded text-xs",children:[e.jsx("span",{className:"text-amber-700 font-medium",children:"Requires:"}),e.jsx("ul",{className:"m-0 mt-1 pl-4 space-y-0.5",children:a.dependencies.map((n,l)=>e.jsxs("li",{className:"text-amber-600",children:[e.jsx("code",{className:"bg-amber-100 px-1 rounded",children:n.path})," = ",e.jsx("code",{className:"bg-amber-100 px-1 rounded",children:String(n.requiredValue)})]},l))})]})]})]},a.path)})})}const ce=({data:t})=>[{title:t!=null&&t.entity?`Create Scenario - ${t.entity.name} - CodeYam`:"Create Scenario - CodeYam"},{name:"description",content:"Create a new scenario"}];function te(){const{analysis:t,defaultScenario:r,entity:o,entitySha:m,projectSlug:x}=G(),f=_(),{iframeRef:S}=z(),[p,P]=d.useState(""),[A,j]=d.useState(!1),[a,i]=d.useState(!1),[s,c]=d.useState(null),[n,l]=d.useState(null),[u,D]=d.useState([]),E=d.useMemo(()=>{var v;return!((v=t==null?void 0:t.metadata)!=null&&v.keyAttributes)||!(t!=null&&t.scenarios)?[]:X(t.metadata.keyAttributes,t.scenarios).keyAttributes},[t]),{interactiveServerUrl:w,isStarting:L,isLoading:W,showIframe:$,iframeKey:J,onIframeLoad:K}=Q({analysisId:t==null?void 0:t.id,scenarioId:r==null?void 0:r.id,scenarioName:r==null?void 0:r.name,projectSlug:x,enabled:!0}),M=d.useCallback(async()=>{var b,v,O,R;if(!p.trim()&&u.length===0){c("Please describe how you want to change the scenario or select key attributes");return}j(!0),c(null),l("Generating scenario with AI...");try{const h=await fetch("/api/generate-scenario-data",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:p,existingScenarios:t.scenarios,scenariosDataStructure:(b=t.metadata)==null?void 0:b.scenariosDataStructure,keyAttributeSelections:u.length>0?u:void 0})}),C=await h.json();if(!h.ok||!C.success)throw new Error(C.error||"Failed to generate scenario data");console.log("[CreateScenario] AI generated scenario:",C.data);const g=C.data;if(!g.name||!g.data)throw new Error("AI response missing required fields (name or data)");l("Saving new scenario..."),i(!0);const U={name:g.name,description:g.description||p,metadata:{data:g.data,interactiveExamplePath:(v=r.metadata)==null?void 0:v.interactiveExamplePath}},q=[...t.scenarios||[],U],T=await fetch("/api/save-scenarios",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({analysis:t,scenarios:q})}),I=await T.json();if(!T.ok||!I.success)throw new Error(I.error||"Failed to save scenario");console.log("[CreateScenario] Scenario saved:",I);const y=(R=(O=I.analysis)==null?void 0:O.scenarios)==null?void 0:R.find(V=>V.name===g.name);if(!(y!=null&&y.id)){console.warn("[CreateScenario] Could not find saved scenario ID, navigating to entity page"),l("Scenario created! Redirecting..."),setTimeout(()=>void f(`/entity/${m}`),1e3);return}if(w){l("Capturing screenshot...");const V=await fetch("/api/capture-screenshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverUrl:w,scenarioId:y.id,projectId:t.projectId,viewportWidth:1440})}),k=await V.json();!V.ok||!k.success?(console.error("[CreateScenario] Capture failed:",k),l("Scenario created! (Screenshot capture failed)")):l("Scenario created and captured!")}else l("Scenario created!");setTimeout(()=>{f(`/entity/${m}/scenarios/${y.id}`)},1e3)}catch(h){console.error("[CreateScenario] Error:",h),c(h instanceof Error?h.message:String(h)),l(null)}finally{j(!1),i(!1)}},[p,u,t,r,m,w,f]),N=A||a;return e.jsxs("div",{className:"h-screen bg-gray-50 flex flex-col",children:[e.jsxs("header",{className:"bg-white border-b border-gray-200 px-8 py-6 shrink-0",children:[e.jsx("div",{className:"mb-4",children:e.jsxs(H,{to:`/entity/${m}`,className:"text-blue-600 no-underline text-sm font-medium transition-colors hover:text-blue-700 hover:underline",children:["← Back to ",o==null?void 0:o.name]})}),e.jsx("h1",{className:"text-[32px] font-bold text-gray-900 m-0 mb-3",children:"Create New Scenario"}),e.jsx("p",{className:"text-gray-600 text-[15px] leading-relaxed m-0",children:"Create a new scenario based on the Default Scenario"})]}),e.jsxs("div",{className:"flex flex-1 gap-0 min-h-0",children:[e.jsxs("aside",{className:"w-[400px] bg-white border-r border-gray-200 overflow-y-auto shrink-0 p-6 flex flex-col",children:[e.jsxs("div",{className:"mb-6",children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Default Scenario Preview"}),e.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:"The preview on the right shows the Default Scenario. Select key attributes and/or describe how you'd like to change it."})]}),E.length>0&&e.jsxs("details",{className:"mb-4 border border-gray-200 rounded-lg",children:[e.jsxs("summary",{className:"px-3 py-2 text-sm font-medium text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg",children:["Select Key Attributes"," ",u.length>0&&e.jsxs("span",{className:"text-blue-600",children:["(",u.length," selected)"]})]}),e.jsx("div",{className:"px-3 pb-3 pt-1 border-t border-gray-100",children:e.jsx(ee,{keyAttributes:E,selections:u,onChange:D,disabled:N})})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("label",{htmlFor:"prompt",className:"block text-sm font-medium text-gray-700 mb-2",children:"How would you like to change it for your new scenario?"}),e.jsx("textarea",{id:"prompt",value:p,onChange:b=>P(b.target.value),placeholder:"e.g., Show an empty state with no items in the list, or Display an error message when the API fails, or Show a user with admin privileges...",className:"w-full h-40 px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 text-sm resize-none",disabled:N})]}),e.jsxs("div",{className:"mt-6 space-y-3",children:[e.jsx("button",{onClick:()=>void M(),disabled:N||!p.trim()&&u.length===0,className:"w-full px-4 py-2 bg-[#005c75] text-white rounded-md text-sm font-medium hover:bg-[#004a5e] disabled:bg-gray-400 disabled:cursor-not-allowed transition-colors",children:N?"Creating...":"Create Scenario"}),n&&e.jsx("div",{className:"text-sm text-blue-600 bg-blue-50 px-3 py-2 rounded-md",children:n}),s&&e.jsx("div",{className:"text-sm text-red-600 bg-red-50 px-3 py-2 rounded-md",children:s})]})]}),e.jsx("main",{className:"flex-1 bg-gray-100 overflow-auto flex flex-col min-w-0",children:e.jsx(B,{scenarioId:r.id||r.name,scenarioName:r.name,iframeUrl:w,isStarting:L,isLoading:W,showIframe:$,iframeKey:J,onIframeLoad:K,projectSlug:x,defaultWidth:1440,defaultHeight:900})})]})]})}const le=F(function(){return e.jsx(Y,{children:e.jsx(te,{})})});export{le as default,ce as meta};
@@ -1 +0,0 @@
1
- import{b as ne,r as y,j as e,w as le,u as ce,f as de}from"./chunk-JMJ3UQ3L-BambyYE_.js";import{u as me}from"./useReportContext-DsJbgMY9.js";import{F as he,a as fe,E as pe,S as xe,u as ue}from"./EntityItem-wXL1Z2Aq.js";import{g as E}from"./fileTableUtils-DAtOlaWE.js";import{C as ae}from"./chevron-down-BYimnrHg.js";import{S as ye}from"./search-DDGjYAMJ.js";import"./useToast-DWHcCcl1.js";import"./TruncatedFilePath-6J7zDUD5.js";import"./SafeScreenshot-BfmDgXxG.js";import"./LibraryFunctionPreview-CBQPrpT0.js";import"./scenarioStatus-B_8jpV3e.js";import"./triangle-alert-CBc5dE1s.js";import"./createLucideIcon-CgUsG7ib.js";import"./EntityTypeIcon-CXFKsCOD.js";import"./EntityTypeBadge-CzGX-miz.js";function ve({entities:G,page:h,itemsPerPage:g=50,currentRun:z,filter:T,entityType:Q,queueState:i,isEntityPending:j,pendingEntityKeys:F,onGenerateSimulation:M,onGenerateAllSimulations:k,totalFilesCount:Y,totalEntitiesCount:_,uncommittedFilesCount:L,showOnlyUncommitted:H,onToggleUncommitted:I}){const[U,O]=ne(),[R,x]=y.useState(new Set),[p,v]=y.useState(""),[J,D]=y.useState(!1),[A,V]=y.useState("all"),[C,B]=y.useState("desc"),W=Q||"all",ee=y.useMemo(()=>{let s=G;return W!=="all"&&(s=s.filter(o=>o.entityType===W)),T==="analyzed"&&(s=s.filter(o=>o.analyses&&o.analyses.length>0)),s},[G,W,T]),te=y.useMemo(()=>{const s=new Map,o=new Map,f=new Map;ee.forEach(a=>{var r,l;const t=`${a.filePath}::${a.name}`,n=o.get(t);if(!n)o.set(t,a),f.set(t,[]);else{const d=((r=n.metadata)==null?void 0:r.editedAt)||n.createdAt||"",c=((l=a.metadata)==null?void 0:l.editedAt)||a.createdAt||"";let m=!1;if(c>d)m=!0;else if(c===d){const u=n.createdAt||"";m=(a.createdAt||"")>u}m?(f.get(t).push(n),o.set(t,a)):f.get(t).push(a)}}),o.forEach((a,t)=>{var r;if(!(a.analyses&&a.analyses.length>0)&&((r=a.metadata)!=null&&r.previousVersionWithAnalyses)){const d=(f.get(t)||[]).find(c=>{var m;return c.sha===((m=a.metadata)==null?void 0:m.previousVersionWithAnalyses)});d&&d.analyses&&d.analyses.length>0&&(a.analyses=d.analyses)}}),Array.from(o.values()).sort((a,t)=>{var l,d,c,m;const n=!((l=a.metadata)!=null&&l.notExported)&&!((d=a.metadata)!=null&&d.namedExport),r=!((c=t.metadata)!=null&&c.notExported)&&!((m=t.metadata)!=null&&m.namedExport);return n&&!r?-1:!n&&r?1:0}).forEach(a=>{var d,c,m,u,b;const t=a.filePath??"No File Path";s.has(t)||s.set(t,{filePath:t,entities:[],totalCount:0,uncommittedCount:0,lastUpdated:null,previewScreenshots:[],previewScreenshotErrors:[],previewLibraryScenarios:[],state:"up-to-date",simulationCount:0});const n=s.get(t);n.entities.push(a),n.totalCount++,(d=a.metadata)!=null&&d.isUncommitted&&n.uncommittedCount++;const r=((u=(m=(c=a.analyses)==null?void 0:c[0])==null?void 0:m.scenarios)==null?void 0:u.length)||0;n.simulationCount+=r;const l=((b=a.metadata)==null?void 0:b.editedAt)||a.updatedAt;l&&(!n.lastUpdated||new Date(l)>new Date(n.lastUpdated))&&(n.lastUpdated=l)});const K=(i==null?void 0:i.jobs)||[],q=a=>{const t=`${a.filePath||""}::${a.name}`;return(F==null?void 0:F.includes(t))||!1};s.forEach(a=>{const t=a.entities.map(n=>q(n)?"queued":E(n,K));t.includes("analyzing")||t.includes("queued")?a.state="analyzing":t.includes("incomplete")?a.state="incomplete":t.includes("out-of-date")?a.state="out-of-date":t.includes("not-analyzed")?a.state="not-analyzed":a.state="up-to-date"}),s.forEach(a=>{var t,n,r,l,d;for(const c of a.entities){if(a.previewScreenshots.length+a.previewLibraryScenarios.length>=3)break;const u=((n=(t=c.analyses)==null?void 0:t[0])==null?void 0:n.scenarios)||[];if(c.entityType==="library"){const b=u.find(N=>{var P,S;return((P=N.metadata)==null?void 0:P.executionResult)||((S=N.metadata)==null?void 0:S.error)});b&&a.previewLibraryScenarios.push({scenario:b,entitySha:c.sha})}else{const b=u.find(N=>{var P,S;return(S=(P=N.metadata)==null?void 0:P.screenshotPaths)==null?void 0:S[0]});if(b){const N=(l=(r=b.metadata)==null?void 0:r.screenshotPaths)==null?void 0:l[0],P=!!((d=b.metadata)!=null&&d.error);N&&!a.previewScreenshots.includes(N)&&(a.previewScreenshots.push(N),a.previewScreenshotErrors.push(P))}}}});const $=Array.from(s.values());return $.sort((a,t)=>{if(T==="analyzed"){const l=Math.max(...a.entities.filter(c=>{var m,u;return(u=(m=c.analyses)==null?void 0:m[0])==null?void 0:u.createdAt}).map(c=>new Date(c.analyses[0].createdAt).getTime()),0),d=Math.max(...t.entities.filter(c=>{var m,u;return(u=(m=c.analyses)==null?void 0:m[0])==null?void 0:u.createdAt}).map(c=>new Date(c.analyses[0].createdAt).getTime()),0);return C==="desc"?d-l:l-d}if(a.uncommittedCount>0&&t.uncommittedCount===0)return-1;if(a.uncommittedCount===0&&t.uncommittedCount>0)return 1;const n=a.lastUpdated?new Date(a.lastUpdated).getTime():0,r=t.lastUpdated?new Date(t.lastUpdated).getTime():0;return C==="desc"?r-n:n-r}),$},[ee,T,C,i,F]),w=y.useMemo(()=>{let s=te;if(A!=="all"&&(s=s.filter(o=>o.state===A)),p.trim()){const o=p.toLowerCase();s=s.filter(f=>f.filePath.toLowerCase().includes(o))}return s},[te,p,A]),se=(h-1)*g,ie=se+g,X=w.slice(se,ie),Z=Math.ceil(w.length/g),re=s=>{x(o=>{const f=new Set(o);return f.has(s)?f.delete(s):f.add(s),f})},oe=()=>{B(s=>s==="desc"?"asc":"desc")};return e.jsxs("div",{children:[e.jsxs("div",{className:"bg-white border-b border-gray-200 rounded-t-lg px-5 py-4 mb-3",children:[e.jsx("div",{className:"text-[11px] text-gray-500 mb-2 uppercase",children:"Filters"}),e.jsxs("div",{className:"flex gap-3",children:[e.jsxs("div",{className:"relative w-[130px]",children:[e.jsxs("select",{value:W,onChange:s=>{const o=s.target.value,f=new URLSearchParams(U);o==="all"?f.delete("entityType"):f.set("entityType",o),f.set("page","1"),O(f)},className:"appearance-none bg-gray-50 border border-gray-200 rounded px-[10px] pr-6 text-[13px] h-[39px] w-full cursor-pointer focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] hover:border-gray-300 transition-colors",children:[e.jsx("option",{value:"all",children:"All Types"}),e.jsx("option",{value:"visual",children:"Visual"}),e.jsx("option",{value:"library",children:"Library"})]}),e.jsx(ae,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-3 h-3 text-gray-500 pointer-events-none"})]}),e.jsxs("div",{className:"relative w-[130px]",children:[e.jsxs("select",{value:A,onChange:s=>V(s.target.value),className:"appearance-none bg-gray-50 border border-gray-200 rounded px-[10px] pr-6 text-[13px] h-[39px] w-full cursor-pointer focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] hover:border-gray-300 transition-colors",children:[e.jsx("option",{value:"all",children:"All States"}),e.jsx("option",{value:"analyzing",children:"Analyzing..."}),e.jsx("option",{value:"up-to-date",children:"Up to date"}),e.jsx("option",{value:"incomplete",children:"Incomplete"}),e.jsx("option",{value:"out-of-date",children:"Out of date"}),e.jsx("option",{value:"not-analyzed",children:"Not analyzed"})]}),e.jsx(ae,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-3 h-3 text-gray-500 pointer-events-none"})]}),e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(ye,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),e.jsx("input",{type:"text",placeholder:"Search component",value:p,onChange:s=>v(s.target.value),className:"w-full bg-gray-50 border border-gray-200 rounded pl-9 pr-[10px] text-[13px] h-[39px] placeholder:text-gray-400 focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] transition-colors"})]})]})]}),Y!==void 0&&_!==void 0&&L!==void 0&&e.jsx("div",{className:"mb-3",children:e.jsxs("div",{className:"flex items-center justify-between text-[13px]",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("span",{className:"text-gray-900",children:[w.length," ",w.length===1?"file":"files"]}),e.jsx("span",{className:"text-gray-300",children:"|"}),e.jsxs("div",{className:"flex items-center gap-1 group relative",children:[e.jsxs("span",{className:"text-gray-900",children:[w.reduce((s,o)=>s+o.totalCount,0)," ",w.reduce((s,o)=>s+o.totalCount,0)===1?"entity":"entities"]}),e.jsxs("svg",{className:"w-3.5 h-3.5 text-[#001f3f]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10",strokeWidth:"2"}),e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 16v-4m0-4h.01"})]}),e.jsx("div",{className:"absolute left-0 top-full mt-2 hidden group-hover:block z-50 w-80",children:e.jsxs("div",{className:"bg-gray-900 text-white text-xs rounded-lg px-3 py-2 shadow-lg",children:["In CodeYam, an entity is a discrete, analyzable unit of code that can be independently simulated and tested.",e.jsx("div",{className:"absolute -top-1 left-4 w-2 h-2 bg-gray-900 transform rotate-45"})]})})]}),e.jsx("span",{className:"text-gray-300",children:"|"}),H?e.jsxs("button",{onClick:I,className:"flex items-center gap-2 font-medium text-[#005c75] underline hover:text-[#004a5e] transition-colors",children:[w.filter(s=>s.uncommittedCount>0).length," ","uncommitted"," ",w.filter(s=>s.uncommittedCount>0).length===1?"file":"files",e.jsx("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M6 18L18 6M6 6l12 12"})})]}):e.jsxs("button",{onClick:I,className:"font-medium text-[#005c75] underline hover:text-[#004a5e] transition-colors",children:[L," uncommitted"," ",L===1?"file":"files"]})]}),X.length>0&&e.jsxs("div",{className:"flex gap-6",children:[e.jsx("button",{onClick:()=>{x(new Set(X.map(s=>s.filePath))),D(!0)},className:"text-[#005c75] hover:bg-[#E6F5F8] hover:text-[#003d4f] font-medium transition-all cursor-pointer px-3 py-1 rounded",children:"Expand All"}),e.jsx("button",{onClick:()=>{x(new Set),D(!1)},className:"text-[#005c75] hover:bg-[#E6F5F8] hover:text-[#003d4f] font-medium transition-all cursor-pointer px-3 py-1 rounded",children:"Collapse All"})]})]})}),e.jsx(he,{showActions:!0,sortOrder:C,onSortChange:oe}),e.jsx("div",{className:"flex flex-col gap-[3px]",children:X.map(s=>{const o=R.has(s.filePath),K=s.entities.filter(t=>(t.entityType==="visual"||t.entityType==="library")&&(E(t,(i==null?void 0:i.jobs)||[])==="not-analyzed"||E(t,(i==null?void 0:i.jobs)||[])==="out-of-date"||E(t,(i==null?void 0:i.jobs)||[])==="incomplete")).length>0,q=t=>{var n;return((n=z==null?void 0:z.currentEntityShas)==null?void 0:n.includes(t))||!1},$=t=>{var n;return j!=null&&j(t)?!0:((n=i==null?void 0:i.jobs)==null?void 0:n.some(r=>{var l;return(l=r.entityShas)==null?void 0:l.includes(t.sha)}))||!1},a=t=>{M==null||M(t)};return e.jsx(fe,{filePath:s.filePath,isExpanded:o,onToggle:()=>re(s.filePath),simulationPreviews:e.jsx(xe,{entities:s.entities,maxPreviews:1}),entityCount:s.totalCount,state:s.state,lastModified:s.lastUpdated,uncommittedCount:s.uncommittedCount,isUncommitted:s.uncommittedCount>0,actionButton:K?e.jsx("button",{onClick:t=>{t.stopPropagation();const n=s.entities.filter(r=>(r.entityType==="visual"||r.entityType==="library")&&(E(r,(i==null?void 0:i.jobs)||[])==="not-analyzed"||E(r,(i==null?void 0:i.jobs)||[])==="out-of-date"||E(r,(i==null?void 0:i.jobs)||[])==="incomplete"));k==null||k(n)},className:"bg-[#005c75] text-white rounded text-[12px] font-['IBM_Plex_Sans'] font-medium hover:bg-[#004a5e] transition-colors cursor-pointer px-[15px] py-0 h-[28px]",children:"Analyze"}):void 0,children:s.entities.sort((t,n)=>{const r=t.entityType==="visual"||t.entityType==="library",l=n.entityType==="visual"||n.entityType==="library";return r&&!l?-1:!r&&l?1:0}).map(t=>e.jsx(pe,{entity:t,isActivelyAnalyzing:q(t.sha),isQueued:$(t),onGenerateSimulation:a},t.sha))},s.filePath)})}),Z>1&&e.jsxs("div",{className:"flex justify-center items-center gap-4 mt-6 p-4",children:[h>1&&e.jsx("a",{href:`?${new URLSearchParams({...Object.fromEntries(U),page:String(h-1)}).toString()}`,className:"no-underline font-medium hover:underline",style:{color:"#005C75"},children:"← Previous"}),e.jsxs("span",{children:["Page ",h," of ",Z]}),h<Z&&e.jsx("a",{href:`?${new URLSearchParams({...Object.fromEntries(U),page:String(h+1)}).toString()}`,className:"no-underline font-medium hover:underline",style:{color:"#005C75"},children:"Next →"})]})]})}const Le=()=>[{title:"CodeYam - Files & Entities"},{name:"description",content:"Browse your codebase files and entities"}],De=le(function(){var U,O,R;const{entities:h,currentCommit:g,page:z,filter:T,entityType:Q,queueState:i}=ce();de(),ne();const[j,F]=y.useState(!1);me({source:"files-page"});const{handleGenerateSimulation:M,handleGenerateAllSimulations:k,isEntityPending:Y,pendingEntityKeys:_}=ue((O=(U=g==null?void 0:g.metadata)==null?void 0:U.currentRun)==null?void 0:O.currentEntityShas,i),L=y.useMemo(()=>{if(!h)return[];const x=new Set([]);for(const p of h)x.add(p.filePath??"No File Path");return Array.from(x)},[h]),H=y.useMemo(()=>{if(!h)return[];let x=h;return j&&(x=x.filter(p=>{var v;return(v=p.metadata)==null?void 0:v.isUncommitted})),x.sort((p,v)=>{var J,D,A,V,C,B;return(J=p.metadata)!=null&&J.isUncommitted&&!((D=v.metadata)!=null&&D.isUncommitted)?-1:!((A=p.metadata)!=null&&A.isUncommitted)&&((V=v.metadata)!=null&&V.isUncommitted)?1:new Date(((C=v.metadata)==null?void 0:C.editedAt)||0).getTime()-new Date(((B=p.metadata)==null?void 0:B.editedAt)||0).getTime()})},[h,j]),I=y.useMemo(()=>{var p;if(!h)return[];const x=new Set([]);for(const v of h)(p=v.metadata)!=null&&p.isUncommitted&&x.add(v.filePath??"No File Path");return Array.from(x)},[h]);return h?e.jsx("div",{className:"bg-[#f9f9f9] min-h-screen",children:e.jsxs("div",{className:"px-20 py-12 font-sans",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("h1",{className:"text-3xl font-semibold text-gray-900 mb-2",children:"Files & Entities"}),e.jsx("p",{className:"text-gray-600",children:"This is a list of all the files in your app."})]}),e.jsx(ve,{entities:H,page:z,itemsPerPage:50,currentRun:(R=g==null?void 0:g.metadata)==null?void 0:R.currentRun,filter:T,entityType:Q,queueState:i,isEntityPending:Y,pendingEntityKeys:_,onGenerateSimulation:M,onGenerateAllSimulations:k,totalFilesCount:L.length,totalEntitiesCount:h.length,uncommittedFilesCount:I.length,showOnlyUncommitted:j,onToggleUncommitted:()=>F(!j)})]})}):e.jsx("div",{className:"bg-[#f9f9f9] min-h-screen",children:e.jsxs("div",{className:"px-12 py-6 font-sans",children:[e.jsx("h1",{className:"text-3xl font-semibold text-gray-900",children:"Error"}),e.jsx("p",{className:"text-base text-gray-500",children:"Unable to retrieve entities"})]})})});export{De as default,Le as meta};