@ninebix/nmt-system 1.0.2 → 1.0.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/README.md +288 -213
- package/dashboard-lite/index.html +1083 -762
- package/dist/bin/nmt.js +192 -41
- package/dist/bin/nmt.js.map +1 -1
- package/dist/src/api/cli-server.d.ts.map +1 -1
- package/dist/src/api/cli-server.js +156 -0
- package/dist/src/api/cli-server.js.map +1 -1
- package/dist/src/core/attractor-model.d.ts +5 -2
- package/dist/src/core/attractor-model.d.ts.map +1 -1
- package/dist/src/core/attractor-model.js +7 -4
- package/dist/src/core/attractor-model.js.map +1 -1
- package/dist/src/core/neuron-graph.d.ts.map +1 -1
- package/dist/src/core/neuron-graph.js +41 -7
- package/dist/src/core/neuron-graph.js.map +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +168 -34
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/services/four-stage-learning.d.ts +19 -0
- package/dist/src/services/four-stage-learning.d.ts.map +1 -1
- package/dist/src/services/four-stage-learning.js +113 -17
- package/dist/src/services/four-stage-learning.js.map +1 -1
- package/dist/src/storage/neuron-store.d.ts +2 -0
- package/dist/src/storage/neuron-store.d.ts.map +1 -1
- package/dist/src/storage/neuron-store.js +22 -14
- package/dist/src/storage/neuron-store.js.map +1 -1
- package/package.json +1 -1
- package/dist/api/cli-server.d.ts +0 -83
- package/dist/api/cli-server.d.ts.map +0 -1
- package/dist/api/cli-server.js +0 -597
- package/dist/api/cli-server.js.map +0 -1
- package/dist/api/index.d.ts +0 -6
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -6
- package/dist/api/index.js.map +0 -1
- package/dist/api/middleware/index.d.ts +0 -12
- package/dist/api/middleware/index.d.ts.map +0 -1
- package/dist/api/middleware/index.js +0 -13
- package/dist/api/middleware/index.js.map +0 -1
- package/dist/api/middleware/logger.d.ts +0 -21
- package/dist/api/middleware/logger.d.ts.map +0 -1
- package/dist/api/middleware/logger.js +0 -134
- package/dist/api/middleware/logger.js.map +0 -1
- package/dist/api/middleware/rate-limit.d.ts +0 -26
- package/dist/api/middleware/rate-limit.d.ts.map +0 -1
- package/dist/api/middleware/rate-limit.js +0 -107
- package/dist/api/middleware/rate-limit.js.map +0 -1
- package/dist/api/middleware/response.d.ts +0 -61
- package/dist/api/middleware/response.d.ts.map +0 -1
- package/dist/api/middleware/response.js +0 -86
- package/dist/api/middleware/response.js.map +0 -1
- package/dist/api/middleware/validation.d.ts +0 -43
- package/dist/api/middleware/validation.d.ts.map +0 -1
- package/dist/api/middleware/validation.js +0 -257
- package/dist/api/middleware/validation.js.map +0 -1
- package/dist/api/server.d.ts +0 -79
- package/dist/api/server.d.ts.map +0 -1
- package/dist/api/server.js +0 -2011
- package/dist/api/server.js.map +0 -1
- package/dist/cli/commands/attractor.d.ts +0 -6
- package/dist/cli/commands/attractor.d.ts.map +0 -1
- package/dist/cli/commands/attractor.js +0 -167
- package/dist/cli/commands/attractor.js.map +0 -1
- package/dist/cli/commands/dimension.d.ts +0 -6
- package/dist/cli/commands/dimension.d.ts.map +0 -1
- package/dist/cli/commands/dimension.js +0 -85
- package/dist/cli/commands/dimension.js.map +0 -1
- package/dist/cli/commands/index.d.ts +0 -11
- package/dist/cli/commands/index.d.ts.map +0 -1
- package/dist/cli/commands/index.js +0 -11
- package/dist/cli/commands/index.js.map +0 -1
- package/dist/cli/commands/infer.d.ts +0 -6
- package/dist/cli/commands/infer.d.ts.map +0 -1
- package/dist/cli/commands/infer.js +0 -139
- package/dist/cli/commands/infer.js.map +0 -1
- package/dist/cli/commands/learn.d.ts +0 -6
- package/dist/cli/commands/learn.d.ts.map +0 -1
- package/dist/cli/commands/learn.js +0 -87
- package/dist/cli/commands/learn.js.map +0 -1
- package/dist/cli/commands/orchestrate.d.ts +0 -6
- package/dist/cli/commands/orchestrate.d.ts.map +0 -1
- package/dist/cli/commands/orchestrate.js +0 -279
- package/dist/cli/commands/orchestrate.js.map +0 -1
- package/dist/cli/commands/prob.d.ts +0 -6
- package/dist/cli/commands/prob.d.ts.map +0 -1
- package/dist/cli/commands/prob.js +0 -256
- package/dist/cli/commands/prob.js.map +0 -1
- package/dist/cli/commands/quantum.d.ts +0 -6
- package/dist/cli/commands/quantum.d.ts.map +0 -1
- package/dist/cli/commands/quantum.js +0 -150
- package/dist/cli/commands/quantum.js.map +0 -1
- package/dist/cli/commands/sync.d.ts +0 -65
- package/dist/cli/commands/sync.d.ts.map +0 -1
- package/dist/cli/commands/sync.js +0 -338
- package/dist/cli/commands/sync.js.map +0 -1
- package/dist/cli/index.d.ts +0 -9
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -9
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/probabilistic-commands.d.ts +0 -39
- package/dist/cli/probabilistic-commands.d.ts.map +0 -1
- package/dist/cli/probabilistic-commands.js +0 -112
- package/dist/cli/probabilistic-commands.js.map +0 -1
- package/dist/cli/types.d.ts +0 -69
- package/dist/cli/types.d.ts.map +0 -1
- package/dist/cli/types.js +0 -5
- package/dist/cli/types.js.map +0 -1
- package/dist/cli/utils/formatters.d.ts +0 -51
- package/dist/cli/utils/formatters.d.ts.map +0 -1
- package/dist/cli/utils/formatters.js +0 -79
- package/dist/cli/utils/formatters.js.map +0 -1
- package/dist/cli/utils/helpers.d.ts +0 -21
- package/dist/cli/utils/helpers.d.ts.map +0 -1
- package/dist/cli/utils/helpers.js +0 -51
- package/dist/cli/utils/helpers.js.map +0 -1
- package/dist/cli/utils/index.d.ts +0 -7
- package/dist/cli/utils/index.d.ts.map +0 -1
- package/dist/cli/utils/index.js +0 -13
- package/dist/cli/utils/index.js.map +0 -1
- package/dist/cli/utils/validators.d.ts +0 -162
- package/dist/cli/utils/validators.d.ts.map +0 -1
- package/dist/cli/utils/validators.js +0 -351
- package/dist/cli/utils/validators.js.map +0 -1
- package/dist/core/advanced-embedding.d.ts +0 -154
- package/dist/core/advanced-embedding.d.ts.map +0 -1
- package/dist/core/advanced-embedding.js +0 -367
- package/dist/core/advanced-embedding.js.map +0 -1
- package/dist/core/attractor-model.d.ts +0 -381
- package/dist/core/attractor-model.d.ts.map +0 -1
- package/dist/core/attractor-model.js +0 -821
- package/dist/core/attractor-model.js.map +0 -1
- package/dist/core/bidirectional-inference.d.ts +0 -143
- package/dist/core/bidirectional-inference.d.ts.map +0 -1
- package/dist/core/bidirectional-inference.js +0 -501
- package/dist/core/bidirectional-inference.js.map +0 -1
- package/dist/core/chunk-engine.d.ts +0 -78
- package/dist/core/chunk-engine.d.ts.map +0 -1
- package/dist/core/chunk-engine.js +0 -192
- package/dist/core/chunk-engine.js.map +0 -1
- package/dist/core/dynamic-embedding.d.ts +0 -327
- package/dist/core/dynamic-embedding.d.ts.map +0 -1
- package/dist/core/dynamic-embedding.js +0 -527
- package/dist/core/dynamic-embedding.js.map +0 -1
- package/dist/core/embedding-similarity.d.ts +0 -68
- package/dist/core/embedding-similarity.d.ts.map +0 -1
- package/dist/core/embedding-similarity.js +0 -291
- package/dist/core/embedding-similarity.js.map +0 -1
- package/dist/core/evolution-scheduler.d.ts +0 -101
- package/dist/core/evolution-scheduler.d.ts.map +0 -1
- package/dist/core/evolution-scheduler.js +0 -235
- package/dist/core/evolution-scheduler.js.map +0 -1
- package/dist/core/hierarchical-chunker.d.ts +0 -108
- package/dist/core/hierarchical-chunker.d.ts.map +0 -1
- package/dist/core/hierarchical-chunker.js +0 -296
- package/dist/core/hierarchical-chunker.js.map +0 -1
- package/dist/core/hnsw-index.d.ts +0 -111
- package/dist/core/hnsw-index.d.ts.map +0 -1
- package/dist/core/hnsw-index.js +0 -466
- package/dist/core/hnsw-index.js.map +0 -1
- package/dist/core/index.d.ts +0 -23
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -25
- package/dist/core/index.js.map +0 -1
- package/dist/core/language-analyzers.d.ts +0 -124
- package/dist/core/language-analyzers.d.ts.map +0 -1
- package/dist/core/language-analyzers.js +0 -365
- package/dist/core/language-analyzers.js.map +0 -1
- package/dist/core/local-embedding.d.ts +0 -109
- package/dist/core/local-embedding.d.ts.map +0 -1
- package/dist/core/local-embedding.js +0 -222
- package/dist/core/local-embedding.js.map +0 -1
- package/dist/core/merkle-engine.d.ts +0 -263
- package/dist/core/merkle-engine.d.ts.map +0 -1
- package/dist/core/merkle-engine.js +0 -528
- package/dist/core/merkle-engine.js.map +0 -1
- package/dist/core/multi-layer-reasoning.d.ts +0 -178
- package/dist/core/multi-layer-reasoning.d.ts.map +0 -1
- package/dist/core/multi-layer-reasoning.js +0 -607
- package/dist/core/multi-layer-reasoning.js.map +0 -1
- package/dist/core/neuron-graph.d.ts +0 -134
- package/dist/core/neuron-graph.d.ts.map +0 -1
- package/dist/core/neuron-graph.js +0 -436
- package/dist/core/neuron-graph.js.map +0 -1
- package/dist/core/probabilistic-neuron.d.ts +0 -251
- package/dist/core/probabilistic-neuron.d.ts.map +0 -1
- package/dist/core/probabilistic-neuron.js +0 -618
- package/dist/core/probabilistic-neuron.js.map +0 -1
- package/dist/core/probabilistic-orchestrator.d.ts +0 -408
- package/dist/core/probabilistic-orchestrator.d.ts.map +0 -1
- package/dist/core/probabilistic-orchestrator.js +0 -798
- package/dist/core/probabilistic-orchestrator.js.map +0 -1
- package/dist/core/semantic-chunker.d.ts +0 -117
- package/dist/core/semantic-chunker.d.ts.map +0 -1
- package/dist/core/semantic-chunker.js +0 -464
- package/dist/core/semantic-chunker.js.map +0 -1
- package/dist/events/event-bus.d.ts +0 -166
- package/dist/events/event-bus.d.ts.map +0 -1
- package/dist/events/event-bus.js +0 -228
- package/dist/events/event-bus.js.map +0 -1
- package/dist/events/index.d.ts +0 -7
- package/dist/events/index.d.ts.map +0 -1
- package/dist/events/index.js +0 -7
- package/dist/events/index.js.map +0 -1
- package/dist/events/progress-tracker.d.ts +0 -150
- package/dist/events/progress-tracker.d.ts.map +0 -1
- package/dist/events/progress-tracker.js +0 -290
- package/dist/events/progress-tracker.js.map +0 -1
- package/dist/extensions/clustering/community-detection.d.ts +0 -90
- package/dist/extensions/clustering/community-detection.d.ts.map +0 -1
- package/dist/extensions/clustering/community-detection.js +0 -470
- package/dist/extensions/clustering/community-detection.js.map +0 -1
- package/dist/extensions/clustering/index.d.ts +0 -114
- package/dist/extensions/clustering/index.d.ts.map +0 -1
- package/dist/extensions/clustering/index.js +0 -468
- package/dist/extensions/clustering/index.js.map +0 -1
- package/dist/extensions/clustering/topic-modeling.d.ts +0 -86
- package/dist/extensions/clustering/topic-modeling.d.ts.map +0 -1
- package/dist/extensions/clustering/topic-modeling.js +0 -355
- package/dist/extensions/clustering/topic-modeling.js.map +0 -1
- package/dist/extensions/distributed/coordinator.d.ts +0 -114
- package/dist/extensions/distributed/coordinator.d.ts.map +0 -1
- package/dist/extensions/distributed/coordinator.js +0 -319
- package/dist/extensions/distributed/coordinator.js.map +0 -1
- package/dist/extensions/distributed/index.d.ts +0 -10
- package/dist/extensions/distributed/index.d.ts.map +0 -1
- package/dist/extensions/distributed/index.js +0 -10
- package/dist/extensions/distributed/index.js.map +0 -1
- package/dist/extensions/distributed/queue.d.ts +0 -157
- package/dist/extensions/distributed/queue.d.ts.map +0 -1
- package/dist/extensions/distributed/queue.js +0 -326
- package/dist/extensions/distributed/queue.js.map +0 -1
- package/dist/extensions/distributed/scheduler.d.ts +0 -107
- package/dist/extensions/distributed/scheduler.d.ts.map +0 -1
- package/dist/extensions/distributed/scheduler.js +0 -301
- package/dist/extensions/distributed/scheduler.js.map +0 -1
- package/dist/extensions/distributed/worker.d.ts +0 -112
- package/dist/extensions/distributed/worker.d.ts.map +0 -1
- package/dist/extensions/distributed/worker.js +0 -260
- package/dist/extensions/distributed/worker.js.map +0 -1
- package/dist/index.d.ts +0 -14
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -20
- package/dist/index.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -43
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/mcp/server.js +0 -494
- package/dist/mcp/server.js.map +0 -1
- package/dist/services/adaptive-fallback.d.ts +0 -140
- package/dist/services/adaptive-fallback.d.ts.map +0 -1
- package/dist/services/adaptive-fallback.js +0 -273
- package/dist/services/adaptive-fallback.js.map +0 -1
- package/dist/services/answer-gate.d.ts +0 -112
- package/dist/services/answer-gate.d.ts.map +0 -1
- package/dist/services/answer-gate.js +0 -299
- package/dist/services/answer-gate.js.map +0 -1
- package/dist/services/auto-learning.d.ts +0 -135
- package/dist/services/auto-learning.d.ts.map +0 -1
- package/dist/services/auto-learning.js +0 -413
- package/dist/services/auto-learning.js.map +0 -1
- package/dist/services/context-compressor.d.ts +0 -77
- package/dist/services/context-compressor.d.ts.map +0 -1
- package/dist/services/context-compressor.js +0 -234
- package/dist/services/context-compressor.js.map +0 -1
- package/dist/services/efficient-rag.d.ts +0 -140
- package/dist/services/efficient-rag.d.ts.map +0 -1
- package/dist/services/efficient-rag.js +0 -311
- package/dist/services/efficient-rag.js.map +0 -1
- package/dist/services/embedding-provider.d.ts +0 -72
- package/dist/services/embedding-provider.d.ts.map +0 -1
- package/dist/services/embedding-provider.js +0 -176
- package/dist/services/embedding-provider.js.map +0 -1
- package/dist/services/file-ingestion.d.ts +0 -72
- package/dist/services/file-ingestion.d.ts.map +0 -1
- package/dist/services/file-ingestion.js +0 -237
- package/dist/services/file-ingestion.js.map +0 -1
- package/dist/services/four-stage-learning.d.ts +0 -552
- package/dist/services/four-stage-learning.d.ts.map +0 -1
- package/dist/services/four-stage-learning.js +0 -1110
- package/dist/services/four-stage-learning.js.map +0 -1
- package/dist/services/graph.d.ts +0 -94
- package/dist/services/graph.d.ts.map +0 -1
- package/dist/services/graph.js +0 -292
- package/dist/services/graph.js.map +0 -1
- package/dist/services/index.d.ts +0 -15
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -18
- package/dist/services/index.js.map +0 -1
- package/dist/services/ingestion.d.ts +0 -98
- package/dist/services/ingestion.d.ts.map +0 -1
- package/dist/services/ingestion.js +0 -259
- package/dist/services/ingestion.js.map +0 -1
- package/dist/services/learning.d.ts +0 -67
- package/dist/services/learning.d.ts.map +0 -1
- package/dist/services/learning.js +0 -262
- package/dist/services/learning.js.map +0 -1
- package/dist/services/llm-router.d.ts +0 -143
- package/dist/services/llm-router.d.ts.map +0 -1
- package/dist/services/llm-router.js +0 -284
- package/dist/services/llm-router.js.map +0 -1
- package/dist/services/llm.d.ts +0 -86
- package/dist/services/llm.d.ts.map +0 -1
- package/dist/services/llm.js +0 -283
- package/dist/services/llm.js.map +0 -1
- package/dist/services/metrics-dashboard.d.ts +0 -262
- package/dist/services/metrics-dashboard.d.ts.map +0 -1
- package/dist/services/metrics-dashboard.js +0 -417
- package/dist/services/metrics-dashboard.js.map +0 -1
- package/dist/services/neuron-lifecycle.d.ts +0 -137
- package/dist/services/neuron-lifecycle.d.ts.map +0 -1
- package/dist/services/neuron-lifecycle.js +0 -422
- package/dist/services/neuron-lifecycle.js.map +0 -1
- package/dist/services/nmt-pipeline.d.ts +0 -219
- package/dist/services/nmt-pipeline.d.ts.map +0 -1
- package/dist/services/nmt-pipeline.js +0 -449
- package/dist/services/nmt-pipeline.js.map +0 -1
- package/dist/services/query-cache.d.ts +0 -136
- package/dist/services/query-cache.d.ts.map +0 -1
- package/dist/services/query-cache.js +0 -255
- package/dist/services/query-cache.js.map +0 -1
- package/dist/services/query-normalize.d.ts +0 -107
- package/dist/services/query-normalize.d.ts.map +0 -1
- package/dist/services/query-normalize.js +0 -366
- package/dist/services/query-normalize.js.map +0 -1
- package/dist/services/query.d.ts +0 -102
- package/dist/services/query.d.ts.map +0 -1
- package/dist/services/query.js +0 -227
- package/dist/services/query.js.map +0 -1
- package/dist/services/text-embedding.d.ts +0 -183
- package/dist/services/text-embedding.d.ts.map +0 -1
- package/dist/services/text-embedding.js +0 -633
- package/dist/services/text-embedding.js.map +0 -1
- package/dist/services/verification-gate.d.ts +0 -147
- package/dist/services/verification-gate.d.ts.map +0 -1
- package/dist/services/verification-gate.js +0 -344
- package/dist/services/verification-gate.js.map +0 -1
- package/dist/services/verify.d.ts +0 -114
- package/dist/services/verify.d.ts.map +0 -1
- package/dist/services/verify.js +0 -237
- package/dist/services/verify.js.map +0 -1
- package/dist/services/web-search.d.ts +0 -145
- package/dist/services/web-search.d.ts.map +0 -1
- package/dist/services/web-search.js +0 -534
- package/dist/services/web-search.js.map +0 -1
- package/dist/storage/chunk-store.d.ts +0 -107
- package/dist/storage/chunk-store.d.ts.map +0 -1
- package/dist/storage/chunk-store.js +0 -293
- package/dist/storage/chunk-store.js.map +0 -1
- package/dist/storage/hybrid-adapters.d.ts +0 -111
- package/dist/storage/hybrid-adapters.d.ts.map +0 -1
- package/dist/storage/hybrid-adapters.js +0 -223
- package/dist/storage/hybrid-adapters.js.map +0 -1
- package/dist/storage/hybrid-store.d.ts +0 -125
- package/dist/storage/hybrid-store.d.ts.map +0 -1
- package/dist/storage/hybrid-store.js +0 -655
- package/dist/storage/hybrid-store.js.map +0 -1
- package/dist/storage/index-store.d.ts +0 -126
- package/dist/storage/index-store.d.ts.map +0 -1
- package/dist/storage/index-store.js +0 -316
- package/dist/storage/index-store.js.map +0 -1
- package/dist/storage/index.d.ts +0 -45
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -52
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/neuron-store.d.ts +0 -121
- package/dist/storage/neuron-store.d.ts.map +0 -1
- package/dist/storage/neuron-store.js +0 -466
- package/dist/storage/neuron-store.js.map +0 -1
- package/dist/storage/ontology-store.d.ts +0 -132
- package/dist/storage/ontology-store.d.ts.map +0 -1
- package/dist/storage/ontology-store.js +0 -319
- package/dist/storage/ontology-store.js.map +0 -1
- package/dist/storage/probabilistic-store.d.ts +0 -104
- package/dist/storage/probabilistic-store.d.ts.map +0 -1
- package/dist/storage/probabilistic-store.js +0 -257
- package/dist/storage/probabilistic-store.js.map +0 -1
- package/dist/storage/redis-adapters.d.ts +0 -102
- package/dist/storage/redis-adapters.d.ts.map +0 -1
- package/dist/storage/redis-adapters.js +0 -205
- package/dist/storage/redis-adapters.js.map +0 -1
- package/dist/storage/redis-ontology-store.d.ts +0 -146
- package/dist/storage/redis-ontology-store.d.ts.map +0 -1
- package/dist/storage/redis-ontology-store.js +0 -384
- package/dist/storage/redis-ontology-store.js.map +0 -1
- package/dist/storage/redis-store.d.ts +0 -174
- package/dist/storage/redis-store.d.ts.map +0 -1
- package/dist/storage/redis-store.js +0 -506
- package/dist/storage/redis-store.js.map +0 -1
- package/dist/sync/change-journal.d.ts +0 -171
- package/dist/sync/change-journal.d.ts.map +0 -1
- package/dist/sync/change-journal.js +0 -362
- package/dist/sync/change-journal.js.map +0 -1
- package/dist/sync/index.d.ts +0 -8
- package/dist/sync/index.d.ts.map +0 -1
- package/dist/sync/index.js +0 -8
- package/dist/sync/index.js.map +0 -1
- package/dist/sync/state-sync.d.ts +0 -241
- package/dist/sync/state-sync.d.ts.map +0 -1
- package/dist/sync/state-sync.js +0 -396
- package/dist/sync/state-sync.js.map +0 -1
- package/dist/sync/vector-clock.d.ts +0 -144
- package/dist/sync/vector-clock.d.ts.map +0 -1
- package/dist/sync/vector-clock.js +0 -266
- package/dist/sync/vector-clock.js.map +0 -1
- package/dist/types/index.d.ts +0 -224
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -24
- package/dist/types/index.js.map +0 -1
- package/dist/utils/hash.d.ts +0 -39
- package/dist/utils/hash.d.ts.map +0 -1
- package/dist/utils/hash.js +0 -56
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/index.d.ts +0 -26
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -50
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -88
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -157
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/metrics.d.ts +0 -232
- package/dist/utils/metrics.d.ts.map +0 -1
- package/dist/utils/metrics.js +0 -387
- package/dist/utils/metrics.js.map +0 -1
- package/dist/utils/similarity.d.ts +0 -64
- package/dist/utils/similarity.d.ts.map +0 -1
- package/dist/utils/similarity.js +0 -151
- package/dist/utils/similarity.js.map +0 -1
- package/dist/utils/uuid.d.ts +0 -23
- package/dist/utils/uuid.d.ts.map +0 -1
- package/dist/utils/uuid.js +0 -29
- package/dist/utils/uuid.js.map +0 -1
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* API Middleware Exports
|
|
3
|
-
*/
|
|
4
|
-
export * from './validation.js';
|
|
5
|
-
export * from './rate-limit.js';
|
|
6
|
-
export * from './logger.js';
|
|
7
|
-
export * from './response.js';
|
|
8
|
-
// Re-export defaults
|
|
9
|
-
export { default as validation } from './validation.js';
|
|
10
|
-
export { default as rateLimiters } from './rate-limit.js';
|
|
11
|
-
export { default as logger } from './logger.js';
|
|
12
|
-
export { default as response } from './response.js';
|
|
13
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/middleware/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAE9B,qBAAqB;AACrB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Logger Middleware
|
|
3
|
-
* Structured logging with levels and request tracking
|
|
4
|
-
*/
|
|
5
|
-
import { Request, Response, NextFunction } from 'express';
|
|
6
|
-
export declare const logger: {
|
|
7
|
-
debug: (message: string, data?: any) => void;
|
|
8
|
-
info: (message: string, data?: any) => void;
|
|
9
|
-
warn: (message: string, data?: any) => void;
|
|
10
|
-
error: (message: string, data?: any) => void;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Request logging middleware
|
|
14
|
-
*/
|
|
15
|
-
export declare function requestLogger(req: Request, res: Response, next: NextFunction): void;
|
|
16
|
-
/**
|
|
17
|
-
* Error logging middleware
|
|
18
|
-
*/
|
|
19
|
-
export declare function errorLogger(err: Error, req: Request, res: Response, next: NextFunction): void;
|
|
20
|
-
export default logger;
|
|
21
|
-
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/api/middleware/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAyF1D,eAAO,MAAM,MAAM;qBACA,MAAM,SAAS,GAAG;oBACnB,MAAM,SAAS,GAAG;oBAClB,MAAM,SAAS,GAAG;qBACjB,MAAM,SAAS,GAAG;CACpC,CAAC;AAgBF;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,QAoC5E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,QAYtF;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Logger Middleware
|
|
3
|
-
* Structured logging with levels and request tracking
|
|
4
|
-
*/
|
|
5
|
-
// Configuration
|
|
6
|
-
const LOG_LEVEL = (process.env.LOG_LEVEL || 'info');
|
|
7
|
-
const IS_PRODUCTION = process.env.NODE_ENV === 'production';
|
|
8
|
-
const LEVEL_PRIORITY = {
|
|
9
|
-
debug: 0,
|
|
10
|
-
info: 1,
|
|
11
|
-
warn: 2,
|
|
12
|
-
error: 3,
|
|
13
|
-
};
|
|
14
|
-
function shouldLog(level) {
|
|
15
|
-
return LEVEL_PRIORITY[level] >= LEVEL_PRIORITY[LOG_LEVEL];
|
|
16
|
-
}
|
|
17
|
-
function formatLog(entry) {
|
|
18
|
-
if (IS_PRODUCTION) {
|
|
19
|
-
// JSON format for production (easier to parse)
|
|
20
|
-
return JSON.stringify(entry);
|
|
21
|
-
}
|
|
22
|
-
// Human-readable format for development
|
|
23
|
-
const { timestamp, level, message, data, requestId, method, path, statusCode, duration, ip } = entry;
|
|
24
|
-
let output = `[${timestamp}] ${level.toUpperCase().padEnd(5)} ${message}`;
|
|
25
|
-
if (method && path) {
|
|
26
|
-
output += ` | ${method} ${path}`;
|
|
27
|
-
}
|
|
28
|
-
if (statusCode) {
|
|
29
|
-
output += ` | ${statusCode}`;
|
|
30
|
-
}
|
|
31
|
-
if (duration !== undefined) {
|
|
32
|
-
output += ` | ${duration}ms`;
|
|
33
|
-
}
|
|
34
|
-
if (ip) {
|
|
35
|
-
output += ` | ${ip}`;
|
|
36
|
-
}
|
|
37
|
-
if (requestId) {
|
|
38
|
-
output += ` | req:${requestId.slice(0, 8)}`;
|
|
39
|
-
}
|
|
40
|
-
if (data && Object.keys(data).length > 0) {
|
|
41
|
-
output += ` | ${JSON.stringify(data)}`;
|
|
42
|
-
}
|
|
43
|
-
return output;
|
|
44
|
-
}
|
|
45
|
-
function log(level, message, data) {
|
|
46
|
-
if (!shouldLog(level))
|
|
47
|
-
return;
|
|
48
|
-
const entry = {
|
|
49
|
-
timestamp: new Date().toISOString(),
|
|
50
|
-
level,
|
|
51
|
-
message,
|
|
52
|
-
data,
|
|
53
|
-
};
|
|
54
|
-
const formatted = formatLog(entry);
|
|
55
|
-
switch (level) {
|
|
56
|
-
case 'error':
|
|
57
|
-
console.error(formatted);
|
|
58
|
-
break;
|
|
59
|
-
case 'warn':
|
|
60
|
-
console.warn(formatted);
|
|
61
|
-
break;
|
|
62
|
-
default:
|
|
63
|
-
console.log(formatted);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// Public logging functions
|
|
67
|
-
export const logger = {
|
|
68
|
-
debug: (message, data) => log('debug', message, data),
|
|
69
|
-
info: (message, data) => log('info', message, data),
|
|
70
|
-
warn: (message, data) => log('warn', message, data),
|
|
71
|
-
error: (message, data) => log('error', message, data),
|
|
72
|
-
};
|
|
73
|
-
// Generate simple request ID
|
|
74
|
-
function generateRequestId() {
|
|
75
|
-
return Math.random().toString(36).substring(2, 15) + Date.now().toString(36);
|
|
76
|
-
}
|
|
77
|
-
// Get client IP
|
|
78
|
-
function getClientIP(req) {
|
|
79
|
-
const forwarded = req.headers['x-forwarded-for'];
|
|
80
|
-
const ip = forwarded
|
|
81
|
-
? (Array.isArray(forwarded) ? forwarded[0] : forwarded.split(',')[0])
|
|
82
|
-
: req.socket.remoteAddress || 'unknown';
|
|
83
|
-
return ip;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Request logging middleware
|
|
87
|
-
*/
|
|
88
|
-
export function requestLogger(req, res, next) {
|
|
89
|
-
// Generate request ID
|
|
90
|
-
const requestId = generateRequestId();
|
|
91
|
-
req.requestId = requestId;
|
|
92
|
-
const startTime = Date.now();
|
|
93
|
-
const method = req.method;
|
|
94
|
-
const path = req.originalUrl || req.url;
|
|
95
|
-
const ip = getClientIP(req);
|
|
96
|
-
// Log request start (debug level)
|
|
97
|
-
if (shouldLog('debug')) {
|
|
98
|
-
logger.debug('Request started', { method, path, ip, requestId });
|
|
99
|
-
}
|
|
100
|
-
// Capture response finish
|
|
101
|
-
res.on('finish', () => {
|
|
102
|
-
const duration = Date.now() - startTime;
|
|
103
|
-
const statusCode = res.statusCode;
|
|
104
|
-
const entry = {
|
|
105
|
-
timestamp: new Date().toISOString(),
|
|
106
|
-
level: statusCode >= 500 ? 'error' : statusCode >= 400 ? 'warn' : 'info',
|
|
107
|
-
message: 'Request completed',
|
|
108
|
-
method,
|
|
109
|
-
path,
|
|
110
|
-
statusCode,
|
|
111
|
-
duration,
|
|
112
|
-
ip,
|
|
113
|
-
requestId,
|
|
114
|
-
};
|
|
115
|
-
console.log(formatLog(entry));
|
|
116
|
-
});
|
|
117
|
-
next();
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Error logging middleware
|
|
121
|
-
*/
|
|
122
|
-
export function errorLogger(err, req, res, next) {
|
|
123
|
-
const requestId = req.requestId || 'unknown';
|
|
124
|
-
logger.error('Request error', {
|
|
125
|
-
error: err.message,
|
|
126
|
-
stack: IS_PRODUCTION ? undefined : err.stack,
|
|
127
|
-
requestId,
|
|
128
|
-
method: req.method,
|
|
129
|
-
path: req.originalUrl,
|
|
130
|
-
});
|
|
131
|
-
next(err);
|
|
132
|
-
}
|
|
133
|
-
export default logger;
|
|
134
|
-
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/api/middleware/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rate Limiting Middleware
|
|
3
|
-
* Simple in-memory rate limiter (use Redis for distributed systems)
|
|
4
|
-
*/
|
|
5
|
-
import { Request, RequestHandler } from 'express';
|
|
6
|
-
interface RateLimitConfig {
|
|
7
|
-
windowMs: number;
|
|
8
|
-
maxRequests: number;
|
|
9
|
-
message?: string;
|
|
10
|
-
keyGenerator?: (req: Request) => string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Create rate limiter middleware
|
|
14
|
-
*/
|
|
15
|
-
export declare function createRateLimiter(config: RateLimitConfig): RequestHandler;
|
|
16
|
-
export declare const rateLimiters: {
|
|
17
|
-
general: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
18
|
-
search: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
19
|
-
ingest: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
20
|
-
llm: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
21
|
-
upload: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
22
|
-
config: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
23
|
-
strict: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
24
|
-
};
|
|
25
|
-
export default rateLimiters;
|
|
26
|
-
//# sourceMappingURL=rate-limit.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../src/api/middleware/rate-limit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAA0B,cAAc,EAAE,MAAM,SAAS,CAAC;AAE1E,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;CACzC;AA8BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CA0CzE;AAGD,eAAO,MAAM,YAAY;;;;;;;;CAiDxB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rate Limiting Middleware
|
|
3
|
-
* Simple in-memory rate limiter (use Redis for distributed systems)
|
|
4
|
-
*/
|
|
5
|
-
// In-memory store (use Redis for production)
|
|
6
|
-
const store = new Map();
|
|
7
|
-
// Cleanup old entries periodically
|
|
8
|
-
setInterval(() => {
|
|
9
|
-
const now = Date.now();
|
|
10
|
-
const entries = Array.from(store.entries());
|
|
11
|
-
for (const [key, entry] of entries) {
|
|
12
|
-
if (entry.resetTime < now) {
|
|
13
|
-
store.delete(key);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}, 60000); // Clean every minute
|
|
17
|
-
// Default key generator (IP-based)
|
|
18
|
-
function defaultKeyGenerator(req) {
|
|
19
|
-
const forwarded = req.headers['x-forwarded-for'];
|
|
20
|
-
const ip = forwarded
|
|
21
|
-
? (Array.isArray(forwarded) ? forwarded[0] : forwarded.split(',')[0])
|
|
22
|
-
: req.socket.remoteAddress || 'unknown';
|
|
23
|
-
return `rate:${ip}`;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Create rate limiter middleware
|
|
27
|
-
*/
|
|
28
|
-
export function createRateLimiter(config) {
|
|
29
|
-
const { windowMs, maxRequests, message = 'Too many requests, please try again later.', keyGenerator = defaultKeyGenerator, } = config;
|
|
30
|
-
return (req, res, next) => {
|
|
31
|
-
const key = keyGenerator(req);
|
|
32
|
-
const now = Date.now();
|
|
33
|
-
let entry = store.get(key);
|
|
34
|
-
if (!entry || entry.resetTime < now) {
|
|
35
|
-
// Create new entry
|
|
36
|
-
entry = {
|
|
37
|
-
count: 1,
|
|
38
|
-
resetTime: now + windowMs,
|
|
39
|
-
};
|
|
40
|
-
store.set(key, entry);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
entry.count++;
|
|
44
|
-
}
|
|
45
|
-
// Set rate limit headers
|
|
46
|
-
res.setHeader('X-RateLimit-Limit', maxRequests);
|
|
47
|
-
res.setHeader('X-RateLimit-Remaining', Math.max(0, maxRequests - entry.count));
|
|
48
|
-
res.setHeader('X-RateLimit-Reset', Math.ceil(entry.resetTime / 1000));
|
|
49
|
-
if (entry.count > maxRequests) {
|
|
50
|
-
res.setHeader('Retry-After', Math.ceil((entry.resetTime - now) / 1000));
|
|
51
|
-
res.status(429).json({
|
|
52
|
-
error: 'Rate Limit Exceeded',
|
|
53
|
-
message,
|
|
54
|
-
retryAfter: Math.ceil((entry.resetTime - now) / 1000),
|
|
55
|
-
});
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
next();
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
// Preset configurations
|
|
62
|
-
export const rateLimiters = {
|
|
63
|
-
// General API: 100 requests per minute
|
|
64
|
-
general: createRateLimiter({
|
|
65
|
-
windowMs: 60 * 1000,
|
|
66
|
-
maxRequests: 100,
|
|
67
|
-
message: 'Too many requests. Please wait a minute.',
|
|
68
|
-
}),
|
|
69
|
-
// Search: 30 requests per minute (more expensive)
|
|
70
|
-
search: createRateLimiter({
|
|
71
|
-
windowMs: 60 * 1000,
|
|
72
|
-
maxRequests: 30,
|
|
73
|
-
message: 'Too many search requests. Please slow down.',
|
|
74
|
-
}),
|
|
75
|
-
// Ingestion: 20 requests per minute
|
|
76
|
-
ingest: createRateLimiter({
|
|
77
|
-
windowMs: 60 * 1000,
|
|
78
|
-
maxRequests: 20,
|
|
79
|
-
message: 'Too many ingestion requests. Please slow down.',
|
|
80
|
-
}),
|
|
81
|
-
// LLM/RAG: 10 requests per minute (expensive API calls)
|
|
82
|
-
llm: createRateLimiter({
|
|
83
|
-
windowMs: 60 * 1000,
|
|
84
|
-
maxRequests: 10,
|
|
85
|
-
message: 'Too many LLM requests. Please wait before trying again.',
|
|
86
|
-
}),
|
|
87
|
-
// File upload: 5 requests per minute
|
|
88
|
-
upload: createRateLimiter({
|
|
89
|
-
windowMs: 60 * 1000,
|
|
90
|
-
maxRequests: 5,
|
|
91
|
-
message: 'Too many file uploads. Please wait.',
|
|
92
|
-
}),
|
|
93
|
-
// Auth/Config: 10 requests per minute
|
|
94
|
-
config: createRateLimiter({
|
|
95
|
-
windowMs: 60 * 1000,
|
|
96
|
-
maxRequests: 10,
|
|
97
|
-
message: 'Too many configuration requests.',
|
|
98
|
-
}),
|
|
99
|
-
// Strict: 5 requests per minute (for sensitive operations)
|
|
100
|
-
strict: createRateLimiter({
|
|
101
|
-
windowMs: 60 * 1000,
|
|
102
|
-
maxRequests: 5,
|
|
103
|
-
message: 'Rate limit exceeded for this operation.',
|
|
104
|
-
}),
|
|
105
|
-
};
|
|
106
|
-
export default rateLimiters;
|
|
107
|
-
//# sourceMappingURL=rate-limit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/api/middleware/rate-limit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,6CAA6C;AAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEhD,mCAAmC;AACnC,WAAW,CAAC,GAAG,EAAE;IACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;YAC1B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,qBAAqB;AAEhC,mCAAmC;AACnC,SAAS,mBAAmB,CAAC,GAAY;IACvC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,SAAS;QAClB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC;IAC1C,OAAO,QAAQ,EAAE,EAAE,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACvD,MAAM,EACJ,QAAQ,EACR,WAAW,EACX,OAAO,GAAG,4CAA4C,EACtD,YAAY,GAAG,mBAAmB,GACnC,GAAG,MAAM,CAAC;IAEX,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;QAC/D,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;YACpC,mBAAmB;YACnB,KAAK,GAAG;gBACN,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,GAAG,GAAG,QAAQ;aAC1B,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QAED,yBAAyB;QACzB,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QAChD,GAAG,CAAC,SAAS,CAAC,uBAAuB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;QAEtE,IAAI,KAAK,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;YAC9B,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACxE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,qBAAqB;gBAC5B,OAAO;gBACP,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;aACtD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAED,wBAAwB;AACxB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,uCAAuC;IACvC,OAAO,EAAE,iBAAiB,CAAC;QACzB,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,WAAW,EAAE,GAAG;QAChB,OAAO,EAAE,0CAA0C;KACpD,CAAC;IAEF,kDAAkD;IAClD,MAAM,EAAE,iBAAiB,CAAC;QACxB,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,6CAA6C;KACvD,CAAC;IAEF,oCAAoC;IACpC,MAAM,EAAE,iBAAiB,CAAC;QACxB,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,gDAAgD;KAC1D,CAAC;IAEF,wDAAwD;IACxD,GAAG,EAAE,iBAAiB,CAAC;QACrB,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,yDAAyD;KACnE,CAAC;IAEF,qCAAqC;IACrC,MAAM,EAAE,iBAAiB,CAAC;QACxB,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,qCAAqC;KAC/C,CAAC;IAEF,sCAAsC;IACtC,MAAM,EAAE,iBAAiB,CAAC;QACxB,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,kCAAkC;KAC5C,CAAC;IAEF,2DAA2D;IAC3D,MAAM,EAAE,iBAAiB,CAAC;QACxB,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,yCAAyC;KACnD,CAAC;CACH,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Standardized API Response Helpers
|
|
3
|
-
*/
|
|
4
|
-
import { Response } from 'express';
|
|
5
|
-
export interface APIResponse<T = any> {
|
|
6
|
-
success: boolean;
|
|
7
|
-
data?: T;
|
|
8
|
-
error?: string;
|
|
9
|
-
message?: string;
|
|
10
|
-
meta?: {
|
|
11
|
-
total?: number;
|
|
12
|
-
page?: number;
|
|
13
|
-
limit?: number;
|
|
14
|
-
hasMore?: boolean;
|
|
15
|
-
};
|
|
16
|
-
timestamp: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Send success response
|
|
20
|
-
*/
|
|
21
|
-
export declare function sendSuccess<T>(res: Response, data: T, meta?: APIResponse['meta'], statusCode?: number): Response;
|
|
22
|
-
/**
|
|
23
|
-
* Send created response (201)
|
|
24
|
-
*/
|
|
25
|
-
export declare function sendCreated<T>(res: Response, data: T, message?: string): Response;
|
|
26
|
-
/**
|
|
27
|
-
* Send error response
|
|
28
|
-
*/
|
|
29
|
-
export declare function sendError(res: Response, message: string, statusCode?: number, details?: any): Response;
|
|
30
|
-
/**
|
|
31
|
-
* Send validation error (400)
|
|
32
|
-
*/
|
|
33
|
-
export declare function sendValidationError(res: Response, field: string, message: string): Response;
|
|
34
|
-
/**
|
|
35
|
-
* Send not found error (404)
|
|
36
|
-
*/
|
|
37
|
-
export declare function sendNotFound(res: Response, resource?: string): Response;
|
|
38
|
-
/**
|
|
39
|
-
* Send unauthorized error (401)
|
|
40
|
-
*/
|
|
41
|
-
export declare function sendUnauthorized(res: Response, message?: string): Response;
|
|
42
|
-
/**
|
|
43
|
-
* Send forbidden error (403)
|
|
44
|
-
*/
|
|
45
|
-
export declare function sendForbidden(res: Response, message?: string): Response;
|
|
46
|
-
/**
|
|
47
|
-
* Send paginated response
|
|
48
|
-
*/
|
|
49
|
-
export declare function sendPaginated<T>(res: Response, items: T[], total: number, page?: number, limit?: number): Response;
|
|
50
|
-
declare const _default: {
|
|
51
|
-
sendSuccess: typeof sendSuccess;
|
|
52
|
-
sendCreated: typeof sendCreated;
|
|
53
|
-
sendError: typeof sendError;
|
|
54
|
-
sendValidationError: typeof sendValidationError;
|
|
55
|
-
sendNotFound: typeof sendNotFound;
|
|
56
|
-
sendUnauthorized: typeof sendUnauthorized;
|
|
57
|
-
sendForbidden: typeof sendForbidden;
|
|
58
|
-
sendPaginated: typeof sendPaginated;
|
|
59
|
-
};
|
|
60
|
-
export default _default;
|
|
61
|
-
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/api/middleware/response.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,UAAU,SAAM,GACf,QAAQ,CAQV;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,MAAM,GACf,QAAQ,CAQV;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,MAAM,EACf,UAAU,SAAM,EAChB,OAAO,CAAC,EAAE,GAAG,GACZ,QAAQ,CAUV;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,QAAQ,CAEV;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,QAAQ,EACb,QAAQ,SAAa,GACpB,QAAQ,CAEV;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,QAAQ,EACb,OAAO,SAA4B,GAClC,QAAQ,CAEV;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,QAAQ,EACb,OAAO,SAAkB,GACxB,QAAQ,CAEV;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,MAAM,EACb,IAAI,SAAI,EACR,KAAK,SAAK,GACT,QAAQ,CAOV;;;;;;;;;;;AAED,wBASE"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Standardized API Response Helpers
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Send success response
|
|
6
|
-
*/
|
|
7
|
-
export function sendSuccess(res, data, meta, statusCode = 200) {
|
|
8
|
-
const response = {
|
|
9
|
-
success: true,
|
|
10
|
-
data,
|
|
11
|
-
meta,
|
|
12
|
-
timestamp: new Date().toISOString(),
|
|
13
|
-
};
|
|
14
|
-
return res.status(statusCode).json(response);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Send created response (201)
|
|
18
|
-
*/
|
|
19
|
-
export function sendCreated(res, data, message) {
|
|
20
|
-
const response = {
|
|
21
|
-
success: true,
|
|
22
|
-
data,
|
|
23
|
-
message: message || 'Resource created successfully',
|
|
24
|
-
timestamp: new Date().toISOString(),
|
|
25
|
-
};
|
|
26
|
-
return res.status(201).json(response);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Send error response
|
|
30
|
-
*/
|
|
31
|
-
export function sendError(res, message, statusCode = 500, details) {
|
|
32
|
-
const isProduction = process.env.NODE_ENV === 'production';
|
|
33
|
-
const response = {
|
|
34
|
-
success: false,
|
|
35
|
-
error: message,
|
|
36
|
-
...(details && !isProduction ? { details } : {}),
|
|
37
|
-
timestamp: new Date().toISOString(),
|
|
38
|
-
};
|
|
39
|
-
return res.status(statusCode).json(response);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Send validation error (400)
|
|
43
|
-
*/
|
|
44
|
-
export function sendValidationError(res, field, message) {
|
|
45
|
-
return sendError(res, `Validation error: ${message}`, 400, { field });
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Send not found error (404)
|
|
49
|
-
*/
|
|
50
|
-
export function sendNotFound(res, resource = 'Resource') {
|
|
51
|
-
return sendError(res, `${resource} not found`, 404);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Send unauthorized error (401)
|
|
55
|
-
*/
|
|
56
|
-
export function sendUnauthorized(res, message = 'Authentication required') {
|
|
57
|
-
return sendError(res, message, 401);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Send forbidden error (403)
|
|
61
|
-
*/
|
|
62
|
-
export function sendForbidden(res, message = 'Access denied') {
|
|
63
|
-
return sendError(res, message, 403);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Send paginated response
|
|
67
|
-
*/
|
|
68
|
-
export function sendPaginated(res, items, total, page = 1, limit = 20) {
|
|
69
|
-
return sendSuccess(res, items, {
|
|
70
|
-
total,
|
|
71
|
-
page,
|
|
72
|
-
limit,
|
|
73
|
-
hasMore: page * limit < total,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
export default {
|
|
77
|
-
sendSuccess,
|
|
78
|
-
sendCreated,
|
|
79
|
-
sendError,
|
|
80
|
-
sendValidationError,
|
|
81
|
-
sendNotFound,
|
|
82
|
-
sendUnauthorized,
|
|
83
|
-
sendForbidden,
|
|
84
|
-
sendPaginated,
|
|
85
|
-
};
|
|
86
|
-
//# sourceMappingURL=response.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/api/middleware/response.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,GAAa,EACb,IAAO,EACP,IAA0B,EAC1B,UAAU,GAAG,GAAG;IAEhB,MAAM,QAAQ,GAAmB;QAC/B,OAAO,EAAE,IAAI;QACb,IAAI;QACJ,IAAI;QACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,GAAa,EACb,IAAO,EACP,OAAgB;IAEhB,MAAM,QAAQ,GAAmB;QAC/B,OAAO,EAAE,IAAI;QACb,IAAI;QACJ,OAAO,EAAE,OAAO,IAAI,+BAA+B;QACnD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,GAAa,EACb,OAAe,EACf,UAAU,GAAG,GAAG,EAChB,OAAa;IAEb,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAE3D,MAAM,QAAQ,GAAgB;QAC5B,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,GAAG,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAa,EACb,KAAa,EACb,OAAe;IAEf,OAAO,SAAS,CAAC,GAAG,EAAE,qBAAqB,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAa,EACb,QAAQ,GAAG,UAAU;IAErB,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,QAAQ,YAAY,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAa,EACb,OAAO,GAAG,yBAAyB;IAEnC,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAa,EACb,OAAO,GAAG,eAAe;IAEzB,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAa,EACb,KAAU,EACV,KAAa,EACb,IAAI,GAAG,CAAC,EACR,KAAK,GAAG,EAAE;IAEV,OAAO,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE;QAC7B,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,eAAe;IACb,WAAW;IACX,WAAW;IACX,SAAS;IACT,mBAAmB;IACnB,YAAY;IACZ,gBAAgB;IAChB,aAAa;IACb,aAAa;CACd,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Input Validation Middleware
|
|
3
|
-
* Prevents XSS, validates input sizes, sanitizes data
|
|
4
|
-
*/
|
|
5
|
-
import { RequestHandler } from 'express';
|
|
6
|
-
export declare function sanitizeString(input: string): string;
|
|
7
|
-
export declare function sanitizeForStorage(input: string): string;
|
|
8
|
-
/**
|
|
9
|
-
* Validate ingestion request body
|
|
10
|
-
*/
|
|
11
|
-
export declare const validateIngestBody: RequestHandler;
|
|
12
|
-
/**
|
|
13
|
-
* Validate search/query request body
|
|
14
|
-
*/
|
|
15
|
-
export declare const validateSearchBody: RequestHandler;
|
|
16
|
-
/**
|
|
17
|
-
* Validate batch ingest request
|
|
18
|
-
*/
|
|
19
|
-
export declare const validateBatchIngestBody: RequestHandler;
|
|
20
|
-
/**
|
|
21
|
-
* Validate UUID parameter
|
|
22
|
-
*/
|
|
23
|
-
export declare function validateUUIDParam(paramName: string): RequestHandler;
|
|
24
|
-
/**
|
|
25
|
-
* Validate synapse creation
|
|
26
|
-
*/
|
|
27
|
-
export declare const validateSynapseBody: RequestHandler;
|
|
28
|
-
/**
|
|
29
|
-
* Validate LLM configuration
|
|
30
|
-
*/
|
|
31
|
-
export declare const validateLLMConfig: RequestHandler;
|
|
32
|
-
declare const _default: {
|
|
33
|
-
validateIngestBody: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
34
|
-
validateSearchBody: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
35
|
-
validateBatchIngestBody: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
36
|
-
validateUUIDParam: typeof validateUUIDParam;
|
|
37
|
-
validateSynapseBody: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
38
|
-
validateLLMConfig: RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
39
|
-
sanitizeString: typeof sanitizeString;
|
|
40
|
-
sanitizeForStorage: typeof sanitizeForStorage;
|
|
41
|
-
};
|
|
42
|
-
export default _default;
|
|
43
|
-
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/api/middleware/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAmC,cAAc,EAAE,MAAM,SAAS,CAAC;AAsB1E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBpD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUxD;AAsBD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAuChC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,cA8ChC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAmBrC,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAcnE;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,cA+BjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAiC/B,CAAC;;;;;;;;;;;AAEF,wBASE"}
|