@codeyam/codeyam-cli 0.1.0-staging.dd216e0 → 0.1.0-staging.df25827

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 (1531) 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 +32 -29
  5. package/analyzer-template/packages/ai/index.ts +21 -5
  6. package/analyzer-template/packages/ai/package.json +4 -4
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +226 -24
  9. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +239 -13
  11. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +316 -23
  13. package/analyzer-template/packages/ai/src/lib/astScopes/nodeToSource.ts +19 -0
  14. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +11 -4
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  16. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  17. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +38 -1
  18. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  19. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1507 -117
  20. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  21. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +324 -5
  22. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  23. package/analyzer-template/packages/ai/src/lib/completionCall.ts +247 -66
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +2540 -382
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.ts +10 -3
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +7 -2
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +296 -35
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +120 -76
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  30. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  31. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +70 -9
  32. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +161 -19
  33. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  34. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  35. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +163 -14
  36. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  37. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  38. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  39. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +396 -88
  40. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  41. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  42. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -0
  43. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  44. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  45. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  46. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
  47. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +89 -112
  48. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
  49. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1497 -92
  50. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +216 -109
  51. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +677 -0
  52. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  53. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
  54. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  55. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +143 -31
  56. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
  57. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  58. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  59. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  61. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +17 -7
  62. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  63. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -102
  64. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  65. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  66. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
  67. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -53
  68. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  69. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
  70. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  71. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  72. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  73. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  74. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +127 -3
  75. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  76. package/analyzer-template/packages/analyze/index.ts +6 -1
  77. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  78. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +132 -33
  79. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  80. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  81. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  82. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  83. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  84. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  85. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  86. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  87. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  88. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  89. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  90. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +557 -274
  91. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +47 -37
  92. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +25 -6
  93. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +13 -14
  94. package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +21 -0
  95. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +115 -20
  96. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +35 -15
  97. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  98. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +15 -12
  99. package/analyzer-template/packages/analyze/src/lib/files/analyzeNextRoute.ts +8 -3
  100. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  101. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  102. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  103. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1352 -0
  104. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +201 -46
  105. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  106. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +670 -74
  107. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
  108. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  109. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +653 -54
  110. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +166 -0
  111. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +78 -83
  112. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +4 -8
  113. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1872 -801
  114. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  115. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  116. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  117. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  118. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  119. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  120. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  121. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  122. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  123. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  124. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  125. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  126. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  127. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  128. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  129. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  130. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  131. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  132. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
  133. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
  134. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
  135. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
  136. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  137. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  138. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  139. package/analyzer-template/packages/aws/package.json +10 -10
  140. package/analyzer-template/packages/aws/s3/index.ts +1 -0
  141. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  142. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  143. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  144. package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
  145. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  146. package/analyzer-template/packages/database/index.ts +1 -0
  147. package/analyzer-template/packages/database/package.json +4 -4
  148. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  149. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  150. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  151. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  152. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  153. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  154. package/analyzer-template/packages/database/src/lib/kysely/db.ts +26 -5
  155. package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
  156. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  157. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +36 -9
  158. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +164 -0
  159. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  160. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  161. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +38 -15
  162. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  163. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  164. package/analyzer-template/packages/database/src/lib/loadCommits.ts +58 -19
  165. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -9
  166. package/analyzer-template/packages/database/src/lib/loadEntity.ts +19 -8
  167. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  168. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +5 -6
  169. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  170. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  171. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  172. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +96 -152
  173. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  174. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  175. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  176. package/analyzer-template/packages/generate/index.ts +3 -0
  177. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  178. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +221 -0
  179. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  180. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  181. package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
  182. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  183. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  184. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  185. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  186. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  187. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  188. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  189. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  190. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  191. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  192. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  193. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  194. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  195. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  196. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  197. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  198. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  199. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +6 -2
  200. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  201. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +18 -3
  202. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  203. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
  204. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -11
  205. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  206. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  207. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  208. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  209. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  210. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +30 -7
  211. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  212. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  213. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  214. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +29 -0
  215. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  216. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  217. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  218. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  219. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  220. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  221. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  222. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  223. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  224. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +7 -6
  225. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  226. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  227. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  228. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  229. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  230. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  231. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +15 -1
  232. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  233. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  234. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  235. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  236. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  237. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  238. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  239. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  240. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +45 -14
  241. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  242. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  243. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  244. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -10
  245. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  246. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts +4 -1
  247. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -1
  248. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js +5 -5
  249. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -1
  250. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  251. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  252. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  253. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  254. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +5 -5
  255. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  256. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  257. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  258. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  259. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  260. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  261. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  262. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  263. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  264. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +76 -89
  265. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  266. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  267. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  268. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  269. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  270. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  271. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  272. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  273. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  274. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  275. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  276. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  277. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  278. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  279. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  280. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  281. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +217 -0
  282. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  283. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  284. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  285. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  286. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  287. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  288. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  289. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  290. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
  291. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +27 -1
  292. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
  293. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  294. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  295. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  296. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  297. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  298. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  299. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  300. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  301. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  302. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  303. package/analyzer-template/packages/github/dist/types/index.d.ts +2 -2
  304. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  305. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  306. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  307. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  308. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  309. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  310. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +87 -13
  311. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  312. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  313. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  314. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  315. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  316. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  317. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  318. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +21 -6
  319. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  320. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  321. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  322. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  323. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  324. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  325. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  326. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  327. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  328. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  329. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  330. package/analyzer-template/packages/github/package.json +2 -2
  331. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  332. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  333. package/analyzer-template/packages/process/index.ts +2 -0
  334. package/analyzer-template/packages/process/package.json +12 -0
  335. package/analyzer-template/packages/process/tsconfig.json +8 -0
  336. package/analyzer-template/packages/types/index.ts +5 -0
  337. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  338. package/analyzer-template/packages/types/src/types/Analysis.ts +104 -13
  339. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  340. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  341. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +8 -0
  342. package/analyzer-template/packages/types/src/types/Scenario.ts +21 -10
  343. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +228 -3
  344. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  345. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  346. package/analyzer-template/packages/ui-components/package.json +1 -1
  347. package/analyzer-template/packages/utils/dist/types/index.d.ts +2 -2
  348. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  349. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  350. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  351. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  352. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  353. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  354. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +87 -13
  355. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  356. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  357. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  358. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  359. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  360. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  361. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  362. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +21 -6
  363. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  364. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  365. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  366. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  367. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  368. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  369. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  370. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts +3 -1
  371. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  372. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +120 -4
  373. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  374. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  375. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  376. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  377. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  378. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +148 -3
  379. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  380. package/analyzer-template/playwright/capture.ts +57 -26
  381. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  382. package/analyzer-template/playwright/captureStatic.ts +1 -1
  383. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  384. package/analyzer-template/playwright/waitForServer.ts +21 -6
  385. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  386. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  387. package/analyzer-template/project/analyzeFileEntities.ts +30 -0
  388. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  389. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  390. package/analyzer-template/project/constructMockCode.ts +1341 -189
  391. package/analyzer-template/project/controller/startController.ts +16 -1
  392. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  393. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  394. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  395. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  396. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  397. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  398. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
  399. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  400. package/analyzer-template/project/orchestrateCapture.ts +85 -10
  401. package/analyzer-template/project/reconcileMockDataKeys.ts +251 -3
  402. package/analyzer-template/project/runAnalysis.ts +11 -0
  403. package/analyzer-template/project/runMultiScenarioServer.ts +26 -3
  404. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  405. package/analyzer-template/project/start.ts +54 -15
  406. package/analyzer-template/project/startScenarioCapture.ts +15 -0
  407. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  408. package/analyzer-template/project/writeMockDataTsx.ts +420 -61
  409. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  410. package/analyzer-template/project/writeScenarioComponents.ts +503 -113
  411. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  412. package/analyzer-template/project/writeSimpleRoot.ts +31 -23
  413. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  414. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  415. package/analyzer-template/tsconfig.json +14 -1
  416. package/background/src/lib/local/createLocalAnalyzer.js +2 -30
  417. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  418. package/background/src/lib/local/execAsync.js +1 -1
  419. package/background/src/lib/local/execAsync.js.map +1 -1
  420. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  421. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  422. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  423. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  424. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  425. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  426. package/background/src/lib/virtualized/project/analyzeFileEntities.js +24 -1
  427. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  428. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  429. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  430. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  431. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  432. package/background/src/lib/virtualized/project/constructMockCode.js +1179 -140
  433. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  434. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  435. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  436. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  437. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  438. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  439. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  440. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  441. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  442. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  443. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  444. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  445. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  446. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  447. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  448. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +7 -5
  449. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  450. package/background/src/lib/virtualized/project/orchestrateCapture.js +69 -11
  451. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  452. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +211 -3
  453. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  454. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  455. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  456. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +23 -3
  457. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  458. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  459. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  460. package/background/src/lib/virtualized/project/start.js +49 -15
  461. package/background/src/lib/virtualized/project/start.js.map +1 -1
  462. package/background/src/lib/virtualized/project/startScenarioCapture.js +12 -0
  463. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  464. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  465. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  466. package/background/src/lib/virtualized/project/writeMockDataTsx.js +362 -50
  467. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  468. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  469. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  470. package/background/src/lib/virtualized/project/writeScenarioComponents.js +384 -93
  471. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  472. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  473. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  474. package/background/src/lib/virtualized/project/writeSimpleRoot.js +31 -21
  475. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  476. package/codeyam-cli/scripts/apply-setup.js +386 -9
  477. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  478. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  479. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  480. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  481. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  482. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  483. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  484. package/codeyam-cli/src/cli.js +62 -23
  485. package/codeyam-cli/src/cli.js.map +1 -1
  486. package/codeyam-cli/src/codeyam-cli.js +18 -2
  487. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  488. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js +47 -0
  489. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js.map +1 -0
  490. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js +71 -0
  491. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js.map +1 -0
  492. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js +30 -0
  493. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js.map +1 -0
  494. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  495. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  496. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js +55 -0
  497. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js.map +1 -0
  498. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  499. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  500. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +137 -47
  501. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  502. package/codeyam-cli/src/commands/analyze.js +22 -10
  503. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  504. package/codeyam-cli/src/commands/baseline.js +176 -0
  505. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  506. package/codeyam-cli/src/commands/debug.js +37 -23
  507. package/codeyam-cli/src/commands/debug.js.map +1 -1
  508. package/codeyam-cli/src/commands/default.js +43 -35
  509. package/codeyam-cli/src/commands/default.js.map +1 -1
  510. package/codeyam-cli/src/commands/editor.js +6313 -0
  511. package/codeyam-cli/src/commands/editor.js.map +1 -0
  512. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js +23 -0
  513. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js.map +1 -0
  514. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  515. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  516. package/codeyam-cli/src/commands/init.js +168 -292
  517. package/codeyam-cli/src/commands/init.js.map +1 -1
  518. package/codeyam-cli/src/commands/memory.js +278 -0
  519. package/codeyam-cli/src/commands/memory.js.map +1 -0
  520. package/codeyam-cli/src/commands/recapture.js +31 -18
  521. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  522. package/codeyam-cli/src/commands/report.js +72 -24
  523. package/codeyam-cli/src/commands/report.js.map +1 -1
  524. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  525. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  526. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  527. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  528. package/codeyam-cli/src/commands/start.js +8 -12
  529. package/codeyam-cli/src/commands/start.js.map +1 -1
  530. package/codeyam-cli/src/commands/status.js +23 -1
  531. package/codeyam-cli/src/commands/status.js.map +1 -1
  532. package/codeyam-cli/src/commands/telemetry.js +37 -0
  533. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  534. package/codeyam-cli/src/commands/test-startup.js +3 -1
  535. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  536. package/codeyam-cli/src/commands/verify.js +14 -2
  537. package/codeyam-cli/src/commands/verify.js.map +1 -1
  538. package/codeyam-cli/src/commands/wipe.js +108 -0
  539. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  540. package/codeyam-cli/src/data/designSystems.js +27 -0
  541. package/codeyam-cli/src/data/designSystems.js.map +1 -0
  542. package/codeyam-cli/src/data/techStacks.js +77 -0
  543. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  544. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  545. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  546. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  547. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  548. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +226 -0
  549. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  550. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +181 -0
  551. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  552. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +4160 -0
  553. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  554. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  555. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  556. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  557. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  558. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
  559. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
  560. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  561. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  562. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +304 -0
  563. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  564. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +194 -0
  565. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  566. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +381 -0
  567. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  568. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js +67 -0
  569. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js.map +1 -0
  570. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  571. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  572. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +542 -0
  573. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  574. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +594 -0
  575. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  576. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  577. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  578. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  579. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  580. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +217 -0
  581. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  582. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +361 -0
  583. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  584. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +250 -0
  585. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  586. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js +1108 -0
  587. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js.map +1 -0
  588. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  589. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  590. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +411 -0
  591. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  592. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +1768 -0
  593. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  594. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +413 -0
  595. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  596. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  597. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  598. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  599. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  600. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  601. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  602. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +2121 -0
  603. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  604. package/codeyam-cli/src/utils/__tests__/envFile.test.js +125 -0
  605. package/codeyam-cli/src/utils/__tests__/envFile.test.js.map +1 -0
  606. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  607. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  608. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
  609. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
  610. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js +500 -0
  611. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js.map +1 -0
  612. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +122 -0
  613. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  614. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js +302 -0
  615. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js.map +1 -0
  616. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  617. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  618. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +129 -0
  619. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  620. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  621. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  622. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  623. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  624. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js +127 -0
  625. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js.map +1 -0
  626. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  627. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  628. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +284 -0
  629. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  630. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  631. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  632. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +672 -0
  633. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  634. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js +84 -0
  635. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js.map +1 -0
  636. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  637. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  638. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +175 -82
  639. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  640. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  641. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  642. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  643. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  644. package/codeyam-cli/src/utils/__tests__/testRunner.test.js +216 -0
  645. package/codeyam-cli/src/utils/__tests__/testRunner.test.js.map +1 -0
  646. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +148 -0
  647. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  648. package/codeyam-cli/src/utils/analysisRunner.js +67 -22
  649. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  650. package/codeyam-cli/src/utils/analyzer.js +26 -0
  651. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  652. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  653. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  654. package/codeyam-cli/src/utils/backgroundServer.js +203 -30
  655. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  656. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  657. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  658. package/codeyam-cli/src/utils/database.js +128 -7
  659. package/codeyam-cli/src/utils/database.js.map +1 -1
  660. package/codeyam-cli/src/utils/designSystemShowcase.js +810 -0
  661. package/codeyam-cli/src/utils/designSystemShowcase.js.map +1 -0
  662. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  663. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  664. package/codeyam-cli/src/utils/devServerState.js +103 -0
  665. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  666. package/codeyam-cli/src/utils/editorApi.js +95 -0
  667. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  668. package/codeyam-cli/src/utils/editorAudit.js +849 -0
  669. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  670. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  671. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  672. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  673. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  674. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  675. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  676. package/codeyam-cli/src/utils/editorDevServer.js +197 -0
  677. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  678. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +50 -0
  679. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  680. package/codeyam-cli/src/utils/editorEntityHelpers.js +144 -0
  681. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  682. package/codeyam-cli/src/utils/editorGuard.js +36 -0
  683. package/codeyam-cli/src/utils/editorGuard.js.map +1 -0
  684. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  685. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  686. package/codeyam-cli/src/utils/editorJournal.js +225 -0
  687. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  688. package/codeyam-cli/src/utils/editorLoaderHelpers.js +152 -0
  689. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  690. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  691. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  692. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  693. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  694. package/codeyam-cli/src/utils/editorPreloadHelpers.js +135 -0
  695. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  696. package/codeyam-cli/src/utils/editorPreview.js +139 -0
  697. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  698. package/codeyam-cli/src/utils/editorRecapture.js +109 -0
  699. package/codeyam-cli/src/utils/editorRecapture.js.map +1 -0
  700. package/codeyam-cli/src/utils/editorRoadmap.js +574 -0
  701. package/codeyam-cli/src/utils/editorRoadmap.js.map +1 -0
  702. package/codeyam-cli/src/utils/editorScenarioSwitch.js +149 -0
  703. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  704. package/codeyam-cli/src/utils/editorScenarios.js +687 -0
  705. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  706. package/codeyam-cli/src/utils/editorSeedAdapter.js +475 -0
  707. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  708. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  709. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  710. package/codeyam-cli/src/utils/entityChangeStatus.js +394 -0
  711. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  712. package/codeyam-cli/src/utils/entityChangeStatus.server.js +227 -0
  713. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  714. package/codeyam-cli/src/utils/envFile.js +90 -0
  715. package/codeyam-cli/src/utils/envFile.js.map +1 -0
  716. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  717. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  718. package/codeyam-cli/src/utils/fileWatcher.js +63 -9
  719. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  720. package/codeyam-cli/src/utils/generateReport.js +253 -106
  721. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  722. package/codeyam-cli/src/utils/git.js +182 -0
  723. package/codeyam-cli/src/utils/git.js.map +1 -0
  724. package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
  725. package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
  726. package/codeyam-cli/src/utils/handoffContext.js +257 -0
  727. package/codeyam-cli/src/utils/handoffContext.js.map +1 -0
  728. package/codeyam-cli/src/utils/install-skills.js +164 -39
  729. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  730. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  731. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  732. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  733. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  734. package/codeyam-cli/src/utils/manualEntityAnalysis.js +196 -0
  735. package/codeyam-cli/src/utils/manualEntityAnalysis.js.map +1 -0
  736. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  737. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  738. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  739. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  740. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  741. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  742. package/codeyam-cli/src/utils/progress.js +8 -1
  743. package/codeyam-cli/src/utils/progress.js.map +1 -1
  744. package/codeyam-cli/src/utils/project.js +15 -5
  745. package/codeyam-cli/src/utils/project.js.map +1 -1
  746. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  747. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  748. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js +159 -0
  749. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js.map +1 -0
  750. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +60 -0
  751. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  752. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  753. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  754. package/codeyam-cli/src/utils/queue/job.js +243 -25
  755. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  756. package/codeyam-cli/src/utils/queue/manager.js +26 -7
  757. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  758. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  759. package/codeyam-cli/src/utils/registerScenarioResult.js +52 -0
  760. package/codeyam-cli/src/utils/registerScenarioResult.js.map +1 -0
  761. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  762. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  763. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  764. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  765. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  766. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  767. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +229 -0
  768. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  769. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  770. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  771. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  772. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  773. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  774. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  775. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  776. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  777. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
  778. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  779. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
  780. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  781. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +113 -0
  782. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  783. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  784. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  785. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  786. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  787. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  788. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  789. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  790. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  791. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  792. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  793. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  794. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  795. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  796. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  797. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  798. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  799. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  800. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  801. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  802. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  803. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  804. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  805. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  806. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  807. package/codeyam-cli/src/utils/rules/index.js +7 -0
  808. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  809. package/codeyam-cli/src/utils/rules/parser.js +93 -0
  810. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  811. package/codeyam-cli/src/utils/rules/pathMatcher.js +49 -0
  812. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  813. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  814. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  815. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  816. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  817. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  818. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  819. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  820. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  821. package/codeyam-cli/src/utils/scenarioCoverage.js +77 -0
  822. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  823. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  824. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  825. package/codeyam-cli/src/utils/scenariosManifest.js +313 -0
  826. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  827. package/codeyam-cli/src/utils/screenshotHash.js +26 -0
  828. package/codeyam-cli/src/utils/screenshotHash.js.map +1 -0
  829. package/codeyam-cli/src/utils/serverState.js +94 -12
  830. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  831. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +96 -45
  832. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  833. package/codeyam-cli/src/utils/simulationGateMiddleware.js +175 -0
  834. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  835. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  836. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  837. package/codeyam-cli/src/utils/syncMocksMiddleware.js +7 -26
  838. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  839. package/codeyam-cli/src/utils/techStackConfig.js +38 -0
  840. package/codeyam-cli/src/utils/techStackConfig.js.map +1 -0
  841. package/codeyam-cli/src/utils/techStackConfig.test.js +85 -0
  842. package/codeyam-cli/src/utils/techStackConfig.test.js.map +1 -0
  843. package/codeyam-cli/src/utils/telemetry.js +106 -0
  844. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  845. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  846. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  847. package/codeyam-cli/src/utils/testResultCache.js +53 -0
  848. package/codeyam-cli/src/utils/testResultCache.js.map +1 -0
  849. package/codeyam-cli/src/utils/testResultCache.server.js +81 -0
  850. package/codeyam-cli/src/utils/testResultCache.server.js.map +1 -0
  851. package/codeyam-cli/src/utils/testResultCache.server.test.js +187 -0
  852. package/codeyam-cli/src/utils/testResultCache.server.test.js.map +1 -0
  853. package/codeyam-cli/src/utils/testResultCache.test.js +230 -0
  854. package/codeyam-cli/src/utils/testResultCache.test.js.map +1 -0
  855. package/codeyam-cli/src/utils/testRunner.js +350 -0
  856. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  857. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  858. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  859. package/codeyam-cli/src/utils/versionInfo.js +67 -15
  860. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  861. package/codeyam-cli/src/utils/webappDetection.js +38 -3
  862. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  863. package/codeyam-cli/src/utils/wipe.js +128 -0
  864. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  865. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js +99 -0
  866. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js.map +1 -0
  867. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +153 -0
  868. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  869. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +107 -0
  870. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  871. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  872. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  873. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +1000 -0
  874. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  875. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +315 -0
  876. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  877. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js +135 -0
  878. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js.map +1 -0
  879. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +86 -0
  880. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  881. package/codeyam-cli/src/webserver/app/lib/database.js +129 -50
  882. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  883. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  884. package/codeyam-cli/src/webserver/app/lib/git.js +397 -0
  885. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  886. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js +34 -0
  887. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js.map +1 -0
  888. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  889. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  890. package/codeyam-cli/src/webserver/backgroundServer.js +188 -42
  891. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  892. package/codeyam-cli/src/webserver/bootstrap.js +51 -0
  893. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  894. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DTBZZfSk.js +1 -0
  895. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-BxclONWq.js +11 -0
  896. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  897. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BsnEOJZ_.js +41 -0
  898. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ByaELMbv.js +1 -0
  899. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-6WjVfhxX.js +25 -0
  900. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-ChX-Hp7W.js +3 -0
  901. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-BmEO4Lqa.js → LoadingDots-By5zI316.js} +1 -1
  902. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-CI1VaB3F.js → LogViewer-C-9zQdXg.js} +3 -3
  903. package/codeyam-cli/src/webserver/build/client/assets/MiniClaudeChat-Bs2_Oua4.js +36 -0
  904. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DQsceHVv.js +11 -0
  905. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DThcm_9M.js +1 -0
  906. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-Cl4oOA3A.js +10 -0
  907. package/codeyam-cli/src/webserver/build/client/assets/Spinner-CIil5-gb.js +34 -0
  908. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  909. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-BqkA9zyZ.js +1 -0
  910. package/codeyam-cli/src/webserver/build/client/assets/_index-DnOgyseQ.js +11 -0
  911. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-DqM9hbNE.js +27 -0
  912. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  913. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  914. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-C58dYPwR.js +1 -0
  915. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  916. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-B8NCeOrm.js +22 -0
  917. package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
  918. package/codeyam-cli/src/webserver/build/client/assets/api.dev-mode-events-l0sNRNKZ.js +1 -0
  919. package/codeyam-cli/src/webserver/build/client/assets/api.editor-audit-l0sNRNKZ.js +1 -0
  920. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  921. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  922. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  923. package/codeyam-cli/src/webserver/build/client/assets/api.editor-database-verify-l0sNRNKZ.js +1 -0
  924. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  925. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  926. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  927. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  928. package/codeyam-cli/src/webserver/build/client/assets/api.editor-github-verify-l0sNRNKZ.js +1 -0
  929. package/codeyam-cli/src/webserver/build/client/assets/api.editor-handoff-l0sNRNKZ.js +1 -0
  930. package/codeyam-cli/src/webserver/build/client/assets/api.editor-hosting-verify-l0sNRNKZ.js +1 -0
  931. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  932. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  933. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  934. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  935. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  936. package/codeyam-cli/src/webserver/build/client/assets/api.editor-load-commit-l0sNRNKZ.js +1 -0
  937. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  938. package/codeyam-cli/src/webserver/build/client/assets/api.editor-recapture-stale-l0sNRNKZ.js +1 -0
  939. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  940. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  941. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  942. package/codeyam-cli/src/webserver/build/client/assets/api.editor-roadmap-l0sNRNKZ.js +1 -0
  943. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-scenario-data-l0sNRNKZ.js +1 -0
  944. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  945. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  946. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  947. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  948. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  949. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenarios-l0sNRNKZ.js +1 -0
  950. package/codeyam-cli/src/webserver/build/client/assets/api.editor-schema-l0sNRNKZ.js +1 -0
  951. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  952. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  953. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  954. package/codeyam-cli/src/webserver/build/client/assets/api.editor-verify-routes-l0sNRNKZ.js +1 -0
  955. package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
  956. package/codeyam-cli/src/webserver/build/client/assets/api.interactive-switch-scenario-l0sNRNKZ.js +1 -0
  957. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  958. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  959. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  960. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  961. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  962. package/codeyam-cli/src/webserver/build/client/assets/book-open-BFSIqZgO.js +6 -0
  963. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-ITTv_xL3.js → chevron-down-B9fDzFVh.js} +2 -2
  964. package/codeyam-cli/src/webserver/build/client/assets/chunk-UVKPFVEO-Bmq2apuh.js +43 -0
  965. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-mMM0RzI0.js → circle-check-DLPObLUx.js} +2 -2
  966. package/codeyam-cli/src/webserver/build/client/assets/copy-DXEmO0TD.js +11 -0
  967. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BwyFiRot.js +41 -0
  968. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-Coe5NhbS.js +1 -0
  969. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-DoA97ML3.svg} +2 -2
  970. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-iRhRIFlp.js +1 -0
  971. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-BZPBzV73.js +1 -0
  972. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DhtVC4aI.js +161 -0
  973. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-C6fEYHrh.js +41 -0
  974. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-DBgKdrTR.js → entity._sha._-pc-vc6wO.js} +14 -13
  975. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-C8AyYgYT.js +6 -0
  976. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DziaVQX1.js +6 -0
  977. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BTcpgIpC.js +6 -0
  978. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-Sf59Z2Pa.js → entity._sha_.edit._scenarioId-D_O_ajfZ.js} +2 -2
  979. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-BvGka1gZ.js → entry.client-j1Vi0bco.js} +6 -6
  980. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  981. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  982. package/codeyam-cli/src/webserver/build/client/assets/files-kuny2Q_s.js +1 -0
  983. package/codeyam-cli/src/webserver/build/client/assets/git-DgCZPMie.js +1 -0
  984. package/codeyam-cli/src/webserver/build/client/assets/globals-L-aUIeux.css +1 -0
  985. package/codeyam-cli/src/webserver/build/client/assets/{index-DFbRIdR_.js → index-BliGSSpl.js} +1 -1
  986. package/codeyam-cli/src/webserver/build/client/assets/index-SqjQKTdH.js +15 -0
  987. package/codeyam-cli/src/webserver/build/client/assets/{index-CkpJhcNC.js → index-vyrZD2g4.js} +1 -1
  988. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  989. package/codeyam-cli/src/webserver/build/client/assets/labs-c3yLxSEp.js +1 -0
  990. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-DEtRABV3.js → loader-circle-D-q28GLF.js} +2 -2
  991. package/codeyam-cli/src/webserver/build/client/assets/manifest-b0d69c06.js +1 -0
  992. package/codeyam-cli/src/webserver/build/client/assets/memory-CEWIUC4t.js +101 -0
  993. package/codeyam-cli/src/webserver/build/client/assets/pause-BP6fitdh.js +11 -0
  994. package/codeyam-cli/src/webserver/build/client/assets/root-CLedrjXQ.js +80 -0
  995. package/codeyam-cli/src/webserver/build/client/assets/{search-Clp3R4kH.js → search-BooqacKS.js} +2 -2
  996. package/codeyam-cli/src/webserver/build/client/assets/settings-BM0nbryO.js +1 -0
  997. package/codeyam-cli/src/webserver/build/client/assets/simulations-ovy6FjRY.js +1 -0
  998. package/codeyam-cli/src/webserver/build/client/assets/terminal-DHemCJIs.js +11 -0
  999. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CUVskfkL.js → triangle-alert-D87ekDl8.js} +2 -2
  1000. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-Dk0Tciqg.js +1 -0
  1001. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C8QvIe05.js +2 -0
  1002. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-jkCytuYz.js +1 -0
  1003. package/codeyam-cli/src/webserver/build/client/assets/useToast-BgqkixU9.js +1 -0
  1004. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  1005. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  1006. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-DPUEhrWo.js +16 -0
  1007. package/codeyam-cli/src/webserver/build/server/assets/index-oF2amaGI.js +1 -0
  1008. package/codeyam-cli/src/webserver/build/server/assets/init-C42BvUGp.js +14 -0
  1009. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  1010. package/codeyam-cli/src/webserver/build/server/assets/server-build-DiCdDL5d.js +853 -0
  1011. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  1012. package/codeyam-cli/src/webserver/build-info.json +5 -5
  1013. package/codeyam-cli/src/webserver/devServer.js +40 -8
  1014. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  1015. package/codeyam-cli/src/webserver/editorProxy.js +1263 -0
  1016. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  1017. package/codeyam-cli/src/webserver/idleDetector.js +130 -0
  1018. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  1019. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  1020. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  1021. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  1022. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +414 -0
  1023. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +283 -0
  1024. package/codeyam-cli/src/webserver/server.js +481 -26
  1025. package/codeyam-cli/src/webserver/server.js.map +1 -1
  1026. package/codeyam-cli/src/webserver/terminalServer.js +1043 -0
  1027. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  1028. package/codeyam-cli/templates/__tests__/editor-step-hook.prompt-capture.test.ts +118 -0
  1029. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  1030. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  1031. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  1032. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  1033. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  1034. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  1035. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  1036. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  1037. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  1038. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  1039. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  1040. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  1041. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  1042. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  1043. package/codeyam-cli/templates/codeyam-editor-claude.md +149 -0
  1044. package/codeyam-cli/templates/codeyam-editor-codex.md +61 -0
  1045. package/codeyam-cli/templates/codeyam-editor-gemini.md +59 -0
  1046. package/codeyam-cli/templates/codeyam-editor-reference.md +216 -0
  1047. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  1048. package/codeyam-cli/templates/commands/codeyam-diagnose.md +481 -0
  1049. package/codeyam-cli/templates/design-systems/clean-dashboard-design-system.md +255 -0
  1050. package/codeyam-cli/templates/design-systems/editorial-design-system.md +267 -0
  1051. package/codeyam-cli/templates/design-systems/mono-brutalist-design-system.md +256 -0
  1052. package/codeyam-cli/templates/design-systems/neo-brutalist-design-system.md +294 -0
  1053. package/codeyam-cli/templates/editor-step-hook.py +368 -0
  1054. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +288 -0
  1055. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  1056. package/codeyam-cli/templates/expo-react-native/__tests__/.gitkeep +0 -0
  1057. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +15 -0
  1058. package/codeyam-cli/templates/expo-react-native/app/index.tsx +36 -0
  1059. package/codeyam-cli/templates/expo-react-native/app.json +29 -0
  1060. package/codeyam-cli/templates/expo-react-native/babel.config.js +10 -0
  1061. package/codeyam-cli/templates/expo-react-native/gitignore +14 -0
  1062. package/codeyam-cli/templates/expo-react-native/global.css +10 -0
  1063. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  1064. package/codeyam-cli/templates/expo-react-native/lib/theme.ts +73 -0
  1065. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  1066. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  1067. package/codeyam-cli/templates/expo-react-native/package.json +54 -0
  1068. package/codeyam-cli/templates/expo-react-native/patches/expo-modules-autolinking+3.0.24.patch +29 -0
  1069. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  1070. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  1071. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  1072. package/codeyam-cli/templates/isolation-route/expo-router.tsx.template +54 -0
  1073. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  1074. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  1075. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  1076. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  1077. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  1078. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  1079. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  1080. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  1081. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  1082. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  1083. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  1084. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  1085. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  1086. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  1087. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  1088. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +24 -0
  1089. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  1090. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  1091. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  1092. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +65 -0
  1093. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  1094. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +39 -0
  1095. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  1096. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  1097. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +40 -0
  1098. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  1099. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +140 -0
  1100. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  1101. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  1102. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  1103. package/codeyam-cli/templates/nextjs-prisma-supabase/SUPABASE_SETUP.md +104 -0
  1104. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  1105. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  1106. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  1107. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  1108. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  1109. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  1110. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  1111. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  1112. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  1113. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  1114. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  1115. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  1116. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  1117. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  1118. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  1119. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  1120. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  1121. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  1122. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  1123. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  1124. package/codeyam-cli/templates/rule-notification-hook.py +83 -0
  1125. package/codeyam-cli/templates/rule-reflection-hook.py +647 -0
  1126. package/codeyam-cli/templates/rules-instructions.md +78 -0
  1127. package/codeyam-cli/templates/seed-adapters/supabase.ts +475 -0
  1128. package/codeyam-cli/templates/{codeyam-debug-skill.md → skills/codeyam-debug/SKILL.md} +48 -4
  1129. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
  1130. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +244 -0
  1131. package/codeyam-cli/templates/skills/codeyam-memory/SKILL.md +611 -0
  1132. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  1133. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  1134. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  1135. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  1136. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  1137. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  1138. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  1139. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  1140. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  1141. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  1142. package/codeyam-cli/templates/skills/codeyam-new-rule/SKILL.md +11 -0
  1143. package/codeyam-cli/templates/{codeyam-setup-skill.md → skills/codeyam-setup/SKILL.md} +151 -4
  1144. package/codeyam-cli/templates/{codeyam-sim-skill.md → skills/codeyam-sim/SKILL.md} +1 -1
  1145. package/codeyam-cli/templates/{codeyam-test-skill.md → skills/codeyam-test/SKILL.md} +1 -1
  1146. package/codeyam-cli/templates/{codeyam-verify-skill.md → skills/codeyam-verify/SKILL.md} +1 -1
  1147. package/package.json +35 -24
  1148. package/packages/ai/index.js +8 -6
  1149. package/packages/ai/index.js.map +1 -1
  1150. package/packages/ai/src/lib/analyzeScope.js +179 -13
  1151. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  1152. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  1153. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  1154. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +176 -13
  1155. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  1156. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  1157. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  1158. package/packages/ai/src/lib/astScopes/methodSemantics.js +237 -23
  1159. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  1160. package/packages/ai/src/lib/astScopes/nodeToSource.js +16 -0
  1161. package/packages/ai/src/lib/astScopes/nodeToSource.js.map +1 -1
  1162. package/packages/ai/src/lib/astScopes/paths.js +12 -3
  1163. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  1164. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  1165. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  1166. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  1167. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  1168. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +23 -0
  1169. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  1170. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  1171. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  1172. package/packages/ai/src/lib/astScopes/processExpression.js +1137 -96
  1173. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  1174. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  1175. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  1176. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  1177. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  1178. package/packages/ai/src/lib/completionCall.js +188 -38
  1179. package/packages/ai/src/lib/completionCall.js.map +1 -1
  1180. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +2000 -219
  1181. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  1182. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js +9 -2
  1183. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js.map +1 -1
  1184. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +7 -2
  1185. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  1186. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +230 -23
  1187. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  1188. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +77 -55
  1189. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  1190. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  1191. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  1192. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  1193. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  1194. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +66 -7
  1195. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  1196. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +139 -13
  1197. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  1198. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  1199. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  1200. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  1201. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  1202. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +142 -12
  1203. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  1204. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  1205. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  1206. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  1207. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  1208. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  1209. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  1210. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +334 -79
  1211. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  1212. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  1213. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  1214. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  1215. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  1216. package/packages/ai/src/lib/dataStructureChunking.js +130 -0
  1217. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  1218. package/packages/ai/src/lib/deepEqual.js +32 -0
  1219. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  1220. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  1221. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  1222. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  1223. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  1224. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  1225. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  1226. package/packages/ai/src/lib/generateChangesEntityScenarios.js +81 -90
  1227. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  1228. package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
  1229. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  1230. package/packages/ai/src/lib/generateEntityScenarioData.js +1183 -85
  1231. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  1232. package/packages/ai/src/lib/generateEntityScenarios.js +193 -83
  1233. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  1234. package/packages/ai/src/lib/generateExecutionFlows.js +484 -0
  1235. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  1236. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  1237. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  1238. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  1239. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  1240. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  1241. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  1242. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
  1243. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  1244. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
  1245. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  1246. package/packages/ai/src/lib/isolateScopes.js +270 -7
  1247. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  1248. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  1249. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  1250. package/packages/ai/src/lib/mergeStatements.js +88 -46
  1251. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  1252. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  1253. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  1254. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +16 -4
  1255. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  1256. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  1257. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  1258. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -64
  1259. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  1260. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  1261. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  1262. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  1263. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  1264. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -34
  1265. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  1266. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  1267. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  1268. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
  1269. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  1270. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  1271. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  1272. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  1273. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  1274. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  1275. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  1276. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  1277. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  1278. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  1279. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  1280. package/packages/analyze/index.js +2 -1
  1281. package/packages/analyze/index.js.map +1 -1
  1282. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  1283. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  1284. package/packages/analyze/src/lib/ProjectAnalyzer.js +109 -30
  1285. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  1286. package/packages/analyze/src/lib/analysisContext.js +30 -5
  1287. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  1288. package/packages/analyze/src/lib/asts/index.js +4 -2
  1289. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  1290. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  1291. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  1292. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  1293. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  1294. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  1295. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  1296. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  1297. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  1298. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  1299. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  1300. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  1301. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  1302. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  1303. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  1304. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  1305. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  1306. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  1307. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  1308. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +282 -52
  1309. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  1310. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +37 -27
  1311. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  1312. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +14 -2
  1313. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  1314. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +11 -8
  1315. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  1316. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +14 -0
  1317. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
  1318. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +75 -21
  1319. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  1320. package/packages/analyze/src/lib/files/analyzeChange.js +22 -11
  1321. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  1322. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  1323. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  1324. package/packages/analyze/src/lib/files/analyzeInitial.js +10 -10
  1325. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  1326. package/packages/analyze/src/lib/files/analyzeNextRoute.js +5 -1
  1327. package/packages/analyze/src/lib/files/analyzeNextRoute.js.map +1 -1
  1328. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  1329. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  1330. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  1331. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  1332. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  1333. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  1334. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +907 -0
  1335. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  1336. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +170 -40
  1337. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  1338. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  1339. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  1340. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +522 -59
  1341. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  1342. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
  1343. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
  1344. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  1345. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  1346. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +431 -57
  1347. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  1348. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +104 -0
  1349. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  1350. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +56 -69
  1351. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  1352. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +4 -8
  1353. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  1354. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +1507 -635
  1355. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  1356. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  1357. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  1358. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  1359. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  1360. package/packages/analyze/src/lib/index.js +1 -0
  1361. package/packages/analyze/src/lib/index.js.map +1 -1
  1362. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  1363. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  1364. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  1365. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  1366. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  1367. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  1368. package/packages/database/index.js +1 -0
  1369. package/packages/database/index.js.map +1 -1
  1370. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  1371. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  1372. package/packages/database/src/lib/analysisToDb.js +1 -1
  1373. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  1374. package/packages/database/src/lib/branchToDb.js +1 -1
  1375. package/packages/database/src/lib/branchToDb.js.map +1 -1
  1376. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  1377. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  1378. package/packages/database/src/lib/commitToDb.js +1 -1
  1379. package/packages/database/src/lib/commitToDb.js.map +1 -1
  1380. package/packages/database/src/lib/fileToDb.js +1 -1
  1381. package/packages/database/src/lib/fileToDb.js.map +1 -1
  1382. package/packages/database/src/lib/kysely/db.js +18 -3
  1383. package/packages/database/src/lib/kysely/db.js.map +1 -1
  1384. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  1385. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  1386. package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  1387. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  1388. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  1389. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  1390. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  1391. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  1392. package/packages/database/src/lib/loadAnalyses.js +45 -2
  1393. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  1394. package/packages/database/src/lib/loadAnalysis.js +15 -1
  1395. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  1396. package/packages/database/src/lib/loadBranch.js +11 -1
  1397. package/packages/database/src/lib/loadBranch.js.map +1 -1
  1398. package/packages/database/src/lib/loadCommit.js +7 -0
  1399. package/packages/database/src/lib/loadCommit.js.map +1 -1
  1400. package/packages/database/src/lib/loadCommits.js +45 -14
  1401. package/packages/database/src/lib/loadCommits.js.map +1 -1
  1402. package/packages/database/src/lib/loadEntities.js +23 -10
  1403. package/packages/database/src/lib/loadEntities.js.map +1 -1
  1404. package/packages/database/src/lib/loadEntity.js +5 -5
  1405. package/packages/database/src/lib/loadEntity.js.map +1 -1
  1406. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  1407. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  1408. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +5 -5
  1409. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  1410. package/packages/database/src/lib/projectToDb.js +1 -1
  1411. package/packages/database/src/lib/projectToDb.js.map +1 -1
  1412. package/packages/database/src/lib/saveFiles.js +1 -1
  1413. package/packages/database/src/lib/saveFiles.js.map +1 -1
  1414. package/packages/database/src/lib/scenarioToDb.js +1 -1
  1415. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  1416. package/packages/database/src/lib/updateCommitMetadata.js +76 -89
  1417. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  1418. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  1419. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  1420. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  1421. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  1422. package/packages/generate/index.js +3 -0
  1423. package/packages/generate/index.js.map +1 -1
  1424. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  1425. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  1426. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +217 -0
  1427. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  1428. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  1429. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  1430. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  1431. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  1432. package/packages/generate/src/lib/deepMerge.js +27 -1
  1433. package/packages/generate/src/lib/deepMerge.js.map +1 -1
  1434. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  1435. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  1436. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  1437. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  1438. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  1439. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  1440. package/packages/process/index.js +3 -0
  1441. package/packages/process/index.js.map +1 -0
  1442. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  1443. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  1444. package/packages/process/src/ProcessManager.js.map +1 -0
  1445. package/packages/process/src/index.js.map +1 -0
  1446. package/packages/process/src/managedExecAsync.js.map +1 -0
  1447. package/packages/types/index.js.map +1 -1
  1448. package/packages/types/src/enums/ProjectFramework.js +2 -0
  1449. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  1450. package/packages/utils/src/lib/fs/rsyncCopy.js +120 -4
  1451. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  1452. package/packages/utils/src/lib/safeFileName.js +29 -3
  1453. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  1454. package/scripts/npm-post-install.cjs +34 -0
  1455. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  1456. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -197
  1457. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -271
  1458. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -294
  1459. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  1460. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -115
  1461. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  1462. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  1463. package/analyzer-template/process/README.md +0 -507
  1464. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  1465. package/background/src/lib/process/ProcessManager.js.map +0 -1
  1466. package/background/src/lib/process/index.js.map +0 -1
  1467. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  1468. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  1469. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  1470. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js +0 -7
  1471. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js.map +0 -1
  1472. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
  1473. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  1474. package/codeyam-cli/src/commands/list.js +0 -31
  1475. package/codeyam-cli/src/commands/list.js.map +0 -1
  1476. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  1477. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  1478. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  1479. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  1480. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-DpUOH11S.js +0 -1
  1481. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CMjhlvyu.js +0 -1
  1482. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-Cxs_KUEt.js +0 -41
  1483. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D_gPUolj.js +0 -25
  1484. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DXN1aCbt.js +0 -3
  1485. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-MbTu_hOR.js +0 -11
  1486. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DQddU4F4.js +0 -1
  1487. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-Diqfd5nO.js +0 -15
  1488. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-Dt7eySG0.js +0 -1
  1489. package/codeyam-cli/src/webserver/build/client/assets/_index-D0tNX0Y7.js +0 -11
  1490. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CV8R8fpo.js +0 -32
  1491. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-Tv-88Jsz.js +0 -51
  1492. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-en9_3LGg.js +0 -21
  1493. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Cw7TE00E.js +0 -1
  1494. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DUOKD0lj.js +0 -1
  1495. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-_IuKNgFH.js +0 -1
  1496. package/codeyam-cli/src/webserver/build/client/assets/files-DMW0hD4L.js +0 -1
  1497. package/codeyam-cli/src/webserver/build/client/assets/git-8zM4ebXo.js +0 -15
  1498. package/codeyam-cli/src/webserver/build/client/assets/globals-D3y4cv7l.css +0 -1
  1499. package/codeyam-cli/src/webserver/build/client/assets/manifest-18ff0544.js +0 -1
  1500. package/codeyam-cli/src/webserver/build/client/assets/root-BuQ6JiJU.js +0 -51
  1501. package/codeyam-cli/src/webserver/build/client/assets/settings-DzIyX7wI.js +0 -1
  1502. package/codeyam-cli/src/webserver/build/client/assets/simulations-BKNqbrwU.js +0 -1
  1503. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-CHT-Bzx5.js +0 -2
  1504. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-By4FnEmE.js +0 -1
  1505. package/codeyam-cli/src/webserver/build/client/assets/useToast-BCR_pi3-.js +0 -1
  1506. package/codeyam-cli/src/webserver/build/server/assets/index-CzKXayO4.js +0 -1
  1507. package/codeyam-cli/src/webserver/build/server/assets/server-build-CHRMAMo8.js +0 -166
  1508. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  1509. package/codeyam-cli/templates/debug-codeyam.md +0 -576
  1510. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  1511. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  1512. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -136
  1513. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  1514. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -220
  1515. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  1516. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -241
  1517. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  1518. package/packages/ai/src/lib/isFrontend.js +0 -5
  1519. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  1520. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  1521. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  1522. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -72
  1523. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  1524. package/scripts/finalize-analyzer.cjs +0 -81
  1525. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  1526. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  1527. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  1528. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  1529. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  1530. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  1531. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -0,0 +1,43 @@
