@codeyam/codeyam-cli 0.1.0-staging.e38f7bd → 0.1.0

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 (1038) 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 +21 -17
  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 +228 -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 +205 -10
  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 +38 -1
  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 +1619 -125
  18. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  19. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +324 -5
  20. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  21. package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +2543 -399
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +21 -4
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +976 -0
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +243 -77
  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 +71 -2
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +161 -19
  30. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  31. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +163 -14
  32. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  33. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  34. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  35. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +441 -82
  36. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  37. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +174 -0
  38. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  39. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  40. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  41. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
  42. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +89 -112
  43. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +63 -2
  44. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1419 -101
  45. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +216 -109
  46. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +614 -0
  47. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  48. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
  49. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  50. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +143 -31
  51. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
  52. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  53. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  54. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  55. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +17 -7
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -102
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  61. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
  62. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -53
  63. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  64. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
  65. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  66. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  67. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  68. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  69. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +127 -3
  70. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +121 -2
  71. package/analyzer-template/packages/analyze/index.ts +2 -0
  72. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  73. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  74. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  75. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  76. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  77. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  78. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  79. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  80. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  81. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  82. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  83. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +570 -180
  84. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +54 -1
  85. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  86. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  87. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  88. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  89. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  90. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  91. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  92. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  93. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  94. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +22 -13
  95. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  96. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +313 -0
  97. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +711 -78
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
  100. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  101. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +550 -137
  102. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
  103. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +78 -83
  104. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +4 -8
  105. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1067 -167
  106. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  107. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  108. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  109. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  110. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  111. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  112. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  113. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  114. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  115. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  116. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  117. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  118. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  119. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  120. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  121. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  122. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  123. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  124. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
  125. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
  126. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
  127. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
  128. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  129. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  130. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  131. package/analyzer-template/packages/aws/package.json +3 -3
  132. package/analyzer-template/packages/aws/s3/index.ts +1 -0
  133. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  134. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  135. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  136. package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
  137. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  138. package/analyzer-template/packages/database/package.json +1 -1
  139. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  140. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  141. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  142. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  143. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  144. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  145. package/analyzer-template/packages/database/src/lib/kysely/db.ts +18 -5
  146. package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
  147. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  148. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +36 -9
  149. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  150. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  151. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  152. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  153. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  154. package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
  155. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  156. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  157. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +30 -5
  158. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  159. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  160. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  161. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  162. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  163. package/analyzer-template/packages/generate/index.ts +3 -0
  164. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  165. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  166. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  167. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +9 -4
  168. package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
  169. package/analyzer-template/packages/generate/src/lib/directExecutionScript.ts +17 -2
  170. package/analyzer-template/packages/generate/src/lib/getComponentScenarioPath.ts +8 -3
  171. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  172. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  173. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  174. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  175. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  176. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  177. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  178. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  179. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  180. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  181. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  182. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  184. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +4 -2
  185. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  186. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +13 -3
  187. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  188. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
  189. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -11
  190. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  191. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  192. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  193. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  194. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  195. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +30 -7
  196. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  197. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  198. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  199. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  200. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  201. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  202. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  203. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  204. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  205. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  206. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  207. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  208. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  209. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  210. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  211. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  212. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  213. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  214. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  215. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  216. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  217. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  218. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  219. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  220. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  221. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
  222. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  223. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  224. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  225. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  226. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  227. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  228. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  229. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  230. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  231. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +23 -5
  232. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  233. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  234. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  235. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  236. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  237. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  238. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  239. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  240. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  241. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
  242. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  243. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  244. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  245. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  246. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  247. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  248. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  249. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  250. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  251. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  252. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  253. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  254. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  255. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  256. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  257. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  258. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  259. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  260. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  261. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
  262. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +27 -1
  263. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
  264. package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.d.ts.map +1 -1
  265. package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js +10 -1
  266. package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js.map +1 -1
  267. package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.d.ts.map +1 -1
  268. package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js +7 -3
  269. package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js.map +1 -1
  270. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  271. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  272. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  273. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  274. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  275. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  276. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  277. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  278. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  279. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  280. package/analyzer-template/packages/github/dist/types/index.d.ts +2 -2
  281. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  282. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  283. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +87 -13
  284. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  285. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  286. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  287. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  288. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  289. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  290. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  291. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +11 -6
  292. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  293. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  294. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  295. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  296. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  297. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  298. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  299. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
  300. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js +26 -2
  301. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
  302. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  303. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
  304. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  305. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  306. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  307. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  308. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  309. package/analyzer-template/packages/github/package.json +1 -1
  310. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  311. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  312. package/analyzer-template/packages/process/index.ts +2 -0
  313. package/analyzer-template/packages/process/package.json +12 -0
  314. package/analyzer-template/packages/process/tsconfig.json +8 -0
  315. package/analyzer-template/packages/types/index.ts +5 -0
  316. package/analyzer-template/packages/types/src/types/Analysis.ts +104 -13
  317. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  318. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  319. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  320. package/analyzer-template/packages/types/src/types/Scenario.ts +11 -10
  321. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +228 -3
  322. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  323. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  324. package/analyzer-template/packages/ui-components/package.json +4 -4
  325. package/analyzer-template/packages/ui-components/src/components/ScenarioDetailInteractiveView.tsx +23 -7
  326. package/analyzer-template/packages/utils/dist/types/index.d.ts +2 -2
  327. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  328. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  329. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +87 -13
  330. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  331. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  332. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  333. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  334. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  335. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  336. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  337. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +11 -6
  338. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  339. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  340. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  341. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  342. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  343. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  344. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  345. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
  346. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js +26 -2
  347. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
  348. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  349. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +93 -2
  350. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  351. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  352. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
  353. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  354. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  355. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  356. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  357. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  358. package/analyzer-template/packages/utils/src/lib/applyUniversalMocks.ts +28 -2
  359. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +108 -2
  360. package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +27 -0
  361. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  362. package/analyzer-template/playwright/capture.ts +57 -26
  363. package/analyzer-template/playwright/captureStatic.ts +1 -1
  364. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  365. package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
  366. package/analyzer-template/playwright/takeScreenshot.ts +15 -9
  367. package/analyzer-template/playwright/waitForServer.ts +21 -6
  368. package/analyzer-template/project/TESTING.md +83 -0
  369. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  370. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  371. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  372. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  373. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  374. package/analyzer-template/project/constructMockCode.ts +1319 -158
  375. package/analyzer-template/project/controller/startController.ts +16 -1
  376. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  377. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  378. package/analyzer-template/project/loadReadyToBeCaptured.ts +82 -42
  379. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  380. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  381. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +13 -9
  382. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +93 -42
  383. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  384. package/analyzer-template/project/orchestrateCapture.ts +88 -12
  385. package/analyzer-template/project/reconcileMockDataKeys.ts +245 -2
  386. package/analyzer-template/project/runAnalysis.ts +11 -0
  387. package/analyzer-template/project/runMultiScenarioServer.ts +11 -10
  388. package/analyzer-template/project/serverOnlyModules.ts +413 -0
  389. package/analyzer-template/project/start.ts +72 -19
  390. package/analyzer-template/project/startScenarioCapture.ts +79 -41
  391. package/analyzer-template/project/writeMockDataTsx.ts +466 -73
  392. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  393. package/analyzer-template/project/writeScenarioComponents.ts +1433 -214
  394. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  395. package/analyzer-template/project/writeSimpleRoot.ts +56 -22
  396. package/analyzer-template/project/writeUniversalMocks.ts +32 -11
  397. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  398. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  399. package/analyzer-template/tsconfig.json +2 -1
  400. package/background/src/lib/local/createLocalAnalyzer.js +2 -30
  401. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  402. package/background/src/lib/local/execAsync.js +1 -1
  403. package/background/src/lib/local/execAsync.js.map +1 -1
  404. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  405. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  406. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  407. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  408. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  409. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  410. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  411. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  412. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  413. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  414. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  415. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  416. package/background/src/lib/virtualized/project/constructMockCode.js +1171 -120
  417. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  418. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  419. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  420. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  421. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  422. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  423. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  424. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +34 -9
  425. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  426. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  427. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  428. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  429. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  430. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +12 -6
  431. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  432. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +73 -36
  433. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  434. package/background/src/lib/virtualized/project/orchestrateCapture.js +72 -13
  435. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  436. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +204 -2
  437. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  438. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  439. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  440. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +11 -9
  441. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  442. package/background/src/lib/virtualized/project/serverOnlyModules.js +338 -0
  443. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -0
  444. package/background/src/lib/virtualized/project/start.js +62 -19
  445. package/background/src/lib/virtualized/project/start.js.map +1 -1
  446. package/background/src/lib/virtualized/project/startScenarioCapture.js +61 -31
  447. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  448. package/background/src/lib/virtualized/project/writeMockDataTsx.js +404 -62
  449. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  450. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  451. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  452. package/background/src/lib/virtualized/project/writeScenarioComponents.js +1056 -146
  453. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  454. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  455. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  456. package/background/src/lib/virtualized/project/writeSimpleRoot.js +57 -20
  457. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  458. package/background/src/lib/virtualized/project/writeUniversalMocks.js +27 -12
  459. package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
  460. package/codeyam-cli/scripts/apply-setup.js +180 -0
  461. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  462. package/codeyam-cli/src/cli.js +11 -1
  463. package/codeyam-cli/src/cli.js.map +1 -1
  464. package/codeyam-cli/src/codeyam-cli.js +18 -2
  465. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  466. package/codeyam-cli/src/commands/analyze.js +5 -3
  467. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  468. package/codeyam-cli/src/commands/baseline.js +176 -0
  469. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  470. package/codeyam-cli/src/commands/debug.js +44 -18
  471. package/codeyam-cli/src/commands/debug.js.map +1 -1
  472. package/codeyam-cli/src/commands/default.js +30 -34
  473. package/codeyam-cli/src/commands/default.js.map +1 -1
  474. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  475. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  476. package/codeyam-cli/src/commands/init.js +49 -257
  477. package/codeyam-cli/src/commands/init.js.map +1 -1
  478. package/codeyam-cli/src/commands/memory.js +264 -0
  479. package/codeyam-cli/src/commands/memory.js.map +1 -0
  480. package/codeyam-cli/src/commands/recapture.js +228 -0
  481. package/codeyam-cli/src/commands/recapture.js.map +1 -0
  482. package/codeyam-cli/src/commands/report.js +72 -24
  483. package/codeyam-cli/src/commands/report.js.map +1 -1
  484. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  485. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  486. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  487. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  488. package/codeyam-cli/src/commands/start.js +8 -12
  489. package/codeyam-cli/src/commands/start.js.map +1 -1
  490. package/codeyam-cli/src/commands/status.js +23 -1
  491. package/codeyam-cli/src/commands/status.js.map +1 -1
  492. package/codeyam-cli/src/commands/test-startup.js +3 -1
  493. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  494. package/codeyam-cli/src/commands/verify.js +14 -2
  495. package/codeyam-cli/src/commands/verify.js.map +1 -1
  496. package/codeyam-cli/src/commands/wipe.js +108 -0
  497. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  498. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +179 -0
  499. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  500. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  501. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  502. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -82
  503. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  504. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  505. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  506. package/codeyam-cli/src/utils/analyzer.js +7 -0
  507. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  508. package/codeyam-cli/src/utils/backgroundServer.js +104 -23
  509. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  510. package/codeyam-cli/src/utils/database.js +91 -5
  511. package/codeyam-cli/src/utils/database.js.map +1 -1
  512. package/codeyam-cli/src/utils/generateReport.js +253 -106
  513. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  514. package/codeyam-cli/src/utils/git.js +79 -0
  515. package/codeyam-cli/src/utils/git.js.map +1 -0
  516. package/codeyam-cli/src/utils/install-skills.js +76 -42
  517. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  518. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  519. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  520. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  521. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  522. package/codeyam-cli/src/utils/progress.js +7 -0
  523. package/codeyam-cli/src/utils/progress.js.map +1 -1
  524. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
  525. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  526. package/codeyam-cli/src/utils/queue/job.js +249 -16
  527. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  528. package/codeyam-cli/src/utils/queue/manager.js +103 -7
  529. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  530. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  531. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  532. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  533. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  534. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  535. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  536. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  537. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  538. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  539. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  540. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  541. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  542. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  543. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  544. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  545. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
  546. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  547. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +378 -0
  548. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  549. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
  550. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  551. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  552. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  553. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  554. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  555. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  556. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  557. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  558. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  559. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  560. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  561. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  562. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  563. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  564. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  565. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  566. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  567. package/codeyam-cli/src/utils/rules/index.js +6 -0
  568. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  569. package/codeyam-cli/src/utils/rules/parser.js +83 -0
  570. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  571. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  572. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  573. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  574. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  575. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  576. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  577. package/codeyam-cli/src/utils/serverState.js +37 -10
  578. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  579. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -42
  580. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  581. package/codeyam-cli/src/utils/versionInfo.js +25 -19
  582. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  583. package/codeyam-cli/src/utils/wipe.js +128 -0
  584. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  585. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  586. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  587. package/codeyam-cli/src/webserver/app/lib/database.js +118 -6
  588. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  589. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  590. package/codeyam-cli/src/webserver/backgroundServer.js +55 -10
  591. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  592. package/codeyam-cli/src/webserver/bootstrap.js +60 -0
  593. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -0
  594. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-jNYXRRNI.js +1 -0
  595. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-bwuHPyTa.js +11 -0
  596. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-kykTbcnD.js → EntityTypeBadge-CvzqMxcu.js} +1 -1
  597. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BH0XDim7.js +41 -0
  598. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-EhOseatT.js +34 -0
  599. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-yjIHlOGa.js +25 -0
  600. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-Cq5o8jL4.js +3 -0
  601. package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-BvMu2i-g.js +6 -0
  602. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-kgBTLoJD.js +3 -0
  603. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BzPgx-xO.js +11 -0
  604. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CwZrv-Ok.js +1 -0
  605. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BX2Ny2Qj.js +10 -0
  606. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-C06nsHKY.js → TruncatedFilePath-CDpEprKa.js} +1 -1
  607. package/codeyam-cli/src/webserver/build/client/assets/_index-BRx8ZGZo.js +11 -0
  608. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-4S4yPfFw.js +27 -0
  609. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DHKuQSmR.js +17 -0
  610. package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
  611. package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
  612. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  613. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  614. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  615. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  616. package/codeyam-cli/src/webserver/build/client/assets/book-open-D4IPYH_y.js +6 -0
  617. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-CG65viiV.js +6 -0
  618. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-DB3aFuEO.js +51 -0
  619. package/codeyam-cli/src/webserver/build/client/assets/circle-check-igfMr5DY.js +6 -0
  620. package/codeyam-cli/src/webserver/build/client/assets/copy-Coc4o_8c.js +11 -0
  621. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-D1zB-pYc.js +21 -0
  622. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  623. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  624. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-JTAjQ54M.js +1 -0
  625. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-CYqBrC9s.js → entity._sha._-B0h9AqE6.js} +22 -15
  626. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DjLxr2JB.js +6 -0
  627. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CtYowLOt.js +6 -0
  628. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-PePWg17F.js +5 -0
  629. package/codeyam-cli/src/webserver/build/client/assets/entry.client-I-Wo99C_.js +29 -0
  630. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  631. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-9sMMAiWJ.js +1 -0
  632. package/codeyam-cli/src/webserver/build/client/assets/files-Co65J0s3.js +1 -0
  633. package/codeyam-cli/src/webserver/build/client/assets/git-BdHOxVfg.js +15 -0
  634. package/codeyam-cli/src/webserver/build/client/assets/globals-CCgBKWy4.css +1 -0
  635. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-fmIEn3Bc.js +9 -0
  636. package/codeyam-cli/src/webserver/build/client/assets/index-CUM5iXwc.js +9 -0
  637. package/codeyam-cli/src/webserver/build/client/assets/index-_417gcQW.js +3 -0
  638. package/codeyam-cli/src/webserver/build/client/assets/labs-BK0C1H1T.js +1 -0
  639. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-TzRHMVog.js +6 -0
  640. package/codeyam-cli/src/webserver/build/client/assets/manifest-390cb8fa.js +1 -0
  641. package/codeyam-cli/src/webserver/build/client/assets/memory-CzZySbBE.js +78 -0
  642. package/codeyam-cli/src/webserver/build/client/assets/pause-hjzB7t2z.js +11 -0
  643. package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
  644. package/codeyam-cli/src/webserver/build/client/assets/root-DnbDhvTU.js +62 -0
  645. package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
  646. package/codeyam-cli/src/webserver/build/client/assets/search-DcAwD_Ln.js +6 -0
  647. package/codeyam-cli/src/webserver/build/client/assets/settings-CclxrcPK.js +1 -0
  648. package/codeyam-cli/src/webserver/build/client/assets/simulations-DVNJVQgD.js +1 -0
  649. package/codeyam-cli/src/webserver/build/client/assets/terminal-DbEAHMbA.js +11 -0
  650. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CAD5b1o_.js +6 -0
  651. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BqgrAzs3.js +1 -0
  652. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-Blr5oZDE.js → useLastLogLine-DAFqfEDH.js} +1 -1
  653. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DZlYx2c4.js +1 -0
  654. package/codeyam-cli/src/webserver/build/client/assets/{useToast-Bbf4Hokd.js → useToast-ihdMtlf6.js} +1 -1
  655. package/codeyam-cli/src/webserver/build/server/assets/index-CxaRxKVt.js +1 -0
  656. package/codeyam-cli/src/webserver/build/server/assets/server-build-D4DT0nM_.js +259 -0
  657. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  658. package/codeyam-cli/src/webserver/build-info.json +5 -5
  659. package/codeyam-cli/src/webserver/devServer.js +1 -3
  660. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  661. package/codeyam-cli/src/webserver/server.js +35 -25
  662. package/codeyam-cli/src/webserver/server.js.map +1 -1
  663. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam-debug.md} +48 -4
  664. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  665. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  666. package/codeyam-cli/templates/codeyam-memory.md +396 -0
  667. package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
  668. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam-setup.md} +151 -4
  669. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam-sim.md} +1 -1
  670. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam-test.md} +1 -1
  671. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam-verify.md} +1 -1
  672. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  673. package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
  674. package/codeyam-cli/templates/rules-instructions.md +132 -0
  675. package/package.json +25 -22
  676. package/packages/ai/index.js +8 -6
  677. package/packages/ai/index.js.map +1 -1
  678. package/packages/ai/src/lib/analyzeScope.js +181 -13
  679. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  680. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  681. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  682. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +154 -9
  683. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  684. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  685. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  686. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  687. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  688. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  689. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  690. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  691. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  692. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +23 -0
  693. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  694. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  695. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  696. package/packages/ai/src/lib/astScopes/processExpression.js +1235 -104
  697. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  698. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  699. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  700. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  701. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  702. package/packages/ai/src/lib/completionCall.js +178 -31
  703. package/packages/ai/src/lib/completionCall.js.map +1 -1
  704. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1961 -224
  705. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  706. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +19 -4
  707. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  708. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +661 -0
  709. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
  710. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +180 -56
  711. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  712. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  713. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  714. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  715. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  716. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +66 -2
  717. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  718. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +139 -13
  719. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  720. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  721. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  722. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +142 -12
  723. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  724. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  725. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  726. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  727. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  728. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  729. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  730. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +371 -73
  731. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  732. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  733. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  734. package/packages/ai/src/lib/dataStructureChunking.js +126 -0
  735. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  736. package/packages/ai/src/lib/deepEqual.js +32 -0
  737. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  738. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  739. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  740. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  741. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  742. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  743. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  744. package/packages/ai/src/lib/generateChangesEntityScenarios.js +81 -90
  745. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  746. package/packages/ai/src/lib/generateEntityDataStructure.js +50 -1
  747. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  748. package/packages/ai/src/lib/generateEntityScenarioData.js +1127 -91
  749. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  750. package/packages/ai/src/lib/generateEntityScenarios.js +193 -83
  751. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  752. package/packages/ai/src/lib/generateExecutionFlows.js +414 -0
  753. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  754. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  755. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  756. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  757. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  758. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  759. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  760. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
  761. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  762. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
  763. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  764. package/packages/ai/src/lib/isolateScopes.js +270 -7
  765. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  766. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  767. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  768. package/packages/ai/src/lib/mergeStatements.js +88 -46
  769. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  770. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  771. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  772. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +16 -4
  773. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  774. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  775. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  776. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -64
  777. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  778. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  779. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  780. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  781. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  782. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -34
  783. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  784. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  785. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  786. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
  787. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  788. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  789. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  790. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  791. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  792. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  793. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  794. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  795. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  796. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +98 -1
  797. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  798. package/packages/analyze/index.js +1 -0
  799. package/packages/analyze/index.js.map +1 -1
  800. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  801. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  802. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  803. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  804. package/packages/analyze/src/lib/analysisContext.js +30 -5
  805. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  806. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  807. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  808. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  809. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  810. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  811. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  812. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  813. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  814. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  815. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  816. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  817. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  818. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  819. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  820. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  821. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  822. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +428 -123
  823. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  824. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +42 -1
  825. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  826. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  827. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  828. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  829. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  830. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  831. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  832. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  833. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  834. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  835. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  836. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  837. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  838. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  839. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  840. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  841. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  842. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  843. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  844. package/packages/analyze/src/lib/files/getImportedExports.js +17 -8
  845. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  846. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  847. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  848. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +255 -0
  849. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
  850. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  851. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  852. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +550 -62
  853. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  854. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
  855. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
  856. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  857. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  858. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +404 -85
  859. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  860. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  861. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  862. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +56 -69
  863. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  864. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +4 -8
  865. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  866. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +875 -141
  867. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  868. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  869. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  870. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  871. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  872. package/packages/analyze/src/lib/index.js +1 -0
  873. package/packages/analyze/src/lib/index.js.map +1 -1
  874. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  875. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  876. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  877. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  878. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  879. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  880. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  881. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  882. package/packages/database/src/lib/analysisToDb.js +1 -1
  883. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  884. package/packages/database/src/lib/branchToDb.js +1 -1
  885. package/packages/database/src/lib/branchToDb.js.map +1 -1
  886. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  887. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  888. package/packages/database/src/lib/commitToDb.js +1 -1
  889. package/packages/database/src/lib/commitToDb.js.map +1 -1
  890. package/packages/database/src/lib/fileToDb.js +1 -1
  891. package/packages/database/src/lib/fileToDb.js.map +1 -1
  892. package/packages/database/src/lib/kysely/db.js +13 -3
  893. package/packages/database/src/lib/kysely/db.js.map +1 -1
  894. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  895. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  896. package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  897. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  898. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  899. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  900. package/packages/database/src/lib/loadAnalyses.js +45 -2
  901. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  902. package/packages/database/src/lib/loadAnalysis.js +8 -0
  903. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  904. package/packages/database/src/lib/loadBranch.js +11 -1
  905. package/packages/database/src/lib/loadBranch.js.map +1 -1
  906. package/packages/database/src/lib/loadCommit.js +7 -0
  907. package/packages/database/src/lib/loadCommit.js.map +1 -1
  908. package/packages/database/src/lib/loadCommits.js +22 -1
  909. package/packages/database/src/lib/loadCommits.js.map +1 -1
  910. package/packages/database/src/lib/loadEntities.js +23 -4
  911. package/packages/database/src/lib/loadEntities.js.map +1 -1
  912. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  913. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  914. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +23 -5
  915. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  916. package/packages/database/src/lib/projectToDb.js +1 -1
  917. package/packages/database/src/lib/projectToDb.js.map +1 -1
  918. package/packages/database/src/lib/saveFiles.js +1 -1
  919. package/packages/database/src/lib/saveFiles.js.map +1 -1
  920. package/packages/database/src/lib/scenarioToDb.js +1 -1
  921. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  922. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  923. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  924. package/packages/generate/index.js +3 -0
  925. package/packages/generate/index.js.map +1 -1
  926. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  927. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  928. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  929. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  930. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  931. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  932. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  933. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  934. package/packages/generate/src/lib/deepMerge.js +27 -1
  935. package/packages/generate/src/lib/deepMerge.js.map +1 -1
  936. package/packages/generate/src/lib/directExecutionScript.js +10 -1
  937. package/packages/generate/src/lib/directExecutionScript.js.map +1 -1
  938. package/packages/generate/src/lib/getComponentScenarioPath.js +7 -3
  939. package/packages/generate/src/lib/getComponentScenarioPath.js.map +1 -1
  940. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  941. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  942. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  943. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  944. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  945. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  946. package/packages/process/index.js +3 -0
  947. package/packages/process/index.js.map +1 -0
  948. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  949. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  950. package/packages/process/src/ProcessManager.js.map +1 -0
  951. package/packages/process/src/index.js.map +1 -0
  952. package/packages/process/src/managedExecAsync.js.map +1 -0
  953. package/packages/types/index.js.map +1 -1
  954. package/packages/utils/src/lib/applyUniversalMocks.js +26 -2
  955. package/packages/utils/src/lib/applyUniversalMocks.js.map +1 -1
  956. package/packages/utils/src/lib/fs/rsyncCopy.js +93 -2
  957. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  958. package/packages/utils/src/lib/lightweightEntityExtractor.js +25 -0
  959. package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  960. package/packages/utils/src/lib/safeFileName.js +29 -3
  961. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  962. package/scripts/finalize-analyzer.cjs +8 -74
  963. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  964. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -197
  965. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -271
  966. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -294
  967. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  968. package/analyzer-template/packages/ai/src/lib/transformMockDataToMatchSchema.ts +0 -156
  969. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -115
  970. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  971. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  972. package/analyzer-template/process/README.md +0 -507
  973. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  974. package/background/src/lib/process/ProcessManager.js.map +0 -1
  975. package/background/src/lib/process/index.js.map +0 -1
  976. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  977. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  978. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  979. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-D4htqD-x.js +0 -1
  980. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-Catz6XEN.js +0 -1
  981. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-TlHocYno.js +0 -26
  982. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CVMmGuIc.js +0 -3
  983. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-JkfQ-VaI.js +0 -3
  984. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-CVZ0H4BL.js +0 -1
  985. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BrMAP1nP.js +0 -1
  986. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CJhE4cCv.js +0 -5
  987. package/codeyam-cli/src/webserver/build/client/assets/_index-faVIcr_i.js +0 -1
  988. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CLMa2sgx.js +0 -7
  989. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-DwYjrK_h.js +0 -1
  990. package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-CgXbbZRx.js +0 -26
  991. package/codeyam-cli/src/webserver/build/client/assets/circle-check-B2oHQ-zo.js +0 -1
  992. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BBYuR56H.js +0 -1
  993. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-CT0Q5lVu.js +0 -1
  994. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-Bj5GHkhb.js +0 -1
  995. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-eW5z9AyZ.js +0 -5
  996. package/codeyam-cli/src/webserver/build/client/assets/entry.client-B9tSboXM.js +0 -5
  997. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-CmO-EZAB.js +0 -1
  998. package/codeyam-cli/src/webserver/build/client/assets/files-DLinnTOx.js +0 -1
  999. package/codeyam-cli/src/webserver/build/client/assets/git-CIxwBQvb.js +0 -12
  1000. package/codeyam-cli/src/webserver/build/client/assets/globals-xPz593l2.css +0 -1
  1001. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +0 -5
  1002. package/codeyam-cli/src/webserver/build/client/assets/index-_LjBsTxX.js +0 -8
  1003. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-D_EGChhq.js +0 -1
  1004. package/codeyam-cli/src/webserver/build/client/assets/manifest-ca438c41.js +0 -1
  1005. package/codeyam-cli/src/webserver/build/client/assets/root-CHHYHuzL.js +0 -16
  1006. package/codeyam-cli/src/webserver/build/client/assets/search-DY8yoDpH.js +0 -1
  1007. package/codeyam-cli/src/webserver/build/client/assets/server-build-CMKNK2uU.css +0 -1
  1008. package/codeyam-cli/src/webserver/build/client/assets/settings-BT6wVHd5.js +0 -1
  1009. package/codeyam-cli/src/webserver/build/client/assets/simulations-gv3H7JV7.js +0 -1
  1010. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-BthANBVv.js +0 -1
  1011. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CANr3QJ5.js +0 -1
  1012. package/codeyam-cli/src/webserver/build/server/assets/index-BtBPtyHx.js +0 -1
  1013. package/codeyam-cli/src/webserver/build/server/assets/server-build-N2cTnejq.js +0 -166
  1014. package/codeyam-cli/templates/debug-command.md +0 -141
  1015. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  1016. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  1017. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -136
  1018. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  1019. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -220
  1020. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  1021. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -241
  1022. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  1023. package/packages/ai/src/lib/isFrontend.js +0 -5
  1024. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  1025. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  1026. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  1027. package/packages/ai/src/lib/transformMockDataToMatchSchema.js +0 -124
  1028. package/packages/ai/src/lib/transformMockDataToMatchSchema.js.map +0 -1
  1029. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -72
  1030. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  1031. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  1032. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  1033. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  1034. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  1035. /package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CMKNK2uU.css → styles-CMKNK2uU.css} +0 -0
  1036. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  1037. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  1038. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -0,0 +1,51 @@
