@funnycode/myclaude 0.1.72 → 0.1.74
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/LICENSE +21 -21
- package/dist/myclaude.js +14143 -9007
- package/dist/myclaude.mjs +14143 -9007
- package/package.json +128 -125
- package/seed/marketplaces/ecc/.claude/commands/add-language-rules.md +39 -0
- package/seed/marketplaces/ecc/.claude/commands/database-migration.md +36 -0
- package/seed/marketplaces/ecc/.claude/commands/feature-development.md +38 -0
- package/seed/marketplaces/ecc/.claude/ecc-tools.json +334 -0
- package/seed/marketplaces/ecc/.claude/enterprise/controls.md +15 -0
- package/seed/marketplaces/ecc/.claude/homunculus/instincts/inherited/everything-claude-code-instincts.yaml +162 -0
- package/seed/marketplaces/ecc/.claude/identity.json +14 -0
- package/seed/marketplaces/ecc/.claude/package-manager.json +4 -0
- package/seed/marketplaces/ecc/.claude/research/everything-claude-code-research-playbook.md +21 -0
- package/seed/marketplaces/ecc/.claude/rules/everything-claude-code-guardrails.md +43 -0
- package/seed/marketplaces/ecc/.claude/rules/node.md +56 -0
- package/seed/marketplaces/ecc/.claude/skills/everything-claude-code/SKILL.md +442 -0
- package/seed/marketplaces/ecc/.claude/team/everything-claude-code-team-config.json +15 -0
- package/seed/marketplaces/ecc/.opencode/package-lock.json +169 -169
- package/seed/marketplaces/ecc/.vscode/settings.json +17 -0
- package/seed/marketplaces/ecc/commands/aside.md +164 -164
- package/seed/marketplaces/ecc/commands/auto-update.md +28 -28
- package/seed/marketplaces/ecc/commands/build-fix.md +66 -66
- package/seed/marketplaces/ecc/commands/checkpoint.md +78 -78
- package/seed/marketplaces/ecc/commands/code-review.md +289 -289
- package/seed/marketplaces/ecc/commands/cost-report.md +107 -107
- package/seed/marketplaces/ecc/commands/cpp-build.md +173 -173
- package/seed/marketplaces/ecc/commands/cpp-review.md +132 -132
- package/seed/marketplaces/ecc/commands/cpp-test.md +251 -251
- package/seed/marketplaces/ecc/commands/ecc-guide.md +93 -93
- package/seed/marketplaces/ecc/commands/evolve.md +178 -178
- package/seed/marketplaces/ecc/commands/fastapi-review.md +39 -39
- package/seed/marketplaces/ecc/commands/feature-dev.md +49 -49
- package/seed/marketplaces/ecc/commands/flutter-build.md +164 -164
- package/seed/marketplaces/ecc/commands/flutter-review.md +116 -116
- package/seed/marketplaces/ecc/commands/flutter-test.md +144 -144
- package/seed/marketplaces/ecc/commands/gan-build.md +103 -103
- package/seed/marketplaces/ecc/commands/gan-design.md +39 -39
- package/seed/marketplaces/ecc/commands/go-build.md +183 -183
- package/seed/marketplaces/ecc/commands/go-review.md +148 -148
- package/seed/marketplaces/ecc/commands/go-test.md +268 -268
- package/seed/marketplaces/ecc/commands/gradle-build.md +70 -70
- package/seed/marketplaces/ecc/commands/harness-audit.md +84 -84
- package/seed/marketplaces/ecc/commands/hookify-configure.md +14 -14
- package/seed/marketplaces/ecc/commands/hookify-help.md +46 -46
- package/seed/marketplaces/ecc/commands/hookify-list.md +21 -21
- package/seed/marketplaces/ecc/commands/hookify.md +50 -50
- package/seed/marketplaces/ecc/commands/instinct-export.md +66 -66
- package/seed/marketplaces/ecc/commands/instinct-import.md +114 -114
- package/seed/marketplaces/ecc/commands/instinct-status.md +59 -59
- package/seed/marketplaces/ecc/commands/jira.md +106 -106
- package/seed/marketplaces/ecc/commands/kotlin-build.md +174 -174
- package/seed/marketplaces/ecc/commands/kotlin-review.md +140 -140
- package/seed/marketplaces/ecc/commands/kotlin-test.md +312 -312
- package/seed/marketplaces/ecc/commands/learn-eval.md +116 -116
- package/seed/marketplaces/ecc/commands/learn.md +74 -74
- package/seed/marketplaces/ecc/commands/loop-start.md +36 -36
- package/seed/marketplaces/ecc/commands/loop-status.md +77 -77
- package/seed/marketplaces/ecc/commands/marketing-campaign.md +129 -129
- package/seed/marketplaces/ecc/commands/model-route.md +30 -30
- package/seed/marketplaces/ecc/commands/multi-backend.md +162 -162
- package/seed/marketplaces/ecc/commands/multi-execute.md +319 -319
- package/seed/marketplaces/ecc/commands/multi-frontend.md +162 -162
- package/seed/marketplaces/ecc/commands/multi-plan.md +272 -272
- package/seed/marketplaces/ecc/commands/multi-workflow.md +195 -195
- package/seed/marketplaces/ecc/commands/plan-prd.md +160 -160
- package/seed/marketplaces/ecc/commands/plan.md +200 -200
- package/seed/marketplaces/ecc/commands/pm2.md +276 -276
- package/seed/marketplaces/ecc/commands/pr.md +184 -184
- package/seed/marketplaces/ecc/commands/project-init.md +86 -86
- package/seed/marketplaces/ecc/commands/projects.md +39 -39
- package/seed/marketplaces/ecc/commands/promote.md +41 -41
- package/seed/marketplaces/ecc/commands/prp-commit.md +112 -112
- package/seed/marketplaces/ecc/commands/prp-implement.md +385 -385
- package/seed/marketplaces/ecc/commands/prp-plan.md +502 -502
- package/seed/marketplaces/ecc/commands/prp-pr.md +184 -184
- package/seed/marketplaces/ecc/commands/prp-prd.md +447 -447
- package/seed/marketplaces/ecc/commands/prune.md +31 -31
- package/seed/marketplaces/ecc/commands/python-review.md +297 -297
- package/seed/marketplaces/ecc/commands/quality-gate.md +33 -33
- package/seed/marketplaces/ecc/commands/refactor-clean.md +84 -84
- package/seed/marketplaces/ecc/commands/resume-session.md +156 -156
- package/seed/marketplaces/ecc/commands/review-pr.md +37 -37
- package/seed/marketplaces/ecc/commands/rust-build.md +187 -187
- package/seed/marketplaces/ecc/commands/rust-review.md +142 -142
- package/seed/marketplaces/ecc/commands/rust-test.md +308 -308
- package/seed/marketplaces/ecc/commands/santa-loop.md +175 -175
- package/seed/marketplaces/ecc/commands/save-session.md +275 -275
- package/seed/marketplaces/ecc/commands/security-scan.md +92 -92
- package/seed/marketplaces/ecc/commands/sessions.md +339 -339
- package/seed/marketplaces/ecc/commands/setup-pm.md +80 -80
- package/seed/marketplaces/ecc/commands/skill-create.md +174 -174
- package/seed/marketplaces/ecc/commands/skill-health.md +54 -54
- package/seed/marketplaces/ecc/commands/test-coverage.md +73 -73
- package/seed/marketplaces/ecc/commands/update-codemaps.md +76 -76
- package/seed/marketplaces/ecc/commands/update-docs.md +88 -88
- package/seed/marketplaces/ecc/skills/accessibility/SKILL.md +146 -146
- package/seed/marketplaces/ecc/skills/agent-architecture-audit/SKILL.md +256 -256
- package/seed/marketplaces/ecc/skills/agent-eval/SKILL.md +145 -145
- package/seed/marketplaces/ecc/skills/agent-harness-construction/SKILL.md +73 -73
- package/seed/marketplaces/ecc/skills/agent-introspection-debugging/SKILL.md +153 -153
- package/seed/marketplaces/ecc/skills/agent-payment-x402/SKILL.md +224 -224
- package/seed/marketplaces/ecc/skills/agent-sort/SKILL.md +215 -215
- package/seed/marketplaces/ecc/skills/agentic-engineering/SKILL.md +63 -63
- package/seed/marketplaces/ecc/skills/agentic-os/SKILL.md +387 -387
- package/seed/marketplaces/ecc/skills/ai-first-engineering/SKILL.md +51 -51
- package/seed/marketplaces/ecc/skills/ai-regression-testing/SKILL.md +385 -385
- package/seed/marketplaces/ecc/skills/android-clean-architecture/SKILL.md +339 -339
- package/seed/marketplaces/ecc/skills/angular-developer/SKILL.md +154 -154
- package/seed/marketplaces/ecc/skills/angular-developer/references/angular-animations.md +160 -160
- package/seed/marketplaces/ecc/skills/angular-developer/references/angular-aria.md +410 -410
- package/seed/marketplaces/ecc/skills/angular-developer/references/cli.md +86 -86
- package/seed/marketplaces/ecc/skills/angular-developer/references/component-harnesses.md +59 -59
- package/seed/marketplaces/ecc/skills/angular-developer/references/component-styling.md +91 -91
- package/seed/marketplaces/ecc/skills/angular-developer/references/components.md +117 -117
- package/seed/marketplaces/ecc/skills/angular-developer/references/creating-services.md +97 -97
- package/seed/marketplaces/ecc/skills/angular-developer/references/data-resolvers.md +69 -69
- package/seed/marketplaces/ecc/skills/angular-developer/references/define-routes.md +67 -67
- package/seed/marketplaces/ecc/skills/angular-developer/references/defining-providers.md +72 -72
- package/seed/marketplaces/ecc/skills/angular-developer/references/di-fundamentals.md +120 -120
- package/seed/marketplaces/ecc/skills/angular-developer/references/e2e-testing.md +56 -56
- package/seed/marketplaces/ecc/skills/angular-developer/references/effects.md +83 -83
- package/seed/marketplaces/ecc/skills/angular-developer/references/hierarchical-injectors.md +43 -43
- package/seed/marketplaces/ecc/skills/angular-developer/references/host-elements.md +80 -80
- package/seed/marketplaces/ecc/skills/angular-developer/references/injection-context.md +63 -63
- package/seed/marketplaces/ecc/skills/angular-developer/references/inputs.md +101 -101
- package/seed/marketplaces/ecc/skills/angular-developer/references/linked-signal.md +59 -59
- package/seed/marketplaces/ecc/skills/angular-developer/references/loading-strategies.md +61 -61
- package/seed/marketplaces/ecc/skills/angular-developer/references/mcp.md +108 -108
- package/seed/marketplaces/ecc/skills/angular-developer/references/navigate-to-routes.md +69 -69
- package/seed/marketplaces/ecc/skills/angular-developer/references/outputs.md +86 -86
- package/seed/marketplaces/ecc/skills/angular-developer/references/reactive-forms.md +122 -122
- package/seed/marketplaces/ecc/skills/angular-developer/references/rendering-strategies.md +44 -44
- package/seed/marketplaces/ecc/skills/angular-developer/references/resource.md +77 -77
- package/seed/marketplaces/ecc/skills/angular-developer/references/route-animations.md +56 -56
- package/seed/marketplaces/ecc/skills/angular-developer/references/route-guards.md +52 -52
- package/seed/marketplaces/ecc/skills/angular-developer/references/router-lifecycle.md +45 -45
- package/seed/marketplaces/ecc/skills/angular-developer/references/router-testing.md +87 -87
- package/seed/marketplaces/ecc/skills/angular-developer/references/show-routes-with-outlets.md +68 -68
- package/seed/marketplaces/ecc/skills/angular-developer/references/signal-forms.md +795 -795
- package/seed/marketplaces/ecc/skills/angular-developer/references/signals-overview.md +94 -94
- package/seed/marketplaces/ecc/skills/angular-developer/references/tailwind-css.md +69 -69
- package/seed/marketplaces/ecc/skills/angular-developer/references/template-driven-forms.md +114 -114
- package/seed/marketplaces/ecc/skills/angular-developer/references/testing-fundamentals.md +65 -65
- package/seed/marketplaces/ecc/skills/api-connector-builder/SKILL.md +120 -120
- package/seed/marketplaces/ecc/skills/api-design/SKILL.md +523 -523
- package/seed/marketplaces/ecc/skills/architecture-decision-records/SKILL.md +179 -179
- package/seed/marketplaces/ecc/skills/article-writing/SKILL.md +79 -79
- package/seed/marketplaces/ecc/skills/automation-audit-ops/SKILL.md +142 -142
- package/seed/marketplaces/ecc/skills/autonomous-agent-harness/SKILL.md +273 -273
- package/seed/marketplaces/ecc/skills/autonomous-loops/SKILL.md +610 -610
- package/seed/marketplaces/ecc/skills/backend-patterns/SKILL.md +561 -561
- package/seed/marketplaces/ecc/skills/benchmark/SKILL.md +93 -93
- package/seed/marketplaces/ecc/skills/benchmark-optimization-loop/SKILL.md +69 -69
- package/seed/marketplaces/ecc/skills/blender-motion-state-inspection/SKILL.md +164 -164
- package/seed/marketplaces/ecc/skills/blueprint/SKILL.md +105 -105
- package/seed/marketplaces/ecc/skills/brand-voice/SKILL.md +97 -97
- package/seed/marketplaces/ecc/skills/brand-voice/references/voice-profile-schema.md +55 -55
- package/seed/marketplaces/ecc/skills/browser-qa/SKILL.md +87 -87
- package/seed/marketplaces/ecc/skills/bun-runtime/SKILL.md +84 -84
- package/seed/marketplaces/ecc/skills/canary-watch/SKILL.md +107 -107
- package/seed/marketplaces/ecc/skills/carrier-relationship-management/SKILL.md +212 -212
- package/seed/marketplaces/ecc/skills/cisco-ios-patterns/SKILL.md +163 -163
- package/seed/marketplaces/ecc/skills/ck/SKILL.md +147 -147
- package/seed/marketplaces/ecc/skills/ck/commands/forget.mjs +44 -44
- package/seed/marketplaces/ecc/skills/ck/commands/info.mjs +24 -24
- package/seed/marketplaces/ecc/skills/ck/commands/init.mjs +143 -143
- package/seed/marketplaces/ecc/skills/ck/commands/list.mjs +40 -40
- package/seed/marketplaces/ecc/skills/ck/commands/migrate.mjs +202 -202
- package/seed/marketplaces/ecc/skills/ck/commands/resume.mjs +36 -36
- package/seed/marketplaces/ecc/skills/ck/commands/save.mjs +210 -210
- package/seed/marketplaces/ecc/skills/ck/commands/shared.mjs +387 -387
- package/seed/marketplaces/ecc/skills/ck/hooks/session-start.mjs +224 -224
- package/seed/marketplaces/ecc/skills/claude-devfleet/SKILL.md +103 -103
- package/seed/marketplaces/ecc/skills/click-path-audit/SKILL.md +244 -244
- package/seed/marketplaces/ecc/skills/clickhouse-io/SKILL.md +439 -439
- package/seed/marketplaces/ecc/skills/code-tour/SKILL.md +236 -236
- package/seed/marketplaces/ecc/skills/codebase-onboarding/SKILL.md +233 -233
- package/seed/marketplaces/ecc/skills/coding-standards/SKILL.md +549 -549
- package/seed/marketplaces/ecc/skills/compose-multiplatform-patterns/SKILL.md +299 -299
- package/seed/marketplaces/ecc/skills/configure-ecc/SKILL.md +384 -384
- package/seed/marketplaces/ecc/skills/connections-optimizer/SKILL.md +189 -189
- package/seed/marketplaces/ecc/skills/content-engine/SKILL.md +131 -131
- package/seed/marketplaces/ecc/skills/content-hash-cache-pattern/SKILL.md +161 -161
- package/seed/marketplaces/ecc/skills/context-budget/SKILL.md +135 -135
- package/seed/marketplaces/ecc/skills/continuous-agent-loop/SKILL.md +45 -45
- package/seed/marketplaces/ecc/skills/continuous-learning/SKILL.md +131 -131
- package/seed/marketplaces/ecc/skills/continuous-learning/config.json +18 -18
- package/seed/marketplaces/ecc/skills/continuous-learning/evaluate-session.sh +69 -69
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/SKILL.md +360 -360
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/agents/observer-loop.sh +322 -322
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/agents/observer.md +198 -198
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/agents/session-guardian.sh +150 -150
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/agents/start-observer.sh +248 -248
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/config.json +8 -8
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/hooks/observe.sh +498 -498
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/scripts/detect-project.sh +322 -322
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +1826 -1826
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +31 -31
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +62 -62
- package/seed/marketplaces/ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +1018 -1018
- package/seed/marketplaces/ecc/skills/cost-aware-llm-pipeline/SKILL.md +183 -183
- package/seed/marketplaces/ecc/skills/cost-tracking/SKILL.md +147 -147
- package/seed/marketplaces/ecc/skills/council/SKILL.md +203 -203
- package/seed/marketplaces/ecc/skills/cpp-coding-standards/SKILL.md +723 -723
- package/seed/marketplaces/ecc/skills/cpp-testing/SKILL.md +324 -324
- package/seed/marketplaces/ecc/skills/crosspost/SKILL.md +111 -111
- package/seed/marketplaces/ecc/skills/csharp-testing/SKILL.md +321 -321
- package/seed/marketplaces/ecc/skills/customer-billing-ops/SKILL.md +140 -140
- package/seed/marketplaces/ecc/skills/customs-trade-compliance/SKILL.md +263 -263
- package/seed/marketplaces/ecc/skills/dart-flutter-patterns/SKILL.md +563 -563
- package/seed/marketplaces/ecc/skills/dashboard-builder/SKILL.md +108 -108
- package/seed/marketplaces/ecc/skills/data-scraper-agent/SKILL.md +764 -764
- package/seed/marketplaces/ecc/skills/data-throughput-accelerator/SKILL.md +72 -72
- package/seed/marketplaces/ecc/skills/database-migrations/SKILL.md +429 -429
- package/seed/marketplaces/ecc/skills/deep-research/SKILL.md +159 -159
- package/seed/marketplaces/ecc/skills/defi-amm-security/SKILL.md +166 -166
- package/seed/marketplaces/ecc/skills/deployment-patterns/SKILL.md +427 -427
- package/seed/marketplaces/ecc/skills/design-system/SKILL.md +82 -82
- package/seed/marketplaces/ecc/skills/django-celery/SKILL.md +457 -457
- package/seed/marketplaces/ecc/skills/django-patterns/SKILL.md +734 -734
- package/seed/marketplaces/ecc/skills/django-security/SKILL.md +593 -593
- package/seed/marketplaces/ecc/skills/django-tdd/SKILL.md +729 -729
- package/seed/marketplaces/ecc/skills/django-verification/SKILL.md +469 -469
- package/seed/marketplaces/ecc/skills/dmux-workflows/SKILL.md +191 -191
- package/seed/marketplaces/ecc/skills/docker-patterns/SKILL.md +364 -364
- package/seed/marketplaces/ecc/skills/documentation-lookup/SKILL.md +90 -90
- package/seed/marketplaces/ecc/skills/dotnet-patterns/SKILL.md +321 -321
- package/seed/marketplaces/ecc/skills/e2e-testing/SKILL.md +326 -326
- package/seed/marketplaces/ecc/skills/ecc-guide/SKILL.md +189 -189
- package/seed/marketplaces/ecc/skills/ecc-tools-cost-audit/SKILL.md +160 -160
- package/seed/marketplaces/ecc/skills/email-ops/SKILL.md +121 -121
- package/seed/marketplaces/ecc/skills/energy-procurement/SKILL.md +228 -228
- package/seed/marketplaces/ecc/skills/enterprise-agent-ops/SKILL.md +50 -50
- package/seed/marketplaces/ecc/skills/error-handling/SKILL.md +376 -376
- package/seed/marketplaces/ecc/skills/eval-harness/SKILL.md +270 -270
- package/seed/marketplaces/ecc/skills/evm-token-decimals/SKILL.md +130 -130
- package/seed/marketplaces/ecc/skills/exa-search/SKILL.md +107 -107
- package/seed/marketplaces/ecc/skills/fal-ai-media/SKILL.md +288 -288
- package/seed/marketplaces/ecc/skills/fastapi-patterns/SKILL.md +327 -327
- package/seed/marketplaces/ecc/skills/finance-billing-ops/SKILL.md +127 -127
- package/seed/marketplaces/ecc/skills/flox-environments/SKILL.md +496 -496
- package/seed/marketplaces/ecc/skills/flutter-dart-code-review/SKILL.md +435 -435
- package/seed/marketplaces/ecc/skills/foundation-models-on-device/SKILL.md +243 -243
- package/seed/marketplaces/ecc/skills/frontend-a11y/SKILL.md +446 -446
- package/seed/marketplaces/ecc/skills/frontend-design-direction/SKILL.md +92 -92
- package/seed/marketplaces/ecc/skills/frontend-patterns/SKILL.md +642 -642
- package/seed/marketplaces/ecc/skills/frontend-slides/SKILL.md +184 -184
- package/seed/marketplaces/ecc/skills/frontend-slides/STYLE_PRESETS.md +330 -330
- package/seed/marketplaces/ecc/skills/frontend-slides/animation-patterns.md +122 -122
- package/seed/marketplaces/ecc/skills/frontend-slides/html-template.md +419 -419
- package/seed/marketplaces/ecc/skills/frontend-slides/scripts/export-pdf.sh +418 -418
- package/seed/marketplaces/ecc/skills/frontend-slides/scripts/extract-pptx.py +96 -96
- package/seed/marketplaces/ecc/skills/frontend-slides/viewport-base.css +153 -153
- package/seed/marketplaces/ecc/skills/fsharp-testing/SKILL.md +280 -280
- package/seed/marketplaces/ecc/skills/gan-style-harness/SKILL.md +278 -278
- package/seed/marketplaces/ecc/skills/gateguard/SKILL.md +125 -125
- package/seed/marketplaces/ecc/skills/git-workflow/SKILL.md +715 -715
- package/seed/marketplaces/ecc/skills/github-ops/SKILL.md +144 -144
- package/seed/marketplaces/ecc/skills/golang-patterns/SKILL.md +674 -674
- package/seed/marketplaces/ecc/skills/golang-testing/SKILL.md +720 -720
- package/seed/marketplaces/ecc/skills/google-workspace-ops/SKILL.md +95 -95
- package/seed/marketplaces/ecc/skills/healthcare-cdss-patterns/SKILL.md +245 -245
- package/seed/marketplaces/ecc/skills/healthcare-emr-patterns/SKILL.md +159 -159
- package/seed/marketplaces/ecc/skills/healthcare-eval-harness/SKILL.md +207 -207
- package/seed/marketplaces/ecc/skills/healthcare-phi-compliance/SKILL.md +145 -145
- package/seed/marketplaces/ecc/skills/hermes-imports/SKILL.md +88 -88
- package/seed/marketplaces/ecc/skills/hexagonal-architecture/SKILL.md +276 -276
- package/seed/marketplaces/ecc/skills/hipaa-compliance/SKILL.md +78 -78
- package/seed/marketplaces/ecc/skills/homelab-network-readiness/SKILL.md +169 -169
- package/seed/marketplaces/ecc/skills/homelab-network-setup/SKILL.md +129 -129
- package/seed/marketplaces/ecc/skills/homelab-pihole-dns/SKILL.md +274 -274
- package/seed/marketplaces/ecc/skills/homelab-vlan-segmentation/SKILL.md +311 -311
- package/seed/marketplaces/ecc/skills/homelab-wireguard-vpn/SKILL.md +305 -305
- package/seed/marketplaces/ecc/skills/hookify-rules/SKILL.md +128 -128
- package/seed/marketplaces/ecc/skills/inventory-demand-planning/SKILL.md +247 -247
- package/seed/marketplaces/ecc/skills/investor-materials/SKILL.md +96 -96
- package/seed/marketplaces/ecc/skills/investor-outreach/SKILL.md +91 -91
- package/seed/marketplaces/ecc/skills/ios-icon-gen/SKILL.md +157 -157
- package/seed/marketplaces/ecc/skills/ios-icon-gen/scripts/generate_icons.swift +258 -258
- package/seed/marketplaces/ecc/skills/ios-icon-gen/scripts/iconify_gen.sh +235 -235
- package/seed/marketplaces/ecc/skills/iterative-retrieval/SKILL.md +211 -211
- package/seed/marketplaces/ecc/skills/ito-basket-compare/SKILL.md +63 -63
- package/seed/marketplaces/ecc/skills/ito-data-atlas-agent/SKILL.md +63 -63
- package/seed/marketplaces/ecc/skills/ito-market-intelligence/SKILL.md +60 -60
- package/seed/marketplaces/ecc/skills/ito-trade-planner/SKILL.md +67 -67
- package/seed/marketplaces/ecc/skills/java-coding-standards/SKILL.md +383 -383
- package/seed/marketplaces/ecc/skills/jira-integration/SKILL.md +293 -293
- package/seed/marketplaces/ecc/skills/jpa-patterns/SKILL.md +151 -151
- package/seed/marketplaces/ecc/skills/knowledge-ops/SKILL.md +154 -154
- package/seed/marketplaces/ecc/skills/kotlin-coroutines-flows/SKILL.md +284 -284
- package/seed/marketplaces/ecc/skills/kotlin-exposed-patterns/SKILL.md +719 -719
- package/seed/marketplaces/ecc/skills/kotlin-ktor-patterns/SKILL.md +689 -689
- package/seed/marketplaces/ecc/skills/kotlin-patterns/SKILL.md +711 -711
- package/seed/marketplaces/ecc/skills/kotlin-testing/SKILL.md +824 -824
- package/seed/marketplaces/ecc/skills/laravel-patterns/SKILL.md +415 -415
- package/seed/marketplaces/ecc/skills/laravel-plugin-discovery/SKILL.md +229 -229
- package/seed/marketplaces/ecc/skills/laravel-security/SKILL.md +285 -285
- package/seed/marketplaces/ecc/skills/laravel-tdd/SKILL.md +283 -283
- package/seed/marketplaces/ecc/skills/laravel-verification/SKILL.md +179 -179
- package/seed/marketplaces/ecc/skills/latency-critical-systems/SKILL.md +73 -73
- package/seed/marketplaces/ecc/skills/lead-intelligence/SKILL.md +321 -321
- package/seed/marketplaces/ecc/skills/lead-intelligence/agents/enrichment-agent.md +85 -85
- package/seed/marketplaces/ecc/skills/lead-intelligence/agents/mutual-mapper.md +75 -75
- package/seed/marketplaces/ecc/skills/lead-intelligence/agents/outreach-drafter.md +98 -98
- package/seed/marketplaces/ecc/skills/lead-intelligence/agents/signal-scorer.md +60 -60
- package/seed/marketplaces/ecc/skills/liquid-glass-design/SKILL.md +279 -279
- package/seed/marketplaces/ecc/skills/llm-trading-agent-security/SKILL.md +146 -146
- package/seed/marketplaces/ecc/skills/logistics-exception-management/SKILL.md +222 -222
- package/seed/marketplaces/ecc/skills/make-interfaces-feel-better/SKILL.md +151 -151
- package/seed/marketplaces/ecc/skills/manim-video/SKILL.md +89 -89
- package/seed/marketplaces/ecc/skills/manim-video/assets/network_graph_scene.py +52 -52
- package/seed/marketplaces/ecc/skills/market-research/SKILL.md +75 -75
- package/seed/marketplaces/ecc/skills/marketing-campaign/SKILL.md +113 -113
- package/seed/marketplaces/ecc/skills/mcp-server-patterns/SKILL.md +69 -69
- package/seed/marketplaces/ecc/skills/messages-ops/SKILL.md +104 -104
- package/seed/marketplaces/ecc/skills/mle-workflow/SKILL.md +346 -346
- package/seed/marketplaces/ecc/skills/motion-advanced/SKILL.md +596 -596
- package/seed/marketplaces/ecc/skills/motion-foundations/SKILL.md +299 -299
- package/seed/marketplaces/ecc/skills/motion-patterns/SKILL.md +435 -435
- package/seed/marketplaces/ecc/skills/motion-ui/SKILL.md +575 -575
- package/seed/marketplaces/ecc/skills/mysql-patterns/SKILL.md +412 -412
- package/seed/marketplaces/ecc/skills/nanoclaw-repl/SKILL.md +33 -33
- package/seed/marketplaces/ecc/skills/nestjs-patterns/SKILL.md +230 -230
- package/seed/marketplaces/ecc/skills/netmiko-ssh-automation/SKILL.md +173 -173
- package/seed/marketplaces/ecc/skills/network-bgp-diagnostics/SKILL.md +167 -167
- package/seed/marketplaces/ecc/skills/network-config-validation/SKILL.md +210 -210
- package/seed/marketplaces/ecc/skills/network-interface-health/SKILL.md +152 -152
- package/seed/marketplaces/ecc/skills/nextjs-turbopack/SKILL.md +57 -57
- package/seed/marketplaces/ecc/skills/nodejs-keccak256/SKILL.md +102 -102
- package/seed/marketplaces/ecc/skills/nutrient-document-processing/SKILL.md +167 -167
- package/seed/marketplaces/ecc/skills/nuxt4-patterns/SKILL.md +100 -100
- package/seed/marketplaces/ecc/skills/openclaw-persona-forge/SKILL.md +288 -288
- package/seed/marketplaces/ecc/skills/openclaw-persona-forge/gacha.py +224 -224
- package/seed/marketplaces/ecc/skills/openclaw-persona-forge/gacha.sh +5 -5
- package/seed/marketplaces/ecc/skills/openclaw-persona-forge/references/avatar-style.md +124 -124
- package/seed/marketplaces/ecc/skills/openclaw-persona-forge/references/boundary-rules.md +53 -53
- package/seed/marketplaces/ecc/skills/openclaw-persona-forge/references/error-handling.md +53 -53
- package/seed/marketplaces/ecc/skills/openclaw-persona-forge/references/identity-tension.md +48 -48
- package/seed/marketplaces/ecc/skills/openclaw-persona-forge/references/naming-system.md +39 -39
- package/seed/marketplaces/ecc/skills/openclaw-persona-forge/references/output-template.md +166 -166
- package/seed/marketplaces/ecc/skills/opensource-pipeline/SKILL.md +255 -255
- package/seed/marketplaces/ecc/skills/parallel-execution-optimizer/SKILL.md +72 -72
- package/seed/marketplaces/ecc/skills/perl-patterns/SKILL.md +504 -504
- package/seed/marketplaces/ecc/skills/perl-security/SKILL.md +503 -503
- package/seed/marketplaces/ecc/skills/perl-testing/SKILL.md +475 -475
- package/seed/marketplaces/ecc/skills/plan-orchestrate/SKILL.md +262 -262
- package/seed/marketplaces/ecc/skills/plankton-code-quality/SKILL.md +236 -236
- package/seed/marketplaces/ecc/skills/postgres-patterns/SKILL.md +147 -147
- package/seed/marketplaces/ecc/skills/prediction-market-oracle-research/SKILL.md +63 -63
- package/seed/marketplaces/ecc/skills/prediction-market-risk-review/SKILL.md +60 -60
- package/seed/marketplaces/ecc/skills/prisma-patterns/SKILL.md +371 -371
- package/seed/marketplaces/ecc/skills/product-capability/SKILL.md +141 -141
- package/seed/marketplaces/ecc/skills/product-lens/SKILL.md +92 -92
- package/seed/marketplaces/ecc/skills/production-audit/SKILL.md +206 -206
- package/seed/marketplaces/ecc/skills/production-scheduling/SKILL.md +238 -238
- package/seed/marketplaces/ecc/skills/project-flow-ops/SKILL.md +111 -111
- package/seed/marketplaces/ecc/skills/prompt-optimizer/SKILL.md +398 -398
- package/seed/marketplaces/ecc/skills/python-patterns/SKILL.md +750 -750
- package/seed/marketplaces/ecc/skills/python-testing/SKILL.md +816 -816
- package/seed/marketplaces/ecc/skills/pytorch-patterns/SKILL.md +396 -396
- package/seed/marketplaces/ecc/skills/quality-nonconformance/SKILL.md +260 -260
- package/seed/marketplaces/ecc/skills/quarkus-patterns/SKILL.md +722 -722
- package/seed/marketplaces/ecc/skills/quarkus-security/SKILL.md +467 -467
- package/seed/marketplaces/ecc/skills/quarkus-tdd/SKILL.md +811 -811
- package/seed/marketplaces/ecc/skills/quarkus-verification/SKILL.md +479 -479
- package/seed/marketplaces/ecc/skills/ralphinho-rfc-pipeline/SKILL.md +67 -67
- package/seed/marketplaces/ecc/skills/recsys-pipeline-architect/SKILL.md +114 -114
- package/seed/marketplaces/ecc/skills/recursive-decision-ledger/SKILL.md +79 -79
- package/seed/marketplaces/ecc/skills/redis-patterns/SKILL.md +403 -403
- package/seed/marketplaces/ecc/skills/regex-vs-llm-structured-text/SKILL.md +220 -220
- package/seed/marketplaces/ecc/skills/remotion-video-creation/SKILL.md +43 -43
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/3d.md +86 -86
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/animations.md +29 -29
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -173
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -100
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -108
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/assets.md +78 -78
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/audio.md +172 -172
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/calculate-metadata.md +104 -104
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/can-decode.md +75 -75
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/charts.md +58 -58
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/compositions.md +146 -146
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/display-captions.md +126 -126
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/extract-frames.md +229 -229
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/fonts.md +152 -152
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/get-audio-duration.md +58 -58
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -68
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/get-video-duration.md +58 -58
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/gifs.md +138 -138
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/images.md +130 -130
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/import-srt-captions.md +67 -67
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/lottie.md +67 -67
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -34
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/measuring-text.md +143 -143
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/sequencing.md +106 -106
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/tailwind.md +11 -11
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/text-animations.md +20 -20
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/timing.md +179 -179
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/transcribe-captions.md +19 -19
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/transitions.md +122 -122
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/trimming.md +52 -52
- package/seed/marketplaces/ecc/skills/remotion-video-creation/rules/videos.md +171 -171
- package/seed/marketplaces/ecc/skills/repo-scan/SKILL.md +78 -78
- package/seed/marketplaces/ecc/skills/research-ops/SKILL.md +112 -112
- package/seed/marketplaces/ecc/skills/returns-reverse-logistics/SKILL.md +240 -240
- package/seed/marketplaces/ecc/skills/rules-distill/SKILL.md +264 -264
- package/seed/marketplaces/ecc/skills/rules-distill/scripts/scan-rules.sh +58 -58
- package/seed/marketplaces/ecc/skills/rules-distill/scripts/scan-skills.sh +129 -129
- package/seed/marketplaces/ecc/skills/rust-patterns/SKILL.md +499 -499
- package/seed/marketplaces/ecc/skills/rust-testing/SKILL.md +500 -500
- package/seed/marketplaces/ecc/skills/safety-guard/SKILL.md +75 -75
- package/seed/marketplaces/ecc/skills/santa-method/SKILL.md +306 -306
- package/seed/marketplaces/ecc/skills/scientific-db-pubmed-database/SKILL.md +175 -175
- package/seed/marketplaces/ecc/skills/scientific-db-uspto-database/SKILL.md +177 -177
- package/seed/marketplaces/ecc/skills/scientific-pkg-gget/SKILL.md +166 -166
- package/seed/marketplaces/ecc/skills/scientific-thinking-literature-review/SKILL.md +192 -192
- package/seed/marketplaces/ecc/skills/scientific-thinking-scholar-evaluation/SKILL.md +160 -160
- package/seed/marketplaces/ecc/skills/search-first/SKILL.md +182 -182
- package/seed/marketplaces/ecc/skills/security-bounty-hunter/SKILL.md +99 -99
- package/seed/marketplaces/ecc/skills/security-review/SKILL.md +503 -503
- package/seed/marketplaces/ecc/skills/security-review/cloud-infrastructure-security.md +361 -361
- package/seed/marketplaces/ecc/skills/security-scan/SKILL.md +165 -165
- package/seed/marketplaces/ecc/skills/seo/SKILL.md +154 -154
- package/seed/marketplaces/ecc/skills/skill-comply/SKILL.md +58 -58
- package/seed/marketplaces/ecc/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -5
- package/seed/marketplaces/ecc/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -3
- package/seed/marketplaces/ecc/skills/skill-comply/fixtures/tdd_spec.yaml +44 -44
- package/seed/marketplaces/ecc/skills/skill-comply/prompts/classifier.md +24 -24
- package/seed/marketplaces/ecc/skills/skill-comply/prompts/scenario_generator.md +62 -62
- package/seed/marketplaces/ecc/skills/skill-comply/prompts/spec_generator.md +42 -42
- package/seed/marketplaces/ecc/skills/skill-comply/pyproject.toml +15 -15
- package/seed/marketplaces/ecc/skills/skill-comply/scripts/classifier.py +85 -85
- package/seed/marketplaces/ecc/skills/skill-comply/scripts/grader.py +124 -124
- package/seed/marketplaces/ecc/skills/skill-comply/scripts/parser.py +107 -107
- package/seed/marketplaces/ecc/skills/skill-comply/scripts/report.py +170 -170
- package/seed/marketplaces/ecc/skills/skill-comply/scripts/run.py +127 -127
- package/seed/marketplaces/ecc/skills/skill-comply/scripts/runner.py +186 -186
- package/seed/marketplaces/ecc/skills/skill-comply/scripts/scenario_generator.py +70 -70
- package/seed/marketplaces/ecc/skills/skill-comply/scripts/spec_generator.py +72 -72
- package/seed/marketplaces/ecc/skills/skill-comply/scripts/utils.py +13 -13
- package/seed/marketplaces/ecc/skills/skill-comply/tests/test_grader.py +197 -197
- package/seed/marketplaces/ecc/skills/skill-comply/tests/test_parser.py +90 -90
- package/seed/marketplaces/ecc/skills/skill-comply/tests/test_runner.py +172 -172
- package/seed/marketplaces/ecc/skills/skill-scout/SKILL.md +140 -140
- package/seed/marketplaces/ecc/skills/skill-stocktake/SKILL.md +194 -194
- package/seed/marketplaces/ecc/skills/skill-stocktake/scripts/quick-diff.sh +87 -87
- package/seed/marketplaces/ecc/skills/skill-stocktake/scripts/save-results.sh +56 -56
- package/seed/marketplaces/ecc/skills/skill-stocktake/scripts/scan.sh +170 -170
- package/seed/marketplaces/ecc/skills/social-graph-ranker/SKILL.md +154 -154
- package/seed/marketplaces/ecc/skills/social-publisher/SKILL.md +115 -115
- package/seed/marketplaces/ecc/skills/springboot-patterns/SKILL.md +314 -314
- package/seed/marketplaces/ecc/skills/springboot-security/SKILL.md +272 -272
- package/seed/marketplaces/ecc/skills/springboot-tdd/SKILL.md +158 -158
- package/seed/marketplaces/ecc/skills/springboot-verification/SKILL.md +231 -231
- package/seed/marketplaces/ecc/skills/strategic-compact/SKILL.md +131 -131
- package/seed/marketplaces/ecc/skills/swift-actor-persistence/SKILL.md +143 -143
- package/seed/marketplaces/ecc/skills/swift-concurrency-6-2/SKILL.md +216 -216
- package/seed/marketplaces/ecc/skills/swift-protocol-di-testing/SKILL.md +190 -190
- package/seed/marketplaces/ecc/skills/swiftui-patterns/SKILL.md +259 -259
- package/seed/marketplaces/ecc/skills/tdd-workflow/SKILL.md +463 -463
- package/seed/marketplaces/ecc/skills/team-builder/SKILL.md +168 -168
- package/seed/marketplaces/ecc/skills/terminal-ops/SKILL.md +109 -109
- package/seed/marketplaces/ecc/skills/tinystruct-patterns/SKILL.md +203 -203
- package/seed/marketplaces/ecc/skills/tinystruct-patterns/references/architecture.md +90 -90
- package/seed/marketplaces/ecc/skills/tinystruct-patterns/references/data-handling.md +60 -60
- package/seed/marketplaces/ecc/skills/tinystruct-patterns/references/database.md +99 -99
- package/seed/marketplaces/ecc/skills/tinystruct-patterns/references/routing.md +64 -64
- package/seed/marketplaces/ecc/skills/tinystruct-patterns/references/system-usage.md +97 -97
- package/seed/marketplaces/ecc/skills/tinystruct-patterns/references/testing.md +72 -72
- package/seed/marketplaces/ecc/skills/token-budget-advisor/SKILL.md +133 -133
- package/seed/marketplaces/ecc/skills/ui-demo/SKILL.md +465 -465
- package/seed/marketplaces/ecc/skills/ui-to-vue/SKILL.md +134 -134
- package/seed/marketplaces/ecc/skills/uncloud/SKILL.md +343 -343
- package/seed/marketplaces/ecc/skills/unified-notifications-ops/SKILL.md +187 -187
- package/seed/marketplaces/ecc/skills/verification-loop/SKILL.md +126 -126
- package/seed/marketplaces/ecc/skills/video-editing/SKILL.md +310 -310
- package/seed/marketplaces/ecc/skills/videodb/SKILL.md +374 -374
- package/seed/marketplaces/ecc/skills/videodb/reference/api-reference.md +550 -550
- package/seed/marketplaces/ecc/skills/videodb/reference/capture-reference.md +407 -407
- package/seed/marketplaces/ecc/skills/videodb/reference/capture.md +101 -101
- package/seed/marketplaces/ecc/skills/videodb/reference/editor.md +443 -443
- package/seed/marketplaces/ecc/skills/videodb/reference/generative.md +331 -331
- package/seed/marketplaces/ecc/skills/videodb/reference/rtstream-reference.md +564 -564
- package/seed/marketplaces/ecc/skills/videodb/reference/rtstream.md +65 -65
- package/seed/marketplaces/ecc/skills/videodb/reference/search.md +230 -230
- package/seed/marketplaces/ecc/skills/videodb/reference/streaming.md +406 -406
- package/seed/marketplaces/ecc/skills/videodb/reference/use-cases.md +118 -118
- package/seed/marketplaces/ecc/skills/videodb/scripts/ws_listener.py +282 -282
- package/seed/marketplaces/ecc/skills/visa-doc-translate/README.md +86 -86
- package/seed/marketplaces/ecc/skills/visa-doc-translate/SKILL.md +117 -117
- package/seed/marketplaces/ecc/skills/vite-patterns/SKILL.md +449 -449
- package/seed/marketplaces/ecc/skills/windows-desktop-e2e/SKILL.md +887 -887
- package/seed/marketplaces/ecc/skills/workspace-surface-audit/SKILL.md +125 -125
- package/seed/marketplaces/ecc/skills/x-api/SKILL.md +234 -234
- package/dist/SKILL-r7zmg5v7.md +0 -3
- package/dist/cli-mvr5k580.md +0 -3
- package/dist/server-zyhc2a9z.md +0 -3
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
# Components
|
|
2
|
-
|
|
3
|
-
Angular components are the fundamental building blocks of an application. Each component consists of a TypeScript class with behaviors, an HTML template, and a CSS selector.
|
|
4
|
-
|
|
5
|
-
## Component Definition
|
|
6
|
-
|
|
7
|
-
Use the `@Component` decorator to define a component's metadata.
|
|
8
|
-
|
|
9
|
-
```ts
|
|
10
|
-
@Component({
|
|
11
|
-
selector: 'app-profile',
|
|
12
|
-
template: `
|
|
13
|
-
<img src="profile.jpg" alt="Profile photo" />
|
|
14
|
-
<button (click)="save()">Save</button>
|
|
15
|
-
`,
|
|
16
|
-
styles: `
|
|
17
|
-
img {
|
|
18
|
-
border-radius: 50%;
|
|
19
|
-
}
|
|
20
|
-
`,
|
|
21
|
-
})
|
|
22
|
-
export class Profile {
|
|
23
|
-
save() {
|
|
24
|
-
/* ... */
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Metadata Options
|
|
30
|
-
|
|
31
|
-
- `selector`: The CSS selector that identifies this component in templates.
|
|
32
|
-
- `template`: Inline HTML template (preferred for small templates).
|
|
33
|
-
- `templateUrl`: Path to an external HTML file.
|
|
34
|
-
- `styles`: Inline CSS styles.
|
|
35
|
-
- `styleUrl` / `styleUrls`: Path(s) to external CSS file(s).
|
|
36
|
-
- `imports`: Lists the components, directives, or pipes used in this component's template.
|
|
37
|
-
|
|
38
|
-
## Using Components
|
|
39
|
-
|
|
40
|
-
To use a component, add it to the `imports` array of the consuming component and use its selector in the template.
|
|
41
|
-
|
|
42
|
-
```ts
|
|
43
|
-
@Component({
|
|
44
|
-
selector: 'app-root',
|
|
45
|
-
imports: [Profile],
|
|
46
|
-
template: `<app-profile />`,
|
|
47
|
-
})
|
|
48
|
-
export class App {}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Template Control Flow
|
|
52
|
-
|
|
53
|
-
Angular uses built-in blocks for conditional rendering and loops.
|
|
54
|
-
|
|
55
|
-
### Conditional Rendering (`@if`)
|
|
56
|
-
|
|
57
|
-
Use `@if` to conditionally show content. You can include `@else if` and `@else` blocks.
|
|
58
|
-
|
|
59
|
-
```html
|
|
60
|
-
@if (user.isAdmin) {
|
|
61
|
-
<admin-dashboard />
|
|
62
|
-
} @else if (user.isModerator) {
|
|
63
|
-
<mod-dashboard />
|
|
64
|
-
} @else {
|
|
65
|
-
<standard-dashboard />
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
**Result aliasing**: Save the result of the expression for reuse.
|
|
70
|
-
|
|
71
|
-
```html
|
|
72
|
-
@if (user.settings(); as settings) {
|
|
73
|
-
<p>Theme: {{ settings.theme }}</p>
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Loops (`@for`)
|
|
78
|
-
|
|
79
|
-
The `@for` block iterates over collections. The `track` expression is **required** for performance and DOM reuse.
|
|
80
|
-
|
|
81
|
-
```html
|
|
82
|
-
<ul>
|
|
83
|
-
@for (item of items(); track item.id; let i = $index, total = $count) {
|
|
84
|
-
<li>{{ i + 1 }}/{{ total }}: {{ item.name }}</li>
|
|
85
|
-
} @empty {
|
|
86
|
-
<li>No items to display.</li>
|
|
87
|
-
}
|
|
88
|
-
</ul>
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
**Implicit Variables**: `$index`, `$count`, `$first`, `$last`, `$even`, `$odd`.
|
|
92
|
-
|
|
93
|
-
### Switching Content (`@switch`)
|
|
94
|
-
|
|
95
|
-
The `@switch` block renders content based on a value. It uses strict equality (`===`) and has **no fallthrough**.
|
|
96
|
-
|
|
97
|
-
```html
|
|
98
|
-
@switch (status()) { @case ('loading') { <app-spinner /> } @case ('error') { <app-error-msg /> }
|
|
99
|
-
@case ('success') { <app-data-grid /> } @default {
|
|
100
|
-
<p>Unknown status</p>
|
|
101
|
-
} }
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
**Exhaustive Type Checking**: Use `@default never;` to ensure all cases of a union type are handled.
|
|
105
|
-
|
|
106
|
-
```html
|
|
107
|
-
@switch (state) { @case ('on') { ... } @case ('off') { ... } @default never; // Errors if a new
|
|
108
|
-
state like 'standby' is added }
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Core Concepts
|
|
112
|
-
|
|
113
|
-
- **Host Element**: The DOM element that matches the component's selector.
|
|
114
|
-
- **View**: The DOM rendered by the component's template inside the host element.
|
|
115
|
-
- **Standalone**: By default, components are standalone (since Angular 19, `standalone: true` is default). For older versions, `standalone: true` must be explicit or the component must be part of an `NgModule`.
|
|
116
|
-
- **Component Tree**: Angular applications are structured as a tree of components, where each component can host child components.
|
|
117
|
-
- **Component Naming**: Do not add suffixes the `Component` suffix for Component classes (e.g., AppComponent) unless the project has been configured to use that naming configuration.
|
|
1
|
+
# Components
|
|
2
|
+
|
|
3
|
+
Angular components are the fundamental building blocks of an application. Each component consists of a TypeScript class with behaviors, an HTML template, and a CSS selector.
|
|
4
|
+
|
|
5
|
+
## Component Definition
|
|
6
|
+
|
|
7
|
+
Use the `@Component` decorator to define a component's metadata.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
@Component({
|
|
11
|
+
selector: 'app-profile',
|
|
12
|
+
template: `
|
|
13
|
+
<img src="profile.jpg" alt="Profile photo" />
|
|
14
|
+
<button (click)="save()">Save</button>
|
|
15
|
+
`,
|
|
16
|
+
styles: `
|
|
17
|
+
img {
|
|
18
|
+
border-radius: 50%;
|
|
19
|
+
}
|
|
20
|
+
`,
|
|
21
|
+
})
|
|
22
|
+
export class Profile {
|
|
23
|
+
save() {
|
|
24
|
+
/* ... */
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Metadata Options
|
|
30
|
+
|
|
31
|
+
- `selector`: The CSS selector that identifies this component in templates.
|
|
32
|
+
- `template`: Inline HTML template (preferred for small templates).
|
|
33
|
+
- `templateUrl`: Path to an external HTML file.
|
|
34
|
+
- `styles`: Inline CSS styles.
|
|
35
|
+
- `styleUrl` / `styleUrls`: Path(s) to external CSS file(s).
|
|
36
|
+
- `imports`: Lists the components, directives, or pipes used in this component's template.
|
|
37
|
+
|
|
38
|
+
## Using Components
|
|
39
|
+
|
|
40
|
+
To use a component, add it to the `imports` array of the consuming component and use its selector in the template.
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
@Component({
|
|
44
|
+
selector: 'app-root',
|
|
45
|
+
imports: [Profile],
|
|
46
|
+
template: `<app-profile />`,
|
|
47
|
+
})
|
|
48
|
+
export class App {}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Template Control Flow
|
|
52
|
+
|
|
53
|
+
Angular uses built-in blocks for conditional rendering and loops.
|
|
54
|
+
|
|
55
|
+
### Conditional Rendering (`@if`)
|
|
56
|
+
|
|
57
|
+
Use `@if` to conditionally show content. You can include `@else if` and `@else` blocks.
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
@if (user.isAdmin) {
|
|
61
|
+
<admin-dashboard />
|
|
62
|
+
} @else if (user.isModerator) {
|
|
63
|
+
<mod-dashboard />
|
|
64
|
+
} @else {
|
|
65
|
+
<standard-dashboard />
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Result aliasing**: Save the result of the expression for reuse.
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
@if (user.settings(); as settings) {
|
|
73
|
+
<p>Theme: {{ settings.theme }}</p>
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Loops (`@for`)
|
|
78
|
+
|
|
79
|
+
The `@for` block iterates over collections. The `track` expression is **required** for performance and DOM reuse.
|
|
80
|
+
|
|
81
|
+
```html
|
|
82
|
+
<ul>
|
|
83
|
+
@for (item of items(); track item.id; let i = $index, total = $count) {
|
|
84
|
+
<li>{{ i + 1 }}/{{ total }}: {{ item.name }}</li>
|
|
85
|
+
} @empty {
|
|
86
|
+
<li>No items to display.</li>
|
|
87
|
+
}
|
|
88
|
+
</ul>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Implicit Variables**: `$index`, `$count`, `$first`, `$last`, `$even`, `$odd`.
|
|
92
|
+
|
|
93
|
+
### Switching Content (`@switch`)
|
|
94
|
+
|
|
95
|
+
The `@switch` block renders content based on a value. It uses strict equality (`===`) and has **no fallthrough**.
|
|
96
|
+
|
|
97
|
+
```html
|
|
98
|
+
@switch (status()) { @case ('loading') { <app-spinner /> } @case ('error') { <app-error-msg /> }
|
|
99
|
+
@case ('success') { <app-data-grid /> } @default {
|
|
100
|
+
<p>Unknown status</p>
|
|
101
|
+
} }
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Exhaustive Type Checking**: Use `@default never;` to ensure all cases of a union type are handled.
|
|
105
|
+
|
|
106
|
+
```html
|
|
107
|
+
@switch (state) { @case ('on') { ... } @case ('off') { ... } @default never; // Errors if a new
|
|
108
|
+
state like 'standby' is added }
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Core Concepts
|
|
112
|
+
|
|
113
|
+
- **Host Element**: The DOM element that matches the component's selector.
|
|
114
|
+
- **View**: The DOM rendered by the component's template inside the host element.
|
|
115
|
+
- **Standalone**: By default, components are standalone (since Angular 19, `standalone: true` is default). For older versions, `standalone: true` must be explicit or the component must be part of an `NgModule`.
|
|
116
|
+
- **Component Tree**: Angular applications are structured as a tree of components, where each component can host child components.
|
|
117
|
+
- **Component Naming**: Do not add suffixes the `Component` suffix for Component classes (e.g., AppComponent) unless the project has been configured to use that naming configuration.
|
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
# Creating and Using Services
|
|
2
|
-
|
|
3
|
-
Services in Angular are reusable pieces of code that handle data fetching, business logic, or state management that multiple components or other services need to access.
|
|
4
|
-
|
|
5
|
-
## Creating a Service
|
|
6
|
-
|
|
7
|
-
You can generate a service using the Angular CLI:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
ng generate service my-data
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Or you can manually create a TypeScript class and decorate it with `@Injectable()`.
|
|
14
|
-
|
|
15
|
-
```ts
|
|
16
|
-
import {Injectable} from '@angular/core';
|
|
17
|
-
|
|
18
|
-
@Injectable({
|
|
19
|
-
providedIn: 'root',
|
|
20
|
-
})
|
|
21
|
-
export class BasicDataStore {
|
|
22
|
-
private data: string[] = [];
|
|
23
|
-
|
|
24
|
-
addData(item: string): void {
|
|
25
|
-
this.data.push(item);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
getData(): string[] {
|
|
29
|
-
return [...this.data];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### The `providedIn: 'root'` Option
|
|
35
|
-
|
|
36
|
-
Using `providedIn: 'root'` is the recommended approach for most services. It tells Angular to:
|
|
37
|
-
|
|
38
|
-
- **Create a single instance (singleton)** for the entire application.
|
|
39
|
-
- **Make it available everywhere** automatically, without needing to list it in any `providers` array.
|
|
40
|
-
- **Enable tree-shaking**, meaning the service is only included in the final JavaScript bundle if it is actually injected somewhere.
|
|
41
|
-
|
|
42
|
-
## Injecting a Service
|
|
43
|
-
|
|
44
|
-
Once a service is created, you can inject it into components, directives, or other services using the `inject()` function.
|
|
45
|
-
|
|
46
|
-
### Injecting into a Component
|
|
47
|
-
|
|
48
|
-
```ts
|
|
49
|
-
import {Component, inject} from '@angular/core';
|
|
50
|
-
import {BasicDataStore} from './basic-data-store.service';
|
|
51
|
-
|
|
52
|
-
@Component({
|
|
53
|
-
selector: 'app-example',
|
|
54
|
-
template: `
|
|
55
|
-
<div>
|
|
56
|
-
<p>Data items: {{ dataStore.getData().length }}</p>
|
|
57
|
-
<button (click)="dataStore.addData('New Item')">Add Item</button>
|
|
58
|
-
</div>
|
|
59
|
-
`,
|
|
60
|
-
})
|
|
61
|
-
export class Example {
|
|
62
|
-
// Inject the service as a class field
|
|
63
|
-
dataStore = inject(BasicDataStore);
|
|
64
|
-
}
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### Injecting into Another Service
|
|
68
|
-
|
|
69
|
-
Services can inject other services in the exact same way.
|
|
70
|
-
|
|
71
|
-
```ts
|
|
72
|
-
import {Injectable, inject} from '@angular/core';
|
|
73
|
-
import {AdvancedDataStore} from './advanced-data-store.service';
|
|
74
|
-
|
|
75
|
-
@Injectable({
|
|
76
|
-
providedIn: 'root',
|
|
77
|
-
})
|
|
78
|
-
export class BasicDataStore {
|
|
79
|
-
// Injecting another service
|
|
80
|
-
private advancedDataStore = inject(AdvancedDataStore);
|
|
81
|
-
|
|
82
|
-
private data: string[] = [];
|
|
83
|
-
|
|
84
|
-
getData(): string[] {
|
|
85
|
-
// Combine data from this service and the injected service
|
|
86
|
-
return [...this.data, ...this.advancedDataStore.getData()];
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Advanced Service Patterns
|
|
92
|
-
|
|
93
|
-
While `providedIn: 'root'` covers most scenarios, you may sometimes need:
|
|
94
|
-
|
|
95
|
-
- **Component-specific instances**: If a component needs its own isolated instance of a service, provide it directly in the component's `@Component({ providers: [MyService] })` array.
|
|
96
|
-
- **Factory providers**: For dynamic creation.
|
|
97
|
-
- **Value providers**: For injecting configuration objects.
|
|
1
|
+
# Creating and Using Services
|
|
2
|
+
|
|
3
|
+
Services in Angular are reusable pieces of code that handle data fetching, business logic, or state management that multiple components or other services need to access.
|
|
4
|
+
|
|
5
|
+
## Creating a Service
|
|
6
|
+
|
|
7
|
+
You can generate a service using the Angular CLI:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ng generate service my-data
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or you can manually create a TypeScript class and decorate it with `@Injectable()`.
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import {Injectable} from '@angular/core';
|
|
17
|
+
|
|
18
|
+
@Injectable({
|
|
19
|
+
providedIn: 'root',
|
|
20
|
+
})
|
|
21
|
+
export class BasicDataStore {
|
|
22
|
+
private data: string[] = [];
|
|
23
|
+
|
|
24
|
+
addData(item: string): void {
|
|
25
|
+
this.data.push(item);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
getData(): string[] {
|
|
29
|
+
return [...this.data];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### The `providedIn: 'root'` Option
|
|
35
|
+
|
|
36
|
+
Using `providedIn: 'root'` is the recommended approach for most services. It tells Angular to:
|
|
37
|
+
|
|
38
|
+
- **Create a single instance (singleton)** for the entire application.
|
|
39
|
+
- **Make it available everywhere** automatically, without needing to list it in any `providers` array.
|
|
40
|
+
- **Enable tree-shaking**, meaning the service is only included in the final JavaScript bundle if it is actually injected somewhere.
|
|
41
|
+
|
|
42
|
+
## Injecting a Service
|
|
43
|
+
|
|
44
|
+
Once a service is created, you can inject it into components, directives, or other services using the `inject()` function.
|
|
45
|
+
|
|
46
|
+
### Injecting into a Component
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import {Component, inject} from '@angular/core';
|
|
50
|
+
import {BasicDataStore} from './basic-data-store.service';
|
|
51
|
+
|
|
52
|
+
@Component({
|
|
53
|
+
selector: 'app-example',
|
|
54
|
+
template: `
|
|
55
|
+
<div>
|
|
56
|
+
<p>Data items: {{ dataStore.getData().length }}</p>
|
|
57
|
+
<button (click)="dataStore.addData('New Item')">Add Item</button>
|
|
58
|
+
</div>
|
|
59
|
+
`,
|
|
60
|
+
})
|
|
61
|
+
export class Example {
|
|
62
|
+
// Inject the service as a class field
|
|
63
|
+
dataStore = inject(BasicDataStore);
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Injecting into Another Service
|
|
68
|
+
|
|
69
|
+
Services can inject other services in the exact same way.
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
import {Injectable, inject} from '@angular/core';
|
|
73
|
+
import {AdvancedDataStore} from './advanced-data-store.service';
|
|
74
|
+
|
|
75
|
+
@Injectable({
|
|
76
|
+
providedIn: 'root',
|
|
77
|
+
})
|
|
78
|
+
export class BasicDataStore {
|
|
79
|
+
// Injecting another service
|
|
80
|
+
private advancedDataStore = inject(AdvancedDataStore);
|
|
81
|
+
|
|
82
|
+
private data: string[] = [];
|
|
83
|
+
|
|
84
|
+
getData(): string[] {
|
|
85
|
+
// Combine data from this service and the injected service
|
|
86
|
+
return [...this.data, ...this.advancedDataStore.getData()];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Advanced Service Patterns
|
|
92
|
+
|
|
93
|
+
While `providedIn: 'root'` covers most scenarios, you may sometimes need:
|
|
94
|
+
|
|
95
|
+
- **Component-specific instances**: If a component needs its own isolated instance of a service, provide it directly in the component's `@Component({ providers: [MyService] })` array.
|
|
96
|
+
- **Factory providers**: For dynamic creation.
|
|
97
|
+
- **Value providers**: For injecting configuration objects.
|
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
# Data Resolvers
|
|
2
|
-
|
|
3
|
-
Data resolvers fetch data before a route activates, ensuring components have the necessary data upon rendering.
|
|
4
|
-
|
|
5
|
-
## Creating a Resolver
|
|
6
|
-
|
|
7
|
-
Implement the `ResolveFn` type.
|
|
8
|
-
|
|
9
|
-
```ts
|
|
10
|
-
export const userResolver: ResolveFn<User> = (route, state) => {
|
|
11
|
-
const userService = inject(UserService);
|
|
12
|
-
const id = route.paramMap.get('id')!;
|
|
13
|
-
return userService.getUser(id);
|
|
14
|
-
};
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Configuring the Route
|
|
18
|
-
|
|
19
|
-
Add the resolver under the `resolve` key.
|
|
20
|
-
|
|
21
|
-
```ts
|
|
22
|
-
{
|
|
23
|
-
path: 'user/:id',
|
|
24
|
-
component: UserProfile,
|
|
25
|
-
resolve: {
|
|
26
|
-
user: userResolver
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Accessing Resolved Data
|
|
32
|
-
|
|
33
|
-
### 1. Via `ActivatedRoute` (Traditional)
|
|
34
|
-
|
|
35
|
-
```ts
|
|
36
|
-
private route = inject(ActivatedRoute);
|
|
37
|
-
data = toSignal(this.route.data);
|
|
38
|
-
user = computed(() => this.data().user);
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### 2. Via Component Inputs (Modern)
|
|
42
|
-
|
|
43
|
-
Enable `withComponentInputBinding()` in `provideRouter` to pass resolved data directly to `@Input` or `input()`.
|
|
44
|
-
|
|
45
|
-
```ts
|
|
46
|
-
// app.config.ts
|
|
47
|
-
provideRouter(routes, withComponentInputBinding());
|
|
48
|
-
|
|
49
|
-
// component.ts
|
|
50
|
-
user = input.required<User>();
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## Error Handling
|
|
54
|
-
|
|
55
|
-
Navigation is blocked if a resolver fails.
|
|
56
|
-
|
|
57
|
-
- Use `withNavigationErrorHandler` for global handling.
|
|
58
|
-
- Use `catchError` within the resolver to return a `RedirectCommand` or fallback data.
|
|
59
|
-
|
|
60
|
-
```ts
|
|
61
|
-
return userService
|
|
62
|
-
.get(id)
|
|
63
|
-
.pipe(catchError(() => of(new RedirectCommand(router.parseUrl('/error')))));
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
## Best Practices
|
|
67
|
-
|
|
68
|
-
- **Keep it lightweight**: Fetch only critical data.
|
|
69
|
-
- **Provide feedback**: Listen to router events to show a global loading bar during navigation, as the UI stays on the old page until the resolver finishes.
|
|
1
|
+
# Data Resolvers
|
|
2
|
+
|
|
3
|
+
Data resolvers fetch data before a route activates, ensuring components have the necessary data upon rendering.
|
|
4
|
+
|
|
5
|
+
## Creating a Resolver
|
|
6
|
+
|
|
7
|
+
Implement the `ResolveFn` type.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export const userResolver: ResolveFn<User> = (route, state) => {
|
|
11
|
+
const userService = inject(UserService);
|
|
12
|
+
const id = route.paramMap.get('id')!;
|
|
13
|
+
return userService.getUser(id);
|
|
14
|
+
};
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Configuring the Route
|
|
18
|
+
|
|
19
|
+
Add the resolver under the `resolve` key.
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
{
|
|
23
|
+
path: 'user/:id',
|
|
24
|
+
component: UserProfile,
|
|
25
|
+
resolve: {
|
|
26
|
+
user: userResolver
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Accessing Resolved Data
|
|
32
|
+
|
|
33
|
+
### 1. Via `ActivatedRoute` (Traditional)
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
private route = inject(ActivatedRoute);
|
|
37
|
+
data = toSignal(this.route.data);
|
|
38
|
+
user = computed(() => this.data().user);
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. Via Component Inputs (Modern)
|
|
42
|
+
|
|
43
|
+
Enable `withComponentInputBinding()` in `provideRouter` to pass resolved data directly to `@Input` or `input()`.
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
// app.config.ts
|
|
47
|
+
provideRouter(routes, withComponentInputBinding());
|
|
48
|
+
|
|
49
|
+
// component.ts
|
|
50
|
+
user = input.required<User>();
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Error Handling
|
|
54
|
+
|
|
55
|
+
Navigation is blocked if a resolver fails.
|
|
56
|
+
|
|
57
|
+
- Use `withNavigationErrorHandler` for global handling.
|
|
58
|
+
- Use `catchError` within the resolver to return a `RedirectCommand` or fallback data.
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
return userService
|
|
62
|
+
.get(id)
|
|
63
|
+
.pipe(catchError(() => of(new RedirectCommand(router.parseUrl('/error')))));
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Best Practices
|
|
67
|
+
|
|
68
|
+
- **Keep it lightweight**: Fetch only critical data.
|
|
69
|
+
- **Provide feedback**: Listen to router events to show a global loading bar during navigation, as the UI stays on the old page until the resolver finishes.
|