@cubis/foundry 0.3.10 → 0.3.12
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/Ai Agent Workflow/powers/accessibility/POWER.md +3 -1
- package/Ai Agent Workflow/powers/api-designer/POWER.md +11 -22
- package/Ai Agent Workflow/powers/api-designer/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/api-patterns/POWER.md +75 -5
- package/Ai Agent Workflow/powers/api-patterns/SKILL.md +74 -4
- package/Ai Agent Workflow/powers/app-builder/POWER.md +70 -5
- package/Ai Agent Workflow/powers/app-builder/SKILL.md +68 -4
- package/Ai Agent Workflow/powers/architecture/POWER.md +50 -5
- package/Ai Agent Workflow/powers/architecture/SKILL.md +48 -4
- package/Ai Agent Workflow/powers/architecture-designer/POWER.md +11 -21
- package/Ai Agent Workflow/powers/architecture-designer/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/ask-questions-if-underspecified/POWER.md +88 -0
- package/Ai Agent Workflow/powers/atlassian-mcp/POWER.md +91 -0
- package/Ai Agent Workflow/powers/atlassian-mcp/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/bash-linux/POWER.md +194 -5
- package/Ai Agent Workflow/powers/bash-linux/SKILL.md +192 -4
- package/Ai Agent Workflow/powers/behavioral-modes/POWER.md +237 -5
- package/Ai Agent Workflow/powers/behavioral-modes/SKILL.md +235 -4
- package/Ai Agent Workflow/powers/brainstorming/POWER.md +158 -5
- package/Ai Agent Workflow/powers/brainstorming/SKILL.md +156 -4
- package/Ai Agent Workflow/powers/building-mcp-server-on-cloudflare/POWER.md +261 -0
- package/Ai Agent Workflow/powers/building-mcp-server-on-cloudflare/SKILL.md +7 -7
- package/Ai Agent Workflow/powers/changelog-generator/POWER.md +106 -0
- package/Ai Agent Workflow/powers/clean-code/POWER.md +195 -5
- package/Ai Agent Workflow/powers/clean-code/SKILL.md +194 -4
- package/Ai Agent Workflow/powers/cli-developer/POWER.md +3 -0
- package/Ai Agent Workflow/powers/code-documenter/POWER.md +14 -25
- package/Ai Agent Workflow/powers/code-documenter/SKILL.md +8 -8
- package/Ai Agent Workflow/powers/code-review-checklist/POWER.md +104 -5
- package/Ai Agent Workflow/powers/code-review-checklist/SKILL.md +102 -4
- package/Ai Agent Workflow/powers/code-reviewer/POWER.md +12 -19
- package/Ai Agent Workflow/powers/code-reviewer/SKILL.md +6 -6
- package/Ai Agent Workflow/powers/database-skills/POWER.md +100 -3
- package/Ai Agent Workflow/powers/database-skills/SKILL.md +97 -4
- package/Ai Agent Workflow/powers/database-skills/engines/mongodb/POWER.md +10 -0
- package/Ai Agent Workflow/powers/database-skills/engines/mysql/POWER.md +10 -0
- package/Ai Agent Workflow/powers/database-skills/engines/neki/POWER.md +10 -0
- package/Ai Agent Workflow/powers/database-skills/engines/postgres/POWER.md +10 -0
- package/Ai Agent Workflow/powers/database-skills/engines/redis/POWER.md +10 -0
- package/Ai Agent Workflow/powers/database-skills/engines/sqlite/POWER.md +10 -0
- package/Ai Agent Workflow/powers/database-skills/engines/supabase/POWER.md +10 -0
- package/Ai Agent Workflow/powers/database-skills/engines/vitess/POWER.md +10 -0
- package/Ai Agent Workflow/powers/database-skills/steering/readme.md +18 -6
- package/Ai Agent Workflow/powers/datadog-automation/POWER.md +238 -0
- package/Ai Agent Workflow/powers/debugging-wizard/POWER.md +11 -23
- package/Ai Agent Workflow/powers/debugging-wizard/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/deployment-procedures/POWER.md +236 -5
- package/Ai Agent Workflow/powers/deployment-procedures/SKILL.md +234 -4
- package/Ai Agent Workflow/powers/design-system-builder/POWER.md +3 -0
- package/Ai Agent Workflow/powers/devops-engineer/POWER.md +14 -28
- package/Ai Agent Workflow/powers/devops-engineer/SKILL.md +8 -8
- package/Ai Agent Workflow/powers/documentation-templates/POWER.md +189 -5
- package/Ai Agent Workflow/powers/documentation-templates/SKILL.md +187 -4
- package/Ai Agent Workflow/powers/error-ux-observability/POWER.md +3 -1
- package/Ai Agent Workflow/powers/fastapi-expert/POWER.md +87 -0
- package/Ai Agent Workflow/powers/fastapi-expert/SKILL.md +6 -6
- package/Ai Agent Workflow/powers/fastify-patterns/POWER.md +10 -16
- package/Ai Agent Workflow/powers/fastify-patterns/SKILL.md +4 -4
- package/Ai Agent Workflow/powers/feature-forge/POWER.md +91 -0
- package/Ai Agent Workflow/powers/feature-forge/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/find-bugs/POWER.md +78 -0
- package/Ai Agent Workflow/powers/fix-review/POWER.md +262 -0
- package/Ai Agent Workflow/powers/fix-review/SKILL.md +8 -8
- package/Ai Agent Workflow/powers/flutter-code-reviewer/POWER.md +3 -0
- package/Ai Agent Workflow/powers/flutter-expert/POWER.md +7 -4
- package/Ai Agent Workflow/powers/flutter-expert/SKILL.md +4 -4
- package/Ai Agent Workflow/powers/flutter-security-reviewer/POWER.md +3 -0
- package/Ai Agent Workflow/powers/flutter-test-master/POWER.md +3 -0
- package/Ai Agent Workflow/powers/frontend-design/POWER.md +413 -5
- package/Ai Agent Workflow/powers/frontend-design/SKILL.md +411 -4
- package/Ai Agent Workflow/powers/game-development/POWER.md +162 -5
- package/Ai Agent Workflow/powers/game-development/SKILL.md +160 -4
- package/Ai Agent Workflow/powers/geo-fundamentals/POWER.md +150 -5
- package/Ai Agent Workflow/powers/geo-fundamentals/SKILL.md +149 -4
- package/Ai Agent Workflow/powers/git-commit/POWER.md +3 -0
- package/Ai Agent Workflow/powers/github-automation/POWER.md +230 -0
- package/Ai Agent Workflow/powers/golang-pro/POWER.md +87 -0
- package/Ai Agent Workflow/powers/golang-pro/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/gorouter-restoration/POWER.md +3 -0
- package/Ai Agent Workflow/powers/graphql-architect/POWER.md +89 -0
- package/Ai Agent Workflow/powers/graphql-architect/SKILL.md +6 -6
- package/Ai Agent Workflow/powers/i18n-localization/POWER.md +149 -5
- package/Ai Agent Workflow/powers/i18n-localization/SKILL.md +147 -4
- package/Ai Agent Workflow/powers/intelligent-routing/POWER.md +330 -5
- package/Ai Agent Workflow/powers/intelligent-routing/SKILL.md +328 -4
- package/Ai Agent Workflow/powers/javascript-pro/POWER.md +88 -0
- package/Ai Agent Workflow/powers/javascript-pro/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/legacy-modernizer/POWER.md +87 -0
- package/Ai Agent Workflow/powers/legacy-modernizer/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/lint-and-validate/POWER.md +40 -6
- package/Ai Agent Workflow/powers/lint-and-validate/SKILL.md +38 -5
- package/Ai Agent Workflow/powers/mcp-builder/POWER.md +179 -0
- package/Ai Agent Workflow/powers/mcp-builder/SKILL.md +114 -266
- package/Ai Agent Workflow/powers/mcp-developer/POWER.md +88 -0
- package/Ai Agent Workflow/powers/mcp-developer/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/microservices-architect/POWER.md +11 -24
- package/Ai Agent Workflow/powers/microservices-architect/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/mobile-design/POWER.md +389 -5
- package/Ai Agent Workflow/powers/mobile-design/SKILL.md +387 -4
- package/Ai Agent Workflow/powers/monitoring-expert/POWER.md +80 -0
- package/Ai Agent Workflow/powers/monitoring-expert/SKILL.md +8 -8
- package/Ai Agent Workflow/powers/nestjs-expert/POWER.md +13 -26
- package/Ai Agent Workflow/powers/nestjs-expert/SKILL.md +7 -7
- package/Ai Agent Workflow/powers/next-best-practices/POWER.md +155 -0
- package/Ai Agent Workflow/powers/next-cache-components/POWER.md +363 -0
- package/Ai Agent Workflow/powers/next-upgrade/POWER.md +53 -0
- package/Ai Agent Workflow/powers/nextjs-developer/POWER.md +4 -1
- package/Ai Agent Workflow/powers/nextjs-react-expert/POWER.md +282 -6
- package/Ai Agent Workflow/powers/nextjs-react-expert/SKILL.md +279 -4
- package/Ai Agent Workflow/powers/nodejs-best-practices/POWER.md +328 -5
- package/Ai Agent Workflow/powers/nodejs-best-practices/SKILL.md +326 -4
- package/Ai Agent Workflow/powers/oneup-design/POWER.md +3 -0
- package/Ai Agent Workflow/powers/openapi-docs/POWER.md +13 -20
- package/Ai Agent Workflow/powers/openapi-docs/SKILL.md +7 -7
- package/Ai Agent Workflow/powers/parallel-agents/POWER.md +170 -5
- package/Ai Agent Workflow/powers/parallel-agents/SKILL.md +168 -4
- package/Ai Agent Workflow/powers/performance-profiling/POWER.md +138 -5
- package/Ai Agent Workflow/powers/performance-profiling/SKILL.md +136 -4
- package/Ai Agent Workflow/powers/plan-writing/POWER.md +147 -5
- package/Ai Agent Workflow/powers/plan-writing/SKILL.md +145 -4
- package/Ai Agent Workflow/powers/playwright-expert/POWER.md +83 -0
- package/Ai Agent Workflow/powers/playwright-expert/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/postman/POWER.md +5 -4
- package/Ai Agent Workflow/powers/powershell-windows/POWER.md +162 -5
- package/Ai Agent Workflow/powers/powershell-windows/SKILL.md +160 -4
- package/Ai Agent Workflow/powers/prompt-engineer/POWER.md +3 -0
- package/Ai Agent Workflow/powers/python-patterns/POWER.md +436 -5
- package/Ai Agent Workflow/powers/python-patterns/SKILL.md +434 -4
- package/Ai Agent Workflow/powers/python-pro/POWER.md +87 -0
- package/Ai Agent Workflow/powers/python-pro/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/react-best-practices/POWER.md +139 -0
- package/Ai Agent Workflow/powers/react-expert/POWER.md +87 -0
- package/Ai Agent Workflow/powers/react-expert/SKILL.md +7 -7
- package/Ai Agent Workflow/powers/red-team-tactics/POWER.md +194 -5
- package/Ai Agent Workflow/powers/red-team-tactics/SKILL.md +192 -4
- package/Ai Agent Workflow/powers/refactor/POWER.md +3 -0
- package/Ai Agent Workflow/powers/riverpod-3/POWER.md +3 -0
- package/Ai Agent Workflow/powers/rust-engineer/POWER.md +89 -0
- package/Ai Agent Workflow/powers/rust-engineer/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/rust-pro/POWER.md +171 -5
- package/Ai Agent Workflow/powers/rust-pro/SKILL.md +169 -4
- package/Ai Agent Workflow/powers/saas-builder/POWER.md +84 -161
- package/Ai Agent Workflow/powers/sarif-parsing/POWER.md +482 -0
- package/Ai Agent Workflow/powers/secure-code-guardian/POWER.md +86 -0
- package/Ai Agent Workflow/powers/secure-code-guardian/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/security-reviewer/POWER.md +12 -25
- package/Ai Agent Workflow/powers/security-reviewer/SKILL.md +6 -6
- package/Ai Agent Workflow/powers/semgrep/POWER.md +420 -0
- package/Ai Agent Workflow/powers/semgrep/SKILL.md +3 -3
- package/Ai Agent Workflow/powers/sentry-automation/POWER.md +235 -0
- package/Ai Agent Workflow/powers/seo-fundamentals/POWER.md +124 -5
- package/Ai Agent Workflow/powers/seo-fundamentals/SKILL.md +122 -4
- package/Ai Agent Workflow/powers/server-management/POWER.md +156 -5
- package/Ai Agent Workflow/powers/server-management/SKILL.md +154 -4
- package/Ai Agent Workflow/powers/spec-miner/POWER.md +85 -0
- package/Ai Agent Workflow/powers/spec-miner/SKILL.md +4 -4
- package/Ai Agent Workflow/powers/sre-engineer/POWER.md +90 -0
- package/Ai Agent Workflow/powers/sre-engineer/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/static-analysis/POWER.md +116 -0
- package/Ai Agent Workflow/powers/static-analysis/SKILL.md +1 -1
- package/Ai Agent Workflow/powers/stripe-best-practices/POWER.md +36 -0
- package/Ai Agent Workflow/powers/sub-agents/POWER.md +180 -0
- package/Ai Agent Workflow/powers/sub-agents/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/systematic-debugging/POWER.md +104 -5
- package/Ai Agent Workflow/powers/systematic-debugging/SKILL.md +102 -4
- package/Ai Agent Workflow/powers/tailwind-patterns/POWER.md +264 -5
- package/Ai Agent Workflow/powers/tailwind-patterns/SKILL.md +262 -4
- package/Ai Agent Workflow/powers/tdd-workflow/POWER.md +144 -5
- package/Ai Agent Workflow/powers/tdd-workflow/SKILL.md +142 -4
- package/Ai Agent Workflow/powers/terraform-engineer/POWER.md +89 -0
- package/Ai Agent Workflow/powers/terraform-engineer/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/test-master/POWER.md +16 -42
- package/Ai Agent Workflow/powers/test-master/SKILL.md +10 -10
- package/Ai Agent Workflow/powers/testing-patterns/POWER.md +173 -5
- package/Ai Agent Workflow/powers/testing-patterns/SKILL.md +171 -4
- package/Ai Agent Workflow/powers/typescript-pro/POWER.md +11 -22
- package/Ai Agent Workflow/powers/typescript-pro/SKILL.md +5 -5
- package/Ai Agent Workflow/powers/ui-ux-pro-max/POWER.md +389 -0
- package/Ai Agent Workflow/powers/ux-ui-consistency/POWER.md +3 -1
- package/Ai Agent Workflow/powers/variant-analysis/POWER.md +145 -0
- package/Ai Agent Workflow/powers/vercel-ai-gateway/POWER.md +82 -0
- package/Ai Agent Workflow/powers/vercel-ai-gateway/SKILL.md +79 -0
- package/Ai Agent Workflow/powers/vercel-ai-sdk/POWER.md +62 -0
- package/Ai Agent Workflow/powers/vercel-ai-sdk/SKILL.md +59 -0
- package/Ai Agent Workflow/powers/vercel-caching/POWER.md +86 -0
- package/Ai Agent Workflow/powers/vercel-caching/SKILL.md +83 -0
- package/Ai Agent Workflow/powers/vercel-cli/POWER.md +88 -0
- package/Ai Agent Workflow/powers/vercel-cli/SKILL.md +85 -0
- package/Ai Agent Workflow/powers/vercel-deployments/POWER.md +104 -0
- package/Ai Agent Workflow/powers/vercel-deployments/SKILL.md +101 -0
- package/Ai Agent Workflow/powers/vercel-domains/POWER.md +76 -12
- package/Ai Agent Workflow/powers/vercel-domains/SKILL.md +73 -12
- package/Ai Agent Workflow/powers/vercel-firewall/POWER.md +75 -0
- package/Ai Agent Workflow/powers/vercel-firewall/SKILL.md +72 -0
- package/Ai Agent Workflow/powers/vercel-flags/POWER.md +76 -0
- package/Ai Agent Workflow/powers/vercel-flags/SKILL.md +73 -0
- package/Ai Agent Workflow/powers/vercel-functions/POWER.md +84 -0
- package/Ai Agent Workflow/powers/vercel-functions/SKILL.md +81 -0
- package/Ai Agent Workflow/powers/vercel-observability/POWER.md +103 -0
- package/Ai Agent Workflow/powers/vercel-observability/SKILL.md +100 -0
- package/Ai Agent Workflow/powers/vercel-platform/POWER.md +127 -0
- package/Ai Agent Workflow/powers/vercel-platform/SKILL.md +124 -0
- package/Ai Agent Workflow/powers/vercel-routing/POWER.md +82 -0
- package/Ai Agent Workflow/powers/vercel-routing/SKILL.md +79 -0
- package/Ai Agent Workflow/powers/vercel-storage/POWER.md +77 -0
- package/Ai Agent Workflow/powers/vercel-storage/SKILL.md +74 -0
- package/Ai Agent Workflow/powers/vulnerability-scanner/POWER.md +271 -5
- package/Ai Agent Workflow/powers/vulnerability-scanner/SKILL.md +269 -4
- package/Ai Agent Workflow/powers/web-design-guidelines/POWER.md +52 -5
- package/Ai Agent Workflow/powers/web-design-guidelines/SKILL.md +50 -4
- package/Ai Agent Workflow/powers/web-perf/POWER.md +196 -0
- package/Ai Agent Workflow/powers/webapp-testing/POWER.md +190 -0
- package/Ai Agent Workflow/powers/webapp-testing/SKILL.md +160 -69
- package/Ai Agent Workflow/powers/wrangler/POWER.md +890 -0
- package/Ai Agent Workflow/scripts/generate-powers.mjs +410 -0
- package/Ai Agent Workflow/skills/database-skills/LATEST_VERSIONS.md +36 -0
- package/Ai Agent Workflow/skills/database-skills/README.md +13 -3
- package/Ai Agent Workflow/skills/database-skills/SKILL.md +85 -20
- package/Ai Agent Workflow/skills/database-skills/skills/mongodb/SKILL.md +29 -7
- package/Ai Agent Workflow/skills/database-skills/skills/mongodb/references/aggregation.md +153 -0
- package/Ai Agent Workflow/skills/database-skills/skills/mongodb/references/modeling.md +95 -4
- package/Ai Agent Workflow/skills/database-skills/skills/mongodb/references/mongoose-nestjs.md +133 -4
- package/Ai Agent Workflow/skills/database-skills/skills/mysql/SKILL.md +33 -7
- package/Ai Agent Workflow/skills/database-skills/skills/mysql/references/locking-ddl.md +103 -4
- package/Ai Agent Workflow/skills/database-skills/skills/mysql/references/query-indexing.md +103 -4
- package/Ai Agent Workflow/skills/database-skills/skills/mysql/references/replication.md +142 -0
- package/Ai Agent Workflow/skills/database-skills/skills/neki/SKILL.md +18 -7
- package/Ai Agent Workflow/skills/database-skills/skills/neki/references/architecture.md +135 -4
- package/Ai Agent Workflow/skills/database-skills/skills/neki/references/operations.md +76 -4
- package/Ai Agent Workflow/skills/database-skills/skills/postgres/SKILL.md +31 -7
- package/Ai Agent Workflow/skills/database-skills/skills/postgres/references/connection-pooling.md +142 -0
- package/Ai Agent Workflow/skills/database-skills/skills/postgres/references/migrations.md +126 -0
- package/Ai Agent Workflow/skills/database-skills/skills/postgres/references/performance-ops.md +116 -4
- package/Ai Agent Workflow/skills/database-skills/skills/postgres/references/schema-indexing.md +78 -4
- package/Ai Agent Workflow/skills/database-skills/skills/redis/SKILL.md +28 -7
- package/Ai Agent Workflow/skills/database-skills/skills/redis/references/cache-patterns.md +153 -4
- package/Ai Agent Workflow/skills/database-skills/skills/redis/references/data-modeling.md +152 -0
- package/Ai Agent Workflow/skills/database-skills/skills/redis/references/operations.md +143 -4
- package/Ai Agent Workflow/skills/database-skills/skills/sqlite/SKILL.md +28 -7
- package/Ai Agent Workflow/skills/database-skills/skills/sqlite/references/local-first.md +94 -4
- package/Ai Agent Workflow/skills/database-skills/skills/sqlite/references/performance.md +104 -4
- package/Ai Agent Workflow/skills/database-skills/skills/supabase/SKILL.md +27 -7
- package/Ai Agent Workflow/skills/database-skills/skills/supabase/references/performance-operations.md +94 -4
- package/Ai Agent Workflow/skills/database-skills/skills/supabase/references/rls-auth.md +105 -4
- package/Ai Agent Workflow/skills/database-skills/skills/vitess/SKILL.md +27 -7
- package/Ai Agent Workflow/skills/database-skills/skills/vitess/references/operational-safety.md +104 -4
- package/Ai Agent Workflow/skills/database-skills/skills/vitess/references/sharding-routing.md +124 -4
- package/Ai Agent Workflow/skills/skills_index.json +212 -1047
- package/Ai Agent Workflow/skills/vercel-ai-gateway/SKILL.md +79 -0
- package/Ai Agent Workflow/skills/vercel-ai-sdk/SKILL.md +59 -0
- package/Ai Agent Workflow/skills/vercel-caching/SKILL.md +83 -0
- package/Ai Agent Workflow/skills/vercel-cli/SKILL.md +85 -0
- package/Ai Agent Workflow/skills/vercel-deployments/SKILL.md +101 -0
- package/Ai Agent Workflow/skills/vercel-domains/SKILL.md +57 -13
- package/Ai Agent Workflow/skills/vercel-firewall/SKILL.md +72 -0
- package/Ai Agent Workflow/skills/vercel-flags/SKILL.md +73 -0
- package/Ai Agent Workflow/skills/vercel-functions/SKILL.md +81 -0
- package/Ai Agent Workflow/skills/vercel-observability/SKILL.md +100 -0
- package/Ai Agent Workflow/skills/vercel-platform/SKILL.md +124 -0
- package/Ai Agent Workflow/skills/vercel-routing/SKILL.md +79 -0
- package/Ai Agent Workflow/skills/vercel-storage/SKILL.md +74 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/manifest.json +12 -6
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/antigravity/agents/backend-specialist.md +2 -2
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/antigravity/agents/database-architect.md +11 -2
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/antigravity/agents/mobile-developer.md +1 -1
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/antigravity/agents/performance-optimizer.md +3 -1
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/antigravity/agents/vercel-expert.md +5 -1
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/antigravity/workflows/database.md +15 -7
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/codex/agents/backend-specialist.md +2 -2
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/codex/agents/database-architect.md +11 -2
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/codex/agents/mobile-developer.md +1 -1
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/codex/agents/performance-optimizer.md +3 -1
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/codex/agents/vercel-expert.md +5 -1
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/codex/workflows/database.md +15 -7
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/backend-specialist.md +46 -30
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/code-archaeologist.md +38 -24
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/database-architect.md +47 -24
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/debugger.md +50 -42
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/devops-engineer.md +51 -49
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/documentation-writer.md +14 -12
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/explorer-agent.md +13 -5
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/frontend-specialist.md +29 -27
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/game-developer.md +31 -29
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/mobile-developer.md +81 -73
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/orchestrator.md +107 -82
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/penetration-tester.md +49 -47
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/performance-optimizer.md +47 -39
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/product-manager.md +39 -22
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/product-owner.md +42 -29
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/project-planner.md +109 -100
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/qa-automation-engineer.md +42 -34
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/security-auditor.md +53 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/seo-specialist.md +25 -23
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/test-engineer.md +40 -38
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/agents/vercel-expert.md +5 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/skills_index.json +348 -26
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-ai-gateway/SKILL.md +69 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-ai-sdk/SKILL.md +53 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-caching/SKILL.md +73 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-cli/SKILL.md +76 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-deployments/SKILL.md +88 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-domains/SKILL.md +70 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-firewall/SKILL.md +64 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-flags/SKILL.md +64 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-functions/SKILL.md +71 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-observability/SKILL.md +87 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-platform/SKILL.md +108 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-routing/SKILL.md +70 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/vercel-storage/SKILL.md +66 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/workflows/database.md +15 -7
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/rules/.cursorrules +55 -2
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/skills_index.json +348 -26
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-ai-gateway/SKILL.md +69 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-ai-sdk/SKILL.md +53 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-caching/SKILL.md +73 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-cli/SKILL.md +76 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-deployments/SKILL.md +88 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-domains/SKILL.md +70 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-firewall/SKILL.md +64 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-flags/SKILL.md +64 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-functions/SKILL.md +71 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-observability/SKILL.md +87 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-platform/SKILL.md +108 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-routing/SKILL.md +70 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/vercel-storage/SKILL.md +66 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/rules/.windsurfrules +55 -2
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/skills_index.json +348 -26
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-ai-gateway/SKILL.md +69 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-ai-sdk/SKILL.md +53 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-caching/SKILL.md +73 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-cli/SKILL.md +76 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-deployments/SKILL.md +88 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-domains/SKILL.md +70 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-firewall/SKILL.md +64 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-flags/SKILL.md +64 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-functions/SKILL.md +71 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-observability/SKILL.md +87 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-platform/SKILL.md +108 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-routing/SKILL.md +70 -0
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/vercel-storage/SKILL.md +66 -0
- package/README.md +7 -0
- package/package.json +6 -2
- package/Ai Agent Workflow/powers/mongoose-nestjs/POWER.md +0 -211
- package/Ai Agent Workflow/powers/mongoose-nestjs/SKILL.md +0 -202
- package/Ai Agent Workflow/powers/mongoose-nestjs/steering/migrations.md +0 -630
- package/Ai Agent Workflow/powers/mongoose-nestjs/steering/repository-pattern.md +0 -661
- package/Ai Agent Workflow/powers/mongoose-nestjs/steering/schema-design.md +0 -559
- package/Ai Agent Workflow/powers/mongoose-nestjs/steering/transactions.md +0 -445
- package/Ai Agent Workflow/powers/postgres-pro/SKILL.md +0 -87
- package/Ai Agent Workflow/powers/postgres-pro/steering/extensions.md +0 -404
- package/Ai Agent Workflow/powers/postgres-pro/steering/jsonb.md +0 -321
- package/Ai Agent Workflow/powers/postgres-pro/steering/maintenance.md +0 -481
- package/Ai Agent Workflow/powers/postgres-pro/steering/performance.md +0 -265
- package/Ai Agent Workflow/powers/postgres-pro/steering/replication.md +0 -446
- package/Ai Agent Workflow/powers/postman/mongoose-nestjs/POWER.md +0 -211
- package/Ai Agent Workflow/powers/postman/mongoose-nestjs/SKILL.md +0 -202
- package/Ai Agent Workflow/powers/postman/mongoose-nestjs/steering/migrations.md +0 -630
- package/Ai Agent Workflow/powers/postman/mongoose-nestjs/steering/repository-pattern.md +0 -661
- package/Ai Agent Workflow/powers/postman/mongoose-nestjs/steering/schema-design.md +0 -559
- package/Ai Agent Workflow/powers/postman/mongoose-nestjs/steering/transactions.md +0 -445
- package/Ai Agent Workflow/powers/sql-pro/SKILL.md +0 -86
- package/Ai Agent Workflow/powers/sql-pro/steering/database-design.md +0 -402
- package/Ai Agent Workflow/powers/sql-pro/steering/dialect-differences.md +0 -419
- package/Ai Agent Workflow/powers/sql-pro/steering/optimization.md +0 -384
- package/Ai Agent Workflow/powers/sql-pro/steering/query-patterns.md +0 -285
- package/Ai Agent Workflow/powers/sql-pro/steering/window-functions.md +0 -328
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/AGENTS.md +0 -90
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/README.md +0 -116
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/SKILL.md +0 -64
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/_contributing.md +0 -171
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/_sections.md +0 -39
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/_template.md +0 -34
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/advanced-full-text-search.md +0 -55
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/advanced-jsonb-indexing.md +0 -49
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/conn-idle-timeout.md +0 -46
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/conn-limits.md +0 -44
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/conn-pooling.md +0 -41
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/conn-prepared-statements.md +0 -46
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/data-batch-inserts.md +0 -54
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/data-n-plus-one.md +0 -53
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/data-pagination.md +0 -50
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/data-upsert.md +0 -50
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/lock-advisory.md +0 -56
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/lock-deadlock-prevention.md +0 -68
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/lock-short-transactions.md +0 -50
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/lock-skip-locked.md +0 -54
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/monitor-explain-analyze.md +0 -45
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/monitor-pg-stat-statements.md +0 -55
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/monitor-vacuum-analyze.md +0 -55
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/query-composite-indexes.md +0 -44
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/query-covering-indexes.md +0 -40
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/query-index-types.md +0 -48
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/query-missing-indexes.md +0 -43
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/query-partial-indexes.md +0 -45
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/schema-data-types.md +0 -46
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/schema-foreign-key-indexes.md +0 -59
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/schema-lowercase-identifiers.md +0 -55
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/schema-partitioning.md +0 -55
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/schema-primary-keys.md +0 -61
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/security-privileges.md +0 -54
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/security-rls-basics.md +0 -50
- package/Ai Agent Workflow/powers/supabase-postgres-best-practices/steering/security-rls-performance.md +0 -57
- package/Ai Agent Workflow/powers/vercel-2fa-enforcement/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-2fa-enforcement/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-agent-workflows/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-agent-workflows/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ai-gateway-auth-byok/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-ai-gateway-auth-byok/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-ai-gateway-core/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ai-gateway-core/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ai-gateway-fallbacks/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ai-gateway-fallbacks/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ai-gateway-model-routing/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-ai-gateway-model-routing/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-ai-gateway-observability/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ai-gateway-observability/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ai-gateway-openai-compatible/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-ai-gateway-openai-compatible/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-ai-sdk-core/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ai-sdk-core/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ai-sdk-ui/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ai-sdk-ui/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-alerts-monitoring/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-alerts-monitoring/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-audit-logs/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-audit-logs/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-automation/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-automation/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-blob/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-blob/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-bot-management/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-bot-management/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-botid/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-botid/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-build-image-upgrades/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-build-image-upgrades/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-build-output-api/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-build-output-api/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-build-pipeline/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-build-pipeline/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-cache-control-headers/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-cache-control-headers/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-cdn-cache/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-cdn-cache/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-cdn-purging/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-cdn-purging/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-cli-core/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-cli-core/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-cli-flags/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-cli-flags/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-cli-mcp/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-cli-mcp/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-cli-microfrontends/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-cli-microfrontends/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-cli-project-domain-env/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-cli-project-domain-env/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-cron-jobs/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-cron-jobs/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-custom-events/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-custom-events/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-data-cache-nextjs/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-data-cache-nextjs/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-deployment-promotion/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-deployment-promotion/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-deployment-protection/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-deployment-protection/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-dns-records/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-dns-records/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-domain-ownership-claims/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-domain-ownership-claims/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-drains-setup/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-drains-setup/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-edge-config/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-edge-config/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-edge-config-integrations/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-edge-config-integrations/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-edge-to-node-migration/POWER.md +0 -23
- package/Ai Agent Workflow/powers/vercel-edge-to-node-migration/SKILL.md +0 -23
- package/Ai Agent Workflow/powers/vercel-environments/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-environments/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-firewall-core/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-firewall-core/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-flags-cli-workflows/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-flags-cli-workflows/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-flags-dashboard/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-flags-dashboard/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-flags-explorer/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-flags-explorer/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-flags-openfeature/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-flags-openfeature/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-flags-platform/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-flags-platform/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-flags-sdk/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-flags-sdk/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-fluid-compute/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-fluid-compute/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-function-config/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-function-config/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-functions-core/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-functions-core/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-functions-edge-runtime/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-functions-edge-runtime/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-functions-nodejs/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-functions-nodejs/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-functions-python/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-functions-python/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-generated-urls/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-generated-urls/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-git-deployments/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-git-deployments/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-image-optimization/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-image-optimization/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-integrations-native/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-integrations-native/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-isr/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-isr/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-log-drain-reference/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-log-drain-reference/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-log-trace-correlation/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-log-trace-correlation/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-marketplace-partner-api/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-marketplace-partner-api/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-marketplace-storage-postgres/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-marketplace-storage-postgres/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-marketplace-storage-redis/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-marketplace-storage-redis/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-mcp-for-agents/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-mcp-for-agents/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-microfrontends/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-microfrontends/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-monorepos/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-monorepos/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-multi-tenant/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-multi-tenant/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-nameservers/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-nameservers/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-observability-overview/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-observability-overview/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-og-image-generation/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-og-image-generation/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-oidc-federation/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-oidc-federation/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-project-configuration/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-project-configuration/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-protection-bypass-automation/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-protection-bypass-automation/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-rbac-access-groups/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-rbac-access-groups/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-redirects-rewrites/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-redirects-rewrites/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-remote-caching/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-remote-caching/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-request-collapsing/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-request-collapsing/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-rest-api/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-rest-api/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-routing-middleware/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-routing-middleware/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-runtime-cache/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-runtime-cache/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-runtime-logs/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-runtime-logs/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-sdk/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-sdk/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-secure-compute/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-secure-compute/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-session-tracing/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-session-tracing/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-speed-insights/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-speed-insights/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ssl-certificates/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-ssl-certificates/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-static-ips/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-static-ips/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-storage-migrations/POWER.md +0 -20
- package/Ai Agent Workflow/powers/vercel-storage-migrations/SKILL.md +0 -20
- package/Ai Agent Workflow/powers/vercel-tracing-otel/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-tracing-otel/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-waf-custom-rules/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-waf-custom-rules/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-waf-rate-limiting/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-waf-rate-limiting/SKILL.md +0 -22
- package/Ai Agent Workflow/powers/vercel-web-analytics/POWER.md +0 -21
- package/Ai Agent Workflow/powers/vercel-web-analytics/SKILL.md +0 -21
- package/Ai Agent Workflow/powers/vercel-webhooks-and-checks/POWER.md +0 -22
- package/Ai Agent Workflow/powers/vercel-webhooks-and-checks/SKILL.md +0 -22
- package/Ai Agent Workflow/skills/mongoose-nestjs/POWER.md +0 -211
- package/Ai Agent Workflow/skills/mongoose-nestjs/SKILL.md +0 -202
- package/Ai Agent Workflow/skills/mongoose-nestjs/references/migrations.md +0 -630
- package/Ai Agent Workflow/skills/mongoose-nestjs/references/repository-pattern.md +0 -661
- package/Ai Agent Workflow/skills/mongoose-nestjs/references/schema-design.md +0 -559
- package/Ai Agent Workflow/skills/mongoose-nestjs/references/transactions.md +0 -445
- package/Ai Agent Workflow/skills/postgres-pro/SKILL.md +0 -87
- package/Ai Agent Workflow/skills/postgres-pro/references/extensions.md +0 -404
- package/Ai Agent Workflow/skills/postgres-pro/references/jsonb.md +0 -321
- package/Ai Agent Workflow/skills/postgres-pro/references/maintenance.md +0 -481
- package/Ai Agent Workflow/skills/postgres-pro/references/performance.md +0 -265
- package/Ai Agent Workflow/skills/postgres-pro/references/replication.md +0 -446
- package/Ai Agent Workflow/skills/postman/mongoose-nestjs/POWER.md +0 -211
- package/Ai Agent Workflow/skills/postman/mongoose-nestjs/SKILL.md +0 -202
- package/Ai Agent Workflow/skills/postman/mongoose-nestjs/references/migrations.md +0 -630
- package/Ai Agent Workflow/skills/postman/mongoose-nestjs/references/repository-pattern.md +0 -661
- package/Ai Agent Workflow/skills/postman/mongoose-nestjs/references/schema-design.md +0 -559
- package/Ai Agent Workflow/skills/postman/mongoose-nestjs/references/transactions.md +0 -445
- package/Ai Agent Workflow/skills/sql-pro/SKILL.md +0 -86
- package/Ai Agent Workflow/skills/sql-pro/references/database-design.md +0 -402
- package/Ai Agent Workflow/skills/sql-pro/references/dialect-differences.md +0 -419
- package/Ai Agent Workflow/skills/sql-pro/references/optimization.md +0 -384
- package/Ai Agent Workflow/skills/sql-pro/references/query-patterns.md +0 -285
- package/Ai Agent Workflow/skills/sql-pro/references/window-functions.md +0 -328
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/AGENTS.md +0 -90
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/README.md +0 -116
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/SKILL.md +0 -64
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/_contributing.md +0 -171
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/_sections.md +0 -39
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/_template.md +0 -34
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +0 -55
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +0 -49
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +0 -46
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/conn-limits.md +0 -44
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/conn-pooling.md +0 -41
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +0 -46
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +0 -54
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +0 -53
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/data-pagination.md +0 -50
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/data-upsert.md +0 -50
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/lock-advisory.md +0 -56
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +0 -68
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +0 -50
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +0 -54
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +0 -45
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +0 -55
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +0 -55
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +0 -44
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +0 -40
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/query-index-types.md +0 -48
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +0 -43
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +0 -45
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/schema-data-types.md +0 -46
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +0 -59
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +0 -55
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/schema-partitioning.md +0 -55
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +0 -61
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/security-privileges.md +0 -54
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/security-rls-basics.md +0 -50
- package/Ai Agent Workflow/skills/supabase-postgres-best-practices/references/security-rls-performance.md +0 -57
- package/Ai Agent Workflow/skills/vercel-2fa-enforcement/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-agent-workflows/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-ai-gateway-auth-byok/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-ai-gateway-core/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-ai-gateway-fallbacks/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-ai-gateway-model-routing/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-ai-gateway-observability/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-ai-gateway-openai-compatible/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-ai-sdk-core/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-ai-sdk-ui/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-alerts-monitoring/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-audit-logs/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-automation/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-blob/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-bot-management/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-botid/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-build-image-upgrades/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-build-output-api/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-build-pipeline/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-cache-control-headers/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-cdn-cache/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-cdn-purging/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-cli-core/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-cli-flags/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-cli-mcp/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-cli-microfrontends/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-cli-project-domain-env/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-cron-jobs/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-custom-events/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-data-cache-nextjs/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-deployment-promotion/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-deployment-protection/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-dns-records/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-domain-ownership-claims/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-drains-setup/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-edge-config/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-edge-config-integrations/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-edge-to-node-migration/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-environments/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-firewall-core/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-flags-cli-workflows/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-flags-dashboard/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-flags-explorer/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-flags-openfeature/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-flags-platform/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-flags-sdk/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-fluid-compute/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-function-config/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-functions-core/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-functions-edge-runtime/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-functions-nodejs/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-functions-python/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-generated-urls/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-git-deployments/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-image-optimization/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-integrations-native/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-isr/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-log-drain-reference/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-log-trace-correlation/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-marketplace-partner-api/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-marketplace-storage-postgres/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-marketplace-storage-redis/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-mcp-for-agents/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-microfrontends/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-monorepos/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-multi-tenant/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-nameservers/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-observability-overview/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-og-image-generation/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-oidc-federation/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-project-configuration/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-protection-bypass-automation/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-rbac-access-groups/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-redirects-rewrites/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-remote-caching/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-request-collapsing/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-rest-api/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-routing-middleware/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-runtime-cache/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-runtime-logs/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-sdk/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-secure-compute/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-session-tracing/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-speed-insights/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-ssl-certificates/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-static-ips/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-storage-migrations/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-tracing-otel/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-waf-custom-rules/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-waf-rate-limiting/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-web-analytics/SKILL.md +0 -36
- package/Ai Agent Workflow/skills/vercel-webhooks-and-checks/SKILL.md +0 -36
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/mongoose-nestjs/POWER.md +0 -211
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/mongoose-nestjs/SKILL.md +0 -202
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/mongoose-nestjs/references/migrations.md +0 -630
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/mongoose-nestjs/references/repository-pattern.md +0 -661
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/mongoose-nestjs/references/schema-design.md +0 -559
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/mongoose-nestjs/references/transactions.md +0 -445
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/postgres-pro/SKILL.md +0 -87
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/postgres-pro/references/extensions.md +0 -404
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/postgres-pro/references/jsonb.md +0 -321
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/postgres-pro/references/maintenance.md +0 -481
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/postgres-pro/references/performance.md +0 -265
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/postgres-pro/references/replication.md +0 -446
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/sql-pro/SKILL.md +0 -86
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/sql-pro/references/database-design.md +0 -402
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/sql-pro/references/dialect-differences.md +0 -419
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/sql-pro/references/optimization.md +0 -384
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/sql-pro/references/query-patterns.md +0 -285
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/sql-pro/references/window-functions.md +0 -328
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/AGENTS.md +0 -90
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/README.md +0 -116
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/SKILL.md +0 -64
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/_contributing.md +0 -171
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/_sections.md +0 -39
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/_template.md +0 -34
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +0 -49
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +0 -46
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/conn-limits.md +0 -44
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/conn-pooling.md +0 -41
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +0 -46
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +0 -54
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +0 -53
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/data-pagination.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/data-upsert.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/lock-advisory.md +0 -56
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +0 -68
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +0 -54
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +0 -45
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +0 -44
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +0 -40
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/query-index-types.md +0 -48
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +0 -43
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +0 -45
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/schema-data-types.md +0 -46
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +0 -59
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/schema-partitioning.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +0 -61
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/security-privileges.md +0 -54
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/security-rls-basics.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/copilot/skills/supabase-postgres-best-practices/references/security-rls-performance.md +0 -57
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/mongoose-nestjs/POWER.md +0 -211
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/mongoose-nestjs/SKILL.md +0 -202
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/mongoose-nestjs/references/migrations.md +0 -630
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/mongoose-nestjs/references/repository-pattern.md +0 -661
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/mongoose-nestjs/references/schema-design.md +0 -559
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/mongoose-nestjs/references/transactions.md +0 -445
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/postgres-pro/SKILL.md +0 -87
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/postgres-pro/references/extensions.md +0 -404
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/postgres-pro/references/jsonb.md +0 -321
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/postgres-pro/references/maintenance.md +0 -481
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/postgres-pro/references/performance.md +0 -265
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/postgres-pro/references/replication.md +0 -446
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/sql-pro/SKILL.md +0 -86
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/sql-pro/references/database-design.md +0 -402
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/sql-pro/references/dialect-differences.md +0 -419
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/sql-pro/references/optimization.md +0 -384
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/sql-pro/references/query-patterns.md +0 -285
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/sql-pro/references/window-functions.md +0 -328
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/AGENTS.md +0 -90
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/README.md +0 -116
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/SKILL.md +0 -64
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/_contributing.md +0 -171
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/_sections.md +0 -39
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/_template.md +0 -34
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +0 -49
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +0 -46
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/conn-limits.md +0 -44
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/conn-pooling.md +0 -41
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +0 -46
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +0 -54
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +0 -53
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/data-pagination.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/data-upsert.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/lock-advisory.md +0 -56
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +0 -68
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +0 -54
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +0 -45
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +0 -44
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +0 -40
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/query-index-types.md +0 -48
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +0 -43
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +0 -45
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/schema-data-types.md +0 -46
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +0 -59
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/schema-partitioning.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +0 -61
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/security-privileges.md +0 -54
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/security-rls-basics.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/cursor/skills/supabase-postgres-best-practices/references/security-rls-performance.md +0 -57
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/mongoose-nestjs/POWER.md +0 -211
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/mongoose-nestjs/SKILL.md +0 -202
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/mongoose-nestjs/references/migrations.md +0 -630
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/mongoose-nestjs/references/repository-pattern.md +0 -661
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/mongoose-nestjs/references/schema-design.md +0 -559
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/mongoose-nestjs/references/transactions.md +0 -445
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/postgres-pro/SKILL.md +0 -87
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/postgres-pro/references/extensions.md +0 -404
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/postgres-pro/references/jsonb.md +0 -321
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/postgres-pro/references/maintenance.md +0 -481
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/postgres-pro/references/performance.md +0 -265
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/postgres-pro/references/replication.md +0 -446
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/sql-pro/SKILL.md +0 -86
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/sql-pro/references/database-design.md +0 -402
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/sql-pro/references/dialect-differences.md +0 -419
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/sql-pro/references/optimization.md +0 -384
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/sql-pro/references/query-patterns.md +0 -285
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/sql-pro/references/window-functions.md +0 -328
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/AGENTS.md +0 -90
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/README.md +0 -116
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/SKILL.md +0 -64
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/_contributing.md +0 -171
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/_sections.md +0 -39
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/_template.md +0 -34
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +0 -49
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +0 -46
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/conn-limits.md +0 -44
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/conn-pooling.md +0 -41
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +0 -46
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +0 -54
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +0 -53
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/data-pagination.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/data-upsert.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/lock-advisory.md +0 -56
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +0 -68
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +0 -54
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +0 -45
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +0 -44
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +0 -40
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/query-index-types.md +0 -48
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +0 -43
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +0 -45
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/schema-data-types.md +0 -46
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +0 -59
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/schema-partitioning.md +0 -55
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +0 -61
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/security-privileges.md +0 -54
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/security-rls-basics.md +0 -50
- package/Ai Agent Workflow/workflows/agent-environment-setup/platforms/windsurf/skills/supabase-postgres-best-practices/references/security-rls-performance.md +0 -57
|
@@ -1,661 +0,0 @@
|
|
|
1
|
-
# Repository Pattern with Mongoose
|
|
2
|
-
|
|
3
|
-
> Reference for: Mongoose NestJS
|
|
4
|
-
> Load when: Base repository, custom queries, pagination, data access layer, CRUD operations
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Overview
|
|
9
|
-
|
|
10
|
-
The repository pattern abstracts data access logic, providing a clean separation between business logic (services) and database operations. This enables easier testing, swappable data sources, and consistent query patterns.
|
|
11
|
-
|
|
12
|
-
## Architecture
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
Controller → Service → Repository → Mongoose Model
|
|
16
|
-
↓ ↓ ↓
|
|
17
|
-
HTTP Business Data Access
|
|
18
|
-
Mapping Logic Layer
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Base Repository Interface
|
|
24
|
-
|
|
25
|
-
```typescript
|
|
26
|
-
// src/database/repositories/base.repository.interface.ts
|
|
27
|
-
import {
|
|
28
|
-
FilterQuery,
|
|
29
|
-
ProjectionType,
|
|
30
|
-
QueryOptions,
|
|
31
|
-
UpdateQuery,
|
|
32
|
-
ClientSession,
|
|
33
|
-
} from "mongoose";
|
|
34
|
-
import { Document } from "mongoose";
|
|
35
|
-
|
|
36
|
-
export interface PaginationParams {
|
|
37
|
-
page?: number;
|
|
38
|
-
limit?: number;
|
|
39
|
-
sort?: string;
|
|
40
|
-
order?: "asc" | "desc";
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export interface PaginatedResult<T> {
|
|
44
|
-
data: T[];
|
|
45
|
-
total: number;
|
|
46
|
-
page: number;
|
|
47
|
-
limit: number;
|
|
48
|
-
totalPages: number;
|
|
49
|
-
hasNextPage: boolean;
|
|
50
|
-
hasPrevPage: boolean;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export interface IBaseRepository<
|
|
54
|
-
TDocument extends Document,
|
|
55
|
-
CreateDto = Partial<TDocument>,
|
|
56
|
-
UpdateDto = Partial<TDocument>,
|
|
57
|
-
> {
|
|
58
|
-
// Create
|
|
59
|
-
create(data: CreateDto, session?: ClientSession): Promise<TDocument>;
|
|
60
|
-
createMany(data: CreateDto[], session?: ClientSession): Promise<TDocument[]>;
|
|
61
|
-
|
|
62
|
-
// Read
|
|
63
|
-
findById(
|
|
64
|
-
id: string,
|
|
65
|
-
projection?: ProjectionType<TDocument>,
|
|
66
|
-
session?: ClientSession,
|
|
67
|
-
): Promise<TDocument | null>;
|
|
68
|
-
findOne(
|
|
69
|
-
filter: FilterQuery<TDocument>,
|
|
70
|
-
session?: ClientSession,
|
|
71
|
-
): Promise<TDocument | null>;
|
|
72
|
-
findAll(
|
|
73
|
-
filter?: FilterQuery<TDocument>,
|
|
74
|
-
options?: QueryOptions<TDocument>,
|
|
75
|
-
): Promise<TDocument[]>;
|
|
76
|
-
findPaginated(
|
|
77
|
-
params: PaginationParams,
|
|
78
|
-
filter?: FilterQuery<TDocument>,
|
|
79
|
-
): Promise<PaginatedResult<TDocument>>;
|
|
80
|
-
|
|
81
|
-
// Update
|
|
82
|
-
update(
|
|
83
|
-
id: string,
|
|
84
|
-
data: UpdateDto,
|
|
85
|
-
session?: ClientSession,
|
|
86
|
-
): Promise<TDocument>;
|
|
87
|
-
updateMany(
|
|
88
|
-
filter: FilterQuery<TDocument>,
|
|
89
|
-
data: UpdateQuery<TDocument>,
|
|
90
|
-
session?: ClientSession,
|
|
91
|
-
): Promise<number>;
|
|
92
|
-
|
|
93
|
-
// Delete
|
|
94
|
-
delete(id: string, session?: ClientSession): Promise<boolean>;
|
|
95
|
-
deleteMany(
|
|
96
|
-
filter: FilterQuery<TDocument>,
|
|
97
|
-
session?: ClientSession,
|
|
98
|
-
): Promise<number>;
|
|
99
|
-
|
|
100
|
-
// Utility
|
|
101
|
-
exists(filter: FilterQuery<TDocument>): Promise<boolean>;
|
|
102
|
-
count(filter?: FilterQuery<TDocument>): Promise<number>;
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## Base Repository Implementation
|
|
109
|
-
|
|
110
|
-
```typescript
|
|
111
|
-
// src/database/repositories/base.repository.ts
|
|
112
|
-
import { Logger, NotFoundException } from "@nestjs/common";
|
|
113
|
-
import {
|
|
114
|
-
Model,
|
|
115
|
-
Document,
|
|
116
|
-
FilterQuery,
|
|
117
|
-
ProjectionType,
|
|
118
|
-
QueryOptions,
|
|
119
|
-
UpdateQuery,
|
|
120
|
-
ClientSession,
|
|
121
|
-
} from "mongoose";
|
|
122
|
-
import {
|
|
123
|
-
IBaseRepository,
|
|
124
|
-
PaginationParams,
|
|
125
|
-
PaginatedResult,
|
|
126
|
-
} from "./base.repository.interface";
|
|
127
|
-
|
|
128
|
-
export abstract class BaseRepository<
|
|
129
|
-
T extends Document,
|
|
130
|
-
CreateDto = Partial<T>,
|
|
131
|
-
UpdateDto = Partial<T>,
|
|
132
|
-
> implements IBaseRepository<T, CreateDto, UpdateDto> {
|
|
133
|
-
protected abstract readonly logger: Logger;
|
|
134
|
-
protected abstract readonly entityName: string;
|
|
135
|
-
|
|
136
|
-
constructor(protected readonly model: Model<T>) {}
|
|
137
|
-
|
|
138
|
-
// ============ CREATE ============
|
|
139
|
-
|
|
140
|
-
async create(data: CreateDto, session?: ClientSession): Promise<T> {
|
|
141
|
-
const entity = new this.model(data);
|
|
142
|
-
return entity.save({ session });
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
async createMany(data: CreateDto[], session?: ClientSession): Promise<T[]> {
|
|
146
|
-
return this.model.insertMany(data as any[], { session }) as Promise<T[]>;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// ============ READ ============
|
|
150
|
-
|
|
151
|
-
async findById(
|
|
152
|
-
id: string,
|
|
153
|
-
projection?: ProjectionType<T>,
|
|
154
|
-
session?: ClientSession,
|
|
155
|
-
): Promise<T | null> {
|
|
156
|
-
return this.model.findById(id, projection).session(session).exec();
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
async findByIdOrFail(
|
|
160
|
-
id: string,
|
|
161
|
-
projection?: ProjectionType<T>,
|
|
162
|
-
session?: ClientSession,
|
|
163
|
-
): Promise<T> {
|
|
164
|
-
const entity = await this.findById(id, projection, session);
|
|
165
|
-
if (!entity) {
|
|
166
|
-
throw new NotFoundException(`${this.entityName} with ID ${id} not found`);
|
|
167
|
-
}
|
|
168
|
-
return entity;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
async findOne(
|
|
172
|
-
filter: FilterQuery<T>,
|
|
173
|
-
session?: ClientSession,
|
|
174
|
-
): Promise<T | null> {
|
|
175
|
-
return this.model.findOne(filter).session(session).exec();
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
async findOneOrFail(
|
|
179
|
-
filter: FilterQuery<T>,
|
|
180
|
-
session?: ClientSession,
|
|
181
|
-
): Promise<T> {
|
|
182
|
-
const entity = await this.findOne(filter, session);
|
|
183
|
-
if (!entity) {
|
|
184
|
-
throw new NotFoundException(`${this.entityName} not found`);
|
|
185
|
-
}
|
|
186
|
-
return entity;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
async findAll(
|
|
190
|
-
filter: FilterQuery<T> = {},
|
|
191
|
-
options: QueryOptions<T> = {},
|
|
192
|
-
): Promise<T[]> {
|
|
193
|
-
return this.model.find(filter, null, options).exec();
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
async findPaginated(
|
|
197
|
-
params: PaginationParams,
|
|
198
|
-
filter: FilterQuery<T> = {},
|
|
199
|
-
): Promise<PaginatedResult<T>> {
|
|
200
|
-
const page = Math.max(1, params.page || 1);
|
|
201
|
-
const limit = Math.min(100, Math.max(1, params.limit || 10));
|
|
202
|
-
const skip = (page - 1) * limit;
|
|
203
|
-
|
|
204
|
-
const sortField = params.sort || "createdAt";
|
|
205
|
-
const sortOrder = params.order === "asc" ? 1 : -1;
|
|
206
|
-
|
|
207
|
-
const [data, total] = await Promise.all([
|
|
208
|
-
this.model
|
|
209
|
-
.find(filter)
|
|
210
|
-
.sort({ [sortField]: sortOrder })
|
|
211
|
-
.skip(skip)
|
|
212
|
-
.limit(limit)
|
|
213
|
-
.exec(),
|
|
214
|
-
this.model.countDocuments(filter).exec(),
|
|
215
|
-
]);
|
|
216
|
-
|
|
217
|
-
const totalPages = Math.ceil(total / limit);
|
|
218
|
-
|
|
219
|
-
return {
|
|
220
|
-
data,
|
|
221
|
-
total,
|
|
222
|
-
page,
|
|
223
|
-
limit,
|
|
224
|
-
totalPages,
|
|
225
|
-
hasNextPage: page < totalPages,
|
|
226
|
-
hasPrevPage: page > 1,
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
// ============ UPDATE ============
|
|
231
|
-
|
|
232
|
-
async update(
|
|
233
|
-
id: string,
|
|
234
|
-
data: UpdateDto,
|
|
235
|
-
session?: ClientSession,
|
|
236
|
-
): Promise<T> {
|
|
237
|
-
const result = await this.model
|
|
238
|
-
.findByIdAndUpdate(id, data as UpdateQuery<T>, {
|
|
239
|
-
new: true,
|
|
240
|
-
session,
|
|
241
|
-
runValidators: true,
|
|
242
|
-
})
|
|
243
|
-
.exec();
|
|
244
|
-
|
|
245
|
-
if (!result) {
|
|
246
|
-
throw new NotFoundException(`${this.entityName} with ID ${id} not found`);
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
return result;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
async updateMany(
|
|
253
|
-
filter: FilterQuery<T>,
|
|
254
|
-
data: UpdateQuery<T>,
|
|
255
|
-
session?: ClientSession,
|
|
256
|
-
): Promise<number> {
|
|
257
|
-
const result = await this.model
|
|
258
|
-
.updateMany(filter, data, { runValidators: true })
|
|
259
|
-
.session(session)
|
|
260
|
-
.exec();
|
|
261
|
-
return result.modifiedCount;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
// ============ DELETE ============
|
|
265
|
-
|
|
266
|
-
async delete(id: string, session?: ClientSession): Promise<boolean> {
|
|
267
|
-
const result = await this.model
|
|
268
|
-
.findByIdAndDelete(id)
|
|
269
|
-
.session(session)
|
|
270
|
-
.exec();
|
|
271
|
-
return !!result;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
async deleteMany(
|
|
275
|
-
filter: FilterQuery<T>,
|
|
276
|
-
session?: ClientSession,
|
|
277
|
-
): Promise<number> {
|
|
278
|
-
const result = await this.model.deleteMany(filter).session(session).exec();
|
|
279
|
-
return result.deletedCount || 0;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
// ============ UTILITY ============
|
|
283
|
-
|
|
284
|
-
async exists(filter: FilterQuery<T>): Promise<boolean> {
|
|
285
|
-
const count = await this.model.countDocuments(filter).limit(1).exec();
|
|
286
|
-
return count > 0;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
async count(filter: FilterQuery<T> = {}): Promise<number> {
|
|
290
|
-
return this.model.countDocuments(filter).exec();
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
---
|
|
296
|
-
|
|
297
|
-
## Concrete Repository Implementation
|
|
298
|
-
|
|
299
|
-
```typescript
|
|
300
|
-
// src/modules/users/users.repository.ts
|
|
301
|
-
import { Injectable, Logger } from "@nestjs/common";
|
|
302
|
-
import { InjectModel } from "@nestjs/mongoose";
|
|
303
|
-
import { Model, ClientSession } from "mongoose";
|
|
304
|
-
import { BaseRepository } from "../../database/repositories/base.repository";
|
|
305
|
-
import { User, UserDocument } from "./schemas/user.schema";
|
|
306
|
-
import { CreateUserDto } from "./dto/create-user.dto";
|
|
307
|
-
import { UpdateUserDto } from "./dto/update-user.dto";
|
|
308
|
-
|
|
309
|
-
@Injectable()
|
|
310
|
-
export class UsersRepository extends BaseRepository<
|
|
311
|
-
UserDocument,
|
|
312
|
-
CreateUserDto,
|
|
313
|
-
UpdateUserDto
|
|
314
|
-
> {
|
|
315
|
-
protected readonly logger = new Logger(UsersRepository.name);
|
|
316
|
-
protected readonly entityName = "User";
|
|
317
|
-
|
|
318
|
-
constructor(
|
|
319
|
-
@InjectModel(User.name)
|
|
320
|
-
private readonly userModel: Model<UserDocument>,
|
|
321
|
-
) {
|
|
322
|
-
super(userModel);
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
// ============ CUSTOM QUERIES ============
|
|
326
|
-
|
|
327
|
-
async findByUsername(username: string): Promise<UserDocument | null> {
|
|
328
|
-
return this.model
|
|
329
|
-
.findOne({ username })
|
|
330
|
-
.select("+password") // Include password field
|
|
331
|
-
.exec();
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
async findByOrganization(
|
|
335
|
-
organizationId: string,
|
|
336
|
-
role?: string,
|
|
337
|
-
): Promise<UserDocument[]> {
|
|
338
|
-
const filter: any = { organizationId };
|
|
339
|
-
if (role) {
|
|
340
|
-
filter.role = role;
|
|
341
|
-
}
|
|
342
|
-
return this.model.find(filter).exec();
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
async findByEmail(email: string): Promise<UserDocument | null> {
|
|
346
|
-
return this.model.findOne({ email }).exec();
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
async updateLastLogin(
|
|
350
|
-
userId: string,
|
|
351
|
-
session?: ClientSession,
|
|
352
|
-
): Promise<void> {
|
|
353
|
-
await this.model
|
|
354
|
-
.updateOne({ _id: userId }, { $set: { lastLoginAt: Date.now() } })
|
|
355
|
-
.session(session)
|
|
356
|
-
.exec();
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
async incrementLoginAttempts(userId: string): Promise<number> {
|
|
360
|
-
const result = await this.model
|
|
361
|
-
.findByIdAndUpdate(userId, { $inc: { loginAttempts: 1 } }, { new: true })
|
|
362
|
-
.exec();
|
|
363
|
-
return result?.loginAttempts || 0;
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
async resetLoginAttempts(userId: string): Promise<void> {
|
|
367
|
-
await this.model
|
|
368
|
-
.updateOne({ _id: userId }, { $set: { loginAttempts: 0 } })
|
|
369
|
-
.exec();
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
async searchUsers(
|
|
373
|
-
query: string,
|
|
374
|
-
organizationId: string,
|
|
375
|
-
): Promise<UserDocument[]> {
|
|
376
|
-
return this.model
|
|
377
|
-
.find({
|
|
378
|
-
organizationId,
|
|
379
|
-
$text: { $search: query },
|
|
380
|
-
})
|
|
381
|
-
.limit(20)
|
|
382
|
-
.exec();
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
async countByRole(organizationId: string): Promise<Record<string, number>> {
|
|
386
|
-
const result = await this.model.aggregate([
|
|
387
|
-
{ $match: { organizationId } },
|
|
388
|
-
{ $group: { _id: "$role", count: { $sum: 1 } } },
|
|
389
|
-
]);
|
|
390
|
-
|
|
391
|
-
return result.reduce((acc, item) => {
|
|
392
|
-
acc[item._id] = item.count;
|
|
393
|
-
return acc;
|
|
394
|
-
}, {});
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
---
|
|
400
|
-
|
|
401
|
-
## Service Using Repository
|
|
402
|
-
|
|
403
|
-
```typescript
|
|
404
|
-
// src/modules/users/users.service.ts
|
|
405
|
-
import {
|
|
406
|
-
Injectable,
|
|
407
|
-
ConflictException,
|
|
408
|
-
NotFoundException,
|
|
409
|
-
} from "@nestjs/common";
|
|
410
|
-
import { ConfigService } from "@nestjs/config";
|
|
411
|
-
import * as bcrypt from "bcrypt";
|
|
412
|
-
import { UsersRepository } from "./users.repository";
|
|
413
|
-
import { CreateUserDto } from "./dto/create-user.dto";
|
|
414
|
-
import { UpdateUserDto } from "./dto/update-user.dto";
|
|
415
|
-
import { UserResponseDto } from "./dto/user-response.dto";
|
|
416
|
-
import {
|
|
417
|
-
PaginationParams,
|
|
418
|
-
PaginatedResult,
|
|
419
|
-
} from "../../database/repositories/base.repository.interface";
|
|
420
|
-
|
|
421
|
-
@Injectable()
|
|
422
|
-
export class UsersService {
|
|
423
|
-
constructor(
|
|
424
|
-
private readonly usersRepository: UsersRepository,
|
|
425
|
-
private readonly configService: ConfigService,
|
|
426
|
-
) {}
|
|
427
|
-
|
|
428
|
-
async create(dto: CreateUserDto): Promise<UserResponseDto> {
|
|
429
|
-
// Check for duplicate username
|
|
430
|
-
const existing = await this.usersRepository.findByUsername(dto.username);
|
|
431
|
-
if (existing) {
|
|
432
|
-
throw new ConflictException("Username already exists");
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
// Hash password
|
|
436
|
-
const saltRounds =
|
|
437
|
-
this.configService.get<number>("security.saltRounds") || 12;
|
|
438
|
-
const hashedPassword = await bcrypt.hash(dto.password, saltRounds);
|
|
439
|
-
|
|
440
|
-
// Create user
|
|
441
|
-
const user = await this.usersRepository.create({
|
|
442
|
-
...dto,
|
|
443
|
-
password: hashedPassword,
|
|
444
|
-
});
|
|
445
|
-
|
|
446
|
-
return UserResponseDto.from(user);
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
async findById(id: string): Promise<UserResponseDto> {
|
|
450
|
-
const user = await this.usersRepository.findByIdOrFail(id);
|
|
451
|
-
return UserResponseDto.from(user);
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
async findAll(
|
|
455
|
-
params: PaginationParams,
|
|
456
|
-
organizationId?: string,
|
|
457
|
-
): Promise<PaginatedResult<UserResponseDto>> {
|
|
458
|
-
const filter = organizationId ? { organizationId } : {};
|
|
459
|
-
const result = await this.usersRepository.findPaginated(params, filter);
|
|
460
|
-
|
|
461
|
-
return {
|
|
462
|
-
...result,
|
|
463
|
-
data: result.data.map(UserResponseDto.from),
|
|
464
|
-
};
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
async update(id: string, dto: UpdateUserDto): Promise<UserResponseDto> {
|
|
468
|
-
// Hash password if provided
|
|
469
|
-
if (dto.password) {
|
|
470
|
-
const saltRounds =
|
|
471
|
-
this.configService.get<number>("security.saltRounds") || 12;
|
|
472
|
-
dto.password = await bcrypt.hash(dto.password, saltRounds);
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
const user = await this.usersRepository.update(id, dto);
|
|
476
|
-
return UserResponseDto.from(user);
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
async delete(id: string): Promise<void> {
|
|
480
|
-
const deleted = await this.usersRepository.delete(id);
|
|
481
|
-
if (!deleted) {
|
|
482
|
-
throw new NotFoundException(`User with ID ${id} not found`);
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
---
|
|
489
|
-
|
|
490
|
-
## Lean Queries for Read-Only Operations
|
|
491
|
-
|
|
492
|
-
```typescript
|
|
493
|
-
// For read-only queries, use lean() for better performance
|
|
494
|
-
async findAllLean(filter: FilterQuery<T> = {}): Promise<T[]> {
|
|
495
|
-
return this.model.find(filter).lean().exec();
|
|
496
|
-
}
|
|
497
|
-
|
|
498
|
-
// Lean returns plain JavaScript objects, not Mongoose documents
|
|
499
|
-
// - No virtuals
|
|
500
|
-
// - No getters/setters
|
|
501
|
-
// - No save() method
|
|
502
|
-
// - ~5x faster for large result sets
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
---
|
|
506
|
-
|
|
507
|
-
## Aggregation Queries
|
|
508
|
-
|
|
509
|
-
```typescript
|
|
510
|
-
// Complex aggregation in repository
|
|
511
|
-
async getAttendanceSummary(
|
|
512
|
-
organizationId: string,
|
|
513
|
-
startDate: Date,
|
|
514
|
-
endDate: Date,
|
|
515
|
-
): Promise<AttendanceSummary[]> {
|
|
516
|
-
return this.model.aggregate([
|
|
517
|
-
{
|
|
518
|
-
$match: {
|
|
519
|
-
organizationId,
|
|
520
|
-
checkInDateTime: {
|
|
521
|
-
$gte: startDate.getTime(),
|
|
522
|
-
$lte: endDate.getTime(),
|
|
523
|
-
},
|
|
524
|
-
},
|
|
525
|
-
},
|
|
526
|
-
{
|
|
527
|
-
$group: {
|
|
528
|
-
_id: '$userId',
|
|
529
|
-
totalDays: { $sum: 1 },
|
|
530
|
-
totalLate: {
|
|
531
|
-
$sum: { $cond: [{ $gt: ['$checkInLate', 0] }, 1, 0] },
|
|
532
|
-
},
|
|
533
|
-
avgWorkHours: { $avg: '$workingHours' },
|
|
534
|
-
},
|
|
535
|
-
},
|
|
536
|
-
{
|
|
537
|
-
$lookup: {
|
|
538
|
-
from: 'users',
|
|
539
|
-
localField: '_id',
|
|
540
|
-
foreignField: '_id',
|
|
541
|
-
as: 'user',
|
|
542
|
-
},
|
|
543
|
-
},
|
|
544
|
-
{ $unwind: '$user' },
|
|
545
|
-
{
|
|
546
|
-
$project: {
|
|
547
|
-
userId: '$_id',
|
|
548
|
-
userName: '$user.name',
|
|
549
|
-
totalDays: 1,
|
|
550
|
-
totalLate: 1,
|
|
551
|
-
avgWorkHours: { $round: ['$avgWorkHours', 2] },
|
|
552
|
-
},
|
|
553
|
-
},
|
|
554
|
-
]);
|
|
555
|
-
}
|
|
556
|
-
```
|
|
557
|
-
|
|
558
|
-
---
|
|
559
|
-
|
|
560
|
-
## Module Registration
|
|
561
|
-
|
|
562
|
-
```typescript
|
|
563
|
-
// src/database/database.module.ts
|
|
564
|
-
import { Module, Global } from "@nestjs/common";
|
|
565
|
-
import { MongooseModule } from "@nestjs/mongoose";
|
|
566
|
-
import { ConfigService } from "@nestjs/config";
|
|
567
|
-
import { TransactionHelper } from "./transaction.helper";
|
|
568
|
-
|
|
569
|
-
@Global()
|
|
570
|
-
@Module({
|
|
571
|
-
imports: [
|
|
572
|
-
MongooseModule.forRootAsync({
|
|
573
|
-
useFactory: (config: ConfigService) => ({
|
|
574
|
-
uri: config.get<string>("database.uri"),
|
|
575
|
-
// Recommended options
|
|
576
|
-
maxPoolSize: 10,
|
|
577
|
-
serverSelectionTimeoutMS: 5000,
|
|
578
|
-
socketTimeoutMS: 45000,
|
|
579
|
-
// Strict mode
|
|
580
|
-
strictQuery: true,
|
|
581
|
-
}),
|
|
582
|
-
inject: [ConfigService],
|
|
583
|
-
}),
|
|
584
|
-
],
|
|
585
|
-
providers: [TransactionHelper],
|
|
586
|
-
exports: [TransactionHelper],
|
|
587
|
-
})
|
|
588
|
-
export class DatabaseModule {}
|
|
589
|
-
```
|
|
590
|
-
|
|
591
|
-
---
|
|
592
|
-
|
|
593
|
-
## Testing Repositories
|
|
594
|
-
|
|
595
|
-
```typescript
|
|
596
|
-
// users.repository.spec.ts
|
|
597
|
-
import { Test, TestingModule } from "@nestjs/testing";
|
|
598
|
-
import { getModelToken } from "@nestjs/mongoose";
|
|
599
|
-
import { Model } from "mongoose";
|
|
600
|
-
import { UsersRepository } from "./users.repository";
|
|
601
|
-
import { User, UserDocument } from "./schemas/user.schema";
|
|
602
|
-
|
|
603
|
-
describe("UsersRepository", () => {
|
|
604
|
-
let repository: UsersRepository;
|
|
605
|
-
let model: Model<UserDocument>;
|
|
606
|
-
|
|
607
|
-
const mockUser = {
|
|
608
|
-
_id: "user-123",
|
|
609
|
-
username: "testuser",
|
|
610
|
-
email: "test@example.com",
|
|
611
|
-
organizationId: "org-123",
|
|
612
|
-
role: "STAFF",
|
|
613
|
-
};
|
|
614
|
-
|
|
615
|
-
const mockModel = {
|
|
616
|
-
new: jest.fn().mockResolvedValue(mockUser),
|
|
617
|
-
constructor: jest.fn().mockResolvedValue(mockUser),
|
|
618
|
-
find: jest.fn(),
|
|
619
|
-
findOne: jest.fn(),
|
|
620
|
-
findById: jest.fn(),
|
|
621
|
-
findByIdAndUpdate: jest.fn(),
|
|
622
|
-
findByIdAndDelete: jest.fn(),
|
|
623
|
-
countDocuments: jest.fn(),
|
|
624
|
-
create: jest.fn(),
|
|
625
|
-
exec: jest.fn(),
|
|
626
|
-
};
|
|
627
|
-
|
|
628
|
-
beforeEach(async () => {
|
|
629
|
-
const module: TestingModule = await Test.createTestingModule({
|
|
630
|
-
providers: [
|
|
631
|
-
UsersRepository,
|
|
632
|
-
{
|
|
633
|
-
provide: getModelToken(User.name),
|
|
634
|
-
useValue: mockModel,
|
|
635
|
-
},
|
|
636
|
-
],
|
|
637
|
-
}).compile();
|
|
638
|
-
|
|
639
|
-
repository = module.get<UsersRepository>(UsersRepository);
|
|
640
|
-
model = module.get<Model<UserDocument>>(getModelToken(User.name));
|
|
641
|
-
});
|
|
642
|
-
|
|
643
|
-
describe("findByUsername", () => {
|
|
644
|
-
it("should return user with password", async () => {
|
|
645
|
-
const selectMock = jest.fn().mockReturnThis();
|
|
646
|
-
const execMock = jest.fn().mockResolvedValue(mockUser);
|
|
647
|
-
|
|
648
|
-
mockModel.findOne.mockReturnValue({
|
|
649
|
-
select: selectMock,
|
|
650
|
-
exec: execMock,
|
|
651
|
-
});
|
|
652
|
-
|
|
653
|
-
const result = await repository.findByUsername("testuser");
|
|
654
|
-
|
|
655
|
-
expect(mockModel.findOne).toHaveBeenCalledWith({ username: "testuser" });
|
|
656
|
-
expect(selectMock).toHaveBeenCalledWith("+password");
|
|
657
|
-
expect(result).toEqual(mockUser);
|
|
658
|
-
});
|
|
659
|
-
});
|
|
660
|
-
});
|
|
661
|
-
```
|