1
+ function Wa(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 Ya(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Kt={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 Gr;function Va(){if(Gr)return ot;Gr=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 Kr;function Ja(){return Kr||(Kr=1,Kt.exports=Va()),Kt.exports}var cs=Ja(),Xt={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 Xr;function Ga(){if(Xr)return B;Xr=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"),m=Symbol.iterator;function g(p){return p===null||typeof p!="object"?null:(p=m&&p[m]||p["@@iterator"],typeof p=="function"?p:null)}var R={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,E={};function L(p,x,U){this.props=p,this.context=x,this.refs=E,this.updater=U||R}L.prototype.isReactComponent={},L.prototype.setState=function(p,x){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,x,"setState")},L.prototype.forceUpdate=function(p){this.updater.enqueueForceUpdate(this,p,"forceUpdate")};function S(){}S.prototype=L.prototype;function D(p,x,U){this.props=p,this.context=x,this.refs=E,this.updater=U||R}var A=D.prototype=new S;A.constructor=D,b(A,L.prototype),A.isPureReactComponent=!0;var P=Array.isArray;function _(){}var y={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function F(p,x,U){var k=U.ref;return{$$typeof:e,type:p,key:x,ref:k!==void 0?k:null,props:U}}function J(p,x){return F(p.type,x,p.props)}function K(p){return typeof p=="object"&&p!==null&&p.$$typeof===e}function ae(p){var x={"=":"=0",":":"=2"};return"$"+p.replace(/[=:]/g,function(U){return x[U]})}var le=/\/+/g;function Q(p,x){return typeof p=="object"&&p!==null&&p.key!=null?ae(""+p.key):x.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(x){p.status==="pending"&&(p.status="fulfilled",p.value=x)},function(x){p.status==="pending"&&(p.status="rejected",p.reason=x)})),p.status){case"fulfilled":return p.value;case"rejected":throw p.reason}}throw p}function X(p,x,U,k,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),x,U,k,z)}}if(te)return z=z(p),te=k===""?"."+Q(p,0):k,P(z)?(U="",te!=null&&(U=te.replace(le,"$&/")+"/"),X(z,x,U,"",function(Wt){return Wt})):z!=null&&(K(z)&&(z=J(z,U+(z.key==null||p&&p.key===z.key?"":(""+z.key).replace(le,"$&/")+"/")+te)),x.push(z)),1;te=0;var de=k===""?".":k+":";if(P(p))for(var me=0;me<p.length;me++)k=p[me],G=de+Q(k,me),te+=X(k,x,U,G,z);else if(me=g(p),typeof me=="function")for(p=me.call(p),me=0;!(k=p.next()).done;)k=k.value,G=de+Q(k,me++),te+=X(k,x,U,G,z);else if(G==="object"){if(typeof p.then=="function")return X(ue(p),x,U,k,z);throw x=String(p),Error("Objects are not valid as a React child (found: "+(x==="[object Object]"?"object with keys {"+Object.keys(p).join(", ")+"}":x)+"). If you meant to render a collection of children, use an array instead.")}return te}function ee(p,x,U){if(p==null)return p;var k=[],z=0;return X(p,k,"","",function(G){return x.call(U,G,z++)}),k}function re(p){if(p._status===-1){var x=p._result;x=x(),x.then(function(U){(p._status===0||p._status===-1)&&(p._status=1,p._result=U)},function(U){(p._status===0||p._status===-1)&&(p._status=2,p._result=U)}),p._status===-1&&(p._status=0,p._result=x)}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 x=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(x))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",p);return}console.error(p)},se={map:ee,forEach:function(p,x,U){ee(p,function(){x.apply(this,arguments)},U)},count:function(p){var x=0;return ee(p,function(){x++}),x},toArray:function(p){return ee(p,function(x){return x})||[]},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=L,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=y,B.__COMPILER_RUNTIME={__proto__:null,c:function(p){return y.H.useMemoCache(p)}},B.cache=function(p){return function(){return p.apply(null,arguments)}},B.cacheSignal=function(){return null},B.cloneElement=function(p,x,U){if(p==null)throw Error("The argument must be a React element, but you passed "+p+".");var k=b({},p.props),z=p.key;if(x!=null)for(G in x.key!==void 0&&(z=""+x.key),x)!M.call(x,G)||G==="key"||G==="__self"||G==="__source"||G==="ref"&&x.ref===void 0||(k[G]=x[G]);var G=arguments.length-2;if(G===1)k.children=U;else if(1<G){for(var te=Array(G),de=0;de<G;de++)te[de]=arguments[de+2];k.children=te}return F(p.type,z,k)},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,x,U){var k,z={},G=null;if(x!=null)for(k in x.key!==void 0&&(G=""+x.key),x)M.call(x,k)&&k!=="key"&&k!=="__self"&&k!=="__source"&&(z[k]=x[k]);var te=arguments.length-2;if(te===1)z.children=U;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(k in te=p.defaultProps,te)z[k]===void 0&&(z[k]=te[k]);return F(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,x){return{$$typeof:u,type:p,compare:x===void 0?null:x}},B.startTransition=function(p){var x=y.T,U={};y.T=U;try{var k=p(),z=y.S;z!==null&&z(U,k),typeof k=="object"&&k!==null&&typeof k.then=="function"&&k.then(_,ce)}catch(G){ce(G)}finally{x!==null&&U.types!==null&&(x.types=U.types),y.T=x}},B.unstable_useCacheRefresh=function(){return y.H.useCacheRefresh()},B.use=function(p){return y.H.use(p)},B.useActionState=function(p,x,U){return y.H.useActionState(p,x,U)},B.useCallback=function(p,x){return y.H.useCallback(p,x)},B.useContext=function(p){return y.H.useContext(p)},B.useDebugValue=function(){},B.useDeferredValue=function(p,x){return y.H.useDeferredValue(p,x)},B.useEffect=function(p,x){return y.H.useEffect(p,x)},B.useEffectEvent=function(p){return y.H.useEffectEvent(p)},B.useId=function(){return y.H.useId()},B.useImperativeHandle=function(p,x,U){return y.H.useImperativeHandle(p,x,U)},B.useInsertionEffect=function(p,x){return y.H.useInsertionEffect(p,x)},B.useLayoutEffect=function(p,x){return y.H.useLayoutEffect(p,x)},B.useMemo=function(p,x){return y.H.useMemo(p,x)},B.useOptimistic=function(p,x){return y.H.useOptimistic(p,x)},B.useReducer=function(p,x,U){return y.H.useReducer(p,x,U)},B.useRef=function(p){return y.H.useRef(p)},B.useState=function(p){return y.H.useState(p)},B.useSyncExternalStore=function(p,x,U){return y.H.useSyncExternalStore(p,x,U)},B.useTransition=function(){return y.H.useTransition()},B.version="19.2.3",B}var qr;function Ka(){return qr||(qr=1,Xt.exports=Ga()),Xt.exports}var f=Ka();const Xa=Ya(f),qa=Wa({__proto__:null,default:Xa},[f]);/**
18
+ * react-router v7.13.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 Mn=e=>{throw TypeError(e)},Qa=(e,t,r)=>t.has(e)||Mn("Cannot "+r),qt=(e,t,r)=>(Qa(e,t,"read from private field"),r?r.call(e):t.get(e)),Za=(e,t,r)=>t.has(e)?Mn("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 to(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 eo(){return Math.random().toString(36).substring(2,10)}function Zr(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"?ke(t):t,state:r,key:t&&t.key||n||eo()}}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 ke(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 to(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 E=h(),L=E==null?null:E-u;u=E,s&&s({action:l,location:b.location,delta:L})}function m(E,L){l="PUSH";let S=ft(b.location,E,L);u=h()+1;let D=Zr(S,u),A=b.createHref(S);try{i.pushState(D,"",A)}catch(P){if(P instanceof DOMException&&P.name==="DataCloneError")throw P;a.location.assign(A)}o&&s&&s({action:l,location:b.location,delta:1})}function g(E,L){l="REPLACE";let S=ft(b.location,E,L);u=h();let D=Zr(S,u),A=b.createHref(S);i.replaceState(D,"",A),o&&s&&s({action:l,location:b.location,delta:0})}function R(E){return _n(E)}let b={get action(){return l},get location(){return e(a,i)},listen(E){if(s)throw new Error("A history only accepts one active listener");return a.addEventListener(Qr,c),s=E,()=>{a.removeEventListener(Qr,c),s=null}},createHref(E){return t(a,E)},createURL:R,encodeLocation(E){let L=R(E);return{pathname:L.pathname,search:L.search,hash:L.hash}},push:m,replace:g,go(E){return i.go(E)}};return b}function _n(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,en=class{constructor(e){if(Za(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 ro=new Set(["lazy","caseSensitive","path","id","index","children"]);function no(e){return ro.has(e)}var ao=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function oo(e){return ao.has(e)}function io(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`),io(o)){let u={...o,id:s};return n[s]=tn(u,t(u)),u}else{let u={...o,id:s,children:void 0};return n[s]=tn(u,t(u)),o.children&&(u.children=ht(o.children,t,l,n,a)),u}})}function tn(e,t){return Object.assign(e,{...t,...typeof t.lazy=="object"&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function Ae(e,t,r="/"){return ct(e,t,r,!1)}function ct(e,t,r,n){let a=typeof t=="string"?ke(t):t,o=be(a.pathname||"/",r);if(o==null)return null;let i=On(e);lo(i);let l=null;for(let s=0;l==null&&s<i.length;++s){let u=go(o);l=vo(i[s],u,n)}return l}function Dn(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 On(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]),m=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}".`),On(i.children,t,m,c,s)),!(i.path==null&&!i.index)&&t.push({path:c,score:po(c,i.index),routesMeta:m})};return e.forEach((i,l)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))o(i,l);else for(let u of In(i.path))o(i,l,!0,u)}),t}function In(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=In(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 lo(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:yo(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}var so=/^:[\w-]+$/,uo=3,co=2,fo=1,ho=10,mo=-2,rn=e=>e==="*";function po(e,t){let r=e.split("/"),n=r.length;return r.some(rn)&&(n+=mo),t&&(n+=co),r.filter(a=>!rn(a)).reduce((a,o)=>a+(so.test(o)?uo:o===""?fo:ho),n)}function yo(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 vo(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),m=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:Ro(Te([o,c.pathnameBase])),route:m}),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},m)=>{if(h==="*"){let R=l[m]||"";i=o.slice(0,o.length-R.length).replace(/(.)\/+$/,"$1")}const g=l[m];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 go(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 wo({basename:e,pathname:t}){return t==="/"?e:Te([e,t])}var Fn=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,wr=e=>Fn.test(e);function Eo(e,t="/"){let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?ke(e):e,o;return r?(r=r.replace(/\/\/+/g,"/"),r.startsWith("/")?o=nn(r.substring(1),"/"):o=nn(r,t)):o=t,{pathname:o,search:bo(n),hash:So(a)}}function nn(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 Qt(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 Nn(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function Er(e){let t=Nn(e);return t.map((r,n)=>n===t.length-1?r.pathname:r.pathnameBase)}function Rr(e,t,r,n=!1){let a;typeof e=="string"?a=ke(e):(a={...e},W(!a.pathname||!a.pathname.includes("?"),Qt("?","pathname","search",a)),W(!a.pathname||!a.pathname.includes("#"),Qt("#","pathname","hash",a)),W(!a.search||!a.search.includes("#"),Qt("#","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 m=i.split("/");for(;m[0]==="..";)m.shift(),c-=1;a.pathname=m.join("/")}l=c>=0?t[c]:"/"}let s=Eo(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,"/"),Ro=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),bo=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,So=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,xo=class{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}};function Co(e,t){return new xo(e,typeof t=="number"?{status:t}:t)}var Lo=(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 $n=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function kn(e,t){let r=e;if(typeof r!="string"||!Fn.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let n=r,a=!1;if($n)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 $e=Symbol("Uninstrumented");function Po(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[$e]??o,l=Qe(r[a],i,(...s)=>an(s[0]));l&&(a==="loader"&&i.hydrate===!0&&(l.hydrate=!0),l[$e]=i,n[a]=l)}}),t.middleware&&t.middleware.length>0&&r.middleware.length>0&&(n.middleware=t.middleware.map(a=>{let o=a[$e]??a,i=Qe(r.middleware,o,(...l)=>an(l[0]));return i?(i[$e]=o,i):a})),n}function To(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[$e]??e.navigate,a=Qe(r.navigate,n,(...o)=>{let[i,l]=o;return{to:typeof i=="number"||typeof i=="string"?i:i?Me(i):".",...on(e,l??{})}});a&&(a[$e]=n,e.navigate=a)}if(r.fetch.length>0){let n=e.fetch[$e]??e.fetch,a=Qe(r.fetch,n,(...o)=>{let[i,,l,s]=o;return{href:l??".",fetcherKey:i,...on(e,s??{})}});a&&(a[$e]=n,e.fetch=a)}return e}function Qe(e,t,r){return e.length===0?null:async(...n)=>{let a=await jn(e,r(...n),()=>t(...n),e.length-1);if(a.type==="error")throw a.value;return a.value}}async function jn(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=jn(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 an(e){let{request:t,context:r,params:n,unstable_pattern:a}=e;return{request:Mo(t),params:{...n},unstable_pattern:a,context:_o(r)}}function on(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 Mo(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function _o(e){if(Oo(e)){let t={...e};return Object.freeze(t),t}else return{get:t=>e.get(t)}}var Do=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Oo(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")===Do}var Un=["POST","PUT","PATCH","DELETE"],Io=new Set(Un),Ao=["GET",...Un],Fo=new Set(Ao),Hn=new Set([301,302,303,307,308]),No=new Set([307,308]),Zt={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},zn={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},$o=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Bn="remix-router-transitions",Wn=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||$o,o=a;if(e.unstable_instrumentations){let d=e.unstable_instrumentations;o=v=>({...a(v),...Po(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||zo,c={...e.future},m=null,g=new Set,R=null,b=null,E=null,L=e.hydrationData!=null,S=Ae(l,e.history.location,u),D=!1,A=null,P;if(S==null&&!e.patchRoutesOnNavigation){let d=xe(404,{pathname:e.history.location.pathname}),{matches:v,route:w}=Ct(l);P=!0,S=v,A={[w.id]:d}}else if(S&&!e.hydrationData&&Et(S,l,e.history.location.pathname).active&&(S=null),S)if(S.some(d=>d.route.lazy))P=!1;else if(!S.some(d=>br(d.route)))P=!0;else{let d=e.hydrationData?e.hydrationData.loaderData:null,v=e.hydrationData?e.hydrationData.errors:null;if(v){let w=S.findIndex(C=>v[C.route.id]!==void 0);P=S.slice(0,w+1).every(C=>!lr(C.route,d,v))}else P=S.every(w=>!lr(w.route,d,v))}else{P=!1,S=[];let d=Et(null,l,e.history.location.pathname);d.active&&d.matches&&(D=!0,S=d.matches)}let _,y={historyAction:e.history.action,location:e.history.location,matches:S,initialized:P,navigation:Zt,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||A,fetchers:new Map,blockers:new Map},M="POP",F=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,x=new Set,U=new Map,k=new Map,z=new Set,G=new Map,te,de=null;function me(){if(m=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 C=Br({currentLocation:y.location,nextLocation:v,historyAction:d});if(C&&w!=null){let T=new Promise(N=>{te=N});e.history.go(w*-1),wt(C,{state:"blocked",location:v,proceed(){wt(C,{state:"proceeding",proceed:void 0,reset:void 0,location:v}),T.then(()=>e.history.go(w))},reset(){let N=new Map(y.blockers);N.set(C,it),pe({blockers:N})}}),F==null||F.resolve(),F=null;return}return Ue(d,v)}),r){ii(t,le);let d=()=>li(t,le);t.addEventListener("pagehide",d),Q=()=>t.removeEventListener("pagehide",d)}return y.initialized||Ue("POP",y.location,{initialHydration:!0}),_}function Wt(){m&&m(),Q&&Q(),g.clear(),K&&K.abort(),y.fetchers.forEach((d,v)=>Vt(v)),y.blockers.forEach((d,v)=>zr(v))}function Ta(d){return g.add(d),()=>g.delete(d)}function pe(d,v={}){d.matches&&(d.matches=d.matches.map(T=>{let N=i[T.route.id],H=T.route;return H.element!==N.element||H.errorElement!==N.errorElement||H.hydrateFallbackElement!==N.hydrateFallbackElement?{...T,route:N}:T})),y={...y,...d};let w=[],C=[];y.fetchers.forEach((T,N)=>{T.state==="idle"&&(z.has(N)?w.push(N):C.push(N))}),z.forEach(T=>{!y.fetchers.has(T)&&!re.has(T)&&w.push(T)}),[...g].forEach(T=>T(y,{deletedFetchers:w,newErrors:d.errors??null,viewTransitionOpts:v.viewTransitionOpts,flushSync:v.flushSync===!0})),w.forEach(T=>Vt(T)),C.forEach(T=>y.fetchers.delete(T))}function Ke(d,v,{flushSync:w}={}){var Y,$;let C=y.actionData!=null&&y.navigation.formMethod!=null&&ve(y.navigation.formMethod)&&y.navigation.state==="loading"&&((Y=d.state)==null?void 0:Y._isRedirect)!==!0,T;v.actionData?Object.keys(v.actionData).length>0?T=v.actionData:T=null:C?T=y.actionData:T=null;let N=v.loaderData?yn(y.loaderData,v.loaderData,v.matches||[],v.errors):y.loaderData,H=y.blockers;H.size>0&&(H=new Map(H),H.forEach((V,q)=>H.set(q,it)));let O=ue?!1:Yr(d,v.matches||y.matches),I=J===!0||y.navigation.formMethod!=null&&ve(y.navigation.formMethod)&&(($=d.state)==null?void 0:$._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 j;if(M==="POP"){let V=le.get(y.location.pathname);V&&V.has(d.pathname)?j={currentLocation:y.location,nextLocation:d}:le.has(d.pathname)&&(j={currentLocation:d,nextLocation:y.location})}else if(ae){let V=le.get(y.location.pathname);V?V.add(d.pathname):(V=new Set([d.pathname]),le.set(y.location.pathname,V)),j={currentLocation:y.location,nextLocation:d}}pe({...v,actionData:T,loaderData:N,historyAction:M,location:d,initialized:!0,navigation:Zt,revalidation:"idle",restoreScrollPosition:O,preventScrollReset:I,blockers:H},{viewTransitionOpts:j,flushSync:w===!0}),M="POP",J=!1,ae=!1,ue=!1,X=!1,F==null||F.resolve(),F=null,de==null||de.resolve(),de=null}async function Fr(d,v){if(F==null||F.resolve(),F=null,typeof d=="number"){F||(F=wn());let q=F.promise;return e.history.go(d),q}let w=ir(y.location,y.matches,u,d,v==null?void 0:v.fromRouteId,v==null?void 0:v.relative),{path:C,submission:T,error:N}=ln(!1,w,v),H=y.location,O=ft(y.location,C,v&&v.state);O={...O,...e.history.encodeLocation(O)};let I=v&&v.replace!=null?v.replace:void 0,j="PUSH";I===!0?j="REPLACE":I===!1||T!=null&&ve(T.formMethod)&&T.formAction===y.location.pathname+y.location.search&&(j="REPLACE");let Y=v&&"preventScrollReset"in v?v.preventScrollReset===!0:void 0,$=(v&&v.flushSync)===!0,V=Br({currentLocation:H,nextLocation:O,historyAction:j});if(V){wt(V,{state:"blocked",location:O,proceed(){wt(V,{state:"proceeding",proceed:void 0,reset:void 0,location:O}),Fr(d,v)},reset(){let q=new Map(y.blockers);q.set(V,it),pe({blockers:q})}});return}await Ue(j,O,{submission:T,pendingError:N,preventScrollReset:Y,replace:v&&v.replace,enableViewTransition:v&&v.viewTransition,flushSync:$,callSiteDefaultShouldRevalidate:v&&v.unstable_defaultShouldRevalidate})}function Ma(){de||(de=wn()),Yt(),pe({revalidation:"loading"});let d=de.promise;return y.navigation.state==="submitting"?d:y.navigation.state==="idle"?(Ue(y.historyAction,y.location,{startUninterruptedRevalidation:!0}),d):(Ue(M||y.historyAction,y.navigation.location,{overrideNavigation:y.navigation,enableViewTransition:ae===!0}),d)}async function Ue(d,v,w){K&&K.abort(),K=null,M=d,ue=(w&&w.startUninterruptedRevalidation)===!0,Ua(y.location,y.matches),J=(w&&w.preventScrollReset)===!0,ae=(w&&w.enableViewTransition)===!0;let C=s||l,T=w&&w.overrideNavigation,N=w!=null&&w.initialHydration&&y.matches&&y.matches.length>0&&!D?y.matches:Ae(C,v,u),H=(w&&w.flushSync)===!0;if(N&&y.initialized&&!X&&Xo(y.location,v)&&!(w&&w.submission&&ve(w.submission.formMethod))){Ke(v,{matches:N},{flushSync:H});return}let O=Et(N,C,v.pathname);if(O.active&&O.matches&&(N=O.matches),!N){let{error:fe,notFoundMatches:ge,route:ne}=Jt(v.pathname);Ke(v,{matches:ge,loaderData:{},errors:{[ne.id]:fe}},{flushSync:H});return}K=new AbortController;let I=qe(e.history,v,K.signal,w&&w.submission),j=e.getContext?await e.getContext():new en,Y;if(w&&w.pendingError)Y=[Ne(N).route.id,{type:"error",error:w.pendingError}];else if(w&&w.submission&&ve(w.submission.formMethod)){let fe=await _a(I,v,w.submission,N,j,O.active,w&&w.initialHydration===!0,{replace:w.replace,flushSync:H});if(fe.shortCircuited)return;if(fe.pendingActionResult){let[ge,ne]=fe.pendingActionResult;if(Re(ne)&&Ve(ne.error)&&ne.error.status===404){K=null,Ke(v,{matches:fe.matches,loaderData:{},errors:{[ge]:ne.error}});return}}N=fe.matches||N,Y=fe.pendingActionResult,T=er(v,w.submission),H=!1,O.active=!1,I=qe(e.history,I.url,I.signal)}let{shortCircuited:$,matches:V,loaderData:q,errors:he}=await Da(I,v,N,j,O.active,T,w&&w.submission,w&&w.fetcherSubmission,w&&w.replace,w&&w.initialHydration===!0,H,Y,w&&w.callSiteDefaultShouldRevalidate);$||(K=null,Ke(v,{matches:V||N,...vn(Y),loaderData:q,errors:he}))}async function _a(d,v,w,C,T,N,H,O={}){Yt();let I=ai(v,w);if(pe({navigation:I},{flushSync:O.flushSync===!0}),N){let $=await Rt(C,v.pathname,d.signal);if($.type==="aborted")return{shortCircuited:!0};if($.type==="error"){if($.partialMatches.length===0){let{matches:q,route:he}=Ct(l);return{matches:q,pendingActionResult:[he.id,{type:"error",error:$.error}]}}let V=Ne($.partialMatches).route.id;return{matches:$.partialMatches,pendingActionResult:[V,{type:"error",error:$.error}]}}else if($.matches)C=$.matches;else{let{notFoundMatches:V,error:q,route:he}=Jt(v.pathname);return{matches:V,pendingActionResult:[he.id,{type:"error",error:q}]}}}let j,Y=Dt(C,v);if(!Y.route.action&&!Y.route.lazy)j={type:"error",error:xe(405,{method:d.method,pathname:v.pathname,routeId:Y.route.id})};else{let $=Ze(o,i,d,C,Y,H?[]:n,T),V=await rt(d,$,T,null);if(j=V[Y.route.id],!j){for(let q of C)if(V[q.route.id]){j=V[q.route.id];break}}if(d.signal.aborted)return{shortCircuited:!0}}if(Ye(j)){let $;return O&&O.replace!=null?$=O.replace:$=hn(j.response.headers.get("Location"),new URL(d.url),u,e.history)===y.location.pathname+y.location.search,await He(d,j,!0,{submission:w,replace:$}),{shortCircuited:!0}}if(Re(j)){let $=Ne(C,Y.route.id);return(O&&O.replace)!==!0&&(M="PUSH"),{matches:C,pendingActionResult:[$.route.id,j,Y.route.id]}}return{matches:C,pendingActionResult:[Y.route.id,j]}}async function Da(d,v,w,C,T,N,H,O,I,j,Y,$,V){let q=N||er(v,H),he=H||O||gn(q),fe=!ue&&!j;if(T){if(fe){let ye=Nr($);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:Xe,route:We}=Ct(l);return{matches:Xe,loaderData:{},errors:{[We.id]:Z.error}}}let ye=Ne(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:Xe,route:We}=Jt(v.pathname);return{matches:Xe,loaderData:{},errors:{[We.id]:ye}}}}let ge=s||l,{dsMatches:ne,revalidatingFetchers:Se}=sn(d,C,o,i,e.history,y,w,he,v,j?[]:n,j===!0,X,ee,z,U,x,ge,u,e.patchRoutesOnNavigation!=null,$,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=Ur();return Ke(v,{matches:w,loaderData:{},errors:$&&Re($[1])?{[$[0]]:$[1].error}:null,...vn($),...Z?{fetchers:new Map(y.fetchers)}:{}},{flushSync:Y}),{shortCircuited:!0}}if(fe){let Z={};if(!T){Z.navigation=q;let ye=Nr($);ye!==void 0&&(Z.actionData=ye)}Se.length>0&&(Z.fetchers=Oa(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 $r(ne,Se,d,C);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:I}),{shortCircuited:!0};if(Pe=Lt(Fe),Pe)return x.add(Pe.key),await He(d,Pe.result,!0,{replace:I}),{shortCircuited:!0};let{loaderData:Gt,errors:at}=pn(y,w,nt,$,Se,Fe);j&&y.errors&&(at={...y.errors,...at});let Be=Ur(),bt=Hr(se),St=Be||bt||Se.length>0;return{matches:w,loaderData:Gt,errors:at,...St?{fetchers:new Map(y.fetchers)}:{}}}function Nr(d){if(d&&!Re(d[1]))return{[d[0]]:d[1].data};if(y.actionData)return Object.keys(y.actionData).length===0?null:y.actionData}function Oa(d){return d.forEach(v=>{let w=y.fetchers.get(v.key),C=lt(void 0,w?w.data:void 0);y.fetchers.set(v.key,C)}),new Map(y.fetchers)}async function Ia(d,v,w,C){Oe(d);let T=(C&&C.flushSync)===!0,N=s||l,H=ir(y.location,y.matches,u,w,v,C==null?void 0:C.relative),O=Ae(N,H,u),I=Et(O,N,H);if(I.active&&I.matches&&(O=I.matches),!O){De(d,v,xe(404,{pathname:H}),{flushSync:T});return}let{path:j,submission:Y,error:$}=ln(!0,H,C);if($){De(d,v,$,{flushSync:T});return}let V=e.getContext?await e.getContext():new en,q=(C&&C.preventScrollReset)===!0;if(Y&&ve(Y.formMethod)){await Aa(d,v,j,O,V,I.active,T,q,Y,C&&C.unstable_defaultShouldRevalidate);return}U.set(d,{routeId:v,path:j}),await Fa(d,v,j,O,V,I.active,T,q,Y)}async function Aa(d,v,w,C,T,N,H,O,I,j){Yt(),U.delete(d);let Y=y.fetchers.get(d);_e(d,oi(I,Y),{flushSync:H});let $=new AbortController,V=qe(e.history,w,$.signal,I);if(N){let ie=await Rt(C,new URL(V.url).pathname,V.signal,d);if(ie.type==="aborted")return;if(ie.type==="error"){De(d,v,ie.error,{flushSync:H});return}else if(ie.matches)C=ie.matches;else{De(d,v,xe(404,{pathname:w}),{flushSync:H});return}}let q=Dt(C,w);if(!q.route.action&&!q.route.lazy){let ie=xe(405,{method:I.formMethod,pathname:w,routeId:v});De(d,v,ie,{flushSync:H});return}re.set(d,$);let he=ce,fe=Ze(o,i,V,C,q,n,T),ge=await rt(V,fe,T,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)===$&&re.delete(d);return}if(z.has(d)){if(Ye(ne)||Re(ne)){_e(d,Ie(void 0));return}}else{if(Ye(ne))if(re.delete(d),se>he){_e(d,Ie(void 0));return}else return x.add(d),_e(d,lt(I)),He(V,ne,!1,{fetcherSubmission:I,preventScrollReset:O});if(Re(ne)){De(d,v,ne.error);return}}let Se=y.navigation.location||y.location,ze=qe(e.history,Se,$.signal),nt=s||l,Fe=y.navigation.state!=="idle"?Ae(nt,y.navigation.location,u):y.matches;W(Fe,"Didn't find any matches after fetcher action");let Pe=++ce;p.set(d,Pe);let Gt=lt(I,ne.data);y.fetchers.set(d,Gt);let{dsMatches:at,revalidatingFetchers:Be}=sn(ze,T,o,i,e.history,y,Fe,I,Se,n,!1,X,ee,z,U,x,nt,u,e.patchRoutesOnNavigation!=null,[q.route.id,ne],j);Be.filter(ie=>ie.key!==d).forEach(ie=>{let xt=ie.key,Jr=y.fetchers.get(xt),Ba=lt(void 0,Jr?Jr.data:void 0);y.fetchers.set(xt,Ba),Oe(xt),ie.controller&&re.set(xt,ie.controller)}),pe({fetchers:new Map(y.fetchers)});let bt=()=>Be.forEach(ie=>Oe(ie.key));$.signal.addEventListener("abort",bt);let{loaderResults:St,fetcherResults:Z}=await $r(at,Be,ze,T);if($.signal.aborted)return;if($.signal.removeEventListener("abort",bt),p.delete(d),re.delete(d),Be.forEach(ie=>re.delete(ie.key)),y.fetchers.has(d)){let ie=Ie(ne.data);y.fetchers.set(d,ie)}let ye=Lt(St);if(ye)return He(ze,ye.result,!1,{preventScrollReset:O});if(ye=Lt(Z),ye)return x.add(ye.key),He(ze,ye.result,!1,{preventScrollReset:O});let{loaderData:Xe,errors:We}=pn(y,Fe,St,void 0,Be,Z);Hr(Pe),y.navigation.state==="loading"&&Pe>se?(W(M,"Expected pending action"),K&&K.abort(),Ke(y.navigation.location,{matches:Fe,loaderData:Xe,errors:We,fetchers:new Map(y.fetchers)})):(pe({errors:We,loaderData:yn(y.loaderData,Xe,Fe,We),fetchers:new Map(y.fetchers)}),X=!1)}async function Fa(d,v,w,C,T,N,H,O,I){let j=y.fetchers.get(d);_e(d,lt(I,j?j.data:void 0),{flushSync:H});let Y=new AbortController,$=qe(e.history,w,Y.signal);if(N){let ne=await Rt(C,new URL($.url).pathname,$.signal,d);if(ne.type==="aborted")return;if(ne.type==="error"){De(d,v,ne.error,{flushSync:H});return}else if(ne.matches)C=ne.matches;else{De(d,v,xe(404,{pathname:w}),{flushSync:H});return}}let V=Dt(C,w);re.set(d,Y);let q=ce,he=Ze(o,i,$,C,V,n,T),ge=(await rt($,he,T,d))[V.route.id];if(re.get(d)===Y&&re.delete(d),!$.signal.aborted){if(z.has(d)){_e(d,Ie(void 0));return}if(Ye(ge))if(se>q){_e(d,Ie(void 0));return}else{x.add(d),await He($,ge,!1,{preventScrollReset:O});return}if(Re(ge)){De(d,v,ge.error);return}_e(d,Ie(ge.data))}}async function He(d,v,w,{submission:C,fetcherSubmission:T,preventScrollReset:N,replace:H}={}){w||(F==null||F.resolve(),F=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=hn(O,new URL(d.url),u,e.history);let I=ft(y.location,O,{_isRedirect:!0});if(r){let he=!1;if(v.response.headers.has("X-Remix-Reload-Document"))he=!0;else if(wr(O)){const fe=_n(O,!0);he=fe.origin!==t.location.origin||be(fe.pathname,u)==null}if(he){H?t.location.replace(O):t.location.assign(O);return}}K=null;let j=H===!0||v.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:Y,formAction:$,formEncType:V}=y.navigation;!C&&!T&&Y&&$&&V&&(C=gn(y.navigation));let q=C||T;if(No.has(v.response.status)&&q&&ve(q.formMethod))await Ue(j,I,{submission:{...q,formAction:O},preventScrollReset:N||J,enableViewTransition:w?ae:void 0});else{let he=er(I,C);await Ue(j,I,{overrideNavigation:he,fetcherSubmission:T,preventScrollReset:N||J,enableViewTransition:w?ae:void 0})}}async function rt(d,v,w,C){var H;let T,N={};try{T=await Wo(h,d,v,C,w,!1)}catch(O){return v.filter(I=>I.shouldLoad).forEach(I=>{N[I.route.id]={type:"error",error:O}}),N}if(d.signal.aborted)return N;if(!ve(d.method))for(let O of v){if(((H=T[O.route.id])==null?void 0:H.type)==="error")break;!T.hasOwnProperty(O.route.id)&&!y.loaderData.hasOwnProperty(O.route.id)&&(!y.errors||!y.errors.hasOwnProperty(O.route.id))&&O.shouldCallHandler()&&(T[O.route.id]={type:"error",result:new Error(`No result returned from dataStrategy for route ${O.route.id}`)})}for(let[O,I]of Object.entries(T))if(ei(I)){let j=I.result;N[O]={type:"redirect",response:Go(j,d,O,v,u)}}else N[O]=await Jo(I);return N}async function $r(d,v,w,C){let T=rt(w,d,C,null),N=Promise.all(v.map(async I=>{if(I.matches&&I.match&&I.request&&I.controller){let Y=(await rt(I.request,I.matches,C,I.key))[I.match.route.id];return{[I.key]:Y}}else return Promise.resolve({[I.key]:{type:"error",error:xe(404,{pathname:I.path})}})})),H=await T,O=(await N).reduce((I,j)=>Object.assign(I,j),{});return{loaderResults:H,fetcherResults:O}}function Yt(){X=!0,U.forEach((d,v)=>{re.has(v)&&ee.add(v),Oe(v)})}function _e(d,v,w={}){y.fetchers.set(d,v),pe({fetchers:new Map(y.fetchers)},{flushSync:(w&&w.flushSync)===!0})}function De(d,v,w,C={}){let T=Ne(y.matches,v);Vt(d),pe({errors:{[T.route.id]:w},fetchers:new Map(y.fetchers)},{flushSync:(C&&C.flushSync)===!0})}function kr(d){return k.set(d,(k.get(d)||0)+1),z.has(d)&&z.delete(d),y.fetchers.get(d)||zn}function Na(d,v){Oe(d,v==null?void 0:v.reason),_e(d,Ie(null))}function Vt(d){let v=y.fetchers.get(d);re.has(d)&&!(v&&v.state==="loading"&&p.has(d))&&Oe(d),U.delete(d),p.delete(d),x.delete(d),z.delete(d),ee.delete(d),y.fetchers.delete(d)}function $a(d){let v=(k.get(d)||0)-1;v<=0?(k.delete(d),z.add(d)):k.set(d,v),pe({fetchers:new Map(y.fetchers)})}function Oe(d,v){let w=re.get(d);w&&(w.abort(v),re.delete(d))}function jr(d){for(let v of d){let w=kr(v),C=Ie(w.data);y.fetchers.set(v,C)}}function Ur(){let d=[],v=!1;for(let w of x){let C=y.fetchers.get(w);W(C,`Expected fetcher: ${w}`),C.state==="loading"&&(x.delete(w),d.push(w),v=!0)}return jr(d),v}function Hr(d){let v=[];for(let[w,C]of p)if(C<d){let T=y.fetchers.get(w);W(T,`Expected fetcher: ${w}`),T.state==="loading"&&(Oe(w),p.delete(w),v.push(w))}return jr(v),v.length>0}function ka(d,v){let w=y.blockers.get(d)||it;return G.get(d)!==v&&G.set(d,v),w}function zr(d){y.blockers.delete(d),G.delete(d)}function wt(d,v){let w=y.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 C=new Map(y.blockers);C.set(d,v),pe({blockers:C})}function Br({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 C=Array.from(G.entries()),[T,N]=C[C.length-1],H=y.blockers.get(T);if(!(H&&H.state==="proceeding")&&N({currentLocation:d,nextLocation:v,historyAction:w}))return T}function Jt(d){let v=xe(404,{pathname:d}),w=s||l,{matches:C,route:T}=Ct(w);return{notFoundMatches:C,route:T,error:v}}function ja(d,v,w){if(R=d,E=v,b=w||null,!L&&y.navigation===Zt){L=!0;let C=Yr(y.location,y.matches);C!=null&&pe({restoreScrollPosition:C})}return()=>{R=null,E=null,b=null}}function Wr(d,v){return b&&b(d,v.map(C=>Dn(C,y.loaderData)))||d.key}function Ua(d,v){if(R&&E){let w=Wr(d,v);R[w]=E()}}function Yr(d,v){if(R){let w=Wr(d,v),C=R[w];if(typeof C=="number")return C}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,C){if(!e.patchRoutesOnNavigation)return{type:"success",matches:d};let T=d;for(;;){let N=s==null,H=s||l,O=i;try{await e.patchRoutesOnNavigation({signal:w,path:v,matches:T,fetcherKey:C,patch:(Y,$)=>{w.aborted||un(Y,$,H,O,o,!1)}})}catch(Y){return{type:"error",error:Y,partialMatches:T}}finally{N&&!w.aborted&&(l=[...l])}if(w.aborted)return{type:"aborted"};let I=Ae(H,v,u),j=null;if(I){if(Object.keys(I[0].params).length===0)return{type:"success",matches:I};if(j=ct(H,v,u,!0),!(j&&T.length<j.length&&Vr(T,j.slice(0,T.length))))return{type:"success",matches:I}}if(j||(j=ct(H,v,u,!0)),!j||Vr(T,j))return{type:"success",matches:null};T=j}}function Vr(d,v){return d.length===v.length&&d.every((w,C)=>w.route.id===v[C].route.id)}function Ha(d){i={},s=ht(d,o,void 0,i)}function za(d,v,w=!1){let C=s==null;un(d,v,s||l,i,o,w),C&&(l=[...l],pe({}))}return _={get basename(){return u},get future(){return c},get state(){return y},get routes(){return l},get window(){return t},initialize:me,subscribe:Ta,enableScrollRestoration:ja,navigate:Fr,fetch:Ia,revalidate:Ma,createHref:d=>e.history.createHref(d),encodeLocation:d=>e.history.encodeLocation(d),getFetcher:kr,resetFetcher:Na,deleteFetcher:$a,dispose:Wt,getBlocker:ka,deleteBlocker:zr,patchRoutes:za,_internalFetchControllers:re,_internalSetRoutes:Ha,_internalSetStateDoNotUseOrYouWillBreakYourApp(d){pe(d)}},e.unstable_instrumentations&&(_=To(_,e.unstable_instrumentations.map(d=>d.router).filter(Boolean))),_}function ko(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function ir(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=Rr(n||".",Er(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=Sr(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 m=h.toString();s.search=m?`?${m}`:""}}return r!=="/"&&(s.pathname=wo({basename:r,pathname:s.pathname})),Me(s)}function ln(e,t,r){if(!r||!ko(r))return{path:t};if(r.formMethod&&!ni(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=Xn(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((m,[g,R])=>`${m}${g}=${R}
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=ur(r.formData),s=r.formData;else if(r.body instanceof FormData)l=ur(r.body),s=r.body;else if(r.body instanceof URLSearchParams)l=r.body,s=mn(l);else if(r.body==null)l=new URLSearchParams,s=new FormData;else try{l=new URLSearchParams(r.body),s=mn(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=ke(t);return e&&h.search&&Sr(h.search)&&l.append("index",""),h.search=`?${l}`,{path:Me(h),submission:u}}function sn(e,t,r,n,a,o,i,l,s,u,h,c,m,g,R,b,E,L,S,D,A){var ue;let P=D?Re(D[1])?D[1].error:D[1].data:void 0,_=a.createURL(o.location),y=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 F=D?D[1].statusCode:void 0,J=F&&F>=400,K={currentUrl:_,currentParams:((ue=o.matches[0])==null?void 0:ue.params)||{},nextUrl:y,nextParams:i[0].params,...l,actionResult:P,actionStatus:F},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:br(re)?h?ce=lr(re,o.loaderData,o.errors):jo(o.loaderData,o.matches[ee],X)&&(ce=!0):ce=!1,ce!==null)return sr(r,n,e,ae,X,u,t,ce);let se=!1;typeof A=="boolean"?se=A:J?se=!1:(c||_.pathname+_.search===y.pathname+y.search||_.search!==y.search||Uo(o.matches[ee],X))&&(se=!0);let p={...K,defaultShouldRevalidate:se},x=dt(X,p);return sr(r,n,e,ae,X,u,t,x,p,A)}),Q=[];return R.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=Ae(E,X.path,L);if(!se){if(S&&ce)return;Q.push({key:ee,routeId:X.routeId,path:X.path,matches:null,match:null,request:null,controller:null});return}if(b.has(ee))return;let p=Dt(se,X.path),x=new AbortController,U=qe(a,X.path,x.signal),k=null;if(m.has(ee))m.delete(ee),k=Ze(r,n,U,se,p,u,t);else if(ce)c&&(k=Ze(r,n,U,se,p,u,t));else{let z;typeof A=="boolean"?z=A:J?z=!1:z=c;let G={...K,defaultShouldRevalidate:z};dt(p,G)&&(k=Ze(r,n,U,se,p,u,t,G))}k&&Q.push({key:ee,routeId:X.routeId,path:X.path,matches:k,match:p,request:U,controller:x})}),{dsMatches:le,revalidatingFetchers:Q}}function br(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function lr(e,t,r){if(e.lazy)return!0;if(!br(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 jo(e,t,r){let n=!t||r.route.id!==t.route.id,a=!e.hasOwnProperty(r.route.id);return n||a}function Uo(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 un(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=>Yn(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],m=h,[g]=ht([c],a,[],{},!0);Object.assign(m,{element:g.element?g.element:m.element,errorElement:g.errorElement?g.errorElement:m.errorElement,hydrateFallbackElement:g.hydrateFallbackElement?g.hydrateFallbackElement:m.hydrateFallbackElement})}}function Yn(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=>Yn(r,o))}):!1}var cn=new WeakMap,Vn=({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=cn.get(a);i||(i={},cn.set(a,i));let l=i[e];if(l)return l;let s=(async()=>{let u=no(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 m=await o();m!=null&&(Object.assign(a,{[e]:m}),Object.assign(a,n(a)))}typeof a.lazy=="object"&&(a.lazy[e]=void 0,Object.values(a.lazy).every(m=>m===void 0)&&(a.lazy=void 0))})();return i[e]=s,s},dn=new WeakMap;function Ho(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=dn.get(o);if(h)return{lazyRoutePromise:h,lazyHandlerPromise:h};let c=(async()=>{W(typeof e.lazy=="function","No lazy route function found");let m=await e.lazy(),g={};for(let R in m){let b=m[R];if(b===void 0)continue;let E=oo(R),S=o[R]!==void 0&&R!=="hasErrorBoundary";E?oe(!E,"Route property "+R+" is not a supported property to be returned from a lazy route function. This property will be ignored."):S?oe(!S,`Route "${o.id}" has a static property "${R}" defined but its lazy function is also returning a value for this property. The lazy route property "${R}" will be ignored.`):g[R]=b}Object.assign(o,g),Object.assign(o,{...n(o),lazy:void 0})})();return dn.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=Vn({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 fn(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 zo(e){return e.matches.some(t=>t.route.middleware)?Jn(e,()=>fn(e)):fn(e)}function Jn(e,t){return Bo(e,t,n=>{if(ri(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=Ne(i,i[l].route.id).route.id;return Promise.resolve({[s]:{type:"error",result:n}})}}}async function Bo(e,t,r,n,a){let{matches:o,request:i,params:l,context:s,unstable_pattern:u}=e,h=o.flatMap(m=>m.route.middleware?m.route.middleware.map(g=>[m.route.id,g]):[]);return await Gn({request:i,params:l,context:s,unstable_pattern:u},h,t,r,n,a)}async function Gn(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,m=async()=>{if(c)throw new Error("You may only call `next()` once per middleware");try{return c={value:await Gn(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,m),R=g!=null?n(g):void 0;return a(R)?R:c?R??c.value:(c={value:await m()},c.value)}catch(g){return await o(g,u,c)}}function Kn(e,t,r,n,a){let o=Vn({key:"middleware",route:n.route,manifest:t,mapRouteProperties:e}),i=Ho(n.route,ve(r.method)?"action":"loader",t,e,a);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function sr(e,t,r,n,a,o,i,l,s=null,u){let h=!1,c=Kn(e,t,r,a,o);return{...a,_lazyPromises:c,shouldLoad:l,shouldRevalidateArgs:s,shouldCallHandler(m){return h=!0,s?typeof u=="boolean"?dt(a,{...s,defaultShouldRevalidate:u}):typeof m=="boolean"?dt(a,{...s,defaultShouldRevalidate:m}):dt(a,s):l},resolve(m){let{lazy:g,loader:R,middleware:b}=a.route,E=h||l||m&&!ve(r.method)&&(g||R),L=b&&b.length>0&&!R&&!g;return E&&(ve(r.method)||!L)?Yo({request:r,unstable_pattern:n,match:a,lazyHandlerPromise:c==null?void 0:c.handler,lazyRoutePromise:c==null?void 0:c.route,handlerOverride:m,scopedContext:i}):Promise.resolve({type:"data",result:void 0})}}}function Ze(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:Kn(e,t,r,s,o),resolve:()=>Promise.resolve({type:"data",result:void 0})}:sr(e,t,r,pt(n),s,o,i,!0,l))}async function Wo(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 Jn(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 Yo({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=m=>{let g,R=new Promise((L,S)=>g=S);s=()=>g(),e.signal.addEventListener("abort",s);let b=L=>typeof m!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${h}" [routeId: ${r.route.id}]`)):m({request:e,unstable_pattern:t,params:r.params,context:i},...L!==void 0?[L]:[]),E=(async()=>{try{return{type:"data",result:await(o?o(S=>b(S)):b())}}catch(L){return{type:"error",result:L}}})();return Promise.race([E,R])};try{let m=u?r.route.action:r.route.loader;if(n||a)if(m){let g,[R]=await Promise.all([c(m).catch(b=>{g=b}),n,a]);if(g!==void 0)throw g;l=R}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 R=new URL(e.url),b=R.pathname+R.search;throw xe(405,{method:e.method,pathname:b,routeId:r.route.id})}else return{type:"data",result:void 0}}else if(m)l=await c(m);else{let g=new URL(e.url),R=g.pathname+g.search;throw xe(404,{pathname:R})}}catch(m){return{type:"error",result:m}}finally{s&&e.signal.removeEventListener("abort",s)}return l}async function Vo(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 Jo(e){var n,a,o,i,l;let{result:t,type:r}=e;if(kt(t)){let s;try{s=await Vo(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"?cr(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:qo(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}:cr(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 Go(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"),!wr(o)){let i=n.slice(0,n.findIndex(l=>l.route.id===r)+1);o=ir(new URL(t.url),i,a,o),e.headers.set("Location",o)}return e}function hn(e,t,r,n){let a=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];if(wr(e)){let o=e,i=o.startsWith("//")?new URL(t.protocol+o):new URL(o);if(a.includes(i.protocol))throw new Error("Invalid redirect location");let l=be(i.pathname,r)!=null;if(i.origin===t.origin&&l)return i.pathname+i.search+i.hash}try{let o=n.createURL(e);if(a.includes(o.protocol))throw new Error("Invalid redirect location")}catch{}return e}function qe(e,t,r,n){let a=e.createURL(Xn(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=ur(n.formData):o.body=n.formData}return new Request(a,o)}function ur(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function mn(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Ko(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 m=c.route.id,g=t[m];if(W(!Ye(g),"Cannot handle redirect results in processLoaderData"),Re(g)){let R=g.error;if(h!==void 0&&(R=h,h=void 0),i=i||{},a)i[m]=R;else{let b=Ne(e,m);i[b.route.id]==null&&(i[b.route.id]=R)}n||(o[m]=Wn),s||(s=!0,l=Ve(g.error)?g.error.status:500),g.headers&&(u[m]=g.headers)}else o[m]=g.data,g.statusCode&&g.statusCode!==200&&!s&&(l=g.statusCode),g.headers&&(u[m]=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 pn(e,t,r,n,a,o){let{loaderData:i,errors:l}=Ko(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 m=o[u];if(W(m,"Did not find corresponding fetcher result"),Re(m)){let g=Ne(e.matches,h==null?void 0:h.route.id);l&&l[g.route.id]||(l={...l,[g.route.id]:m.error}),e.fetchers.delete(u)}else if(Ye(m))W(!1,"Unhandled fetcher revalidation redirect");else{let g=Ie(m.data);e.fetchers.set(u,g)}}),{loaderData:i,errors:l}}function yn(e,t,r,n){let a=Object.entries(t).filter(([,o])=>o!==Wn).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 vn(e){return e?Re(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Ne(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 Xn(e){let t=typeof e=="string"?ke(e):e;return Me({...t,hash:""})}function Xo(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function qo(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"&&Zo(r))}function Zo(e){return e!=null&&typeof e=="object"&&"type"in e&&"result"in e&&(e.type==="data"||e.type==="error")}function ei(e){return kt(e.result)&&Hn.has(e.result.status)}function Re(e){return e.type==="error"}function Ye(e){return(e&&e.type)==="redirect"}function cr(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function kt(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function ti(e){return Hn.has(e)}function ri(e){return kt(e)&&ti(e.status)&&e.headers.has("Location")}function ni(e){return Fo.has(e.toUpperCase())}function ve(e){return Io.has(e.toUpperCase())}function Sr(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function Dt(e,t){let r=typeof t=="string"?ke(t).search:t.search;if(e[e.length-1].route.index&&Sr(r||""))return e[e.length-1];let n=Nn(e);return n[n.length-1]}function gn(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 er(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 ai(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 oi(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 Ie(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 ii(e,t){try{let r=e.sessionStorage.getItem(Bn);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 li(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(Bn,JSON.stringify(r))}catch(n){oe(!1,`Failed to save applied view transitions in sessionStorage (${n}).`)}}}function wn(){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 et=f.createContext(null);et.displayName="DataRouterState";var qn=f.createContext(!1);function Qn(){return f.useContext(qn)}var xr=f.createContext({isTransitioning:!1});xr.displayName="ViewTransition";var Cr=f.createContext(new Map);Cr.displayName="Fetchers";var si=f.createContext(null);si.displayName="Await";var Ee=f.createContext(null);Ee.displayName="Navigation";var jt=f.createContext(null);jt.displayName="Location";var Ce=f.createContext({outlet:null,matches:[],isDataRoute:!1});Ce.displayName="Route";var Lr=f.createContext(null);Lr.displayName="RouteError";var Zn="REACT_ROUTER_ERROR",ui="REDIRECT",ci="ROUTE_ERROR_RESPONSE";function di(e){if(e.startsWith(`${Zn}:${ui}:{`))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 fi(e){if(e.startsWith(`${Zn}:${ci}:{`))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 hi(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(jt)!=null}function Le(){return W(yt(),"useLocation() may be used only in the context of a <Router> component."),f.useContext(jt).location}var ea="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function ta(e){f.useContext(Ee).static||f.useLayoutEffect(e)}function ra(){let{isDataRoute:e}=f.useContext(Ce);return e?Mi():mi()}function mi(){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(Er(n)),i=f.useRef(!1);return ta(()=>{i.current=!0}),f.useCallback((s,u={})=>{if(oe(i.current,ea),!i.current)return;if(typeof s=="number"){r.go(s);return}let h=Rr(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 pi=f.createContext(null);function yi(e){let t=f.useContext(Ce).outlet;return f.useMemo(()=>t&&f.createElement(pi.Provider,{value:e},t),[t,e])}function vi(){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(Er(r));return f.useMemo(()=>Rr(e,JSON.parse(a),n,t==="path"),[e,a,n,t])}function gi(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 S=c&&c.path||"";ia(u,!c||S.endsWith("*")||S.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${u}" (under <Route path="${S}">) 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="${S}"> to <Route path="${S==="/"?"*":`${S}/*`}">.`)}let m=Le(),g;g=m;let R=g.pathname||"/",b=R;if(h!=="/"){let S=h.replace(/^\//,"").split("/");b="/"+R.replace(/^\//,"").split("/").slice(S.length).join("/")}let E=Ae(e,{pathname:b});return oe(c||E!=null,`No routes matched location "${g.pathname}${g.search}${g.hash}" `),oe(E==null||E[E.length-1].route.element!==void 0||E[E.length-1].route.Component!==void 0||E[E.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.`),Si(E&&E.map(S=>Object.assign({},S,{params:Object.assign({},s,S.params),pathname:Te([h,o.encodeLocation?o.encodeLocation(S.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:S.pathname]),pathnameBase:S.pathnameBase==="/"?h:Te([h,o.encodeLocation?o.encodeLocation(S.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:S.pathnameBase])})),i,r,n,a)}function wi(){let e=oa(),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 Ei=f.createElement(wi,null),na=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=fi(e.digest);r&&(e=r)}let t=e!==void 0?f.createElement(Ce.Provider,{value:this.props.routeContext},f.createElement(Lr.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?f.createElement(Ri,{error:e},t):t}};na.contextType=qn;var tr=new WeakMap;function Ri({children:e,error:t}){let{basename:r}=f.useContext(Ee);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let n=di(t.digest);if(n){let a=tr.get(t);if(a)throw a;let o=kn(n.location,r);if($n&&!tr.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 tr.set(t,i),i}return f.createElement("meta",{httpEquiv:"refresh",content:`0;url=${o.absoluteURL||o.to}`})}}return e}function bi({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 Si(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:m,errors:g}=r,R=c.route.loader&&!m.hasOwnProperty(c.route.id)&&(!g||g[c.route.id]===void 0);if(c.route.lazy||R){l=!0,s>=0?o=o.slice(0,s+1):o=[o[0]];break}}}let u=r&&n?(h,c)=>{var m,g;n(h,{location:r.location,params:((g=(m=r.matches)==null?void 0:m[0])==null?void 0:g.params)??{},unstable_pattern:pt(r.matches),errorInfo:c})}:void 0;return o.reduceRight((h,c,m)=>{let g,R=!1,b=null,E=null;r&&(g=i&&c.route.id?i[c.route.id]:void 0,b=c.route.errorElement||Ei,l&&(s<0&&m===0?(ia("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),R=!0,E=null):s===m&&(R=!0,E=c.route.hydrateFallbackElement||null)));let L=t.concat(o.slice(0,m+1)),S=()=>{let D;return g?D=b:R?D=E:c.route.Component?D=f.createElement(c.route.Component,null):c.route.element?D=c.route.element:D=h,f.createElement(bi,{match:c,routeContext:{outlet:h,matches:L,isDataRoute:r!=null},children:D})};return r&&(c.route.ErrorBoundary||c.route.errorElement||m===0)?f.createElement(na,{location:r.location,revalidation:r.revalidation,component:b,error:g,children:S(),routeContext:{outlet:null,matches:L,isDataRoute:!0},onError:u}):S()},null)}function Pr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function aa(e){let t=f.useContext(Je);return W(t,Pr(e)),t}function Ge(e){let t=f.useContext(et);return W(t,Pr(e)),t}function xi(e){let t=f.useContext(Ce);return W(t,Pr(e)),t}function gt(e){let t=xi(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 Ci(){return gt("useRouteId")}function Li(){return Ge("useNavigation").navigation}function hs(){let e=aa("useRevalidator"),t=Ge("useRevalidator"),r=f.useCallback(async()=>{await e.router.revalidate()},[e.router]);return f.useMemo(()=>({revalidate:r,state:t.revalidation}),[r,t.revalidation])}function Tr(){let{matches:e,loaderData:t}=Ge("useMatches");return f.useMemo(()=>e.map(r=>Dn(r,t)),[e,t])}function Pi(){let e=Ge("useLoaderData"),t=gt("useLoaderData");return e.loaderData[t]}function ms(e){return Ge("useRouteLoaderData").loaderData[e]}function Ti(){let e=Ge("useActionData"),t=gt("useLoaderData");return e.actionData?e.actionData[t]:void 0}function oa(){var n;let e=f.useContext(Lr),t=Ge("useRouteError"),r=gt("useRouteError");return e!==void 0?e:(n=t.errors)==null?void 0:n[r]}function Mi(){let{router:e}=aa("useNavigate"),t=gt("useNavigate"),r=f.useRef(!1);return ta(()=>{r.current=!0}),f.useCallback(async(a,o={})=>{oe(r.current,ea),r.current&&(typeof a=="number"?await e.navigate(a):await e.navigate(a,{fromRouteId:t,...o}))},[e,t])}var En={};function ia(e,t,r){!t&&!En[e]&&(En[e]=!0,oe(!1,r))}var Rn={};function dr(e,t){!e&&!Rn[t]&&(Rn[t]=!0,console.warn(t))}var _i="useOptimistic",bn=qa[_i],Di=()=>{};function Oi(e){return bn?bn(e):[e,Di]}function ps(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 ys=["HydrateFallback","hydrateFallbackElement"],Ii=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 vs({router:e,flushSync:t,onError:r,unstable_useTransitions:n}){n=Qn()||n;let[o,i]=f.useState(e.state),[l,s]=Oi(o),[u,h]=f.useState(),[c,m]=f.useState({isTransitioning:!1}),[g,R]=f.useState(),[b,E]=f.useState(),[L,S]=f.useState(),D=f.useRef(new Map),A=f.useCallback((M,{deletedFetchers:F,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)}),F.forEach(Q=>D.current.delete(Q)),dr(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(dr(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=>Sn(Q,M)),i(M)});return}if(t&&K){t(()=>{b&&(g==null||g.resolve(),b.skipTransition()),m({isTransitioning:!0,flushSync:!0,currentLocation:ae.currentLocation,nextLocation:ae.nextLocation})});let Q=e.window.document.startViewTransition(()=>{t(()=>i(M))});Q.finished.finally(()=>{t(()=>{R(void 0),E(void 0),h(void 0),m({isTransitioning:!1})})}),t(()=>E(Q));return}b?(g==null||g.resolve(),b.skipTransition(),S({state:M,currentLocation:ae.currentLocation,nextLocation:ae.nextLocation})):(h(M),m({isTransitioning:!0,flushSync:!1,currentLocation:ae.currentLocation,nextLocation:ae.nextLocation}))},[e.window,t,b,g,n,s,r]);f.useLayoutEffect(()=>e.subscribe(A),[e,A]),f.useEffect(()=>{c.isTransitioning&&!c.flushSync&&R(new Ii)},[c]),f.useEffect(()=>{if(g&&u&&e.window){let M=u,F=g.promise,J=e.window.document.startViewTransition(async()=>{n===!1?i(M):f.startTransition(()=>{n===!0&&s(K=>Sn(K,M)),i(M)}),await F});J.finished.finally(()=>{R(void 0),E(void 0),h(void 0),m({isTransitioning:!1})}),E(J)}},[u,g,e.window,n,s]),f.useEffect(()=>{g&&u&&l.location.key===u.location.key&&g.resolve()},[g,b,l.location,u]),f.useEffect(()=>{!c.isTransitioning&&L&&(h(L.state),m({isTransitioning:!0,flushSync:!1,currentLocation:L.currentLocation,nextLocation:L.nextLocation}),S(void 0))},[c.isTransitioning,L]);let P=f.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:M=>e.navigate(M),push:(M,F,J)=>e.navigate(M,{state:F,preventScrollReset:J==null?void 0:J.preventScrollReset}),replace:(M,F,J)=>e.navigate(M,{replace:!0,state:F,preventScrollReset:J==null?void 0:J.preventScrollReset})}),[e]),_=e.basename||"/",y=f.useMemo(()=>({router:e,navigator:P,static:!1,basename:_,onError:r}),[e,P,_,r]);return f.createElement(f.Fragment,null,f.createElement(Je.Provider,{value:y},f.createElement(et.Provider,{value:l},f.createElement(Cr.Provider,{value:D.current},f.createElement(xr.Provider,{value:c},f.createElement(Ni,{basename:_,location:l.location,navigationType:l.historyAction,navigator:P,unstable_useTransitions:n},f.createElement(Ai,{routes:e.routes,future:e.future,state:l,onError:r})))))),null)}function Sn(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(Fi);function Fi({routes:e,future:t,state:r,onError:n}){return gi(e,void 0,r,n,t)}function gs(e){return yi(e.context)}function Ni({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=ke(r));let{pathname:u="/",search:h="",hash:c="",state:m=null,key:g="default"}=r,R=f.useMemo(()=>{let b=be(u,l);return b==null?null:{location:{pathname:b,search:h,hash:c,state:m,key:g},navigationType:n}},[l,u,h,c,m,g,n]);return oe(R!=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.`),R==null?null:f.createElement(Ee.Provider,{value:s},f.createElement(jt.Provider,{children:t,value:R}))}function $i(){return{params:vi(),loaderData:Pi(),actionData:Ti(),matches:Tr()}}function ws(e){return function(){const r=$i();return f.createElement(e,r)}}var Ot="get",It="application/x-www-form-urlencoded";function Ut(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function ki(e){return Ut(e)&&e.tagName.toLowerCase()==="button"}function ji(e){return Ut(e)&&e.tagName.toLowerCase()==="form"}function Ui(e){return Ut(e)&&e.tagName.toLowerCase()==="input"}function Hi(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function zi(e,t){return e.button===0&&(!t||t==="_self")&&!Hi(e)}function fr(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 Bi(e,t){let r=fr(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(o=>{r.append(a,o)})}),r}var Pt=null;function Wi(){if(Pt===null)try{new FormData(document.createElement("form"),0),Pt=!1}catch{Pt=!0}return Pt}var Yi=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function rr(e){return e!=null&&!Yi.has(e)?(oe(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${It}"`),null):e}function Vi(e,t){let r,n,a,o,i;if(ji(e)){let l=e.getAttribute("action");n=l?be(l,t):null,r=e.getAttribute("method")||Ot,a=rr(e.getAttribute("enctype"))||It,o=new FormData(e)}else if(ki(e)||Ui(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=rr(e.getAttribute("formenctype"))||rr(l.getAttribute("enctype"))||It,o=new FormData(l,e),!Wi()){let{name:u,type:h,value:c}=e;if(h==="image"){let m=u?`${u}.`:"";o.append(`${m}x`,"0"),o.append(`${m}y`,"0")}else u&&o.append(u,c)}}else{if(Ut(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=Ot,n=null,a=It,i=e}return o&&a==="text/plain"&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}var Ji=-1,Gi=-2,Ki=-3,Xi=-4,qi=-5,Qi=-6,Zi=-7,el="B",tl="D",la="E",rl="M",nl="N",sa="P",al="R",ol="S",il="Y",ll="U",sl="Z",ua=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function ul(){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 nr=typeof window<"u"?window:typeof globalThis<"u"?globalThis:void 0;function hr(e){const{hydrated:t,values:r}=this;if(typeof e=="number")return xn.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,xn.call(this,n)}function xn(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 Zi:u(void 0);continue;case qi:u(null);continue;case Gi:u(NaN);continue;case Qi:u(1/0);continue;case Ki:u(-1/0);continue;case Xi: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,m,g]=h;switch(c){case tl:u(t[s]=new Date(m));continue;case ll:u(t[s]=new URL(m));continue;case el:u(t[s]=BigInt(m));continue;case al:u(t[s]=new RegExp(m,g));continue;case il:u(t[s]=Symbol.for(m));continue;case ol:const R=new Set;t[s]=R;for(let A=h.length-1;A>0;A--)i.push([h[A],P=>{R.add(P)}]);u(R);continue;case rl:const b=new Map;t[s]=b;for(let A=h.length-2;A>0;A-=2){const P=[];i.push([h[A+1],_=>{P[1]=_}]),i.push([h[A],_=>{P[0]=_}]),l.push(()=>{b.set(P[0],P[1])})}u(b);continue;case nl:const E=Object.create(null);t[s]=E;for(const A of Object.keys(m).reverse()){const P=[];i.push([m[A],_=>{P[1]=_}]),i.push([Number(A.slice(1)),_=>{P[0]=_}]),l.push(()=>{E[P[0]]=P[1]})}u(E);continue;case sa:if(t[m])u(t[s]=t[m]);else{const A=new ua;n[m]=A,u(t[s]=A.promise)}continue;case la:const[,L,S]=h;let D=S&&nr&&nr[S]?new nr[S](L):new Error(L);t[s]=D,u(D);continue;case sl:u(t[s]=t[m]);continue;default:if(Array.isArray(a)){const A=[],P=h.slice(1);for(let _=0;_<P.length;_++){const y=P[_];i.push([y,M=>{A[_]=M}])}l.push(()=>{for(const _ of a){const y=_(h[0],...A);if(y){u(t[s]=y.value);return}}throw new SyntaxError});continue}throw new SyntaxError}}else{const c=[];t[s]=c;for(let m=0;m<h.length;m++){const g=h[m];g!==Ji&&i.push([g,R=>{c[m]=R}])}u(c);continue}else{const c={};t[s]=c;for(const m of Object.keys(h).reverse()){const g=[];i.push([h[m],R=>{g[1]=R}]),i.push([Number(m.slice(1)),R=>{g[0]=R}]),l.push(()=>{c[g[0]]=g[1]})}u(c);continue}}for(;l.length>0;)l.pop()();return o}async function cl(e,t){const{plugins:r}=t??{},n=new ua,a=e.pipeThrough(ul()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:r},i=await dl.call(o,a);let l=n.promise;return i.done?n.resolve():l=fl.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 dl(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:hr.call(this,r)}}async function fl(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;const r=t.value;switch(r[0]){case sa:{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=hr.call(this,l);o.resolve(s);break}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=hr.call(this,l);o.reject(s);break}default:throw new SyntaxError}t=await e.read()}}async function hl(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 ml={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},pl=/[&><\u2028\u2029]/g;function mr(e){return e.replace(pl,t=>ml[t])}function we(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}var pr=Symbol("SingleFetchRedirect"),ca=class extends Error{},yl=202,vl=new Set([100,101,204,205]);function Es(e,t,r,n,a,o){let i=gl(e,l=>{let s=t.routes[l.route.id];we(s,"Route not found in manifest");let u=r[l.route.id];return{hasLoader:s.hasLoader,hasClientLoader:s.hasClientLoader,hasShouldRevalidate:!!(u!=null&&u.shouldRevalidate)}},Cl,n,a,o);return async l=>l.runClientMiddleware(i)}function gl(e,t,r,n,a,o,i=()=>!0){return async l=>{let{request:s,matches:u,fetcherKey:h}=l,c=e();if(s.method!=="GET")return wl(l,r,a,o);let m=u.some(g=>{let{hasLoader:R,hasClientLoader:b}=t(g);return g.shouldCallHandler()&&R&&!b});return!n&&!m?El(l,t,r,a,o):h?Sl(l,r,a,o):Rl(l,c,t,r,n,a,o,i)}}async function wl(e,t,r,n){let a=e.matches.find(l=>l.shouldCallHandler());we(a,"No action match found");let o,i=await a.resolve(async l=>await l(async()=>{let{data:u,status:h}=await t(e,r,n,[a.route.id]);return o=h,mt(u,a.route.id)}));return kt(i.result)||Ve(i.result)||cr(i.result)?{[a.route.id]:i}:{[a.route.id]:{type:i.type,result:Co(i.result,o)}}}async function El(e,t,r,n,a){let o=e.matches.filter(l=>l.shouldCallHandler()),i={};return await Promise.all(o.map(l=>l.resolve(async s=>{try{let{hasClientLoader:u}=t(l),h=l.route.id,c=u?await s(async()=>{let{data:m}=await r(e,n,a,[h]);return mt(m,h)}):await s();i[l.route.id]={type:"data",result:c}}catch(u){i[l.route.id]={type:"error",result:u}}}))),i}async function Rl(e,t,r,n,a,o,i,l=()=>!0){let s=new Set,u=!1,h=e.matches.map(()=>Cn()),c=Cn(),m={},g=Promise.all(e.matches.map(async(b,E)=>b.resolve(async L=>{h[E].resolve();let S=b.route.id,{hasLoader:D,hasClientLoader:A,hasShouldRevalidate:P}=r(b),_=!b.shouldRevalidateArgs||b.shouldRevalidateArgs.actionStatus==null||b.shouldRevalidateArgs.actionStatus<400;if(!b.shouldCallHandler(_)){u||(u=b.shouldRevalidateArgs!=null&&D&&P===!0);return}if(l(b)&&A){D&&(u=!0);try{let M=await L(async()=>{let{data:F}=await n(e,o,i,[S]);return mt(F,S)});m[S]={type:"data",result:M}}catch(M){m[S]={type:"error",result:M}}return}D&&s.add(S);try{let M=await L(async()=>{let F=await c.promise;return mt(F,S)});m[S]={type:"data",result:M}}catch(M){m[S]={type:"error",result:M}}})));if(await Promise.all(h.map(b=>b.promise)),(!t.state.initialized&&t.state.navigation.state==="idle"||s.size===0)&&!window.__reactRouterHdrActive)c.resolve({routes:{}});else{let b=a&&u&&s.size>0?[...s.keys()]:void 0;try{let E=await n(e,o,i,b);c.resolve(E.data)}catch(E){c.reject(E)}}return await g,await bl(c.promise,e.matches,s,m),m}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 ca&&(n[l].result=o)})}catch{}}async function Sl(e,t,r,n){let a=e.matches.find(l=>l.shouldCallHandler());we(a,"No fetcher match found");let o=a.route.id,i=await a.resolve(async l=>l(async()=>{let{data:s}=await t(e,r,n,[o]);return mt(s,o)}));return{[a.route.id]:i}}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 da(e,t,r,n){let a=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return r?a.pathname.endsWith("/")?a.pathname=`${a.pathname}_.${n}`:a.pathname=`${a.pathname}.${n}`:a.pathname==="/"?a.pathname=`_root.${n}`:t&&be(a.pathname,t)==="/"?a.pathname=`${t.replace(/\/$/,"")}/_root.${n}`:a.pathname=`${a.pathname.replace(/\/$/,"")}.${n}`,a}async function Cl(e,t,r,n){let{request:a}=e,o=da(a.url,t,r,"data");a.method==="GET"&&(o=xl(o),n&&o.searchParams.set("_routes",n.join(",")));let i=await fetch(o,await hl(a));if(i.status>=400&&!i.headers.has("X-Remix-Response"))throw new je(i.status,i.statusText,await i.text());if(i.status===204&&i.headers.has("X-Remix-Redirect"))return{status:yl,data:{redirect:{redirect:i.headers.get("X-Remix-Redirect"),status:Number(i.headers.get("X-Remix-Status")||"302"),revalidate:i.headers.get("X-Remix-Revalidate")==="true",reload:i.headers.get("X-Remix-Reload-Document")==="true",replace:i.headers.get("X-Remix-Replace")==="true"}}};if(vl.has(i.status)){let l={};return n&&a.method!=="GET"&&(l[n[0]]={data:void 0}),{status:i.status,data:{routes:l}}}we(i.body,"No response body to decode");try{let l=await Ll(i.body,window),s;if(a.method==="GET"){let u=l.value;pr in u?s={redirect:u[pr]}:s={routes:u}}else{let u=l.value,h=n==null?void 0:n[0];we(h,"No routeId found for single fetch call decoding"),"redirect"in u?s={redirect:u}:s={routes:{[h]:u}}}return{status:i.status,data:s}}catch{throw new Error("Unable to decode turbo-stream response")}}function Ll(e,t){return cl(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 Lo(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 ca(`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 Cn(){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 fa(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=_r(e,r);return ya(n,a)}function ha(e){return e.css?e.css.map(t=>({rel:"stylesheet",href:t})):[]}async function Tl(e){if(!e.css)return;let t=ha(e);await Promise.all(t.map(pa))}async function ma(e,t){if(!e.css&&!t.links||!Il())return;let r=[];if(e.css&&r.push(...ha(e)),t.links&&r.push(...t.links()),r.length===0)return;let n=[];for(let a of r)!Mr(a)&&a.rel==="stylesheet"&&n.push({...a,rel:"preload",as:"style"});await Promise.all(n.map(pa))}async function pa(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 Mr(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 fa(o,r);return i.links?i.links():[]}return[]}));return ya(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 Ln(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 m=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 m=="boolean")return m}return!0}):[]}function _r(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 ya(e,t){let r=new Set,n=new Set(t);return e.reduce((a,o)=>{if(t&&!Mr(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 Il(){if(Tt!==void 0)return Tt;let e=document.createElement("link");return Tt=e.relList.supports("preload"),e=null,Tt}function Al(){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 va(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=ga(t),a=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?Al:void 0,o=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>f.createElement(Ra,{error:oa()}):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 Rs(e,t,r,n,a,o){return Dr(t,r,n,a,o,"",va(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 ar(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 Dr(e,t,r,n,a,o="",i=va(e),l){return(i[o]||[]).map(s=>{var S,D,A;let u=t[s.id];function h(P){return we(typeof P=="function","No single fetch function available for route handler"),P()}function c(P){return s.hasLoader?h(P):Promise.resolve(null)}function m(P){if(!s.hasAction)throw ar("action",s.id);return h(P)}function g(P){import(P)}function R(P){P.clientActionModule&&g(P.clientActionModule),P.clientLoaderModule&&g(P.clientLoaderModule)}async function b(P){let _=t[s.id],y=_?ma(s,_):Promise.resolve();try{return P()}finally{await y}}let E={id:s.id,index:s.index,path:s.path};if(u){Object.assign(E,{...E,...Fl(s,u,a),middleware:u.clientMiddleware,handle:u.handle,shouldRevalidate:Pn(E.path,u,s,n,l)});let P=r&&r.loaderData&&s.id in r.loaderData,_=P?(S=r==null?void 0:r.loaderData)==null?void 0:S[s.id]:void 0,y=r&&r.errors&&s.id in r.errors,M=y?(D=r==null?void 0:r.errors)==null?void 0:D[s.id]:void 0,F=l==null&&(((A=u.clientLoader)==null?void 0:A.hydrate)===!0||!s.hasLoader);E.loader=async({request:J,params:K,context:ae,unstable_pattern:le},Q)=>{try{return await b(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),F){if(P)return _;if(y)throw M}return c(Q)}}):c(Q)))}finally{F=!1}},E.loader.hydrate=kl(s.id,u.clientLoader,s.hasLoader,a),E.action=({request:J,params:K,context:ae,unstable_pattern:le},Q)=>b(async()=>{if(we(u,"No `routeModule` available for critical-route action"),!u.clientAction){if(a)throw ar("clientAction",s.id);return m(Q)}return u.clientAction({request:J,params:K,context:ae,unstable_pattern:le,async serverAction(){return Mt("action",s),m(Q)}})})}else{s.hasClientLoader||(E.loader=(y,M)=>b(()=>c(M))),s.hasClientAction||(E.action=(y,M)=>b(()=>{if(a)throw ar("clientAction",s.id);return m(M)}));let P;async function _(){return P?await P:(P=(async()=>{(s.clientLoaderModule||s.clientActionModule)&&await new Promise(M=>setTimeout(M,0));let y=$l(s,t);return R(s),await y})(),await P)}E.lazy={loader:s.hasClientLoader?async()=>{let{clientLoader:y}=s.clientLoaderModule?await import(s.clientLoaderModule):await _();return we(y,"No `clientLoader` export found"),(M,F)=>y({...M,async serverLoader(){return Mt("loader",s),c(F)}})}:void 0,action:s.hasClientAction?async()=>{let y=s.clientActionModule?import(s.clientActionModule):_();R(s);let{clientAction:M}=await y;return we(M,"No `clientAction` export found"),(F,J)=>M({...F,async serverAction(){return Mt("action",s),m(J)}})}:void 0,middleware:s.hasClientMiddleware?async()=>{let{clientMiddleware:y}=s.clientMiddlewareModule?await import(s.clientMiddlewareModule):await _();return we(y,"No `clientMiddleware` export found"),y}:void 0,shouldRevalidate:async()=>{let y=await _();return Pn(E.path,y,s,n,l)},handle:async()=>(await _()).handle,Component:async()=>(await _()).Component,ErrorBoundary:s.hasErrorBoundary?async()=>(await _()).ErrorBoundary:void 0}}let L=Dr(e,t,r,n,a,s.id,i,l);return L.length>0&&(E.children=L),E})}function Pn(e,t,r,n,a){if(a)return Nl(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 Nl(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}async function $l(e,t){let r=fa(e,t),n=Tl(e),a=await r;return await Promise.all([n,ma(e,a)]),{Component:ga(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 ga(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function kl(e,t,r,n){return n&&e!=="root"||t!=null&&(t.hydrate===!0||r!==!0)}var At=new Set,jl=1e3,Nt=new Set,Ul=7680;function Or(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=Ae(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 bs(e,t,r,n,a,o){if(Or(n,r))return async({path:i,patch:l,signal:s,fetcherKey:u})=>{Nt.has(i)||await wa([i],u?window.location.href:i,e,t,r,a,o,n.manifestPath,l,s)}}function Ss(e,t,r,n,a,o){f.useEffect(()=>{var h,c;if(!Or(a,n)||((c=(h=window.navigator)==null?void 0:h.connection)==null?void 0:c.saveData)===!0)return;function i(m){let g=m.tagName==="FORM"?m.getAttribute("action"):m.getAttribute("href");if(!g)return;let R=m.tagName==="A"?m.pathname:new URL(g,window.location.origin).pathname;Nt.has(R)||At.add(R)}async function l(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(i);let m=Array.from(At.keys()).filter(g=>Nt.has(g)?(At.delete(g),!1):!0);if(m.length!==0)try{await wa(m,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 or="react-router-manifest-version";async function wa(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){At.clear();return}let m;try{let E=await fetch(c,{signal:u});if(E.ok){if(E.status===204&&E.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(or)===r.version){console.error("Unable to discover routes due to manifest version mismatch.");return}sessionStorage.setItem(or,r.version)}catch{}window.location.href=t,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{})}else if(E.status>=400)throw new Error(await E.text())}else throw new Error(`${E.status} ${E.statusText}`);try{sessionStorage.removeItem(or)}catch{}m=await E.json()}catch(E){if(u!=null&&u.aborted)return;throw E}let g=new Set(Object.keys(r.routes)),R=Object.values(m).reduce((E,L)=>(L&&!g.has(L.id)&&(E[L.id]=L),E),{});Object.assign(r.routes,R),e.forEach(E=>Bl(E,Nt));let b=new Set;Object.values(R).forEach(E=>{E&&(!E.parentId||!R[E.parentId])&&b.add(E.parentId)}),b.forEach(E=>s(E||null,Dr(R,n,null,a,o,E)))}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 Ir(){let e=f.useContext(Je);return we(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Ht(){let e=f.useContext(et);return we(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var zt=f.createContext(void 0);zt.displayName="FrameworkContext";function tt(){let e=f.useContext(zt);return we(e,"You must render this element inside a <HydratedRouter> element"),e}function Yl(e,t){let r=f.useContext(zt),[n,a]=f.useState(!1),[o,i]=f.useState(!1),{onFocus:l,onBlur:s,onMouseEnter:u,onMouseLeave:h,onTouchStart:c}=t,m=f.useRef(null);f.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let b=L=>{L.forEach(S=>{i(S.isIntersecting)})},E=new IntersectionObserver(b,{threshold:.5});return m.current&&E.observe(m.current),()=>{E.disconnect()}}},[e]),f.useEffect(()=>{if(n){let b=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(b)}}},[n]);let g=()=>{a(!0)},R=()=>{a(!1),i(!1)};return r?e!=="intent"?[o,m,{}]:[o,m,{onFocus:st(l,g),onBlur:st(s,R),onMouseEnter:st(u,g),onMouseLeave:st(h,R),onTouchStart:st(c,g)}]:[!1,m,{}]}function st(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function Ar(e,t,r){if(r&&!$t)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 Tn="data-react-router-critical-css";function xs({nonce:e,crossOrigin:t}){let{isSpaMode:r,manifest:n,routeModules:a,criticalCss:o}=tt(),{errors:i,matches:l}=Ht(),s=Ar(l,i,r),u=f.useMemo(()=>Pl(s,a,n),[s,a,n]);return f.createElement(f.Fragment,null,typeof o=="string"?f.createElement("style",{[Tn]:"",nonce:e,dangerouslySetInnerHTML:{__html:o}}):null,typeof o=="object"?f.createElement("link",{[Tn]:"",rel:"stylesheet",href:o.href,nonce:e,crossOrigin:t}):null,u.map(({key:h,link:c})=>Mr(c)?f.createElement(Ea,{key:h,nonce:e,...c,crossOrigin:c.crossOrigin??t}):f.createElement("link",{key:h,nonce:e,...c,crossOrigin:c.crossOrigin??t})))}function Ea({page:e,...t}){let{router:r}=Ir(),n=f.useMemo(()=>Ae(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(),{future:a,manifest:o,routeModules:i}=tt(),{basename:l}=Ir(),{loaderData:s,matches:u}=Ht(),h=f.useMemo(()=>Ln(e,t,u,o,n,"data"),[e,t,u,o,n]),c=f.useMemo(()=>Ln(e,t,u,o,n,"assets"),[e,t,u,o,n]),m=f.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let b=new Set,E=!1;if(t.forEach(S=>{var A;let D=o.routes[S.route.id];!D||!D.hasLoader||(!h.some(P=>P.route.id===S.route.id)&&S.route.id in s&&((A=i[S.route.id])!=null&&A.shouldRevalidate)||D.hasClientLoader?E=!0:b.add(S.route.id))}),b.size===0)return[];let L=da(e,l,a.unstable_trailingSlashAwareDataRequests,"data");return E&&b.size>0&&L.searchParams.set("_routes",t.filter(S=>b.has(S.route.id)).map(S=>S.route.id).join(",")),[L.pathname+L.search]},[l,a.unstable_trailingSlashAwareDataRequests,s,n,o,h,t,e,i]),g=f.useMemo(()=>_r(c,o),[c,o]),R=Vl(c);return f.createElement(f.Fragment,null,m.map(b=>f.createElement("link",{key:b,rel:"prefetch",as:"fetch",href:b,...r})),g.map(b=>f.createElement("link",{key:b,rel:"modulepreload",href:b,...r})),R.map(({key:b,link:E})=>f.createElement("link",{key:b,nonce:r.nonce,...E,crossOrigin:E.crossOrigin??r.crossOrigin})))}function Cs(){let{isSpaMode:e,routeModules:t}=tt(),{errors:r,matches:n,loaderData:a}=Ht(),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 m=i[c],g=m.route.id,R=a[g],b=m.params,E=t[g],L=[],S={id:g,data:R,loaderData:R,meta:[],params:m.params,pathname:m.pathname,handle:m.route.handle,error:l};if(h[c]=S,E!=null&&E.meta?L=typeof E.meta=="function"?E.meta({data:R,loaderData:R,params:b,location:o,matches:h,error:l}):Array.isArray(E.meta)?[...E.meta]:E.meta:u&&(L=[...u]),L=L||[],!Array.isArray(L))throw new Error("The route at "+m.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`);S.meta=L,h[c]=S,s=[...L],u=s}return f.createElement(f.Fragment,null,s.flat().map(c=>{if(!c)return null;if("tagName"in c){let{tagName:m,...g}=c;if(!Gl(m))return console.warn(`A meta object uses an invalid tagName: ${m}. Expected either 'link' or 'meta'`),null;let R=m;return f.createElement(R,{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 m=JSON.stringify(c["script:ld+json"]);return f.createElement("script",{key:`script:ld+json:${m}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:mr(m)}})}catch{return null}return f.createElement("meta",{key:JSON.stringify(c),...c})}))}function Gl(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}var $t=!1;function Kl(){$t=!0}function Xl(e){let{manifest:t,serverHandoffString:r,isSpaMode:n,renderMeta:a,routeDiscovery:o,ssr:i}=tt(),{router:l,static:s,staticContext:u}=Ir(),{matches:h}=Ht(),c=Qn(),m=Or(o,i);a&&(a.didRenderScripts=!0);let g=Ar(h,null,n);f.useEffect(()=>{Kl()},[]);let R=f.useMemo(()=>{var A;if(c)return null;let S=u?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",D=s?`${(A=t.hmr)!=null&&A.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${m?"":`import ${JSON.stringify(t.url)}`};
40
+ ${g.map((P,_)=>{let y=`route${_}`,M=t.routes[P.route.id];we(M,`Route ${P.route.id} not found in manifest`);let{clientActionModule:F,clientLoaderModule:J,clientMiddlewareModule:K,hydrateFallbackModule:ae,module:le}=M,Q=[...F?[{module:F,varName:`${y}_clientAction`}]:[],...J?[{module:J,varName:`${y}_clientLoader`}]:[],...K?[{module:K,varName:`${y}_clientMiddleware`}]:[],...ae?[{module:ae,varName:`${y}_HydrateFallback`}]:[],{module:le,varName:`${y}_main`}];if(Q.length===1)return`import * as ${y} from ${JSON.stringify(le)};`;let ue=Q.map(ee=>`import * as ${ee.varName} from "${ee.module}";`).join(`
41
+ `),X=`const ${y} = {${Q.map(ee=>`...${ee.varName}`).join(",")}};`;return[ue,X].join(`
42
+ `)}).join(`
43
+ `)}
44
+ ${m?`window.__reactRouterManifest = ${JSON.stringify(Hl(t,l),null,2)};`:""}
45
+ window.__reactRouterRouteModules = {${g.map((P,_)=>`${JSON.stringify(P.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:S},type:void 0}),f.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:D},type:"module",async:!0}))},[]),b=$t||c?[]:ql(t.entry.imports.concat(_r(g,t,{includeHydrateFallback:!0}))),E=typeof t.sri=="object"?t.sri:{};return dr(!c,"The <Scripts /> element is a no-op when using RSC and can be safely removed."),$t||c?null:f.createElement(f.Fragment,null,typeof t.sri=="object"?f.createElement("script",{...e,"rr-importmap":"",type:"importmap",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:E})}}):null,m?null:f.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin,integrity:E[t.url],suppressHydrationWarning:!0}),f.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin,integrity:E[t.entry.module],suppressHydrationWarning:!0}),b.map(L=>f.createElement("link",{key:L,rel:"modulepreload",href:L,crossOrigin:e.crossOrigin,integrity:E[L],suppressHydrationWarning:!0})),R)}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 Ls=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(Ra,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function Ra({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.13.0")}catch{}var ba=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Sa=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:m,...g},R){let{basename:b,unstable_useTransitions:E}=f.useContext(Ee),L=typeof u=="string"&&ba.test(u),S=kn(u,b);u=S.to;let D=hi(u,{relative:a}),[A,P,_]=Yl(n,g),y=rs(u,{replace:i,state:l,target:s,preventScrollReset:h,relative:a,viewTransition:c,unstable_defaultShouldRevalidate:m,unstable_useTransitions:E});function M(J){t&&t(J),J.defaultPrevented||y(J)}let F=f.createElement("a",{...g,..._,href:S.absoluteURL||D,onClick:S.isExternal||o?t:M,ref:Ql(R,P),target:s,"data-discover":!L&&r==="render"?"true":void 0});return A&&!L?f.createElement(f.Fragment,null,F,f.createElement(Ea,{page:D})):F});Sa.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}),m=Le(),g=f.useContext(et),{navigator:R,basename:b}=f.useContext(Ee),E=g!=null&&ss(c)&&l===!0,L=R.encodeLocation?R.encodeLocation(c).pathname:c.pathname,S=m.pathname,D=g&&g.navigation&&g.navigation.location?g.navigation.location.pathname:null;r||(S=S.toLowerCase(),D=D?D.toLowerCase():null,L=L.toLowerCase()),D&&b&&(D=be(D,b)||D);const A=L!=="/"&&L.endsWith("/")?L.length-1:L.length;let P=S===L||!a&&S.startsWith(L)&&S.charAt(A)==="/",_=D!=null&&(D===L||!a&&D.startsWith(L)&&D.charAt(L.length)==="/"),y={isActive:P,isPending:_,isTransitioning:E},M=P?t:void 0,F;typeof n=="function"?F=n(y):F=[n,P?"active":null,_?"pending":null,E?"transitioning":null].filter(Boolean).join(" ");let J=typeof o=="function"?o(y):o;return f.createElement(Sa,{...u,"aria-current":M,className:F,ref:h,style:J,to:i,viewTransition:l},typeof s=="function"?s(y):s)});es.displayName="NavLink";var xa=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:m,...g},R)=>{let{unstable_useTransitions:b}=f.useContext(Ee),E=Pa(),L=os(l,{relative:u}),S=i.toLowerCase()==="get"?"get":"post",D=typeof l=="string"&&ba.test(l),A=P=>{if(s&&s(P),P.defaultPrevented)return;P.preventDefault();let _=P.nativeEvent.submitter,y=(_==null?void 0:_.getAttribute("formmethod"))||i,M=()=>E(_||P.currentTarget,{fetcherKey:t,method:y,navigate:r,replace:a,state:o,relative:u,preventScrollReset:h,viewTransition:c,unstable_defaultShouldRevalidate:m});b&&r!==!1?f.startTransition(()=>M()):M()};return f.createElement("form",{ref:R,method:S,action:L,onSubmit:n?s:A,...g,"data-discover":!D&&e==="render"?"true":void 0})});xa.displayName="Form";function ts({getKey:e,storageKey:t,...r}){let n=f.useContext(zt),{basename:a}=f.useContext(Ee),o=Le(),i=Tr();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 m=JSON.parse(sessionStorage.getItem(u)||"{}")[h||window.history.state.key];typeof m=="number"&&window.scrollTo(0,m)}catch(c){console.error(c),sessionStorage.removeItem(u)}}).toString();return f.createElement("script",{...r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${s})(${mr(JSON.stringify(t||vr))}, ${mr(JSON.stringify(l))})`}})}ts.displayName="ScrollRestoration";function Ca(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Bt(e){let t=f.useContext(Je);return W(t,Ca(e)),t}function La(e){let t=f.useContext(et);return W(t,Ca(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=ra(),h=Le(),c=vt(e,{relative:o});return f.useCallback(m=>{if(zi(m,t)){m.preventDefault();let g=r!==void 0?r:Me(h)===Me(c),R=()=>u(e,{replace:g,state:n,preventScrollReset:a,relative:o,viewTransition:i,unstable_defaultShouldRevalidate:l});s?f.startTransition(()=>R()):R()}},[h,u,c,r,n,t,e,a,o,i,l,s])}function Ps(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(fr(e)),r=f.useRef(!1),n=Le(),a=f.useMemo(()=>Bi(n.search,r.current?null:t.current),[n.search]),o=ra(),i=f.useCallback((l,s)=>{const u=fr(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 Pa(){let{router:e}=Bt("useSubmit"),{basename:t}=f.useContext(Ee),r=Ci(),n=e.fetch,a=e.navigate;return f.useCallback(async(o,i={})=>{let{action:l,method:s,encType:u,formData:h,body:c}=Vi(o,t);if(i.navigate===!1){let m=i.fetcherKey||as();await n(m,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 Ts({key:e}={}){var P;let{router:t}=Bt("useFetcher"),r=La("useFetcher"),n=f.useContext(Cr),a=f.useContext(Ce),o=(P=a.matches[a.matches.length-1])==null?void 0:P.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:m}=t;f.useEffect(()=>(h(l),()=>u(l)),[u,h,l]);let g=f.useCallback(async(_,y)=>{W(o,"No routeId available for fetcher.load()"),await m(l,o,_,y)},[l,o,m]),R=Pa(),b=f.useCallback(async(_,y)=>{await R(_,{...y,navigate:!1,fetcherKey:l})},[l,R]),E=f.useCallback(_=>c(l,_),[c,l]),L=f.useMemo(()=>{let _=f.forwardRef((y,M)=>f.createElement(xa,{...y,navigate:!1,fetcherKey:l,ref:M}));return _.displayName="fetcher.Form",_},[l]),S=r.fetchers.get(l)||zn,D=n.get(l);return f.useMemo(()=>({Form:L,submit:b,load:g,reset:E,...S,data:D}),[L,b,g,E,S,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}=Bt("useScrollRestoration"),{restoreScrollPosition:n,preventScrollReset:a}=La("useScrollRestoration"),{basename:o}=f.useContext(Ee),i=Le(),l=Tr(),s=Li();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(xr);W(r!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:n}=Bt("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{Rs as A,ps as B,ys as C,xs as D,je as E,zt as F,Xl as G,Ya as H,us as I,Sa as L,Cs as M,vl as N,gs as O,Xa as R,ts as S,ra as a,Ps as b,Ts as c,Le as d,Ti as e,hs as f,ms as g,Ka as h,vi as i,cs as j,Ve as k,W as l,Ae as m,Ss as n,Ls as o,vs as p,Ll as q,f as r,kl as s,Dr as t,Pi as u,fs as v,ws as w,bs as x,Es as y,ds as z};
@@ -0,0 +1,6 @@
1
+ import{c}from"./createLucideIcon-D1zB-pYc.js";/**
2
+ * @license lucide-react v0.556.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const e=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],r=c("circle-check",e);export{r as C};
@@ -0,0 +1,11 @@
1
+ import{c}from"./createLucideIcon-D1zB-pYc.js";/**
2
+ * @license lucide-react v0.556.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const e=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],a=c("check",e);/**
7
+ * @license lucide-react v0.556.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const o=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],h=c("copy",o);export{a as C,h as a};
@@ -0,0 +1,21 @@
1
+ import{r as s}from"./chunk-JZWAC4HX-DB3aFuEO.js";/**
2
+ * @license lucide-react v0.556.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const C=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),w=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,r,o)=>o?o.toUpperCase():r.toLowerCase()),i=t=>{const e=w(t);return e.charAt(0).toUpperCase()+e.slice(1)},l=(...t)=>t.filter((e,r,o)=>!!e&&e.trim()!==""&&o.indexOf(e)===r).join(" ").trim(),f=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};/**
7
+ * @license lucide-react v0.556.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */var h={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
12
+ * @license lucide-react v0.556.0 - ISC
13
+ *
14
+ * This source code is licensed under the ISC license.
15
+ * See the LICENSE file in the root directory of this source tree.
16
+ */const g=s.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:r=2,absoluteStrokeWidth:o,className:n="",children:a,iconNode:u,...c},p)=>s.createElement("svg",{ref:p,...h,width:e,height:e,stroke:t,strokeWidth:o?Number(r)*24/Number(e):r,className:l("lucide",n),...!a&&!f(c)&&{"aria-hidden":"true"},...c},[...u.map(([m,d])=>s.createElement(m,d)),...Array.isArray(a)?a:[a]]));/**
17
+ * @license lucide-react v0.556.0 - ISC
18
+ *
19
+ * This source code is licensed under the ISC license.
20
+ * See the LICENSE file in the root directory of this source tree.
21
+ */const b=(t,e)=>{const r=s.forwardRef(({className:o,...n},a)=>s.createElement(g,{ref:a,iconNode:e,className:l(`lucide-${C(i(t))}`,`lucide-${t}`,o),...n}));return r.displayName=i(t),r};export{b as c};
@@ -1,4 +1,4 @@
1
1
  <svg width="40" height="28" viewBox="0 0 40 28" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M12.0391 8.23173H14.5737C15.0795 8.23173 15.5645 8.03081 15.9221 7.6732C16.2797 7.31559 16.4806 6.83057 16.4806 6.32484C16.4806 5.8191 16.2797 5.33408 15.9221 4.97647C15.5645 4.61886 15.0795 4.41797 14.5737 4.41797H12.0477C11.5419 4.41797 11.0569 4.61886 10.6993 4.97647C10.3417 5.33408 10.1408 5.8191 10.1408 6.32484C10.1408 6.57525 10.0915 6.82323 9.99564 7.05458C9.89981 7.28594 9.75934 7.49613 9.58227 7.6732C9.4052 7.85027 9.19498 7.99074 8.96363 8.08657C8.73227 8.1824 8.48432 8.23173 8.2339 8.23173H5.70784C5.20285 8.23173 4.71847 8.43203 4.36099 8.78872C4.0035 9.14541 3.80208 9.62936 3.80095 10.1344C3.80095 10.6394 3.60065 11.1237 3.24396 11.4812C2.88727 11.8387 2.40335 12.0401 1.89835 12.0412C1.3941 12.0435 0.911246 12.2454 0.55548 12.6027C0.199714 12.9601 -5.04736e-06 13.4439 0 13.9481C-1.26644e-06 14.452 0.199853 14.9353 0.55574 15.2919C0.911627 15.6486 1.39449 15.8496 1.89835 15.8507C2.40335 15.8518 2.88727 16.0533 3.24396 16.4107C3.60065 16.7682 3.80095 17.2526 3.80095 17.7576C3.80095 18.2633 4.00187 18.7484 4.35948 19.106C4.71709 19.4636 5.20211 19.6645 5.70784 19.6645H8.2339C8.7389 19.6645 9.22328 19.8648 9.58076 20.2215C9.93825 20.5782 10.1396 21.0621 10.1408 21.5671C10.1408 22.0728 10.3417 22.5579 10.6993 22.9155C11.0569 23.2731 11.5419 23.474 12.0477 23.474H14.5737C14.8239 23.474 15.0717 23.4246 15.3028 23.3287C15.5339 23.2328 15.7439 23.0923 15.9206 22.9152C16.0973 22.7381 16.2374 22.5278 16.3327 22.2965C16.4281 22.0652 16.4769 21.8173 16.4764 21.5671C16.4764 21.0625 16.2759 20.5786 15.9191 20.2217C15.5623 19.8649 15.0783 19.6645 14.5737 19.6645H12.0434C11.5384 19.6633 11.0545 19.4619 10.6978 19.1045C10.3411 18.747 10.1408 18.2626 10.1408 17.7576C10.1408 17.2519 9.93988 16.7668 9.58227 16.4092C9.22466 16.0516 8.73964 15.8507 8.2339 15.8507H5.67798C5.17923 15.8508 4.7004 15.655 4.34456 15.3056C3.98871 14.9561 3.7843 14.4809 3.77536 13.9822C3.77536 13.9822 3.77536 13.9822 3.77536 13.9481C3.77536 13.9481 3.77536 13.9225 3.77536 13.9097C3.7843 13.411 3.98871 12.9358 4.34456 12.5864C4.7004 12.2369 5.17923 12.0411 5.67798 12.0412H8.2339C8.73964 12.0412 9.22466 11.8403 9.58227 11.4827C9.93988 11.1251 10.1408 10.6401 10.1408 10.1344C10.1408 9.63049 10.3407 9.14718 10.6965 8.79049C11.0524 8.4338 11.5353 8.23286 12.0391 8.23173Z" fill="#232323"/>
3
- <path d="M37.4462 4.49533C36.9404 4.49533 36.4554 4.69622 36.0978 5.05383C35.7402 5.41143 35.5393 5.89646 35.5393 6.40219V10.2117C35.5393 10.4621 35.49 10.7101 35.3942 10.9414C35.2983 11.1728 35.1579 11.383 34.9808 11.5601C34.8037 11.7371 34.5935 11.8776 34.3622 11.9734C34.1308 12.0692 33.8828 12.1186 33.6324 12.1186C33.1274 12.1197 32.6435 12.3211 32.2868 12.6786C31.9301 13.0361 31.7298 13.5205 31.7298 14.0255C31.7287 14.5305 31.5273 15.0144 31.1698 15.3711C30.8123 15.7278 30.3279 15.9281 29.8229 15.9281C29.3179 15.9281 28.8336 15.7278 28.4761 15.3711C28.1186 15.0144 27.9172 14.5305 27.9161 14.0255C27.9161 13.5205 27.7157 13.0361 27.359 12.6786C27.0024 12.3211 26.5184 12.1197 26.0134 12.1186C25.763 12.1186 25.5151 12.0692 25.2837 11.9734C25.0524 11.8776 24.8421 11.7371 24.6651 11.5601C24.488 11.383 24.3475 11.1728 24.2517 10.9414C24.1559 10.7101 24.1065 10.4621 24.1065 10.2117V6.415C24.1187 6.15729 24.0785 5.89977 23.9883 5.65805C23.8981 5.41633 23.7598 5.19543 23.5817 5.00873C23.4036 4.82203 23.1895 4.6734 22.9523 4.57185C22.7151 4.4703 22.4598 4.41797 22.2018 4.41797C21.9438 4.41797 21.6885 4.4703 21.4513 4.57185C21.2141 4.6734 21 4.82203 20.8219 5.00873C20.6439 5.19543 20.5055 5.41633 20.4153 5.65805C20.3251 5.89977 20.2849 6.15729 20.2971 6.415V10.2245C20.2971 10.7295 20.4974 11.2139 20.8541 11.5714C21.2108 11.9288 21.6947 12.1303 22.1997 12.1314C22.7054 12.1314 23.1904 12.3323 23.548 12.6899C23.9057 13.0475 24.1065 13.5325 24.1065 14.0383C24.1077 14.5433 24.3091 15.0272 24.6666 15.3839C25.0241 15.7406 25.5084 15.9409 26.0134 15.9409C26.5162 15.942 26.9982 16.1416 27.3545 16.4964C27.7109 16.8511 27.9127 17.3322 27.9161 17.835V21.6743C27.9161 22.1793 28.1164 22.6637 28.4731 23.0212C28.8297 23.3787 29.3137 23.5801 29.8187 23.5812C30.3244 23.5812 30.8094 23.3803 31.167 23.0227C31.5246 22.6651 31.7256 22.1801 31.7256 21.6743V17.8648C31.7256 17.3598 31.9259 16.8754 32.2825 16.5179C32.6392 16.1605 33.1232 15.9591 33.6281 15.9579C34.1331 15.9579 34.6175 15.7576 34.975 15.4009C35.3325 15.0443 35.5339 14.5603 35.535 14.0553C35.535 13.5496 35.7359 13.0646 36.0935 12.7069C36.4512 12.3493 36.9362 12.1484 37.4419 12.1484C37.9469 12.1473 38.4308 11.9459 38.7875 11.5884C39.1442 11.2309 39.3445 10.7465 39.3445 10.2415V6.415C39.3462 6.16423 39.2984 5.91558 39.2039 5.6833C39.1093 5.45103 38.9699 5.23969 38.7936 5.06138C38.6172 4.88306 38.4075 4.74129 38.1763 4.64415C37.9451 4.54702 37.697 4.49644 37.4462 4.49533Z" fill="#232323"/>
2
+ <path d="M12.0391 8.23173H14.5737C15.0795 8.23173 15.5645 8.03081 15.9221 7.6732C16.2797 7.31559 16.4806 6.83057 16.4806 6.32484C16.4806 5.8191 16.2797 5.33408 15.9221 4.97647C15.5645 4.61886 15.0795 4.41797 14.5737 4.41797H12.0477C11.5419 4.41797 11.0569 4.61886 10.6993 4.97647C10.3417 5.33408 10.1408 5.8191 10.1408 6.32484C10.1408 6.57525 10.0915 6.82323 9.99564 7.05458C9.89981 7.28594 9.75934 7.49613 9.58227 7.6732C9.4052 7.85027 9.19498 7.99074 8.96363 8.08657C8.73227 8.1824 8.48432 8.23173 8.2339 8.23173H5.70784C5.20285 8.23173 4.71847 8.43203 4.36099 8.78872C4.0035 9.14541 3.80208 9.62936 3.80095 10.1344C3.80095 10.6394 3.60065 11.1237 3.24396 11.4812C2.88727 11.8387 2.40335 12.0401 1.89835 12.0412C1.3941 12.0435 0.911246 12.2454 0.55548 12.6027C0.199714 12.9601 -5.04736e-06 13.4439 0 13.9481C-1.26644e-06 14.452 0.199853 14.9353 0.55574 15.2919C0.911627 15.6486 1.39449 15.8496 1.89835 15.8507C2.40335 15.8518 2.88727 16.0533 3.24396 16.4107C3.60065 16.7682 3.80095 17.2526 3.80095 17.7576C3.80095 18.2633 4.00187 18.7484 4.35948 19.106C4.71709 19.4636 5.20211 19.6645 5.70784 19.6645H8.2339C8.7389 19.6645 9.22328 19.8648 9.58076 20.2215C9.93825 20.5782 10.1396 21.0621 10.1408 21.5671C10.1408 22.0728 10.3417 22.5579 10.6993 22.9155C11.0569 23.2731 11.5419 23.474 12.0477 23.474H14.5737C14.8239 23.474 15.0717 23.4246 15.3028 23.3287C15.5339 23.2328 15.7439 23.0923 15.9206 22.9152C16.0973 22.7381 16.2374 22.5278 16.3327 22.2965C16.4281 22.0652 16.4769 21.8173 16.4764 21.5671C16.4764 21.0625 16.2759 20.5786 15.9191 20.2217C15.5623 19.8649 15.0783 19.6645 14.5737 19.6645H12.0434C11.5384 19.6633 11.0545 19.4619 10.6978 19.1045C10.3411 18.747 10.1408 18.2626 10.1408 17.7576C10.1408 17.2519 9.93988 16.7668 9.58227 16.4092C9.22466 16.0516 8.73964 15.8507 8.2339 15.8507H5.67798C5.17923 15.8508 4.7004 15.655 4.34456 15.3056C3.98871 14.9561 3.7843 14.4809 3.77536 13.9822C3.77536 13.9822 3.77536 13.9822 3.77536 13.9481C3.77536 13.9481 3.77536 13.9225 3.77536 13.9097C3.7843 13.411 3.98871 12.9358 4.34456 12.5864C4.7004 12.2369 5.17923 12.0411 5.67798 12.0412H8.2339C8.73964 12.0412 9.22466 11.8403 9.58227 11.4827C9.93988 11.1251 10.1408 10.6401 10.1408 10.1344C10.1408 9.63049 10.3407 9.14718 10.6965 8.79049C11.0524 8.4338 11.5353 8.23286 12.0391 8.23173Z" fill="#D7FF63"/>
3
+ <path d="M37.4462 4.49533C36.9404 4.49533 36.4554 4.69622 36.0978 5.05383C35.7402 5.41143 35.5393 5.89646 35.5393 6.40219V10.2117C35.5393 10.4621 35.49 10.7101 35.3942 10.9414C35.2983 11.1728 35.1579 11.383 34.9808 11.5601C34.8037 11.7371 34.5935 11.8776 34.3622 11.9734C34.1308 12.0692 33.8828 12.1186 33.6324 12.1186C33.1274 12.1197 32.6435 12.3211 32.2868 12.6786C31.9301 13.0361 31.7298 13.5205 31.7298 14.0255C31.7287 14.5305 31.5273 15.0144 31.1698 15.3711C30.8123 15.7278 30.3279 15.9281 29.8229 15.9281C29.3179 15.9281 28.8336 15.7278 28.4761 15.3711C28.1186 15.0144 27.9172 14.5305 27.9161 14.0255C27.9161 13.5205 27.7157 13.0361 27.359 12.6786C27.0024 12.3211 26.5184 12.1197 26.0134 12.1186C25.763 12.1186 25.5151 12.0692 25.2837 11.9734C25.0524 11.8776 24.8421 11.7371 24.6651 11.5601C24.488 11.383 24.3475 11.1728 24.2517 10.9414C24.1559 10.7101 24.1065 10.4621 24.1065 10.2117V6.415C24.1187 6.15729 24.0785 5.89977 23.9883 5.65805C23.8981 5.41633 23.7598 5.19543 23.5817 5.00873C23.4036 4.82203 23.1895 4.6734 22.9523 4.57185C22.7151 4.4703 22.4598 4.41797 22.2018 4.41797C21.9438 4.41797 21.6885 4.4703 21.4513 4.57185C21.2141 4.6734 21 4.82203 20.8219 5.00873C20.6439 5.19543 20.5055 5.41633 20.4153 5.65805C20.3251 5.89977 20.2849 6.15729 20.2971 6.415V10.2245C20.2971 10.7295 20.4974 11.2139 20.8541 11.5714C21.2108 11.9288 21.6947 12.1303 22.1997 12.1314C22.7054 12.1314 23.1904 12.3323 23.548 12.6899C23.9057 13.0475 24.1065 13.5325 24.1065 14.0383C24.1077 14.5433 24.3091 15.0272 24.6666 15.3839C25.0241 15.7406 25.5084 15.9409 26.0134 15.9409C26.5162 15.942 26.9982 16.1416 27.3545 16.4964C27.7109 16.8511 27.9127 17.3322 27.9161 17.835V21.6743C27.9161 22.1793 28.1164 22.6637 28.4731 23.0212C28.8297 23.3787 29.3137 23.5801 29.8187 23.5812C30.3244 23.5812 30.8094 23.3803 31.167 23.0227C31.5246 22.6651 31.7256 22.1801 31.7256 21.6743V17.8648C31.7256 17.3598 31.9259 16.8754 32.2825 16.5179C32.6392 16.1605 33.1232 15.9591 33.6281 15.9579C34.1331 15.9579 34.6175 15.7576 34.975 15.4009C35.3325 15.0443 35.5339 14.5603 35.535 14.0553C35.535 13.5496 35.7359 13.0646 36.0935 12.7069C36.4512 12.3493 36.9362 12.1484 37.4419 12.1484C37.9469 12.1473 38.4308 11.9459 38.7875 11.5884C39.1442 11.2309 39.3445 10.7465 39.3445 10.2415V6.415C39.3462 6.16423 39.2984 5.91558 39.2039 5.6833C39.1093 5.45103 38.9699 5.23969 38.7936 5.06138C38.6172 4.88306 38.4075 4.74129 38.1763 4.64415C37.9451 4.54702 37.697 4.49644 37.4462 4.49533Z" fill="#D7FF63"/>
4
4
  </svg>
@@ -0,0 +1 @@
1
+ const o="/assets/cy-logo-cli-CCKUIm0S.svg";export{o as c};
@@ -0,0 +1 @@
1
+ import{w as t,c as r,j as e}from"./chunk-JZWAC4HX-DB3aFuEO.js";import{S as i}from"./ScenarioViewer-BX2Ny2Qj.js";import{W as n}from"./InteractivePreview-yjIHlOGa.js";import"./useCustomSizes-BqgrAzs3.js";import"./LogViewer-kgBTLoJD.js";import"./SafeScreenshot-CwZrv-Ok.js";import"./useLastLogLine-DAFqfEDH.js";import"./InlineSpinner-EhOseatT.js";import"./preload-helper-ckwbz45p.js";import"./ReportIssueModal-BzPgx-xO.js";import"./createLucideIcon-D1zB-pYc.js";import"./circle-check-igfMr5DY.js";import"./triangle-alert-CAD5b1o_.js";import"./copy-Coc4o_8c.js";import"./scenarioStatus-B_8jpV3e.js";const y=()=>[{title:"Empty State - CodeYam"},{name:"description",content:"Simulations empty state development view"}],w=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-[#F8F7F6] 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{w as default,y as meta};