logicstamp-context 0.5.1 → 0.5.3

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.
Files changed (68) hide show
  1. package/LLM_CONTEXT.md +3 -3
  2. package/README.md +58 -47
  3. package/dist/cli/commands/context/tokenEstimator.d.ts.map +1 -1
  4. package/dist/cli/commands/context/tokenEstimator.js +13 -4
  5. package/dist/cli/commands/context/tokenEstimator.js.map +1 -1
  6. package/dist/cli/commands/context.d.ts +1 -1
  7. package/dist/cli/commands/context.js +4 -4
  8. package/dist/cli/commands/context.js.map +1 -1
  9. package/dist/cli/index.d.ts +1 -1
  10. package/dist/cli/index.js +1 -1
  11. package/dist/cli/parser/helpText.js +2 -2
  12. package/dist/core/astParser/detectors.d.ts.map +1 -1
  13. package/dist/core/astParser/detectors.js +18 -4
  14. package/dist/core/astParser/detectors.js.map +1 -1
  15. package/dist/core/astParser.d.ts +1 -1
  16. package/dist/core/astParser.d.ts.map +1 -1
  17. package/dist/core/astParser.js +5 -3
  18. package/dist/core/astParser.js.map +1 -1
  19. package/dist/core/pack/collector.d.ts.map +1 -1
  20. package/dist/core/pack/collector.js +3 -2
  21. package/dist/core/pack/collector.js.map +1 -1
  22. package/dist/core/pack/loader.d.ts +37 -4
  23. package/dist/core/pack/loader.d.ts.map +1 -1
  24. package/dist/core/pack/loader.js +92 -32
  25. package/dist/core/pack/loader.js.map +1 -1
  26. package/dist/core/pack/resolver.d.ts.map +1 -1
  27. package/dist/core/pack/resolver.js +4 -3
  28. package/dist/core/pack/resolver.js.map +1 -1
  29. package/dist/core/pack.d.ts.map +1 -1
  30. package/dist/core/pack.js +20 -4
  31. package/dist/core/pack.js.map +1 -1
  32. package/dist/extractors/express/expressExtractor.d.ts.map +1 -1
  33. package/dist/extractors/express/expressExtractor.js +12 -5
  34. package/dist/extractors/express/expressExtractor.js.map +1 -1
  35. package/dist/extractors/react/hookParameterExtractor.js +4 -4
  36. package/dist/extractors/react/hookParameterExtractor.js.map +1 -1
  37. package/dist/extractors/react/propExtractor.d.ts.map +1 -1
  38. package/dist/extractors/react/propExtractor.js +33 -27
  39. package/dist/extractors/react/propExtractor.js.map +1 -1
  40. package/dist/extractors/styling/chakra.d.ts.map +1 -1
  41. package/dist/extractors/styling/chakra.js +2 -1
  42. package/dist/extractors/styling/chakra.js.map +1 -1
  43. package/dist/extractors/styling/motion.d.ts.map +1 -1
  44. package/dist/extractors/styling/motion.js +10 -6
  45. package/dist/extractors/styling/motion.js.map +1 -1
  46. package/dist/extractors/styling/shadcn.d.ts.map +1 -1
  47. package/dist/extractors/styling/shadcn.js +2 -4
  48. package/dist/extractors/styling/shadcn.js.map +1 -1
  49. package/dist/extractors/styling/styleExtractor.d.ts +1 -1
  50. package/dist/extractors/styling/styleExtractor.d.ts.map +1 -1
  51. package/dist/extractors/styling/styleExtractor.js +6 -5
  52. package/dist/extractors/styling/styleExtractor.js.map +1 -1
  53. package/dist/extractors/styling/tailwind.d.ts.map +1 -1
  54. package/dist/extractors/styling/tailwind.js +4 -12
  55. package/dist/extractors/styling/tailwind.js.map +1 -1
  56. package/dist/extractors/vue/componentExtractor.d.ts.map +1 -1
  57. package/dist/extractors/vue/componentExtractor.js +8 -1
  58. package/dist/extractors/vue/componentExtractor.js.map +1 -1
  59. package/dist/index.d.ts +3 -1
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +4 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/utils/tokens.d.ts +6 -0
  64. package/dist/utils/tokens.d.ts.map +1 -1
  65. package/dist/utils/tokens.js +22 -0
  66. package/dist/utils/tokens.js.map +1 -1
  67. package/package.json +2 -2
  68. package/schema/logicstamp.context.schema.json +270 -3
