@react-spa-scaffold/mcp 1.1.3 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -15
- package/dist/features/definitions/api.d.ts +3 -0
- package/dist/features/definitions/api.d.ts.map +1 -0
- package/dist/features/definitions/api.js +20 -0
- package/dist/features/definitions/api.js.map +1 -0
- package/dist/features/definitions/ci.d.ts +3 -0
- package/dist/features/definitions/ci.d.ts.map +1 -0
- package/dist/features/definitions/ci.js +25 -0
- package/dist/features/definitions/ci.js.map +1 -0
- package/dist/features/definitions/core.d.ts +3 -0
- package/dist/features/definitions/core.d.ts.map +1 -0
- package/dist/features/definitions/core.js +76 -0
- package/dist/features/definitions/core.js.map +1 -0
- package/dist/features/definitions/devtools.d.ts +3 -0
- package/dist/features/definitions/devtools.d.ts.map +1 -0
- package/dist/features/definitions/devtools.js +53 -0
- package/dist/features/definitions/devtools.js.map +1 -0
- package/dist/features/definitions/forms.d.ts +3 -0
- package/dist/features/definitions/forms.d.ts.map +1 -0
- package/dist/features/definitions/forms.js +32 -0
- package/dist/features/definitions/forms.js.map +1 -0
- package/dist/features/definitions/i18n.d.ts +3 -0
- package/dist/features/definitions/i18n.d.ts.map +1 -0
- package/dist/features/definitions/i18n.js +50 -0
- package/dist/features/definitions/i18n.js.map +1 -0
- package/dist/features/definitions/index.d.ts +15 -0
- package/dist/features/definitions/index.d.ts.map +1 -0
- package/dist/features/definitions/index.js +15 -0
- package/dist/features/definitions/index.js.map +1 -0
- package/dist/features/definitions/mobile.d.ts +3 -0
- package/dist/features/definitions/mobile.d.ts.map +1 -0
- package/dist/features/definitions/mobile.js +19 -0
- package/dist/features/definitions/mobile.js.map +1 -0
- package/dist/features/definitions/observability.d.ts +3 -0
- package/dist/features/definitions/observability.d.ts.map +1 -0
- package/dist/features/definitions/observability.js +21 -0
- package/dist/features/definitions/observability.js.map +1 -0
- package/dist/features/definitions/performance.d.ts +3 -0
- package/dist/features/definitions/performance.d.ts.map +1 -0
- package/dist/features/definitions/performance.js +28 -0
- package/dist/features/definitions/performance.js.map +1 -0
- package/dist/features/definitions/routing.d.ts +3 -0
- package/dist/features/definitions/routing.d.ts.map +1 -0
- package/dist/features/definitions/routing.js +25 -0
- package/dist/features/definitions/routing.js.map +1 -0
- package/dist/features/definitions/state.d.ts +3 -0
- package/dist/features/definitions/state.d.ts.map +1 -0
- package/dist/features/definitions/state.js +27 -0
- package/dist/features/definitions/state.js.map +1 -0
- package/dist/features/definitions/testing.d.ts +3 -0
- package/dist/features/definitions/testing.d.ts.map +1 -0
- package/dist/features/definitions/testing.js +56 -0
- package/dist/features/definitions/testing.js.map +1 -0
- package/dist/features/definitions/theming.d.ts +3 -0
- package/dist/features/definitions/theming.d.ts.map +1 -0
- package/dist/features/definitions/theming.js +26 -0
- package/dist/features/definitions/theming.js.map +1 -0
- package/dist/features/definitions/ui.d.ts +3 -0
- package/dist/features/definitions/ui.d.ts.map +1 -0
- package/dist/features/definitions/ui.js +44 -0
- package/dist/features/definitions/ui.js.map +1 -0
- package/dist/features/index.d.ts +3 -2
- package/dist/features/index.d.ts.map +1 -1
- package/dist/features/index.js +2 -1
- package/dist/features/index.js.map +1 -1
- package/dist/features/registry.d.ts +3 -9
- package/dist/features/registry.d.ts.map +1 -1
- package/dist/features/registry.js +3 -554
- package/dist/features/registry.js.map +1 -1
- package/dist/features/types.d.ts +11 -9
- package/dist/features/types.d.ts.map +1 -1
- package/dist/features/types.js +24 -1
- package/dist/features/types.js.map +1 -1
- package/dist/server.d.ts +2 -7
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +22 -56
- package/dist/server.js.map +1 -1
- package/dist/server.test.d.ts +2 -0
- package/dist/server.test.d.ts.map +1 -0
- package/dist/server.test.js +14 -0
- package/dist/server.test.js.map +1 -0
- package/dist/tools/get-example.test.d.ts +5 -0
- package/dist/tools/get-example.test.d.ts.map +1 -0
- package/dist/tools/get-example.test.js +63 -0
- package/dist/tools/get-example.test.js.map +1 -0
- package/dist/tools/get-features.d.ts +0 -5
- package/dist/tools/get-features.d.ts.map +1 -1
- package/dist/tools/get-features.js +0 -2
- package/dist/tools/get-features.js.map +1 -1
- package/dist/tools/get-features.test.d.ts +5 -0
- package/dist/tools/get-features.test.d.ts.map +1 -0
- package/dist/tools/get-features.test.js +45 -0
- package/dist/tools/get-features.test.js.map +1 -0
- package/dist/tools/get-scaffold.d.ts +2 -2
- package/dist/tools/get-scaffold.test.d.ts +5 -0
- package/dist/tools/get-scaffold.test.d.ts.map +1 -0
- package/dist/tools/get-scaffold.test.js +194 -0
- package/dist/tools/get-scaffold.test.js.map +1 -0
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/registry.d.ts +9 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +29 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/types.d.ts +23 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +5 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/utils/cache.d.ts +21 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +45 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/docs.test.d.ts +5 -0
- package/dist/utils/docs.test.d.ts.map +1 -0
- package/dist/utils/docs.test.js +37 -0
- package/dist/utils/docs.test.js.map +1 -0
- package/dist/utils/errors.d.ts +8 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +19 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/examples/api-patterns.d.ts +3 -0
- package/dist/utils/examples/api-patterns.d.ts.map +1 -0
- package/dist/utils/examples/api-patterns.js +19 -0
- package/dist/utils/examples/api-patterns.js.map +1 -0
- package/dist/utils/examples/component-patterns.d.ts +3 -0
- package/dist/utils/examples/component-patterns.d.ts.map +1 -0
- package/dist/utils/examples/component-patterns.js +71 -0
- package/dist/utils/examples/component-patterns.js.map +1 -0
- package/dist/utils/examples/context-patterns.d.ts +3 -0
- package/dist/utils/examples/context-patterns.d.ts.map +1 -0
- package/dist/utils/examples/context-patterns.js +32 -0
- package/dist/utils/examples/context-patterns.js.map +1 -0
- package/dist/utils/examples/hook-patterns.d.ts +3 -0
- package/dist/utils/examples/hook-patterns.d.ts.map +1 -0
- package/dist/utils/examples/hook-patterns.js +55 -0
- package/dist/utils/examples/hook-patterns.js.map +1 -0
- package/dist/utils/examples/i18n-patterns.d.ts +3 -0
- package/dist/utils/examples/i18n-patterns.d.ts.map +1 -0
- package/dist/utils/examples/i18n-patterns.js +43 -0
- package/dist/utils/examples/i18n-patterns.js.map +1 -0
- package/dist/utils/examples/index.d.ts +12 -0
- package/dist/utils/examples/index.d.ts.map +1 -0
- package/dist/utils/examples/index.js +69 -0
- package/dist/utils/examples/index.js.map +1 -0
- package/dist/utils/examples/mobile-patterns.d.ts +3 -0
- package/dist/utils/examples/mobile-patterns.d.ts.map +1 -0
- package/dist/utils/examples/mobile-patterns.js +38 -0
- package/dist/utils/examples/mobile-patterns.js.map +1 -0
- package/dist/utils/examples/page-patterns.d.ts +3 -0
- package/dist/utils/examples/page-patterns.d.ts.map +1 -0
- package/dist/utils/examples/page-patterns.js +34 -0
- package/dist/utils/examples/page-patterns.js.map +1 -0
- package/dist/utils/examples/store-patterns.d.ts +3 -0
- package/dist/utils/examples/store-patterns.d.ts.map +1 -0
- package/dist/utils/examples/store-patterns.js +40 -0
- package/dist/utils/examples/store-patterns.js.map +1 -0
- package/dist/utils/examples/test-patterns.d.ts +3 -0
- package/dist/utils/examples/test-patterns.d.ts.map +1 -0
- package/dist/utils/examples/test-patterns.js +58 -0
- package/dist/utils/examples/test-patterns.js.map +1 -0
- package/dist/utils/examples/types.d.ts +17 -0
- package/dist/utils/examples/types.d.ts.map +1 -0
- package/dist/utils/examples/types.js +2 -0
- package/dist/utils/examples/types.js.map +1 -0
- package/dist/utils/examples/utility-patterns.d.ts +3 -0
- package/dist/utils/examples/utility-patterns.d.ts.map +1 -0
- package/dist/utils/examples/utility-patterns.js +77 -0
- package/dist/utils/examples/utility-patterns.js.map +1 -0
- package/dist/utils/index.d.ts +5 -3
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/paths.d.ts +6 -25
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +11 -40
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/paths.test.d.ts +2 -0
- package/dist/utils/paths.test.d.ts.map +1 -0
- package/dist/utils/paths.test.js +17 -0
- package/dist/utils/paths.test.js.map +1 -0
- package/dist/utils/scaffold/commands.d.ts +11 -0
- package/dist/utils/scaffold/commands.d.ts.map +1 -0
- package/dist/utils/scaffold/commands.js +22 -0
- package/dist/utils/scaffold/commands.js.map +1 -0
- package/dist/utils/scaffold/compute.d.ts +18 -0
- package/dist/utils/scaffold/compute.d.ts.map +1 -0
- package/dist/utils/scaffold/compute.js +78 -0
- package/dist/utils/scaffold/compute.js.map +1 -0
- package/dist/utils/scaffold/dependencies.d.ts +32 -0
- package/dist/utils/scaffold/dependencies.d.ts.map +1 -0
- package/dist/utils/scaffold/dependencies.js +107 -0
- package/dist/utils/scaffold/dependencies.js.map +1 -0
- package/dist/utils/scaffold/file-structure.d.ts +23 -0
- package/dist/utils/scaffold/file-structure.d.ts.map +1 -0
- package/dist/utils/scaffold/file-structure.js +62 -0
- package/dist/utils/scaffold/file-structure.js.map +1 -0
- package/dist/utils/scaffold/generators.d.ts +17 -0
- package/dist/utils/scaffold/generators.d.ts.map +1 -0
- package/dist/utils/{scaffold.js → scaffold/generators.js} +6 -254
- package/dist/utils/scaffold/generators.js.map +1 -0
- package/dist/utils/scaffold/index.d.ts +11 -0
- package/dist/utils/scaffold/index.d.ts.map +1 -0
- package/dist/utils/scaffold/index.js +11 -0
- package/dist/utils/scaffold/index.js.map +1 -0
- package/package.json +1 -1
- package/templates/.github/workflows/release.yml +1 -1
- package/templates/e2e/tests/home.spec.ts +2 -2
- package/templates/e2e/tests/language.spec.ts +7 -3
- package/dist/utils/examples.d.ts +0 -27
- package/dist/utils/examples.d.ts.map +0 -1
- package/dist/utils/examples.js +0 -438
- package/dist/utils/examples.js.map +0 -1
- package/dist/utils/scaffold.d.ts +0 -59
- package/dist/utils/scaffold.d.ts.map +0 -1
- package/dist/utils/scaffold.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-scaffold.test.js","sourceRoot":"","sources":["../../src/tools/get-scaffold.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC;YACzC,QAAQ,EAAE,CAAC,iBAAiB,CAAC;SAC9B,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAEtE,kCAAkC;QAClC,MAAM,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnD,kDAAkD;QAClD,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhD,+BAA+B;QAC/B,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,mDAAmD,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,mDAAmD,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACzE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACrE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;QAErF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAEhE,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAElE,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;QAEhF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAEtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAExD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACvE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACxD,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3D,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,MAAM,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { getFeatures, getFeaturesToolDefinition, type FeatureSummary } from './get-features.js';
|
|
2
2
|
export { getScaffold, getScaffoldSchema, getScaffoldToolDefinition, type GetScaffoldInput } from './get-scaffold.js';
|
|
3
3
|
export { getExample, getExampleSchema, getExampleToolDefinition, type GetExampleInput } from './get-example.js';
|
|
4
|
+
export { TOOL_REGISTRY, getToolDefinitions } from './registry.js';
|
|
5
|
+
export type { ToolDefinition, ToolConfig, ToolRegistry } from './types.js';
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { getFeatures, getFeaturesToolDefinition } from './get-features.js';
|
|
2
2
|
export { getScaffold, getScaffoldSchema, getScaffoldToolDefinition } from './get-scaffold.js';
|
|
3
3
|
export { getExample, getExampleSchema, getExampleToolDefinition } from './get-example.js';
|
|
4
|
+
export { TOOL_REGISTRY, getToolDefinitions } from './registry.js';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAuB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAuB,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,yBAAyB,EAAyB,MAAM,mBAAmB,CAAC;AACrH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,wBAAwB,EAAwB,MAAM,kBAAkB,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Registry - Single source of truth for all MCP tools.
|
|
3
|
+
*/
|
|
4
|
+
import type { ToolRegistry, ToolDefinition } from './types.js';
|
|
5
|
+
/** All registered MCP tools. */
|
|
6
|
+
export declare const TOOL_REGISTRY: ToolRegistry;
|
|
7
|
+
/** Get all tool definitions for ListToolsRequest. */
|
|
8
|
+
export declare function getToolDefinitions(): ToolDefinition[];
|
|
9
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK/D,gCAAgC;AAChC,eAAO,MAAM,aAAa,EAAE,YAkB3B,CAAC;AAEF,qDAAqD;AACrD,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAErD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Registry - Single source of truth for all MCP tools.
|
|
3
|
+
*/
|
|
4
|
+
import { getFeatures, getFeaturesToolDefinition } from './get-features.js';
|
|
5
|
+
import { getScaffold, getScaffoldSchema, getScaffoldToolDefinition } from './get-scaffold.js';
|
|
6
|
+
import { getExample, getExampleSchema, getExampleToolDefinition } from './get-example.js';
|
|
7
|
+
/** All registered MCP tools. */
|
|
8
|
+
export const TOOL_REGISTRY = {
|
|
9
|
+
get_features: {
|
|
10
|
+
definition: getFeaturesToolDefinition,
|
|
11
|
+
schema: null,
|
|
12
|
+
handler: getFeatures,
|
|
13
|
+
},
|
|
14
|
+
get_scaffold: {
|
|
15
|
+
definition: getScaffoldToolDefinition,
|
|
16
|
+
schema: getScaffoldSchema,
|
|
17
|
+
handler: getScaffold,
|
|
18
|
+
},
|
|
19
|
+
get_example: {
|
|
20
|
+
definition: getExampleToolDefinition,
|
|
21
|
+
schema: getExampleSchema,
|
|
22
|
+
handler: getExample,
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
/** Get all tool definitions for ListToolsRequest. */
|
|
26
|
+
export function getToolDefinitions() {
|
|
27
|
+
return Object.values(TOOL_REGISTRY).map((tool) => tool.definition);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE1F,gCAAgC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,YAAY,EAAE;QACZ,UAAU,EAAE,yBAAyB;QACrC,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,WAAW;KACrB;IAED,YAAY,EAAE;QACZ,UAAU,EAAE,yBAAyB;QACrC,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,WAAW;KACrB;IAED,WAAW,EAAE;QACX,UAAU,EAAE,wBAAwB;QACpC,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,UAAU;KACpB;CACF,CAAC;AAEF,qDAAqD;AACrD,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for MCP tools
|
|
3
|
+
*/
|
|
4
|
+
import type { z } from 'zod';
|
|
5
|
+
/** MCP tool definition schema for ListToolsRequest. */
|
|
6
|
+
export interface ToolDefinition {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: 'object';
|
|
11
|
+
properties: Record<string, unknown>;
|
|
12
|
+
required: string[];
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/** Tool configuration - discriminated by schema presence. */
|
|
16
|
+
export interface ToolConfig {
|
|
17
|
+
definition: ToolDefinition;
|
|
18
|
+
schema: z.ZodType | null;
|
|
19
|
+
handler: Function;
|
|
20
|
+
}
|
|
21
|
+
/** Tool registry type. */
|
|
22
|
+
export type ToolRegistry = Record<string, ToolConfig>;
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;IAIzB,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,0BAA0B;AAC1B,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple in-memory cache utility.
|
|
3
|
+
*/
|
|
4
|
+
/** Creates a typed cache with getOrSet pattern. */
|
|
5
|
+
export declare function createCache<T>(): {
|
|
6
|
+
get: (key: string) => T | undefined;
|
|
7
|
+
set: (key: string, value: T) => void;
|
|
8
|
+
has: (key: string) => boolean;
|
|
9
|
+
clear: () => void;
|
|
10
|
+
/** Gets cached value or computes and caches it. */
|
|
11
|
+
getOrSet(key: string, factory: () => Promise<T>): Promise<T>;
|
|
12
|
+
};
|
|
13
|
+
/** Creates a simple singleton cache (one value, no key). */
|
|
14
|
+
export declare function createSingletonCache<T>(): {
|
|
15
|
+
get: () => T | null;
|
|
16
|
+
set: (value: T) => void;
|
|
17
|
+
clear: () => void;
|
|
18
|
+
/** Gets cached value or computes and caches it. */
|
|
19
|
+
getOrSet(factory: () => Promise<T>): Promise<T>;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mDAAmD;AACnD,wBAAgB,WAAW,CAAC,CAAC;eAId,MAAM,KAAG,CAAC,GAAG,SAAS;eACtB,MAAM,SAAS,CAAC,KAAG,IAAI;eAGvB,MAAM,KAAG,OAAO;iBAChB,IAAI;IAEf,mDAAmD;kBAC/B,MAAM,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;EASrE;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,CAAC;eAIzB,CAAC,GAAG,IAAI;iBACJ,CAAC,KAAG,IAAI;iBAGV,IAAI;IAIf,mDAAmD;sBAC3B,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;EAOxD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple in-memory cache utility.
|
|
3
|
+
*/
|
|
4
|
+
/** Creates a typed cache with getOrSet pattern. */
|
|
5
|
+
export function createCache() {
|
|
6
|
+
const cache = new Map();
|
|
7
|
+
return {
|
|
8
|
+
get: (key) => cache.get(key),
|
|
9
|
+
set: (key, value) => {
|
|
10
|
+
cache.set(key, value);
|
|
11
|
+
},
|
|
12
|
+
has: (key) => cache.has(key),
|
|
13
|
+
clear: () => cache.clear(),
|
|
14
|
+
/** Gets cached value or computes and caches it. */
|
|
15
|
+
async getOrSet(key, factory) {
|
|
16
|
+
const existing = cache.get(key);
|
|
17
|
+
if (existing !== undefined)
|
|
18
|
+
return existing;
|
|
19
|
+
const value = await factory();
|
|
20
|
+
cache.set(key, value);
|
|
21
|
+
return value;
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** Creates a simple singleton cache (one value, no key). */
|
|
26
|
+
export function createSingletonCache() {
|
|
27
|
+
let cached = null;
|
|
28
|
+
return {
|
|
29
|
+
get: () => cached,
|
|
30
|
+
set: (value) => {
|
|
31
|
+
cached = value;
|
|
32
|
+
},
|
|
33
|
+
clear: () => {
|
|
34
|
+
cached = null;
|
|
35
|
+
},
|
|
36
|
+
/** Gets cached value or computes and caches it. */
|
|
37
|
+
async getOrSet(factory) {
|
|
38
|
+
if (cached !== null)
|
|
39
|
+
return cached;
|
|
40
|
+
cached = await factory();
|
|
41
|
+
return cached;
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mDAAmD;AACnD,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAa,CAAC;IAEnC,OAAO;QACL,GAAG,EAAE,CAAC,GAAW,EAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QACnD,GAAG,EAAE,CAAC,GAAW,EAAE,KAAQ,EAAQ,EAAE;YACnC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,GAAG,EAAE,CAAC,GAAW,EAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAC7C,KAAK,EAAE,GAAS,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE;QAEhC,mDAAmD;QACnD,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,OAAyB;YACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAC;YAE5C,MAAM,KAAK,GAAG,MAAM,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,oBAAoB;IAClC,IAAI,MAAM,GAAa,IAAI,CAAC;IAE5B,OAAO;QACL,GAAG,EAAE,GAAa,EAAE,CAAC,MAAM;QAC3B,GAAG,EAAE,CAAC,KAAQ,EAAQ,EAAE;YACtB,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;QACD,KAAK,EAAE,GAAS,EAAE;YAChB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,mDAAmD;QACnD,KAAK,CAAC,QAAQ,CAAC,OAAyB;YACtC,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,MAAM,CAAC;YAEnC,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.test.d.ts","sourceRoot":"","sources":["../../src/utils/docs.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for docs utilities
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect } from 'vitest';
|
|
5
|
+
import { computeDocsForFeatures, computeDocsContent } from './docs.js';
|
|
6
|
+
describe('docs utilities', () => {
|
|
7
|
+
it('includes universal docs and excludes WORKFLOW.md', () => {
|
|
8
|
+
const docs = computeDocsForFeatures(['core']);
|
|
9
|
+
// Universal docs always included
|
|
10
|
+
expect(docs).toContain('docs/ARCHITECTURE.md');
|
|
11
|
+
expect(docs).toContain('docs/CODING_STANDARDS.md');
|
|
12
|
+
expect(docs).toContain('docs/COMPONENT_GUIDELINES.md');
|
|
13
|
+
expect(docs).toContain('docs/API_REFERENCE.md');
|
|
14
|
+
// WORKFLOW.md never included
|
|
15
|
+
expect(docs).not.toContain('docs/WORKFLOW.md');
|
|
16
|
+
expect(docs).toHaveLength(4);
|
|
17
|
+
});
|
|
18
|
+
it('includes feature-specific docs only when feature selected', () => {
|
|
19
|
+
const coreOnly = computeDocsForFeatures(['core']);
|
|
20
|
+
const withTesting = computeDocsForFeatures(['core', 'testing']);
|
|
21
|
+
const withI18n = computeDocsForFeatures(['core', 'i18n']);
|
|
22
|
+
// Testing docs
|
|
23
|
+
expect(coreOnly).not.toContain('docs/TESTING.md');
|
|
24
|
+
expect(withTesting).toContain('docs/TESTING.md');
|
|
25
|
+
expect(withTesting).toContain('docs/E2E_TESTING.md');
|
|
26
|
+
// i18n docs
|
|
27
|
+
expect(coreOnly).not.toContain('docs/INTERNATIONALIZATION.md');
|
|
28
|
+
expect(withI18n).toContain('docs/INTERNATIONALIZATION.md');
|
|
29
|
+
});
|
|
30
|
+
it('returns doc content with key sections preserved', async () => {
|
|
31
|
+
const docs = await computeDocsContent(['core']);
|
|
32
|
+
expect(Object.keys(docs)).toHaveLength(4);
|
|
33
|
+
expect(docs['docs/ARCHITECTURE.md']).toContain('# Architecture Guide');
|
|
34
|
+
expect(docs['docs/ARCHITECTURE.md']).toContain('Provider Hierarchy');
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=docs.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.test.js","sourceRoot":"","sources":["../../src/utils/docs.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEvE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,IAAI,GAAG,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9C,iCAAiC;QACjC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAEhD,6BAA6B;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,sBAAsB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAE1D,eAAe;QACf,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAErD,YAAY;QACZ,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QAC/D,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling utilities.
|
|
3
|
+
*/
|
|
4
|
+
/** Wraps async file read with fallback on error. */
|
|
5
|
+
export declare function readWithFallback<T>(operation: () => Promise<T>, fallback: T): Promise<T>;
|
|
6
|
+
/** Extracts error message from unknown error. */
|
|
7
|
+
export declare function getErrorMessage(error: unknown): string;
|
|
8
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oDAAoD;AACpD,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAM9F;AAED,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGtD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling utilities.
|
|
3
|
+
*/
|
|
4
|
+
/** Wraps async file read with fallback on error. */
|
|
5
|
+
export async function readWithFallback(operation, fallback) {
|
|
6
|
+
try {
|
|
7
|
+
return await operation();
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return fallback;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/** Extracts error message from unknown error. */
|
|
14
|
+
export function getErrorMessage(error) {
|
|
15
|
+
if (error instanceof Error)
|
|
16
|
+
return error.message;
|
|
17
|
+
return String(error);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAI,SAA2B,EAAE,QAAW;IAChF,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-patterns.d.ts","sourceRoot":"","sources":["../../../src/utils/examples/api-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,UAiBzB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const apiPatterns = {
|
|
2
|
+
'api-client': {
|
|
3
|
+
file: 'src/lib/api.ts',
|
|
4
|
+
description: 'Typed API client with error handling',
|
|
5
|
+
keyPoints: [
|
|
6
|
+
'Custom ApiClientError class',
|
|
7
|
+
'Generic request function',
|
|
8
|
+
'AbortController for timeout',
|
|
9
|
+
'Error parsing from response JSON',
|
|
10
|
+
'Methods object (get, post, put, patch, delete)',
|
|
11
|
+
],
|
|
12
|
+
},
|
|
13
|
+
'use-query-hook': {
|
|
14
|
+
file: 'src/hooks/useExampleQuery.ts',
|
|
15
|
+
description: 'TanStack Query data fetching hook',
|
|
16
|
+
keyPoints: ['useQuery with typed response', 'queryKey for cache management', 'Separate fetch function'],
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=api-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-patterns.js","sourceRoot":"","sources":["../../../src/utils/examples/api-patterns.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,YAAY,EAAE;QACZ,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,sCAAsC;QACnD,SAAS,EAAE;YACT,6BAA6B;YAC7B,0BAA0B;YAC1B,6BAA6B;YAC7B,kCAAkC;YAClC,gDAAgD;SACjD;KACF;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,mCAAmC;QAChD,SAAS,EAAE,CAAC,8BAA8B,EAAE,+BAA+B,EAAE,yBAAyB,CAAC;KACxG;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-patterns.d.ts","sourceRoot":"","sources":["../../../src/utils/examples/component-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,iBAAiB,EAAE,UAqE/B,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export const componentPatterns = {
|
|
2
|
+
'component-ui': {
|
|
3
|
+
file: 'src/components/ui/button.tsx',
|
|
4
|
+
description: 'Shadcn/UI component with CVA variants and forwardRef',
|
|
5
|
+
keyPoints: [
|
|
6
|
+
'Uses forwardRef for ref forwarding',
|
|
7
|
+
'CVA (class-variance-authority) for style variants',
|
|
8
|
+
'cn() utility for class merging',
|
|
9
|
+
'Named export (not default)',
|
|
10
|
+
'Props interface extends HTML attributes + VariantProps',
|
|
11
|
+
'Radix Slot for polymorphic "asChild" prop',
|
|
12
|
+
],
|
|
13
|
+
},
|
|
14
|
+
'component-shared': {
|
|
15
|
+
file: 'src/components/shared/ThemeToggle/ThemeToggle.tsx',
|
|
16
|
+
description: 'Shared feature component with store integration',
|
|
17
|
+
keyPoints: [
|
|
18
|
+
'Named function export',
|
|
19
|
+
'Located in subdirectory with index.ts barrel',
|
|
20
|
+
'Uses Zustand store with selectors',
|
|
21
|
+
'Integrates with Lingui i18n (t() function)',
|
|
22
|
+
'Composes UI components (Button, icons)',
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
'component-layout': {
|
|
26
|
+
file: 'src/components/layout/Header.tsx',
|
|
27
|
+
description: 'Layout component for page structure',
|
|
28
|
+
keyPoints: [
|
|
29
|
+
'Named function export',
|
|
30
|
+
'Uses Tailwind container pattern',
|
|
31
|
+
'Composes shared components',
|
|
32
|
+
'Trans component for i18n text',
|
|
33
|
+
'No props (stateless layout)',
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
'button-variants': {
|
|
37
|
+
file: 'src/components/ui/button.tsx',
|
|
38
|
+
description: 'Button with CVA variants',
|
|
39
|
+
keyPoints: [
|
|
40
|
+
'variant: default, destructive, outline, secondary, ghost, link',
|
|
41
|
+
'size: default, sm, lg, icon',
|
|
42
|
+
'asChild prop for polymorphic rendering',
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
'forward-ref-component': {
|
|
46
|
+
file: 'src/components/ui/button.tsx',
|
|
47
|
+
description: 'forwardRef component pattern',
|
|
48
|
+
keyPoints: ['React.forwardRef<HTMLElement, Props>', 'ref passed to inner element', 'displayName set for DevTools'],
|
|
49
|
+
},
|
|
50
|
+
'error-boundary': {
|
|
51
|
+
file: 'src/components/shared/ErrorBoundary/ErrorBoundary.tsx',
|
|
52
|
+
description: 'Error boundary with reset functionality',
|
|
53
|
+
keyPoints: [
|
|
54
|
+
'Class component with getDerivedStateFromError',
|
|
55
|
+
'componentDidCatch for logging',
|
|
56
|
+
'Reset button to recover',
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
'seo-component': {
|
|
60
|
+
file: 'src/components/shared/SEO/SEO.tsx',
|
|
61
|
+
description: 'SEO meta tags component (React 19)',
|
|
62
|
+
keyPoints: [
|
|
63
|
+
'React 19 native head hoisting',
|
|
64
|
+
'title, meta, link in JSX',
|
|
65
|
+
'Open Graph tags',
|
|
66
|
+
'Twitter Card tags',
|
|
67
|
+
'Conditional rendering for optional tags',
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=component-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-patterns.js","sourceRoot":"","sources":["../../../src/utils/examples/component-patterns.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAe;IAC3C,cAAc,EAAE;QACd,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,sDAAsD;QACnE,SAAS,EAAE;YACT,oCAAoC;YACpC,mDAAmD;YACnD,gCAAgC;YAChC,4BAA4B;YAC5B,wDAAwD;YACxD,2CAA2C;SAC5C;KACF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,mDAAmD;QACzD,WAAW,EAAE,iDAAiD;QAC9D,SAAS,EAAE;YACT,uBAAuB;YACvB,8CAA8C;YAC9C,mCAAmC;YACnC,4CAA4C;YAC5C,wCAAwC;SACzC;KACF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,kCAAkC;QACxC,WAAW,EAAE,qCAAqC;QAClD,SAAS,EAAE;YACT,uBAAuB;YACvB,iCAAiC;YACjC,4BAA4B;YAC5B,+BAA+B;YAC/B,6BAA6B;SAC9B;KACF;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,0BAA0B;QACvC,SAAS,EAAE;YACT,gEAAgE;YAChE,6BAA6B;YAC7B,wCAAwC;SACzC;KACF;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,sCAAsC,EAAE,6BAA6B,EAAE,8BAA8B,CAAC;KACnH;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,uDAAuD;QAC7D,WAAW,EAAE,yCAAyC;QACtD,SAAS,EAAE;YACT,+CAA+C;YAC/C,+BAA+B;YAC/B,yBAAyB;SAC1B;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,mCAAmC;QACzC,WAAW,EAAE,oCAAoC;QACjD,SAAS,EAAE;YACT,+BAA+B;YAC/B,0BAA0B;YAC1B,iBAAiB;YACjB,mBAAmB;YACnB,yCAAyC;SAC1C;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-patterns.d.ts","sourceRoot":"","sources":["../../../src/utils/examples/context-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,eAAe,EAAE,UA8B7B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const contextPatterns = {
|
|
2
|
+
'context-provider': {
|
|
3
|
+
file: 'src/contexts/mobileContext.tsx',
|
|
4
|
+
description: 'React Context with provider and hook',
|
|
5
|
+
keyPoints: [
|
|
6
|
+
'Separate Context and Provider',
|
|
7
|
+
'useMemo for context value',
|
|
8
|
+
'Custom hook with error if outside provider',
|
|
9
|
+
'useEffect with resize listener',
|
|
10
|
+
'requestAnimationFrame for debouncing',
|
|
11
|
+
],
|
|
12
|
+
},
|
|
13
|
+
'query-provider': {
|
|
14
|
+
file: 'src/contexts/queryContext.tsx',
|
|
15
|
+
description: 'TanStack Query provider setup',
|
|
16
|
+
keyPoints: [
|
|
17
|
+
'QueryClient with default options',
|
|
18
|
+
'staleTime, gcTime, retry configuration',
|
|
19
|
+
'QueryClientProvider wrapper',
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
'performance-context': {
|
|
23
|
+
file: 'src/contexts/performanceContext.tsx',
|
|
24
|
+
description: 'Performance monitoring context',
|
|
25
|
+
keyPoints: [
|
|
26
|
+
'Lazy loading for zero prod overhead',
|
|
27
|
+
'usePerformance hook never throws',
|
|
28
|
+
'React Profiler integration',
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=context-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-patterns.js","sourceRoot":"","sources":["../../../src/utils/examples/context-patterns.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAe;IACzC,kBAAkB,EAAE;QAClB,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,sCAAsC;QACnD,SAAS,EAAE;YACT,+BAA+B;YAC/B,2BAA2B;YAC3B,4CAA4C;YAC5C,gCAAgC;YAChC,sCAAsC;SACvC;KACF;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,+BAA+B;QAC5C,SAAS,EAAE;YACT,kCAAkC;YAClC,wCAAwC;YACxC,6BAA6B;SAC9B;KACF;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,qCAAqC;QAC3C,WAAW,EAAE,gCAAgC;QAC7C,SAAS,EAAE;YACT,qCAAqC;YACrC,kCAAkC;YAClC,4BAA4B;SAC7B;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-patterns.d.ts","sourceRoot":"","sources":["../../../src/utils/examples/hook-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,YAAY,EAAE,UAqD1B,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export const hookPatterns = {
|
|
2
|
+
'hook-state': {
|
|
3
|
+
file: 'src/hooks/useMediaQuery.ts',
|
|
4
|
+
description: 'State hook with browser API and cleanup',
|
|
5
|
+
keyPoints: [
|
|
6
|
+
'useRef for persistent MediaQueryList',
|
|
7
|
+
'useState with SSR-safe initialization',
|
|
8
|
+
'useEffect with cleanup function',
|
|
9
|
+
'Exports constants alongside hook (BREAKPOINTS)',
|
|
10
|
+
'Convenience wrapper hooks (useIsMobile, useIsDesktop)',
|
|
11
|
+
],
|
|
12
|
+
},
|
|
13
|
+
'hook-query': {
|
|
14
|
+
file: 'src/hooks/useExampleQuery.ts',
|
|
15
|
+
description: 'TanStack Query hook for data fetching',
|
|
16
|
+
keyPoints: [
|
|
17
|
+
'Separate async fetchFn outside hook',
|
|
18
|
+
'Typed with generics (useQuery<Todo[]>)',
|
|
19
|
+
'Namespaced queryKey array',
|
|
20
|
+
'Uses centralized API client',
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
'hook-form': {
|
|
24
|
+
file: 'src/hooks/useRegisterForm.ts',
|
|
25
|
+
description: 'React Hook Form + Zod validation hook',
|
|
26
|
+
keyPoints: [
|
|
27
|
+
'zodResolver for Zod integration',
|
|
28
|
+
'Type-safe with inferred RegisterFormData',
|
|
29
|
+
'Returns form object + handlers + reset',
|
|
30
|
+
'Extracts commonly used state (isSubmitting, errors)',
|
|
31
|
+
'Uses schema with refine() for cross-field validation',
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
'hook-effect': {
|
|
35
|
+
file: 'src/hooks/useThemeEffect.ts',
|
|
36
|
+
description: 'Effect-only hook with no return value',
|
|
37
|
+
keyPoints: [
|
|
38
|
+
'useEffect with conditional listener',
|
|
39
|
+
'Zustand store subscription',
|
|
40
|
+
'Cleanup function for event listener',
|
|
41
|
+
'DOM manipulation (classList)',
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
'use-language-hook': {
|
|
45
|
+
file: 'src/hooks/useLanguage.ts',
|
|
46
|
+
description: 'Hook for language/locale management',
|
|
47
|
+
keyPoints: [
|
|
48
|
+
'Integrates with Lingui i18n',
|
|
49
|
+
'useCallback for memoized async function',
|
|
50
|
+
'Persists to localStorage',
|
|
51
|
+
'Returns object with state + action',
|
|
52
|
+
],
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=hook-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-patterns.js","sourceRoot":"","sources":["../../../src/utils/examples/hook-patterns.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAe;IACtC,YAAY,EAAE;QACZ,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,yCAAyC;QACtD,SAAS,EAAE;YACT,sCAAsC;YACtC,uCAAuC;YACvC,iCAAiC;YACjC,gDAAgD;YAChD,uDAAuD;SACxD;KACF;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,uCAAuC;QACpD,SAAS,EAAE;YACT,qCAAqC;YACrC,wCAAwC;YACxC,2BAA2B;YAC3B,6BAA6B;SAC9B;KACF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,uCAAuC;QACpD,SAAS,EAAE;YACT,iCAAiC;YACjC,0CAA0C;YAC1C,wCAAwC;YACxC,qDAAqD;YACrD,sDAAsD;SACvD;KACF;IACD,aAAa,EAAE;QACb,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,uCAAuC;QACpD,SAAS,EAAE;YACT,qCAAqC;YACrC,4BAA4B;YAC5B,qCAAqC;YACrC,8BAA8B;SAC/B;KACF;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,qCAAqC;QAClD,SAAS,EAAE;YACT,6BAA6B;YAC7B,yCAAyC;YACzC,0BAA0B;YAC1B,oCAAoC;SACrC;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-patterns.d.ts","sourceRoot":"","sources":["../../../src/utils/examples/i18n-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,YAAY,EAAE,UAyC1B,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export const i18nPatterns = {
|
|
2
|
+
'i18n-index': {
|
|
3
|
+
file: 'src/i18n/index.ts',
|
|
4
|
+
description: 'i18n barrel export with initialization functions',
|
|
5
|
+
keyPoints: [
|
|
6
|
+
'Re-exports i18n instance from @lingui/core',
|
|
7
|
+
'initI18n() async function for app initialization',
|
|
8
|
+
'getLocale() returns current active locale',
|
|
9
|
+
'Re-exports config, detectLanguage, and dynamicActivate',
|
|
10
|
+
],
|
|
11
|
+
},
|
|
12
|
+
'trans-component': {
|
|
13
|
+
file: 'src/components/layout/Header.tsx',
|
|
14
|
+
description: 'Trans component usage for JSX text',
|
|
15
|
+
keyPoints: [
|
|
16
|
+
'Import from @lingui/react/macro',
|
|
17
|
+
'comment prop is REQUIRED (ESLint enforced)',
|
|
18
|
+
'Wraps user-visible text',
|
|
19
|
+
'Can contain JSX children',
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
't-function': {
|
|
23
|
+
file: 'src/components/shared/ThemeToggle/ThemeToggle.tsx',
|
|
24
|
+
description: 't() function for programmatic text',
|
|
25
|
+
keyPoints: [
|
|
26
|
+
'useLingui() hook for t function',
|
|
27
|
+
'Object syntax: t({ message, comment })',
|
|
28
|
+
'comment is REQUIRED',
|
|
29
|
+
'Use for dynamic text, attributes',
|
|
30
|
+
],
|
|
31
|
+
},
|
|
32
|
+
'language-switcher': {
|
|
33
|
+
file: 'src/components/shared/LanguageSwitcher/LanguageSwitcher.tsx',
|
|
34
|
+
description: 'Language selection component',
|
|
35
|
+
keyPoints: [
|
|
36
|
+
'useLanguage() hook',
|
|
37
|
+
'DropdownMenu for selection',
|
|
38
|
+
'supportedLocales array',
|
|
39
|
+
'changeLanguage async function',
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=i18n-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-patterns.js","sourceRoot":"","sources":["../../../src/utils/examples/i18n-patterns.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAe;IACtC,YAAY,EAAE;QACZ,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,kDAAkD;QAC/D,SAAS,EAAE;YACT,4CAA4C;YAC5C,kDAAkD;YAClD,2CAA2C;YAC3C,wDAAwD;SACzD;KACF;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,kCAAkC;QACxC,WAAW,EAAE,oCAAoC;QACjD,SAAS,EAAE;YACT,iCAAiC;YACjC,4CAA4C;YAC5C,yBAAyB;YACzB,0BAA0B;SAC3B;KACF;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,mDAAmD;QACzD,WAAW,EAAE,oCAAoC;QACjD,SAAS,EAAE;YACT,iCAAiC;YACjC,wCAAwC;YACxC,qBAAqB;YACrB,kCAAkC;SACnC;KACF;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,6DAA6D;QACnE,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE;YACT,oBAAoB;YACpB,4BAA4B;YAC5B,wBAAwB;YACxB,+BAA+B;SAChC;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code examples - provides real code patterns from the react-spa-scaffold repository.
|
|
3
|
+
*/
|
|
4
|
+
import type { CodeExample } from './types.js';
|
|
5
|
+
export type { CodeExample } from './types.js';
|
|
6
|
+
/** Get all available pattern names. */
|
|
7
|
+
export declare function getAvailablePatterns(): string[];
|
|
8
|
+
/** Get code example for a pattern. */
|
|
9
|
+
export declare function getCodeExample(pattern: string): Promise<CodeExample | null>;
|
|
10
|
+
/** Get all examples for a list of patterns. */
|
|
11
|
+
export declare function getFeatureExamples(patterns: string[]): Promise<CodeExample[]>;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/examples/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,YAAY,CAAC;AAY1D,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAgB9C,uCAAuC;AACvC,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED,sCAAsC;AACtC,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAwBjF;AAED,+CAA+C;AAC/C,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAOnF"}
|