1
+ function Jn(e,t){for(var r=0;r<t.length;r++){const a=t[r];if(typeof a!="string"&&!Array.isArray(a)){for(const n in a)if(n!=="default"&&!(n in e)){const o=Object.getOwnPropertyDescriptor(a,n);o&&Object.defineProperty(e,n,o.get?o:{enumerable:!0,get:()=>a[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var ss=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Gn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Kt={exports:{}},Y={};/**
2
+ * @license React
3
+ * react.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 Vr;function Kn(){if(Vr)return Y;Vr=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),n=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,w={};function P(p,S,F){this.props=p,this.context=S,this.refs=w,this.updater=F||R}P.prototype.isReactComponent={},P.prototype.setState=function(p,S){if(typeof p!="object"&&typeof p!="function"&&p!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,p,S,"setState")},P.prototype.forceUpdate=function(p){this.updater.enqueueForceUpdate(this,p,"forceUpdate")};function C(){}C.prototype=P.prototype;function D(p,S,F){this.props=p,this.context=S,this.refs=w,this.updater=F||R}var I=D.prototype=new C;I.constructor=D,b(I,P.prototype),I.isPureReactComponent=!0;var x=Array.isArray;function _(){}var T={H:null,A:null,T:null,S:null},v=Object.prototype.hasOwnProperty;function B(p,S,F){var $=F.ref;return{$$typeof:e,type:p,key:S,ref:$!==void 0?$:null,props:F}}function U(p,S){return B(p.type,S,p.props)}function oe(p){return typeof p=="object"&&p!==null&&p.$$typeof===e}function G(p){var S={"=":"=0",":":"=2"};return"$"+p.replace(/[=:]/g,function(F){return S[F]})}var ie=/\/+/g;function q(p,S){return typeof p=="object"&&p!==null&&p.key!=null?G(""+p.key):S.toString(36)}function ae(p){switch(p.status){case"fulfilled":return p.value;case"rejected":throw p.reason;default:switch(typeof p.status=="string"?p.then(_,_):(p.status="pending",p.then(function(S){p.status==="pending"&&(p.status="fulfilled",p.value=S)},function(S){p.status==="pending"&&(p.status="rejected",p.reason=S)})),p.status){case"fulfilled":return p.value;case"rejected":throw p.reason}}throw p}function K(p,S,F,$,W){var J=typeof p;(J==="undefined"||J==="boolean")&&(p=null);var ee=!1;if(p===null)ee=!0;else switch(J){case"bigint":case"string":case"number":ee=!0;break;case"object":switch(p.$$typeof){case e:case t:ee=!0;break;case h:return ee=p._init,K(ee(p._payload),S,F,$,W)}}if(ee)return W=W(p),ee=$===""?"."+q(p,0):$,x(W)?(F="",ee!=null&&(F=ee.replace(ie,"$&/")+"/"),K(W,S,F,"",function(Wt){return Wt})):W!=null&&(oe(W)&&(W=U(W,F+(W.key==null||p&&p.key===W.key?"":(""+W.key).replace(ie,"$&/")+"/")+ee)),S.push(W)),1;ee=0;var ye=$===""?".":$+":";if(x(p))for(var ue=0;ue<p.length;ue++)$=p[ue],J=ye+q($,ue),ee+=K($,S,F,J,W);else if(ue=g(p),typeof ue=="function")for(p=ue.call(p),ue=0;!($=p.next()).done;)$=$.value,J=ye+q($,ue++),ee+=K($,S,F,J,W);else if(J==="object"){if(typeof p.then=="function")return K(ae(p),S,F,$,W);throw S=String(p),Error("Objects are not valid as a React child (found: "+(S==="[object Object]"?"object with keys {"+Object.keys(p).join(", ")+"}":S)+"). If you meant to render a collection of children, use an array instead.")}return ee}function Z(p,S,F){if(p==null)return p;var $=[],W=0;return K(p,$,"","",function(J){return S.call(F,J,W++)}),$}function we(p){if(p._status===-1){var S=p._result;S=S(),S.then(function(F){(p._status===0||p._status===-1)&&(p._status=1,p._result=F)},function(F){(p._status===0||p._status===-1)&&(p._status=2,p._result=F)}),p._status===-1&&(p._status=0,p._result=S)}if(p._status===1)return p._result.default;throw p._result}var re=typeof reportError=="function"?reportError:function(p){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var S=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof p=="object"&&p!==null&&typeof p.message=="string"?String(p.message):String(p),error:p});if(!window.dispatchEvent(S))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",p);return}console.error(p)},de={map:Z,forEach:function(p,S,F){Z(p,function(){S.apply(this,arguments)},F)},count:function(p){var S=0;return Z(p,function(){S++}),S},toArray:function(p){return Z(p,function(S){return S})||[]},only:function(p){if(!oe(p))throw Error("React.Children.only expected to receive a single React element child.");return p}};return Y.Activity=c,Y.Children=de,Y.Component=P,Y.Fragment=r,Y.Profiler=n,Y.PureComponent=D,Y.StrictMode=a,Y.Suspense=s,Y.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,Y.__COMPILER_RUNTIME={__proto__:null,c:function(p){return T.H.useMemoCache(p)}},Y.cache=function(p){return function(){return p.apply(null,arguments)}},Y.cacheSignal=function(){return null},Y.cloneElement=function(p,S,F){if(p==null)throw Error("The argument must be a React element, but you passed "+p+".");var $=b({},p.props),W=p.key;if(S!=null)for(J in S.key!==void 0&&(W=""+S.key),S)!v.call(S,J)||J==="key"||J==="__self"||J==="__source"||J==="ref"&&S.ref===void 0||($[J]=S[J]);var J=arguments.length-2;if(J===1)$.children=F;else if(1<J){for(var ee=Array(J),ye=0;ye<J;ye++)ee[ye]=arguments[ye+2];$.children=ee}return B(p.type,W,$)},Y.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},Y.createElement=function(p,S,F){var $,W={},J=null;if(S!=null)for($ in S.key!==void 0&&(J=""+S.key),S)v.call(S,$)&&$!=="key"&&$!=="__self"&&$!=="__source"&&(W[$]=S[$]);var ee=arguments.length-2;if(ee===1)W.children=F;else if(1<ee){for(var ye=Array(ee),ue=0;ue<ee;ue++)ye[ue]=arguments[ue+2];W.children=ye}if(p&&p.defaultProps)for($ in ee=p.defaultProps,ee)W[$]===void 0&&(W[$]=ee[$]);return B(p,J,W)},Y.createRef=function(){return{current:null}},Y.forwardRef=function(p){return{$$typeof:l,render:p}},Y.isValidElement=oe,Y.lazy=function(p){return{$$typeof:h,_payload:{_status:-1,_result:p},_init:we}},Y.memo=function(p,S){return{$$typeof:u,type:p,compare:S===void 0?null:S}},Y.startTransition=function(p){var S=T.T,F={};T.T=F;try{var $=p(),W=T.S;W!==null&&W(F,$),typeof $=="object"&&$!==null&&typeof $.then=="function"&&$.then(_,re)}catch(J){re(J)}finally{S!==null&&F.types!==null&&(S.types=F.types),T.T=S}},Y.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},Y.use=function(p){return T.H.use(p)},Y.useActionState=function(p,S,F){return T.H.useActionState(p,S,F)},Y.useCallback=function(p,S){return T.H.useCallback(p,S)},Y.useContext=function(p){return T.H.useContext(p)},Y.useDebugValue=function(){},Y.useDeferredValue=function(p,S){return T.H.useDeferredValue(p,S)},Y.useEffect=function(p,S){return T.H.useEffect(p,S)},Y.useEffectEvent=function(p){return T.H.useEffectEvent(p)},Y.useId=function(){return T.H.useId()},Y.useImperativeHandle=function(p,S,F){return T.H.useImperativeHandle(p,S,F)},Y.useInsertionEffect=function(p,S){return T.H.useInsertionEffect(p,S)},Y.useLayoutEffect=function(p,S){return T.H.useLayoutEffect(p,S)},Y.useMemo=function(p,S){return T.H.useMemo(p,S)},Y.useOptimistic=function(p,S){return T.H.useOptimistic(p,S)},Y.useReducer=function(p,S,F){return T.H.useReducer(p,S,F)},Y.useRef=function(p){return T.H.useRef(p)},Y.useState=function(p){return T.H.useState(p)},Y.useSyncExternalStore=function(p,S,F){return T.H.useSyncExternalStore(p,S,F)},Y.useTransition=function(){return T.H.useTransition()},Y.version="19.2.3",Y}var Jr;function Xn(){return Jr||(Jr=1,Kt.exports=Kn()),Kt.exports}var d=Xn();const qn=Gn(d),Qn=Jn({__proto__:null,default:qn},[d]);/**
10
+ * react-router v7.13.2
11
+ *
12
+ * Copyright (c) Remix Software Inc.
13
+ *
14
+ * This source code is licensed under the MIT license found in the
15
+ * LICENSE.md file in the root directory of this source tree.
16
+ *
17
+ * @license MIT
18
+ */var xa=e=>{throw TypeError(e)},Zn=(e,t,r)=>t.has(e)||xa("Cannot "+r),Xt=(e,t,r)=>(Zn(e,t,"read from private field"),r?r.call(e):t.get(e)),eo=(e,t,r)=>t.has(e)?xa("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),Gr="popstate";function Kr(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function us(e={}){function t(a,n){var u;let o=(u=n.state)==null?void 0:u.masked,{pathname:i,search:l,hash:s}=o||a.location;return dt("",{pathname:i,search:l,hash:s},n.state&&n.state.usr||null,n.state&&n.state.key||"default",o?{pathname:a.location.pathname,search:a.location.search,hash:a.location.hash}:void 0)}function r(a,n){return typeof n=="string"?n:Te(n)}return ro(t,r,null,e)}function V(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function se(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function to(){return Math.random().toString(36).substring(2,10)}function Xr(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.unstable_mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function dt(e,t,r=null,a,n){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?_e(t):t,state:r,key:t&&t.key||a||to(),unstable_mask:n}}function Te({pathname:e="/",search:t="",hash:r=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function _e(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let a=e.indexOf("?");a>=0&&(t.search=e.substring(a),e=e.substring(0,a)),e&&(t.pathname=e)}return t}function ro(e,t,r,a={}){let{window:n=document.defaultView,v5Compat:o=!1}=a,i=n.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 w=h(),P=w==null?null:w-u;u=w,s&&s({action:l,location:b.location,delta:P})}function m(w,P){l="PUSH";let C=Kr(w)?w:dt(b.location,w,P);u=h()+1;let D=Xr(C,u),I=b.createHref(C.unstable_mask||C);try{i.pushState(D,"",I)}catch(x){if(x instanceof DOMException&&x.name==="DataCloneError")throw x;n.location.assign(I)}o&&s&&s({action:l,location:b.location,delta:1})}function g(w,P){l="REPLACE";let C=Kr(w)?w:dt(b.location,w,P);u=h();let D=Xr(C,u),I=b.createHref(C.unstable_mask||C);i.replaceState(D,"",I),o&&s&&s({action:l,location:b.location,delta:0})}function R(w){return Pa(w)}let b={get action(){return l},get location(){return e(n,i)},listen(w){if(s)throw new Error("A history only accepts one active listener");return n.addEventListener(Gr,c),s=w,()=>{n.removeEventListener(Gr,c),s=null}},createHref(w){return t(n,w)},createURL:R,encodeLocation(w){let P=R(w);return{pathname:P.pathname,search:P.search,hash:P.hash}},push:m,replace:g,go(w){return i.go(w)}};return b}function Pa(e,t=!1){let r="http://localhost";typeof window<"u"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),V(r,"No window.location.(origin|href) available to create URL");let a=typeof e=="string"?e:Te(e);return a=a.replace(/ $/,"%20"),!t&&a.startsWith("//")&&(a=r+a),new URL(a,r)}var st,qr=class{constructor(e){if(eo(this,st,new Map),e)for(let[t,r]of e)this.set(t,r)}get(e){if(Xt(this,st).has(e))return Xt(this,st).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw new Error("No value found for context")}set(e,t){Xt(this,st).set(e,t)}};st=new WeakMap;var ao=new Set(["lazy","caseSensitive","path","id","index","children"]);function no(e){return ao.has(e)}var oo=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function io(e){return oo.has(e)}function lo(e){return e.index===!0}function ft(e,t,r=[],a={},n=!1){return e.map((o,i)=>{let l=[...r,String(i)],s=typeof o.id=="string"?o.id:l.join("-");if(V(o.index!==!0||!o.children,"Cannot specify children on an index route"),V(n||!a[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),lo(o)){let u={...o,id:s};return a[s]=Qr(u,t(u)),u}else{let u={...o,id:s,children:void 0};return a[s]=Qr(u,t(u)),o.children&&(u.children=ft(o.children,t,l,a,n)),u}})}function Qr(e,t){return Object.assign(e,{...t,...typeof t.lazy=="object"&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function Ie(e,t,r="/"){return ut(e,t,r,!1)}function ut(e,t,r,a){let n=typeof t=="string"?_e(t):t,o=Se(n.pathname||"/",r);if(o==null)return null;let i=Ma(e);so(i);let l=null;for(let s=0;l==null&&s<i.length;++s){let u=wo(o);l=go(i[s],u,a)}return l}function Ta(e,t){let{route:r,pathname:a,params:n}=e;return{id:r.id,pathname:a,params:n,data:t[r.id],loaderData:t[r.id],handle:r.handle}}function Ma(e,t=[],r=[],a="",n=!1){let o=(i,l,s=n,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(a)&&s)return;V(h.relativePath.startsWith(a),`Absolute route path "${h.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),h.relativePath=h.relativePath.slice(a.length)}let c=Pe([a,h.relativePath]),m=r.concat(h);i.children&&i.children.length>0&&(V(i.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${c}".`),Ma(i.children,t,m,c,s)),!(i.path==null&&!i.index)&&t.push({path:c,score:yo(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 _a(i.path))o(i,l,!0,u)}),t}function _a(e){let t=e.split("/");if(t.length===0)return[];let[r,...a]=t,n=r.endsWith("?"),o=r.replace(/\?$/,"");if(a.length===0)return n?[o,""]:[o];let i=_a(a.join("/")),l=[];return l.push(...i.map(s=>s===""?o:[o,s].join("/"))),n&&l.push(...i),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function so(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:vo(t.routesMeta.map(a=>a.childrenIndex),r.routesMeta.map(a=>a.childrenIndex)))}var uo=/^:[\w-]+$/,co=3,fo=2,ho=1,mo=10,po=-2,Zr=e=>e==="*";function yo(e,t){let r=e.split("/"),a=r.length;return r.some(Zr)&&(a+=po),t&&(a+=fo),r.filter(n=>!Zr(n)).reduce((n,o)=>n+(uo.test(o)?co:o===""?ho:mo),a)}function vo(e,t){return e.length===t.length&&e.slice(0,-1).every((a,n)=>a===t[n])?e[e.length-1]-t[t.length-1]:0}function go(e,t,r=!1){let{routesMeta:a}=e,n={},o="/",i=[];for(let l=0;l<a.length;++l){let s=a[l],u=l===a.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&&!a[a.length-1].route.index&&(c=Ft({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},h)),!c)return null;Object.assign(n,c.params),i.push({params:n,pathname:Pe([o,c.pathname]),pathnameBase:bo(Pe([o,c.pathnameBase])),route:m}),c.pathnameBase!=="/"&&(o=Pe([o,c.pathnameBase]))}return i}function Ft(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,a]=Da(e.path,e.caseSensitive,e.end),n=t.match(r);if(!n)return null;let o=n[0],i=o.replace(/(.)\/+$/,"$1"),l=n.slice(1);return{params:a.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 Da(e,t=!1,r=!0){se(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 a=[],n="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,l,s,u,h)=>{if(a.push({paramName:l,isOptional:s!=null}),s){let c=h.charAt(u+i.length);return c&&c!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(a.push({paramName:"*"}),n+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?n+="\\/*$":e!==""&&e!=="/"&&(n+="(?:(?=\\/|$))"),[new RegExp(n,t?void 0:"i"),a]}function wo(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return se(!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 Se(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,a=e.charAt(r);return a&&a!=="/"?null:e.slice(r)||"/"}function Eo({basename:e,pathname:t}){return t==="/"?e:Pe([e,t])}var Oa=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,vr=e=>Oa.test(e);function Ro(e,t="/"){let{pathname:r,search:a="",hash:n=""}=typeof e=="string"?_e(e):e,o;return r?(r=r.replace(/\/\/+/g,"/"),r.startsWith("/")?o=ea(r.substring(1),"/"):o=ea(r,t)):o=t,{pathname:o,search:So(a),hash:Lo(n)}}function ea(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(n=>{n===".."?r.length>1&&r.pop():n!=="."&&r.push(n)}),r.length>1?r.join("/"):"/"}function qt(e,t,r,a){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(a)}]. 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 ka(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function gr(e){let t=ka(e);return t.map((r,a)=>a===t.length-1?r.pathname:r.pathnameBase)}function Nt(e,t,r,a=!1){let n;typeof e=="string"?n=_e(e):(n={...e},V(!n.pathname||!n.pathname.includes("?"),qt("?","pathname","search",n)),V(!n.pathname||!n.pathname.includes("#"),qt("#","pathname","hash",n)),V(!n.search||!n.search.includes("#"),qt("#","search","hash",n)));let o=e===""||n.pathname==="",i=o?"/":n.pathname,l;if(i==null)l=r;else{let c=t.length-1;if(!a&&i.startsWith("..")){let m=i.split("/");for(;m[0]==="..";)m.shift(),c-=1;n.pathname=m.join("/")}l=c>=0?t[c]:"/"}let s=Ro(n,l),u=i&&i!=="/"&&i.endsWith("/"),h=(o||i===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||h)&&(s.pathname+="/"),s}var Pe=e=>e.join("/").replace(/\/\/+/g,"/"),bo=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),So=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Lo=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,Co=class{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}};function xo(e,t){return new Co(e,typeof t=="number"?{status:t}:t)}var Po=(e,t=302)=>{let r=t;typeof r=="number"?r={status:r}:typeof r.status>"u"&&(r.status=302);let a=new Headers(r.headers);return a.set("Location",e),new Response(null,{...r,headers:a})},je=class{constructor(e,t,r,a=!1){this.status=e,this.statusText=t||"",this.internal=a,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 mt(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Fa=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ia(e,t){let r=e;if(typeof r!="string"||!Oa.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let a=r,n=!1;if(Fa)try{let o=new URL(window.location.href),i=r.startsWith("//")?new URL(o.protocol+r):new URL(r),l=Se(i.pathname,t);i.origin===o.origin&&l!=null?r=l+i.search+i.hash:n=!0}catch{se(!1,`<Link to="${r}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:a,isExternal:n,to:r}}var $e=Symbol("Uninstrumented");function To(e,t){let r={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(n=>n({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 a={};if(typeof t.lazy=="function"&&r.lazy.length>0){let n=Qe(r.lazy,t.lazy,()=>{});n&&(a.lazy=n)}if(typeof t.lazy=="object"){let n=t.lazy;["middleware","loader","action"].forEach(o=>{let i=n[o],l=r[`lazy.${o}`];if(typeof i=="function"&&l.length>0){let s=Qe(l,i,()=>{});s&&(a.lazy=Object.assign(a.lazy||{},{[o]:s}))}})}return["loader","action"].forEach(n=>{let o=t[n];if(typeof o=="function"&&r[n].length>0){let i=o[$e]??o,l=Qe(r[n],i,(...s)=>ta(s[0]));l&&(n==="loader"&&i.hydrate===!0&&(l.hydrate=!0),l[$e]=i,a[n]=l)}}),t.middleware&&t.middleware.length>0&&r.middleware.length>0&&(a.middleware=t.middleware.map(n=>{let o=n[$e]??n,i=Qe(r.middleware,o,(...l)=>ta(l[0]));return i?(i[$e]=o,i):n})),a}function Mo(e,t){let r={navigate:[],fetch:[]};if(t.forEach(a=>a({instrument(n){let o=Object.keys(n);for(let i of o)n[i]&&r[i].push(n[i])}})),r.navigate.length>0){let a=e.navigate[$e]??e.navigate,n=Qe(r.navigate,a,(...o)=>{let[i,l]=o;return{to:typeof i=="number"||typeof i=="string"?i:i?Te(i):".",...ra(e,l??{})}});n&&(n[$e]=a,e.navigate=n)}if(r.fetch.length>0){let a=e.fetch[$e]??e.fetch,n=Qe(r.fetch,a,(...o)=>{let[i,,l,s]=o;return{href:l??".",fetcherKey:i,...ra(e,s??{})}});n&&(n[$e]=a,e.fetch=n)}return e}function Qe(e,t,r){return e.length===0?null:async(...a)=>{let n=await Aa(e,r(...a),()=>t(...a),e.length-1);if(n.type==="error")throw n.value;return n.value}}async function Aa(e,t,r,a){let n=e[a],o;if(n){let i,l=async()=>(i?console.error("You cannot call instrumented handlers more than once"):i=Aa(e,t,r,a-1),o=await i,V(o,"Expected a result"),o.type==="error"&&o.value instanceof Error?{status:"error",error:o.value}:{status:"success",error:void 0});try{await n(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 ta(e){let{request:t,context:r,params:a,unstable_pattern:n}=e;return{request:_o(t),params:{...a},unstable_pattern:n,context:Do(r)}}function ra(e,t){return{currentUrl:Te(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 _o(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function Do(e){if(ko(e)){let t={...e};return Object.freeze(t),t}else return{get:t=>e.get(t)}}var Oo=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function ko(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")===Oo}var Na=["POST","PUT","PATCH","DELETE"],Fo=new Set(Na),Io=["GET",...Na],Ao=new Set(Io),$a=new Set([301,302,303,307,308]),No=new Set([307,308]),Qt={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ja={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ot={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},$o=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Ua="remix-router-transitions",Ha=Symbol("ResetLoaderData");function cs(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";V(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a=e.hydrationRouteProperties||[],n=e.mapRouteProperties||$o,o=n;if(e.unstable_instrumentations){let f=e.unstable_instrumentations;o=y=>({...n(y),...To(f.map(E=>E.route).filter(Boolean),y)})}let i={},l=ft(e.routes,o,void 0,i),s,u=e.basename||"/";u.startsWith("/")||(u=`/${u}`);let h=e.dataStrategy||Bo,c={unstable_passThroughRequests:!1,...e.future},m=null,g=new Set,R=null,b=null,w=null,P=e.hydrationData!=null,C=Ie(l,e.history.location,u),D=!1,I=null,x,_;if(C==null&&!e.patchRoutesOnNavigation){let f=Le(404,{pathname:e.history.location.pathname}),{matches:y,route:E}=Lt(l);x=!0,_=!x,C=y,I={[E.id]:f}}else if(C&&!e.hydrationData&&wt(C,l,e.history.location.pathname).active&&(C=null),C)if(C.some(f=>f.route.lazy))x=!1,_=!x;else if(!C.some(f=>wr(f.route)))x=!0,_=!x;else{let f=e.hydrationData?e.hydrationData.loaderData:null,y=e.hydrationData?e.hydrationData.errors:null,E=C;if(y){let L=C.findIndex(M=>y[M.route.id]!==void 0);E=E.slice(0,L+1)}_=!1,x=!0,E.forEach(L=>{let M=za(L.route,f,y);_=_||M.renderFallback,x=x&&!M.shouldLoad})}else{x=!1,_=!x,C=[];let f=wt(null,l,e.history.location.pathname);f.active&&f.matches&&(D=!0,C=f.matches)}let T,v={historyAction:e.history.action,location:e.history.location,matches:C,initialized:x,renderFallback:_,navigation:Qt,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||I,fetchers:new Map,blockers:new Map},B="POP",U=null,oe=!1,G,ie=!1,q=new Map,ae=null,K=!1,Z=!1,we=new Set,re=new Map,de=0,p=-1,S=new Map,F=new Set,$=new Map,W=new Map,J=new Set,ee=new Map,ye,ue=null;function Wt(){if(m=e.history.listen(({action:f,location:y,delta:E})=>{if(ye){ye(),ye=void 0;return}se(ee.size===0||E!=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 L=Hr({currentLocation:v.location,nextLocation:y,historyAction:f});if(L&&E!=null){let M=new Promise(j=>{ye=j});e.history.go(E*-1),gt(L,{state:"blocked",location:y,proceed(){gt(L,{state:"proceeding",proceed:void 0,reset:void 0,location:y}),M.then(()=>e.history.go(E))},reset(){let j=new Map(v.blockers);j.set(L,ot),he({blockers:j})}}),U==null||U.resolve(),U=null;return}return Ue(f,y)}),r){li(t,q);let f=()=>si(t,q);t.addEventListener("pagehide",f),ae=()=>t.removeEventListener("pagehide",f)}return v.initialized||Ue("POP",v.location,{initialHydration:!0}),T}function _n(){m&&m(),ae&&ae(),g.clear(),G&&G.abort(),v.fetchers.forEach((f,y)=>Vt(y)),v.blockers.forEach((f,y)=>Ur(y))}function Dn(f){return g.add(f),()=>g.delete(f)}function he(f,y={}){f.matches&&(f.matches=f.matches.map(M=>{let j=i[M.route.id],A=M.route;return A.element!==j.element||A.errorElement!==j.errorElement||A.hydrateFallbackElement!==j.hydrateFallbackElement?{...M,route:j}:M})),v={...v,...f};let E=[],L=[];v.fetchers.forEach((M,j)=>{M.state==="idle"&&(J.has(j)?E.push(j):L.push(j))}),J.forEach(M=>{!v.fetchers.has(M)&&!re.has(M)&&E.push(M)}),[...g].forEach(M=>M(v,{deletedFetchers:E,newErrors:f.errors??null,viewTransitionOpts:y.viewTransitionOpts,flushSync:y.flushSync===!0})),E.forEach(M=>Vt(M)),L.forEach(M=>v.fetchers.delete(M))}function Ke(f,y,{flushSync:E}={}){var z,N;let L=v.actionData!=null&&v.navigation.formMethod!=null&&pe(v.navigation.formMethod)&&v.navigation.state==="loading"&&((z=f.state)==null?void 0:z._isRedirect)!==!0,M;y.actionData?Object.keys(y.actionData).length>0?M=y.actionData:M=null:L?M=v.actionData:M=null;let j=y.loaderData?ha(v.loaderData,y.loaderData,y.matches||[],y.errors):v.loaderData,A=v.blockers;A.size>0&&(A=new Map(A),A.forEach((X,Q)=>A.set(Q,ot)));let H=K?!1:Br(f,y.matches||v.matches),k=oe===!0||v.navigation.formMethod!=null&&pe(v.navigation.formMethod)&&((N=f.state)==null?void 0:N._isRedirect)!==!0;s&&(l=s,s=void 0),K||B==="POP"||(B==="PUSH"?e.history.push(f,f.state):B==="REPLACE"&&e.history.replace(f,f.state));let O;if(B==="POP"){let X=q.get(v.location.pathname);X&&X.has(f.pathname)?O={currentLocation:v.location,nextLocation:f}:q.has(f.pathname)&&(O={currentLocation:f,nextLocation:v.location})}else if(ie){let X=q.get(v.location.pathname);X?X.add(f.pathname):(X=new Set([f.pathname]),q.set(v.location.pathname,X)),O={currentLocation:v.location,nextLocation:f}}he({...y,actionData:M,loaderData:j,historyAction:B,location:f,initialized:!0,renderFallback:!1,navigation:Qt,revalidation:"idle",restoreScrollPosition:H,preventScrollReset:k,blockers:A},{viewTransitionOpts:O,flushSync:E===!0}),B="POP",oe=!1,ie=!1,K=!1,Z=!1,U==null||U.resolve(),U=null,ue==null||ue.resolve(),ue=null}async function kr(f,y){if(U==null||U.resolve(),U=null,typeof f=="number"){U||(U=ya());let le=U.promise;return e.history.go(f),le}let E=or(v.location,v.matches,u,f,y==null?void 0:y.fromRouteId,y==null?void 0:y.relative),{path:L,submission:M,error:j}=aa(!1,E,y),A;y!=null&&y.unstable_mask&&(A={pathname:"",search:"",hash:"",...typeof y.unstable_mask=="string"?_e(y.unstable_mask):{...v.location.unstable_mask,...y.unstable_mask}});let H=v.location,k=dt(H,L,y&&y.state,void 0,A);k={...k,...e.history.encodeLocation(k)};let O=y&&y.replace!=null?y.replace:void 0,z="PUSH";O===!0?z="REPLACE":O===!1||M!=null&&pe(M.formMethod)&&M.formAction===v.location.pathname+v.location.search&&(z="REPLACE");let N=y&&"preventScrollReset"in y?y.preventScrollReset===!0:void 0,X=(y&&y.flushSync)===!0,Q=Hr({currentLocation:H,nextLocation:k,historyAction:z});if(Q){gt(Q,{state:"blocked",location:k,proceed(){gt(Q,{state:"proceeding",proceed:void 0,reset:void 0,location:k}),kr(f,y)},reset(){let le=new Map(v.blockers);le.set(Q,ot),he({blockers:le})}});return}await Ue(z,k,{submission:M,pendingError:j,preventScrollReset:N,replace:y&&y.replace,enableViewTransition:y&&y.viewTransition,flushSync:X,callSiteDefaultShouldRevalidate:y&&y.unstable_defaultShouldRevalidate})}function On(){ue||(ue=ya()),Yt(),he({revalidation:"loading"});let f=ue.promise;return v.navigation.state==="submitting"?f:v.navigation.state==="idle"?(Ue(v.historyAction,v.location,{startUninterruptedRevalidation:!0}),f):(Ue(B||v.historyAction,v.navigation.location,{overrideNavigation:v.navigation,enableViewTransition:ie===!0}),f)}async function Ue(f,y,E){G&&G.abort(),G=null,B=f,K=(E&&E.startUninterruptedRevalidation)===!0,Bn(v.location,v.matches),oe=(E&&E.preventScrollReset)===!0,ie=(E&&E.enableViewTransition)===!0;let L=s||l,M=E&&E.overrideNavigation,j=E!=null&&E.initialHydration&&v.matches&&v.matches.length>0&&!D?v.matches:Ie(L,y,u),A=(E&&E.flushSync)===!0;if(j&&v.initialized&&!Z&&qo(v.location,y)&&!(E&&E.submission&&pe(E.submission.formMethod))){Ke(y,{matches:j},{flushSync:A});return}let H=wt(j,L,y.pathname);if(H.active&&H.matches&&(j=H.matches),!j){let{error:fe,notFoundMatches:ve,route:ne}=Jt(y.pathname);Ke(y,{matches:ve,loaderData:{},errors:{[ne.id]:fe}},{flushSync:A});return}G=new AbortController;let k=qe(e.history,y,G.signal,E&&E.submission),O=e.getContext?await e.getContext():new qr,z;if(E&&E.pendingError)z=[Ne(j).route.id,{type:"error",error:E.pendingError}];else if(E&&E.submission&&pe(E.submission.formMethod)){let fe=await kn(k,y,E.submission,j,O,H.active,E&&E.initialHydration===!0,{replace:E.replace,flushSync:A});if(fe.shortCircuited)return;if(fe.pendingActionResult){let[ve,ne]=fe.pendingActionResult;if(be(ne)&&Ve(ne.error)&&ne.error.status===404){G=null,Ke(y,{matches:fe.matches,loaderData:{},errors:{[ve]:ne.error}});return}}j=fe.matches||j,z=fe.pendingActionResult,M=Zt(y,E.submission),A=!1,H.active=!1,k=qe(e.history,k.url,k.signal)}let{shortCircuited:N,matches:X,loaderData:Q,errors:le}=await Fn(k,y,j,O,H.active,M,E&&E.submission,E&&E.fetcherSubmission,E&&E.replace,E&&E.initialHydration===!0,A,z,E&&E.callSiteDefaultShouldRevalidate);N||(G=null,Ke(y,{matches:X||j,...ma(z),loaderData:Q,errors:le}))}async function kn(f,y,E,L,M,j,A,H={}){Yt();let k=oi(y,E);if(he({navigation:k},{flushSync:H.flushSync===!0}),j){let N=await Et(L,y.pathname,f.signal);if(N.type==="aborted")return{shortCircuited:!0};if(N.type==="error"){if(N.partialMatches.length===0){let{matches:Q,route:le}=Lt(l);return{matches:Q,pendingActionResult:[le.id,{type:"error",error:N.error}]}}let X=Ne(N.partialMatches).route.id;return{matches:N.partialMatches,pendingActionResult:[X,{type:"error",error:N.error}]}}else if(N.matches)L=N.matches;else{let{notFoundMatches:X,error:Q,route:le}=Jt(y.pathname);return{matches:X,pendingActionResult:[le.id,{type:"error",error:Q}]}}}let O,z=_t(L,y);if(!z.route.action&&!z.route.lazy)O={type:"error",error:Le(405,{method:f.method,pathname:y.pathname,routeId:z.route.id})};else{let N=Ze(o,i,f,y,L,z,A?[]:a,M),X=await rt(f,y,N,M,null);if(O=X[z.route.id],!O){for(let Q of L)if(X[Q.route.id]){O=X[Q.route.id];break}}if(f.signal.aborted)return{shortCircuited:!0}}if(Ye(O)){let N;return H&&H.replace!=null?N=H.replace:N=ca(O.response.headers.get("Location"),new URL(f.url),u,e.history)===v.location.pathname+v.location.search,await He(f,O,!0,{submission:E,replace:N}),{shortCircuited:!0}}if(be(O)){let N=Ne(L,z.route.id);return(H&&H.replace)!==!0&&(B="PUSH"),{matches:L,pendingActionResult:[N.route.id,O,z.route.id]}}return{matches:L,pendingActionResult:[z.route.id,O]}}async function Fn(f,y,E,L,M,j,A,H,k,O,z,N,X){let Q=j||Zt(y,A),le=A||H||pa(Q),fe=!K&&!O;if(M){if(fe){let me=Fr(N);he({navigation:Q,...me!==void 0?{actionData:me}:{}},{flushSync:z})}let te=await Et(E,y.pathname,f.signal);if(te.type==="aborted")return{shortCircuited:!0};if(te.type==="error"){if(te.partialMatches.length===0){let{matches:Xe,route:We}=Lt(l);return{matches:Xe,loaderData:{},errors:{[We.id]:te.error}}}let me=Ne(te.partialMatches).route.id;return{matches:te.partialMatches,loaderData:{},errors:{[me]:te.error}}}else if(te.matches)E=te.matches;else{let{error:me,notFoundMatches:Xe,route:We}=Jt(y.pathname);return{matches:Xe,loaderData:{},errors:{[We.id]:me}}}}let ve=s||l,{dsMatches:ne,revalidatingFetchers:Re}=na(f,L,o,i,e.history,v,E,le,y,O?[]:a,O===!0,Z,we,J,$,F,ve,u,e.patchRoutesOnNavigation!=null,N,X);if(p=++de,!e.dataStrategy&&!ne.some(te=>te.shouldLoad)&&!ne.some(te=>te.route.middleware&&te.route.middleware.length>0)&&Re.length===0){let te=$r();return Ke(y,{matches:E,loaderData:{},errors:N&&be(N[1])?{[N[0]]:N[1].error}:null,...ma(N),...te?{fetchers:new Map(v.fetchers)}:{}},{flushSync:z}),{shortCircuited:!0}}if(fe){let te={};if(!M){te.navigation=Q;let me=Fr(N);me!==void 0&&(te.actionData=me)}Re.length>0&&(te.fetchers=In(Re)),he(te,{flushSync:z})}Re.forEach(te=>{ke(te.key),te.controller&&re.set(te.key,te.controller)});let ze=()=>Re.forEach(te=>ke(te.key));G&&G.signal.addEventListener("abort",ze);let{loaderResults:at,fetcherResults:Ae}=await Ir(ne,Re,f,y,L);if(f.signal.aborted)return{shortCircuited:!0};G&&G.signal.removeEventListener("abort",ze),Re.forEach(te=>re.delete(te.key));let Me=Ct(at);if(Me)return await He(f,Me.result,!0,{replace:k}),{shortCircuited:!0};if(Me=Ct(Ae),Me)return F.add(Me.key),await He(f,Me.result,!0,{replace:k}),{shortCircuited:!0};let{loaderData:Gt,errors:nt}=fa(v,E,at,N,Re,Ae);O&&v.errors&&(nt={...v.errors,...nt});let Be=$r(),Rt=jr(p),bt=Be||Rt||Re.length>0;return{matches:E,loaderData:Gt,errors:nt,...bt?{fetchers:new Map(v.fetchers)}:{}}}function Fr(f){if(f&&!be(f[1]))return{[f[0]]:f[1].data};if(v.actionData)return Object.keys(v.actionData).length===0?null:v.actionData}function In(f){return f.forEach(y=>{let E=v.fetchers.get(y.key),L=it(void 0,E?E.data:void 0);v.fetchers.set(y.key,L)}),new Map(v.fetchers)}async function An(f,y,E,L){ke(f);let M=(L&&L.flushSync)===!0,j=s||l,A=or(v.location,v.matches,u,E,y,L==null?void 0:L.relative),H=Ie(j,A,u),k=wt(H,j,A);if(k.active&&k.matches&&(H=k.matches),!H){Oe(f,y,Le(404,{pathname:A}),{flushSync:M});return}let{path:O,submission:z,error:N}=aa(!0,A,L);if(N){Oe(f,y,N,{flushSync:M});return}let X=e.getContext?await e.getContext():new qr,Q=(L&&L.preventScrollReset)===!0;if(z&&pe(z.formMethod)){await Nn(f,y,O,H,X,k.active,M,Q,z,L&&L.unstable_defaultShouldRevalidate);return}$.set(f,{routeId:y,path:O}),await $n(f,y,O,H,X,k.active,M,Q,z)}async function Nn(f,y,E,L,M,j,A,H,k,O){Yt(),$.delete(f);let z=v.fetchers.get(f);De(f,ii(k,z),{flushSync:A});let N=new AbortController,X=qe(e.history,E,N.signal,k);if(j){let ce=await Et(L,new URL(X.url).pathname,X.signal,f);if(ce.type==="aborted")return;if(ce.type==="error"){Oe(f,y,ce.error,{flushSync:A});return}else if(ce.matches)L=ce.matches;else{Oe(f,y,Le(404,{pathname:E}),{flushSync:A});return}}let Q=_t(L,E);if(!Q.route.action&&!Q.route.lazy){let ce=Le(405,{method:k.formMethod,pathname:E,routeId:y});Oe(f,y,ce,{flushSync:A});return}re.set(f,N);let le=de,fe=Ze(o,i,X,E,L,Q,a,M),ve=await rt(X,E,fe,M,f),ne=ve[Q.route.id];if(!ne){for(let ce of fe)if(ve[ce.route.id]){ne=ve[ce.route.id];break}}if(X.signal.aborted){re.get(f)===N&&re.delete(f);return}if(J.has(f)){if(Ye(ne)||be(ne)){De(f,Fe(void 0));return}}else{if(Ye(ne))if(re.delete(f),p>le){De(f,Fe(void 0));return}else return F.add(f),De(f,it(k)),He(X,ne,!1,{fetcherSubmission:k,preventScrollReset:H});if(be(ne)){Oe(f,y,ne.error);return}}let Re=v.navigation.location||v.location,ze=qe(e.history,Re,N.signal),at=s||l,Ae=v.navigation.state!=="idle"?Ie(at,v.navigation.location,u):v.matches;V(Ae,"Didn't find any matches after fetcher action");let Me=++de;S.set(f,Me);let Gt=it(k,ne.data);v.fetchers.set(f,Gt);let{dsMatches:nt,revalidatingFetchers:Be}=na(ze,M,o,i,e.history,v,Ae,k,Re,a,!1,Z,we,J,$,F,at,u,e.patchRoutesOnNavigation!=null,[Q.route.id,ne],O);Be.filter(ce=>ce.key!==f).forEach(ce=>{let St=ce.key,Yr=v.fetchers.get(St),Vn=it(void 0,Yr?Yr.data:void 0);v.fetchers.set(St,Vn),ke(St),ce.controller&&re.set(St,ce.controller)}),he({fetchers:new Map(v.fetchers)});let Rt=()=>Be.forEach(ce=>ke(ce.key));N.signal.addEventListener("abort",Rt);let{loaderResults:bt,fetcherResults:te}=await Ir(nt,Be,ze,Re,M);if(N.signal.aborted)return;if(N.signal.removeEventListener("abort",Rt),S.delete(f),re.delete(f),Be.forEach(ce=>re.delete(ce.key)),v.fetchers.has(f)){let ce=Fe(ne.data);v.fetchers.set(f,ce)}let me=Ct(bt);if(me)return He(ze,me.result,!1,{preventScrollReset:H});if(me=Ct(te),me)return F.add(me.key),He(ze,me.result,!1,{preventScrollReset:H});let{loaderData:Xe,errors:We}=fa(v,Ae,bt,void 0,Be,te);jr(Me),v.navigation.state==="loading"&&Me>p?(V(B,"Expected pending action"),G&&G.abort(),Ke(v.navigation.location,{matches:Ae,loaderData:Xe,errors:We,fetchers:new Map(v.fetchers)})):(he({errors:We,loaderData:ha(v.loaderData,Xe,Ae,We),fetchers:new Map(v.fetchers)}),Z=!1)}async function $n(f,y,E,L,M,j,A,H,k){let O=v.fetchers.get(f);De(f,it(k,O?O.data:void 0),{flushSync:A});let z=new AbortController,N=qe(e.history,E,z.signal);if(j){let ne=await Et(L,new URL(N.url).pathname,N.signal,f);if(ne.type==="aborted")return;if(ne.type==="error"){Oe(f,y,ne.error,{flushSync:A});return}else if(ne.matches)L=ne.matches;else{Oe(f,y,Le(404,{pathname:E}),{flushSync:A});return}}let X=_t(L,E);re.set(f,z);let Q=de,le=Ze(o,i,N,E,L,X,a,M),ve=(await rt(N,E,le,M,f))[X.route.id];if(re.get(f)===z&&re.delete(f),!N.signal.aborted){if(J.has(f)){De(f,Fe(void 0));return}if(Ye(ve))if(p>Q){De(f,Fe(void 0));return}else{F.add(f),await He(N,ve,!1,{preventScrollReset:H});return}if(be(ve)){Oe(f,y,ve.error);return}De(f,Fe(ve.data))}}async function He(f,y,E,{submission:L,fetcherSubmission:M,preventScrollReset:j,replace:A}={}){E||(U==null||U.resolve(),U=null),y.response.headers.has("X-Remix-Revalidate")&&(Z=!0);let H=y.response.headers.get("Location");V(H,"Expected a Location header on the redirect Response"),H=ca(H,new URL(f.url),u,e.history);let k=dt(v.location,H,{_isRedirect:!0});if(r){let le=!1;if(y.response.headers.has("X-Remix-Reload-Document"))le=!0;else if(vr(H)){const fe=Pa(H,!0);le=fe.origin!==t.location.origin||Se(fe.pathname,u)==null}if(le){A?t.location.replace(H):t.location.assign(H);return}}G=null;let O=A===!0||y.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:z,formAction:N,formEncType:X}=v.navigation;!L&&!M&&z&&N&&X&&(L=pa(v.navigation));let Q=L||M;if(No.has(y.response.status)&&Q&&pe(Q.formMethod))await Ue(O,k,{submission:{...Q,formAction:H},preventScrollReset:j||oe,enableViewTransition:E?ie:void 0});else{let le=Zt(k,L);await Ue(O,k,{overrideNavigation:le,fetcherSubmission:M,preventScrollReset:j||oe,enableViewTransition:E?ie:void 0})}}async function rt(f,y,E,L,M){var H;let j,A={};try{j=await Yo(h,f,y,E,M,L,!1)}catch(k){return E.filter(O=>O.shouldLoad).forEach(O=>{A[O.route.id]={type:"error",error:k}}),A}if(f.signal.aborted)return A;if(!pe(f.method))for(let k of E){if(((H=j[k.route.id])==null?void 0:H.type)==="error")break;!j.hasOwnProperty(k.route.id)&&!v.loaderData.hasOwnProperty(k.route.id)&&(!v.errors||!v.errors.hasOwnProperty(k.route.id))&&k.shouldCallHandler()&&(j[k.route.id]={type:"error",result:new Error(`No result returned from dataStrategy for route ${k.route.id}`)})}for(let[k,O]of Object.entries(j))if(ti(O)){let z=O.result;A[k]={type:"redirect",response:Ko(z,f,k,E,u)}}else A[k]=await Go(O);return A}async function Ir(f,y,E,L,M){let j=rt(E,L,f,M,null),A=Promise.all(y.map(async O=>{if(O.matches&&O.match&&O.request&&O.controller){let N=(await rt(O.request,O.path,O.matches,M,O.key))[O.match.route.id];return{[O.key]:N}}else return Promise.resolve({[O.key]:{type:"error",error:Le(404,{pathname:O.path})}})})),H=await j,k=(await A).reduce((O,z)=>Object.assign(O,z),{});return{loaderResults:H,fetcherResults:k}}function Yt(){Z=!0,$.forEach((f,y)=>{re.has(y)&&we.add(y),ke(y)})}function De(f,y,E={}){v.fetchers.set(f,y),he({fetchers:new Map(v.fetchers)},{flushSync:(E&&E.flushSync)===!0})}function Oe(f,y,E,L={}){let M=Ne(v.matches,y);Vt(f),he({errors:{[M.route.id]:E},fetchers:new Map(v.fetchers)},{flushSync:(L&&L.flushSync)===!0})}function Ar(f){return W.set(f,(W.get(f)||0)+1),J.has(f)&&J.delete(f),v.fetchers.get(f)||ja}function jn(f,y){ke(f,y==null?void 0:y.reason),De(f,Fe(null))}function Vt(f){let y=v.fetchers.get(f);re.has(f)&&!(y&&y.state==="loading"&&S.has(f))&&ke(f),$.delete(f),S.delete(f),F.delete(f),J.delete(f),we.delete(f),v.fetchers.delete(f)}function Un(f){let y=(W.get(f)||0)-1;y<=0?(W.delete(f),J.add(f)):W.set(f,y),he({fetchers:new Map(v.fetchers)})}function ke(f,y){let E=re.get(f);E&&(E.abort(y),re.delete(f))}function Nr(f){for(let y of f){let E=Ar(y),L=Fe(E.data);v.fetchers.set(y,L)}}function $r(){let f=[],y=!1;for(let E of F){let L=v.fetchers.get(E);V(L,`Expected fetcher: ${E}`),L.state==="loading"&&(F.delete(E),f.push(E),y=!0)}return Nr(f),y}function jr(f){let y=[];for(let[E,L]of S)if(L<f){let M=v.fetchers.get(E);V(M,`Expected fetcher: ${E}`),M.state==="loading"&&(ke(E),S.delete(E),y.push(E))}return Nr(y),y.length>0}function Hn(f,y){let E=v.blockers.get(f)||ot;return ee.get(f)!==y&&ee.set(f,y),E}function Ur(f){v.blockers.delete(f),ee.delete(f)}function gt(f,y){let E=v.blockers.get(f)||ot;V(E.state==="unblocked"&&y.state==="blocked"||E.state==="blocked"&&y.state==="blocked"||E.state==="blocked"&&y.state==="proceeding"||E.state==="blocked"&&y.state==="unblocked"||E.state==="proceeding"&&y.state==="unblocked",`Invalid blocker state transition: ${E.state} -> ${y.state}`);let L=new Map(v.blockers);L.set(f,y),he({blockers:L})}function Hr({currentLocation:f,nextLocation:y,historyAction:E}){if(ee.size===0)return;ee.size>1&&se(!1,"A router only supports one blocker at a time");let L=Array.from(ee.entries()),[M,j]=L[L.length-1],A=v.blockers.get(M);if(!(A&&A.state==="proceeding")&&j({currentLocation:f,nextLocation:y,historyAction:E}))return M}function Jt(f){let y=Le(404,{pathname:f}),E=s||l,{matches:L,route:M}=Lt(E);return{notFoundMatches:L,route:M,error:y}}function zn(f,y,E){if(R=f,w=y,b=E||null,!P&&v.navigation===Qt){P=!0;let L=Br(v.location,v.matches);L!=null&&he({restoreScrollPosition:L})}return()=>{R=null,w=null,b=null}}function zr(f,y){return b&&b(f,y.map(L=>Ta(L,v.loaderData)))||f.key}function Bn(f,y){if(R&&w){let E=zr(f,y);R[E]=w()}}function Br(f,y){if(R){let E=zr(f,y),L=R[E];if(typeof L=="number")return L}return null}function wt(f,y,E){if(e.patchRoutesOnNavigation)if(f){if(Object.keys(f[0].params).length>0)return{active:!0,matches:ut(y,E,u,!0)}}else return{active:!0,matches:ut(y,E,u,!0)||[]};return{active:!1,matches:null}}async function Et(f,y,E,L){if(!e.patchRoutesOnNavigation)return{type:"success",matches:f};let M=f;for(;;){let j=s==null,A=s||l,H=i;try{await e.patchRoutesOnNavigation({signal:E,path:y,matches:M,fetcherKey:L,patch:(z,N)=>{E.aborted||oa(z,N,A,H,o,!1)}})}catch(z){return{type:"error",error:z,partialMatches:M}}finally{j&&!E.aborted&&(l=[...l])}if(E.aborted)return{type:"aborted"};let k=Ie(A,y,u),O=null;if(k){if(Object.keys(k[0].params).length===0)return{type:"success",matches:k};if(O=ut(A,y,u,!0),!(O&&M.length<O.length&&Wr(M,O.slice(0,M.length))))return{type:"success",matches:k}}if(O||(O=ut(A,y,u,!0)),!O||Wr(M,O))return{type:"success",matches:null};M=O}}function Wr(f,y){return f.length===y.length&&f.every((E,L)=>E.route.id===y[L].route.id)}function Wn(f){i={},s=ft(f,o,void 0,i)}function Yn(f,y,E=!1){let L=s==null;oa(f,y,s||l,i,o,E),L&&(l=[...l],he({}))}return T={get basename(){return u},get future(){return c},get state(){return v},get routes(){return l},get window(){return t},initialize:Wt,subscribe:Dn,enableScrollRestoration:zn,navigate:kr,fetch:An,revalidate:On,createHref:f=>e.history.createHref(f),encodeLocation:f=>e.history.encodeLocation(f),getFetcher:Ar,resetFetcher:jn,deleteFetcher:Un,dispose:_n,getBlocker:Hn,deleteBlocker:Ur,patchRoutes:Yn,_internalFetchControllers:re,_internalSetRoutes:Wn,_internalSetStateDoNotUseOrYouWillBreakYourApp(f){he(f)}},e.unstable_instrumentations&&(T=Mo(T,e.unstable_instrumentations.map(f=>f.router).filter(Boolean))),T}function jo(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function or(e,t,r,a,n,o){let i,l;if(n){i=[];for(let u of t)if(i.push(u),u.route.id===n){l=u;break}}else i=t,l=t[t.length-1];let s=Nt(a||".",gr(i),Se(e.pathname,r)||e.pathname,o==="path");if(a==null&&(s.search=e.search,s.hash=e.hash),(a==null||a===""||a===".")&&l){let u=Er(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=Eo({basename:r,pathname:s.pathname})),Te(s)}function aa(e,t,r){if(!r||!jo(r))return{path:t};if(r.formMethod&&!ni(r.formMethod))return{path:t,error:Le(405,{method:r.formMethod})};let a=()=>({path:t,error:Le(400,{type:"invalid-body"})}),o=(r.formMethod||"get").toUpperCase(),i=Ka(t);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!pe(o))return a();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}
19
+ `,""):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(!pe(o))return a();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 a()}}}V(typeof FormData=="function","FormData is not available in this environment");let l,s;if(r.formData)l=lr(r.formData),s=r.formData;else if(r.body instanceof FormData)l=lr(r.body),s=r.body;else if(r.body instanceof URLSearchParams)l=r.body,s=da(l);else if(r.body==null)l=new URLSearchParams,s=new FormData;else try{l=new URLSearchParams(r.body),s=da(l)}catch{return a()}let u={formMethod:o,formAction:i,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:s,json:void 0,text:void 0};if(pe(u.formMethod))return{path:t,submission:u};let h=_e(t);return e&&h.search&&Er(h.search)&&l.append("index",""),h.search=`?${l}`,{path:Te(h),submission:u}}function na(e,t,r,a,n,o,i,l,s,u,h,c,m,g,R,b,w,P,C,D,I){var ae;let x=D?be(D[1])?D[1].error:D[1].data:void 0,_=n.createURL(o.location),T=n.createURL(s),v;if(h&&o.errors){let K=Object.keys(o.errors)[0];v=i.findIndex(Z=>Z.route.id===K)}else if(D&&be(D[1])){let K=D[0];v=i.findIndex(Z=>Z.route.id===K)-1}let B=D?D[1].statusCode:void 0,U=B&&B>=400,oe={currentUrl:_,currentParams:((ae=o.matches[0])==null?void 0:ae.params)||{},nextUrl:T,nextParams:i[0].params,...l,actionResult:x,actionStatus:B},G=mt(i),ie=i.map((K,Z)=>{let{route:we}=K,re=null;if(v!=null&&Z>v)re=!1;else if(we.lazy)re=!0;else if(!wr(we))re=!1;else if(h){let{shouldLoad:F}=za(we,o.loaderData,o.errors);re=F}else Uo(o.loaderData,o.matches[Z],K)&&(re=!0);if(re!==null)return ir(r,a,e,s,G,K,u,t,re);let de=!1;typeof I=="boolean"?de=I:U?de=!1:(c||_.pathname+_.search===T.pathname+T.search||_.search!==T.search||Ho(o.matches[Z],K))&&(de=!0);let p={...oe,defaultShouldRevalidate:de},S=ct(K,p);return ir(r,a,e,s,G,K,u,t,S,p,I)}),q=[];return R.forEach((K,Z)=>{if(h||!i.some(W=>W.route.id===K.routeId)||g.has(Z))return;let we=o.fetchers.get(Z),re=we&&we.state!=="idle"&&we.data===void 0,de=Ie(w,K.path,P);if(!de){if(C&&re)return;q.push({key:Z,routeId:K.routeId,path:K.path,matches:null,match:null,request:null,controller:null});return}if(b.has(Z))return;let p=_t(de,K.path),S=new AbortController,F=qe(n,K.path,S.signal),$=null;if(m.has(Z))m.delete(Z),$=Ze(r,a,F,K.path,de,p,u,t);else if(re)c&&($=Ze(r,a,F,K.path,de,p,u,t));else{let W;typeof I=="boolean"?W=I:U?W=!1:W=c;let J={...oe,defaultShouldRevalidate:W};ct(p,J)&&($=Ze(r,a,F,K.path,de,p,u,t,J))}$&&q.push({key:Z,routeId:K.routeId,path:K.path,matches:$,match:p,request:F,controller:S})}),{dsMatches:ie,revalidatingFetchers:q}}function wr(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function za(e,t,r){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!wr(e))return{shouldLoad:!1,renderFallback:!1};let a=t!=null&&e.id in t,n=r!=null&&r[e.id]!==void 0;if(!a&&n)return{shouldLoad:!1,renderFallback:!1};if(typeof e.loader=="function"&&e.loader.hydrate===!0)return{shouldLoad:!0,renderFallback:!a};let o=!a&&!n;return{shouldLoad:o,renderFallback:o}}function Uo(e,t,r){let a=!t||r.route.id!==t.route.id,n=!e.hasOwnProperty(r.route.id);return a||n}function Ho(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function ct(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function oa(e,t,r,a,n,o){let i;if(e){let u=a[e];V(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=>Ba(u,c));h?s.push({existingRoute:h,newRoute:u}):l.push(u)}),l.length>0){let u=ft(l,n,[e||"_","patch",String((i==null?void 0:i.length)||"0")],a);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]=ft([c],n,[],{},!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 Ba(e,t){var r;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:((r=e.children)==null?void 0:r.every((a,n)=>{var o;return(o=t.children)==null?void 0:o.some(i=>Ba(a,i))}))??!1:!1}var ia=new WeakMap,Wa=({key:e,route:t,manifest:r,mapRouteProperties:a})=>{let n=r[t.id];if(V(n,"No route found in manifest"),!n.lazy||typeof n.lazy!="object")return;let o=n.lazy[e];if(!o)return;let i=ia.get(n);i||(i={},ia.set(n,i));let l=i[e];if(l)return l;let s=(async()=>{let u=no(e),c=n[e]!==void 0&&e!=="hasErrorBoundary";if(u)se(!u,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),i[e]=Promise.resolve();else if(c)se(!1,`Route "${n.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let m=await o();m!=null&&(Object.assign(n,{[e]:m}),Object.assign(n,a(n)))}typeof n.lazy=="object"&&(n.lazy[e]=void 0,Object.values(n.lazy).every(m=>m===void 0)&&(n.lazy=void 0))})();return i[e]=s,s},la=new WeakMap;function zo(e,t,r,a,n){let o=r[e.id];if(V(o,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy=="function"){let h=la.get(o);if(h)return{lazyRoutePromise:h,lazyHandlerPromise:h};let c=(async()=>{V(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 w=io(R),C=o[R]!==void 0&&R!=="hasErrorBoundary";w?se(!w,"Route property "+R+" is not a supported property to be returned from a lazy route function. This property will be ignored."):C?se(!C,`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,{...a(o),lazy:void 0})})();return la.set(o,c),c.catch(()=>{}),{lazyRoutePromise:c,lazyHandlerPromise:c}}let i=Object.keys(e.lazy),l=[],s;for(let h of i){if(n&&n.includes(h))continue;let c=Wa({key:h,route:e,manifest:r,mapRouteProperties:a});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 sa(e){let t=e.matches.filter(n=>n.shouldLoad),r={};return(await Promise.all(t.map(n=>n.resolve()))).forEach((n,o)=>{r[t[o].route.id]=n}),r}async function Bo(e){return e.matches.some(t=>t.route.middleware)?Ya(e,()=>sa(e)):sa(e)}function Ya(e,t){return Wo(e,t,a=>{if(ai(a))throw a;return a},Zo,r);function r(a,n,o){if(o)return Promise.resolve(Object.assign(o.value,{[n]:{type:"error",result:a}}));{let{matches:i}=e,l=Math.min(Math.max(i.findIndex(u=>u.route.id===n),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:a}})}}}async function Wo(e,t,r,a,n){let{matches:o,...i}=e,l=o.flatMap(u=>u.route.middleware?u.route.middleware.map(h=>[u.route.id,h]):[]);return await Va(i,l,t,r,a,n)}async function Va(e,t,r,a,n,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 Va(e,t,r,a,n,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?a(g):void 0;return n(R)?R:c?R??c.value:(c={value:await m()},c.value)}catch(g){return await o(g,u,c)}}function Ja(e,t,r,a,n){let o=Wa({key:"middleware",route:a.route,manifest:t,mapRouteProperties:e}),i=zo(a.route,pe(r.method)?"action":"loader",t,e,n);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function ir(e,t,r,a,n,o,i,l,s,u=null,h){let c=!1,m=Ja(e,t,r,o,i);return{...o,_lazyPromises:m,shouldLoad:s,shouldRevalidateArgs:u,shouldCallHandler(g){return c=!0,u?typeof h=="boolean"?ct(o,{...u,defaultShouldRevalidate:h}):typeof g=="boolean"?ct(o,{...u,defaultShouldRevalidate:g}):ct(o,u):s},resolve(g){let{lazy:R,loader:b,middleware:w}=o.route,P=c||s||g&&!pe(r.method)&&(R||b),C=w&&w.length>0&&!b&&!R;return P&&(pe(r.method)||!C)?Vo({request:r,path:a,unstable_pattern:n,match:o,lazyHandlerPromise:m==null?void 0:m.handler,lazyRoutePromise:m==null?void 0:m.route,handlerOverride:g,scopedContext:l}):Promise.resolve({type:"data",result:void 0})}}}function Ze(e,t,r,a,n,o,i,l,s=null){return n.map(u=>u.route.id!==o.route.id?{...u,shouldLoad:!1,shouldRevalidateArgs:s,shouldCallHandler:()=>!1,_lazyPromises:Ja(e,t,r,u,i),resolve:()=>Promise.resolve({type:"data",result:void 0})}:ir(e,t,r,a,mt(n),u,i,l,!0,s))}async function Yo(e,t,r,a,n,o,i){a.some(h=>{var c;return(c=h._lazyPromises)==null?void 0:c.middleware})&&await Promise.all(a.map(h=>{var c;return(c=h._lazyPromises)==null?void 0:c.middleware}));let l={request:t,unstable_url:Ga(t,r),unstable_pattern:mt(a),params:a[0].params,context:o,matches:a},u=await e({...l,fetcherKey:n,runClientMiddleware:h=>{let c=l;return Ya(c,()=>h({...c,fetcherKey:n,runClientMiddleware:()=>{throw new Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))}});try{await Promise.all(a.flatMap(h=>{var c,m;return[(c=h._lazyPromises)==null?void 0:c.handler,(m=h._lazyPromises)==null?void 0:m.route]}))}catch{}return u}async function Vo({request:e,path:t,unstable_pattern:r,match:a,lazyHandlerPromise:n,lazyRoutePromise:o,handlerOverride:i,scopedContext:l}){let s,u,h=pe(e.method),c=h?"action":"loader",m=g=>{let R,b=new Promise((C,D)=>R=D);u=()=>R(),e.signal.addEventListener("abort",u);let w=C=>typeof g!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${c}" [routeId: ${a.route.id}]`)):g({request:e,unstable_url:Ga(e,t),unstable_pattern:r,params:a.params,context:l},...C!==void 0?[C]:[]),P=(async()=>{try{return{type:"data",result:await(i?i(D=>w(D)):w())}}catch(C){return{type:"error",result:C}}})();return Promise.race([P,b])};try{let g=h?a.route.action:a.route.loader;if(n||o)if(g){let R,[b]=await Promise.all([m(g).catch(w=>{R=w}),n,o]);if(R!==void 0)throw R;s=b}else{await n;let R=h?a.route.action:a.route.loader;if(R)[s]=await Promise.all([m(R),o]);else if(c==="action"){let b=new URL(e.url),w=b.pathname+b.search;throw Le(405,{method:e.method,pathname:w,routeId:a.route.id})}else return{type:"data",result:void 0}}else if(g)s=await m(g);else{let R=new URL(e.url),b=R.pathname+R.search;throw Le(404,{pathname:b})}}catch(g){return{type:"error",result:g}}finally{u&&e.signal.removeEventListener("abort",u)}return s}async function Jo(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 Go(e){var a,n,o,i,l;let{result:t,type:r}=e;if($t(t)){let s;try{s=await Jo(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"?sr(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:(a=t.init)==null?void 0:a.status,headers:(n=t.init)!=null&&n.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}:sr(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 Ko(e,t,r,a,n){let o=e.headers.get("Location");if(V(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!vr(o)){let i=a.slice(0,a.findIndex(l=>l.route.id===r)+1);o=or(new URL(t.url),i,n,o),e.headers.set("Location",o)}return e}var ua=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function ca(e,t,r,a){if(vr(e)){let n=e,o=n.startsWith("//")?new URL(t.protocol+n):new URL(n);if(ua.includes(o.protocol))throw new Error("Invalid redirect location");let i=Se(o.pathname,r)!=null;if(o.origin===t.origin&&i)return o.pathname+o.search+o.hash}try{let n=a.createURL(e);if(ua.includes(n.protocol))throw new Error("Invalid redirect location")}catch{}return e}function qe(e,t,r,a){let n=e.createURL(Ka(t)).toString(),o={signal:r};if(a&&pe(a.formMethod)){let{formMethod:i,formEncType:l}=a;o.method=i.toUpperCase(),l==="application/json"?(o.headers=new Headers({"Content-Type":l}),o.body=JSON.stringify(a.json)):l==="text/plain"?o.body=a.text:l==="application/x-www-form-urlencoded"&&a.formData?o.body=lr(a.formData):o.body=a.formData}return new Request(n,o)}function Ga(e,t){let r=new URL(e.url),a=typeof t=="string"?_e(t):t;if(r.pathname=a.pathname||"/",a.search){let n=new URLSearchParams(a.search),o=n.getAll("index");n.delete("index");for(let i of o.filter(Boolean))n.append("index",i);r.search=n.size?`?${n.toString()}`:""}else r.search="";return r.hash=a.hash||"",r}function lr(e){let t=new URLSearchParams;for(let[r,a]of e.entries())t.append(r,typeof a=="string"?a:a.name);return t}function da(e){let t=new FormData;for(let[r,a]of e.entries())t.append(r,a);return t}function Xo(e,t,r,a=!1,n=!1){let o={},i=null,l,s=!1,u={},h=r&&be(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(V(!Ye(g),"Cannot handle redirect results in processLoaderData"),be(g)){let R=g.error;if(h!==void 0&&(R=h,h=void 0),i=i||{},n)i[m]=R;else{let b=Ne(e,m);i[b.route.id]==null&&(i[b.route.id]=R)}a||(o[m]=Ha),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 fa(e,t,r,a,n,o){let{loaderData:i,errors:l}=Xo(t,r,a);return n.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(V(m,"Did not find corresponding fetcher result"),be(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))V(!1,"Unhandled fetcher revalidation redirect");else{let g=Fe(m.data);e.fetchers.set(u,g)}}),{loaderData:i,errors:l}}function ha(e,t,r,a){let n=Object.entries(t).filter(([,o])=>o!==Ha).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&&(n[i]=e[i]),a&&a.hasOwnProperty(i))break}return n}function ma(e){return e?be(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Ne(e,t){return(t?e.slice(0,e.findIndex(a=>a.route.id===t)+1):[...e]).reverse().find(a=>a.route.hasErrorBoundary===!0)||e[0]}function Lt(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 Le(e,{pathname:t,routeId:r,method:a,type:n,message:o}={}){let i="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(i="Bad Request",a&&t&&r?l=`You made a ${a} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:n==="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",a&&t&&r?l=`You made a ${a.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:a&&(l=`Invalid request method "${a.toUpperCase()}"`)),new je(e||500,i,new Error(l),!0)}function Ct(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[a,n]=t[r];if(Ye(n))return{key:a,result:n}}}function Ka(e){let t=typeof e=="string"?_e(e):e;return Te({...t,hash:""})}function qo(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 Zo(e){return e!=null&&typeof e=="object"&&Object.entries(e).every(([t,r])=>typeof t=="string"&&ei(r))}function ei(e){return e!=null&&typeof e=="object"&&"type"in e&&"result"in e&&(e.type==="data"||e.type==="error")}function ti(e){return $t(e.result)&&$a.has(e.result.status)}function be(e){return e.type==="error"}function Ye(e){return(e&&e.type)==="redirect"}function sr(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function $t(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function ri(e){return $a.has(e)}function ai(e){return $t(e)&&ri(e.status)&&e.headers.has("Location")}function ni(e){return Ao.has(e.toUpperCase())}function pe(e){return Fo.has(e.toUpperCase())}function Er(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function _t(e,t){let r=typeof t=="string"?_e(t).search:t.search;if(e[e.length-1].route.index&&Er(r||""))return e[e.length-1];let a=ka(e);return a[a.length-1]}function pa(e){let{formMethod:t,formAction:r,formEncType:a,text:n,formData:o,json:i}=e;if(!(!t||!r||!a)){if(n!=null)return{formMethod:t,formAction:r,formEncType:a,formData:void 0,json:void 0,text:n};if(o!=null)return{formMethod:t,formAction:r,formEncType:a,formData:o,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:r,formEncType:a,formData:void 0,json:i,text:void 0}}}function Zt(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 oi(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 it(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 ii(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 Fe(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 li(e,t){try{let r=e.sessionStorage.getItem(Ua);if(r){let a=JSON.parse(r);for(let[n,o]of Object.entries(a||{}))o&&Array.isArray(o)&&t.set(n,new Set(o||[]))}}catch{}}function si(e,t){if(t.size>0){let r={};for(let[a,n]of t)r[a]=[...n];try{e.sessionStorage.setItem(Ua,JSON.stringify(r))}catch(a){se(!1,`Failed to save applied view transitions in sessionStorage (${a}).`)}}}function ya(){let e,t,r=new Promise((a,n)=>{e=async o=>{a(o);try{await r}catch{}},t=async o=>{n(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}var Je=d.createContext(null);Je.displayName="DataRouter";var et=d.createContext(null);et.displayName="DataRouterState";var Xa=d.createContext(!1);function qa(){return d.useContext(Xa)}var Rr=d.createContext({isTransitioning:!1});Rr.displayName="ViewTransition";var br=d.createContext(new Map);br.displayName="Fetchers";var ui=d.createContext(null);ui.displayName="Await";var Ee=d.createContext(null);Ee.displayName="Navigation";var jt=d.createContext(null);jt.displayName="Location";var Ce=d.createContext({outlet:null,matches:[],isDataRoute:!1});Ce.displayName="Route";var Sr=d.createContext(null);Sr.displayName="RouteError";var Qa="REACT_ROUTER_ERROR",ci="REDIRECT",di="ROUTE_ERROR_RESPONSE";function fi(e){if(e.startsWith(`${Qa}:${ci}:{`))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 hi(e){if(e.startsWith(`${Qa}:${di}:{`))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 mi(e,{relative:t}={}){V(pt(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:a}=d.useContext(Ee),{hash:n,pathname:o,search:i}=yt(e,{relative:t}),l=o;return r!=="/"&&(l=o==="/"?r:Pe([r,o])),a.createHref({pathname:l,search:i,hash:n})}function pt(){return d.useContext(jt)!=null}function xe(){return V(pt(),"useLocation() may be used only in the context of a <Router> component."),d.useContext(jt).location}var Za="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function en(e){d.useContext(Ee).static||d.useLayoutEffect(e)}function tn(){let{isDataRoute:e}=d.useContext(Ce);return e?Pi():pi()}function pi(){V(pt(),"useNavigate() may be used only in the context of a <Router> component.");let e=d.useContext(Je),{basename:t,navigator:r}=d.useContext(Ee),{matches:a}=d.useContext(Ce),{pathname:n}=xe(),o=JSON.stringify(gr(a)),i=d.useRef(!1);return en(()=>{i.current=!0}),d.useCallback((s,u={})=>{if(se(i.current,Za),!i.current)return;if(typeof s=="number"){r.go(s);return}let h=Nt(s,JSON.parse(o),n,u.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:Pe([t,h.pathname])),(u.replace?r.replace:r.push)(h,u.state,u)},[t,r,o,n,e])}var yi=d.createContext(null);function vi(e){let t=d.useContext(Ce).outlet;return d.useMemo(()=>t&&d.createElement(yi.Provider,{value:e},t),[t,e])}function rn(){let{matches:e}=d.useContext(Ce),t=e[e.length-1];return t?t.params:{}}function yt(e,{relative:t}={}){let{matches:r}=d.useContext(Ce),{pathname:a}=xe(),n=JSON.stringify(gr(r));return d.useMemo(()=>Nt(e,JSON.parse(n),a,t==="path"),[e,n,a,t])}function gi(e,t,r){V(pt(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:a}=d.useContext(Ee),{matches:n}=d.useContext(Ce),o=n[n.length-1],i=o?o.params:{},l=o?o.pathname:"/",s=o?o.pathnameBase:"/",u=o&&o.route;{let w=u&&u.path||"";sn(l,!u||w.endsWith("*")||w.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${l}" (under <Route path="${w}">) 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.
20
+
21
+ Please change the parent <Route path="${w}"> to <Route path="${w==="/"?"*":`${w}/*`}">.`)}let h=xe(),c;c=h;let m=c.pathname||"/",g=m;if(s!=="/"){let w=s.replace(/^\//,"").split("/");g="/"+m.replace(/^\//,"").split("/").slice(w.length).join("/")}let R=Ie(e,{pathname:g});return se(u||R!=null,`No routes matched location "${c.pathname}${c.search}${c.hash}" `),se(R==null||R[R.length-1].route.element!==void 0||R[R.length-1].route.Component!==void 0||R[R.length-1].route.lazy!==void 0,`Matched leaf route at location "${c.pathname}${c.search}${c.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(R&&R.map(w=>Object.assign({},w,{params:Object.assign({},i,w.params),pathname:Pe([s,a.encodeLocation?a.encodeLocation(w.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?s:Pe([s,a.encodeLocation?a.encodeLocation(w.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathnameBase])})),n,r)}function wi(){let e=xr(),t=Ve(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a="rgba(200,200,200, 0.5)",n={padding:"0.5rem",backgroundColor:a},o={padding:"2px 4px",backgroundColor:a},i=null;return console.error("Error handled by React Router default ErrorBoundary:",e),i=d.createElement(d.Fragment,null,d.createElement("p",null,"💿 Hey developer 👋"),d.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",d.createElement("code",{style:o},"ErrorBoundary")," or"," ",d.createElement("code",{style:o},"errorElement")," prop on your route.")),d.createElement(d.Fragment,null,d.createElement("h2",null,"Unexpected Application Error!"),d.createElement("h3",{style:{fontStyle:"italic"}},t),r?d.createElement("pre",{style:n},r):null,i)}var Ei=d.createElement(wi,null),an=class extends d.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=hi(e.digest);r&&(e=r)}let t=e!==void 0?d.createElement(Ce.Provider,{value:this.props.routeContext},d.createElement(Sr.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?d.createElement(Ri,{error:e},t):t}};an.contextType=Xa;var er=new WeakMap;function Ri({children:e,error:t}){let{basename:r}=d.useContext(Ee);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let a=fi(t.digest);if(a){let n=er.get(t);if(n)throw n;let o=Ia(a.location,r);if(Fa&&!er.get(t))if(o.isExternal||a.reloadDocument)window.location.href=o.absoluteURL||o.to;else{const i=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(o.to,{replace:a.replace}));throw er.set(t,i),i}return d.createElement("meta",{httpEquiv:"refresh",content:`0;url=${o.absoluteURL||o.to}`})}}return e}function bi({routeContext:e,match:t,children:r}){let a=d.useContext(Je);return a&&a.static&&a.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=t.route.id),d.createElement(Ce.Provider,{value:e},r)}function Si(e,t=[],r){let a=r==null?void 0:r.state;if(e==null){if(!a)return null;if(a.errors)e=a.matches;else if(t.length===0&&!a.initialized&&a.matches.length>0)e=a.matches;else return null}let n=e,o=a==null?void 0:a.errors;if(o!=null){let h=n.findIndex(c=>c.route.id&&(o==null?void 0:o[c.route.id])!==void 0);V(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),n=n.slice(0,Math.min(n.length,h+1))}let i=!1,l=-1;if(r&&a){i=a.renderFallback;for(let h=0;h<n.length;h++){let c=n[h];if((c.route.HydrateFallback||c.route.hydrateFallbackElement)&&(l=h),c.route.id){let{loaderData:m,errors:g}=a,R=c.route.loader&&!m.hasOwnProperty(c.route.id)&&(!g||g[c.route.id]===void 0);if(c.route.lazy||R){r.isStatic&&(i=!0),l>=0?n=n.slice(0,l+1):n=[n[0]];break}}}}let s=r==null?void 0:r.onError,u=a&&s?(h,c)=>{var m,g;s(h,{location:a.location,params:((g=(m=a.matches)==null?void 0:m[0])==null?void 0:g.params)??{},unstable_pattern:mt(a.matches),errorInfo:c})}:void 0;return n.reduceRight((h,c,m)=>{let g,R=!1,b=null,w=null;a&&(g=o&&c.route.id?o[c.route.id]:void 0,b=c.route.errorElement||Ei,i&&(l<0&&m===0?(sn("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),R=!0,w=null):l===m&&(R=!0,w=c.route.hydrateFallbackElement||null)));let P=t.concat(n.slice(0,m+1)),C=()=>{let D;return g?D=b:R?D=w:c.route.Component?D=d.createElement(c.route.Component,null):c.route.element?D=c.route.element:D=h,d.createElement(bi,{match:c,routeContext:{outlet:h,matches:P,isDataRoute:a!=null},children:D})};return a&&(c.route.ErrorBoundary||c.route.errorElement||m===0)?d.createElement(an,{location:a.location,revalidation:a.revalidation,component:b,error:g,children:C(),routeContext:{outlet:null,matches:P,isDataRoute:!0},onError:u}):C()},null)}function Lr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function nn(e){let t=d.useContext(Je);return V(t,Lr(e)),t}function Ge(e){let t=d.useContext(et);return V(t,Lr(e)),t}function Li(e){let t=d.useContext(Ce);return V(t,Lr(e)),t}function vt(e){let t=Li(e),r=t.matches[t.matches.length-1];return V(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}function Ci(){return vt("useRouteId")}function xi(){return Ge("useNavigation").navigation}function ds(){let e=nn("useRevalidator"),t=Ge("useRevalidator"),r=d.useCallback(async()=>{await e.router.revalidate()},[e.router]);return d.useMemo(()=>({revalidate:r,state:t.revalidation}),[r,t.revalidation])}function Cr(){let{matches:e,loaderData:t}=Ge("useMatches");return d.useMemo(()=>e.map(r=>Ta(r,t)),[e,t])}function on(){let e=Ge("useLoaderData"),t=vt("useLoaderData");return e.loaderData[t]}function fs(e){return Ge("useRouteLoaderData").loaderData[e]}function ln(){let e=Ge("useActionData"),t=vt("useLoaderData");return e.actionData?e.actionData[t]:void 0}function xr(){var a;let e=d.useContext(Sr),t=Ge("useRouteError"),r=vt("useRouteError");return e!==void 0?e:(a=t.errors)==null?void 0:a[r]}function Pi(){let{router:e}=nn("useNavigate"),t=vt("useNavigate"),r=d.useRef(!1);return en(()=>{r.current=!0}),d.useCallback(async(n,o={})=>{se(r.current,Za),r.current&&(typeof n=="number"?await e.navigate(n):await e.navigate(n,{fromRouteId:t,...o}))},[e,t])}var va={};function sn(e,t,r){!t&&!va[e]&&(va[e]=!0,se(!1,r))}var ga={};function ur(e,t){!e&&!ga[t]&&(ga[t]=!0,console.warn(t))}var Ti="useOptimistic",wa=Qn[Ti],Mi=()=>{};function _i(e){return wa?wa(e):[e,Mi]}function hs(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&se(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:d.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&se(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:d.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&se(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:d.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var ms=["HydrateFallback","hydrateFallbackElement"],Di=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 ps({router:e,flushSync:t,onError:r,unstable_useTransitions:a}){a=qa()||a;let[o,i]=d.useState(e.state),[l,s]=_i(o),[u,h]=d.useState(),[c,m]=d.useState({isTransitioning:!1}),[g,R]=d.useState(),[b,w]=d.useState(),[P,C]=d.useState(),D=d.useRef(new Map),I=d.useCallback((v,{deletedFetchers:B,newErrors:U,flushSync:oe,viewTransitionOpts:G})=>{U&&r&&Object.values(U).forEach(q=>{var ae;return r(q,{location:v.location,params:((ae=v.matches[0])==null?void 0:ae.params)??{},unstable_pattern:mt(v.matches)})}),v.fetchers.forEach((q,ae)=>{q.data!==void 0&&D.current.set(ae,q.data)}),B.forEach(q=>D.current.delete(q)),ur(oe===!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 ie=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition=="function";if(ur(G==null||ie,"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."),!G||!ie){t&&oe?t(()=>i(v)):a===!1?i(v):d.startTransition(()=>{a===!0&&s(q=>Ea(q,v)),i(v)});return}if(t&&oe){t(()=>{b&&(g==null||g.resolve(),b.skipTransition()),m({isTransitioning:!0,flushSync:!0,currentLocation:G.currentLocation,nextLocation:G.nextLocation})});let q=e.window.document.startViewTransition(()=>{t(()=>i(v))});q.finished.finally(()=>{t(()=>{R(void 0),w(void 0),h(void 0),m({isTransitioning:!1})})}),t(()=>w(q));return}b?(g==null||g.resolve(),b.skipTransition(),C({state:v,currentLocation:G.currentLocation,nextLocation:G.nextLocation})):(h(v),m({isTransitioning:!0,flushSync:!1,currentLocation:G.currentLocation,nextLocation:G.nextLocation}))},[e.window,t,b,g,a,s,r]);d.useLayoutEffect(()=>e.subscribe(I),[e,I]),d.useEffect(()=>{c.isTransitioning&&!c.flushSync&&R(new Di)},[c]),d.useEffect(()=>{if(g&&u&&e.window){let v=u,B=g.promise,U=e.window.document.startViewTransition(async()=>{a===!1?i(v):d.startTransition(()=>{a===!0&&s(oe=>Ea(oe,v)),i(v)}),await B});U.finished.finally(()=>{R(void 0),w(void 0),h(void 0),m({isTransitioning:!1})}),w(U)}},[u,g,e.window,a,s]),d.useEffect(()=>{g&&u&&l.location.key===u.location.key&&g.resolve()},[g,b,l.location,u]),d.useEffect(()=>{!c.isTransitioning&&P&&(h(P.state),m({isTransitioning:!0,flushSync:!1,currentLocation:P.currentLocation,nextLocation:P.nextLocation}),C(void 0))},[c.isTransitioning,P]);let x=d.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:v=>e.navigate(v),push:(v,B,U)=>e.navigate(v,{state:B,preventScrollReset:U==null?void 0:U.preventScrollReset}),replace:(v,B,U)=>e.navigate(v,{replace:!0,state:B,preventScrollReset:U==null?void 0:U.preventScrollReset})}),[e]),_=e.basename||"/",T=d.useMemo(()=>({router:e,navigator:x,static:!1,basename:_,onError:r}),[e,x,_,r]);return d.createElement(d.Fragment,null,d.createElement(Je.Provider,{value:T},d.createElement(et.Provider,{value:l},d.createElement(br.Provider,{value:D.current},d.createElement(Rr.Provider,{value:c},d.createElement(Fi,{basename:_,location:l.location,navigationType:l.historyAction,navigator:x,unstable_useTransitions:a},d.createElement(Oi,{routes:e.routes,future:e.future,state:l,isStatic:!1,onError:r})))))),null)}function Ea(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 Oi=d.memo(ki);function ki({routes:e,future:t,state:r,isStatic:a,onError:n}){return gi(e,void 0,{state:r,isStatic:a,onError:n})}function ys(e){return vi(e.context)}function Fi({basename:e="/",children:t=null,location:r,navigationType:a="POP",navigator:n,static:o=!1,unstable_useTransitions:i}){V(!pt(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),s=d.useMemo(()=>({basename:l,navigator:n,static:o,unstable_useTransitions:i,future:{}}),[l,n,o,i]);typeof r=="string"&&(r=_e(r));let{pathname:u="/",search:h="",hash:c="",state:m=null,key:g="default",unstable_mask:R}=r,b=d.useMemo(()=>{let w=Se(u,l);return w==null?null:{location:{pathname:w,search:h,hash:c,state:m,key:g,unstable_mask:R},navigationType:a}},[l,u,h,c,m,g,a,R]);return se(b!=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.`),b==null?null:d.createElement(Ee.Provider,{value:s},d.createElement(jt.Provider,{children:t,value:b}))}function Ii(){return{params:rn(),loaderData:on(),actionData:ln(),matches:Cr()}}function vs(e){return function(){const r=Ii();return d.createElement(e,r)}}function Ai(){return{params:rn(),loaderData:on(),actionData:ln(),error:xr()}}function gs(e){return function(){const r=Ai();return d.createElement(e,r)}}var Dt="get",Ot="application/x-www-form-urlencoded";function Ut(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function Ni(e){return Ut(e)&&e.tagName.toLowerCase()==="button"}function $i(e){return Ut(e)&&e.tagName.toLowerCase()==="form"}function ji(e){return Ut(e)&&e.tagName.toLowerCase()==="input"}function Ui(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Hi(e,t){return e.button===0&&(!t||t==="_self")&&!Ui(e)}function cr(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let a=e[r];return t.concat(Array.isArray(a)?a.map(n=>[r,n]):[[r,a]])},[]))}function zi(e,t){let r=cr(e);return t&&t.forEach((a,n)=>{r.has(n)||t.getAll(n).forEach(o=>{r.append(n,o)})}),r}var xt=null;function Bi(){if(xt===null)try{new FormData(document.createElement("form"),0),xt=!1}catch{xt=!0}return xt}var Wi=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function tr(e){return e!=null&&!Wi.has(e)?(se(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Ot}"`),null):e}function Yi(e,t){let r,a,n,o,i;if($i(e)){let l=e.getAttribute("action");a=l?Se(l,t):null,r=e.getAttribute("method")||Dt,n=tr(e.getAttribute("enctype"))||Ot,o=new FormData(e)}else if(Ni(e)||ji(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||l.getAttribute("action");if(a=s?Se(s,t):null,r=e.getAttribute("formmethod")||l.getAttribute("method")||Dt,n=tr(e.getAttribute("formenctype"))||tr(l.getAttribute("enctype"))||Ot,o=new FormData(l,e),!Bi()){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=Dt,a=null,n=Ot,i=e}return o&&n==="text/plain"&&(i=o,o=void 0),{action:a,method:r.toLowerCase(),encType:n,formData:o,body:i}}var Vi=-1,Ji=-2,Gi=-3,Ki=-4,Xi=-5,qi=-6,Qi=-7,Zi="B",el="D",un="E",tl="M",rl="N",cn="P",al="R",nl="S",ol="Y",il="U",ll="Z",dn=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function sl(){const e=new TextDecoder;let t="";return new TransformStream({transform(r,a){const n=e.decode(r,{stream:!0}),o=(t+n).split(`
22
+ `);t=o.pop()||"";for(const i of o)a.enqueue(i)},flush(r){t&&r.enqueue(t)}})}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var rr=typeof window<"u"?window:typeof globalThis<"u"?globalThis:void 0;function dr(e){const{hydrated:t,values:r}=this;if(typeof e=="number")return Ra.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;const a=r.length;for(const n of e)r.push(n);return t.length=r.length,Ra.call(this,a)}function Ra(e){const{hydrated:t,values:r,deferred:a,plugins:n}=this;let o;const i=[[e,s=>{o=s}]];let l=[];for(;i.length>0;){const[s,u]=i.pop();switch(s){case Qi:u(void 0);continue;case Xi:u(null);continue;case Ji:u(NaN);continue;case qi:u(1/0);continue;case Gi:u(-1/0);continue;case Ki:u(-0);continue}if(t[s]){u(t[s]);continue}const h=r[s];if(!h||typeof h!="object"){t[s]=h,u(h);continue}if(Array.isArray(h))if(typeof h[0]=="string"){const[c,m,g]=h;switch(c){case el:u(t[s]=new Date(m));continue;case il:u(t[s]=new URL(m));continue;case Zi:u(t[s]=BigInt(m));continue;case al:u(t[s]=new RegExp(m,g));continue;case ol:u(t[s]=Symbol.for(m));continue;case nl:const R=new Set;t[s]=R;for(let I=h.length-1;I>0;I--)i.push([h[I],x=>{R.add(x)}]);u(R);continue;case tl:const b=new Map;t[s]=b;for(let I=h.length-2;I>0;I-=2){const x=[];i.push([h[I+1],_=>{x[1]=_}]),i.push([h[I],_=>{x[0]=_}]),l.push(()=>{b.set(x[0],x[1])})}u(b);continue;case rl:const w=Object.create(null);t[s]=w;for(const I of Object.keys(m).reverse()){const x=[];i.push([m[I],_=>{x[1]=_}]),i.push([Number(I.slice(1)),_=>{x[0]=_}]),l.push(()=>{w[x[0]]=x[1]})}u(w);continue;case cn:if(t[m])u(t[s]=t[m]);else{const I=new dn;a[m]=I,u(t[s]=I.promise)}continue;case un:const[,P,C]=h;let D=C&&rr&&rr[C]?new rr[C](P):new Error(P);t[s]=D,u(D);continue;case ll:u(t[s]=t[m]);continue;default:if(Array.isArray(n)){const I=[],x=h.slice(1);for(let _=0;_<x.length;_++){const T=x[_];i.push([T,v=>{I[_]=v}])}l.push(()=>{for(const _ of n){const T=_(h[0],...I);if(T){u(t[s]=T.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!==Vi&&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 ul(e,t){const{plugins:r}=t??{},a=new dn,n=e.pipeThrough(sl()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:r},i=await cl.call(o,n);let l=a.promise;return i.done?a.resolve():l=dl.call(o,n).then(a.resolve).catch(s=>{for(const u of Object.values(o.deferred))u.reject(s);a.reject(s)}),{done:l.then(()=>n.closed),value:i.value}}async function cl(e){const t=await e.read();if(!t.value)throw new SyntaxError;let r;try{r=JSON.parse(t.value)}catch{throw new SyntaxError}return{done:t.done,value:dr.call(this,r)}}async function dl(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;const r=t.value;switch(r[0]){case cn:{const a=r.indexOf(":"),n=Number(r.slice(1,a)),o=this.deferred[n];if(!o)throw new Error(`Deferred ID ${n} not found in stream`);const i=r.slice(a+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=dr.call(this,l);o.resolve(s);break}case un:{const a=r.indexOf(":"),n=Number(r.slice(1,a)),o=this.deferred[n];if(!o)throw new Error(`Deferred ID ${n} not found in stream`);const i=r.slice(a+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=dr.call(this,l);o.reject(s);break}default:throw new SyntaxError}t=await e.read()}}async function fl(e){let t={signal:e.signal};if(e.method!=="GET"){t.method=e.method;let r=e.headers.get("Content-Type");r&&/\bapplication\/json\b/.test(r)?(t.headers={"Content-Type":r},t.body=JSON.stringify(await e.json())):r&&/\btext\/plain\b/.test(r)?(t.headers={"Content-Type":r},t.body=await e.text()):r&&/\bapplication\/x-www-form-urlencoded\b/.test(r)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}var hl={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},ml=/[&><\u2028\u2029]/g;function fr(e){return e.replace(ml,t=>hl[t])}function ge(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}var hr=Symbol("SingleFetchRedirect"),fn=class extends Error{},pl=202,yl=new Set([100,101,204,205]);function ws(e,t,r,a,n,o){let i=vl(e,l=>{let s=t.routes[l.route.id];ge(s,"Route not found in manifest");let u=r[l.route.id];return{hasLoader:s.hasLoader,hasClientLoader:s.hasClientLoader,hasShouldRevalidate:!!(u!=null&&u.shouldRevalidate)}},Ll,a,n,o);return async l=>l.runClientMiddleware(i)}function vl(e,t,r,a,n,o,i=()=>!0){return async l=>{let{request:s,matches:u,fetcherKey:h}=l,c=e();if(s.method!=="GET")return gl(l,r,n,o);let m=u.some(g=>{let{hasLoader:R,hasClientLoader:b}=t(g);return g.shouldCallHandler()&&R&&!b});return!a&&!m?wl(l,t,r,n,o):h?bl(l,r,n,o):El(l,c,t,r,a,n,o,i)}}async function gl(e,t,r,a){let n=e.matches.find(l=>l.shouldCallHandler());ge(n,"No action match found");let o,i=await n.resolve(async l=>await l(async()=>{let{data:u,status:h}=await t(e,r,a,[n.route.id]);return o=h,ht(u,n.route.id)}));return $t(i.result)||Ve(i.result)||sr(i.result)?{[n.route.id]:i}:{[n.route.id]:{type:i.type,result:xo(i.result,o)}}}async function wl(e,t,r,a,n){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,a,n,[h]);return ht(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 El(e,t,r,a,n,o,i,l=()=>!0){let s=new Set,u=!1,h=e.matches.map(()=>ba()),c=ba(),m={},g=Promise.all(e.matches.map(async(b,w)=>b.resolve(async P=>{h[w].resolve();let C=b.route.id,{hasLoader:D,hasClientLoader:I,hasShouldRevalidate:x}=r(b),_=!b.shouldRevalidateArgs||b.shouldRevalidateArgs.actionStatus==null||b.shouldRevalidateArgs.actionStatus<400;if(!b.shouldCallHandler(_)){u||(u=b.shouldRevalidateArgs!=null&&D&&x===!0);return}if(l(b)&&I){D&&(u=!0);try{let v=await P(async()=>{let{data:B}=await a(e,o,i,[C]);return ht(B,C)});m[C]={type:"data",result:v}}catch(v){m[C]={type:"error",result:v}}return}D&&s.add(C);try{let v=await P(async()=>{let B=await c.promise;return ht(B,C)});m[C]={type:"data",result:v}}catch(v){m[C]={type:"error",result:v}}})));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=n&&u&&s.size>0?[...s.keys()]:void 0;try{let w=await a(e,o,i,b);c.resolve(w.data)}catch(w){c.reject(w)}}return await g,await Rl(c.promise,e.matches,s,m),m}async function Rl(e,t,r,a){var n;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,((n=a[l.route.id])==null?void 0:n.result)==null&&(a[l.route.id]={type:"error",result:o});break}}}o!==void 0&&Array.from(r.values()).forEach(l=>{a[l].result instanceof fn&&(a[l].result=o)})}catch{}}async function bl(e,t,r,a){let n=e.matches.find(l=>l.shouldCallHandler());ge(n,"No fetcher match found");let o=n.route.id,i=await n.resolve(async l=>l(async()=>{let{data:s}=await t(e,r,a,[o]);return ht(s,o)}));return{[n.route.id]:i}}function Sl(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let a of t)a&&r.push(a);for(let a of r)e.searchParams.append("index",a);return e}function hn(e,t,r,a){let n=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return r?n.pathname.endsWith("/")?n.pathname=`${n.pathname}_.${a}`:n.pathname=`${n.pathname}.${a}`:n.pathname==="/"?n.pathname=`_root.${a}`:t&&Se(n.pathname,t)==="/"?n.pathname=`${t.replace(/\/$/,"")}/_root.${a}`:n.pathname=`${n.pathname.replace(/\/$/,"")}.${a}`,n}async function Ll(e,t,r,a){let{request:n}=e,o=hn(n.url,t,r,"data");n.method==="GET"&&(o=Sl(o),a&&o.searchParams.set("_routes",a.join(",")));let i=await fetch(o,await fl(n));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:pl,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(yl.has(i.status)){let l={};return a&&n.method!=="GET"&&(l[a[0]]={data:void 0}),{status:i.status,data:{routes:l}}}ge(i.body,"No response body to decode");try{let l=await Cl(i.body,window),s;if(n.method==="GET"){let u=l.value;hr in u?s={redirect:u[hr]}:s={routes:u}}else{let u=l.value,h=a==null?void 0:a[0];ge(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 Cl(e,t){return ul(e,{plugins:[(r,...a)=>{if(r==="SanitizedError"){let[n,o,i]=a,l=Error;n&&n in t&&typeof t[n]=="function"&&(l=t[n]);let s=new l(o);return s.stack=i,{value:s}}if(r==="ErrorResponse"){let[n,o,i]=a;return{value:new je(o,i,n)}}if(r==="SingleFetchRedirect")return{value:{[hr]:a[0]}};if(r==="SingleFetchClassInstance")return{value:a[0]};if(r==="SingleFetchFallback")return{value:void 0}}]})}function ht(e,t){if("redirect"in e){let{redirect:a,revalidate:n,reload:o,replace:i,status:l}=e.redirect;throw Po(a,{status:l,headers:{...n?{"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 fn(`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 ba(){let e,t,r=new Promise((a,n)=>{e=async o=>{a(o);try{await r}catch{}},t=async o=>{n(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}async function mn(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 xl(e,t,r){let a=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),n=Tr(e,r);return gn(a,n)}function pn(e){return e.css?e.css.map(t=>({rel:"stylesheet",href:t})):[]}async function Pl(e){if(!e.css)return;let t=pn(e);await Promise.all(t.map(vn))}async function yn(e,t){if(!e.css&&!t.links||!Ol())return;let r=[];if(e.css&&r.push(...pn(e)),t.links&&r.push(...t.links()),r.length===0)return;let a=[];for(let n of r)!Pr(n)&&n.rel==="stylesheet"&&a.push({...n,rel:"preload",as:"style"});await Promise.all(a.map(vn))}async function vn(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 a(){document.head.contains(r)&&document.head.removeChild(r)}r.onload=()=>{a(),t()},r.onerror=()=>{a(),t()},document.head.appendChild(r)})}function Pr(e){return e!=null&&typeof e.page=="string"}function Tl(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 Ml(e,t,r){let a=await Promise.all(e.map(async n=>{let o=t.routes[n.route.id];if(o){let i=await mn(o,r);return i.links?i.links():[]}return[]}));return gn(a.flat(1).filter(Tl).filter(n=>n.rel==="stylesheet"||n.rel==="preload").map(n=>n.rel==="stylesheet"?{...n,rel:"prefetch",as:"style"}:{...n,rel:"prefetch"}))}function Sa(e,t,r,a,n,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=a.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(n.pathname+n.search+n.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 Tr(e,t,{includeHydrateFallback:r}={}){return _l(e.map(a=>{let n=t.routes[a.route.id];if(!n)return[];let o=[n.module];return n.clientActionModule&&(o=o.concat(n.clientActionModule)),n.clientLoaderModule&&(o=o.concat(n.clientLoaderModule)),r&&n.hydrateFallbackModule&&(o=o.concat(n.hydrateFallbackModule)),n.imports&&(o=o.concat(n.imports)),o}).flat(1))}function _l(e){return[...new Set(e)]}function Dl(e){let t={},r=Object.keys(e).sort();for(let a of r)t[a]=e[a];return t}function gn(e,t){let r=new Set,a=new Set(t);return e.reduce((n,o)=>{if(t&&!Pr(o)&&o.as==="script"&&o.href&&a.has(o.href))return n;let l=JSON.stringify(Dl(o));return r.has(l)||(r.add(l),n.push({key:l,link:o})),n},[])}var Pt;function Ol(){if(Pt!==void 0)return Pt;let e=document.createElement("link");return Pt=e.relList.supports("preload"),e=null,Pt}function kl(){return d.createElement(mr,{title:"Loading...",renderScripts:!0},d.createElement("script",{dangerouslySetInnerHTML:{__html:`
23
+ console.log(
24
+ "💿 Hey developer 👋. You can provide a way better UX than this " +
25
+ "when your app is loading JS modules and/or running \`clientLoader\` " +
26
+ "functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback " +
27
+ "for more information."
28
+ );
29
+ `}}))}function wn(e){let t={};return Object.values(e).forEach(r=>{if(r){let a=r.parentId||"";t[a]||(t[a]=[]),t[a].push(r)}}),t}function Fl(e,t,r){let a=En(t),n=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?kl:void 0,o=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>d.createElement(Sn,{error:xr()}):void 0;return e.id==="root"&&t.Layout?{...a?{element:d.createElement(t.Layout,null,d.createElement(a,null))}:{Component:a},...o?{errorElement:d.createElement(t.Layout,null,d.createElement(o,null))}:{ErrorBoundary:o},...n?{hydrateFallbackElement:d.createElement(t.Layout,null,d.createElement(n,null))}:{HydrateFallback:n}}:{Component:a,ErrorBoundary:o,HydrateFallback:n}}function Es(e,t,r,a,n,o){return Mr(t,r,a,n,o,"",wn(t),e)}function Tt(e,t){if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction){let a=`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(a),new je(400,"Bad Request",new Error(a),!0)}}function ar(e,t){let r=e==="clientAction"?"a":"an",a=`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(a),new je(405,"Method Not Allowed",new Error(a),!0)}function Mr(e,t,r,a,n,o="",i=wn(e),l){return(i[o]||[]).map(s=>{var C,D,I;let u=t[s.id];function h(x){return ge(typeof x=="function","No single fetch function available for route handler"),x()}function c(x){return s.hasLoader?h(x):Promise.resolve(null)}function m(x){if(!s.hasAction)throw ar("action",s.id);return h(x)}function g(x){import(x)}function R(x){x.clientActionModule&&g(x.clientActionModule),x.clientLoaderModule&&g(x.clientLoaderModule)}async function b(x){let _=t[s.id],T=_?yn(s,_):Promise.resolve();try{return x()}finally{await T}}let w={id:s.id,index:s.index,path:s.path};if(u){Object.assign(w,{...w,...Fl(s,u,n),middleware:u.clientMiddleware,handle:u.handle,shouldRevalidate:La(w.path,u,s,a,l)});let x=r&&r.loaderData&&s.id in r.loaderData,_=x?(C=r==null?void 0:r.loaderData)==null?void 0:C[s.id]:void 0,T=r&&r.errors&&s.id in r.errors,v=T?(D=r==null?void 0:r.errors)==null?void 0:D[s.id]:void 0,B=l==null&&(((I=u.clientLoader)==null?void 0:I.hydrate)===!0||!s.hasLoader);w.loader=async({request:U,params:oe,context:G,unstable_pattern:ie,unstable_url:q},ae)=>{try{return await b(async()=>(ge(u,"No `routeModule` available for critical-route loader"),u.clientLoader?u.clientLoader({request:U,params:oe,context:G,unstable_pattern:ie,unstable_url:q,async serverLoader(){if(Tt("loader",s),B){if(x)return _;if(T)throw v}return c(ae)}}):c(ae)))}finally{B=!1}},w.loader.hydrate=Nl(s.id,u.clientLoader,s.hasLoader,n),w.action=({request:U,params:oe,context:G,unstable_pattern:ie,unstable_url:q},ae)=>b(async()=>{if(ge(u,"No `routeModule` available for critical-route action"),!u.clientAction){if(n)throw ar("clientAction",s.id);return m(ae)}return u.clientAction({request:U,params:oe,context:G,unstable_pattern:ie,unstable_url:q,async serverAction(){return Tt("action",s),m(ae)}})})}else{s.hasClientLoader||(w.loader=(T,v)=>b(()=>c(v))),s.hasClientAction||(w.action=(T,v)=>b(()=>{if(n)throw ar("clientAction",s.id);return m(v)}));let x;async function _(){return x?await x:(x=(async()=>{(s.clientLoaderModule||s.clientActionModule)&&await new Promise(v=>setTimeout(v,0));let T=Al(s,t);return R(s),await T})(),await x)}w.lazy={loader:s.hasClientLoader?async()=>{let{clientLoader:T}=s.clientLoaderModule?await import(s.clientLoaderModule):await _();return ge(T,"No `clientLoader` export found"),(v,B)=>T({...v,async serverLoader(){return Tt("loader",s),c(B)}})}:void 0,action:s.hasClientAction?async()=>{let T=s.clientActionModule?import(s.clientActionModule):_();R(s);let{clientAction:v}=await T;return ge(v,"No `clientAction` export found"),(B,U)=>v({...B,async serverAction(){return Tt("action",s),m(U)}})}:void 0,middleware:s.hasClientMiddleware?async()=>{let{clientMiddleware:T}=s.clientMiddlewareModule?await import(s.clientMiddlewareModule):await _();return ge(T,"No `clientMiddleware` export found"),T}:void 0,shouldRevalidate:async()=>{let T=await _();return La(w.path,T,s,a,l)},handle:async()=>(await _()).handle,Component:async()=>(await _()).Component,ErrorBoundary:s.hasErrorBoundary?async()=>(await _()).ErrorBoundary:void 0}}let P=Mr(e,t,r,a,n,s.id,i,l);return P.length>0&&(w.children=P),w})}function La(e,t,r,a,n){if(n)return Il(r.id,t.shouldRevalidate,n);if(!a&&r.hasLoader&&!r.hasClientLoader){let o=e?Da(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 Il(e,t,r){let a=!1;return n=>a?t?t(n):n.defaultShouldRevalidate:(a=!0,r.has(e))}async function Al(e,t){let r=mn(e,t),a=Pl(e),n=await r;return await Promise.all([a,yn(e,n)]),{Component:En(n),ErrorBoundary:n.ErrorBoundary,clientMiddleware:n.clientMiddleware,clientAction:n.clientAction,clientLoader:n.clientLoader,handle:n.handle,links:n.links,meta:n.meta,shouldRevalidate:n.shouldRevalidate}}function En(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function Nl(e,t,r,a){return a&&e!=="root"||t!=null&&(t.hydrate===!0||r!==!0)}var kt=new Set,$l=1e3,It=new Set,jl=7680;function _r(e,t){return e.mode==="lazy"&&t===!0}function Ul({sri:e,...t},r){let a=new Set(r.state.matches.map(l=>l.route.id)),n=r.state.location.pathname.split("/").filter(Boolean),o=["/"];for(n.pop();n.length>0;)o.push(`/${n.join("/")}`),n.pop();o.forEach(l=>{let s=Ie(r.routes,l,r.basename);s&&s.forEach(u=>a.add(u.route.id))});let i=[...a].reduce((l,s)=>Object.assign(l,{[s]:t.routes[s]}),{});return{...t,routes:i,sri:e?!0:void 0}}function Rs(e,t,r,a,n,o,i){if(_r(n,a))return async({path:l,patch:s,signal:u,fetcherKey:h})=>{if(It.has(l))return;let{state:c}=e();await Rn([l],h?window.location.href:Te(c.navigation.location||c.location),t,r,a,o,i,n.manifestPath,s,u)}}function bs(e,t,r,a,n,o){d.useEffect(()=>{var h,c;if(!_r(n,a)||((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;It.has(R)||kt.add(R)}async function l(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(i);let m=Array.from(kt.keys()).filter(g=>It.has(g)?(kt.delete(g),!1):!0);if(m.length!==0)try{await Rn(m,null,t,r,a,o,e.basename,n.manifestPath,e.patchRoutes)}catch(g){console.error("Failed to fetch manifest patches",g)}}let s=Bl(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()},[a,o,t,r,e,n])}function Hl(e,t){let r=e||"/__manifest";return t==null?r:`${t}${r}`.replace(/\/+/g,"/")}var nr="react-router-manifest-version";async function Rn(e,t,r,a,n,o,i,l,s,u){const h=new URLSearchParams;h.set("paths",e.sort().join(",")),h.set("version",r.version);let c=new URL(Hl(l,i),window.location.origin);if(c.search=h.toString(),c.toString().length>jl){kt.clear();return}let m;try{let w=await fetch(c,{signal:u});if(w.ok){if(w.status===204&&w.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(nr)===r.version){console.error("Unable to discover routes due to manifest version mismatch.");return}sessionStorage.setItem(nr,r.version)}catch{}window.location.href=t,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{})}else if(w.status>=400)throw new Error(await w.text())}else throw new Error(`${w.status} ${w.statusText}`);try{sessionStorage.removeItem(nr)}catch{}m=await w.json()}catch(w){if(u!=null&&u.aborted)return;throw w}let g=new Set(Object.keys(r.routes)),R=Object.values(m).reduce((w,P)=>(P&&!g.has(P.id)&&(w[P.id]=P),w),{});Object.assign(r.routes,R),e.forEach(w=>zl(w,It));let b=new Set;Object.values(R).forEach(w=>{w&&(!w.parentId||!R[w.parentId])&&b.add(w.parentId)}),b.forEach(w=>s(w||null,Mr(R,a,null,n,o,w)))}function zl(e,t){if(t.size>=$l){let r=t.values().next().value;t.delete(r)}t.add(e)}function Bl(e,t){let r;return(...a)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...a),t)}}function Dr(){let e=d.useContext(Je);return ge(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Ht(){let e=d.useContext(et);return ge(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var zt=d.createContext(void 0);zt.displayName="FrameworkContext";function tt(){let e=d.useContext(zt);return ge(e,"You must render this element inside a <HydratedRouter> element"),e}function Wl(e,t){let r=d.useContext(zt),[a,n]=d.useState(!1),[o,i]=d.useState(!1),{onFocus:l,onBlur:s,onMouseEnter:u,onMouseLeave:h,onTouchStart:c}=t,m=d.useRef(null);d.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let b=P=>{P.forEach(C=>{i(C.isIntersecting)})},w=new IntersectionObserver(b,{threshold:.5});return m.current&&w.observe(m.current),()=>{w.disconnect()}}},[e]),d.useEffect(()=>{if(a){let b=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(b)}}},[a]);let g=()=>{n(!0)},R=()=>{n(!1),i(!1)};return r?e!=="intent"?[o,m,{}]:[o,m,{onFocus:lt(l,g),onBlur:lt(s,R),onMouseEnter:lt(u,g),onMouseLeave:lt(h,R),onTouchStart:lt(c,g)}]:[!1,m,{}]}function lt(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function Or(e,t,r){if(r&&!At)return[e[0]];if(t){let a=e.findIndex(n=>t[n.route.id]!==void 0);return e.slice(0,a+1)}return e}var Ca="data-react-router-critical-css";function Ss({nonce:e,crossOrigin:t}){let{isSpaMode:r,manifest:a,routeModules:n,criticalCss:o}=tt(),{errors:i,matches:l}=Ht(),s=Or(l,i,r),u=d.useMemo(()=>xl(s,n,a),[s,n,a]);return d.createElement(d.Fragment,null,typeof o=="string"?d.createElement("style",{[Ca]:"",nonce:e,dangerouslySetInnerHTML:{__html:o}}):null,typeof o=="object"?d.createElement("link",{[Ca]:"",rel:"stylesheet",href:o.href,nonce:e,crossOrigin:t}):null,u.map(({key:h,link:c})=>Pr(c)?d.createElement(bn,{key:h,nonce:e,...c,crossOrigin:c.crossOrigin??t}):d.createElement("link",{key:h,nonce:e,...c,crossOrigin:c.crossOrigin??t})))}function bn({page:e,...t}){let{router:r}=Dr(),a=d.useMemo(()=>Ie(r.routes,e,r.basename),[r.routes,e,r.basename]);return a?d.createElement(Vl,{page:e,matches:a,...t}):null}function Yl(e){let{manifest:t,routeModules:r}=tt(),[a,n]=d.useState([]);return d.useEffect(()=>{let o=!1;return Ml(e,t,r).then(i=>{o||n(i)}),()=>{o=!0}},[e,t,r]),a}function Vl({page:e,matches:t,...r}){let a=xe(),{future:n,manifest:o,routeModules:i}=tt(),{basename:l}=Dr(),{loaderData:s,matches:u}=Ht(),h=d.useMemo(()=>Sa(e,t,u,o,a,"data"),[e,t,u,o,a]),c=d.useMemo(()=>Sa(e,t,u,o,a,"assets"),[e,t,u,o,a]),m=d.useMemo(()=>{if(e===a.pathname+a.search+a.hash)return[];let b=new Set,w=!1;if(t.forEach(C=>{var I;let D=o.routes[C.route.id];!D||!D.hasLoader||(!h.some(x=>x.route.id===C.route.id)&&C.route.id in s&&((I=i[C.route.id])!=null&&I.shouldRevalidate)||D.hasClientLoader?w=!0:b.add(C.route.id))}),b.size===0)return[];let P=hn(e,l,n.unstable_trailingSlashAwareDataRequests,"data");return w&&b.size>0&&P.searchParams.set("_routes",t.filter(C=>b.has(C.route.id)).map(C=>C.route.id).join(",")),[P.pathname+P.search]},[l,n.unstable_trailingSlashAwareDataRequests,s,a,o,h,t,e,i]),g=d.useMemo(()=>Tr(c,o),[c,o]),R=Yl(c);return d.createElement(d.Fragment,null,m.map(b=>d.createElement("link",{key:b,rel:"prefetch",as:"fetch",href:b,...r})),g.map(b=>d.createElement("link",{key:b,rel:"modulepreload",href:b,...r})),R.map(({key:b,link:w})=>d.createElement("link",{key:b,nonce:r.nonce,...w,crossOrigin:w.crossOrigin??r.crossOrigin})))}function Ls(){let{isSpaMode:e,routeModules:t}=tt(),{errors:r,matches:a,loaderData:n}=Ht(),o=xe(),i=Or(a,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=n[g],b=m.params,w=t[g],P=[],C={id:g,data:R,loaderData:R,meta:[],params:m.params,pathname:m.pathname,handle:m.route.handle,error:l};if(h[c]=C,w!=null&&w.meta?P=typeof w.meta=="function"?w.meta({data:R,loaderData:R,params:b,location:o,matches:h,error:l}):Array.isArray(w.meta)?[...w.meta]:w.meta:u&&(P=[...u]),P=P||[],!Array.isArray(P))throw new Error("The route at "+m.route.path+` returns an invalid value. All route meta functions must return an array of meta objects.
30
+
31
+ To reference the meta function API, see https://reactrouter.com/start/framework/route-module#meta`);C.meta=P,h[c]=C,s=[...P],u=s}return d.createElement(d.Fragment,null,s.flat().map(c=>{if(!c)return null;if("tagName"in c){let{tagName:m,...g}=c;if(!Jl(m))return console.warn(`A meta object uses an invalid tagName: ${m}. Expected either 'link' or 'meta'`),null;let R=m;return d.createElement(R,{key:JSON.stringify(g),...g})}if("title"in c)return d.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"?d.createElement("meta",{key:"charSet",charSet:c.charSet}):null;if("script:ld+json"in c)try{let m=JSON.stringify(c["script:ld+json"]);return d.createElement("script",{key:`script:ld+json:${m}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:fr(m)}})}catch{return null}return d.createElement("meta",{key:JSON.stringify(c),...c})}))}function Jl(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}var At=!1;function Gl(){At=!0}function Kl(e){let{manifest:t,serverHandoffString:r,isSpaMode:a,renderMeta:n,routeDiscovery:o,ssr:i}=tt(),{router:l,static:s,staticContext:u}=Dr(),{matches:h}=Ht(),c=qa(),m=_r(o,i);n&&(n.didRenderScripts=!0);let g=Or(h,null,a);d.useEffect(()=>{Gl()},[]);let R=d.useMemo(()=>{var I;if(c)return null;let C=u?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",D=s?`${(I=t.hmr)!=null&&I.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${m?"":`import ${JSON.stringify(t.url)}`};
32
+ ${g.map((x,_)=>{let T=`route${_}`,v=t.routes[x.route.id];ge(v,`Route ${x.route.id} not found in manifest`);let{clientActionModule:B,clientLoaderModule:U,clientMiddlewareModule:oe,hydrateFallbackModule:G,module:ie}=v,q=[...B?[{module:B,varName:`${T}_clientAction`}]:[],...U?[{module:U,varName:`${T}_clientLoader`}]:[],...oe?[{module:oe,varName:`${T}_clientMiddleware`}]:[],...G?[{module:G,varName:`${T}_HydrateFallback`}]:[],{module:ie,varName:`${T}_main`}];if(q.length===1)return`import * as ${T} from ${JSON.stringify(ie)};`;let ae=q.map(Z=>`import * as ${Z.varName} from "${Z.module}";`).join(`
33
+ `),K=`const ${T} = {${q.map(Z=>`...${Z.varName}`).join(",")}};`;return[ae,K].join(`
34
+ `)}).join(`
35
+ `)}
36
+ ${m?`window.__reactRouterManifest = ${JSON.stringify(Ul(t,l),null,2)};`:""}
37
+ window.__reactRouterRouteModules = {${g.map((x,_)=>`${JSON.stringify(x.route.id)}:route${_}`).join(",")}};
38
+
39
+ import(${JSON.stringify(t.entry.module)});`:" ";return d.createElement(d.Fragment,null,d.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:C},type:void 0}),d.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:D},type:"module",async:!0}))},[]),b=At||c?[]:Xl(t.entry.imports.concat(Tr(g,t,{includeHydrateFallback:!0}))),w=typeof t.sri=="object"?t.sri:{};return ur(!c,"The <Scripts /> element is a no-op when using RSC and can be safely removed."),At||c?null:d.createElement(d.Fragment,null,typeof t.sri=="object"?d.createElement("script",{...e,"rr-importmap":"",type:"importmap",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:w})}}):null,m?null:d.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin,integrity:w[t.url],suppressHydrationWarning:!0}),d.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin,integrity:w[t.entry.module],suppressHydrationWarning:!0}),b.map(P=>d.createElement("link",{key:P,rel:"modulepreload",href:P,crossOrigin:e.crossOrigin,integrity:w[P],suppressHydrationWarning:!0})),R)}function Xl(e){return[...new Set(e)]}function ql(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}var Cs=class extends d.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?d.createElement(Sn,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function Sn({error:e,isOutsideRemixApp:t}){console.error(e);let r=d.createElement("script",{dangerouslySetInnerHTML:{__html:`
40
+ console.log(
41
+ "💿 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."
42
+ );
43
+ `}});if(Ve(e))return d.createElement(mr,{title:"Unhandled Thrown Response!"},d.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),r);let a;if(e instanceof Error)a=e;else{let n=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);a=new Error(n)}return d.createElement(mr,{title:"Application Error!",isOutsideRemixApp:t},d.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),d.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},a.stack),r)}function mr({title:e,renderScripts:t,isOutsideRemixApp:r,children:a}){var o;let{routeModules:n}=tt();return(o=n.root)!=null&&o.Layout&&!r?a:d.createElement("html",{lang:"en"},d.createElement("head",null,d.createElement("meta",{charSet:"utf-8"}),d.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),d.createElement("title",null,e)),d.createElement("body",null,d.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},a,t?d.createElement(Kl,null):null)))}var Ql=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Ql&&(window.__reactRouterVersion="7.13.2")}catch{}var Ln=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Cn=d.forwardRef(function({onClick:t,discover:r="render",prefetch:a="none",relative:n,reloadDocument:o,replace:i,unstable_mask:l,state:s,target:u,to:h,preventScrollReset:c,viewTransition:m,unstable_defaultShouldRevalidate:g,...R},b){let{basename:w,navigator:P,unstable_useTransitions:C}=d.useContext(Ee),D=typeof h=="string"&&Ln.test(h),I=Ia(h,w);h=I.to;let x=mi(h,{relative:n}),_=xe(),T=null;if(l){let ae=Nt(l,[],_.unstable_mask?_.unstable_mask.pathname:"/",!0);w!=="/"&&(ae.pathname=ae.pathname==="/"?w:Pe([w,ae.pathname])),T=P.createHref(ae)}let[v,B,U]=Wl(a,R),oe=ts(h,{replace:i,unstable_mask:l,state:s,target:u,preventScrollReset:c,relative:n,viewTransition:m,unstable_defaultShouldRevalidate:g,unstable_useTransitions:C});function G(ae){t&&t(ae),ae.defaultPrevented||oe(ae)}let ie=!(I.isExternal||o),q=d.createElement("a",{...R,...U,href:(ie?T:void 0)||I.absoluteURL||x,onClick:ie?G:t,ref:ql(b,B),target:u,"data-discover":!D&&r==="render"?"true":void 0});return v&&!D?d.createElement(d.Fragment,null,q,d.createElement(bn,{page:x})):q});Cn.displayName="Link";var Zl=d.forwardRef(function({"aria-current":t="page",caseSensitive:r=!1,className:a="",end:n=!1,style:o,to:i,viewTransition:l,children:s,...u},h){let c=yt(i,{relative:u.relative}),m=xe(),g=d.useContext(et),{navigator:R,basename:b}=d.useContext(Ee),w=g!=null&&ls(c)&&l===!0,P=R.encodeLocation?R.encodeLocation(c).pathname:c.pathname,C=m.pathname,D=g&&g.navigation&&g.navigation.location?g.navigation.location.pathname:null;r||(C=C.toLowerCase(),D=D?D.toLowerCase():null,P=P.toLowerCase()),D&&b&&(D=Se(D,b)||D);const I=P!=="/"&&P.endsWith("/")?P.length-1:P.length;let x=C===P||!n&&C.startsWith(P)&&C.charAt(I)==="/",_=D!=null&&(D===P||!n&&D.startsWith(P)&&D.charAt(P.length)==="/"),T={isActive:x,isPending:_,isTransitioning:w},v=x?t:void 0,B;typeof a=="function"?B=a(T):B=[a,x?"active":null,_?"pending":null,w?"transitioning":null].filter(Boolean).join(" ");let U=typeof o=="function"?o(T):o;return d.createElement(Cn,{...u,"aria-current":v,className:B,ref:h,style:U,to:i,viewTransition:l},typeof s=="function"?s(T):s)});Zl.displayName="NavLink";var xn=d.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:a,replace:n,state:o,method:i=Dt,action:l,onSubmit:s,relative:u,preventScrollReset:h,viewTransition:c,unstable_defaultShouldRevalidate:m,...g},R)=>{let{unstable_useTransitions:b}=d.useContext(Ee),w=Mn(),P=ns(l,{relative:u}),C=i.toLowerCase()==="get"?"get":"post",D=typeof l=="string"&&Ln.test(l),I=x=>{if(s&&s(x),x.defaultPrevented)return;x.preventDefault();let _=x.nativeEvent.submitter,T=(_==null?void 0:_.getAttribute("formmethod"))||i,v=()=>w(_||x.currentTarget,{fetcherKey:t,method:T,navigate:r,replace:n,state:o,relative:u,preventScrollReset:h,viewTransition:c,unstable_defaultShouldRevalidate:m});b&&r!==!1?d.startTransition(()=>v()):v()};return d.createElement("form",{ref:R,method:C,action:P,onSubmit:a?s:I,...g,"data-discover":!D&&e==="render"?"true":void 0})});xn.displayName="Form";function es({getKey:e,storageKey:t,...r}){let a=d.useContext(zt),{basename:n}=d.useContext(Ee),o=xe(),i=Cr();os({getKey:e,storageKey:t});let l=d.useMemo(()=>{if(!a||!e)return null;let u=yr(o,i,n,e);return u!==o.key?u:null},[]);if(!a||a.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 d.createElement("script",{...r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${s})(${fr(JSON.stringify(t||pr))}, ${fr(JSON.stringify(l))})`}})}es.displayName="ScrollRestoration";function Pn(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=d.useContext(Je);return V(t,Pn(e)),t}function Tn(e){let t=d.useContext(et);return V(t,Pn(e)),t}function ts(e,{target:t,replace:r,unstable_mask:a,state:n,preventScrollReset:o,relative:i,viewTransition:l,unstable_defaultShouldRevalidate:s,unstable_useTransitions:u}={}){let h=tn(),c=xe(),m=yt(e,{relative:i});return d.useCallback(g=>{if(Hi(g,t)){g.preventDefault();let R=r!==void 0?r:Te(c)===Te(m),b=()=>h(e,{replace:R,unstable_mask:a,state:n,preventScrollReset:o,relative:i,viewTransition:l,unstable_defaultShouldRevalidate:s});u?d.startTransition(()=>b()):b()}},[c,h,m,r,a,n,t,e,o,i,l,s,u])}function xs(e){se(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=d.useRef(cr(e)),r=d.useRef(!1),a=xe(),n=d.useMemo(()=>zi(a.search,r.current?null:t.current),[a.search]),o=tn(),i=d.useCallback((l,s)=>{const u=cr(typeof l=="function"?l(new URLSearchParams(n)):l);r.current=!0,o("?"+u,s)},[o,n]);return[n,i]}var rs=0,as=()=>`__${String(++rs)}__`;function Mn(){let{router:e}=Bt("useSubmit"),{basename:t}=d.useContext(Ee),r=Ci(),a=e.fetch,n=e.navigate;return d.useCallback(async(o,i={})=>{let{action:l,method:s,encType:u,formData:h,body:c}=Yi(o,t);if(i.navigate===!1){let m=i.fetcherKey||as();await a(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 n(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})},[a,n,t,r])}function ns(e,{relative:t}={}){let{basename:r}=d.useContext(Ee),a=d.useContext(Ce);V(a,"useFormAction must be used inside a RouteContext");let[n]=a.matches.slice(-1),o={...yt(e||".",{relative:t})},i=xe();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===".")&&n.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),r!=="/"&&(o.pathname=o.pathname==="/"?r:Pe([r,o.pathname])),Te(o)}function Ps({key:e}={}){var x;let{router:t}=Bt("useFetcher"),r=Tn("useFetcher"),a=d.useContext(br),n=d.useContext(Ce),o=(x=n.matches[n.matches.length-1])==null?void 0:x.route.id;V(a,"useFetcher must be used inside a FetchersContext"),V(n,"useFetcher must be used inside a RouteContext"),V(o!=null,'useFetcher can only be used on routes that contain a unique "id"');let i=d.useId(),[l,s]=d.useState(e||i);e&&e!==l&&s(e);let{deleteFetcher:u,getFetcher:h,resetFetcher:c,fetch:m}=t;d.useEffect(()=>(h(l),()=>u(l)),[u,h,l]);let g=d.useCallback(async(_,T)=>{V(o,"No routeId available for fetcher.load()"),await m(l,o,_,T)},[l,o,m]),R=Mn(),b=d.useCallback(async(_,T)=>{await R(_,{...T,navigate:!1,fetcherKey:l})},[l,R]),w=d.useCallback(_=>c(l,_),[c,l]),P=d.useMemo(()=>{let _=d.forwardRef((T,v)=>d.createElement(xn,{...T,navigate:!1,fetcherKey:l,ref:v}));return _.displayName="fetcher.Form",_},[l]),C=r.fetchers.get(l)||ja,D=a.get(l);return d.useMemo(()=>({Form:P,submit:b,load:g,reset:w,...C,data:D}),[P,b,g,w,C,D])}var pr="react-router-scroll-positions",Mt={};function yr(e,t,r,a){let n=null;return a&&(r!=="/"?n=a({...e,pathname:Se(e.pathname,r)||e.pathname},t):n=a(e,t)),n==null&&(n=e.key),n}function os({getKey:e,storageKey:t}={}){let{router:r}=Bt("useScrollRestoration"),{restoreScrollPosition:a,preventScrollReset:n}=Tn("useScrollRestoration"),{basename:o}=d.useContext(Ee),i=xe(),l=Cr(),s=xi();d.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),is(d.useCallback(()=>{if(s.state==="idle"){let u=yr(i,l,o,e);Mt[u]=window.scrollY}try{sessionStorage.setItem(t||pr,JSON.stringify(Mt))}catch(u){se(!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"&&(d.useLayoutEffect(()=>{try{let u=sessionStorage.getItem(t||pr);u&&(Mt=JSON.parse(u))}catch{}},[t]),d.useLayoutEffect(()=>{let u=r==null?void 0:r.enableScrollRestoration(Mt,()=>window.scrollY,e?(h,c)=>yr(h,c,o,e):void 0);return()=>u&&u()},[r,o,e]),d.useLayoutEffect(()=>{if(a!==!1){if(typeof a=="number"){window.scrollTo(0,a);return}try{if(i.hash){let u=document.getElementById(decodeURIComponent(i.hash.slice(1)));if(u){u.scrollIntoView();return}}}catch{se(!1,`"${i.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}n!==!0&&window.scrollTo(0,0)}},[i,a,n]))}function is(e,t){let{capture:r}={};d.useEffect(()=>{let a=r!=null?{capture:r}:void 0;return window.addEventListener("pagehide",e,a),()=>{window.removeEventListener("pagehide",e,a)}},[e,r])}function ls(e,{relative:t}={}){let r=d.useContext(Rr);V(r!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:a}=Bt("useViewTransitionState"),n=yt(e,{relative:t});if(!r.isTransitioning)return!1;let o=Se(r.currentLocation.pathname,a)||r.currentLocation.pathname,i=Se(r.nextLocation.pathname,a)||r.nextLocation.pathname;return Ft(n.pathname,i)!=null||Ft(n.pathname,o)!=null}export{Es as A,hs as B,ms as C,gs as D,je as E,zt as F,Ss as G,Kl as H,xr as I,ss as J,Cn as L,Ls as M,yl as N,ys as O,qn as R,es as S,tn as a,xs as b,xe as c,Ps as d,ln as e,ds as f,Gn as g,Xn as h,fs as i,rn as j,Ve as k,V as l,Ie as m,bs as n,Cs as o,ps as p,Cl as q,d as r,Nl as s,Mr as t,on as u,cs as v,vs as w,Rs as x,ws as y,us as z};
@@ -1,5 +1,5 @@
1
- import{c}from"./createLucideIcon-en9_3LGg.js";/**
2
- * @license lucide-react v0.556.0 - ISC
1
+ import{c}from"./createLucideIcon-BwyFiRot.js";/**
2
+ * @license lucide-react v0.577.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
@@ -0,0 +1,11 @@
1
+ import{c}from"./createLucideIcon-BwyFiRot.js";/**
2
+ * @license lucide-react v0.577.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.577.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,41 @@
1
+ import{r as s}from"./chunk-UVKPFVEO-Bmq2apuh.js";/**
2
+ * @license lucide-react v0.577.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 l=(...t)=>t.filter((e,r,o)=>!!e&&e.trim()!==""&&o.indexOf(e)===r).join(" ").trim();/**
7
+ * @license lucide-react v0.577.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 C=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/**
12
+ * @license lucide-react v0.577.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 f=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,r,o)=>o?o.toUpperCase():r.toLowerCase());/**
17
+ * @license lucide-react v0.577.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 i=t=>{const e=f(t);return e.charAt(0).toUpperCase()+e.slice(1)};/**
22
+ * @license lucide-react v0.577.0 - ISC
23
+ *
24
+ * This source code is licensed under the ISC license.
25
+ * See the LICENSE file in the root directory of this source tree.
26
+ */var w={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"};/**
27
+ * @license lucide-react v0.577.0 - ISC
28
+ *
29
+ * This source code is licensed under the ISC license.
30
+ * See the LICENSE file in the root directory of this source tree.
31
+ */const h=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0;return!1};/**
32
+ * @license lucide-react v0.577.0 - ISC
33
+ *
34
+ * This source code is licensed under the ISC license.
35
+ * See the LICENSE file in the root directory of this source tree.
36
+ */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,...w,width:e,height:e,stroke:t,strokeWidth:o?Number(r)*24/Number(e):r,className:l("lucide",n),...!a&&!h(c)&&{"aria-hidden":"true"},...c},[...u.map(([m,d])=>s.createElement(m,d)),...Array.isArray(a)?a:[a]]));/**
37
+ * @license lucide-react v0.577.0 - ISC
38
+ *
39
+ * This source code is licensed under the ISC license.
40
+ * See the LICENSE file in the root directory of this source tree.
41
+ */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};
@@ -0,0 +1 @@
1
+ const o="/assets/cy-logo-cli-DoA97ML3.svg";export{o 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="#FFFFFF"/>
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="#FFFFFF"/>
4
4
  </svg>
@@ -0,0 +1 @@
1
+ import{w as t,d as r}from"./chunk-UVKPFVEO-Bmq2apuh.js";import{j as e}from"./jsx-runtime-D_zvdyIk.js";import{S as i}from"./ScenarioViewer-Cl4oOA3A.js";import{W as n}from"./InteractivePreview-6WjVfhxX.js";import"./ViewportInspectBar-BqkA9zyZ.js";import"./useCustomSizes-Dk0Tciqg.js";import"./LogViewer-C-9zQdXg.js";import"./SafeScreenshot-DThcm_9M.js";import"./useLastLogLine-C8QvIe05.js";import"./Spinner-CIil5-gb.js";import"./preload-helper-ckwbz45p.js";import"./ReportIssueModal-DQsceHVv.js";import"./createLucideIcon-BwyFiRot.js";import"./circle-check-DLPObLUx.js";import"./triangle-alert-D87ekDl8.js";import"./copy-DXEmO0TD.js";import"./scenarioStatus-B_8jpV3e.js";import"./InlineSpinner-ByaELMbv.js";const S=()=>[{title:"Empty State - CodeYam"},{name:"description",content:"Simulations empty state development view"}],L=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{L as default,S as meta};
@@ -0,0 +1 @@
1
+ import{w as t}from"./chunk-UVKPFVEO-Bmq2apuh.js";const n=t(function(){return null});export{n as default};