@@ -2,7 +2,7 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "https://logicstamp.dev/schemas/context/v0.1.json",
4
4
  "title": "LogicStamp Context Bundle",
5
- "description": "JSON Schema for LogicStamp Context bundles - AI-ready documentation of React/TypeScript codebases. Each bundle represents component contracts, dependency graphs, and metadata. For detailed documentation on the meta.missing field and dependency resolution, see README.md 'Understanding the Meta Field' section.",
5
+ "description": "JSON Schema for LogicStamp Context bundles - AI-ready documentation of TypeScript codebases. Each bundle represents component contracts, dependency graphs, and metadata. For detailed documentation on the meta.missing field and dependency resolution, see README.md 'Understanding the Meta Field' section.",
6
6
  "type": "array",
7
7
  "items": {
8
8
  "$ref": "#/definitions/LogicStampBundle"
@@ -207,6 +207,10 @@
207
207
  "$ref": "#/definitions/StyleMetadata",
208
208
  "description": "Optional style metadata (only when --include-style is used)"
209
209
  },
210
+ "nextjs": {
211
+ "$ref": "#/definitions/NextJSMetadata",
212
+ "description": "Optional Next.js App Router metadata (route roles, segment paths, metadata exports)"
213
+ },
210
214
  "exports": {
211
215
  "oneOf": [
212
216
  {
@@ -701,7 +705,6 @@
701
705
  "description": "CSS properties found in the extracted CSS"
702
706
  }
703
707
  },
704
- "required": ["css"],
705
708
  "additionalProperties": false
706
709
  },
707
710
  "styledComponents": {
@@ -758,7 +761,6 @@
758
761
  "description": "Uses viewport-triggered animations (useInView, viewport)"
759
762
  }
760
763
  },
761
- "required": ["gestures", "layoutAnimations", "viewportAnimations"],
762
764
  "additionalProperties": false
763
765
  }
764
766
  },
@@ -811,6 +813,231 @@
811
813
  },
812
814
  "required": ["features"],
813
815
  "additionalProperties": false
