@gguf/coder 0.3.1 → 0.3.2
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/package.json +2 -2
- package/pnpm-workspace.yaml +15 -0
- package/color_picker.html +0 -36
- package/scripts/extract-changelog.js +0 -73
- package/scripts/fetch-models.js +0 -143
- package/scripts/test.sh +0 -40
- package/scripts/update-homebrew-formula.sh +0 -125
- package/scripts/update-nix-version.sh +0 -157
- package/source/ai-sdk-client/AISDKClient.spec.ts +0 -117
- package/source/ai-sdk-client/AISDKClient.ts +0 -155
- package/source/ai-sdk-client/chat/chat-handler.spec.ts +0 -121
- package/source/ai-sdk-client/chat/chat-handler.ts +0 -276
- package/source/ai-sdk-client/chat/streaming-handler.spec.ts +0 -173
- package/source/ai-sdk-client/chat/streaming-handler.ts +0 -110
- package/source/ai-sdk-client/chat/tool-processor.spec.ts +0 -92
- package/source/ai-sdk-client/chat/tool-processor.ts +0 -70
- package/source/ai-sdk-client/converters/message-converter.spec.ts +0 -220
- package/source/ai-sdk-client/converters/message-converter.ts +0 -113
- package/source/ai-sdk-client/converters/tool-converter.spec.ts +0 -90
- package/source/ai-sdk-client/converters/tool-converter.ts +0 -46
- package/source/ai-sdk-client/error-handling/error-extractor.spec.ts +0 -55
- package/source/ai-sdk-client/error-handling/error-extractor.ts +0 -15
- package/source/ai-sdk-client/error-handling/error-parser.spec.ts +0 -169
- package/source/ai-sdk-client/error-handling/error-parser.ts +0 -161
- package/source/ai-sdk-client/index.ts +0 -7
- package/source/ai-sdk-client/providers/provider-factory.spec.ts +0 -71
- package/source/ai-sdk-client/providers/provider-factory.ts +0 -41
- package/source/ai-sdk-client/types.ts +0 -9
- package/source/ai-sdk-client-empty-message.spec.ts +0 -141
- package/source/ai-sdk-client-error-handling.spec.ts +0 -186
- package/source/ai-sdk-client-maxretries.spec.ts +0 -114
- package/source/ai-sdk-client-preparestep.spec.ts +0 -279
- package/source/app/App.spec.tsx +0 -32
- package/source/app/App.tsx +0 -480
- package/source/app/components/AppContainer.spec.tsx +0 -96
- package/source/app/components/AppContainer.tsx +0 -56
- package/source/app/components/ChatInterface.spec.tsx +0 -163
- package/source/app/components/ChatInterface.tsx +0 -144
- package/source/app/components/ModalSelectors.spec.tsx +0 -141
- package/source/app/components/ModalSelectors.tsx +0 -135
- package/source/app/helpers.spec.ts +0 -97
- package/source/app/helpers.ts +0 -63
- package/source/app/index.ts +0 -4
- package/source/app/types.ts +0 -39
- package/source/app/utils/appUtils.ts +0 -294
- package/source/app/utils/conversationState.ts +0 -310
- package/source/app.spec.tsx +0 -244
- package/source/cli.spec.ts +0 -73
- package/source/cli.tsx +0 -51
- package/source/client-factory.spec.ts +0 -48
- package/source/client-factory.ts +0 -178
- package/source/command-parser.spec.ts +0 -127
- package/source/command-parser.ts +0 -36
- package/source/commands/checkpoint.spec.tsx +0 -277
- package/source/commands/checkpoint.tsx +0 -366
- package/source/commands/clear.tsx +0 -22
- package/source/commands/custom-commands.tsx +0 -121
- package/source/commands/exit.ts +0 -21
- package/source/commands/export.spec.tsx +0 -131
- package/source/commands/export.tsx +0 -79
- package/source/commands/help.tsx +0 -120
- package/source/commands/index.ts +0 -17
- package/source/commands/init.tsx +0 -339
- package/source/commands/lsp-command.spec.tsx +0 -281
- package/source/commands/lsp.tsx +0 -120
- package/source/commands/mcp-command.spec.tsx +0 -313
- package/source/commands/mcp.tsx +0 -162
- package/source/commands/model-database.spec.tsx +0 -758
- package/source/commands/model-database.tsx +0 -418
- package/source/commands/model.ts +0 -12
- package/source/commands/provider.ts +0 -12
- package/source/commands/setup-config.tsx +0 -16
- package/source/commands/simple-commands.spec.tsx +0 -175
- package/source/commands/status.ts +0 -12
- package/source/commands/theme.ts +0 -12
- package/source/commands/update.spec.tsx +0 -261
- package/source/commands/update.tsx +0 -201
- package/source/commands/usage.spec.tsx +0 -495
- package/source/commands/usage.tsx +0 -100
- package/source/commands.spec.ts +0 -436
- package/source/commands.ts +0 -83
- package/source/components/assistant-message.spec.tsx +0 -796
- package/source/components/assistant-message.tsx +0 -34
- package/source/components/bash-execution-indicator.tsx +0 -21
- package/source/components/cancelling-indicator.tsx +0 -16
- package/source/components/chat-queue.spec.tsx +0 -83
- package/source/components/chat-queue.tsx +0 -36
- package/source/components/checkpoint-display.spec.tsx +0 -219
- package/source/components/checkpoint-display.tsx +0 -126
- package/source/components/checkpoint-selector.spec.tsx +0 -173
- package/source/components/checkpoint-selector.tsx +0 -173
- package/source/components/development-mode-indicator.spec.tsx +0 -268
- package/source/components/development-mode-indicator.tsx +0 -38
- package/source/components/message-box.spec.tsx +0 -427
- package/source/components/message-box.tsx +0 -87
- package/source/components/model-selector.tsx +0 -132
- package/source/components/provider-selector.tsx +0 -75
- package/source/components/random-spinner.tsx +0 -19
- package/source/components/security-disclaimer.tsx +0 -73
- package/source/components/status-connection-display.spec.tsx +0 -133
- package/source/components/status.tsx +0 -267
- package/source/components/theme-selector.tsx +0 -126
- package/source/components/tool-confirmation.tsx +0 -190
- package/source/components/tool-execution-indicator.tsx +0 -33
- package/source/components/tool-message.tsx +0 -85
- package/source/components/ui/titled-box.spec.tsx +0 -207
- package/source/components/ui/titled-box.tsx +0 -57
- package/source/components/usage/progress-bar.spec.tsx +0 -398
- package/source/components/usage/progress-bar.tsx +0 -30
- package/source/components/usage/usage-display.spec.tsx +0 -780
- package/source/components/usage/usage-display.tsx +0 -291
- package/source/components/user-input.spec.tsx +0 -327
- package/source/components/user-input.tsx +0 -533
- package/source/components/user-message.spec.tsx +0 -230
- package/source/components/user-message.tsx +0 -84
- package/source/components/welcome-message.tsx +0 -76
- package/source/config/env-substitution.ts +0 -65
- package/source/config/index.spec.ts +0 -171
- package/source/config/index.ts +0 -154
- package/source/config/paths.spec.ts +0 -241
- package/source/config/paths.ts +0 -55
- package/source/config/preferences.ts +0 -51
- package/source/config/themes.ts +0 -315
- package/source/constants.ts +0 -130
- package/source/context/mode-context.spec.ts +0 -79
- package/source/context/mode-context.ts +0 -24
- package/source/custom-commands/executor.spec.ts +0 -142
- package/source/custom-commands/executor.ts +0 -64
- package/source/custom-commands/loader.spec.ts +0 -314
- package/source/custom-commands/loader.ts +0 -153
- package/source/custom-commands/parser.ts +0 -196
- package/source/hooks/chat-handler/conversation/conversation-loop.spec.ts +0 -39
- package/source/hooks/chat-handler/conversation/conversation-loop.tsx +0 -511
- package/source/hooks/chat-handler/conversation/tool-executor.spec.ts +0 -50
- package/source/hooks/chat-handler/conversation/tool-executor.tsx +0 -109
- package/source/hooks/chat-handler/index.ts +0 -12
- package/source/hooks/chat-handler/state/streaming-state.spec.ts +0 -26
- package/source/hooks/chat-handler/state/streaming-state.ts +0 -19
- package/source/hooks/chat-handler/types.ts +0 -38
- package/source/hooks/chat-handler/useChatHandler.spec.tsx +0 -321
- package/source/hooks/chat-handler/useChatHandler.tsx +0 -194
- package/source/hooks/chat-handler/utils/context-checker.spec.ts +0 -60
- package/source/hooks/chat-handler/utils/context-checker.tsx +0 -73
- package/source/hooks/chat-handler/utils/message-helpers.spec.ts +0 -42
- package/source/hooks/chat-handler/utils/message-helpers.tsx +0 -36
- package/source/hooks/chat-handler/utils/tool-filters.spec.ts +0 -109
- package/source/hooks/chat-handler/utils/tool-filters.ts +0 -64
- package/source/hooks/useAppHandlers.tsx +0 -291
- package/source/hooks/useAppInitialization.tsx +0 -422
- package/source/hooks/useAppState.tsx +0 -311
- package/source/hooks/useDirectoryTrust.tsx +0 -98
- package/source/hooks/useInputState.ts +0 -414
- package/source/hooks/useModeHandlers.tsx +0 -302
- package/source/hooks/useNonInteractiveMode.ts +0 -140
- package/source/hooks/useTerminalWidth.tsx +0 -81
- package/source/hooks/useTheme.ts +0 -18
- package/source/hooks/useToolHandler.tsx +0 -349
- package/source/hooks/useUIState.ts +0 -61
- package/source/init/agents-template-generator.ts +0 -421
- package/source/init/existing-rules-extractor.ts +0 -319
- package/source/init/file-scanner.spec.ts +0 -227
- package/source/init/file-scanner.ts +0 -238
- package/source/init/framework-detector.ts +0 -382
- package/source/init/language-detector.ts +0 -269
- package/source/init/project-analyzer.spec.ts +0 -231
- package/source/init/project-analyzer.ts +0 -458
- package/source/lsp/index.ts +0 -31
- package/source/lsp/lsp-client.spec.ts +0 -508
- package/source/lsp/lsp-client.ts +0 -487
- package/source/lsp/lsp-manager.spec.ts +0 -477
- package/source/lsp/lsp-manager.ts +0 -419
- package/source/lsp/protocol.spec.ts +0 -502
- package/source/lsp/protocol.ts +0 -360
- package/source/lsp/server-discovery.spec.ts +0 -654
- package/source/lsp/server-discovery.ts +0 -515
- package/source/markdown-parser/html-entities.spec.ts +0 -88
- package/source/markdown-parser/html-entities.ts +0 -45
- package/source/markdown-parser/index.spec.ts +0 -281
- package/source/markdown-parser/index.ts +0 -126
- package/source/markdown-parser/table-parser.spec.ts +0 -133
- package/source/markdown-parser/table-parser.ts +0 -114
- package/source/markdown-parser/utils.spec.ts +0 -70
- package/source/markdown-parser/utils.ts +0 -13
- package/source/mcp/mcp-client.spec.ts +0 -81
- package/source/mcp/mcp-client.ts +0 -625
- package/source/mcp/transport-factory.spec.ts +0 -406
- package/source/mcp/transport-factory.ts +0 -312
- package/source/message-handler.ts +0 -67
- package/source/model-database/database-engine.spec.ts +0 -494
- package/source/model-database/database-engine.ts +0 -50
- package/source/model-database/model-database.spec.ts +0 -363
- package/source/model-database/model-database.ts +0 -91
- package/source/model-database/model-engine.spec.ts +0 -447
- package/source/model-database/model-engine.ts +0 -65
- package/source/model-database/model-fetcher.spec.ts +0 -583
- package/source/model-database/model-fetcher.ts +0 -330
- package/source/models/index.ts +0 -1
- package/source/models/models-cache.spec.ts +0 -214
- package/source/models/models-cache.ts +0 -78
- package/source/models/models-dev-client.spec.ts +0 -379
- package/source/models/models-dev-client.ts +0 -329
- package/source/models/models-types.ts +0 -68
- package/source/prompt-history.ts +0 -155
- package/source/security/command-injection.spec.ts +0 -240
- package/source/services/checkpoint-manager.spec.ts +0 -523
- package/source/services/checkpoint-manager.ts +0 -466
- package/source/services/file-snapshot.spec.ts +0 -569
- package/source/services/file-snapshot.ts +0 -220
- package/source/test-utils/render-with-theme.tsx +0 -48
- package/source/tokenization/index.ts +0 -1
- package/source/tokenization/tokenizer-factory.spec.ts +0 -170
- package/source/tokenization/tokenizer-factory.ts +0 -125
- package/source/tokenization/tokenizers/anthropic-tokenizer.spec.ts +0 -200
- package/source/tokenization/tokenizers/anthropic-tokenizer.ts +0 -43
- package/source/tokenization/tokenizers/fallback-tokenizer.spec.ts +0 -236
- package/source/tokenization/tokenizers/fallback-tokenizer.ts +0 -26
- package/source/tokenization/tokenizers/llama-tokenizer.spec.ts +0 -224
- package/source/tokenization/tokenizers/llama-tokenizer.ts +0 -41
- package/source/tokenization/tokenizers/openai-tokenizer.spec.ts +0 -184
- package/source/tokenization/tokenizers/openai-tokenizer.ts +0 -57
- package/source/tool-calling/index.ts +0 -5
- package/source/tool-calling/json-parser.spec.ts +0 -639
- package/source/tool-calling/json-parser.ts +0 -247
- package/source/tool-calling/tool-parser.spec.ts +0 -395
- package/source/tool-calling/tool-parser.ts +0 -120
- package/source/tool-calling/xml-parser.spec.ts +0 -662
- package/source/tool-calling/xml-parser.ts +0 -289
- package/source/tools/execute-bash.spec.tsx +0 -353
- package/source/tools/execute-bash.tsx +0 -219
- package/source/tools/execute-function.spec.ts +0 -130
- package/source/tools/fetch-url.spec.tsx +0 -342
- package/source/tools/fetch-url.tsx +0 -172
- package/source/tools/find-files.spec.tsx +0 -924
- package/source/tools/find-files.tsx +0 -293
- package/source/tools/index.ts +0 -102
- package/source/tools/lsp-get-diagnostics.tsx +0 -192
- package/source/tools/needs-approval.spec.ts +0 -282
- package/source/tools/read-file.spec.tsx +0 -801
- package/source/tools/read-file.tsx +0 -387
- package/source/tools/search-file-contents.spec.tsx +0 -1273
- package/source/tools/search-file-contents.tsx +0 -293
- package/source/tools/string-replace.spec.tsx +0 -730
- package/source/tools/string-replace.tsx +0 -548
- package/source/tools/tool-manager.ts +0 -210
- package/source/tools/tool-registry.spec.ts +0 -415
- package/source/tools/tool-registry.ts +0 -228
- package/source/tools/web-search.tsx +0 -223
- package/source/tools/write-file.spec.tsx +0 -559
- package/source/tools/write-file.tsx +0 -228
- package/source/types/app.ts +0 -37
- package/source/types/checkpoint.ts +0 -48
- package/source/types/commands.ts +0 -46
- package/source/types/components.ts +0 -27
- package/source/types/config.ts +0 -103
- package/source/types/core-connection-status.spec.ts +0 -67
- package/source/types/core.ts +0 -181
- package/source/types/hooks.ts +0 -50
- package/source/types/index.ts +0 -12
- package/source/types/markdown-parser.ts +0 -11
- package/source/types/mcp.ts +0 -52
- package/source/types/system.ts +0 -16
- package/source/types/tokenization.ts +0 -41
- package/source/types/ui.ts +0 -40
- package/source/types/usage.ts +0 -58
- package/source/types/utils.ts +0 -16
- package/source/usage/calculator.spec.ts +0 -385
- package/source/usage/calculator.ts +0 -104
- package/source/usage/storage.spec.ts +0 -703
- package/source/usage/storage.ts +0 -238
- package/source/usage/tracker.spec.ts +0 -456
- package/source/usage/tracker.ts +0 -102
- package/source/utils/atomic-deletion.spec.ts +0 -194
- package/source/utils/atomic-deletion.ts +0 -127
- package/source/utils/bounded-map.spec.ts +0 -300
- package/source/utils/bounded-map.ts +0 -193
- package/source/utils/checkpoint-utils.spec.ts +0 -222
- package/source/utils/checkpoint-utils.ts +0 -92
- package/source/utils/error-formatter.spec.ts +0 -169
- package/source/utils/error-formatter.ts +0 -194
- package/source/utils/file-autocomplete.spec.ts +0 -173
- package/source/utils/file-autocomplete.ts +0 -196
- package/source/utils/file-cache.spec.ts +0 -309
- package/source/utils/file-cache.ts +0 -195
- package/source/utils/file-content-loader.spec.ts +0 -180
- package/source/utils/file-content-loader.ts +0 -179
- package/source/utils/file-mention-handler.spec.ts +0 -261
- package/source/utils/file-mention-handler.ts +0 -84
- package/source/utils/file-mention-parser.spec.ts +0 -182
- package/source/utils/file-mention-parser.ts +0 -170
- package/source/utils/fuzzy-matching.spec.ts +0 -149
- package/source/utils/fuzzy-matching.ts +0 -146
- package/source/utils/indentation-normalizer.spec.ts +0 -216
- package/source/utils/indentation-normalizer.ts +0 -76
- package/source/utils/installation-detector.spec.ts +0 -178
- package/source/utils/installation-detector.ts +0 -153
- package/source/utils/logging/config.spec.ts +0 -311
- package/source/utils/logging/config.ts +0 -210
- package/source/utils/logging/console-facade.spec.ts +0 -184
- package/source/utils/logging/console-facade.ts +0 -384
- package/source/utils/logging/correlation.spec.ts +0 -679
- package/source/utils/logging/correlation.ts +0 -474
- package/source/utils/logging/formatters.spec.ts +0 -464
- package/source/utils/logging/formatters.ts +0 -207
- package/source/utils/logging/health-monitor/alerts/alert-manager.spec.ts +0 -93
- package/source/utils/logging/health-monitor/alerts/alert-manager.ts +0 -79
- package/source/utils/logging/health-monitor/checks/configuration-check.spec.ts +0 -56
- package/source/utils/logging/health-monitor/checks/configuration-check.ts +0 -43
- package/source/utils/logging/health-monitor/checks/logging-check.spec.ts +0 -56
- package/source/utils/logging/health-monitor/checks/logging-check.ts +0 -58
- package/source/utils/logging/health-monitor/checks/memory-check.spec.ts +0 -100
- package/source/utils/logging/health-monitor/checks/memory-check.ts +0 -78
- package/source/utils/logging/health-monitor/checks/performance-check.spec.ts +0 -56
- package/source/utils/logging/health-monitor/checks/performance-check.ts +0 -56
- package/source/utils/logging/health-monitor/checks/request-check.spec.ts +0 -56
- package/source/utils/logging/health-monitor/checks/request-check.ts +0 -76
- package/source/utils/logging/health-monitor/core/health-check-runner.spec.ts +0 -70
- package/source/utils/logging/health-monitor/core/health-check-runner.ts +0 -138
- package/source/utils/logging/health-monitor/core/health-monitor.spec.ts +0 -58
- package/source/utils/logging/health-monitor/core/health-monitor.ts +0 -344
- package/source/utils/logging/health-monitor/core/scoring.spec.ts +0 -65
- package/source/utils/logging/health-monitor/core/scoring.ts +0 -91
- package/source/utils/logging/health-monitor/index.ts +0 -15
- package/source/utils/logging/health-monitor/instances.ts +0 -48
- package/source/utils/logging/health-monitor/middleware/http-middleware.spec.ts +0 -141
- package/source/utils/logging/health-monitor/middleware/http-middleware.ts +0 -75
- package/source/utils/logging/health-monitor/types.ts +0 -126
- package/source/utils/logging/index.spec.ts +0 -284
- package/source/utils/logging/index.ts +0 -236
- package/source/utils/logging/integration.spec.ts +0 -441
- package/source/utils/logging/log-method-factory.spec.ts +0 -573
- package/source/utils/logging/log-method-factory.ts +0 -233
- package/source/utils/logging/log-query/aggregation/aggregator.spec.ts +0 -277
- package/source/utils/logging/log-query/aggregation/aggregator.ts +0 -159
- package/source/utils/logging/log-query/aggregation/facet-generator.spec.ts +0 -159
- package/source/utils/logging/log-query/aggregation/facet-generator.ts +0 -47
- package/source/utils/logging/log-query/index.ts +0 -23
- package/source/utils/logging/log-query/query/filter-predicates.spec.ts +0 -247
- package/source/utils/logging/log-query/query/filter-predicates.ts +0 -154
- package/source/utils/logging/log-query/query/query-builder.spec.ts +0 -182
- package/source/utils/logging/log-query/query/query-builder.ts +0 -151
- package/source/utils/logging/log-query/query/query-engine.spec.ts +0 -214
- package/source/utils/logging/log-query/query/query-engine.ts +0 -45
- package/source/utils/logging/log-query/storage/circular-buffer.spec.ts +0 -143
- package/source/utils/logging/log-query/storage/circular-buffer.ts +0 -75
- package/source/utils/logging/log-query/storage/index-manager.spec.ts +0 -150
- package/source/utils/logging/log-query/storage/index-manager.ts +0 -71
- package/source/utils/logging/log-query/storage/log-storage.spec.ts +0 -257
- package/source/utils/logging/log-query/storage/log-storage.ts +0 -80
- package/source/utils/logging/log-query/types.ts +0 -163
- package/source/utils/logging/log-query/utils/helpers.spec.ts +0 -263
- package/source/utils/logging/log-query/utils/helpers.ts +0 -72
- package/source/utils/logging/log-query/utils/sorting.spec.ts +0 -182
- package/source/utils/logging/log-query/utils/sorting.ts +0 -61
- package/source/utils/logging/logger-provider.spec.ts +0 -262
- package/source/utils/logging/logger-provider.ts +0 -362
- package/source/utils/logging/performance.spec.ts +0 -209
- package/source/utils/logging/performance.ts +0 -757
- package/source/utils/logging/pino-logger.spec.ts +0 -425
- package/source/utils/logging/pino-logger.ts +0 -514
- package/source/utils/logging/redaction.spec.ts +0 -490
- package/source/utils/logging/redaction.ts +0 -267
- package/source/utils/logging/request-tracker.spec.ts +0 -1198
- package/source/utils/logging/request-tracker.ts +0 -803
- package/source/utils/logging/transports.spec.ts +0 -505
- package/source/utils/logging/transports.ts +0 -305
- package/source/utils/logging/types.ts +0 -216
- package/source/utils/message-builder.spec.ts +0 -179
- package/source/utils/message-builder.ts +0 -101
- package/source/utils/message-queue.tsx +0 -486
- package/source/utils/paste-detection.spec.ts +0 -69
- package/source/utils/paste-detection.ts +0 -124
- package/source/utils/paste-roundtrip.spec.ts +0 -442
- package/source/utils/paste-utils.spec.ts +0 -128
- package/source/utils/paste-utils.ts +0 -52
- package/source/utils/programming-language-helper.spec.ts +0 -74
- package/source/utils/programming-language-helper.ts +0 -32
- package/source/utils/prompt-assembly.spec.ts +0 -221
- package/source/utils/prompt-processor.ts +0 -173
- package/source/utils/tool-args-parser.spec.ts +0 -136
- package/source/utils/tool-args-parser.ts +0 -54
- package/source/utils/tool-cancellation.spec.ts +0 -230
- package/source/utils/tool-cancellation.ts +0 -28
- package/source/utils/tool-result-display.spec.tsx +0 -469
- package/source/utils/tool-result-display.tsx +0 -90
- package/source/utils/update-checker.spec.ts +0 -383
- package/source/utils/update-checker.ts +0 -183
- package/source/wizard/config-wizard.spec.tsx +0 -103
- package/source/wizard/config-wizard.tsx +0 -382
- package/source/wizard/steps/location-step.spec.tsx +0 -186
- package/source/wizard/steps/location-step.tsx +0 -147
- package/source/wizard/steps/mcp-step.spec.tsx +0 -607
- package/source/wizard/steps/mcp-step.tsx +0 -632
- package/source/wizard/steps/provider-step.spec.tsx +0 -342
- package/source/wizard/steps/provider-step.tsx +0 -957
- package/source/wizard/steps/summary-step.spec.tsx +0 -749
- package/source/wizard/steps/summary-step.tsx +0 -228
- package/source/wizard/templates/mcp-templates.spec.ts +0 -613
- package/source/wizard/templates/mcp-templates.ts +0 -570
- package/source/wizard/templates/provider-templates.spec.ts +0 -152
- package/source/wizard/templates/provider-templates.ts +0 -485
- package/source/wizard/utils/fetch-cloud-models.spec.ts +0 -428
- package/source/wizard/utils/fetch-cloud-models.ts +0 -223
- package/source/wizard/utils/fetch-local-models.spec.ts +0 -297
- package/source/wizard/utils/fetch-local-models.ts +0 -192
- package/source/wizard/validation-array.spec.ts +0 -264
- package/source/wizard/validation.spec.ts +0 -373
- package/source/wizard/validation.ts +0 -232
|
@@ -1,573 +0,0 @@
|
|
|
1
|
-
import test from 'ava';
|
|
2
|
-
import {createLogMethod, createLogMethods} from './log-method-factory.js';
|
|
3
|
-
|
|
4
|
-
// Mock logger for testing
|
|
5
|
-
class MockLogger {
|
|
6
|
-
private logs: Array<{level: string; args: unknown[]}> = [];
|
|
7
|
-
|
|
8
|
-
fatal(...args: unknown[]) {
|
|
9
|
-
this.logs.push({level: 'fatal', args});
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
error(...args: unknown[]) {
|
|
13
|
-
this.logs.push({level: 'error', args});
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
warn(...args: unknown[]) {
|
|
17
|
-
this.logs.push({level: 'warn', args});
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
info(...args: unknown[]) {
|
|
21
|
-
this.logs.push({level: 'info', args});
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
http(...args: unknown[]) {
|
|
25
|
-
this.logs.push({level: 'http', args});
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
debug(...args: unknown[]) {
|
|
29
|
-
this.logs.push({level: 'debug', args});
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
trace(...args: unknown[]) {
|
|
33
|
-
this.logs.push({level: 'trace', args});
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
getLogs() {
|
|
37
|
-
return this.logs;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
clear() {
|
|
41
|
-
this.logs = [];
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// Test createLogMethod function
|
|
46
|
-
// ============================================================================
|
|
47
|
-
|
|
48
|
-
test('createLogMethod creates function that logs messages', t => {
|
|
49
|
-
const mockLogger = new MockLogger();
|
|
50
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
51
|
-
|
|
52
|
-
t.truthy(logMethod);
|
|
53
|
-
t.is(typeof logMethod, 'function');
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
test('createLogMethod handles string-first signature', t => {
|
|
57
|
-
const mockLogger = new MockLogger();
|
|
58
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
59
|
-
|
|
60
|
-
logMethod('test message', {key: 'value'});
|
|
61
|
-
|
|
62
|
-
const logs = mockLogger.getLogs();
|
|
63
|
-
t.is(logs.length, 1);
|
|
64
|
-
t.is(logs[0].level, 'info');
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
test('createLogMethod handles object-first signature', t => {
|
|
68
|
-
const mockLogger = new MockLogger();
|
|
69
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
70
|
-
|
|
71
|
-
logMethod({key: 'value'}, 'test message');
|
|
72
|
-
|
|
73
|
-
const logs = mockLogger.getLogs();
|
|
74
|
-
t.is(logs.length, 1);
|
|
75
|
-
t.is(logs[0].level, 'info');
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
test('createLogMethod with contextPrefix adds prefix to messages', t => {
|
|
79
|
-
const mockLogger = new MockLogger();
|
|
80
|
-
const logMethod = createLogMethod(mockLogger, 'info', {
|
|
81
|
-
contextPrefix: 'TEST',
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
logMethod('test message');
|
|
85
|
-
|
|
86
|
-
const logs = mockLogger.getLogs();
|
|
87
|
-
t.is(logs.length, 1);
|
|
88
|
-
t.true(String(logs[0].args[0]).includes('[TEST]'));
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
test('createLogMethod with consolePrefix handles console logger', t => {
|
|
92
|
-
const originalConsole = console.info;
|
|
93
|
-
let consoleCalled = false;
|
|
94
|
-
console.info = (...args: unknown[]) => {
|
|
95
|
-
consoleCalled = true;
|
|
96
|
-
originalConsole(...args);
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
const logMethod = createLogMethod(console, 'info', {consolePrefix: 'TEST'});
|
|
100
|
-
|
|
101
|
-
logMethod('test message');
|
|
102
|
-
|
|
103
|
-
t.true(consoleCalled);
|
|
104
|
-
|
|
105
|
-
// Restore console
|
|
106
|
-
console.info = originalConsole;
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
test('createLogMethod with transformArgs transforms arguments', t => {
|
|
110
|
-
const mockLogger = new MockLogger();
|
|
111
|
-
const transformArgs = (args: unknown[]) => [args[0], 'transformed'];
|
|
112
|
-
|
|
113
|
-
const logMethod = createLogMethod(mockLogger, 'info', {transformArgs});
|
|
114
|
-
|
|
115
|
-
logMethod('test message', 'original');
|
|
116
|
-
|
|
117
|
-
const logs = mockLogger.getLogs();
|
|
118
|
-
t.is(logs.length, 1);
|
|
119
|
-
t.true(logs[0].args.includes('transformed'));
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
test('createLogMethod with transformResult transforms result', t => {
|
|
123
|
-
const mockLogger = new MockLogger();
|
|
124
|
-
let transformCalled = false;
|
|
125
|
-
const transformResult = () => {
|
|
126
|
-
transformCalled = true;
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
const logMethod = createLogMethod(mockLogger, 'info', {transformResult});
|
|
130
|
-
|
|
131
|
-
logMethod('test message');
|
|
132
|
-
|
|
133
|
-
t.true(transformCalled);
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
test('createLogMethod handles logger without level method gracefully', t => {
|
|
137
|
-
const mockLogger = {info: undefined};
|
|
138
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
139
|
-
|
|
140
|
-
// Should not throw
|
|
141
|
-
logMethod('test message');
|
|
142
|
-
t.pass();
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
test('createLogMethod handles logger method errors with fallback', t => {
|
|
146
|
-
const mockLogger = {
|
|
147
|
-
info: () => {
|
|
148
|
-
throw new Error('Mock error');
|
|
149
|
-
},
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
const originalConsole = console.info;
|
|
153
|
-
let consoleCalled = false;
|
|
154
|
-
console.info = (...args: unknown[]) => {
|
|
155
|
-
consoleCalled = true;
|
|
156
|
-
originalConsole(...args);
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
160
|
-
|
|
161
|
-
// Should fallback to console
|
|
162
|
-
logMethod('test message');
|
|
163
|
-
|
|
164
|
-
t.true(consoleCalled);
|
|
165
|
-
|
|
166
|
-
// Restore console
|
|
167
|
-
console.info = originalConsole;
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
// Test createLogMethods function
|
|
171
|
-
// ============================================================================
|
|
172
|
-
|
|
173
|
-
test('createLogMethods creates all standard log methods', t => {
|
|
174
|
-
const mockLogger = new MockLogger();
|
|
175
|
-
const logMethods = createLogMethods(mockLogger);
|
|
176
|
-
|
|
177
|
-
t.truthy(logMethods);
|
|
178
|
-
t.is(typeof logMethods.fatal, 'function');
|
|
179
|
-
t.is(typeof logMethods.error, 'function');
|
|
180
|
-
t.is(typeof logMethods.warn, 'function');
|
|
181
|
-
t.is(typeof logMethods.info, 'function');
|
|
182
|
-
t.is(typeof logMethods.http, 'function');
|
|
183
|
-
t.is(typeof logMethods.debug, 'function');
|
|
184
|
-
t.is(typeof logMethods.trace, 'function');
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
test('createLogMethods with contextPrefix adds prefix to all methods', t => {
|
|
188
|
-
const mockLogger = new MockLogger();
|
|
189
|
-
const logMethods = createLogMethods(mockLogger, {contextPrefix: 'TEST'});
|
|
190
|
-
|
|
191
|
-
logMethods.info('info message');
|
|
192
|
-
logMethods.error('error message');
|
|
193
|
-
logMethods.warn('warn message');
|
|
194
|
-
|
|
195
|
-
const logs = mockLogger.getLogs();
|
|
196
|
-
t.is(logs.length, 3);
|
|
197
|
-
t.true(String(logs[0].args[0]).includes('[INFO]'));
|
|
198
|
-
t.true(String(logs[1].args[0]).includes('[ERROR]'));
|
|
199
|
-
t.true(String(logs[2].args[0]).includes('[WARN]'));
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
test('createLogMethods with transformArgs transforms arguments for all methods', t => {
|
|
203
|
-
const mockLogger = new MockLogger();
|
|
204
|
-
const transformArgs = (args: unknown[], level?: string) => [level, ...args];
|
|
205
|
-
|
|
206
|
-
const logMethods = createLogMethods(mockLogger, {transformArgs});
|
|
207
|
-
|
|
208
|
-
logMethods.info('info message');
|
|
209
|
-
logMethods.error('error message');
|
|
210
|
-
|
|
211
|
-
const logs = mockLogger.getLogs();
|
|
212
|
-
t.is(logs.length, 2);
|
|
213
|
-
t.true(logs[0].args.includes('info'));
|
|
214
|
-
t.true(logs[1].args.includes('error'));
|
|
215
|
-
});
|
|
216
|
-
|
|
217
|
-
test('createLogMethods with transformResult transforms result for all methods', t => {
|
|
218
|
-
const mockLogger = new MockLogger();
|
|
219
|
-
let transformCount = 0;
|
|
220
|
-
const transformResult = () => {
|
|
221
|
-
transformCount++;
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
const logMethods = createLogMethods(mockLogger, {transformResult});
|
|
225
|
-
|
|
226
|
-
logMethods.info('info message');
|
|
227
|
-
logMethods.error('error message');
|
|
228
|
-
logMethods.warn('warn message');
|
|
229
|
-
|
|
230
|
-
t.is(transformCount, 3);
|
|
231
|
-
});
|
|
232
|
-
|
|
233
|
-
test('createLogMethods handles console logger with consolePrefix', t => {
|
|
234
|
-
const originalConsole = console.info;
|
|
235
|
-
let consoleInfoCalled = false;
|
|
236
|
-
console.info = (...args: unknown[]) => {
|
|
237
|
-
consoleInfoCalled = true;
|
|
238
|
-
originalConsole(...args);
|
|
239
|
-
};
|
|
240
|
-
|
|
241
|
-
const logMethods = createLogMethods(console, {consolePrefix: 'TEST'});
|
|
242
|
-
|
|
243
|
-
logMethods.info('test message');
|
|
244
|
-
|
|
245
|
-
t.true(consoleInfoCalled);
|
|
246
|
-
|
|
247
|
-
// Restore console
|
|
248
|
-
console.info = originalConsole;
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
// Test different log levels
|
|
252
|
-
// ============================================================================
|
|
253
|
-
|
|
254
|
-
test('createLogMethod creates fatal level method', t => {
|
|
255
|
-
const mockLogger = new MockLogger();
|
|
256
|
-
const logMethod = createLogMethod(mockLogger, 'fatal');
|
|
257
|
-
|
|
258
|
-
logMethod('fatal message');
|
|
259
|
-
|
|
260
|
-
const logs = mockLogger.getLogs();
|
|
261
|
-
t.is(logs.length, 1);
|
|
262
|
-
t.is(logs[0].level, 'fatal');
|
|
263
|
-
});
|
|
264
|
-
|
|
265
|
-
test('createLogMethod creates error level method', t => {
|
|
266
|
-
const mockLogger = new MockLogger();
|
|
267
|
-
const logMethod = createLogMethod(mockLogger, 'error');
|
|
268
|
-
|
|
269
|
-
logMethod('error message');
|
|
270
|
-
|
|
271
|
-
const logs = mockLogger.getLogs();
|
|
272
|
-
t.is(logs.length, 1);
|
|
273
|
-
t.is(logs[0].level, 'error');
|
|
274
|
-
});
|
|
275
|
-
|
|
276
|
-
test('createLogMethod creates warn level method', t => {
|
|
277
|
-
const mockLogger = new MockLogger();
|
|
278
|
-
const logMethod = createLogMethod(mockLogger, 'warn');
|
|
279
|
-
|
|
280
|
-
logMethod('warn message');
|
|
281
|
-
|
|
282
|
-
const logs = mockLogger.getLogs();
|
|
283
|
-
t.is(logs.length, 1);
|
|
284
|
-
t.is(logs[0].level, 'warn');
|
|
285
|
-
});
|
|
286
|
-
|
|
287
|
-
test('createLogMethod creates debug level method', t => {
|
|
288
|
-
const mockLogger = new MockLogger();
|
|
289
|
-
const logMethod = createLogMethod(mockLogger, 'debug');
|
|
290
|
-
|
|
291
|
-
logMethod('debug message');
|
|
292
|
-
|
|
293
|
-
const logs = mockLogger.getLogs();
|
|
294
|
-
t.is(logs.length, 1);
|
|
295
|
-
t.is(logs[0].level, 'debug');
|
|
296
|
-
});
|
|
297
|
-
|
|
298
|
-
test('createLogMethod creates trace level method', t => {
|
|
299
|
-
const mockLogger = new MockLogger();
|
|
300
|
-
const logMethod = createLogMethod(mockLogger, 'trace');
|
|
301
|
-
|
|
302
|
-
logMethod('trace message');
|
|
303
|
-
|
|
304
|
-
const logs = mockLogger.getLogs();
|
|
305
|
-
t.is(logs.length, 1);
|
|
306
|
-
t.is(logs[0].level, 'trace');
|
|
307
|
-
});
|
|
308
|
-
|
|
309
|
-
test('createLogMethod creates http level method', t => {
|
|
310
|
-
const mockLogger = new MockLogger();
|
|
311
|
-
const logMethod = createLogMethod(mockLogger, 'http');
|
|
312
|
-
|
|
313
|
-
logMethod('http message');
|
|
314
|
-
|
|
315
|
-
const logs = mockLogger.getLogs();
|
|
316
|
-
t.is(logs.length, 1);
|
|
317
|
-
t.is(logs[0].level, 'http');
|
|
318
|
-
});
|
|
319
|
-
|
|
320
|
-
// Test edge cases
|
|
321
|
-
// ============================================================================
|
|
322
|
-
|
|
323
|
-
test('createLogMethod handles empty message', t => {
|
|
324
|
-
const mockLogger = new MockLogger();
|
|
325
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
326
|
-
|
|
327
|
-
// Should not throw
|
|
328
|
-
logMethod('');
|
|
329
|
-
t.pass();
|
|
330
|
-
});
|
|
331
|
-
|
|
332
|
-
test('createLogMethod handles null object', t => {
|
|
333
|
-
const mockLogger = new MockLogger();
|
|
334
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
335
|
-
|
|
336
|
-
// Should not throw
|
|
337
|
-
logMethod(null as any, 'message');
|
|
338
|
-
t.pass();
|
|
339
|
-
});
|
|
340
|
-
|
|
341
|
-
test('createLogMethod handles undefined arguments', t => {
|
|
342
|
-
const mockLogger = new MockLogger();
|
|
343
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
344
|
-
|
|
345
|
-
// Should not throw
|
|
346
|
-
logMethod('message', undefined);
|
|
347
|
-
t.pass();
|
|
348
|
-
});
|
|
349
|
-
|
|
350
|
-
test('createLogMethod handles complex objects', t => {
|
|
351
|
-
const mockLogger = new MockLogger();
|
|
352
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
353
|
-
|
|
354
|
-
const complexObj = {
|
|
355
|
-
nested: {
|
|
356
|
-
deep: {
|
|
357
|
-
value: 'test',
|
|
358
|
-
},
|
|
359
|
-
},
|
|
360
|
-
array: [1, 2, 3],
|
|
361
|
-
func: () => 'test',
|
|
362
|
-
};
|
|
363
|
-
|
|
364
|
-
// Should not throw
|
|
365
|
-
logMethod(complexObj, 'complex object');
|
|
366
|
-
t.pass();
|
|
367
|
-
});
|
|
368
|
-
|
|
369
|
-
// Test console fallback for trace level
|
|
370
|
-
// ============================================================================
|
|
371
|
-
|
|
372
|
-
test('createLogMethod falls back to console.log for trace level', t => {
|
|
373
|
-
const mockLogger = {
|
|
374
|
-
trace: () => {
|
|
375
|
-
throw new Error('Trace not supported');
|
|
376
|
-
},
|
|
377
|
-
};
|
|
378
|
-
|
|
379
|
-
const originalConsole = console.log;
|
|
380
|
-
let consoleCalled = false;
|
|
381
|
-
console.log = (...args: unknown[]) => {
|
|
382
|
-
consoleCalled = true;
|
|
383
|
-
originalConsole(...args);
|
|
384
|
-
};
|
|
385
|
-
|
|
386
|
-
const logMethod = createLogMethod(mockLogger, 'trace');
|
|
387
|
-
|
|
388
|
-
logMethod('trace message');
|
|
389
|
-
|
|
390
|
-
t.true(consoleCalled);
|
|
391
|
-
|
|
392
|
-
// Restore console
|
|
393
|
-
console.log = originalConsole;
|
|
394
|
-
});
|
|
395
|
-
|
|
396
|
-
// Test method signature compatibility
|
|
397
|
-
// ============================================================================
|
|
398
|
-
|
|
399
|
-
test('createLogMethod supports both string-first and object-first signatures', t => {
|
|
400
|
-
const mockLogger = new MockLogger();
|
|
401
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
402
|
-
|
|
403
|
-
// String-first signature
|
|
404
|
-
logMethod('message', {key: 'value'});
|
|
405
|
-
|
|
406
|
-
// Object-first signature
|
|
407
|
-
logMethod({key: 'value'}, 'message');
|
|
408
|
-
|
|
409
|
-
const logs = mockLogger.getLogs();
|
|
410
|
-
t.is(logs.length, 2);
|
|
411
|
-
});
|
|
412
|
-
|
|
413
|
-
// Test error handling in transform functions
|
|
414
|
-
// ============================================================================
|
|
415
|
-
|
|
416
|
-
test('createLogMethod handles errors in transformArgs gracefully', t => {
|
|
417
|
-
const mockLogger = new MockLogger();
|
|
418
|
-
const transformArgs = () => {
|
|
419
|
-
throw new Error('Transform error');
|
|
420
|
-
};
|
|
421
|
-
|
|
422
|
-
const logMethod = createLogMethod(mockLogger, 'info', {transformArgs});
|
|
423
|
-
|
|
424
|
-
// Should not throw
|
|
425
|
-
logMethod('test message');
|
|
426
|
-
t.pass();
|
|
427
|
-
});
|
|
428
|
-
|
|
429
|
-
test('createLogMethod handles errors in transformResult gracefully', t => {
|
|
430
|
-
const mockLogger = new MockLogger();
|
|
431
|
-
const transformResult = () => {
|
|
432
|
-
throw new Error('Transform error');
|
|
433
|
-
};
|
|
434
|
-
|
|
435
|
-
const logMethod = createLogMethod(mockLogger, 'info', {transformResult});
|
|
436
|
-
|
|
437
|
-
// Should not throw
|
|
438
|
-
logMethod('test message');
|
|
439
|
-
t.pass();
|
|
440
|
-
});
|
|
441
|
-
|
|
442
|
-
// Test console method mapping
|
|
443
|
-
// ============================================================================
|
|
444
|
-
|
|
445
|
-
test('createLogMethod maps trace level to console.log', t => {
|
|
446
|
-
const originalConsole = console.log;
|
|
447
|
-
let consoleCalled = false;
|
|
448
|
-
console.log = (...args: unknown[]) => {
|
|
449
|
-
consoleCalled = true;
|
|
450
|
-
originalConsole(...args);
|
|
451
|
-
};
|
|
452
|
-
|
|
453
|
-
const logMethod = createLogMethod(console, 'trace', {
|
|
454
|
-
consolePrefix: 'TEST',
|
|
455
|
-
consoleMethod: 'log',
|
|
456
|
-
});
|
|
457
|
-
|
|
458
|
-
logMethod('trace message');
|
|
459
|
-
|
|
460
|
-
t.true(consoleCalled);
|
|
461
|
-
|
|
462
|
-
// Restore console
|
|
463
|
-
console.log = originalConsole;
|
|
464
|
-
});
|
|
465
|
-
|
|
466
|
-
test('createLogMethod maps info level to console.info', t => {
|
|
467
|
-
const originalConsole = console.info;
|
|
468
|
-
let consoleCalled = false;
|
|
469
|
-
console.info = (...args: unknown[]) => {
|
|
470
|
-
consoleCalled = true;
|
|
471
|
-
originalConsole(...args);
|
|
472
|
-
};
|
|
473
|
-
|
|
474
|
-
const logMethod = createLogMethod(console, 'info', {consolePrefix: 'TEST'});
|
|
475
|
-
|
|
476
|
-
logMethod('info message');
|
|
477
|
-
|
|
478
|
-
t.true(consoleCalled);
|
|
479
|
-
|
|
480
|
-
// Restore console
|
|
481
|
-
console.info = originalConsole;
|
|
482
|
-
});
|
|
483
|
-
|
|
484
|
-
test('createLogMethod maps error level to console.error', t => {
|
|
485
|
-
const originalConsole = console.error;
|
|
486
|
-
let consoleCalled = false;
|
|
487
|
-
console.error = (...args: unknown[]) => {
|
|
488
|
-
consoleCalled = true;
|
|
489
|
-
originalConsole(...args);
|
|
490
|
-
};
|
|
491
|
-
|
|
492
|
-
const logMethod = createLogMethod(console, 'error', {consolePrefix: 'TEST'});
|
|
493
|
-
|
|
494
|
-
logMethod('error message');
|
|
495
|
-
|
|
496
|
-
t.true(consoleCalled);
|
|
497
|
-
|
|
498
|
-
// Restore console
|
|
499
|
-
console.error = originalConsole;
|
|
500
|
-
});
|
|
501
|
-
|
|
502
|
-
// Test multiple arguments handling
|
|
503
|
-
// ============================================================================
|
|
504
|
-
|
|
505
|
-
test('createLogMethod handles multiple arguments', t => {
|
|
506
|
-
const mockLogger = new MockLogger();
|
|
507
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
508
|
-
|
|
509
|
-
logMethod('message', 'arg1', 'arg2', {key: 'value'});
|
|
510
|
-
|
|
511
|
-
const logs = mockLogger.getLogs();
|
|
512
|
-
t.is(logs.length, 1);
|
|
513
|
-
t.is(logs[0].args.length, 4); // message + 3 args
|
|
514
|
-
});
|
|
515
|
-
|
|
516
|
-
test('createLogMethod handles object-first with multiple arguments', t => {
|
|
517
|
-
const mockLogger = new MockLogger();
|
|
518
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
519
|
-
|
|
520
|
-
logMethod('message', {key: 'value'}, 'arg1', 'arg2');
|
|
521
|
-
|
|
522
|
-
const logs = mockLogger.getLogs();
|
|
523
|
-
t.is(logs.length, 1);
|
|
524
|
-
});
|
|
525
|
-
|
|
526
|
-
// Test type safety
|
|
527
|
-
// ============================================================================
|
|
528
|
-
|
|
529
|
-
test('createLogMethod returns function with correct type signature', t => {
|
|
530
|
-
const mockLogger = new MockLogger();
|
|
531
|
-
const logMethod = createLogMethod(mockLogger, 'info');
|
|
532
|
-
|
|
533
|
-
// Should accept string-first signature
|
|
534
|
-
logMethod('message');
|
|
535
|
-
logMethod('message', {key: 'value'});
|
|
536
|
-
|
|
537
|
-
// Should accept object-first signature
|
|
538
|
-
logMethod({key: 'value'});
|
|
539
|
-
logMethod({key: 'value'}, 'message');
|
|
540
|
-
|
|
541
|
-
t.pass();
|
|
542
|
-
});
|
|
543
|
-
|
|
544
|
-
// Test console method override
|
|
545
|
-
// ============================================================================
|
|
546
|
-
|
|
547
|
-
test('createLogMethod uses specified consoleMethod', t => {
|
|
548
|
-
const originalConsole = console.warn;
|
|
549
|
-
let consoleCalled = false;
|
|
550
|
-
console.warn = (...args: unknown[]) => {
|
|
551
|
-
consoleCalled = true;
|
|
552
|
-
originalConsole(...args);
|
|
553
|
-
};
|
|
554
|
-
|
|
555
|
-
const logMethod = createLogMethod(console, 'info', {
|
|
556
|
-
consolePrefix: 'TEST',
|
|
557
|
-
consoleMethod: 'warn',
|
|
558
|
-
});
|
|
559
|
-
|
|
560
|
-
logMethod('info message');
|
|
561
|
-
|
|
562
|
-
t.true(consoleCalled);
|
|
563
|
-
|
|
564
|
-
// Restore console
|
|
565
|
-
console.warn = originalConsole;
|
|
566
|
-
});
|
|
567
|
-
|
|
568
|
-
// Cleanup
|
|
569
|
-
// ============================================================================
|
|
570
|
-
|
|
571
|
-
test.after('cleanup mock logger', t => {
|
|
572
|
-
// Any cleanup if needed
|
|
573
|
-
});
|