appiq-solution 1.4.7 → 1.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +172 -48
- package/bmad-core/agent-teams/team-fullstack.yaml +1 -11
- package/bmad-core/agents/analyst.md +3 -7
- package/bmad-core/agents/architect.md +0 -6
- package/bmad-core/agents/dev.md +5 -24
- package/bmad-core/agents/pm.md +3 -7
- package/bmad-core/agents/qa.md +0 -17
- package/bmad-core/agents/sm.md +3 -8
- package/bmad-core/agents/ux-expert.md +3 -8
- package/bmad-core/data/technical-preferences.md +1 -147
- package/bmad-core/templates/fullstack-architecture-tmpl.yaml +5 -12
- package/bmad-core/workflows/brownfield-fullstack.yaml +1 -15
- package/bmad-core/workflows/greenfield-fullstack.yaml +5 -49
- package/bmad-core/working-in-the-brownfield.md +10 -19
- package/dist/agents/bmad-orchestrator.txt +0 -111
- package/dist/agents/pm.txt +2 -0
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -111
- package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -111
- package/dist/teams/team-all.txt +2 -111
- package/dist/teams/team-fullstack.txt +2 -111
- package/dist/teams/team-ide-minimal.txt +0 -111
- package/dist/teams/team-no-ui.txt +2 -111
- package/package.json +60 -18
- package/tools/cli.js +3 -3
- package/tools/installer/package-lock.json +2 -2
- package/#NEW APP PROMPT/ARCHITECTURE.md +0 -279
- package/#NEW APP PROMPT/ARCHITECTURE_UNIFIED.md +0 -414
- package/#NEW APP PROMPT/accesibility_prompt.md +0 -103
- package/#NEW APP PROMPT/clean-code.mdc +0 -55
- package/#NEW APP PROMPT/codequality.mdc +0 -47
- package/#NEW APP PROMPT/flutter-ai-rules/LICENSE +0 -21
- package/#NEW APP PROMPT/flutter-ai-rules/README.md +0 -104
- package/#NEW APP PROMPT/flutter-ai-rules/combined/README.md +0 -25
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart.md +0 -192
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart__under_6K.md +0 -99
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_bloc_mocktail.md +0 -308
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_bloc_mocktail__under_6K.md +0 -87
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_change_notifier.md +0 -254
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_change_notifier__under_6K.md +0 -98
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_provider.md +0 -261
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_provider__under_6K.md +0 -105
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_riverpod_mockito.md +0 -371
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_riverpod_mockito__under_6K.md +0 -92
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_bloc.md +0 -287
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_bloc__under_6K.md +0 -68
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_riverpod.md +0 -375
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_riverpod__under_6K.md +0 -106
- package/#NEW APP PROMPT/flutter-ai-rules/media/flutter_ai_rules.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/media/mocktail_md_01.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/media/mocktail_md_02.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/bloc.md +0 -94
- package/#NEW APP PROMPT/flutter-ai-rules/rules/dart_3_updates.md +0 -93
- package/#NEW APP PROMPT/flutter-ai-rules/rules/effective_dart.md +0 -105
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_app_architecture.md +0 -57
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_change_notifier.md +0 -62
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_errors.md +0 -11
- package/#NEW APP PROMPT/flutter-ai-rules/rules/mockito.md +0 -31
- package/#NEW APP PROMPT/flutter-ai-rules/rules/mocktail.md +0 -24
- package/#NEW APP PROMPT/flutter-ai-rules/rules/provider.md +0 -69
- package/#NEW APP PROMPT/flutter-ai-rules/rules/riverpod.md +0 -188
- package/#NEW APP PROMPT/generate ssh.md +0 -4
- package/#NEW APP PROMPT/project_ai_prompt.md +0 -544
- package/#Tools/APPIQ-METHOD/.bmad-config.json +0 -13
- package/#Tools/APPIQ-METHOD/.cursor/commands/analyze.md +0 -27
- package/#Tools/APPIQ-METHOD/.cursor/commands/appiq.md +0 -27
- package/#Tools/APPIQ-METHOD/.cursor/commands/help.md +0 -27
- package/#Tools/APPIQ-METHOD/.cursor/commands/story.md +0 -27
- package/#Tools/APPIQ-METHOD/DEVELOPMENT_GUIDE.md +0 -855
- package/#Tools/APPIQ-METHOD/NPM-README.md +0 -138
- package/#Tools/APPIQ-METHOD/README.md +0 -107
- package/#Tools/APPIQ-METHOD/SMART_WORKFLOW_GUIDE.md +0 -401
- package/#Tools/APPIQ-METHOD/activate-appiq.js +0 -81
- package/#Tools/APPIQ-METHOD/appiq-solution/README.md +0 -226
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-all.yaml +0 -14
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-flutter-mobile.yaml +0 -114
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-fullstack.yaml +0 -28
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-ide-minimal.yaml +0 -10
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-no-ui.yaml +0 -13
- package/#Tools/APPIQ-METHOD/bmad-core/agents/analyst.md +0 -85
- package/#Tools/APPIQ-METHOD/bmad-core/agents/architect.md +0 -90
- package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-master.md +0 -108
- package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-orchestrator.md +0 -150
- package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-smart-launcher.md +0 -170
- package/#Tools/APPIQ-METHOD/bmad-core/agents/dev.md +0 -95
- package/#Tools/APPIQ-METHOD/bmad-core/agents/init-flow-po.md +0 -143
- package/#Tools/APPIQ-METHOD/bmad-core/agents/pm.md +0 -85
- package/#Tools/APPIQ-METHOD/bmad-core/agents/po.md +0 -76
- package/#Tools/APPIQ-METHOD/bmad-core/agents/qa.md +0 -86
- package/#Tools/APPIQ-METHOD/bmad-core/agents/sm.md +0 -67
- package/#Tools/APPIQ-METHOD/bmad-core/agents/ux-expert.md +0 -71
- package/#Tools/APPIQ-METHOD/bmad-core/bmad-core/user-guide.md +0 -0
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/architect-checklist.md +0 -443
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/change-checklist.md +0 -182
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/pm-checklist.md +0 -375
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/po-master-checklist.md +0 -441
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/security-validation-checklist.md +0 -332
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/story-dod-checklist.md +0 -101
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/story-draft-checklist.md +0 -156
- package/#Tools/APPIQ-METHOD/bmad-core/core-config.yaml +0 -20
- package/#Tools/APPIQ-METHOD/bmad-core/core-config.yaml.bak +0 -20
- package/#Tools/APPIQ-METHOD/bmad-core/data/backend-services-integration.md +0 -686
- package/#Tools/APPIQ-METHOD/bmad-core/data/bmad-kb.md +0 -803
- package/#Tools/APPIQ-METHOD/bmad-core/data/brainstorming-techniques.md +0 -36
- package/#Tools/APPIQ-METHOD/bmad-core/data/elicitation-methods.md +0 -134
- package/#Tools/APPIQ-METHOD/bmad-core/data/shadcn-ui-integration.md +0 -388
- package/#Tools/APPIQ-METHOD/bmad-core/data/technical-preferences.md +0 -149
- package/#Tools/APPIQ-METHOD/bmad-core/enhanced-ide-development-workflow.md +0 -43
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/advanced-elicitation.md +0 -117
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/brownfield-create-epic.md +0 -160
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/brownfield-create-story.md +0 -147
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/correct-course.md +0 -70
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-brownfield-story.md +0 -304
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-deep-research-prompt.md +0 -289
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-flutter-story.md +0 -197
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-next-story.md +0 -112
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/document-project.md +0 -341
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/facilitate-brainstorming-session.md +0 -136
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/generate-ai-frontend-prompt.md +0 -51
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/index-docs.md +0 -179
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/intelligent-epic-creation.md +0 -234
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/kb-mode-interaction.md +0 -75
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/review-story.md +0 -145
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/shard-doc.md +0 -187
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/smart-project-analysis.md +0 -289
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/validate-next-story.md +0 -134
- package/#Tools/APPIQ-METHOD/bmad-core/templates/architecture-tmpl.yaml +0 -650
- package/#Tools/APPIQ-METHOD/bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
- package/#Tools/APPIQ-METHOD/bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -476
- package/#Tools/APPIQ-METHOD/bmad-core/templates/brownfield-prd-tmpl.yaml +0 -280
- package/#Tools/APPIQ-METHOD/bmad-core/templates/competitor-analysis-tmpl.yaml +0 -293
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-mobile-prd-tmpl.yaml +0 -330
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-story-tmpl.yaml +0 -376
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-ui-spec-tmpl.yaml +0 -415
- package/#Tools/APPIQ-METHOD/bmad-core/templates/front-end-architecture-tmpl.yaml +0 -206
- package/#Tools/APPIQ-METHOD/bmad-core/templates/front-end-spec-tmpl.yaml +0 -349
- package/#Tools/APPIQ-METHOD/bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -812
- package/#Tools/APPIQ-METHOD/bmad-core/templates/market-research-tmpl.yaml +0 -252
- package/#Tools/APPIQ-METHOD/bmad-core/templates/prd-tmpl.yaml +0 -202
- package/#Tools/APPIQ-METHOD/bmad-core/templates/project-brief-tmpl.yaml +0 -221
- package/#Tools/APPIQ-METHOD/bmad-core/templates/story-tmpl.yaml +0 -137
- package/#Tools/APPIQ-METHOD/bmad-core/user-guide.md +0 -251
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-fullstack.yaml +0 -311
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-service.yaml +0 -187
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-ui.yaml +0 -197
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-fullstack.yaml +0 -284
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-service.yaml +0 -206
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-ui.yaml +0 -235
- package/#Tools/APPIQ-METHOD/bmad-core/working-in-the-brownfield.md +0 -373
- package/#Tools/APPIQ-METHOD/commands/README.md +0 -28
- package/#Tools/APPIQ-METHOD/commands/analyze.md +0 -27
- package/#Tools/APPIQ-METHOD/commands/appiq.md +0 -27
- package/#Tools/APPIQ-METHOD/commands/help.md +0 -27
- package/#Tools/APPIQ-METHOD/commands/story.md +0 -27
- package/#Tools/APPIQ-METHOD/dist/agents/analyst.txt +0 -2882
- package/#Tools/APPIQ-METHOD/dist/agents/architect.txt +0 -3543
- package/#Tools/APPIQ-METHOD/dist/agents/bmad-master.txt +0 -8756
- package/#Tools/APPIQ-METHOD/dist/agents/bmad-orchestrator.txt +0 -1490
- package/#Tools/APPIQ-METHOD/dist/agents/dev.txt +0 -428
- package/#Tools/APPIQ-METHOD/dist/agents/pm.txt +0 -2229
- package/#Tools/APPIQ-METHOD/dist/agents/po.txt +0 -1364
- package/#Tools/APPIQ-METHOD/dist/agents/qa.txt +0 -386
- package/#Tools/APPIQ-METHOD/dist/agents/sm.txt +0 -668
- package/#Tools/APPIQ-METHOD/dist/agents/ux-expert.txt +0 -701
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +0 -2408
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +0 -1631
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +0 -822
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -10989
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +0 -4047
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +0 -3744
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +0 -465
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +0 -990
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -15467
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +0 -2077
- package/#Tools/APPIQ-METHOD/dist/teams/team-all.txt +0 -11062
- package/#Tools/APPIQ-METHOD/dist/teams/team-fullstack.txt +0 -10392
- package/#Tools/APPIQ-METHOD/dist/teams/team-ide-minimal.txt +0 -3507
- package/#Tools/APPIQ-METHOD/dist/teams/team-no-ui.txt +0 -8951
- package/#Tools/APPIQ-METHOD/install-appiq.sh +0 -41
- package/#Tools/APPIQ-METHOD/package-lock.json +0 -631
- package/#Tools/APPIQ-METHOD/package.json +0 -44
- package/#Tools/APPIQ-METHOD/tasks/todo.md +0 -275
- package/#Tools/APPIQ-METHOD/tools/appiq-installer.js +0 -2711
- package/#Tools/APPIQ-METHOD/tools/bmad-npx-wrapper.js +0 -39
- package/#Tools/APPIQ-METHOD/tools/builders/web-builder.js +0 -681
- package/#Tools/APPIQ-METHOD/tools/bump-all-versions.js +0 -106
- package/#Tools/APPIQ-METHOD/tools/bump-expansion-version.js +0 -83
- package/#Tools/APPIQ-METHOD/tools/cli.js +0 -152
- package/#Tools/APPIQ-METHOD/tools/epic-solution-installer.js +0 -536
- package/#Tools/APPIQ-METHOD/tools/flattener/main.js +0 -570
- package/#Tools/APPIQ-METHOD/tools/installer/README.md +0 -8
- package/#Tools/APPIQ-METHOD/tools/installer/bin/bmad.js +0 -483
- package/#Tools/APPIQ-METHOD/tools/installer/config/ide-agent-config.yaml +0 -58
- package/#Tools/APPIQ-METHOD/tools/installer/config/install.config.yaml +0 -92
- package/#Tools/APPIQ-METHOD/tools/installer/lib/config-loader.js +0 -253
- package/#Tools/APPIQ-METHOD/tools/installer/lib/file-manager.js +0 -411
- package/#Tools/APPIQ-METHOD/tools/installer/lib/ide-base-setup.js +0 -227
- package/#Tools/APPIQ-METHOD/tools/installer/lib/ide-setup.js +0 -1096
- package/#Tools/APPIQ-METHOD/tools/installer/lib/installer.js +0 -1772
- package/#Tools/APPIQ-METHOD/tools/installer/lib/memory-profiler.js +0 -224
- package/#Tools/APPIQ-METHOD/tools/installer/lib/module-manager.js +0 -110
- package/#Tools/APPIQ-METHOD/tools/installer/lib/resource-locator.js +0 -310
- package/#Tools/APPIQ-METHOD/tools/installer/package-lock.json +0 -906
- package/#Tools/APPIQ-METHOD/tools/installer/package.json +0 -43
- package/#Tools/APPIQ-METHOD/tools/lib/dependency-resolver.js +0 -179
- package/#Tools/APPIQ-METHOD/tools/lib/yaml-utils.js +0 -29
- package/#Tools/APPIQ-METHOD/tools/md-assets/web-agent-startup-instructions.md +0 -39
- package/#Tools/APPIQ-METHOD/tools/semantic-release-sync-installer.js +0 -30
- package/#Tools/APPIQ-METHOD/tools/setup-ide-commands.js +0 -348
- package/#Tools/APPIQ-METHOD/tools/smart-installer.js +0 -592
- package/#Tools/APPIQ-METHOD/tools/sync-installer-version.js +0 -34
- package/#Tools/APPIQ-METHOD/tools/update-expansion-version.js +0 -54
- package/#Tools/APPIQ-METHOD/tools/upgraders/v3-to-v4-upgrader.js +0 -763
- package/#Tools/APPIQ-METHOD/tools/version-bump.js +0 -79
- package/#Tools/APPIQ-METHOD/tools/yaml-format.js +0 -240
- package/#Tools/SkyReels-V2/.pre-commit-config.yaml +0 -25
- package/#Tools/SkyReels-V2/LICENSE.txt +0 -38
- package/#Tools/SkyReels-V2/README.md +0 -766
- package/#Tools/SkyReels-V2/generate_video.py +0 -161
- package/#Tools/SkyReels-V2/generate_video_df.py +0 -220
- package/#Tools/SkyReels-V2/requirements.txt +0 -16
- package/#Tools/SkyReels-V2/skycaptioner_v1/README.md +0 -278
- package/#Tools/SkyReels-V2/skycaptioner_v1/examples/test.csv +0 -5
- package/#Tools/SkyReels-V2/skycaptioner_v1/examples/test_result.csv +0 -5
- package/#Tools/SkyReels-V2/skycaptioner_v1/infer_fusion_caption.sh +0 -9
- package/#Tools/SkyReels-V2/skycaptioner_v1/infer_struct_caption.sh +0 -8
- package/#Tools/SkyReels-V2/skycaptioner_v1/requirements.txt +0 -3
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/gradio_fusion_caption.py +0 -146
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/gradio_struct_caption.py +0 -92
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/utils.py +0 -19
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/vllm_fusion_caption.py +0 -256
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/vllm_struct_caption.py +0 -156
- package/#Tools/SkyReels-V2/skyreels_v2_infer/__init__.py +0 -1
- package/#Tools/SkyReels-V2/skyreels_v2_infer/distributed/__init__.py +0 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/distributed/xdit_context_parallel.py +0 -286
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/__init__.py +0 -69
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/attention.py +0 -179
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/clip.py +0 -525
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/t5.py +0 -454
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/tokenizers.py +0 -78
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/transformer.py +0 -839
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/vae.py +0 -639
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/xlm_roberta.py +0 -165
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/__init__.py +0 -5
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/diffusion_forcing_pipeline.py +0 -659
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/image2video_pipeline.py +0 -156
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/prompt_enhancer.py +0 -65
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/text2video_pipeline.py +0 -110
- package/#Tools/SkyReels-V2/skyreels_v2_infer/scheduler/__init__.py +0 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/scheduler/fm_solvers_unipc.py +0 -759
- package/#Tools/SuperClaude/.claude/commands/analyze.md +0 -36
- package/#Tools/SuperClaude/.claude/commands/build.md +0 -35
- package/#Tools/SuperClaude/.claude/commands/cleanup.md +0 -46
- package/#Tools/SuperClaude/.claude/commands/deploy.md +0 -55
- package/#Tools/SuperClaude/.claude/commands/design.md +0 -91
- package/#Tools/SuperClaude/.claude/commands/dev-setup.md +0 -37
- package/#Tools/SuperClaude/.claude/commands/document.md +0 -99
- package/#Tools/SuperClaude/.claude/commands/estimate.md +0 -69
- package/#Tools/SuperClaude/.claude/commands/explain.md +0 -85
- package/#Tools/SuperClaude/.claude/commands/git.md +0 -47
- package/#Tools/SuperClaude/.claude/commands/improve.md +0 -162
- package/#Tools/SuperClaude/.claude/commands/index.md +0 -159
- package/#Tools/SuperClaude/.claude/commands/load.md +0 -65
- package/#Tools/SuperClaude/.claude/commands/migrate.md +0 -76
- package/#Tools/SuperClaude/.claude/commands/scan.md +0 -163
- package/#Tools/SuperClaude/.claude/commands/shared/ambiguity-check.yml +0 -40
- package/#Tools/SuperClaude/.claude/commands/shared/audit.yml +0 -21
- package/#Tools/SuperClaude/.claude/commands/shared/checkpoint.yml +0 -28
- package/#Tools/SuperClaude/.claude/commands/shared/cleanup-patterns.yml +0 -107
- package/#Tools/SuperClaude/.claude/commands/shared/command-memory.yml +0 -52
- package/#Tools/SuperClaude/.claude/commands/shared/command-templates.yml +0 -167
- package/#Tools/SuperClaude/.claude/commands/shared/config-validator.yml +0 -206
- package/#Tools/SuperClaude/.claude/commands/shared/constants.yml +0 -311
- package/#Tools/SuperClaude/.claude/commands/shared/documentation-dirs.yml +0 -134
- package/#Tools/SuperClaude/.claude/commands/shared/error-handling.yml +0 -341
- package/#Tools/SuperClaude/.claude/commands/shared/evidence.yml +0 -75
- package/#Tools/SuperClaude/.claude/commands/shared/execution-lifecycle.yml +0 -277
- package/#Tools/SuperClaude/.claude/commands/shared/git-operations.yml +0 -217
- package/#Tools/SuperClaude/.claude/commands/shared/git-workflow.yml +0 -37
- package/#Tools/SuperClaude/.claude/commands/shared/implementation.yml +0 -199
- package/#Tools/SuperClaude/.claude/commands/shared/loading-config.yml +0 -73
- package/#Tools/SuperClaude/.claude/commands/shared/mcp-flags.yml +0 -109
- package/#Tools/SuperClaude/.claude/commands/shared/migration-report.md +0 -165
- package/#Tools/SuperClaude/.claude/commands/shared/patterns.yml +0 -155
- package/#Tools/SuperClaude/.claude/commands/shared/performance.yml +0 -317
- package/#Tools/SuperClaude/.claude/commands/shared/planning-mode.yml +0 -51
- package/#Tools/SuperClaude/.claude/commands/shared/research-first.yml +0 -278
- package/#Tools/SuperClaude/.claude/commands/shared/session-recovery.yml +0 -144
- package/#Tools/SuperClaude/.claude/commands/shared/severity-levels.yml +0 -252
- package/#Tools/SuperClaude/.claude/commands/shared/task-system.yml +0 -380
- package/#Tools/SuperClaude/.claude/commands/shared/task-ultracompressed.yml +0 -88
- package/#Tools/SuperClaude/.claude/commands/shared/templates/feature-template.md +0 -59
- package/#Tools/SuperClaude/.claude/commands/shared/templates/task-ultracompressed.md +0 -26
- package/#Tools/SuperClaude/.claude/commands/shared/thinking-modes.yml +0 -61
- package/#Tools/SuperClaude/.claude/commands/shared/ultracompressed.yml +0 -97
- package/#Tools/SuperClaude/.claude/commands/shared/user-experience.yml +0 -208
- package/#Tools/SuperClaude/.claude/commands/shared/validation.yml +0 -54
- package/#Tools/SuperClaude/.claude/commands/shared/workflow-chains.yml +0 -138
- package/#Tools/SuperClaude/.claude/commands/spawn.md +0 -106
- package/#Tools/SuperClaude/.claude/commands/task.md +0 -110
- package/#Tools/SuperClaude/.claude/commands/test.md +0 -67
- package/#Tools/SuperClaude/.claude/commands/troubleshoot.md +0 -93
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/bug_report.yml +0 -114
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/feature_request.yml +0 -119
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/question.yml +0 -87
- package/#Tools/SuperClaude/.github/pull_request_template.md +0 -62
- package/#Tools/SuperClaude/CHANGELOG.md +0 -109
- package/#Tools/SuperClaude/CLAUDE.md +0 -95
- package/#Tools/SuperClaude/CODE_OF_CONDUCT.md +0 -45
- package/#Tools/SuperClaude/CONTRIBUTING.md +0 -225
- package/#Tools/SuperClaude/Commands_Cheat_Sheet.md +0 -160
- package/#Tools/SuperClaude/LICENSE +0 -21
- package/#Tools/SuperClaude/MCP.md +0 -117
- package/#Tools/SuperClaude/PERSONAS.md +0 -115
- package/#Tools/SuperClaude/README.md +0 -249
- package/#Tools/SuperClaude/RULES.md +0 -220
- package/#Tools/SuperClaude/SECURITY.md +0 -91
- package/#Tools/SuperClaude/install.sh +0 -296
- package/#Tools/claude-talk-to-figma-mcp/.github/workflows/test.yml +0 -36
- package/#Tools/claude-talk-to-figma-mcp/CHANGELOG.md +0 -88
- package/#Tools/claude-talk-to-figma-mcp/Dockerfile +0 -16
- package/#Tools/claude-talk-to-figma-mcp/LICENSE +0 -22
- package/#Tools/claude-talk-to-figma-mcp/TESTING.md +0 -216
- package/#Tools/claude-talk-to-figma-mcp/bun.lock +0 -964
- package/#Tools/claude-talk-to-figma-mcp/context/01/00-analisis.md +0 -151
- package/#Tools/claude-talk-to-figma-mcp/context/01/01-tools-refactor.md +0 -370
- package/#Tools/claude-talk-to-figma-mcp/context/01/02-tools-refactor-backlog.md +0 -253
- package/#Tools/claude-talk-to-figma-mcp/context/01/03-tools-refactor-test.md +0 -138
- package/#Tools/claude-talk-to-figma-mcp/context/01/04-tools-refactor-channel-error.md +0 -133
- package/#Tools/claude-talk-to-figma-mcp/context/01/04-tools-refactor-test-backlog.md +0 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/05-tools-refactor-four-tools-error.md +0 -356
- package/#Tools/claude-talk-to-figma-mcp/context/01/06-tools-refactor-four-tools-error-backlog.md +0 -425
- package/#Tools/claude-talk-to-figma-mcp/context/01/prompt-dev-nodejs-bun.md +0 -105
- package/#Tools/claude-talk-to-figma-mcp/context/01-prompt.md +0 -135
- package/#Tools/claude-talk-to-figma-mcp/context/02/00-analisis.md +0 -131
- package/#Tools/claude-talk-to-figma-mcp/context/02/01-plan.md +0 -162
- package/#Tools/claude-talk-to-figma-mcp/context/02/02-backlog.md +0 -241
- package/#Tools/claude-talk-to-figma-mcp/context/02-analisis.md +0 -202
- package/#Tools/claude-talk-to-figma-mcp/context/99-notas.md +0 -139
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-analisis.md +0 -221
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-claude-tests.md +0 -152
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-npm-publishing.md +0 -272
- package/#Tools/claude-talk-to-figma-mcp/images/claude-talk-to-figma.png +0 -0
- package/#Tools/claude-talk-to-figma-mcp/images/mcp-figma-plugin-configuration.png +0 -0
- package/#Tools/claude-talk-to-figma-mcp/jest.config.cjs +0 -25
- package/#Tools/claude-talk-to-figma-mcp/package.json +0 -67
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-es.md +0 -82
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-gal.md +0 -80
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-pt.md +0 -80
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-specialist.md +0 -80
- package/#Tools/claude-talk-to-figma-mcp/readme.md +0 -307
- package/#Tools/claude-talk-to-figma-mcp/scripts/configure-claude.js +0 -90
- package/#Tools/claude-talk-to-figma-mcp/scripts/setup.sh +0 -30
- package/#Tools/claude-talk-to-figma-mcp/scripts/test-integration.js +0 -339
- package/#Tools/claude-talk-to-figma-mcp/smithery.yaml +0 -26
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/code.js +0 -3295
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/manifest.json +0 -24
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/setcharacters.js +0 -215
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/ui.html +0 -656
- package/#Tools/claude-talk-to-figma-mcp/src/socket.ts +0 -349
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/bun.lock +0 -246
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/config/config.ts +0 -22
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/package.json +0 -31
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/prompts/index.ts +0 -297
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/server.ts +0 -62
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/component-tools.ts +0 -48
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/creation-tools.ts +0 -620
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/document-tools.ts +0 -390
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/index.ts +0 -28
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/modification-tools.ts +0 -408
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/text-tools.ts +0 -531
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tsconfig.json +0 -18
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/types/color.ts +0 -13
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/types/index.ts +0 -87
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/defaults.ts +0 -23
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/figma-helpers.ts +0 -142
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/logger.ts +0 -8
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/websocket.ts +0 -258
- package/#Tools/claude-talk-to-figma-mcp/tests/fixtures/test-data.ts +0 -32
- package/#Tools/claude-talk-to-figma-mcp/tests/integration/set-fill-color.test.ts +0 -309
- package/#Tools/claude-talk-to-figma-mcp/tests/integration/set-stroke-color.test.ts +0 -387
- package/#Tools/claude-talk-to-figma-mcp/tests/setup.ts +0 -7
- package/#Tools/claude-talk-to-figma-mcp/tests/unit/utils/defaults.test.ts +0 -131
- package/#Tools/claude-talk-to-figma-mcp/tsconfig.json +0 -17
- package/#Tools/claude-talk-to-figma-mcp/tsup.config.ts +0 -14
- package/#Tools/jwt creator/AuthKey_MZ7UQGFV2Q.p8 +0 -6
- package/#Tools/jwt creator/generate_apple_jwt.js +0 -18
- package/#Tools/jwt creator/node_modules/.package-lock.json +0 -145
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/.travis.yml +0 -4
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/LICENSE.txt +0 -12
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/README.md +0 -50
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/index.js +0 -41
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/package.json +0 -21
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/test.js +0 -42
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/CODEOWNERS +0 -1
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/LICENSE +0 -201
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/README.md +0 -65
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/package.json +0 -46
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.d.ts +0 -17
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js +0 -187
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js +0 -23
- package/#Tools/jwt creator/node_modules/jsonwebtoken/LICENSE +0 -21
- package/#Tools/jwt creator/node_modules/jsonwebtoken/README.md +0 -396
- package/#Tools/jwt creator/node_modules/jsonwebtoken/decode.js +0 -30
- package/#Tools/jwt creator/node_modules/jsonwebtoken/index.js +0 -8
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/JsonWebTokenError.js +0 -14
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/NotBeforeError.js +0 -13
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/TokenExpiredError.js +0 -13
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/asymmetricKeyDetailsSupported.js +0 -3
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/psSupported.js +0 -3
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/rsaPssKeyDetailsSupported.js +0 -3
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/timespan.js +0 -18
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js +0 -66
- package/#Tools/jwt creator/node_modules/jsonwebtoken/package.json +0 -71
- package/#Tools/jwt creator/node_modules/jsonwebtoken/sign.js +0 -253
- package/#Tools/jwt creator/node_modules/jsonwebtoken/verify.js +0 -263
- package/#Tools/jwt creator/node_modules/jwa/LICENSE +0 -17
- package/#Tools/jwt creator/node_modules/jwa/README.md +0 -150
- package/#Tools/jwt creator/node_modules/jwa/index.js +0 -266
- package/#Tools/jwt creator/node_modules/jwa/package.json +0 -37
- package/#Tools/jwt creator/node_modules/jws/CHANGELOG.md +0 -34
- package/#Tools/jwt creator/node_modules/jws/LICENSE +0 -17
- package/#Tools/jwt creator/node_modules/jws/index.js +0 -22
- package/#Tools/jwt creator/node_modules/jws/lib/data-stream.js +0 -55
- package/#Tools/jwt creator/node_modules/jws/lib/sign-stream.js +0 -78
- package/#Tools/jwt creator/node_modules/jws/lib/tostring.js +0 -10
- package/#Tools/jwt creator/node_modules/jws/lib/verify-stream.js +0 -120
- package/#Tools/jwt creator/node_modules/jws/package.json +0 -34
- package/#Tools/jwt creator/node_modules/jws/readme.md +0 -255
- package/#Tools/jwt creator/node_modules/lodash.includes/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.includes/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.includes/index.js +0 -745
- package/#Tools/jwt creator/node_modules/lodash.includes/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isboolean/LICENSE +0 -22
- package/#Tools/jwt creator/node_modules/lodash.isboolean/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isboolean/index.js +0 -70
- package/#Tools/jwt creator/node_modules/lodash.isboolean/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isinteger/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.isinteger/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isinteger/index.js +0 -265
- package/#Tools/jwt creator/node_modules/lodash.isinteger/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isnumber/LICENSE +0 -22
- package/#Tools/jwt creator/node_modules/lodash.isnumber/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isnumber/index.js +0 -79
- package/#Tools/jwt creator/node_modules/lodash.isnumber/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/index.js +0 -139
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isstring/LICENSE +0 -22
- package/#Tools/jwt creator/node_modules/lodash.isstring/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isstring/index.js +0 -95
- package/#Tools/jwt creator/node_modules/lodash.isstring/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.once/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.once/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.once/index.js +0 -294
- package/#Tools/jwt creator/node_modules/lodash.once/package.json +0 -17
- package/#Tools/jwt creator/node_modules/ms/index.js +0 -162
- package/#Tools/jwt creator/node_modules/ms/license.md +0 -21
- package/#Tools/jwt creator/node_modules/ms/package.json +0 -38
- package/#Tools/jwt creator/node_modules/ms/readme.md +0 -59
- package/#Tools/jwt creator/node_modules/safe-buffer/LICENSE +0 -21
- package/#Tools/jwt creator/node_modules/safe-buffer/README.md +0 -584
- package/#Tools/jwt creator/node_modules/safe-buffer/index.d.ts +0 -187
- package/#Tools/jwt creator/node_modules/safe-buffer/index.js +0 -65
- package/#Tools/jwt creator/node_modules/safe-buffer/package.json +0 -51
- package/#Tools/jwt creator/node_modules/semver/LICENSE +0 -15
- package/#Tools/jwt creator/node_modules/semver/README.md +0 -664
- package/#Tools/jwt creator/node_modules/semver/bin/semver.js +0 -191
- package/#Tools/jwt creator/node_modules/semver/classes/comparator.js +0 -143
- package/#Tools/jwt creator/node_modules/semver/classes/index.js +0 -7
- package/#Tools/jwt creator/node_modules/semver/classes/range.js +0 -556
- package/#Tools/jwt creator/node_modules/semver/classes/semver.js +0 -319
- package/#Tools/jwt creator/node_modules/semver/functions/clean.js +0 -8
- package/#Tools/jwt creator/node_modules/semver/functions/cmp.js +0 -54
- package/#Tools/jwt creator/node_modules/semver/functions/coerce.js +0 -62
- package/#Tools/jwt creator/node_modules/semver/functions/compare-build.js +0 -9
- package/#Tools/jwt creator/node_modules/semver/functions/compare-loose.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/compare.js +0 -7
- package/#Tools/jwt creator/node_modules/semver/functions/diff.js +0 -60
- package/#Tools/jwt creator/node_modules/semver/functions/eq.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/gt.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/gte.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/inc.js +0 -21
- package/#Tools/jwt creator/node_modules/semver/functions/lt.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/lte.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/major.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/minor.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/neq.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/parse.js +0 -18
- package/#Tools/jwt creator/node_modules/semver/functions/patch.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/prerelease.js +0 -8
- package/#Tools/jwt creator/node_modules/semver/functions/rcompare.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/rsort.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/satisfies.js +0 -12
- package/#Tools/jwt creator/node_modules/semver/functions/sort.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/valid.js +0 -8
- package/#Tools/jwt creator/node_modules/semver/index.js +0 -91
- package/#Tools/jwt creator/node_modules/semver/internal/constants.js +0 -37
- package/#Tools/jwt creator/node_modules/semver/internal/debug.js +0 -11
- package/#Tools/jwt creator/node_modules/semver/internal/identifiers.js +0 -25
- package/#Tools/jwt creator/node_modules/semver/internal/lrucache.js +0 -42
- package/#Tools/jwt creator/node_modules/semver/internal/parse-options.js +0 -17
- package/#Tools/jwt creator/node_modules/semver/internal/re.js +0 -223
- package/#Tools/jwt creator/node_modules/semver/package.json +0 -78
- package/#Tools/jwt creator/node_modules/semver/preload.js +0 -4
- package/#Tools/jwt creator/node_modules/semver/range.bnf +0 -16
- package/#Tools/jwt creator/node_modules/semver/ranges/gtr.js +0 -6
- package/#Tools/jwt creator/node_modules/semver/ranges/intersects.js +0 -9
- package/#Tools/jwt creator/node_modules/semver/ranges/ltr.js +0 -6
- package/#Tools/jwt creator/node_modules/semver/ranges/max-satisfying.js +0 -27
- package/#Tools/jwt creator/node_modules/semver/ranges/min-satisfying.js +0 -26
- package/#Tools/jwt creator/node_modules/semver/ranges/min-version.js +0 -63
- package/#Tools/jwt creator/node_modules/semver/ranges/outside.js +0 -82
- package/#Tools/jwt creator/node_modules/semver/ranges/simplify.js +0 -49
- package/#Tools/jwt creator/node_modules/semver/ranges/subset.js +0 -249
- package/#Tools/jwt creator/node_modules/semver/ranges/to-comparators.js +0 -10
- package/#Tools/jwt creator/node_modules/semver/ranges/valid.js +0 -13
- package/#Tools/jwt creator/package-lock.json +0 -150
- package/#Tools/jwt creator/package.json +0 -5
- package/#Tools/package.json +0 -94
- package/SuperClaude/.claude/commands/analyze.md +0 -36
- package/SuperClaude/.claude/commands/build.md +0 -35
- package/SuperClaude/.claude/commands/cleanup.md +0 -46
- package/SuperClaude/.claude/commands/deploy.md +0 -55
- package/SuperClaude/.claude/commands/design.md +0 -91
- package/SuperClaude/.claude/commands/dev-setup.md +0 -37
- package/SuperClaude/.claude/commands/document.md +0 -99
- package/SuperClaude/.claude/commands/estimate.md +0 -69
- package/SuperClaude/.claude/commands/explain.md +0 -85
- package/SuperClaude/.claude/commands/git.md +0 -47
- package/SuperClaude/.claude/commands/improve.md +0 -162
- package/SuperClaude/.claude/commands/index.md +0 -159
- package/SuperClaude/.claude/commands/load.md +0 -65
- package/SuperClaude/.claude/commands/migrate.md +0 -76
- package/SuperClaude/.claude/commands/scan.md +0 -163
- package/SuperClaude/.claude/commands/shared/ambiguity-check.yml +0 -40
- package/SuperClaude/.claude/commands/shared/audit.yml +0 -21
- package/SuperClaude/.claude/commands/shared/checkpoint.yml +0 -28
- package/SuperClaude/.claude/commands/shared/cleanup-patterns.yml +0 -107
- package/SuperClaude/.claude/commands/shared/command-memory.yml +0 -52
- package/SuperClaude/.claude/commands/shared/command-templates.yml +0 -167
- package/SuperClaude/.claude/commands/shared/config-validator.yml +0 -206
- package/SuperClaude/.claude/commands/shared/constants.yml +0 -311
- package/SuperClaude/.claude/commands/shared/documentation-dirs.yml +0 -134
- package/SuperClaude/.claude/commands/shared/error-handling.yml +0 -341
- package/SuperClaude/.claude/commands/shared/evidence.yml +0 -75
- package/SuperClaude/.claude/commands/shared/execution-lifecycle.yml +0 -277
- package/SuperClaude/.claude/commands/shared/git-operations.yml +0 -217
- package/SuperClaude/.claude/commands/shared/git-workflow.yml +0 -37
- package/SuperClaude/.claude/commands/shared/implementation.yml +0 -199
- package/SuperClaude/.claude/commands/shared/loading-config.yml +0 -73
- package/SuperClaude/.claude/commands/shared/mcp-flags.yml +0 -109
- package/SuperClaude/.claude/commands/shared/migration-report.md +0 -165
- package/SuperClaude/.claude/commands/shared/patterns.yml +0 -155
- package/SuperClaude/.claude/commands/shared/performance.yml +0 -317
- package/SuperClaude/.claude/commands/shared/planning-mode.yml +0 -51
- package/SuperClaude/.claude/commands/shared/research-first.yml +0 -278
- package/SuperClaude/.claude/commands/shared/session-recovery.yml +0 -144
- package/SuperClaude/.claude/commands/shared/severity-levels.yml +0 -252
- package/SuperClaude/.claude/commands/shared/task-system.yml +0 -380
- package/SuperClaude/.claude/commands/shared/task-ultracompressed.yml +0 -88
- package/SuperClaude/.claude/commands/shared/templates/feature-template.md +0 -59
- package/SuperClaude/.claude/commands/shared/templates/task-ultracompressed.md +0 -26
- package/SuperClaude/.claude/commands/shared/thinking-modes.yml +0 -61
- package/SuperClaude/.claude/commands/shared/ultracompressed.yml +0 -97
- package/SuperClaude/.claude/commands/shared/user-experience.yml +0 -208
- package/SuperClaude/.claude/commands/shared/validation.yml +0 -54
- package/SuperClaude/.claude/commands/shared/workflow-chains.yml +0 -138
- package/SuperClaude/.claude/commands/spawn.md +0 -106
- package/SuperClaude/.claude/commands/task.md +0 -110
- package/SuperClaude/.claude/commands/test.md +0 -67
- package/SuperClaude/.claude/commands/troubleshoot.md +0 -93
- package/SuperClaude/.github/ISSUE_TEMPLATE/bug_report.yml +0 -114
- package/SuperClaude/.github/ISSUE_TEMPLATE/feature_request.yml +0 -119
- package/SuperClaude/.github/ISSUE_TEMPLATE/question.yml +0 -87
- package/SuperClaude/.github/pull_request_template.md +0 -62
- package/SuperClaude/CHANGELOG.md +0 -109
- package/SuperClaude/CLAUDE.md +0 -95
- package/SuperClaude/CODE_OF_CONDUCT.md +0 -45
- package/SuperClaude/CONTRIBUTING.md +0 -225
- package/SuperClaude/Commands_Cheat_Sheet.md +0 -160
- package/SuperClaude/LICENSE +0 -21
- package/SuperClaude/MCP.md +0 -117
- package/SuperClaude/PERSONAS.md +0 -115
- package/SuperClaude/README.md +0 -249
- package/SuperClaude/RULES.md +0 -220
- package/SuperClaude/SECURITY.md +0 -91
- package/SuperClaude/install.sh +0 -296
- package/appiq-mcp installer/How-to.md +0 -250
- package/appiq-mcp installer/LICENSE +0 -21
- package/appiq-mcp installer/README.md +0 -235
- package/appiq-mcp installer/index.js +0 -672
- package/appiq-mcp installer/my_mcps.md +0 -105
- package/appiq-mcp installer/package-lock.json +0 -708
- package/appiq-mcp installer/package.json +0 -46
- package/appiq-mcp installer/test-install.bat +0 -60
- package/appiq-mcp installer/test-install.sh +0 -55
- package/appiq-mcp installer/test-load.js +0 -40
- package/bmad-core/agent-teams/team-flutter-mobile.yaml +0 -114
- package/bmad-core/agents/bmad-smart-launcher.md +0 -170
- package/bmad-core/agents/init-flow-po.md +0 -143
- package/bmad-core/checklists/security-validation-checklist.md +0 -332
- package/bmad-core/core-config.yaml.bak +0 -20
- package/bmad-core/data/backend-services-integration.md +0 -686
- package/bmad-core/data/shadcn-ui-integration.md +0 -388
- package/bmad-core/tasks/create-flutter-story.md +0 -197
- package/bmad-core/tasks/intelligent-epic-creation.md +0 -234
- package/bmad-core/tasks/smart-project-analysis.md +0 -289
- package/bmad-core/templates/flutter-mobile-prd-tmpl.yaml +0 -330
- package/bmad-core/templates/flutter-story-tmpl.yaml +0 -376
- package/bmad-core/templates/flutter-ui-spec-tmpl.yaml +0 -415
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.txt +0 -1530
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.txt +0 -322
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.txt +0 -692
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.txt +0 -382
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.txt +0 -665
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.txt +0 -1070
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.txt +0 -1494
- package/dist/expansion-packs/bmad-mobile-app-dev/teams/mobile-team-cross-platform.txt +0 -15613
- package/flutter/CLAUDE.md +0 -58
- package/flutter/punkt.claude/New Folder With Items/channel.md +0 -221
- package/flutter/punkt.claude/New Folder With Items/commands/add-translations.md +0 -12
- package/flutter/punkt.claude/New Folder With Items/commands/create-feature.md +0 -168
- package/flutter/punkt.claude/New Folder With Items/commands/explain-codebase.md +0 -1
- package/flutter/punkt.claude/New Folder With Items/commands/feature-business-logic.md +0 -551
- package/flutter/punkt.claude/New Folder With Items/commands/feature-data-layer.md +0 -924
- package/flutter/punkt.claude/New Folder With Items/commands/feature-domain-layer.md +0 -540
- package/flutter/punkt.claude/New Folder With Items/commands/feature-integration.md +0 -493
- package/flutter/punkt.claude/New Folder With Items/commands/feature-localization.md +0 -427
- package/flutter/punkt.claude/New Folder With Items/commands/feature-ui-layer.md +0 -300
- package/flutter/punkt.claude/New Folder With Items/commands/git-commit.md +0 -3
- package/flutter/punkt.claude/New Folder With Items/commands/search-web.md +0 -1
- package/flutter/punkt.claude/punkt.claude/channel.md +0 -225
- package/flutter/punkt.claude/punkt.claude/commands/add-translations.md +0 -60
- package/flutter/punkt.claude/punkt.claude/commands/bug-fix.md +0 -32
- package/flutter/punkt.claude/punkt.claude/commands/checkdev.md +0 -122
- package/flutter/punkt.claude/punkt.claude/commands/create-feature.md +0 -174
- package/flutter/punkt.claude/punkt.claude/commands/dev.md +0 -79
- package/flutter/punkt.claude/punkt.claude/commands/explain-codebase.md +0 -1
- package/flutter/punkt.claude/punkt.claude/commands/feature-business-logic.md +0 -430
- package/flutter/punkt.claude/punkt.claude/commands/feature-data-layer.md +0 -572
- package/flutter/punkt.claude/punkt.claude/commands/feature-domain-layer.md +0 -537
- package/flutter/punkt.claude/punkt.claude/commands/feature-integration.md +0 -493
- package/flutter/punkt.claude/punkt.claude/commands/feature-localization.md +0 -427
- package/flutter/punkt.claude/punkt.claude/commands/feature-ui-layer.md +0 -831
- package/flutter/punkt.claude/punkt.claude/commands/git-commit.md +0 -3
- package/flutter/punkt.claude/punkt.claude/commands/manage-translations.md +0 -433
- package/flutter/punkt.claude/punkt.claude/commands/search-web.md +0 -1
- package/flutter/punkt.claude/punkt.claude/developer_check.md +0 -121
- package/tools/appiq-installer.js +0 -2711
- package/tools/epic-solution-installer.js +0 -536
- package/tools/setup-ide-commands.js +0 -348
- package/tools/smart-installer.js +0 -592
- package/web/CLAUDE.md +0 -58
- /package/{#Tools/APPIQ-METHOD/.github → .github}/FUNDING.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/.github → .github}/ISSUE_TEMPLATE/bug_report.md +0 -0
- /package/{#Tools/APPIQ-METHOD/.github → .github}/ISSUE_TEMPLATE/feature_request.md +0 -0
- /package/{#Tools/APPIQ-METHOD/.github → .github}/workflows/release.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/.releaserc.json → .releaserc.json} +0 -0
- /package/{#Tools/APPIQ-METHOD/.vscode → .vscode}/settings.json +0 -0
- /package/{#Tools/APPIQ-METHOD/CHANGELOG.md → CHANGELOG.md} +0 -0
- /package/{#Tools/APPIQ-METHOD/CONTRIBUTING.md → CONTRIBUTING.md} +0 -0
- /package/{#Tools/APPIQ-METHOD/LICENSE → LICENSE} +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/tasks/create-doc.md +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/tasks/execute-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/utils/bmad-doc-template.md +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/utils/workflow-management.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/GUIDING-PRINCIPLES.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/core-architecture.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/expansion-packs.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/how-to-contribute-with-pull-requests.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/versioning-and-releases.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/versions.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/README.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agent-teams/flutter-mobile-team.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-cubit-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-data-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-domain-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-ui-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/shared-components-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/checklists/flutter-story-dod-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/data/flutter-development-guidelines.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/templates/flutter-mobile-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/workflows/flutter-ui-first-development.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-architect.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-designer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-developer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-sm.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/data/bmad-kb.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/data/development-guidelines.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/correct-course-game.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/create-game-story.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/validate-game-story.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/README.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/agents/infra-devops-platform.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/data/bmad-kb.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/tasks/review-infrastructure.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/tasks/validate-infrastructure.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -0
@@ -1,686 +0,0 @@
|
|
1
|
-
# Backend Services Integration Guide
|
2
|
-
|
3
|
-
## 📋 Overview
|
4
|
-
|
5
|
-
This guide provides comprehensive integration instructions for modern backend services including Firebase, Supabase, and traditional backend solutions with MCP tool integration for enhanced development workflows.
|
6
|
-
|
7
|
-
## 🔥 Firebase Integration
|
8
|
-
|
9
|
-
### Firebase Services Overview
|
10
|
-
|
11
|
-
Firebase provides a comprehensive suite of backend services:
|
12
|
-
- **Authentication**: Multi-provider authentication system
|
13
|
-
- **Firestore**: NoSQL document database with real-time updates
|
14
|
-
- **Realtime Database**: Real-time synchronized database
|
15
|
-
- **Storage**: File storage and management
|
16
|
-
- **Functions**: Serverless backend logic
|
17
|
-
- **Hosting**: Web application hosting
|
18
|
-
- **Analytics**: User behavior analytics
|
19
|
-
- **Crashlytics**: Crash reporting and analysis
|
20
|
-
|
21
|
-
### Firebase Setup
|
22
|
-
|
23
|
-
#### 1. Project Configuration
|
24
|
-
```javascript
|
25
|
-
// firebase.config.js
|
26
|
-
import { initializeApp } from 'firebase/app';
|
27
|
-
import { getAuth } from 'firebase/auth';
|
28
|
-
import { getFirestore } from 'firebase/firestore';
|
29
|
-
import { getStorage } from 'firebase/storage';
|
30
|
-
import { getFunctions } from 'firebase/functions';
|
31
|
-
|
32
|
-
const firebaseConfig = {
|
33
|
-
apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
|
34
|
-
authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
|
35
|
-
projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
|
36
|
-
storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
|
37
|
-
messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
|
38
|
-
appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID
|
39
|
-
};
|
40
|
-
|
41
|
-
// Initialize Firebase
|
42
|
-
const app = initializeApp(firebaseConfig);
|
43
|
-
|
44
|
-
// Initialize Firebase services
|
45
|
-
export const auth = getAuth(app);
|
46
|
-
export const db = getFirestore(app);
|
47
|
-
export const storage = getStorage(app);
|
48
|
-
export const functions = getFunctions(app);
|
49
|
-
|
50
|
-
export default app;
|
51
|
-
```
|
52
|
-
|
53
|
-
#### 2. Authentication Service
|
54
|
-
```typescript
|
55
|
-
// services/firebase-auth.service.ts
|
56
|
-
import {
|
57
|
-
signInWithEmailAndPassword,
|
58
|
-
createUserWithEmailAndPassword,
|
59
|
-
signOut,
|
60
|
-
onAuthStateChanged,
|
61
|
-
GoogleAuthProvider,
|
62
|
-
signInWithPopup
|
63
|
-
} from 'firebase/auth';
|
64
|
-
import { auth } from '../config/firebase.config';
|
65
|
-
|
66
|
-
export class FirebaseAuthService {
|
67
|
-
// Email/Password Authentication
|
68
|
-
async signInWithEmail(email: string, password: string) {
|
69
|
-
try {
|
70
|
-
const userCredential = await signInWithEmailAndPassword(auth, email, password);
|
71
|
-
return { user: userCredential.user, error: null };
|
72
|
-
} catch (error) {
|
73
|
-
return { user: null, error: error.message };
|
74
|
-
}
|
75
|
-
}
|
76
|
-
|
77
|
-
async signUpWithEmail(email: string, password: string) {
|
78
|
-
try {
|
79
|
-
const userCredential = await createUserWithEmailAndPassword(auth, email, password);
|
80
|
-
return { user: userCredential.user, error: null };
|
81
|
-
} catch (error) {
|
82
|
-
return { user: null, error: error.message };
|
83
|
-
}
|
84
|
-
}
|
85
|
-
|
86
|
-
// Google Authentication
|
87
|
-
async signInWithGoogle() {
|
88
|
-
try {
|
89
|
-
const provider = new GoogleAuthProvider();
|
90
|
-
const userCredential = await signInWithPopup(auth, provider);
|
91
|
-
return { user: userCredential.user, error: null };
|
92
|
-
} catch (error) {
|
93
|
-
return { user: null, error: error.message };
|
94
|
-
}
|
95
|
-
}
|
96
|
-
|
97
|
-
// Sign Out
|
98
|
-
async signOut() {
|
99
|
-
try {
|
100
|
-
await signOut(auth);
|
101
|
-
return { success: true, error: null };
|
102
|
-
} catch (error) {
|
103
|
-
return { success: false, error: error.message };
|
104
|
-
}
|
105
|
-
}
|
106
|
-
|
107
|
-
// Auth State Observer
|
108
|
-
onAuthStateChange(callback: (user: any) => void) {
|
109
|
-
return onAuthStateChanged(auth, callback);
|
110
|
-
}
|
111
|
-
}
|
112
|
-
```
|
113
|
-
|
114
|
-
#### 3. Firestore Database Service
|
115
|
-
```typescript
|
116
|
-
// services/firebase-firestore.service.ts
|
117
|
-
import {
|
118
|
-
collection,
|
119
|
-
doc,
|
120
|
-
getDocs,
|
121
|
-
getDoc,
|
122
|
-
addDoc,
|
123
|
-
updateDoc,
|
124
|
-
deleteDoc,
|
125
|
-
query,
|
126
|
-
where,
|
127
|
-
orderBy,
|
128
|
-
limit,
|
129
|
-
onSnapshot
|
130
|
-
} from 'firebase/firestore';
|
131
|
-
import { db } from '../config/firebase.config';
|
132
|
-
|
133
|
-
export class FirestoreService<T> {
|
134
|
-
constructor(private collectionName: string) {}
|
135
|
-
|
136
|
-
// Create document
|
137
|
-
async create(data: Omit<T, 'id'>): Promise<string> {
|
138
|
-
try {
|
139
|
-
const docRef = await addDoc(collection(db, this.collectionName), data);
|
140
|
-
return docRef.id;
|
141
|
-
} catch (error) {
|
142
|
-
throw new Error(`Failed to create document: ${error.message}`);
|
143
|
-
}
|
144
|
-
}
|
145
|
-
|
146
|
-
// Get all documents
|
147
|
-
async getAll(): Promise<T[]> {
|
148
|
-
try {
|
149
|
-
const querySnapshot = await getDocs(collection(db, this.collectionName));
|
150
|
-
return querySnapshot.docs.map(doc => ({
|
151
|
-
id: doc.id,
|
152
|
-
...doc.data()
|
153
|
-
} as T));
|
154
|
-
} catch (error) {
|
155
|
-
throw new Error(`Failed to get documents: ${error.message}`);
|
156
|
-
}
|
157
|
-
}
|
158
|
-
|
159
|
-
// Get document by ID
|
160
|
-
async getById(id: string): Promise<T | null> {
|
161
|
-
try {
|
162
|
-
const docRef = doc(db, this.collectionName, id);
|
163
|
-
const docSnap = await getDoc(docRef);
|
164
|
-
|
165
|
-
if (docSnap.exists()) {
|
166
|
-
return { id: docSnap.id, ...docSnap.data() } as T;
|
167
|
-
}
|
168
|
-
return null;
|
169
|
-
} catch (error) {
|
170
|
-
throw new Error(`Failed to get document: ${error.message}`);
|
171
|
-
}
|
172
|
-
}
|
173
|
-
|
174
|
-
// Update document
|
175
|
-
async update(id: string, data: Partial<T>): Promise<void> {
|
176
|
-
try {
|
177
|
-
const docRef = doc(db, this.collectionName, id);
|
178
|
-
await updateDoc(docRef, data);
|
179
|
-
} catch (error) {
|
180
|
-
throw new Error(`Failed to update document: ${error.message}`);
|
181
|
-
}
|
182
|
-
}
|
183
|
-
|
184
|
-
// Delete document
|
185
|
-
async delete(id: string): Promise<void> {
|
186
|
-
try {
|
187
|
-
const docRef = doc(db, this.collectionName, id);
|
188
|
-
await deleteDoc(docRef);
|
189
|
-
} catch (error) {
|
190
|
-
throw new Error(`Failed to delete document: ${error.message}`);
|
191
|
-
}
|
192
|
-
}
|
193
|
-
|
194
|
-
// Real-time listener
|
195
|
-
onSnapshot(callback: (data: T[]) => void) {
|
196
|
-
const q = collection(db, this.collectionName);
|
197
|
-
return onSnapshot(q, (querySnapshot) => {
|
198
|
-
const data = querySnapshot.docs.map(doc => ({
|
199
|
-
id: doc.id,
|
200
|
-
...doc.data()
|
201
|
-
} as T));
|
202
|
-
callback(data);
|
203
|
-
});
|
204
|
-
}
|
205
|
-
|
206
|
-
// Query with filters
|
207
|
-
async query(filters: { field: string; operator: any; value: any }[]): Promise<T[]> {
|
208
|
-
try {
|
209
|
-
let q = collection(db, this.collectionName);
|
210
|
-
|
211
|
-
filters.forEach(filter => {
|
212
|
-
q = query(q, where(filter.field, filter.operator, filter.value));
|
213
|
-
});
|
214
|
-
|
215
|
-
const querySnapshot = await getDocs(q);
|
216
|
-
return querySnapshot.docs.map(doc => ({
|
217
|
-
id: doc.id,
|
218
|
-
...doc.data()
|
219
|
-
} as T));
|
220
|
-
} catch (error) {
|
221
|
-
throw new Error(`Failed to query documents: ${error.message}`);
|
222
|
-
}
|
223
|
-
}
|
224
|
-
}
|
225
|
-
```
|
226
|
-
|
227
|
-
### Firebase MCP Integration
|
228
|
-
|
229
|
-
```typescript
|
230
|
-
// MCP Firebase integration
|
231
|
-
interface FirebaseMCPIntegration {
|
232
|
-
// Firebase project management
|
233
|
-
createProject(config: FirebaseConfig): Promise<ProjectResult>;
|
234
|
-
deployFunctions(functions: CloudFunction[]): Promise<DeploymentResult>;
|
235
|
-
configureFirestore(rules: FirestoreRules): Promise<ConfigResult>;
|
236
|
-
setupAuthentication(providers: AuthProvider[]): Promise<AuthSetupResult>;
|
237
|
-
|
238
|
-
// Development helpers
|
239
|
-
generateFirebaseConfig(): Promise<ConfigCode>;
|
240
|
-
createServiceBoilerplate(service: FirebaseService): Promise<ServiceCode>;
|
241
|
-
optimizeFirestoreQueries(queries: FirestoreQuery[]): Promise<OptimizationSuggestions>;
|
242
|
-
}
|
243
|
-
```
|
244
|
-
|
245
|
-
## 🚀 Supabase Integration
|
246
|
-
|
247
|
-
### Supabase Services Overview
|
248
|
-
|
249
|
-
Supabase provides an open-source Firebase alternative:
|
250
|
-
- **Database**: PostgreSQL with Row Level Security (RLS)
|
251
|
-
- **Authentication**: Multi-provider auth with JWT tokens
|
252
|
-
- **Storage**: File storage with CDN
|
253
|
-
- **Edge Functions**: Deno-based serverless functions
|
254
|
-
- **Real-time**: Real-time subscriptions
|
255
|
-
- **API**: Auto-generated REST and GraphQL APIs
|
256
|
-
|
257
|
-
### Supabase Setup
|
258
|
-
|
259
|
-
#### 1. Project Configuration
|
260
|
-
```typescript
|
261
|
-
// supabase.config.ts
|
262
|
-
import { createClient } from '@supabase/supabase-js';
|
263
|
-
|
264
|
-
const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL!;
|
265
|
-
const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!;
|
266
|
-
|
267
|
-
export const supabase = createClient(supabaseUrl, supabaseAnonKey, {
|
268
|
-
auth: {
|
269
|
-
autoRefreshToken: true,
|
270
|
-
persistSession: true,
|
271
|
-
detectSessionInUrl: true
|
272
|
-
}
|
273
|
-
});
|
274
|
-
|
275
|
-
// Type-safe database interface
|
276
|
-
export type Database = {
|
277
|
-
public: {
|
278
|
-
Tables: {
|
279
|
-
users: {
|
280
|
-
Row: {
|
281
|
-
id: string;
|
282
|
-
email: string;
|
283
|
-
name: string;
|
284
|
-
created_at: string;
|
285
|
-
updated_at: string;
|
286
|
-
};
|
287
|
-
Insert: {
|
288
|
-
id?: string;
|
289
|
-
email: string;
|
290
|
-
name: string;
|
291
|
-
created_at?: string;
|
292
|
-
updated_at?: string;
|
293
|
-
};
|
294
|
-
Update: {
|
295
|
-
id?: string;
|
296
|
-
email?: string;
|
297
|
-
name?: string;
|
298
|
-
updated_at?: string;
|
299
|
-
};
|
300
|
-
};
|
301
|
-
};
|
302
|
-
};
|
303
|
-
};
|
304
|
-
```
|
305
|
-
|
306
|
-
#### 2. Authentication Service
|
307
|
-
```typescript
|
308
|
-
// services/supabase-auth.service.ts
|
309
|
-
import { supabase } from '../config/supabase.config';
|
310
|
-
|
311
|
-
export class SupabaseAuthService {
|
312
|
-
// Email/Password Authentication
|
313
|
-
async signInWithEmail(email: string, password: string) {
|
314
|
-
try {
|
315
|
-
const { data, error } = await supabase.auth.signInWithPassword({
|
316
|
-
email,
|
317
|
-
password
|
318
|
-
});
|
319
|
-
return { user: data.user, session: data.session, error };
|
320
|
-
} catch (error) {
|
321
|
-
return { user: null, session: null, error: error.message };
|
322
|
-
}
|
323
|
-
}
|
324
|
-
|
325
|
-
async signUpWithEmail(email: string, password: string) {
|
326
|
-
try {
|
327
|
-
const { data, error } = await supabase.auth.signUp({
|
328
|
-
email,
|
329
|
-
password
|
330
|
-
});
|
331
|
-
return { user: data.user, session: data.session, error };
|
332
|
-
} catch (error) {
|
333
|
-
return { user: null, session: null, error: error.message };
|
334
|
-
}
|
335
|
-
}
|
336
|
-
|
337
|
-
// OAuth Authentication
|
338
|
-
async signInWithProvider(provider: 'google' | 'github' | 'discord') {
|
339
|
-
try {
|
340
|
-
const { data, error } = await supabase.auth.signInWithOAuth({
|
341
|
-
provider,
|
342
|
-
options: {
|
343
|
-
redirectTo: `${window.location.origin}/auth/callback`
|
344
|
-
}
|
345
|
-
});
|
346
|
-
return { data, error };
|
347
|
-
} catch (error) {
|
348
|
-
return { data: null, error: error.message };
|
349
|
-
}
|
350
|
-
}
|
351
|
-
|
352
|
-
// Sign Out
|
353
|
-
async signOut() {
|
354
|
-
try {
|
355
|
-
const { error } = await supabase.auth.signOut();
|
356
|
-
return { success: !error, error };
|
357
|
-
} catch (error) {
|
358
|
-
return { success: false, error: error.message };
|
359
|
-
}
|
360
|
-
}
|
361
|
-
|
362
|
-
// Get current session
|
363
|
-
async getSession() {
|
364
|
-
try {
|
365
|
-
const { data: { session }, error } = await supabase.auth.getSession();
|
366
|
-
return { session, error };
|
367
|
-
} catch (error) {
|
368
|
-
return { session: null, error: error.message };
|
369
|
-
}
|
370
|
-
}
|
371
|
-
|
372
|
-
// Auth state change listener
|
373
|
-
onAuthStateChange(callback: (event: string, session: any) => void) {
|
374
|
-
return supabase.auth.onAuthStateChange(callback);
|
375
|
-
}
|
376
|
-
}
|
377
|
-
```
|
378
|
-
|
379
|
-
#### 3. Database Service
|
380
|
-
```typescript
|
381
|
-
// services/supabase-database.service.ts
|
382
|
-
import { supabase } from '../config/supabase.config';
|
383
|
-
import type { Database } from '../config/supabase.config';
|
384
|
-
|
385
|
-
type Tables = Database['public']['Tables'];
|
386
|
-
|
387
|
-
export class SupabaseService<T extends keyof Tables> {
|
388
|
-
constructor(private tableName: T) {}
|
389
|
-
|
390
|
-
// Create record
|
391
|
-
async create(data: Tables[T]['Insert']) {
|
392
|
-
try {
|
393
|
-
const { data: result, error } = await supabase
|
394
|
-
.from(this.tableName)
|
395
|
-
.insert(data)
|
396
|
-
.select()
|
397
|
-
.single();
|
398
|
-
|
399
|
-
if (error) throw error;
|
400
|
-
return { data: result, error: null };
|
401
|
-
} catch (error) {
|
402
|
-
return { data: null, error: error.message };
|
403
|
-
}
|
404
|
-
}
|
405
|
-
|
406
|
-
// Get all records
|
407
|
-
async getAll() {
|
408
|
-
try {
|
409
|
-
const { data, error } = await supabase
|
410
|
-
.from(this.tableName)
|
411
|
-
.select('*');
|
412
|
-
|
413
|
-
if (error) throw error;
|
414
|
-
return { data, error: null };
|
415
|
-
} catch (error) {
|
416
|
-
return { data: null, error: error.message };
|
417
|
-
}
|
418
|
-
}
|
419
|
-
|
420
|
-
// Get record by ID
|
421
|
-
async getById(id: string) {
|
422
|
-
try {
|
423
|
-
const { data, error } = await supabase
|
424
|
-
.from(this.tableName)
|
425
|
-
.select('*')
|
426
|
-
.eq('id', id)
|
427
|
-
.single();
|
428
|
-
|
429
|
-
if (error) throw error;
|
430
|
-
return { data, error: null };
|
431
|
-
} catch (error) {
|
432
|
-
return { data: null, error: error.message };
|
433
|
-
}
|
434
|
-
}
|
435
|
-
|
436
|
-
// Update record
|
437
|
-
async update(id: string, data: Tables[T]['Update']) {
|
438
|
-
try {
|
439
|
-
const { data: result, error } = await supabase
|
440
|
-
.from(this.tableName)
|
441
|
-
.update(data)
|
442
|
-
.eq('id', id)
|
443
|
-
.select()
|
444
|
-
.single();
|
445
|
-
|
446
|
-
if (error) throw error;
|
447
|
-
return { data: result, error: null };
|
448
|
-
} catch (error) {
|
449
|
-
return { data: null, error: error.message };
|
450
|
-
}
|
451
|
-
}
|
452
|
-
|
453
|
-
// Delete record
|
454
|
-
async delete(id: string) {
|
455
|
-
try {
|
456
|
-
const { error } = await supabase
|
457
|
-
.from(this.tableName)
|
458
|
-
.delete()
|
459
|
-
.eq('id', id);
|
460
|
-
|
461
|
-
if (error) throw error;
|
462
|
-
return { success: true, error: null };
|
463
|
-
} catch (error) {
|
464
|
-
return { success: false, error: error.message };
|
465
|
-
}
|
466
|
-
}
|
467
|
-
|
468
|
-
// Real-time subscription
|
469
|
-
subscribe(callback: (payload: any) => void) {
|
470
|
-
return supabase
|
471
|
-
.channel(`public:${this.tableName}`)
|
472
|
-
.on('postgres_changes',
|
473
|
-
{ event: '*', schema: 'public', table: this.tableName },
|
474
|
-
callback
|
475
|
-
)
|
476
|
-
.subscribe();
|
477
|
-
}
|
478
|
-
|
479
|
-
// Query with filters
|
480
|
-
async query(filters: { column: string; operator: string; value: any }[]) {
|
481
|
-
try {
|
482
|
-
let query = supabase.from(this.tableName).select('*');
|
483
|
-
|
484
|
-
filters.forEach(filter => {
|
485
|
-
query = query.filter(filter.column, filter.operator, filter.value);
|
486
|
-
});
|
487
|
-
|
488
|
-
const { data, error } = await query;
|
489
|
-
if (error) throw error;
|
490
|
-
return { data, error: null };
|
491
|
-
} catch (error) {
|
492
|
-
return { data: null, error: error.message };
|
493
|
-
}
|
494
|
-
}
|
495
|
-
}
|
496
|
-
```
|
497
|
-
|
498
|
-
### Supabase MCP Integration
|
499
|
-
|
500
|
-
```typescript
|
501
|
-
// MCP Supabase integration
|
502
|
-
interface SupabaseMCPIntegration {
|
503
|
-
// Project management
|
504
|
-
createProject(config: SupabaseConfig): Promise<ProjectResult>;
|
505
|
-
generateTypes(databaseUrl: string): Promise<TypeDefinitions>;
|
506
|
-
setupRLS(policies: RLSPolicy[]): Promise<PolicyResult>;
|
507
|
-
deployEdgeFunctions(functions: EdgeFunction[]): Promise<DeploymentResult>;
|
508
|
-
|
509
|
-
// Development helpers
|
510
|
-
generateSupabaseClient(): Promise<ClientCode>;
|
511
|
-
createServiceBoilerplate(table: string): Promise<ServiceCode>;
|
512
|
-
optimizeQueries(queries: SupabaseQuery[]): Promise<OptimizationSuggestions>;
|
513
|
-
}
|
514
|
-
```
|
515
|
-
|
516
|
-
## 🏗️ Traditional Backend Integration
|
517
|
-
|
518
|
-
### Node.js + Express Setup
|
519
|
-
|
520
|
-
```typescript
|
521
|
-
// server.ts
|
522
|
-
import express from 'express';
|
523
|
-
import cors from 'cors';
|
524
|
-
import helmet from 'helmet';
|
525
|
-
import rateLimit from 'express-rate-limit';
|
526
|
-
import { authRouter } from './routes/auth.routes';
|
527
|
-
import { userRouter } from './routes/user.routes';
|
528
|
-
|
529
|
-
const app = express();
|
530
|
-
|
531
|
-
// Security middleware
|
532
|
-
app.use(helmet());
|
533
|
-
app.use(cors({
|
534
|
-
origin: process.env.FRONTEND_URL,
|
535
|
-
credentials: true
|
536
|
-
}));
|
537
|
-
|
538
|
-
// Rate limiting
|
539
|
-
const limiter = rateLimit({
|
540
|
-
windowMs: 15 * 60 * 1000, // 15 minutes
|
541
|
-
max: 100 // limit each IP to 100 requests per windowMs
|
542
|
-
});
|
543
|
-
app.use(limiter);
|
544
|
-
|
545
|
-
// Body parsing
|
546
|
-
app.use(express.json({ limit: '10mb' }));
|
547
|
-
app.use(express.urlencoded({ extended: true }));
|
548
|
-
|
549
|
-
// Routes
|
550
|
-
app.use('/api/auth', authRouter);
|
551
|
-
app.use('/api/users', userRouter);
|
552
|
-
|
553
|
-
// Error handling middleware
|
554
|
-
app.use((err: any, req: any, res: any, next: any) => {
|
555
|
-
console.error(err.stack);
|
556
|
-
res.status(500).json({ error: 'Something went wrong!' });
|
557
|
-
});
|
558
|
-
|
559
|
-
const PORT = process.env.PORT || 3001;
|
560
|
-
app.listen(PORT, () => {
|
561
|
-
console.log(`Server running on port ${PORT}`);
|
562
|
-
});
|
563
|
-
```
|
564
|
-
|
565
|
-
### Database Integration (PostgreSQL)
|
566
|
-
|
567
|
-
```typescript
|
568
|
-
// database/connection.ts
|
569
|
-
import { Pool } from 'pg';
|
570
|
-
|
571
|
-
const pool = new Pool({
|
572
|
-
user: process.env.DB_USER,
|
573
|
-
host: process.env.DB_HOST,
|
574
|
-
database: process.env.DB_NAME,
|
575
|
-
password: process.env.DB_PASSWORD,
|
576
|
-
port: parseInt(process.env.DB_PORT || '5432'),
|
577
|
-
ssl: process.env.NODE_ENV === 'production' ? { rejectUnauthorized: false } : false
|
578
|
-
});
|
579
|
-
|
580
|
-
export class DatabaseService {
|
581
|
-
async query(text: string, params?: any[]) {
|
582
|
-
const client = await pool.connect();
|
583
|
-
try {
|
584
|
-
const result = await client.query(text, params);
|
585
|
-
return result;
|
586
|
-
} finally {
|
587
|
-
client.release();
|
588
|
-
}
|
589
|
-
}
|
590
|
-
|
591
|
-
async transaction(queries: { text: string; params?: any[] }[]) {
|
592
|
-
const client = await pool.connect();
|
593
|
-
try {
|
594
|
-
await client.query('BEGIN');
|
595
|
-
const results = [];
|
596
|
-
|
597
|
-
for (const query of queries) {
|
598
|
-
const result = await client.query(query.text, query.params);
|
599
|
-
results.push(result);
|
600
|
-
}
|
601
|
-
|
602
|
-
await client.query('COMMIT');
|
603
|
-
return results;
|
604
|
-
} catch (error) {
|
605
|
-
await client.query('ROLLBACK');
|
606
|
-
throw error;
|
607
|
-
} finally {
|
608
|
-
client.release();
|
609
|
-
}
|
610
|
-
}
|
611
|
-
}
|
612
|
-
```
|
613
|
-
|
614
|
-
## 🔧 MCP Tool Integration
|
615
|
-
|
616
|
-
### Backend Service Selection
|
617
|
-
|
618
|
-
```typescript
|
619
|
-
// MCP integration for backend service selection
|
620
|
-
interface BackendServiceMCP {
|
621
|
-
analyzeRequirements(requirements: ProjectRequirements): Promise<ServiceRecommendation>;
|
622
|
-
compareServices(services: BackendService[]): Promise<ComparisonMatrix>;
|
623
|
-
generateIntegration(service: BackendService): Promise<IntegrationCode>;
|
624
|
-
optimizeConfiguration(config: ServiceConfig): Promise<OptimizedConfig>;
|
625
|
-
}
|
626
|
-
|
627
|
-
// Usage example
|
628
|
-
const mcp = new BackendServiceMCP();
|
629
|
-
|
630
|
-
const recommendation = await mcp.analyzeRequirements({
|
631
|
-
scalability: 'high',
|
632
|
-
realtime: true,
|
633
|
-
authentication: 'multi-provider',
|
634
|
-
database: 'relational',
|
635
|
-
budget: 'medium'
|
636
|
-
});
|
637
|
-
|
638
|
-
// Recommendation might suggest Supabase for this combination
|
639
|
-
```
|
640
|
-
|
641
|
-
### Code Generation
|
642
|
-
|
643
|
-
```typescript
|
644
|
-
// Automated service integration code generation
|
645
|
-
interface CodeGenerationMCP {
|
646
|
-
generateAuthService(provider: AuthProvider): Promise<ServiceCode>;
|
647
|
-
generateDatabaseService(schema: DatabaseSchema): Promise<ServiceCode>;
|
648
|
-
generateAPIRoutes(endpoints: APIEndpoint[]): Promise<RouteCode>;
|
649
|
-
generateMigrations(changes: SchemaChange[]): Promise<MigrationCode>;
|
650
|
-
}
|
651
|
-
```
|
652
|
-
|
653
|
-
## 📋 Best Practices
|
654
|
-
|
655
|
-
### Security
|
656
|
-
- **Environment Variables**: Store sensitive data in environment variables
|
657
|
-
- **Authentication**: Implement proper JWT token management
|
658
|
-
- **Authorization**: Use Row Level Security (RLS) for database access
|
659
|
-
- **Input Validation**: Validate all inputs on both client and server
|
660
|
-
- **Rate Limiting**: Implement rate limiting to prevent abuse
|
661
|
-
- **HTTPS**: Always use HTTPS in production
|
662
|
-
- **CORS**: Configure CORS properly for your domain
|
663
|
-
|
664
|
-
### Performance
|
665
|
-
- **Caching**: Implement caching strategies for frequently accessed data
|
666
|
-
- **Database Indexing**: Create proper database indexes
|
667
|
-
- **Connection Pooling**: Use connection pooling for database connections
|
668
|
-
- **CDN**: Use CDN for static assets
|
669
|
-
- **Compression**: Enable gzip compression
|
670
|
-
- **Monitoring**: Implement proper monitoring and logging
|
671
|
-
|
672
|
-
### Development Workflow
|
673
|
-
- **Type Safety**: Use TypeScript for type safety
|
674
|
-
- **Error Handling**: Implement comprehensive error handling
|
675
|
-
- **Testing**: Write unit and integration tests
|
676
|
-
- **Documentation**: Document APIs with OpenAPI/Swagger
|
677
|
-
- **Version Control**: Use semantic versioning for APIs
|
678
|
-
- **CI/CD**: Implement automated testing and deployment
|
679
|
-
|
680
|
-
### Cost Optimization
|
681
|
-
- **Resource Monitoring**: Monitor resource usage and costs
|
682
|
-
- **Auto-scaling**: Implement auto-scaling for variable loads
|
683
|
-
- **Cleanup**: Regular cleanup of unused resources
|
684
|
-
- **Optimization**: Regular performance and cost optimization reviews
|
685
|
-
|
686
|
-
This comprehensive guide ensures proper integration of modern backend services with the BMAD framework, providing developers with the tools and knowledge needed to build scalable, secure, and maintainable applications.
|