@langadventurellc/task-trellis-mcp 1.0.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -263
- package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts +2 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts.map +1 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.js +533 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.js.map +1 -0
- package/dist/__tests__/e2e/configuration/activation.e2e.test.js +6 -6
- package/dist/__tests__/e2e/configuration/activation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js +55 -6
- package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js +19 -19
- package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js +9 -9
- package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js +15 -15
- package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/createObject.e2e.test.js +94 -42
- package/dist/__tests__/e2e/crud/createObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js +19 -19
- package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js +32 -32
- package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/getObject.e2e.test.js +143 -22
- package/dist/__tests__/e2e/crud/getObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/listObjects.e2e.test.js +810 -121
- package/dist/__tests__/e2e/crud/listObjects.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/updateObject.e2e.test.js +497 -25
- package/dist/__tests__/e2e/crud/updateObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts +2 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts.map +1 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js +319 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js.map +1 -0
- package/dist/__tests__/e2e/infrastructure/client.e2e.test.js +4 -4
- package/dist/__tests__/e2e/infrastructure/client.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/infrastructure/server.e2e.test.js +6 -6
- package/dist/__tests__/e2e/infrastructure/server.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/utils/extractObjectIds.d.ts +5 -0
- package/dist/__tests__/e2e/utils/extractObjectIds.d.ts.map +1 -0
- package/dist/__tests__/e2e/utils/extractObjectIds.js +12 -0
- package/dist/__tests__/e2e/utils/extractObjectIds.js.map +1 -0
- package/dist/__tests__/e2e/utils/index.d.ts +1 -0
- package/dist/__tests__/e2e/utils/index.d.ts.map +1 -1
- package/dist/__tests__/e2e/utils/index.js +3 -1
- package/dist/__tests__/e2e/utils/index.js.map +1 -1
- package/dist/__tests__/e2e/utils/mcpTestClient.d.ts +2 -1
- package/dist/__tests__/e2e/utils/mcpTestClient.d.ts.map +1 -1
- package/dist/__tests__/e2e/utils/mcpTestClient.js +15 -8
- package/dist/__tests__/e2e/utils/mcpTestClient.js.map +1 -1
- package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts +4 -2
- package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts.map +1 -1
- package/dist/__tests__/e2e/utils/parseListObjectsResponse.js +2 -1
- package/dist/__tests__/e2e/utils/parseListObjectsResponse.js.map +1 -1
- package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.d.ts +1 -1
- package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.js +1 -1
- package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js +4 -4
- package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.d.ts +2 -0
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.d.ts.map +1 -0
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js +597 -0
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js.map +1 -0
- package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js +233 -0
- package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js +447 -1
- package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js +43 -43
- package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js +22 -26
- package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js.map +1 -1
- package/dist/__tests__/serverStartup.test.d.ts +2 -0
- package/dist/__tests__/serverStartup.test.d.ts.map +1 -0
- package/dist/__tests__/serverStartup.test.js +171 -0
- package/dist/__tests__/serverStartup.test.js.map +1 -0
- package/dist/configuration/ServerConfig.d.ts +2 -0
- package/dist/configuration/ServerConfig.d.ts.map +1 -1
- package/dist/models/TrellisObjectSummary.d.ts +16 -0
- package/dist/models/TrellisObjectSummary.d.ts.map +1 -0
- package/dist/{utils/ReplaceStringOptions.js → models/TrellisObjectSummary.js} +1 -1
- package/dist/models/TrellisObjectSummary.js.map +1 -0
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js.map +1 -1
- package/dist/repositories/Repository.d.ts +2 -1
- package/dist/repositories/Repository.d.ts.map +1 -1
- package/dist/repositories/local/LocalRepository.d.ts +2 -1
- package/dist/repositories/local/LocalRepository.d.ts.map +1 -1
- package/dist/repositories/local/LocalRepository.js +4 -0
- package/dist/repositories/local/LocalRepository.js.map +1 -1
- package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts +2 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts.map +1 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.js +306 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.js.map +1 -0
- package/dist/repositories/local/__tests__/getObjectFilePath.test.js +9 -6
- package/dist/repositories/local/__tests__/getObjectFilePath.test.js.map +1 -1
- package/dist/repositories/local/__tests__/getObjects.test.js +349 -10
- package/dist/repositories/local/__tests__/getObjects.test.js.map +1 -1
- package/dist/repositories/local/deleteObjectById.d.ts.map +1 -1
- package/dist/repositories/local/deleteObjectById.js +2 -0
- package/dist/repositories/local/deleteObjectById.js.map +1 -1
- package/dist/repositories/local/getChildrenOf.d.ts +11 -0
- package/dist/repositories/local/getChildrenOf.d.ts.map +1 -0
- package/dist/repositories/local/getChildrenOf.js +73 -0
- package/dist/repositories/local/getChildrenOf.js.map +1 -0
- package/dist/repositories/local/getObjectFilePath.d.ts.map +1 -1
- package/dist/repositories/local/getObjectFilePath.js +8 -4
- package/dist/repositories/local/getObjectFilePath.js.map +1 -1
- package/dist/repositories/local/getObjects.d.ts +1 -1
- package/dist/repositories/local/getObjects.d.ts.map +1 -1
- package/dist/repositories/local/getObjects.js +31 -7
- package/dist/repositories/local/getObjects.js.map +1 -1
- package/dist/server.js +57 -19
- package/dist/server.js.map +1 -1
- package/dist/services/TaskTrellisService.d.ts +78 -0
- package/dist/services/TaskTrellisService.d.ts.map +1 -0
- package/dist/services/TaskTrellisService.js +3 -0
- package/dist/services/TaskTrellisService.js.map +1 -0
- package/dist/services/local/LocalTaskTrellisService.d.ts +55 -0
- package/dist/services/local/LocalTaskTrellisService.d.ts.map +1 -0
- package/dist/services/local/LocalTaskTrellisService.js +73 -0
- package/dist/services/local/LocalTaskTrellisService.js.map +1 -0
- package/dist/services/local/__tests__/appendAffectedFiles.test.d.ts +2 -0
- package/dist/services/local/__tests__/appendAffectedFiles.test.d.ts.map +1 -0
- package/dist/services/local/__tests__/appendAffectedFiles.test.js +202 -0
- package/dist/services/local/__tests__/appendAffectedFiles.test.js.map +1 -0
- package/dist/services/local/__tests__/appendModifiedFiles.test.d.ts +2 -0
- package/dist/services/local/__tests__/appendModifiedFiles.test.d.ts.map +1 -0
- package/dist/services/local/__tests__/appendModifiedFiles.test.js +162 -0
- package/dist/services/local/__tests__/appendModifiedFiles.test.js.map +1 -0
- package/dist/services/local/__tests__/appendObjectLog.test.d.ts +2 -0
- package/dist/services/local/__tests__/appendObjectLog.test.d.ts.map +1 -0
- package/dist/services/local/__tests__/appendObjectLog.test.js +105 -0
- package/dist/services/local/__tests__/appendObjectLog.test.js.map +1 -0
- package/dist/services/local/__tests__/claimTask.test.d.ts +2 -0
- package/dist/services/local/__tests__/claimTask.test.d.ts.map +1 -0
- package/dist/services/local/__tests__/claimTask.test.js +459 -0
- package/dist/services/local/__tests__/claimTask.test.js.map +1 -0
- package/dist/services/local/__tests__/completeTask.test.d.ts +2 -0
- package/dist/services/local/__tests__/completeTask.test.d.ts.map +1 -0
- package/dist/services/local/__tests__/completeTask.test.js +470 -0
- package/dist/services/local/__tests__/completeTask.test.js.map +1 -0
- package/dist/services/local/__tests__/createObject.test.d.ts +2 -0
- package/dist/services/local/__tests__/createObject.test.d.ts.map +1 -0
- package/dist/services/local/__tests__/createObject.test.js +333 -0
- package/dist/services/local/__tests__/createObject.test.js.map +1 -0
- package/dist/services/local/__tests__/listObjects.test.d.ts +2 -0
- package/dist/services/local/__tests__/listObjects.test.d.ts.map +1 -0
- package/dist/services/local/__tests__/listObjects.test.js +351 -0
- package/dist/services/local/__tests__/listObjects.test.js.map +1 -0
- package/dist/services/local/__tests__/pruneClosed.test.d.ts +2 -0
- package/dist/services/local/__tests__/pruneClosed.test.d.ts.map +1 -0
- package/dist/services/local/__tests__/pruneClosed.test.js +473 -0
- package/dist/services/local/__tests__/pruneClosed.test.js.map +1 -0
- package/dist/services/local/__tests__/updateObject.test.d.ts +2 -0
- package/dist/services/local/__tests__/updateObject.test.d.ts.map +1 -0
- package/dist/services/local/__tests__/updateObject.test.js +521 -0
- package/dist/services/local/__tests__/updateObject.test.js.map +1 -0
- package/dist/services/local/appendAffectedFiles.d.ts +12 -0
- package/dist/services/local/appendAffectedFiles.d.ts.map +1 -0
- package/dist/services/local/appendAffectedFiles.js +34 -0
- package/dist/services/local/appendAffectedFiles.js.map +1 -0
- package/dist/services/local/appendModifiedFiles.d.ts +15 -0
- package/dist/services/local/appendModifiedFiles.d.ts.map +1 -0
- package/dist/services/local/appendModifiedFiles.js +39 -0
- package/dist/services/local/appendModifiedFiles.js.map +1 -0
- package/dist/services/local/appendObjectLog.d.ts +8 -0
- package/dist/services/local/appendObjectLog.d.ts.map +1 -0
- package/dist/services/local/appendObjectLog.js +45 -0
- package/dist/services/local/appendObjectLog.js.map +1 -0
- package/dist/services/local/claimTask.d.ts +8 -0
- package/dist/services/local/claimTask.d.ts.map +1 -0
- package/dist/services/local/claimTask.js +109 -0
- package/dist/services/local/claimTask.js.map +1 -0
- package/dist/services/local/completeTask.d.ts +9 -0
- package/dist/services/local/completeTask.d.ts.map +1 -0
- package/dist/services/local/completeTask.js +38 -0
- package/dist/services/local/completeTask.js.map +1 -0
- package/dist/services/local/createObject.d.ts +9 -0
- package/dist/services/local/createObject.d.ts.map +1 -0
- package/dist/services/local/createObject.js +44 -0
- package/dist/services/local/createObject.js.map +1 -0
- package/dist/services/local/listObjects.d.ts +9 -0
- package/dist/services/local/listObjects.d.ts.map +1 -0
- package/dist/services/local/listObjects.js +52 -0
- package/dist/services/local/listObjects.js.map +1 -0
- package/dist/services/local/pruneClosed.d.ts +8 -0
- package/dist/services/local/pruneClosed.d.ts.map +1 -0
- package/dist/services/local/pruneClosed.js +112 -0
- package/dist/services/local/pruneClosed.js.map +1 -0
- package/dist/services/local/updateObject.d.ts +10 -0
- package/dist/services/local/updateObject.d.ts.map +1 -0
- package/dist/services/local/updateObject.js +80 -0
- package/dist/services/local/updateObject.js.map +1 -0
- package/dist/tools/__tests__/appendModifiedFilesTool.test.d.ts +2 -0
- package/dist/tools/__tests__/appendModifiedFilesTool.test.d.ts.map +1 -0
- package/dist/tools/__tests__/appendModifiedFilesTool.test.js +178 -0
- package/dist/tools/__tests__/appendModifiedFilesTool.test.js.map +1 -0
- package/dist/tools/__tests__/appendObjectLogTool.test.js +34 -101
- package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -1
- package/dist/tools/__tests__/claimTaskTool.test.js +98 -311
- package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
- package/dist/tools/__tests__/completeTaskTool.test.js +140 -183
- package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -1
- package/dist/tools/__tests__/createObjectTool.test.js +62 -325
- package/dist/tools/__tests__/createObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/deleteObjectTool.test.js +1 -0
- package/dist/tools/__tests__/deleteObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/getObjectTool.test.js +1 -0
- package/dist/tools/__tests__/getObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/listObjectsTool.test.js +228 -108
- package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
- package/dist/tools/__tests__/updateObjectTool.test.js +78 -167
- package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -1
- package/dist/tools/appendModifiedFilesTool.d.ts +30 -0
- package/dist/tools/appendModifiedFilesTool.d.ts.map +1 -0
- package/dist/tools/appendModifiedFilesTool.js +55 -0
- package/dist/tools/appendModifiedFilesTool.js.map +1 -0
- package/dist/tools/appendObjectLogTool.d.ts +7 -6
- package/dist/tools/appendObjectLogTool.d.ts.map +1 -1
- package/dist/tools/appendObjectLogTool.js +6 -44
- package/dist/tools/appendObjectLogTool.js.map +1 -1
- package/dist/tools/claimTaskTool.d.ts +4 -3
- package/dist/tools/claimTaskTool.d.ts.map +1 -1
- package/dist/tools/claimTaskTool.js +2 -80
- package/dist/tools/claimTaskTool.js.map +1 -1
- package/dist/tools/completeTaskTool.d.ts +5 -3
- package/dist/tools/completeTaskTool.d.ts.map +1 -1
- package/dist/tools/completeTaskTool.js +3 -29
- package/dist/tools/completeTaskTool.js.map +1 -1
- package/dist/tools/createObjectTool.d.ts +13 -12
- package/dist/tools/createObjectTool.d.ts.map +1 -1
- package/dist/tools/createObjectTool.js +22 -55
- package/dist/tools/createObjectTool.js.map +1 -1
- package/dist/tools/deleteObjectTool.d.ts +3 -3
- package/dist/tools/deleteObjectTool.js +12 -12
- package/dist/tools/deleteObjectTool.js.map +1 -1
- package/dist/tools/getObjectTool.d.ts +3 -3
- package/dist/tools/getObjectTool.d.ts.map +1 -1
- package/dist/tools/getObjectTool.js +12 -7
- package/dist/tools/getObjectTool.js.map +1 -1
- package/dist/tools/index.d.ts +7 -8
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +22 -25
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/listObjectsTool.d.ts +24 -14
- package/dist/tools/listObjectsTool.d.ts.map +1 -1
- package/dist/tools/listObjectsTool.js +114 -50
- package/dist/tools/listObjectsTool.js.map +1 -1
- package/dist/tools/updateObjectTool.d.ts +15 -9
- package/dist/tools/updateObjectTool.d.ts.map +1 -1
- package/dist/tools/updateObjectTool.js +20 -60
- package/dist/tools/updateObjectTool.js.map +1 -1
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts +2 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts.map +1 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js +206 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js.map +1 -0
- package/dist/utils/__tests__/checkPrerequisitesComplete.test.js +5 -0
- package/dist/utils/__tests__/checkPrerequisitesComplete.test.js.map +1 -1
- package/dist/utils/__tests__/filterUnavailableObjects.test.js +51 -25
- package/dist/utils/__tests__/filterUnavailableObjects.test.js.map +1 -1
- package/dist/utils/__tests__/isRequiredForOtherObjects.test.js +5 -0
- package/dist/utils/__tests__/isRequiredForOtherObjects.test.js.map +1 -1
- package/dist/utils/__tests__/updateParentHierarchy.test.d.ts +2 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.d.ts.map +1 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.js +137 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.js.map +1 -0
- package/dist/utils/autoCompleteParentHierarchy.d.ts +11 -0
- package/dist/utils/autoCompleteParentHierarchy.d.ts.map +1 -0
- package/dist/utils/autoCompleteParentHierarchy.js +49 -0
- package/dist/utils/autoCompleteParentHierarchy.js.map +1 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts +14 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts.map +1 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.js +47 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.js.map +1 -0
- package/dist/utils/filterUnavailableObjects.d.ts +6 -4
- package/dist/utils/filterUnavailableObjects.d.ts.map +1 -1
- package/dist/utils/filterUnavailableObjects.js +16 -22
- package/dist/utils/filterUnavailableObjects.js.map +1 -1
- package/dist/utils/index.d.ts +3 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +7 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/updateParentHierarchy.d.ts +11 -0
- package/dist/utils/updateParentHierarchy.d.ts.map +1 -0
- package/dist/utils/updateParentHierarchy.js +40 -0
- package/dist/utils/updateParentHierarchy.js.map +1 -0
- package/dist/validation/__tests__/validateObjectCreation.test.js +1 -0
- package/dist/validation/__tests__/validateObjectCreation.test.js.map +1 -1
- package/dist/validation/__tests__/validateParentExists.test.js +1 -0
- package/dist/validation/__tests__/validateParentExists.test.js.map +1 -1
- package/dist/validation/__tests__/validateParentType.test.js +5 -5
- package/dist/validation/__tests__/validateParentType.test.js.map +1 -1
- package/dist/validation/__tests__/validateStatusTransition.test.js +1 -0
- package/dist/validation/__tests__/validateStatusTransition.test.js.map +1 -1
- package/dist/validation/validateParentType.d.ts +1 -1
- package/dist/validation/validateParentType.d.ts.map +1 -1
- package/dist/validation/validateParentType.js +2 -5
- package/dist/validation/validateParentType.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts +0 -2
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts.map +0 -1
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js +0 -693
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js.map +0 -1
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts +0 -2
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts.map +0 -1
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js +0 -352
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js.map +0 -1
- package/dist/tools/__tests__/pruneClosedTool.test.d.ts +0 -2
- package/dist/tools/__tests__/pruneClosedTool.test.d.ts.map +0 -1
- package/dist/tools/__tests__/pruneClosedTool.test.js +0 -171
- package/dist/tools/__tests__/pruneClosedTool.test.js.map +0 -1
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts +0 -2
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts.map +0 -1
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js +0 -258
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js.map +0 -1
- package/dist/tools/pruneClosedTool.d.ts +0 -26
- package/dist/tools/pruneClosedTool.d.ts.map +0 -1
- package/dist/tools/pruneClosedTool.js +0 -106
- package/dist/tools/pruneClosedTool.js.map +0 -1
- package/dist/tools/replaceObjectBodyRegexTool.d.ts +0 -35
- package/dist/tools/replaceObjectBodyRegexTool.d.ts.map +0 -1
- package/dist/tools/replaceObjectBodyRegexTool.js +0 -145
- package/dist/tools/replaceObjectBodyRegexTool.js.map +0 -1
- package/dist/utils/ReplaceStringOptions.d.ts +0 -12
- package/dist/utils/ReplaceStringOptions.d.ts.map +0 -1
- package/dist/utils/ReplaceStringOptions.js.map +0 -1
- package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts +0 -2
- package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts.map +0 -1
- package/dist/utils/__tests__/replaceStringWithRegex.test.js +0 -281
- package/dist/utils/__tests__/replaceStringWithRegex.test.js.map +0 -1
- package/dist/utils/replaceStringWithRegex.d.ts +0 -45
- package/dist/utils/replaceStringWithRegex.d.ts.map +0 -1
- package/dist/utils/replaceStringWithRegex.js +0 -91
- package/dist/utils/replaceStringWithRegex.js.map +0 -1
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Options for string replacement with regex
|
|
3
|
-
*/
|
|
4
|
-
export interface ReplaceStringOptions {
|
|
5
|
-
/** The regular expression pattern to match */
|
|
6
|
-
regex: string;
|
|
7
|
-
/** The replacement string (may contain backreferences like \1, \2, etc.) */
|
|
8
|
-
replacement: string;
|
|
9
|
-
/** Whether to allow multiple occurrences to be replaced. If false and multiple matches found, throws an error */
|
|
10
|
-
allowMultipleOccurrences?: boolean;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=ReplaceStringOptions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReplaceStringOptions.d.ts","sourceRoot":"","sources":["../../src/utils/ReplaceStringOptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,iHAAiH;IACjH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReplaceStringOptions.js","sourceRoot":"","sources":["../../src/utils/ReplaceStringOptions.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replaceStringWithRegex.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/replaceStringWithRegex.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const replaceStringWithRegex_1 = require("../replaceStringWithRegex");
|
|
4
|
-
const MultipleMatchesError_1 = require("../MultipleMatchesError");
|
|
5
|
-
describe("replaceStringWithRegex", () => {
|
|
6
|
-
describe("basic functionality", () => {
|
|
7
|
-
it("should replace simple string patterns", () => {
|
|
8
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("hello world", {
|
|
9
|
-
regex: "world",
|
|
10
|
-
replacement: "universe",
|
|
11
|
-
});
|
|
12
|
-
expect(result).toBe("hello universe");
|
|
13
|
-
});
|
|
14
|
-
it("should return original string when no matches found", () => {
|
|
15
|
-
const input = "hello world";
|
|
16
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)(input, {
|
|
17
|
-
regex: "foo",
|
|
18
|
-
replacement: "bar",
|
|
19
|
-
});
|
|
20
|
-
expect(result).toBe(input);
|
|
21
|
-
});
|
|
22
|
-
it("should handle empty replacement string", () => {
|
|
23
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("hello world", {
|
|
24
|
-
regex: "world",
|
|
25
|
-
replacement: "",
|
|
26
|
-
});
|
|
27
|
-
expect(result).toBe("hello ");
|
|
28
|
-
});
|
|
29
|
-
it("should handle special regex characters", () => {
|
|
30
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("Price: $10.99", {
|
|
31
|
-
regex: "\\$\\d+\\.\\d+",
|
|
32
|
-
replacement: "$25.00",
|
|
33
|
-
});
|
|
34
|
-
expect(result).toBe("Price: $25.00");
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
describe("backreferences", () => {
|
|
38
|
-
it("should handle backreferences with $1, $2 notation", () => {
|
|
39
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("John Doe", {
|
|
40
|
-
regex: "(\\w+) (\\w+)",
|
|
41
|
-
replacement: "$2, $1",
|
|
42
|
-
});
|
|
43
|
-
expect(result).toBe("Doe, John");
|
|
44
|
-
});
|
|
45
|
-
it("should handle multiple backreferences", () => {
|
|
46
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("2023-12-25", {
|
|
47
|
-
regex: "(\\d{4})-(\\d{2})-(\\d{2})",
|
|
48
|
-
replacement: "$2/$3/$1",
|
|
49
|
-
});
|
|
50
|
-
expect(result).toBe("12/25/2023");
|
|
51
|
-
});
|
|
52
|
-
it("should handle backreferences with surrounding text", () => {
|
|
53
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("function getName() {", {
|
|
54
|
-
regex: "function (\\w+)\\(\\)",
|
|
55
|
-
replacement: "const $1 = () =>",
|
|
56
|
-
});
|
|
57
|
-
expect(result).toBe("const getName = () => {");
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
describe("multiline and dotall matching", () => {
|
|
61
|
-
it("should match across multiple lines with dot", () => {
|
|
62
|
-
const input = "start\nmiddle\nend";
|
|
63
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)(input, {
|
|
64
|
-
regex: "start.*end",
|
|
65
|
-
replacement: "replaced",
|
|
66
|
-
});
|
|
67
|
-
expect(result).toBe("replaced");
|
|
68
|
-
});
|
|
69
|
-
it("should handle multiline strings with line anchors", () => {
|
|
70
|
-
const input = "line1\nline2\nline3";
|
|
71
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)(input, {
|
|
72
|
-
regex: "^line2$",
|
|
73
|
-
replacement: "newline2",
|
|
74
|
-
});
|
|
75
|
-
expect(result).toBe("line1\nnewline2\nline3");
|
|
76
|
-
});
|
|
77
|
-
it("should match patterns spanning multiple lines", () => {
|
|
78
|
-
const input = "function test() {\n console.log('hello');\n}";
|
|
79
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)(input, {
|
|
80
|
-
regex: "function test\\(\\).*?}",
|
|
81
|
-
replacement: "const test = () => { console.log('hi'); }",
|
|
82
|
-
});
|
|
83
|
-
expect(result).toBe("const test = () => { console.log('hi'); }");
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
describe("multiple occurrences handling", () => {
|
|
87
|
-
it("should throw error when multiple matches found and not allowed", () => {
|
|
88
|
-
expect(() => {
|
|
89
|
-
(0, replaceStringWithRegex_1.replaceStringWithRegex)("foo bar foo", {
|
|
90
|
-
regex: "foo",
|
|
91
|
-
replacement: "baz",
|
|
92
|
-
});
|
|
93
|
-
}).toThrow(MultipleMatchesError_1.MultipleMatchesError);
|
|
94
|
-
});
|
|
95
|
-
it("should provide detailed error message for multiple matches", () => {
|
|
96
|
-
expect(() => {
|
|
97
|
-
(0, replaceStringWithRegex_1.replaceStringWithRegex)("test test test", {
|
|
98
|
-
regex: "test",
|
|
99
|
-
replacement: "replaced",
|
|
100
|
-
});
|
|
101
|
-
}).toThrow('Found 3 matches for pattern "test" but allowMultipleOccurrences is false. ' +
|
|
102
|
-
"Use allowMultipleOccurrences: true to replace all matches, or provide a more specific regex.");
|
|
103
|
-
});
|
|
104
|
-
it("should replace all occurrences when allowMultipleOccurrences is true", () => {
|
|
105
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("foo bar foo baz foo", {
|
|
106
|
-
regex: "foo",
|
|
107
|
-
replacement: "qux",
|
|
108
|
-
allowMultipleOccurrences: true,
|
|
109
|
-
});
|
|
110
|
-
expect(result).toBe("qux bar qux baz qux");
|
|
111
|
-
});
|
|
112
|
-
it("should handle single match correctly regardless of allowMultipleOccurrences", () => {
|
|
113
|
-
const result1 = (0, replaceStringWithRegex_1.replaceStringWithRegex)("unique pattern", {
|
|
114
|
-
regex: "unique",
|
|
115
|
-
replacement: "special",
|
|
116
|
-
});
|
|
117
|
-
const result2 = (0, replaceStringWithRegex_1.replaceStringWithRegex)("unique pattern", {
|
|
118
|
-
regex: "unique",
|
|
119
|
-
replacement: "special",
|
|
120
|
-
allowMultipleOccurrences: true,
|
|
121
|
-
});
|
|
122
|
-
expect(result1).toBe("special pattern");
|
|
123
|
-
expect(result2).toBe("special pattern");
|
|
124
|
-
});
|
|
125
|
-
it("should efficiently detect multiple matches in large strings without creating full array upfront", () => {
|
|
126
|
-
// Create a large string with many matches to test performance optimization
|
|
127
|
-
const pattern = "match";
|
|
128
|
-
const largeString = Array(1000).fill(`${pattern} text`).join(" ");
|
|
129
|
-
expect(() => {
|
|
130
|
-
(0, replaceStringWithRegex_1.replaceStringWithRegex)(largeString, {
|
|
131
|
-
regex: pattern,
|
|
132
|
-
replacement: "replaced",
|
|
133
|
-
});
|
|
134
|
-
}).toThrow(MultipleMatchesError_1.MultipleMatchesError);
|
|
135
|
-
// Verify the error message still contains correct count despite optimization
|
|
136
|
-
expect(() => {
|
|
137
|
-
(0, replaceStringWithRegex_1.replaceStringWithRegex)(largeString, {
|
|
138
|
-
regex: pattern,
|
|
139
|
-
replacement: "replaced",
|
|
140
|
-
});
|
|
141
|
-
}).toThrow(/Found 1000 matches for pattern/);
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
describe("error handling", () => {
|
|
145
|
-
it("should throw error for empty regex pattern", () => {
|
|
146
|
-
expect(() => {
|
|
147
|
-
(0, replaceStringWithRegex_1.replaceStringWithRegex)("test", {
|
|
148
|
-
regex: "",
|
|
149
|
-
replacement: "replaced",
|
|
150
|
-
});
|
|
151
|
-
}).toThrow("Regex pattern cannot be empty");
|
|
152
|
-
});
|
|
153
|
-
it("should throw error for invalid regex pattern", () => {
|
|
154
|
-
expect(() => {
|
|
155
|
-
(0, replaceStringWithRegex_1.replaceStringWithRegex)("test", {
|
|
156
|
-
regex: "[invalid",
|
|
157
|
-
replacement: "replaced",
|
|
158
|
-
});
|
|
159
|
-
}).toThrow("Invalid regex pattern:");
|
|
160
|
-
});
|
|
161
|
-
it("should handle regex with unmatched parentheses", () => {
|
|
162
|
-
expect(() => {
|
|
163
|
-
(0, replaceStringWithRegex_1.replaceStringWithRegex)("test", {
|
|
164
|
-
regex: "(unmatched",
|
|
165
|
-
replacement: "replaced",
|
|
166
|
-
});
|
|
167
|
-
}).toThrow("Invalid regex pattern:");
|
|
168
|
-
});
|
|
169
|
-
it("should handle regex with invalid quantifiers", () => {
|
|
170
|
-
expect(() => {
|
|
171
|
-
(0, replaceStringWithRegex_1.replaceStringWithRegex)("test", {
|
|
172
|
-
regex: "*invalid",
|
|
173
|
-
replacement: "replaced",
|
|
174
|
-
});
|
|
175
|
-
}).toThrow("Invalid regex pattern:");
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
describe("edge cases", () => {
|
|
179
|
-
it("should handle empty input string", () => {
|
|
180
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("", {
|
|
181
|
-
regex: "anything",
|
|
182
|
-
replacement: "something",
|
|
183
|
-
});
|
|
184
|
-
expect(result).toBe("");
|
|
185
|
-
});
|
|
186
|
-
it("should handle very long strings", () => {
|
|
187
|
-
const longString = "a".repeat(10000) + "target" + "b".repeat(10000);
|
|
188
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)(longString, {
|
|
189
|
-
regex: "target",
|
|
190
|
-
replacement: "replaced",
|
|
191
|
-
});
|
|
192
|
-
expect(result).toBe("a".repeat(10000) + "replaced" + "b".repeat(10000));
|
|
193
|
-
});
|
|
194
|
-
it("should handle unicode characters", () => {
|
|
195
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("Hello 🌍", {
|
|
196
|
-
regex: "🌍",
|
|
197
|
-
replacement: "🌎",
|
|
198
|
-
});
|
|
199
|
-
expect(result).toBe("Hello 🌎");
|
|
200
|
-
});
|
|
201
|
-
it("should handle regex with word boundaries", () => {
|
|
202
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("cat concatenate", {
|
|
203
|
-
regex: "\\bcat\\b",
|
|
204
|
-
replacement: "dog",
|
|
205
|
-
});
|
|
206
|
-
expect(result).toBe("dog concatenate");
|
|
207
|
-
});
|
|
208
|
-
it("should handle case-sensitive matching", () => {
|
|
209
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("Hello HELLO hello", {
|
|
210
|
-
regex: "hello",
|
|
211
|
-
replacement: "hi",
|
|
212
|
-
allowMultipleOccurrences: true,
|
|
213
|
-
});
|
|
214
|
-
expect(result).toBe("Hello HELLO hi");
|
|
215
|
-
});
|
|
216
|
-
});
|
|
217
|
-
describe("real-world scenarios", () => {
|
|
218
|
-
it("should replace function declarations", () => {
|
|
219
|
-
const code = "function calculate(a, b) { return a + b; }";
|
|
220
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)(code, {
|
|
221
|
-
regex: "function (\\w+)\\(([^)]*)\\)",
|
|
222
|
-
replacement: "const $1 = ($2) =>",
|
|
223
|
-
});
|
|
224
|
-
expect(result).toBe("const calculate = (a, b) => { return a + b; }");
|
|
225
|
-
});
|
|
226
|
-
it("should replace import statements", () => {
|
|
227
|
-
const code = 'import { foo } from "./bar";';
|
|
228
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)(code, {
|
|
229
|
-
regex: 'import \\{ ([^}]+) \\} from "([^"]+)";',
|
|
230
|
-
replacement: 'const { $1 } = require("$2");',
|
|
231
|
-
});
|
|
232
|
-
expect(result).toBe('const { foo } = require("./bar");');
|
|
233
|
-
});
|
|
234
|
-
it("should replace console.log with custom logger", () => {
|
|
235
|
-
const code = 'console.log("debug info"); console.log("more info");';
|
|
236
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)(code, {
|
|
237
|
-
regex: "console\\.log",
|
|
238
|
-
replacement: "logger.debug",
|
|
239
|
-
allowMultipleOccurrences: true,
|
|
240
|
-
});
|
|
241
|
-
expect(result).toBe('logger.debug("debug info"); logger.debug("more info");');
|
|
242
|
-
});
|
|
243
|
-
it("should replace CSS class names", () => {
|
|
244
|
-
const css = ".old-class { color: red; } .another-old-class { font-size: 16px; }";
|
|
245
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)(css, {
|
|
246
|
-
regex: "\\.old-class\\b",
|
|
247
|
-
replacement: ".new-class",
|
|
248
|
-
allowMultipleOccurrences: true,
|
|
249
|
-
});
|
|
250
|
-
expect(result).toBe(".new-class { color: red; } .another-old-class { font-size: 16px; }");
|
|
251
|
-
});
|
|
252
|
-
it("should handle complex markdown replacements", () => {
|
|
253
|
-
const markdown = "# Heading\n\n## Subheading\n\nSome text";
|
|
254
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)(markdown, {
|
|
255
|
-
regex: "^## (.+)$",
|
|
256
|
-
replacement: "### $1",
|
|
257
|
-
});
|
|
258
|
-
expect(result).toBe("# Heading\n\n### Subheading\n\nSome text");
|
|
259
|
-
});
|
|
260
|
-
});
|
|
261
|
-
describe("type checking", () => {
|
|
262
|
-
it("should accept valid ReplaceStringOptions", () => {
|
|
263
|
-
const options = {
|
|
264
|
-
regex: "test",
|
|
265
|
-
replacement: "replaced",
|
|
266
|
-
allowMultipleOccurrences: false,
|
|
267
|
-
};
|
|
268
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("test string", options);
|
|
269
|
-
expect(result).toBe("replaced string");
|
|
270
|
-
});
|
|
271
|
-
it("should work with minimal options", () => {
|
|
272
|
-
const options = {
|
|
273
|
-
regex: "test",
|
|
274
|
-
replacement: "replaced",
|
|
275
|
-
};
|
|
276
|
-
const result = (0, replaceStringWithRegex_1.replaceStringWithRegex)("test string", options);
|
|
277
|
-
expect(result).toBe("replaced string");
|
|
278
|
-
});
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
//# sourceMappingURL=replaceStringWithRegex.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replaceStringWithRegex.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/replaceStringWithRegex.test.ts"],"names":[],"mappings":";;AAAA,sEAAmE;AACnE,kEAA+D;AAG/D,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,aAAa,EAAE;gBACnD,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,UAAU;aACxB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,KAAK,GAAG,aAAa,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,KAAK,EAAE;gBAC3C,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,aAAa,EAAE;gBACnD,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,eAAe,EAAE;gBACrD,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,QAAQ;aACtB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,UAAU,EAAE;gBAChD,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,QAAQ;aACtB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,YAAY,EAAE;gBAClD,KAAK,EAAE,4BAA4B;gBACnC,WAAW,EAAE,UAAU;aACxB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,sBAAsB,EAAE;gBAC5D,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,kBAAkB;aAChC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,KAAK,GAAG,oBAAoB,CAAC;YACnC,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,KAAK,EAAE;gBAC3C,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,UAAU;aACxB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAG,qBAAqB,CAAC;YACpC,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,KAAK,EAAE;gBAC3C,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,UAAU;aACxB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,KAAK,GAAG,+CAA+C,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,KAAK,EAAE;gBAC3C,KAAK,EAAE,yBAAyB;gBAChC,WAAW,EAAE,2CAA2C;aACzD,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,CAAC,GAAG,EAAE;gBACV,IAAA,+CAAsB,EAAC,aAAa,EAAE;oBACpC,KAAK,EAAE,KAAK;oBACZ,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,2CAAoB,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,CAAC,GAAG,EAAE;gBACV,IAAA,+CAAsB,EAAC,gBAAgB,EAAE;oBACvC,KAAK,EAAE,MAAM;oBACb,WAAW,EAAE,UAAU;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CACR,4EAA4E;gBAC1E,8FAA8F,CACjG,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC9E,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,qBAAqB,EAAE;gBAC3D,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,KAAK;gBAClB,wBAAwB,EAAE,IAAI;aAC/B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;YACrF,MAAM,OAAO,GAAG,IAAA,+CAAsB,EAAC,gBAAgB,EAAE;gBACvD,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,+CAAsB,EAAC,gBAAgB,EAAE;gBACvD,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,SAAS;gBACtB,wBAAwB,EAAE,IAAI;aAC/B,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iGAAiG,EAAE,GAAG,EAAE;YACzG,2EAA2E;YAC3E,MAAM,OAAO,GAAG,OAAO,CAAC;YACxB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAElE,MAAM,CAAC,GAAG,EAAE;gBACV,IAAA,+CAAsB,EAAC,WAAW,EAAE;oBAClC,KAAK,EAAE,OAAO;oBACd,WAAW,EAAE,UAAU;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,2CAAoB,CAAC,CAAC;YAEjC,6EAA6E;YAC7E,MAAM,CAAC,GAAG,EAAE;gBACV,IAAA,+CAAsB,EAAC,WAAW,EAAE;oBAClC,KAAK,EAAE,OAAO;oBACd,WAAW,EAAE,UAAU;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,GAAG,EAAE;gBACV,IAAA,+CAAsB,EAAC,MAAM,EAAE;oBAC7B,KAAK,EAAE,EAAE;oBACT,WAAW,EAAE,UAAU;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,GAAG,EAAE;gBACV,IAAA,+CAAsB,EAAC,MAAM,EAAE;oBAC7B,KAAK,EAAE,UAAU;oBACjB,WAAW,EAAE,UAAU;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,CAAC,GAAG,EAAE;gBACV,IAAA,+CAAsB,EAAC,MAAM,EAAE;oBAC7B,KAAK,EAAE,YAAY;oBACnB,WAAW,EAAE,UAAU;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,GAAG,EAAE;gBACV,IAAA,+CAAsB,EAAC,MAAM,EAAE;oBAC7B,KAAK,EAAE,UAAU;oBACjB,WAAW,EAAE,UAAU;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,EAAE,EAAE;gBACxC,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,WAAW;aACzB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,UAAU,EAAE;gBAChD,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,UAAU;aACxB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,UAAU,EAAE;gBAChD,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,iBAAiB,EAAE;gBACvD,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,mBAAmB,EAAE;gBACzD,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,IAAI;gBACjB,wBAAwB,EAAE,IAAI;aAC/B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,IAAI,GAAG,4CAA4C,CAAC;YAC1D,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,IAAI,EAAE;gBAC1C,KAAK,EAAE,8BAA8B;gBACrC,WAAW,EAAE,oBAAoB;aAClC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,IAAI,GAAG,8BAA8B,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,IAAI,EAAE;gBAC1C,KAAK,EAAE,wCAAwC;gBAC/C,WAAW,EAAE,+BAA+B;aAC7C,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,IAAI,GAAG,sDAAsD,CAAC;YACpE,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,IAAI,EAAE;gBAC1C,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,cAAc;gBAC3B,wBAAwB,EAAE,IAAI;aAC/B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACjB,wDAAwD,CACzD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,GAAG,GACP,oEAAoE,CAAC;YACvE,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,GAAG,EAAE;gBACzC,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,YAAY;gBACzB,wBAAwB,EAAE,IAAI;aAC/B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACjB,oEAAoE,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,QAAQ,GAAG,yCAAyC,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,QAAQ,EAAE;gBAC9C,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,QAAQ;aACtB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,OAAO,GAAyB;gBACpC,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,UAAU;gBACvB,wBAAwB,EAAE,KAAK;aAChC,CAAC;YACF,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,OAAO,GAAyB;gBACpC,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,UAAU;aACxB,CAAC;YACF,MAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { ReplaceStringOptions } from "./ReplaceStringOptions";
|
|
2
|
-
/**
|
|
3
|
-
* Replaces portions of a string using a regular expression pattern
|
|
4
|
-
*
|
|
5
|
-
* This function provides regex-based string replacement similar to Python's re.sub(),
|
|
6
|
-
* with multiline and global matching capabilities. When allowMultipleOccurrences is false,
|
|
7
|
-
* it will throw an error if the regex matches multiple times, helping prevent unintended
|
|
8
|
-
* bulk replacements.
|
|
9
|
-
*
|
|
10
|
-
* @param input - The string to modify
|
|
11
|
-
* @param options - Configuration object containing regex, replacement, and options
|
|
12
|
-
* @returns The modified string
|
|
13
|
-
* @throws {MultipleMatchesError} When multiple matches found but not allowed
|
|
14
|
-
* @throws {Error} When regex pattern is invalid
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* // Simple replacement
|
|
19
|
-
* replaceStringWithRegex("hello world", {
|
|
20
|
-
* regex: "world",
|
|
21
|
-
* replacement: "universe"
|
|
22
|
-
* }); // "hello universe"
|
|
23
|
-
*
|
|
24
|
-
* // With backreferences
|
|
25
|
-
* replaceStringWithRegex("John Doe", {
|
|
26
|
-
* regex: "(\\w+) (\\w+)",
|
|
27
|
-
* replacement: "$2, $1"
|
|
28
|
-
* }); // "Doe, John"
|
|
29
|
-
*
|
|
30
|
-
* // Multiple matches with permission
|
|
31
|
-
* replaceStringWithRegex("foo bar foo", {
|
|
32
|
-
* regex: "foo",
|
|
33
|
-
* replacement: "baz",
|
|
34
|
-
* allowMultipleOccurrences: true
|
|
35
|
-
* }); // "baz bar baz"
|
|
36
|
-
*
|
|
37
|
-
* // Multiple matches without permission (throws error)
|
|
38
|
-
* replaceStringWithRegex("foo bar foo", {
|
|
39
|
-
* regex: "foo",
|
|
40
|
-
* replacement: "baz"
|
|
41
|
-
* }); // throws MultipleMatchesError
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export declare function replaceStringWithRegex(input: string, options: ReplaceStringOptions): string;
|
|
45
|
-
//# sourceMappingURL=replaceStringWithRegex.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replaceStringWithRegex.d.ts","sourceRoot":"","sources":["../../src/utils/replaceStringWithRegex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAgDR"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.replaceStringWithRegex = replaceStringWithRegex;
|
|
4
|
-
const MultipleMatchesError_1 = require("./MultipleMatchesError");
|
|
5
|
-
/**
|
|
6
|
-
* Replaces portions of a string using a regular expression pattern
|
|
7
|
-
*
|
|
8
|
-
* This function provides regex-based string replacement similar to Python's re.sub(),
|
|
9
|
-
* with multiline and global matching capabilities. When allowMultipleOccurrences is false,
|
|
10
|
-
* it will throw an error if the regex matches multiple times, helping prevent unintended
|
|
11
|
-
* bulk replacements.
|
|
12
|
-
*
|
|
13
|
-
* @param input - The string to modify
|
|
14
|
-
* @param options - Configuration object containing regex, replacement, and options
|
|
15
|
-
* @returns The modified string
|
|
16
|
-
* @throws {MultipleMatchesError} When multiple matches found but not allowed
|
|
17
|
-
* @throws {Error} When regex pattern is invalid
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* // Simple replacement
|
|
22
|
-
* replaceStringWithRegex("hello world", {
|
|
23
|
-
* regex: "world",
|
|
24
|
-
* replacement: "universe"
|
|
25
|
-
* }); // "hello universe"
|
|
26
|
-
*
|
|
27
|
-
* // With backreferences
|
|
28
|
-
* replaceStringWithRegex("John Doe", {
|
|
29
|
-
* regex: "(\\w+) (\\w+)",
|
|
30
|
-
* replacement: "$2, $1"
|
|
31
|
-
* }); // "Doe, John"
|
|
32
|
-
*
|
|
33
|
-
* // Multiple matches with permission
|
|
34
|
-
* replaceStringWithRegex("foo bar foo", {
|
|
35
|
-
* regex: "foo",
|
|
36
|
-
* replacement: "baz",
|
|
37
|
-
* allowMultipleOccurrences: true
|
|
38
|
-
* }); // "baz bar baz"
|
|
39
|
-
*
|
|
40
|
-
* // Multiple matches without permission (throws error)
|
|
41
|
-
* replaceStringWithRegex("foo bar foo", {
|
|
42
|
-
* regex: "foo",
|
|
43
|
-
* replacement: "baz"
|
|
44
|
-
* }); // throws MultipleMatchesError
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
function replaceStringWithRegex(input, options) {
|
|
48
|
-
const { regex, replacement, allowMultipleOccurrences = false } = options;
|
|
49
|
-
if (!regex) {
|
|
50
|
-
throw new Error("Regex pattern cannot be empty");
|
|
51
|
-
}
|
|
52
|
-
let regexObj;
|
|
53
|
-
try {
|
|
54
|
-
// Create regex with global and multiline flags (similar to Python's DOTALL + multiline)
|
|
55
|
-
// Using 's' flag for dotAll (. matches newlines) and 'm' flag for multiline
|
|
56
|
-
regexObj = new RegExp(regex, "gsm");
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
60
|
-
throw new Error(`Invalid regex pattern: ${errorMessage}`);
|
|
61
|
-
}
|
|
62
|
-
// Efficiently check for matches without creating full array
|
|
63
|
-
const matchIterator = input.matchAll(regexObj);
|
|
64
|
-
const firstMatch = matchIterator.next();
|
|
65
|
-
if (firstMatch.done) {
|
|
66
|
-
// No matches, return original string
|
|
67
|
-
return input;
|
|
68
|
-
}
|
|
69
|
-
// If we don't allow multiple occurrences, check if there's a second match
|
|
70
|
-
if (!allowMultipleOccurrences) {
|
|
71
|
-
const secondMatch = matchIterator.next();
|
|
72
|
-
if (!secondMatch.done) {
|
|
73
|
-
// We have at least 2 matches, need to count them all for the error
|
|
74
|
-
// Reset and count all matches for accurate error reporting
|
|
75
|
-
regexObj.lastIndex = 0;
|
|
76
|
-
const allMatches = Array.from(input.matchAll(regexObj));
|
|
77
|
-
throw new MultipleMatchesError_1.MultipleMatchesError(allMatches.length, regex);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// Perform the replacement
|
|
81
|
-
// Reset the regex since matchAll() affects the lastIndex
|
|
82
|
-
regexObj.lastIndex = 0;
|
|
83
|
-
try {
|
|
84
|
-
return input.replace(regexObj, replacement);
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
88
|
-
throw new Error(`Error during replacement: ${errorMessage}`);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=replaceStringWithRegex.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replaceStringWithRegex.js","sourceRoot":"","sources":["../../src/utils/replaceStringWithRegex.ts"],"names":[],"mappings":";;AA6CA,wDAmDC;AAhGD,iEAA8D;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,SAAgB,sBAAsB,CACpC,KAAa,EACb,OAA6B;IAE7B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,wBAAwB,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEzE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,wFAAwF;QACxF,4EAA4E;QAC5E,QAAQ,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,4DAA4D;IAC5D,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IAExC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,qCAAqC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtB,mEAAmE;YACnE,2DAA2D;YAC3D,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;YACvB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxD,MAAM,IAAI,2CAAoB,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;IAEvB,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
|