@weavelogic/knowledge-graph-agent 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +686 -304
- package/dist/_virtual/_commonjsHelpers.js +7 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/additionalItems.js +5 -0
- package/dist/_virtual/additionalItems.js.map +1 -0
- package/dist/_virtual/additionalProperties.js +5 -0
- package/dist/_virtual/additionalProperties.js.map +1 -0
- package/dist/_virtual/ajv.js +6 -0
- package/dist/_virtual/ajv.js.map +1 -0
- package/dist/_virtual/ajv2.js +5 -0
- package/dist/_virtual/ajv2.js.map +1 -0
- package/dist/_virtual/allOf.js +5 -0
- package/dist/_virtual/allOf.js.map +1 -0
- package/dist/_virtual/anyOf.js +5 -0
- package/dist/_virtual/anyOf.js.map +1 -0
- package/dist/_virtual/applicability.js +5 -0
- package/dist/_virtual/applicability.js.map +1 -0
- package/dist/_virtual/boolSchema.js +5 -0
- package/dist/_virtual/boolSchema.js.map +1 -0
- package/dist/_virtual/code.js +5 -0
- package/dist/_virtual/code.js.map +1 -0
- package/dist/_virtual/code2.js +5 -0
- package/dist/_virtual/code2.js.map +1 -0
- package/dist/_virtual/const.js +5 -0
- package/dist/_virtual/const.js.map +1 -0
- package/dist/_virtual/contains.js +5 -0
- package/dist/_virtual/contains.js.map +1 -0
- package/dist/_virtual/core.js +5 -0
- package/dist/_virtual/core.js.map +1 -0
- package/dist/_virtual/dataType.js +5 -0
- package/dist/_virtual/dataType.js.map +1 -0
- package/dist/_virtual/defaults.js +5 -0
- package/dist/_virtual/defaults.js.map +1 -0
- package/dist/_virtual/dependencies.js +5 -0
- package/dist/_virtual/dependencies.js.map +1 -0
- package/dist/_virtual/draft7.js +5 -0
- package/dist/_virtual/draft7.js.map +1 -0
- package/dist/_virtual/enum.js +5 -0
- package/dist/_virtual/enum.js.map +1 -0
- package/dist/_virtual/equal.js +5 -0
- package/dist/_virtual/equal.js.map +1 -0
- package/dist/_virtual/errors.js +5 -0
- package/dist/_virtual/errors.js.map +1 -0
- package/dist/_virtual/format.js +5 -0
- package/dist/_virtual/format.js.map +1 -0
- package/dist/_virtual/formats.js +5 -0
- package/dist/_virtual/formats.js.map +1 -0
- package/dist/_virtual/id.js +5 -0
- package/dist/_virtual/id.js.map +1 -0
- package/dist/_virtual/if.js +5 -0
- package/dist/_virtual/if.js.map +1 -0
- package/dist/_virtual/index.js +8 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/index10.js +5 -0
- package/dist/_virtual/index10.js.map +1 -0
- package/dist/_virtual/index11.js +5 -0
- package/dist/_virtual/index11.js.map +1 -0
- package/dist/_virtual/index12.js +5 -0
- package/dist/_virtual/index12.js.map +1 -0
- package/dist/_virtual/index2.js +5 -0
- package/dist/_virtual/index2.js.map +1 -0
- package/dist/_virtual/index3.js +5 -0
- package/dist/_virtual/index3.js.map +1 -0
- package/dist/_virtual/index4.js +5 -0
- package/dist/_virtual/index4.js.map +1 -0
- package/dist/_virtual/index5.js +5 -0
- package/dist/_virtual/index5.js.map +1 -0
- package/dist/_virtual/index6.js +5 -0
- package/dist/_virtual/index6.js.map +1 -0
- package/dist/_virtual/index7.js +5 -0
- package/dist/_virtual/index7.js.map +1 -0
- package/dist/_virtual/index8.js +5 -0
- package/dist/_virtual/index8.js.map +1 -0
- package/dist/_virtual/index9.js +5 -0
- package/dist/_virtual/index9.js.map +1 -0
- package/dist/_virtual/items.js +5 -0
- package/dist/_virtual/items.js.map +1 -0
- package/dist/_virtual/items2020.js +5 -0
- package/dist/_virtual/items2020.js.map +1 -0
- package/dist/_virtual/keyword.js +5 -0
- package/dist/_virtual/keyword.js.map +1 -0
- package/dist/_virtual/limit.js +5 -0
- package/dist/_virtual/limit.js.map +1 -0
- package/dist/_virtual/limitItems.js +5 -0
- package/dist/_virtual/limitItems.js.map +1 -0
- package/dist/_virtual/limitLength.js +5 -0
- package/dist/_virtual/limitLength.js.map +1 -0
- package/dist/_virtual/limitNumber.js +5 -0
- package/dist/_virtual/limitNumber.js.map +1 -0
- package/dist/_virtual/limitProperties.js +5 -0
- package/dist/_virtual/limitProperties.js.map +1 -0
- package/dist/_virtual/metadata.js +5 -0
- package/dist/_virtual/metadata.js.map +1 -0
- package/dist/_virtual/multipleOf.js +5 -0
- package/dist/_virtual/multipleOf.js.map +1 -0
- package/dist/_virtual/names.js +5 -0
- package/dist/_virtual/names.js.map +1 -0
- package/dist/_virtual/not.js +5 -0
- package/dist/_virtual/not.js.map +1 -0
- package/dist/_virtual/oneOf.js +5 -0
- package/dist/_virtual/oneOf.js.map +1 -0
- package/dist/_virtual/pattern.js +5 -0
- package/dist/_virtual/pattern.js.map +1 -0
- package/dist/_virtual/patternProperties.js +5 -0
- package/dist/_virtual/patternProperties.js.map +1 -0
- package/dist/_virtual/prefixItems.js +5 -0
- package/dist/_virtual/prefixItems.js.map +1 -0
- package/dist/_virtual/properties.js +5 -0
- package/dist/_virtual/properties.js.map +1 -0
- package/dist/_virtual/propertyNames.js +5 -0
- package/dist/_virtual/propertyNames.js.map +1 -0
- package/dist/_virtual/ref.js +5 -0
- package/dist/_virtual/ref.js.map +1 -0
- package/dist/_virtual/ref_error.js +5 -0
- package/dist/_virtual/ref_error.js.map +1 -0
- package/dist/_virtual/required.js +5 -0
- package/dist/_virtual/required.js.map +1 -0
- package/dist/_virtual/resolve.js +5 -0
- package/dist/_virtual/resolve.js.map +1 -0
- package/dist/_virtual/rules.js +5 -0
- package/dist/_virtual/rules.js.map +1 -0
- package/dist/_virtual/scope.js +5 -0
- package/dist/_virtual/scope.js.map +1 -0
- package/dist/_virtual/subschema.js +5 -0
- package/dist/_virtual/subschema.js.map +1 -0
- package/dist/_virtual/thenElse.js +5 -0
- package/dist/_virtual/thenElse.js.map +1 -0
- package/dist/_virtual/types.js +5 -0
- package/dist/_virtual/types.js.map +1 -0
- package/dist/_virtual/ucs2length.js +5 -0
- package/dist/_virtual/ucs2length.js.map +1 -0
- package/dist/_virtual/uniqueItems.js +5 -0
- package/dist/_virtual/uniqueItems.js.map +1 -0
- package/dist/_virtual/uri.js +5 -0
- package/dist/_virtual/uri.js.map +1 -0
- package/dist/_virtual/util.js +5 -0
- package/dist/_virtual/util.js.map +1 -0
- package/dist/_virtual/validation_error.js +5 -0
- package/dist/_virtual/validation_error.js.map +1 -0
- package/dist/agents/analyst-agent.d.ts +230 -0
- package/dist/agents/analyst-agent.d.ts.map +1 -0
- package/dist/agents/analyst-agent.js +793 -0
- package/dist/agents/analyst-agent.js.map +1 -0
- package/dist/agents/architect-agent.d.ts +248 -0
- package/dist/agents/architect-agent.d.ts.map +1 -0
- package/dist/agents/architect-agent.js +685 -0
- package/dist/agents/architect-agent.js.map +1 -0
- package/dist/agents/base-agent.d.ts +169 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +441 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/coder-agent.d.ts +191 -0
- package/dist/agents/coder-agent.d.ts.map +1 -0
- package/dist/agents/coder-agent.js +1008 -0
- package/dist/agents/coder-agent.js.map +1 -0
- package/dist/agents/index.d.ts +18 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +40 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/registry.d.ts +213 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +419 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/researcher-agent.d.ts +226 -0
- package/dist/agents/researcher-agent.d.ts.map +1 -0
- package/dist/agents/researcher-agent.js +572 -0
- package/dist/agents/researcher-agent.js.map +1 -0
- package/dist/agents/rules-engine.d.ts +320 -0
- package/dist/agents/rules-engine.d.ts.map +1 -0
- package/dist/agents/rules-engine.js +552 -0
- package/dist/agents/rules-engine.js.map +1 -0
- package/dist/agents/tester-agent.d.ts +219 -0
- package/dist/agents/tester-agent.d.ts.map +1 -0
- package/dist/agents/tester-agent.js +683 -0
- package/dist/agents/tester-agent.js.map +1 -0
- package/dist/agents/types.d.ts +425 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +57 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/caching/index.d.ts +55 -0
- package/dist/caching/index.d.ts.map +1 -0
- package/dist/caching/index.js +206 -0
- package/dist/caching/index.js.map +1 -0
- package/dist/caching/lru-cache.d.ts +254 -0
- package/dist/caching/lru-cache.d.ts.map +1 -0
- package/dist/caching/types.d.ts +95 -0
- package/dist/caching/types.d.ts.map +1 -0
- package/dist/chunking/chunker.d.ts +94 -0
- package/dist/chunking/chunker.d.ts.map +1 -0
- package/dist/chunking/index.d.ts +125 -0
- package/dist/chunking/index.d.ts.map +1 -0
- package/dist/chunking/index.js +283 -0
- package/dist/chunking/index.js.map +1 -0
- package/dist/chunking/types.d.ts +92 -0
- package/dist/chunking/types.d.ts.map +1 -0
- package/dist/cli/commands/commit.d.ts +11 -0
- package/dist/cli/commands/commit.d.ts.map +1 -0
- package/dist/cli/commands/commit.js +379 -0
- package/dist/cli/commands/commit.js.map +1 -0
- package/dist/cli/commands/config.d.ts +8 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +107 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/cultivate.d.ts +16 -0
- package/dist/cli/commands/cultivate.d.ts.map +1 -0
- package/dist/cli/commands/cultivate.js +254 -0
- package/dist/cli/commands/cultivate.js.map +1 -0
- package/dist/cli/commands/diagnostics.d.ts +8 -0
- package/dist/cli/commands/diagnostics.d.ts.map +1 -0
- package/dist/cli/commands/diagnostics.js +140 -0
- package/dist/cli/commands/diagnostics.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +13 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/init-primitives.d.ts +19 -0
- package/dist/cli/commands/init-primitives.d.ts.map +1 -0
- package/dist/cli/commands/init-primitives.js +208 -0
- package/dist/cli/commands/init-primitives.js.map +1 -0
- package/dist/cli/commands/sop.d.ts +14 -0
- package/dist/cli/commands/sop.d.ts.map +1 -0
- package/dist/cli/commands/sop.js +598 -0
- package/dist/cli/commands/sop.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +40 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/config/index.d.ts +153 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +141 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/manager.d.ts +136 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/types.d.ts +127 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/core/cache.d.ts +185 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +435 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/cultivation/deep-analyzer.d.ts +129 -0
- package/dist/cultivation/deep-analyzer.d.ts.map +1 -0
- package/dist/cultivation/deep-analyzer.js +322 -0
- package/dist/cultivation/deep-analyzer.js.map +1 -0
- package/dist/cultivation/index.d.ts +13 -0
- package/dist/cultivation/index.d.ts.map +1 -0
- package/dist/cultivation/seed-generator.d.ts +92 -0
- package/dist/cultivation/seed-generator.d.ts.map +1 -0
- package/dist/cultivation/seed-generator.js +1033 -0
- package/dist/cultivation/seed-generator.js.map +1 -0
- package/dist/cultivation/types.d.ts +230 -0
- package/dist/cultivation/types.d.ts.map +1 -0
- package/dist/generators/claude-md.d.ts +7 -0
- package/dist/generators/claude-md.d.ts.map +1 -1
- package/dist/generators/claude-md.js.map +1 -1
- package/dist/generators/docs-init.d.ts +6 -0
- package/dist/generators/docs-init.d.ts.map +1 -1
- package/dist/generators/docs-init.js.map +1 -1
- package/dist/health/checks.d.ts +135 -0
- package/dist/health/checks.d.ts.map +1 -0
- package/dist/health/index.d.ts +119 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +191 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/monitor.d.ts +146 -0
- package/dist/health/monitor.d.ts.map +1 -0
- package/dist/health/types.d.ts +135 -0
- package/dist/health/types.d.ts.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +173 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/auto-commit.d.ts +175 -0
- package/dist/integrations/auto-commit.d.ts.map +1 -0
- package/dist/integrations/auto-commit.js +399 -0
- package/dist/integrations/auto-commit.js.map +1 -0
- package/dist/integrations/git.d.ts +299 -0
- package/dist/integrations/git.d.ts.map +1 -0
- package/dist/integrations/git.js +465 -0
- package/dist/integrations/git.js.map +1 -0
- package/dist/mcp-server/bin.d.ts +11 -0
- package/dist/mcp-server/bin.d.ts.map +1 -0
- package/dist/mcp-server/handlers/index.d.ts +57 -0
- package/dist/mcp-server/handlers/index.d.ts.map +1 -0
- package/dist/mcp-server/handlers/index.js +235 -0
- package/dist/mcp-server/handlers/index.js.map +1 -0
- package/dist/mcp-server/index.d.ts +28 -0
- package/dist/mcp-server/index.d.ts.map +1 -0
- package/dist/mcp-server/server.d.ts +133 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +280 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tools/agents/index.d.ts +10 -0
- package/dist/mcp-server/tools/agents/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/agents/list.d.ts +19 -0
- package/dist/mcp-server/tools/agents/list.d.ts.map +1 -0
- package/dist/mcp-server/tools/agents/spawn.d.ts +19 -0
- package/dist/mcp-server/tools/agents/spawn.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/generate.d.ts +21 -0
- package/dist/mcp-server/tools/graph/generate.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/index.d.ts +11 -0
- package/dist/mcp-server/tools/graph/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/query.d.ts +22 -0
- package/dist/mcp-server/tools/graph/query.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/stats.d.ts +22 -0
- package/dist/mcp-server/tools/graph/stats.d.ts.map +1 -0
- package/dist/mcp-server/tools/health.d.ts +21 -0
- package/dist/mcp-server/tools/health.d.ts.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +13 -0
- package/dist/mcp-server/tools/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/registry.d.ts +90 -0
- package/dist/mcp-server/tools/registry.d.ts.map +1 -0
- package/dist/mcp-server/tools/registry.js +663 -0
- package/dist/mcp-server/tools/registry.js.map +1 -0
- package/dist/mcp-server/tools/search/index.d.ts +10 -0
- package/dist/mcp-server/tools/search/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/search/nodes.d.ts +22 -0
- package/dist/mcp-server/tools/search/nodes.d.ts.map +1 -0
- package/dist/mcp-server/tools/search/tags.d.ts +22 -0
- package/dist/mcp-server/tools/search/tags.d.ts.map +1 -0
- package/dist/mcp-server/types/index.d.ts +286 -0
- package/dist/mcp-server/types/index.d.ts.map +1 -0
- package/dist/memory/index.d.ts +10 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/vault-sync.d.ts +212 -0
- package/dist/memory/vault-sync.d.ts.map +1 -0
- package/dist/memory/vault-sync.js +463 -0
- package/dist/memory/vault-sync.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +296 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +71 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +26 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +407 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1332 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +71 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
- package/dist/node_modules/ajv/dist/ajv.js +84 -0
- package/dist/node_modules/ajv/dist/ajv.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/code.js +160 -0
- package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/index.js +728 -0
- package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/scope.js +152 -0
- package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/errors.js +131 -0
- package/dist/node_modules/ajv/dist/compile/errors.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/index.js +234 -0
- package/dist/node_modules/ajv/dist/compile/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/names.js +44 -0
- package/dist/node_modules/ajv/dist/compile/names.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/ref_error.js +22 -0
- package/dist/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/resolve.js +163 -0
- package/dist/node_modules/ajv/dist/compile/resolve.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/rules.js +35 -0
- package/dist/node_modules/ajv/dist/compile/rules.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/util.js +173 -0
- package/dist/node_modules/ajv/dist/compile/util.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/applicability.js +27 -0
- package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +58 -0
- package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/dataType.js +193 -0
- package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/defaults.js +43 -0
- package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/index.js +522 -0
- package/dist/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/keyword.js +126 -0
- package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/subschema.js +89 -0
- package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
- package/dist/node_modules/ajv/dist/core.js +628 -0
- package/dist/node_modules/ajv/dist/core.js.map +1 -0
- package/dist/node_modules/ajv/dist/refs/data.json.js +24 -0
- package/dist/node_modules/ajv/dist/refs/data.json.js.map +1 -0
- package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +25 -0
- package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/equal.js +16 -0
- package/dist/node_modules/ajv/dist/runtime/equal.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/ucs2length.js +30 -0
- package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/uri.js +16 -0
- package/dist/node_modules/ajv/dist/runtime/uri.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/validation_error.js +20 -0
- package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +59 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +114 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +32 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +22 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +100 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +103 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +75 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +68 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +64 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +43 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +36 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +64 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +81 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +22 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +66 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +49 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +23 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/code.js +140 -0
- package/dist/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/id.js +19 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/index.js +27 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +132 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +114 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +18 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/draft7.js +31 -0
- package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/format.js +95 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/index.js +16 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/metadata.js +27 -0
- package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +36 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +56 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +52 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +34 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +39 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +37 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +34 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +33 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +34 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +89 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +75 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/formats.js +209 -0
- package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/index.js +51 -0
- package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/limit.js +80 -0
- package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
- package/dist/node_modules/fast-deep-equal/index.js +39 -0
- package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
- package/dist/node_modules/fast-uri/index.js +261 -0
- package/dist/node_modules/fast-uri/index.js.map +1 -0
- package/dist/node_modules/fast-uri/lib/schemes.js +215 -0
- package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
- package/dist/node_modules/fast-uri/lib/utils.js +261 -0
- package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
- package/dist/node_modules/json-schema-traverse/index.js +92 -0
- package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/errors.js +37 -0
- package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/iso.js +43 -0
- package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.js +13 -0
- package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.js +688 -0
- package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/api.js +492 -0
- package/dist/node_modules/zod/v4/core/api.js.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.js +405 -0
- package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
- package/dist/node_modules/zod/v4/core/core.js +58 -0
- package/dist/node_modules/zod/v4/core/core.js.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.js +38 -0
- package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.js +82 -0
- package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.js +60 -0
- package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.js +87 -0
- package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.js +52 -0
- package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.js +1283 -0
- package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/util.js +341 -0
- package/dist/node_modules/zod/v4/core/util.js.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.js +9 -0
- package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +2 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
- package/dist/reasoning/index.d.ts +74 -0
- package/dist/reasoning/index.d.ts.map +1 -0
- package/dist/reasoning/index.js +124 -0
- package/dist/reasoning/index.js.map +1 -0
- package/dist/reasoning/tracker.d.ts +210 -0
- package/dist/reasoning/tracker.d.ts.map +1 -0
- package/dist/reasoning/types.d.ts +146 -0
- package/dist/reasoning/types.d.ts.map +1 -0
- package/dist/recovery/backup.d.ts +110 -0
- package/dist/recovery/backup.d.ts.map +1 -0
- package/dist/recovery/index.d.ts +70 -0
- package/dist/recovery/index.d.ts.map +1 -0
- package/dist/recovery/index.js +186 -0
- package/dist/recovery/index.js.map +1 -0
- package/dist/recovery/integrity.d.ts +74 -0
- package/dist/recovery/integrity.d.ts.map +1 -0
- package/dist/recovery/types.d.ts +94 -0
- package/dist/recovery/types.d.ts.map +1 -0
- package/dist/services/index.d.ts +130 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +134 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/manager.d.ts +140 -0
- package/dist/services/manager.d.ts.map +1 -0
- package/dist/services/types.d.ts +106 -0
- package/dist/services/types.d.ts.map +1 -0
- package/dist/services/watchers.d.ts +95 -0
- package/dist/services/watchers.d.ts.map +1 -0
- package/dist/sops/compliance-checker.d.ts +83 -0
- package/dist/sops/compliance-checker.d.ts.map +1 -0
- package/dist/sops/compliance-checker.js +399 -0
- package/dist/sops/compliance-checker.js.map +1 -0
- package/dist/sops/gap-analyzer.d.ts +124 -0
- package/dist/sops/gap-analyzer.d.ts.map +1 -0
- package/dist/sops/gap-analyzer.js +313 -0
- package/dist/sops/gap-analyzer.js.map +1 -0
- package/dist/sops/index.d.ts +14 -0
- package/dist/sops/index.d.ts.map +1 -0
- package/dist/sops/overlay-manager.d.ts +115 -0
- package/dist/sops/overlay-manager.d.ts.map +1 -0
- package/dist/sops/overlay-manager.js +394 -0
- package/dist/sops/overlay-manager.js.map +1 -0
- package/dist/sops/registry.d.ts +73 -0
- package/dist/sops/registry.d.ts.map +1 -0
- package/dist/sops/registry.js +919 -0
- package/dist/sops/registry.js.map +1 -0
- package/dist/sops/types.d.ts +377 -0
- package/dist/sops/types.d.ts.map +1 -0
- package/dist/sops/types.js +46 -0
- package/dist/sops/types.js.map +1 -0
- package/dist/utils/error-recovery.d.ts +230 -0
- package/dist/utils/error-recovery.d.ts.map +1 -0
- package/dist/utils/error-recovery.js +228 -0
- package/dist/utils/error-recovery.js.map +1 -0
- package/dist/utils/error-taxonomy.d.ts +149 -0
- package/dist/utils/error-taxonomy.d.ts.map +1 -0
- package/dist/utils/error-taxonomy.js +260 -0
- package/dist/utils/error-taxonomy.js.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +139 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +311 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/workflows/index.d.ts +11 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/registry.d.ts +118 -0
- package/dist/workflows/registry.d.ts.map +1 -0
- package/dist/workflows/registry.js +575 -0
- package/dist/workflows/registry.js.map +1 -0
- package/dist/workflows/types.d.ts +322 -0
- package/dist/workflows/types.d.ts.map +1 -0
- package/dist/workflows/types.js +16 -0
- package/dist/workflows/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Backup Manager
|
|
3
|
+
*
|
|
4
|
+
* Provides backup creation, restore, and automatic backup scheduling
|
|
5
|
+
* for SQLite databases with optional compression.
|
|
6
|
+
*
|
|
7
|
+
* @module recovery/backup
|
|
8
|
+
*/
|
|
9
|
+
import type { BackupConfig, BackupInfo } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Manages database backups with compression and automatic scheduling
|
|
12
|
+
*/
|
|
13
|
+
export declare class BackupManager {
|
|
14
|
+
private config;
|
|
15
|
+
private timer?;
|
|
16
|
+
private dbPath;
|
|
17
|
+
/**
|
|
18
|
+
* Create a new BackupManager
|
|
19
|
+
*
|
|
20
|
+
* @param dbPath - Path to the SQLite database file
|
|
21
|
+
* @param config - Optional backup configuration
|
|
22
|
+
*/
|
|
23
|
+
constructor(dbPath: string, config?: Partial<BackupConfig>);
|
|
24
|
+
/**
|
|
25
|
+
* Create a new backup of the database
|
|
26
|
+
*
|
|
27
|
+
* @returns Information about the created backup
|
|
28
|
+
* @throws Error if backup creation fails
|
|
29
|
+
*/
|
|
30
|
+
createBackup(): Promise<BackupInfo>;
|
|
31
|
+
/**
|
|
32
|
+
* Restore the database from a backup
|
|
33
|
+
*
|
|
34
|
+
* @param backupId - ID of the backup to restore
|
|
35
|
+
* @throws Error if backup not found or restore fails
|
|
36
|
+
*/
|
|
37
|
+
restore(backupId: string): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* List all available backups
|
|
40
|
+
*
|
|
41
|
+
* @returns Array of backup information, sorted by timestamp (newest first)
|
|
42
|
+
*/
|
|
43
|
+
listBackups(): BackupInfo[];
|
|
44
|
+
/**
|
|
45
|
+
* Get a specific backup by ID
|
|
46
|
+
*
|
|
47
|
+
* @param id - Backup ID
|
|
48
|
+
* @returns Backup information or undefined if not found
|
|
49
|
+
*/
|
|
50
|
+
getBackup(id: string): BackupInfo | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Get the most recent backup
|
|
53
|
+
*
|
|
54
|
+
* @returns Most recent backup or undefined if no backups exist
|
|
55
|
+
*/
|
|
56
|
+
getLatestBackup(): BackupInfo | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* Delete a specific backup
|
|
59
|
+
*
|
|
60
|
+
* @param backupId - ID of the backup to delete
|
|
61
|
+
* @returns True if deleted, false if not found
|
|
62
|
+
*/
|
|
63
|
+
deleteBackup(backupId: string): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Verify a backup's integrity
|
|
66
|
+
*
|
|
67
|
+
* @param backupId - ID of the backup to verify
|
|
68
|
+
* @returns True if backup is valid
|
|
69
|
+
*/
|
|
70
|
+
verifyBackup(backupId: string): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Get backup configuration
|
|
73
|
+
*/
|
|
74
|
+
getConfig(): BackupConfig;
|
|
75
|
+
/**
|
|
76
|
+
* Update backup configuration
|
|
77
|
+
*
|
|
78
|
+
* @param config - Partial configuration to update
|
|
79
|
+
*/
|
|
80
|
+
updateConfig(config: Partial<BackupConfig>): void;
|
|
81
|
+
/**
|
|
82
|
+
* Remove old backups exceeding maxBackups
|
|
83
|
+
*/
|
|
84
|
+
private cleanOldBackups;
|
|
85
|
+
/**
|
|
86
|
+
* Calculate SHA-256 checksum of a file
|
|
87
|
+
*/
|
|
88
|
+
private calculateChecksum;
|
|
89
|
+
/**
|
|
90
|
+
* Start automatic backup scheduling
|
|
91
|
+
*/
|
|
92
|
+
startAutoBackup(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Stop automatic backup scheduling
|
|
95
|
+
*/
|
|
96
|
+
stopAutoBackup(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Check if auto backup is running
|
|
99
|
+
*/
|
|
100
|
+
isAutoBackupRunning(): boolean;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Create a BackupManager instance
|
|
104
|
+
*
|
|
105
|
+
* @param dbPath - Path to the SQLite database file
|
|
106
|
+
* @param config - Optional backup configuration
|
|
107
|
+
* @returns BackupManager instance
|
|
108
|
+
*/
|
|
109
|
+
export declare function createBackupManager(dbPath: string, config?: Partial<BackupConfig>): BackupManager;
|
|
110
|
+
//# sourceMappingURL=backup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/recovery/backup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0B3D;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAiC1D;;;;;OAKG;IACG,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC;IAqDzC;;;;;OAKG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC9C;;;;OAIG;IACH,WAAW,IAAI,UAAU,EAAE;IA0B3B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI7C;;;;OAIG;IACH,eAAe,IAAI,UAAU,GAAG,SAAS;IAKzC;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAkBvC;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAcvC;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAejD;;OAEG;YACW,eAAe;IAoB7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,eAAe,IAAI,IAAI;IAcvB;;OAEG;IACH,cAAc,IAAI,IAAI;IAQtB;;OAEG;IACH,mBAAmB,IAAI,OAAO;CAG/B;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,aAAa,CAEjG"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recovery Module
|
|
3
|
+
*
|
|
4
|
+
* Provides backup, restore, and integrity checking capabilities.
|
|
5
|
+
*/
|
|
6
|
+
export interface BackupConfig {
|
|
7
|
+
backupDir: string;
|
|
8
|
+
maxBackups?: number;
|
|
9
|
+
compress?: boolean;
|
|
10
|
+
includeDatabase?: boolean;
|
|
11
|
+
includeCache?: boolean;
|
|
12
|
+
includeConfig?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface BackupInfo {
|
|
15
|
+
id: string;
|
|
16
|
+
path: string;
|
|
17
|
+
createdAt: Date;
|
|
18
|
+
size: number;
|
|
19
|
+
components: string[];
|
|
20
|
+
version: string;
|
|
21
|
+
checksum?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface RestoreResult {
|
|
24
|
+
success: boolean;
|
|
25
|
+
restoredComponents: string[];
|
|
26
|
+
error?: string;
|
|
27
|
+
warnings: string[];
|
|
28
|
+
duration: number;
|
|
29
|
+
}
|
|
30
|
+
export interface RecoveryOptions {
|
|
31
|
+
force?: boolean;
|
|
32
|
+
verify?: boolean;
|
|
33
|
+
skipComponents?: string[];
|
|
34
|
+
dryRun?: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface IntegrityCheckResult {
|
|
37
|
+
valid: boolean;
|
|
38
|
+
components: TableIntegrity[];
|
|
39
|
+
issues: string[];
|
|
40
|
+
duration: number;
|
|
41
|
+
}
|
|
42
|
+
export interface TableIntegrity {
|
|
43
|
+
table: string;
|
|
44
|
+
rowCount: number;
|
|
45
|
+
validStructure: boolean;
|
|
46
|
+
fkViolations: number;
|
|
47
|
+
orphanedRecords: number;
|
|
48
|
+
}
|
|
49
|
+
export declare class BackupManager {
|
|
50
|
+
private config;
|
|
51
|
+
constructor(config: BackupConfig);
|
|
52
|
+
createBackup(description?: string): Promise<BackupInfo>;
|
|
53
|
+
listBackups(): Promise<BackupInfo[]>;
|
|
54
|
+
restore(backupId: string, options?: RecoveryOptions): Promise<RestoreResult>;
|
|
55
|
+
deleteBackup(backupId: string): Promise<boolean>;
|
|
56
|
+
private cleanupOldBackups;
|
|
57
|
+
}
|
|
58
|
+
export declare function createBackupManager(config: BackupConfig): BackupManager;
|
|
59
|
+
export declare class IntegrityChecker {
|
|
60
|
+
private dbPath;
|
|
61
|
+
constructor(dbPath: string);
|
|
62
|
+
check(): Promise<IntegrityCheckResult>;
|
|
63
|
+
repair(): Promise<{
|
|
64
|
+
repaired: boolean;
|
|
65
|
+
actions: string[];
|
|
66
|
+
}>;
|
|
67
|
+
}
|
|
68
|
+
export declare function createIntegrityChecker(dbPath: string): IntegrityChecker;
|
|
69
|
+
export declare function checkDatabaseIntegrity(dbPath: string): Promise<IntegrityCheckResult>;
|
|
70
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recovery/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAMD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAW1B,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA0CvD,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAiCpC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAmDhF,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAWxC,iBAAiB;CAWhC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAEvE;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAIpB,KAAK,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAuBtC,MAAM,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAIlE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAEvE;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAG1F"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
class BackupManager {
|
|
2
|
+
config;
|
|
3
|
+
constructor(config) {
|
|
4
|
+
this.config = {
|
|
5
|
+
maxBackups: 10,
|
|
6
|
+
compress: true,
|
|
7
|
+
includeDatabase: true,
|
|
8
|
+
includeCache: true,
|
|
9
|
+
includeConfig: true,
|
|
10
|
+
...config
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
async createBackup(description) {
|
|
14
|
+
const { mkdirSync, existsSync, writeFileSync, statSync } = await import("fs");
|
|
15
|
+
const { join } = await import("path");
|
|
16
|
+
const crypto = await import("crypto");
|
|
17
|
+
if (!existsSync(this.config.backupDir)) {
|
|
18
|
+
mkdirSync(this.config.backupDir, { recursive: true });
|
|
19
|
+
}
|
|
20
|
+
const id = `backup-${Date.now()}`;
|
|
21
|
+
const backupPath = join(this.config.backupDir, id);
|
|
22
|
+
mkdirSync(backupPath, { recursive: true });
|
|
23
|
+
const components = [];
|
|
24
|
+
const manifest = {
|
|
25
|
+
id,
|
|
26
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
27
|
+
description,
|
|
28
|
+
version: "1.0.0",
|
|
29
|
+
components
|
|
30
|
+
};
|
|
31
|
+
writeFileSync(join(backupPath, "manifest.json"), JSON.stringify(manifest, null, 2));
|
|
32
|
+
const stats = statSync(backupPath);
|
|
33
|
+
const hash = crypto.createHash("sha256");
|
|
34
|
+
hash.update(JSON.stringify(manifest));
|
|
35
|
+
const checksum = hash.digest("hex");
|
|
36
|
+
const backupInfo = {
|
|
37
|
+
id,
|
|
38
|
+
path: backupPath,
|
|
39
|
+
createdAt: /* @__PURE__ */ new Date(),
|
|
40
|
+
size: stats.size,
|
|
41
|
+
components,
|
|
42
|
+
version: "1.0.0",
|
|
43
|
+
checksum
|
|
44
|
+
};
|
|
45
|
+
await this.cleanupOldBackups();
|
|
46
|
+
return backupInfo;
|
|
47
|
+
}
|
|
48
|
+
async listBackups() {
|
|
49
|
+
const { readdirSync, existsSync, readFileSync, statSync } = await import("fs");
|
|
50
|
+
const { join } = await import("path");
|
|
51
|
+
if (!existsSync(this.config.backupDir)) return [];
|
|
52
|
+
const backups = [];
|
|
53
|
+
const entries = readdirSync(this.config.backupDir);
|
|
54
|
+
for (const entry of entries) {
|
|
55
|
+
const backupPath = join(this.config.backupDir, entry);
|
|
56
|
+
const manifestPath = join(backupPath, "manifest.json");
|
|
57
|
+
if (existsSync(manifestPath)) {
|
|
58
|
+
try {
|
|
59
|
+
const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
|
|
60
|
+
const stats = statSync(backupPath);
|
|
61
|
+
backups.push({
|
|
62
|
+
id: manifest.id,
|
|
63
|
+
path: backupPath,
|
|
64
|
+
createdAt: new Date(manifest.createdAt),
|
|
65
|
+
size: stats.size,
|
|
66
|
+
components: manifest.components || [],
|
|
67
|
+
version: manifest.version || "1.0.0",
|
|
68
|
+
checksum: manifest.checksum
|
|
69
|
+
});
|
|
70
|
+
} catch {
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return backups.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
|
|
75
|
+
}
|
|
76
|
+
async restore(backupId, options = {}) {
|
|
77
|
+
const startTime = Date.now();
|
|
78
|
+
const { existsSync, readFileSync } = await import("fs");
|
|
79
|
+
const { join } = await import("path");
|
|
80
|
+
const backupPath = join(this.config.backupDir, backupId);
|
|
81
|
+
const manifestPath = join(backupPath, "manifest.json");
|
|
82
|
+
if (!existsSync(manifestPath)) {
|
|
83
|
+
return {
|
|
84
|
+
success: false,
|
|
85
|
+
restoredComponents: [],
|
|
86
|
+
error: `Backup not found: ${backupId}`,
|
|
87
|
+
warnings: [],
|
|
88
|
+
duration: Date.now() - startTime
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
|
|
93
|
+
const restoredComponents = [];
|
|
94
|
+
const warnings = [];
|
|
95
|
+
if (options.dryRun) {
|
|
96
|
+
return {
|
|
97
|
+
success: true,
|
|
98
|
+
restoredComponents: manifest.components || [],
|
|
99
|
+
warnings: ["Dry run - no changes made"],
|
|
100
|
+
duration: Date.now() - startTime
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
restoredComponents.push(...manifest.components || []);
|
|
104
|
+
return {
|
|
105
|
+
success: true,
|
|
106
|
+
restoredComponents,
|
|
107
|
+
warnings,
|
|
108
|
+
duration: Date.now() - startTime
|
|
109
|
+
};
|
|
110
|
+
} catch (error) {
|
|
111
|
+
return {
|
|
112
|
+
success: false,
|
|
113
|
+
restoredComponents: [],
|
|
114
|
+
error: error instanceof Error ? error.message : String(error),
|
|
115
|
+
warnings: [],
|
|
116
|
+
duration: Date.now() - startTime
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async deleteBackup(backupId) {
|
|
121
|
+
const { existsSync, rmSync } = await import("fs");
|
|
122
|
+
const { join } = await import("path");
|
|
123
|
+
const backupPath = join(this.config.backupDir, backupId);
|
|
124
|
+
if (!existsSync(backupPath)) return false;
|
|
125
|
+
rmSync(backupPath, { recursive: true, force: true });
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
async cleanupOldBackups() {
|
|
129
|
+
const backups = await this.listBackups();
|
|
130
|
+
const maxBackups = this.config.maxBackups || 10;
|
|
131
|
+
if (backups.length > maxBackups) {
|
|
132
|
+
const toDelete = backups.slice(maxBackups);
|
|
133
|
+
for (const backup of toDelete) {
|
|
134
|
+
await this.deleteBackup(backup.id);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function createBackupManager(config) {
|
|
140
|
+
return new BackupManager(config);
|
|
141
|
+
}
|
|
142
|
+
class IntegrityChecker {
|
|
143
|
+
dbPath;
|
|
144
|
+
constructor(dbPath) {
|
|
145
|
+
this.dbPath = dbPath;
|
|
146
|
+
}
|
|
147
|
+
async check() {
|
|
148
|
+
const startTime = Date.now();
|
|
149
|
+
const issues = [];
|
|
150
|
+
const components = [];
|
|
151
|
+
const { existsSync } = await import("fs");
|
|
152
|
+
if (!existsSync(this.dbPath)) {
|
|
153
|
+
return {
|
|
154
|
+
valid: false,
|
|
155
|
+
components: [],
|
|
156
|
+
issues: ["Database file not found"],
|
|
157
|
+
duration: Date.now() - startTime
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
valid: issues.length === 0,
|
|
162
|
+
components,
|
|
163
|
+
issues,
|
|
164
|
+
duration: Date.now() - startTime
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
async repair() {
|
|
168
|
+
const actions = [];
|
|
169
|
+
return { repaired: true, actions };
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function createIntegrityChecker(dbPath) {
|
|
173
|
+
return new IntegrityChecker(dbPath);
|
|
174
|
+
}
|
|
175
|
+
async function checkDatabaseIntegrity(dbPath) {
|
|
176
|
+
const checker = new IntegrityChecker(dbPath);
|
|
177
|
+
return checker.check();
|
|
178
|
+
}
|
|
179
|
+
export {
|
|
180
|
+
BackupManager,
|
|
181
|
+
IntegrityChecker,
|
|
182
|
+
checkDatabaseIntegrity,
|
|
183
|
+
createBackupManager,
|
|
184
|
+
createIntegrityChecker
|
|
185
|
+
};
|
|
186
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/recovery/index.ts"],"sourcesContent":["/**\n * Recovery Module\n *\n * Provides backup, restore, and integrity checking capabilities.\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface BackupConfig {\n backupDir: string;\n maxBackups?: number;\n compress?: boolean;\n includeDatabase?: boolean;\n includeCache?: boolean;\n includeConfig?: boolean;\n}\n\nexport interface BackupInfo {\n id: string;\n path: string;\n createdAt: Date;\n size: number;\n components: string[];\n version: string;\n checksum?: string;\n}\n\nexport interface RestoreResult {\n success: boolean;\n restoredComponents: string[];\n error?: string;\n warnings: string[];\n duration: number;\n}\n\nexport interface RecoveryOptions {\n force?: boolean;\n verify?: boolean;\n skipComponents?: string[];\n dryRun?: boolean;\n}\n\nexport interface IntegrityCheckResult {\n valid: boolean;\n components: TableIntegrity[];\n issues: string[];\n duration: number;\n}\n\nexport interface TableIntegrity {\n table: string;\n rowCount: number;\n validStructure: boolean;\n fkViolations: number;\n orphanedRecords: number;\n}\n\n// ============================================================================\n// Backup Manager\n// ============================================================================\n\nexport class BackupManager {\n private config: BackupConfig;\n\n constructor(config: BackupConfig) {\n this.config = {\n maxBackups: 10,\n compress: true,\n includeDatabase: true,\n includeCache: true,\n includeConfig: true,\n ...config,\n };\n }\n\n async createBackup(description?: string): Promise<BackupInfo> {\n const { mkdirSync, existsSync, writeFileSync, statSync } = await import('fs');\n const { join } = await import('path');\n const crypto = await import('crypto');\n\n if (!existsSync(this.config.backupDir)) {\n mkdirSync(this.config.backupDir, { recursive: true });\n }\n\n const id = `backup-${Date.now()}`;\n const backupPath = join(this.config.backupDir, id);\n mkdirSync(backupPath, { recursive: true });\n\n const components: string[] = [];\n const manifest = {\n id,\n createdAt: new Date().toISOString(),\n description,\n version: '1.0.0',\n components,\n };\n\n writeFileSync(join(backupPath, 'manifest.json'), JSON.stringify(manifest, null, 2));\n const stats = statSync(backupPath);\n const hash = crypto.createHash('sha256');\n hash.update(JSON.stringify(manifest));\n const checksum = hash.digest('hex');\n\n const backupInfo: BackupInfo = {\n id,\n path: backupPath,\n createdAt: new Date(),\n size: stats.size,\n components,\n version: '1.0.0',\n checksum,\n };\n\n await this.cleanupOldBackups();\n return backupInfo;\n }\n\n async listBackups(): Promise<BackupInfo[]> {\n const { readdirSync, existsSync, readFileSync, statSync } = await import('fs');\n const { join } = await import('path');\n\n if (!existsSync(this.config.backupDir)) return [];\n\n const backups: BackupInfo[] = [];\n const entries = readdirSync(this.config.backupDir);\n\n for (const entry of entries) {\n const backupPath = join(this.config.backupDir, entry);\n const manifestPath = join(backupPath, 'manifest.json');\n\n if (existsSync(manifestPath)) {\n try {\n const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));\n const stats = statSync(backupPath);\n backups.push({\n id: manifest.id,\n path: backupPath,\n createdAt: new Date(manifest.createdAt),\n size: stats.size,\n components: manifest.components || [],\n version: manifest.version || '1.0.0',\n checksum: manifest.checksum,\n });\n } catch {}\n }\n }\n\n return backups.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());\n }\n\n async restore(backupId: string, options: RecoveryOptions = {}): Promise<RestoreResult> {\n const startTime = Date.now();\n const { existsSync, readFileSync } = await import('fs');\n const { join } = await import('path');\n\n const backupPath = join(this.config.backupDir, backupId);\n const manifestPath = join(backupPath, 'manifest.json');\n\n if (!existsSync(manifestPath)) {\n return {\n success: false,\n restoredComponents: [],\n error: `Backup not found: ${backupId}`,\n warnings: [],\n duration: Date.now() - startTime,\n };\n }\n\n try {\n const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));\n const restoredComponents: string[] = [];\n const warnings: string[] = [];\n\n if (options.dryRun) {\n return {\n success: true,\n restoredComponents: manifest.components || [],\n warnings: ['Dry run - no changes made'],\n duration: Date.now() - startTime,\n };\n }\n\n restoredComponents.push(...(manifest.components || []));\n\n return {\n success: true,\n restoredComponents,\n warnings,\n duration: Date.now() - startTime,\n };\n } catch (error) {\n return {\n success: false,\n restoredComponents: [],\n error: error instanceof Error ? error.message : String(error),\n warnings: [],\n duration: Date.now() - startTime,\n };\n }\n }\n\n async deleteBackup(backupId: string): Promise<boolean> {\n const { existsSync, rmSync } = await import('fs');\n const { join } = await import('path');\n\n const backupPath = join(this.config.backupDir, backupId);\n if (!existsSync(backupPath)) return false;\n\n rmSync(backupPath, { recursive: true, force: true });\n return true;\n }\n\n private async cleanupOldBackups(): Promise<void> {\n const backups = await this.listBackups();\n const maxBackups = this.config.maxBackups || 10;\n\n if (backups.length > maxBackups) {\n const toDelete = backups.slice(maxBackups);\n for (const backup of toDelete) {\n await this.deleteBackup(backup.id);\n }\n }\n }\n}\n\nexport function createBackupManager(config: BackupConfig): BackupManager {\n return new BackupManager(config);\n}\n\n// ============================================================================\n// Integrity Checker\n// ============================================================================\n\nexport class IntegrityChecker {\n private dbPath: string;\n\n constructor(dbPath: string) {\n this.dbPath = dbPath;\n }\n\n async check(): Promise<IntegrityCheckResult> {\n const startTime = Date.now();\n const issues: string[] = [];\n const components: TableIntegrity[] = [];\n const { existsSync } = await import('fs');\n\n if (!existsSync(this.dbPath)) {\n return {\n valid: false,\n components: [],\n issues: ['Database file not found'],\n duration: Date.now() - startTime,\n };\n }\n\n return {\n valid: issues.length === 0,\n components,\n issues,\n duration: Date.now() - startTime,\n };\n }\n\n async repair(): Promise<{ repaired: boolean; actions: string[] }> {\n const actions: string[] = [];\n return { repaired: true, actions };\n }\n}\n\nexport function createIntegrityChecker(dbPath: string): IntegrityChecker {\n return new IntegrityChecker(dbPath);\n}\n\nexport async function checkDatabaseIntegrity(dbPath: string): Promise<IntegrityCheckResult> {\n const checker = new IntegrityChecker(dbPath);\n return checker.check();\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Integrity Checker
|
|
3
|
+
*
|
|
4
|
+
* Provides integrity checking and repair operations for SQLite databases.
|
|
5
|
+
*
|
|
6
|
+
* @module recovery/integrity
|
|
7
|
+
*/
|
|
8
|
+
import type { IntegrityCheckResult } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Checks and repairs SQLite database integrity
|
|
11
|
+
*/
|
|
12
|
+
export declare class IntegrityChecker {
|
|
13
|
+
private dbPath;
|
|
14
|
+
/**
|
|
15
|
+
* Create a new IntegrityChecker
|
|
16
|
+
*
|
|
17
|
+
* @param dbPath - Path to the SQLite database file
|
|
18
|
+
*/
|
|
19
|
+
constructor(dbPath: string);
|
|
20
|
+
/**
|
|
21
|
+
* Perform a comprehensive integrity check on the database
|
|
22
|
+
*
|
|
23
|
+
* @returns Detailed integrity check results
|
|
24
|
+
*/
|
|
25
|
+
check(): IntegrityCheckResult;
|
|
26
|
+
/**
|
|
27
|
+
* Check integrity of a single table
|
|
28
|
+
*/
|
|
29
|
+
private checkTable;
|
|
30
|
+
/**
|
|
31
|
+
* Attempt to repair the database
|
|
32
|
+
*
|
|
33
|
+
* Performs VACUUM and REINDEX operations to clean up and optimize the database.
|
|
34
|
+
*
|
|
35
|
+
* @returns True if repair was successful
|
|
36
|
+
*/
|
|
37
|
+
repair(): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Optimize the database without full repair
|
|
40
|
+
*
|
|
41
|
+
* Runs incremental vacuum and analyze operations.
|
|
42
|
+
*
|
|
43
|
+
* @returns True if optimization was successful
|
|
44
|
+
*/
|
|
45
|
+
optimize(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Get database statistics
|
|
48
|
+
*
|
|
49
|
+
* @returns Object containing database statistics
|
|
50
|
+
*/
|
|
51
|
+
getStats(): {
|
|
52
|
+
pageSize: number;
|
|
53
|
+
pageCount: number;
|
|
54
|
+
freePages: number;
|
|
55
|
+
walMode: boolean;
|
|
56
|
+
journalMode: string;
|
|
57
|
+
encoding: string;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create an IntegrityChecker instance
|
|
62
|
+
*
|
|
63
|
+
* @param dbPath - Path to the SQLite database file
|
|
64
|
+
* @returns IntegrityChecker instance
|
|
65
|
+
*/
|
|
66
|
+
export declare function createIntegrityChecker(dbPath: string): IntegrityChecker;
|
|
67
|
+
/**
|
|
68
|
+
* Convenience function to check database integrity
|
|
69
|
+
*
|
|
70
|
+
* @param dbPath - Path to the SQLite database file
|
|
71
|
+
* @returns Integrity check results
|
|
72
|
+
*/
|
|
73
|
+
export declare function checkDatabaseIntegrity(dbPath: string): IntegrityCheckResult;
|
|
74
|
+
//# sourceMappingURL=integrity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrity.d.ts","sourceRoot":"","sources":["../../src/recovery/integrity.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,YAAY,CAAC;AAIvE;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;OAIG;gBACS,MAAM,EAAE,MAAM;IAI1B;;;;OAIG;IACH,KAAK,IAAI,oBAAoB;IA8F7B;;OAEG;IACH,OAAO,CAAC,UAAU;IA0FlB;;;;;;OAMG;IACH,MAAM,IAAI,OAAO;IA+BjB;;;;;;OAMG;IACH,QAAQ,IAAI,OAAO;IA8BnB;;;;OAIG;IACH,QAAQ,IAAI;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB;CA0BF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAG3E"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Recovery Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for backup, restore, and integrity checking operations.
|
|
5
|
+
*
|
|
6
|
+
* @module recovery/types
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for automatic backup scheduling
|
|
10
|
+
*/
|
|
11
|
+
export interface BackupConfig {
|
|
12
|
+
/** Whether automatic backups are enabled */
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
/** Interval between backups in milliseconds */
|
|
15
|
+
interval: number;
|
|
16
|
+
/** Maximum number of backups to retain */
|
|
17
|
+
maxBackups: number;
|
|
18
|
+
/** Directory path for storing backups */
|
|
19
|
+
backupPath: string;
|
|
20
|
+
/** Whether to compress backups using gzip */
|
|
21
|
+
compress: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Information about a single backup
|
|
25
|
+
*/
|
|
26
|
+
export interface BackupInfo {
|
|
27
|
+
/** Unique identifier for the backup */
|
|
28
|
+
id: string;
|
|
29
|
+
/** Full path to the backup file */
|
|
30
|
+
path: string;
|
|
31
|
+
/** When the backup was created */
|
|
32
|
+
timestamp: Date;
|
|
33
|
+
/** Size of the backup file in bytes */
|
|
34
|
+
size: number;
|
|
35
|
+
/** SHA-256 checksum for integrity verification */
|
|
36
|
+
checksum: string;
|
|
37
|
+
/** Whether the backup is gzip compressed */
|
|
38
|
+
compressed: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Result of a restore operation
|
|
42
|
+
*/
|
|
43
|
+
export interface RestoreResult {
|
|
44
|
+
/** Whether the restore was successful */
|
|
45
|
+
success: boolean;
|
|
46
|
+
/** Backup ID or path that was restored from */
|
|
47
|
+
restoredFrom: string;
|
|
48
|
+
/** When the restore was performed */
|
|
49
|
+
timestamp: Date;
|
|
50
|
+
/** Number of records restored */
|
|
51
|
+
recordsRestored: number;
|
|
52
|
+
/** Non-fatal issues encountered during restore */
|
|
53
|
+
warnings: string[];
|
|
54
|
+
/** Fatal errors that occurred (empty if success is true) */
|
|
55
|
+
errors: string[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Options for restore operations
|
|
59
|
+
*/
|
|
60
|
+
export interface RecoveryOptions {
|
|
61
|
+
/** Verify backup integrity before restoring */
|
|
62
|
+
verifyIntegrity?: boolean;
|
|
63
|
+
/** Force restore even if integrity check fails */
|
|
64
|
+
force?: boolean;
|
|
65
|
+
/** Specific backup ID to restore from */
|
|
66
|
+
targetBackup?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Result of a database integrity check
|
|
70
|
+
*/
|
|
71
|
+
export interface IntegrityCheckResult {
|
|
72
|
+
/** Whether the database passed all integrity checks */
|
|
73
|
+
valid: boolean;
|
|
74
|
+
/** Critical errors found */
|
|
75
|
+
errors: string[];
|
|
76
|
+
/** Non-critical warnings */
|
|
77
|
+
warnings: string[];
|
|
78
|
+
/** Per-table integrity information */
|
|
79
|
+
tables: TableIntegrity[];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Integrity information for a single table
|
|
83
|
+
*/
|
|
84
|
+
export interface TableIntegrity {
|
|
85
|
+
/** Table name */
|
|
86
|
+
name: string;
|
|
87
|
+
/** Number of rows in the table */
|
|
88
|
+
rowCount: number;
|
|
89
|
+
/** Whether the table passed integrity checks */
|
|
90
|
+
valid: boolean;
|
|
91
|
+
/** List of issues found in the table */
|
|
92
|
+
issues: string[];
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/recovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,SAAS,EAAE,IAAI,CAAC;IAChB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,SAAS,EAAE,IAAI,CAAC;IAChB,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,KAAK,EAAE,OAAO,CAAC;IACf,4BAA4B;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sCAAsC;IACtC,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,KAAK,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
|