@superblocksteam/vite-plugin-file-sync 2.0.75-next.3 → 2.0.75-next.4
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/dist/ai-service/agent/middleware.d.ts +0 -14
- package/dist/ai-service/agent/middleware.d.ts.map +1 -1
- package/dist/ai-service/agent/middleware.js +0 -40
- package/dist/ai-service/agent/middleware.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +18 -67
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/apis/static-analysis.js +5 -11
- package/dist/ai-service/agent/subagents/apis/static-analysis.js.map +1 -1
- package/dist/ai-service/agent/subagents/testing/prompt-builder.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/testing/prompt-builder.js +0 -15
- package/dist/ai-service/agent/subagents/testing/prompt-builder.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +0 -3
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-source.d.ts +24 -0
- package/dist/ai-service/agent/tools/apis/api-source.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/api-source.js +108 -0
- package/dist/ai-service/agent/tools/apis/api-source.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js +3 -11
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.js +0 -6
- package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-api-docs.js +3 -99
- package/dist/ai-service/agent/tools/apis/get-api-docs.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/integration-types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/integration-types.js +17 -69
- package/dist/ai-service/agent/tools/apis/integration-types.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +45 -26
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/write-api.d.ts +2 -2
- package/dist/ai-service/agent/tools/apis/write-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/write-api.js +2 -8
- package/dist/ai-service/agent/tools/apis/write-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.js +0 -3
- package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.js +6 -58
- package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.js +196 -27
- package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.js +22 -12
- package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.js +0 -3
- package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.js +0 -15
- package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
- package/dist/ai-service/agent/tools/build-list-files.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-list-files.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-list-files.js +14 -6
- package/dist/ai-service/agent/tools/build-list-files.js.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.js +0 -9
- package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts +2 -2
- package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.js +25 -8
- package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.d.ts +4 -10
- package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.js +77 -75
- package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-reload-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-reload-file.js +0 -5
- package/dist/ai-service/agent/tools/build-reload-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-rename-file.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-rename-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-rename-file.js +50 -3
- package/dist/ai-service/agent/tools/build-rename-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-validate-icons.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-validate-icons.js +0 -8
- package/dist/ai-service/agent/tools/build-validate-icons.js.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.d.ts +2 -2
- package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.js +17 -7
- package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
- package/dist/ai-service/agent/tools/get-console-logs.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/get-console-logs.js +0 -6
- package/dist/ai-service/agent/tools/get-console-logs.js.map +1 -1
- package/dist/ai-service/agent/tools/get-runtime-errors.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/get-runtime-errors.js +0 -4
- package/dist/ai-service/agent/tools/get-runtime-errors.js.map +1 -1
- package/dist/ai-service/agent/tools/index.d.ts +0 -1
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +0 -1
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.js +9 -56
- package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.js +0 -6
- package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/run-code.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/run-code.js +0 -9
- package/dist/ai-service/agent/tools/integrations/run-code.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +6 -27
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts +0 -15
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +0 -30
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +1 -11
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/edit.d.ts +1 -4
- package/dist/ai-service/agent/tools2/tools/edit.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/edit.js +8 -10
- package/dist/ai-service/agent/tools2/tools/edit.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/end-test-run.js +0 -5
- package/dist/ai-service/agent/tools2/tools/end-test-run.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +0 -2
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +0 -24
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/glob.d.ts +1 -4
- package/dist/ai-service/agent/tools2/tools/glob.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/glob.js +85 -25
- package/dist/ai-service/agent/tools2/tools/glob.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata.js +0 -9
- package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.d.ts +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.js +5 -22
- package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/list-attachments.js +0 -4
- package/dist/ai-service/agent/tools2/tools/list-attachments.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ls.d.ts +1 -8
- package/dist/ai-service/agent/tools2/tools/ls.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ls.js +83 -102
- package/dist/ai-service/agent/tools2/tools/ls.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/read.d.ts +2 -5
- package/dist/ai-service/agent/tools2/tools/read.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/read.js +12 -24
- package/dist/ai-service/agent/tools2/tools/read.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/start-test-run.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/start-test-run.js +0 -13
- package/dist/ai-service/agent/tools2/tools/start-test-run.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.js +0 -6
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/write.d.ts +1 -4
- package/dist/ai-service/agent/tools2/tools/write.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/write.js +4 -9
- package/dist/ai-service/agent/tools2/tools/write.js.map +1 -1
- package/dist/ai-service/agent/tools2/types.d.ts +0 -25
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/types.js.map +1 -1
- package/dist/ai-service/app-interface/linter.d.ts +1 -4
- package/dist/ai-service/app-interface/linter.d.ts.map +1 -1
- package/dist/ai-service/app-interface/linter.js +6 -10
- package/dist/ai-service/app-interface/linter.js.map +1 -1
- package/dist/ai-service/app-interface/shell.d.ts +1 -205
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +14 -474
- package/dist/ai-service/app-interface/shell.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +0 -8
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/features.d.ts +0 -8
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +0 -8
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/index.d.ts +1 -1
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +24 -26
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/judge/judge-executor.d.ts.map +1 -1
- package/dist/ai-service/judge/judge-executor.js +0 -4
- package/dist/ai-service/judge/judge-executor.js.map +1 -1
- package/dist/ai-service/llm/client.d.ts +3 -19
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +12 -131
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context/context.d.ts +1 -4
- package/dist/ai-service/llm/context/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context/context.js +5 -27
- package/dist/ai-service/llm/context/context.js.map +1 -1
- package/dist/ai-service/llm/context/internal-types.d.ts +0 -5
- package/dist/ai-service/llm/context/internal-types.d.ts.map +1 -1
- package/dist/ai-service/llm/context/internal-types.js +0 -5
- package/dist/ai-service/llm/context/internal-types.js.map +1 -1
- package/dist/ai-service/llm/context/levels/l1.d.ts +3 -4
- package/dist/ai-service/llm/context/levels/l1.d.ts.map +1 -1
- package/dist/ai-service/llm/context/levels/l1.js +8 -9
- package/dist/ai-service/llm/context/levels/l1.js.map +1 -1
- package/dist/ai-service/llm/context/serialization.d.ts +0 -8
- package/dist/ai-service/llm/context/serialization.d.ts.map +1 -1
- package/dist/ai-service/llm/context/utils/content-compaction.d.ts +5 -7
- package/dist/ai-service/llm/context/utils/content-compaction.d.ts.map +1 -1
- package/dist/ai-service/llm/context/utils/content-compaction.js +6 -27
- package/dist/ai-service/llm/context/utils/content-compaction.js.map +1 -1
- package/dist/ai-service/llm/error.d.ts +0 -1
- package/dist/ai-service/llm/error.d.ts.map +1 -1
- package/dist/ai-service/llm/error.js +3 -29
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/stream/config.d.ts +5 -14
- package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/config.js +5 -17
- package/dist/ai-service/llm/stream/config.js.map +1 -1
- package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/errors.js +4 -7
- package/dist/ai-service/llm/stream/errors.js.map +1 -1
- package/dist/ai-service/llm/stream/index.d.ts +2 -4
- package/dist/ai-service/llm/stream/index.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/index.js +2 -4
- package/dist/ai-service/llm/stream/index.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +11 -5
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +3 -3
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.d.ts +0 -8
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.d.ts.map +1 -1
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.js +0 -108
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.js.map +1 -1
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.d.ts.map +1 -1
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.js +133 -360
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +1 -2
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +8 -29
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +6 -17
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +1 -9
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/file-read-tracker.d.ts +7 -0
- package/dist/ai-service/state-machine/helpers/file-read-tracker.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/file-read-tracker.js +26 -0
- package/dist/ai-service/state-machine/helpers/file-read-tracker.js.map +1 -0
- package/dist/ai-service/template-renderer.d.ts.map +1 -1
- package/dist/ai-service/template-renderer.js +1 -4
- package/dist/ai-service/template-renderer.js.map +1 -1
- package/dist/ai-service/transform/api-builder/shared.js +2 -2
- package/dist/ai-service/transform/api-builder/shared.js.map +1 -1
- package/dist/components-manager.d.ts.map +1 -1
- package/dist/components-manager.js +12 -17
- package/dist/components-manager.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +12 -22
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/file-system-manager.d.ts +6 -0
- package/dist/file-system-manager.d.ts.map +1 -1
- package/dist/file-system-manager.js +144 -119
- package/dist/file-system-manager.js.map +1 -1
- package/dist/parsing/util.d.ts.map +1 -1
- package/dist/parsing/util.js +1 -5
- package/dist/parsing/util.js.map +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +11 -5
- package/dist/socket-manager.js.map +1 -1
- package/dist/source-tracker.d.ts +0 -4
- package/dist/source-tracker.d.ts.map +1 -1
- package/dist/source-tracker.js +8 -15
- package/dist/source-tracker.js.map +1 -1
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +8 -13
- package/dist/sync-service/index.js.map +1 -1
- package/dist/util/logger.d.ts.map +1 -1
- package/dist/util/logger.js +0 -16
- package/dist/util/logger.js.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +2 -4
- package/dist/util.js.map +1 -1
- package/package.json +16 -10
- package/dist/ai-service/agent/tools/clear-error-cache.d.ts +0 -10
- package/dist/ai-service/agent/tools/clear-error-cache.d.ts.map +0 -1
- package/dist/ai-service/agent/tools/clear-error-cache.js +0 -38
- package/dist/ai-service/agent/tools/clear-error-cache.js.map +0 -1
- package/dist/ai-service/app-interface/constants.d.ts +0 -77
- package/dist/ai-service/app-interface/constants.d.ts.map +0 -1
- package/dist/ai-service/app-interface/constants.js +0 -129
- package/dist/ai-service/app-interface/constants.js.map +0 -1
- package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts +0 -87
- package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts.map +0 -1
- package/dist/ai-service/app-interface/filesystem/draft-manager.js +0 -91
- package/dist/ai-service/app-interface/filesystem/draft-manager.js.map +0 -1
- package/dist/ai-service/app-interface/filesystem/handlers/api-handler.d.ts +0 -35
- package/dist/ai-service/app-interface/filesystem/handlers/api-handler.d.ts.map +0 -1
- package/dist/ai-service/app-interface/filesystem/handlers/api-handler.js +0 -236
- package/dist/ai-service/app-interface/filesystem/handlers/api-handler.js.map +0 -1
- package/dist/ai-service/app-interface/filesystem/handlers/index.d.ts +0 -5
- package/dist/ai-service/app-interface/filesystem/handlers/index.d.ts.map +0 -1
- package/dist/ai-service/app-interface/filesystem/handlers/index.js +0 -5
- package/dist/ai-service/app-interface/filesystem/handlers/index.js.map +0 -1
- package/dist/ai-service/app-interface/filesystem/index.d.ts +0 -12
- package/dist/ai-service/app-interface/filesystem/index.d.ts.map +0 -1
- package/dist/ai-service/app-interface/filesystem/index.js +0 -11
- package/dist/ai-service/app-interface/filesystem/index.js.map +0 -1
- package/dist/ai-service/app-interface/filesystem/validation.d.ts +0 -71
- package/dist/ai-service/app-interface/filesystem/validation.d.ts.map +0 -1
- package/dist/ai-service/app-interface/filesystem/validation.js +0 -170
- package/dist/ai-service/app-interface/filesystem/validation.js.map +0 -1
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts +0 -108
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts.map +0 -1
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.js +0 -157
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.js.map +0 -1
- package/dist/ai-service/app-interface/filesystem/virtual-fs-types.d.ts +0 -126
- package/dist/ai-service/app-interface/filesystem/virtual-fs-types.d.ts.map +0 -1
- package/dist/ai-service/app-interface/filesystem/virtual-fs-types.js +0 -9
- package/dist/ai-service/app-interface/filesystem/virtual-fs-types.js.map +0 -1
- package/dist/ai-service/security/index.d.ts +0 -8
- package/dist/ai-service/security/index.d.ts.map +0 -1
- package/dist/ai-service/security/index.js +0 -8
- package/dist/ai-service/security/index.js.map +0 -1
- package/dist/ai-service/security/safety-classifier.d.ts +0 -103
- package/dist/ai-service/security/safety-classifier.d.ts.map +0 -1
- package/dist/ai-service/security/safety-classifier.js +0 -168
- package/dist/ai-service/security/safety-classifier.js.map +0 -1
- package/dist/ai-service/security/secret-scanner.d.ts +0 -145
- package/dist/ai-service/security/secret-scanner.d.ts.map +0 -1
- package/dist/ai-service/security/secret-scanner.js +0 -344
- package/dist/ai-service/security/secret-scanner.js.map +0 -1
- package/dist/ensure-app-provider.d.ts +0 -2
- package/dist/ensure-app-provider.d.ts.map +0 -1
- package/dist/ensure-app-provider.js +0 -209
- package/dist/ensure-app-provider.js.map +0 -1
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Secret scanning utilities using TruffleHog.
|
|
3
|
-
*
|
|
4
|
-
* Provides functions for scanning content for leaked credentials and secrets.
|
|
5
|
-
* Uses TruffleHog CLI under the hood for detection and verification.
|
|
6
|
-
*/
|
|
7
|
-
import { spawn, execSync } from "node:child_process";
|
|
8
|
-
import { getErrorMeta, getPrefixedLogger } from "../../util/logger.js";
|
|
9
|
-
/**
|
|
10
|
-
* Detects if trufflehog is running via a Nix wrapper that already adds --no-update.
|
|
11
|
-
* The Nix wrapper is a bash script that adds --no-update before forwarding args.
|
|
12
|
-
*/
|
|
13
|
-
function isNixWrappedTrufflehog() {
|
|
14
|
-
try {
|
|
15
|
-
const trufflehogPath = execSync("which trufflehog", {
|
|
16
|
-
encoding: "utf-8",
|
|
17
|
-
}).trim();
|
|
18
|
-
return trufflehogPath.includes("/nix/store/");
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
// Cache the result since it won't change during runtime
|
|
25
|
-
let _isNixWrapped;
|
|
26
|
-
function shouldSkipNoUpdateFlag() {
|
|
27
|
-
if (_isNixWrapped === undefined) {
|
|
28
|
-
_isNixWrapped = isNixWrappedTrufflehog();
|
|
29
|
-
}
|
|
30
|
-
return _isNixWrapped;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Redacts secrets in content by replacing raw values with redacted versions.
|
|
34
|
-
*
|
|
35
|
-
* Replaces each detected secret's raw value with its redacted form.
|
|
36
|
-
* Secrets are processed longest-first to handle overlapping matches correctly.
|
|
37
|
-
*
|
|
38
|
-
* @param content - The original content containing secrets
|
|
39
|
-
* @param findings - Array of secret findings from TruffleHog
|
|
40
|
-
* @returns Content with all detected secrets redacted
|
|
41
|
-
*/
|
|
42
|
-
export function redactSecrets(content, findings) {
|
|
43
|
-
if (findings.length === 0) {
|
|
44
|
-
return content;
|
|
45
|
-
}
|
|
46
|
-
let redacted = content;
|
|
47
|
-
// Sort findings by raw length (longest first) to handle overlapping secrets
|
|
48
|
-
const sortedFindings = [...findings].sort((a, b) => b.raw.length - a.raw.length);
|
|
49
|
-
for (const finding of sortedFindings) {
|
|
50
|
-
if (finding.raw && finding.redacted) {
|
|
51
|
-
// Use global replacement to catch all occurrences
|
|
52
|
-
redacted = redacted.split(finding.raw).join(finding.redacted);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return redacted;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Parses TruffleHog JSON output into SecretFinding objects.
|
|
59
|
-
*
|
|
60
|
-
* @param jsonLine - Single line of JSON output from TruffleHog
|
|
61
|
-
* @returns Parsed SecretFinding or null if parsing fails
|
|
62
|
-
*/
|
|
63
|
-
function parseTrufflehogResult(jsonLine) {
|
|
64
|
-
try {
|
|
65
|
-
const result = JSON.parse(jsonLine);
|
|
66
|
-
const raw = result.Raw ?? "";
|
|
67
|
-
// Generate a sensible redacted value if TruffleHog doesn't provide one
|
|
68
|
-
// (custom regex detectors often return empty Redacted field)
|
|
69
|
-
const redacted = result.Redacted || generateRedactedValue(raw);
|
|
70
|
-
return {
|
|
71
|
-
detectorType: result.DetectorType?.toString() ?? "unknown",
|
|
72
|
-
detectorName: result.DetectorName ?? "unknown",
|
|
73
|
-
verified: result.Verified ?? false,
|
|
74
|
-
raw,
|
|
75
|
-
redacted,
|
|
76
|
-
line: result.SourceMetadata?.Data?.Filesystem?.line,
|
|
77
|
-
extraData: result.ExtraData,
|
|
78
|
-
sourceMetadata: {
|
|
79
|
-
file: result.SourceMetadata?.Data?.Filesystem?.file,
|
|
80
|
-
line: result.SourceMetadata?.Data?.Filesystem?.line,
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
catch {
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Generates a redacted version of a secret value.
|
|
90
|
-
*
|
|
91
|
-
* Preserves a prefix for recognizable patterns (like sk_live_, ghp_, AKIA)
|
|
92
|
-
* and replaces the rest with asterisks.
|
|
93
|
-
*
|
|
94
|
-
* @param raw - The raw secret value
|
|
95
|
-
* @returns A redacted version with preserved prefix and masked suffix
|
|
96
|
-
*/
|
|
97
|
-
function generateRedactedValue(raw) {
|
|
98
|
-
if (!raw || raw.length <= 4) {
|
|
99
|
-
return "[REDACTED]";
|
|
100
|
-
}
|
|
101
|
-
// For short secrets, just show first 2 chars
|
|
102
|
-
if (raw.length <= 8) {
|
|
103
|
-
return raw.slice(0, 2) + "****";
|
|
104
|
-
}
|
|
105
|
-
// For longer secrets, preserve recognizable prefixes
|
|
106
|
-
const prefixLength = Math.min(8, Math.floor(raw.length / 3));
|
|
107
|
-
return raw.slice(0, prefixLength) + "****";
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Scans text content for secrets using TruffleHog.
|
|
111
|
-
*
|
|
112
|
-
* This function pipes content directly to TruffleHog's stdin command
|
|
113
|
-
* and returns any detected secrets.
|
|
114
|
-
*
|
|
115
|
-
* @param content - The text content to scan for secrets
|
|
116
|
-
* @param options - Scan configuration options
|
|
117
|
-
* @returns Promise resolving to scan results with any findings
|
|
118
|
-
*
|
|
119
|
-
* @example
|
|
120
|
-
* ```typescript
|
|
121
|
-
* const result = await scanContentForSecrets(userPrompt);
|
|
122
|
-
* if (result.hasVerifiedSecrets) {
|
|
123
|
-
* console.log("Verified secrets found:", result.findings.filter(f => f.verified));
|
|
124
|
-
* }
|
|
125
|
-
* ```
|
|
126
|
-
*/
|
|
127
|
-
export async function scanContentForSecrets(content, options = {}) {
|
|
128
|
-
const { timeout = 5000, verifiedOnly = false } = options;
|
|
129
|
-
const logger = getPrefixedLogger("[secret-scan]");
|
|
130
|
-
try {
|
|
131
|
-
const findings = await runTrufflehog(content, timeout, verifiedOnly);
|
|
132
|
-
logger.debug(`TruffleHog scan completed: found ${findings.length} potential secrets`);
|
|
133
|
-
const redactedContent = redactSecrets(content, findings);
|
|
134
|
-
return {
|
|
135
|
-
success: true,
|
|
136
|
-
findings,
|
|
137
|
-
hasVerifiedSecrets: findings.some((f) => f.verified),
|
|
138
|
-
hasSecrets: findings.length > 0,
|
|
139
|
-
redactedContent,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
logger.error("error during operation: ", getErrorMeta(error));
|
|
144
|
-
return {
|
|
145
|
-
success: false,
|
|
146
|
-
findings: [],
|
|
147
|
-
error: error instanceof Error ? error.message : String(error),
|
|
148
|
-
hasVerifiedSecrets: false,
|
|
149
|
-
hasSecrets: false,
|
|
150
|
-
redactedContent: content, // Return original content on error
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Runs TruffleHog CLI using stdin and returns parsed findings.
|
|
156
|
-
*
|
|
157
|
-
* Uses TruffleHog's built-in detectors for common secret types (Stripe, GitHub,
|
|
158
|
-
* AWS, private keys, etc.) without custom configuration.
|
|
159
|
-
*
|
|
160
|
-
* @param content - Content to scan for secrets (piped to stdin)
|
|
161
|
-
* @param timeout - Timeout in milliseconds
|
|
162
|
-
* @param verifiedOnly - Whether to only return verified secrets
|
|
163
|
-
* @returns Promise resolving to array of SecretFinding objects
|
|
164
|
-
*/
|
|
165
|
-
async function runTrufflehog(content, timeout, verifiedOnly) {
|
|
166
|
-
return new Promise((resolve, reject) => {
|
|
167
|
-
const args = ["stdin", "--json"];
|
|
168
|
-
if (!shouldSkipNoUpdateFlag()) {
|
|
169
|
-
args.push("--no-update");
|
|
170
|
-
}
|
|
171
|
-
if (verifiedOnly) {
|
|
172
|
-
args.push("--results=verified");
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
args.push("--results=verified,unknown,unverified");
|
|
176
|
-
}
|
|
177
|
-
const proc = spawn("trufflehog", args, {
|
|
178
|
-
timeout,
|
|
179
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
180
|
-
});
|
|
181
|
-
const findings = [];
|
|
182
|
-
let stdout = "";
|
|
183
|
-
let stderr = "";
|
|
184
|
-
proc.stdout.on("data", (data) => {
|
|
185
|
-
stdout += data.toString();
|
|
186
|
-
});
|
|
187
|
-
proc.stderr.on("data", (data) => {
|
|
188
|
-
stderr += data.toString();
|
|
189
|
-
});
|
|
190
|
-
proc.on("close", (code) => {
|
|
191
|
-
// TruffleHog returns 0 for no secrets, 183 for secrets found
|
|
192
|
-
if (code === 0 || code === 183) {
|
|
193
|
-
// Parse each line of JSON output
|
|
194
|
-
const lines = stdout.split("\n").filter((line) => line.trim());
|
|
195
|
-
for (const line of lines) {
|
|
196
|
-
const finding = parseTrufflehogResult(line);
|
|
197
|
-
if (finding) {
|
|
198
|
-
findings.push(finding);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
resolve(findings);
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
reject(new Error(`TruffleHog exited with code ${code}: ${stderr || stdout}`));
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
proc.on("error", (error) => {
|
|
208
|
-
if (error.message.includes("ENOENT")) {
|
|
209
|
-
reject(new Error("TruffleHog is not installed. Please install it: https://github.com/trufflesecurity/trufflehog"));
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
reject(error);
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
// Write content to stdin and close the stream
|
|
216
|
-
proc.stdin.write(content);
|
|
217
|
-
proc.stdin.end();
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Checks if TruffleHog is available on the system.
|
|
222
|
-
*
|
|
223
|
-
* @returns Promise resolving to true if TruffleHog is installed and accessible
|
|
224
|
-
*/
|
|
225
|
-
export async function isTrufflehogAvailable() {
|
|
226
|
-
return new Promise((resolve) => {
|
|
227
|
-
const args = ["--version"];
|
|
228
|
-
if (!shouldSkipNoUpdateFlag()) {
|
|
229
|
-
args.push("--no-update");
|
|
230
|
-
}
|
|
231
|
-
const proc = spawn("trufflehog", args, {
|
|
232
|
-
timeout: 5000,
|
|
233
|
-
stdio: ["ignore", "pipe", "pipe"],
|
|
234
|
-
});
|
|
235
|
-
proc.on("close", (code) => {
|
|
236
|
-
resolve(code === 0);
|
|
237
|
-
});
|
|
238
|
-
proc.on("error", () => {
|
|
239
|
-
resolve(false);
|
|
240
|
-
});
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* A reusable secret redactor that can perform fast synchronous redaction.
|
|
245
|
-
*
|
|
246
|
-
* Use this when you need to redact secrets from multiple pieces of content
|
|
247
|
-
* using the same set of findings (e.g., redacting LLM responses based on
|
|
248
|
-
* secrets found in the input prompt).
|
|
249
|
-
*
|
|
250
|
-
* @example
|
|
251
|
-
* ```typescript
|
|
252
|
-
* // Scan input once
|
|
253
|
-
* const result = await scanContentForSecrets(userPrompt);
|
|
254
|
-
* const redactor = new SecretRedactor(result.findings);
|
|
255
|
-
*
|
|
256
|
-
* // Redact multiple outputs synchronously
|
|
257
|
-
* const safeResponse = redactor.redact(llmResponse);
|
|
258
|
-
* const safeToolOutput = redactor.redact(toolResult);
|
|
259
|
-
* ```
|
|
260
|
-
*/
|
|
261
|
-
export class SecretRedactor {
|
|
262
|
-
sortedFindings;
|
|
263
|
-
/**
|
|
264
|
-
* Creates a new SecretRedactor with the given findings.
|
|
265
|
-
*
|
|
266
|
-
* @param findings - Secret findings to use for redaction
|
|
267
|
-
*/
|
|
268
|
-
constructor(findings) {
|
|
269
|
-
// Sort findings by raw length (longest first) to handle overlapping secrets
|
|
270
|
-
this.sortedFindings = [...findings].sort((a, b) => b.raw.length - a.raw.length);
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Redacts secrets from the given content synchronously.
|
|
274
|
-
*
|
|
275
|
-
* @param content - The content to redact secrets from
|
|
276
|
-
* @returns Content with secrets replaced by redacted versions
|
|
277
|
-
*/
|
|
278
|
-
redact(content) {
|
|
279
|
-
if (this.sortedFindings.length === 0 || !content) {
|
|
280
|
-
return content;
|
|
281
|
-
}
|
|
282
|
-
let redacted = content;
|
|
283
|
-
for (const finding of this.sortedFindings) {
|
|
284
|
-
if (finding.raw && finding.redacted) {
|
|
285
|
-
redacted = redacted.split(finding.raw).join(finding.redacted);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
return redacted;
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Redacts secrets from any value (string, object, or array).
|
|
292
|
-
*
|
|
293
|
-
* Recursively processes objects and arrays, redacting any string values.
|
|
294
|
-
*
|
|
295
|
-
* @param value - The value to redact secrets from
|
|
296
|
-
* @returns Value with secrets redacted from all string content
|
|
297
|
-
*/
|
|
298
|
-
redactDeep(value) {
|
|
299
|
-
if (typeof value === "string") {
|
|
300
|
-
return this.redact(value);
|
|
301
|
-
}
|
|
302
|
-
if (Array.isArray(value)) {
|
|
303
|
-
return value.map((item) => this.redactDeep(item));
|
|
304
|
-
}
|
|
305
|
-
if (value !== null && typeof value === "object") {
|
|
306
|
-
const result = {};
|
|
307
|
-
for (const [key, val] of Object.entries(value)) {
|
|
308
|
-
result[key] = this.redactDeep(val);
|
|
309
|
-
}
|
|
310
|
-
return result;
|
|
311
|
-
}
|
|
312
|
-
return value;
|
|
313
|
-
}
|
|
314
|
-
/**
|
|
315
|
-
* Returns true if this redactor has any findings to redact.
|
|
316
|
-
*/
|
|
317
|
-
hasFindings() {
|
|
318
|
-
return this.sortedFindings.length > 0;
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Returns the number of findings this redactor has.
|
|
322
|
-
*/
|
|
323
|
-
get findingCount() {
|
|
324
|
-
return this.sortedFindings.length;
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
export function formatSecretFindings(findings) {
|
|
328
|
-
if (findings.length === 0) {
|
|
329
|
-
return "No secrets detected.";
|
|
330
|
-
}
|
|
331
|
-
const lines = [`Found ${findings.length} potential secret(s):\n`];
|
|
332
|
-
for (const finding of findings) {
|
|
333
|
-
const status = finding.verified ? "✓ VERIFIED" : "? unverified";
|
|
334
|
-
lines.push(` [${status}] ${finding.detectorName}`);
|
|
335
|
-
lines.push(` Type: ${finding.detectorType}`);
|
|
336
|
-
lines.push(` Value: ${finding.redacted}`);
|
|
337
|
-
if (finding.sourceMetadata?.line) {
|
|
338
|
-
lines.push(` Line: ${finding.sourceMetadata.line}`);
|
|
339
|
-
}
|
|
340
|
-
lines.push("");
|
|
341
|
-
}
|
|
342
|
-
return lines.join("\n");
|
|
343
|
-
}
|
|
344
|
-
//# sourceMappingURL=secret-scanner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"secret-scanner.js","sourceRoot":"","sources":["../../../src/ai-service/security/secret-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;;GAGG;AACH,SAAS,sBAAsB;IAC7B,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,QAAQ,CAAC,kBAAkB,EAAE;YAClD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,wDAAwD;AACxD,IAAI,aAAkC,CAAC;AACvC,SAAS,sBAAsB;IAC7B,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,aAAa,GAAG,sBAAsB,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAuDD;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,QAAyB;IAEzB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ,GAAG,OAAO,CAAC;IAEvB,4EAA4E;IAC5E,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CACtC,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACpC,kDAAkD;YAClD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,GAAG,GAAW,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;QACrC,uEAAuE;QACvE,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,SAAS;YAC1D,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;YAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;YAClC,GAAG;YACH,QAAQ;YACR,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI;YACnD,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI;gBACnD,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI;aACpD;SACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,qBAAqB,CAAC,GAAW;IACxC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,6CAA6C;IAC7C,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;IAClC,CAAC;IAED,qDAAqD;IACrD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAe,EACf,UAA6B,EAAE;IAE/B,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEzD,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CACV,oCAAoC,QAAQ,CAAC,MAAM,oBAAoB,CACxE,CAAC;QACF,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEzD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ;YACR,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YACpD,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC/B,eAAe;SAChB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7D,kBAAkB,EAAE,KAAK;YACzB,UAAU,EAAE,KAAK;YACjB,eAAe,EAAE,OAAO,EAAE,mCAAmC;SAC9D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,aAAa,CAC1B,OAAe,EACf,OAAe,EACf,YAAqB;IAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEjC,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE;YACrC,OAAO;YACP,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACtC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACtC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,6DAA6D;YAC7D,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC/B,iCAAiC;gBACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,OAAO,EAAE,CAAC;wBACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,CACJ,IAAI,KAAK,CAAC,+BAA+B,IAAI,KAAK,MAAM,IAAI,MAAM,EAAE,CAAC,CACtE,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,MAAM,CACJ,IAAI,KAAK,CACP,+FAA+F,CAChG,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,8CAA8C;QAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE;YACrC,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,cAAc;IACjB,cAAc,CAAkB;IAExC;;;;OAIG;IACH,YAAY,QAAyB;QACnC,4EAA4E;QAC5E,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CACtC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAe;QACpB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACjD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,QAAQ,GAAG,OAAO,CAAC;QACvB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACpC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,KAAc;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACpC,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAyB;IAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,SAAS,QAAQ,CAAC,MAAM,yBAAyB,CAAC,CAAC;IAE5E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-app-provider.d.ts","sourceRoot":"","sources":["../src/ensure-app-provider.ts"],"names":[],"mappings":"AAsNA,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAwDvE"}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import { parse } from "@babel/parser";
|
|
2
|
-
import * as t from "@babel/types";
|
|
3
|
-
import { EXTERNAL_LIBRARY_OPTIONS } from "./parsing/imports.js";
|
|
4
|
-
import { traverse } from "./traverse.js";
|
|
5
|
-
const LIBRARY_IMPORT_PATH = EXTERNAL_LIBRARY_OPTIONS.find((option) => option.library === "@superblocksteam/library")?.library ?? "@superblocksteam/library";
|
|
6
|
-
const LIBRARY_APP_EXPORT_NAME = "App";
|
|
7
|
-
const REACT_ROUTER_IMPORT_PATH = "react-router";
|
|
8
|
-
const REACT_ROUTER_OUTLET_EXPORT_NAME = "Outlet";
|
|
9
|
-
function isJsxIdentifier(name) {
|
|
10
|
-
return name.type === "JSXIdentifier";
|
|
11
|
-
}
|
|
12
|
-
function getAppProviderLocalNameFromImports(programPath) {
|
|
13
|
-
for (const stmt of programPath.get("body")) {
|
|
14
|
-
if (!stmt.isImportDeclaration())
|
|
15
|
-
continue;
|
|
16
|
-
if (stmt.node.source.value !== LIBRARY_IMPORT_PATH)
|
|
17
|
-
continue;
|
|
18
|
-
for (const spec of stmt.get("specifiers")) {
|
|
19
|
-
if (!spec.isImportSpecifier())
|
|
20
|
-
continue;
|
|
21
|
-
const imported = spec.get("imported");
|
|
22
|
-
const local = spec.get("local");
|
|
23
|
-
if (imported.isIdentifier() &&
|
|
24
|
-
imported.node.name === LIBRARY_APP_EXPORT_NAME) {
|
|
25
|
-
return local.isIdentifier() ? local.node.name : null;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
function getOutletLocalNameFromImports(programPath) {
|
|
32
|
-
for (const stmt of programPath.get("body")) {
|
|
33
|
-
if (!stmt.isImportDeclaration())
|
|
34
|
-
continue;
|
|
35
|
-
if (stmt.node.source.value !== REACT_ROUTER_IMPORT_PATH)
|
|
36
|
-
continue;
|
|
37
|
-
for (const spec of stmt.get("specifiers")) {
|
|
38
|
-
if (!spec.isImportSpecifier())
|
|
39
|
-
continue;
|
|
40
|
-
const imported = spec.get("imported");
|
|
41
|
-
const local = spec.get("local");
|
|
42
|
-
if (imported.isIdentifier() &&
|
|
43
|
-
imported.node.name === REACT_ROUTER_OUTLET_EXPORT_NAME) {
|
|
44
|
-
return local.isIdentifier() ? local.node.name : null;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
function resolveDefaultExportedFunction(programPath) {
|
|
51
|
-
const body = programPath.get("body");
|
|
52
|
-
const defaultExport = body.find((p) => p.isExportDefaultDeclaration());
|
|
53
|
-
if (!defaultExport || !defaultExport.isExportDefaultDeclaration()) {
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
const decl = defaultExport.get("declaration");
|
|
57
|
-
if (decl.isFunctionDeclaration()) {
|
|
58
|
-
return decl;
|
|
59
|
-
}
|
|
60
|
-
if (decl.isArrowFunctionExpression() || decl.isFunctionExpression()) {
|
|
61
|
-
return decl;
|
|
62
|
-
}
|
|
63
|
-
if (decl.isIdentifier()) {
|
|
64
|
-
const binding = defaultExport.scope.getBinding(decl.node.name);
|
|
65
|
-
if (!binding) {
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
const bindingPath = binding.path;
|
|
69
|
-
if (bindingPath.isFunctionDeclaration()) {
|
|
70
|
-
return bindingPath;
|
|
71
|
-
}
|
|
72
|
-
if (bindingPath.isVariableDeclarator()) {
|
|
73
|
-
const init = bindingPath.get("init");
|
|
74
|
-
if (init.isArrowFunctionExpression() || init.isFunctionExpression()) {
|
|
75
|
-
return init;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
function findFirstReturnedJsxExpressionNoMutate(fnPath) {
|
|
82
|
-
const body = fnPath.get("body");
|
|
83
|
-
// Arrow function expression-body returning JSX
|
|
84
|
-
if (!body.isBlockStatement()) {
|
|
85
|
-
if (fnPath.isArrowFunctionExpression() &&
|
|
86
|
-
(body.isJSXElement() || body.isJSXFragment())) {
|
|
87
|
-
return body.node;
|
|
88
|
-
}
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
const returnPath = body.get("body").find((s) => s.isReturnStatement());
|
|
92
|
-
if (!returnPath)
|
|
93
|
-
return null;
|
|
94
|
-
const arg = returnPath.get("argument");
|
|
95
|
-
if (!arg || Array.isArray(arg) || !arg.isExpression())
|
|
96
|
-
return null;
|
|
97
|
-
if (!arg.isJSXElement() && !arg.isJSXFragment())
|
|
98
|
-
return null;
|
|
99
|
-
return arg.node;
|
|
100
|
-
}
|
|
101
|
-
function hasOutletInReturnedJsx(returnedJsx, outletLocalName) {
|
|
102
|
-
let found = false;
|
|
103
|
-
const visit = (node) => {
|
|
104
|
-
if (found)
|
|
105
|
-
return;
|
|
106
|
-
if (t.isJSXElement(node)) {
|
|
107
|
-
const name = node.openingElement.name;
|
|
108
|
-
if (isJsxIdentifier(name) && name.name === outletLocalName) {
|
|
109
|
-
found = true;
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
for (const child of node.children) {
|
|
113
|
-
visit(child);
|
|
114
|
-
if (found)
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
if (t.isJSXFragment(node)) {
|
|
120
|
-
for (const child of node.children) {
|
|
121
|
-
visit(child);
|
|
122
|
-
if (found)
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
visit(returnedJsx);
|
|
128
|
-
return found;
|
|
129
|
-
}
|
|
130
|
-
function hasUnwrappedOutletInReturnedJsx(returnedJsx, providerLocalName, outletLocalName) {
|
|
131
|
-
let foundUnwrappedOutlet = false;
|
|
132
|
-
const visit = (node, underProvider) => {
|
|
133
|
-
if (foundUnwrappedOutlet)
|
|
134
|
-
return;
|
|
135
|
-
if (t.isJSXElement(node)) {
|
|
136
|
-
const name = node.openingElement.name;
|
|
137
|
-
const isProvider = isJsxIdentifier(name) && name.name === providerLocalName;
|
|
138
|
-
const isOutlet = isJsxIdentifier(name) && name.name === outletLocalName;
|
|
139
|
-
const nextUnderProvider = underProvider || isProvider;
|
|
140
|
-
if (isOutlet && !nextUnderProvider) {
|
|
141
|
-
foundUnwrappedOutlet = true;
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
for (const child of node.children) {
|
|
145
|
-
visit(child, nextUnderProvider);
|
|
146
|
-
if (foundUnwrappedOutlet)
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
if (t.isJSXFragment(node)) {
|
|
152
|
-
for (const child of node.children) {
|
|
153
|
-
visit(child, underProvider);
|
|
154
|
-
if (foundUnwrappedOutlet)
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
visit(returnedJsx, false);
|
|
160
|
-
return foundUnwrappedOutlet;
|
|
161
|
-
}
|
|
162
|
-
export function needsAppProviderFixInAppTsx(sourceCode) {
|
|
163
|
-
// Fast pre-check: most files shouldn't be parsed.
|
|
164
|
-
const hasLiteralOutletTag = sourceCode.includes("<Outlet");
|
|
165
|
-
const mightHaveAliasedOutlet = sourceCode.includes(REACT_ROUTER_IMPORT_PATH) &&
|
|
166
|
-
sourceCode.includes(REACT_ROUTER_OUTLET_EXPORT_NAME) &&
|
|
167
|
-
sourceCode.includes("<");
|
|
168
|
-
if (!hasLiteralOutletTag && !mightHaveAliasedOutlet) {
|
|
169
|
-
return false;
|
|
170
|
-
}
|
|
171
|
-
let ast;
|
|
172
|
-
try {
|
|
173
|
-
ast = parse(sourceCode, {
|
|
174
|
-
sourceType: "module",
|
|
175
|
-
plugins: ["typescript", "jsx"],
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
catch {
|
|
179
|
-
return false;
|
|
180
|
-
}
|
|
181
|
-
let programPath = null;
|
|
182
|
-
traverse(ast, {
|
|
183
|
-
Program(path) {
|
|
184
|
-
programPath = path;
|
|
185
|
-
path.stop();
|
|
186
|
-
},
|
|
187
|
-
});
|
|
188
|
-
if (!programPath)
|
|
189
|
-
return false;
|
|
190
|
-
const defaultFn = resolveDefaultExportedFunction(programPath);
|
|
191
|
-
if (!defaultFn)
|
|
192
|
-
return false;
|
|
193
|
-
const returnedJsx = findFirstReturnedJsxExpressionNoMutate(defaultFn);
|
|
194
|
-
if (!returnedJsx)
|
|
195
|
-
return false;
|
|
196
|
-
const outletLocalName = getOutletLocalNameFromImports(programPath) ??
|
|
197
|
-
REACT_ROUTER_OUTLET_EXPORT_NAME;
|
|
198
|
-
// Strict: if there is no Outlet in the returned JSX, we should not complain.
|
|
199
|
-
if (!hasOutletInReturnedJsx(returnedJsx, outletLocalName)) {
|
|
200
|
-
return false;
|
|
201
|
-
}
|
|
202
|
-
const providerLocalName = getAppProviderLocalNameFromImports(programPath);
|
|
203
|
-
if (!providerLocalName) {
|
|
204
|
-
// If Outlet is present but the library App import isn't, Clark must fix App.tsx.
|
|
205
|
-
return true;
|
|
206
|
-
}
|
|
207
|
-
return hasUnwrappedOutletInReturnedJsx(returnedJsx, providerLocalName, outletLocalName);
|
|
208
|
-
}
|
|
209
|
-
//# sourceMappingURL=ensure-app-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-app-provider.js","sourceRoot":"","sources":["../src/ensure-app-provider.ts"],"names":[],"mappings":"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"}
|