816
+ },
817
+ "antd": {
818
+ "type": "object",
819
+ "properties": {
820
+ "components": {
821
+ "type": "array",
822
+ "items": {
823
+ "type": "string"
824
+ },
825
+ "description": "Ant Design component names used (e.g., ['Button', 'Input', 'Form', 'Table'])"
826
+ },
827
+ "packages": {
828
+ "type": "array",
829
+ "items": {
830
+ "type": "string"
831
+ },
832
+ "description": "Ant Design packages imported (e.g., ['antd', '@ant-design/icons'])"
833
+ },
834
+ "features": {
835
+ "type": "object",
836
+ "properties": {
837
+ "usesTheme": {
838
+ "type": "boolean",
839
+ "description": "Uses theme (theme, useToken, getDesignToken)"
840
+ },
841
+ "usesConfigProvider": {
842
+ "type": "boolean",
843
+ "description": "Uses ConfigProvider for global configuration"
844
+ },
845
+ "usesForm": {
846
+ "type": "boolean",
847
+ "description": "Uses Form component with validation"
848
+ },
849
+ "usesLocale": {
850
+ "type": "boolean",
851
+ "description": "Uses internationalization (useLocale, getLocale)"
852
+ },
853
+ "usesIcons": {
854
+ "type": "boolean",
855
+ "description": "Uses @ant-design/icons"
856
+ }
857
+ },
858
+ "additionalProperties": false
859
+ }
860
+ },
861
+ "required": ["features"],
862
+ "additionalProperties": false
863
+ },
864
+ "chakraUI": {
865
+ "type": "object",
866
+ "properties": {
867
+ "components": {
868
+ "type": "array",
869
+ "items": {
870
+ "type": "string"
871
+ },
872
+ "description": "Chakra UI component names used (e.g., ['Box', 'Button', 'Input', 'FormControl'])"
873
+ },
874
+ "packages": {
875
+ "type": "array",
876
+ "items": {
877
+ "type": "string"
878
+ },
879
+ "description": "Chakra UI packages imported (e.g., ['@chakra-ui/react', '@chakra-ui/icons'])"
880
+ },
881
+ "features": {
882
+ "type": "object",
883
+ "properties": {
884
+ "usesTheme": {
885
+ "type": "boolean",
886
+ "description": "Uses theme (useTheme, extendTheme, createTheme)"
887
+ },
888
+ "usesColorMode": {
889
+ "type": "boolean",
890
+ "description": "Uses color mode (useColorMode, useColorModeValue, dark/light mode)"
891
+ },
892
+ "usesResponsiveProps": {
893
+ "type": "boolean",
894
+ "description": "Uses responsive props (array syntax [base, md, lg])"
895
+ },
896
+ "usesSystemProps": {
897
+ "type": "boolean",
898
+ "description": "Uses system props on Box/Stack/Flex components"
899
+ }
900
+ },
901
+ "additionalProperties": false
902
+ }
903
+ },
904
+ "required": ["features"],
905
+ "additionalProperties": false
906
+ },
907
+ "shadcnUI": {
908
+ "type": "object",
909
+ "properties": {
910
+ "components": {
911
+ "type": "array",
912
+ "items": {
913
+ "type": "string"
914
+ },
915
+ "description": "ShadCN/UI component names used (e.g., ['Button', 'Card', 'Dialog', 'Sheet'])"
916
+ },
917
+ "variants": {
918
+ "type": "object",
919
+ "additionalProperties": {
920
+ "type": "array",
921
+ "items": {
922
+ "type": "string"
923
+ }
924
+ },
925
+ "description": "Variant usage per component type (e.g., { button: ['default', 'outline'], badge: ['secondary'] })"
926
+ },
927
+ "sizes": {
928
+ "type": "array",
929
+ "items": {
930
+ "type": "string"
931
+ },
932
+ "description": "Size prop values used (e.g., ['sm', 'lg', 'icon'])"
933
+ },
934
+ "features": {
935
+ "type": "object",
936
+ "properties": {
937
+ "usesForm": {
938
+ "type": "boolean",
939
+ "description": "Uses react-hook-form integration"
940
+ },
941
+ "usesTheme": {
942
+ "type": "boolean",
943
+ "description": "Uses theme (next-themes or dark mode)"
944
+ },
945
+ "usesIcons": {
946
+ "type": "boolean",
947
+ "description": "Uses icons (lucide-react or radix icons)"
948
+ },
949
+ "componentDensity": {
950
+ "type": "string",
951
+ "enum": ["low", "medium", "high"],
952
+ "description": "Number of ShadCN components used"
953
+ }
954
+ },
955
+ "additionalProperties": false
956
+ }
957
+ },
958
+ "required": ["features"],
959
+ "additionalProperties": false
960
+ },
961
+ "radixUI": {
962
+ "type": "object",
963
+ "properties": {
964
+ "primitives": {
965
+ "type": "object",
966
+ "additionalProperties": {
967
+ "type": "array",
968
+ "items": {
969
+ "type": "string"
970
+ }
971
+ },
972
+ "description": "Primitive components by package (e.g., { 'react-dialog': ['Dialog', 'DialogContent'], 'react-popover': ['Popover', 'PopoverTrigger'] })"
973
+ },
974
+ "patterns": {
975
+ "type": "object",
976
+ "properties": {
977
+ "controlled": {
978
+ "type": "array",
979
+ "items": {
980
+ "type": "string"
981
+ },
982
+ "description": "Components using controlled pattern"
983
+ },
984
+ "uncontrolled": {
985
+ "type": "array",
986
+ "items": {
987
+ "type": "string"
988
+ },
989
+ "description": "Components using uncontrolled pattern"
990
+ },
991
+ "portals": {
992
+ "type": "number",
993
+ "description": "Portal usage count"
994
+ },
995
+ "asChild": {
996
+ "type": "number",
997
+ "description": "asChild composition pattern count"
998
+ }
999
+ },
1000
+ "additionalProperties": false
1001
+ },
1002
+ "accessibility": {
1003
+ "type": "object",
1004
+ "properties": {
1005
+ "usesDirection": {
1006
+ "type": "boolean",
1007
+ "description": "Uses RTL/LTR support"
1008
+ },
1009
+ "usesFocusManagement": {
1010
+ "type": "boolean",
1011
+ "description": "Uses focus trapping"
1012
+ },
1013
+ "usesKeyboardNav": {
1014
+ "type": "boolean",
1015
+ "description": "Uses keyboard navigation (loop, orientation, etc.)"
1016
+ },
1017
+ "usesModal": {
1018
+ "type": "boolean",
1019
+ "description": "Uses modal dialogs"
1020
+ }
1021
+ },
1022
+ "additionalProperties": false
1023
+ },
1024
+ "features": {
1025
+ "type": "object",
1026
+ "properties": {
1027
+ "primitiveCount": {
1028
+ "type": "number",
1029
+ "description": "Total unique primitives used"
1030
+ },
1031
+ "compositionDepth": {
1032
+ "type": "string",
1033
+ "enum": ["simple", "moderate", "complex"],
1034
+ "description": "Composition complexity"
1035
+ }
1036
+ },
1037
+ "additionalProperties": false
1038
+ }
1039
+ },
1040
+ "additionalProperties": false
814
1041
  }
815
1042
  },
816
1043
  "additionalProperties": false
@@ -915,6 +1142,46 @@
915
1142
  }
916
1143
  },
917
1144
  "additionalProperties": false
1145
+ },
1146
+ "NextJSMetadata": {
1147
+ "type": "object",
1148
+ "properties": {
1149
+ "isInAppDir": {
1150
+ "type": "boolean",
1151
+ "description": "Whether the file is in the Next.js App Router directory (/app/)"
1152
+ },
1153
+ "directive": {
1154
+ "type": "string",
1155
+ "enum": ["client", "server"],
1156
+ "description": "Next.js directive ('use client' or 'use server')"
1157
+ },
1158
+ "routeRole": {
1159
+ "type": "string",
1160
+ "enum": ["page", "layout", "loading", "error", "not-found", "template", "default", "route"],
1161
+ "description": "Route role in Next.js App Router (page, layout, loading, error, not-found, template, default, route)"
1162
+ },
1163
+ "segmentPath": {
1164
+ "type": "string",
1165
+ "description": "Route path derived from file structure (e.g., '/blog/[slug]', '/api/users')"
1166
+ },
1167
+ "metadata": {
1168
+ "type": "object",
1169
+ "properties": {
1170
+ "static": {
1171
+ "type": "object",
1172
+ "additionalProperties": true,
1173
+ "description": "Static metadata from `export const metadata = {...}`"
1174
+ },
1175
+ "dynamic": {
1176
+ "type": "boolean",
1177
+ "description": "True if `export function generateMetadata()` exists"
1178
+ }
1179
+ },
1180
+ "additionalProperties": false,
1181
+ "description": "Next.js metadata exports (static and dynamic)"
1182
+ }
1183
+ },
1184
+ "additionalProperties": false
918
1185
  }
919
1186
  }
920
1187
  }