@jesscss/core 2.0.0-alpha.1
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 -0
- package/README.md +9 -0
- package/lib/context.d.ts +352 -0
- package/lib/context.d.ts.map +1 -0
- package/lib/context.js +636 -0
- package/lib/context.js.map +1 -0
- package/lib/conversions.d.ts +73 -0
- package/lib/conversions.d.ts.map +1 -0
- package/lib/conversions.js +253 -0
- package/lib/conversions.js.map +1 -0
- package/lib/debug-log.d.ts +2 -0
- package/lib/debug-log.d.ts.map +1 -0
- package/lib/debug-log.js +27 -0
- package/lib/debug-log.js.map +1 -0
- package/lib/define-function.d.ts +587 -0
- package/lib/define-function.d.ts.map +1 -0
- package/lib/define-function.js +726 -0
- package/lib/define-function.js.map +1 -0
- package/lib/deprecation.d.ts +34 -0
- package/lib/deprecation.d.ts.map +1 -0
- package/lib/deprecation.js +57 -0
- package/lib/deprecation.js.map +1 -0
- package/lib/index.d.ts +22 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +23 -0
- package/lib/index.js.map +1 -0
- package/lib/jess-error.d.ts +343 -0
- package/lib/jess-error.d.ts.map +1 -0
- package/lib/jess-error.js +508 -0
- package/lib/jess-error.js.map +1 -0
- package/lib/logger/deprecation-processing.d.ts +41 -0
- package/lib/logger/deprecation-processing.d.ts.map +1 -0
- package/lib/logger/deprecation-processing.js +81 -0
- package/lib/logger/deprecation-processing.js.map +1 -0
- package/lib/logger.d.ts +10 -0
- package/lib/logger.d.ts.map +1 -0
- package/lib/logger.js +20 -0
- package/lib/logger.js.map +1 -0
- package/lib/plugin.d.ts +94 -0
- package/lib/plugin.d.ts.map +1 -0
- package/lib/plugin.js +174 -0
- package/lib/plugin.js.map +1 -0
- package/lib/tree/ampersand.d.ts +94 -0
- package/lib/tree/ampersand.d.ts.map +1 -0
- package/lib/tree/ampersand.js +269 -0
- package/lib/tree/ampersand.js.map +1 -0
- package/lib/tree/any.d.ts +58 -0
- package/lib/tree/any.d.ts.map +1 -0
- package/lib/tree/any.js +101 -0
- package/lib/tree/any.js.map +1 -0
- package/lib/tree/at-rule.d.ts +53 -0
- package/lib/tree/at-rule.d.ts.map +1 -0
- package/lib/tree/at-rule.js +503 -0
- package/lib/tree/at-rule.js.map +1 -0
- package/lib/tree/block.d.ts +22 -0
- package/lib/tree/block.d.ts.map +1 -0
- package/lib/tree/block.js +24 -0
- package/lib/tree/block.js.map +1 -0
- package/lib/tree/bool.d.ts +17 -0
- package/lib/tree/bool.d.ts.map +1 -0
- package/lib/tree/bool.js +24 -0
- package/lib/tree/bool.js.map +1 -0
- package/lib/tree/call.d.ts +66 -0
- package/lib/tree/call.d.ts.map +1 -0
- package/lib/tree/call.js +306 -0
- package/lib/tree/call.js.map +1 -0
- package/lib/tree/collection.d.ts +30 -0
- package/lib/tree/collection.d.ts.map +1 -0
- package/lib/tree/collection.js +37 -0
- package/lib/tree/collection.js.map +1 -0
- package/lib/tree/color.d.ts +101 -0
- package/lib/tree/color.d.ts.map +1 -0
- package/lib/tree/color.js +513 -0
- package/lib/tree/color.js.map +1 -0
- package/lib/tree/combinator.d.ts +12 -0
- package/lib/tree/combinator.d.ts.map +1 -0
- package/lib/tree/combinator.js +8 -0
- package/lib/tree/combinator.js.map +1 -0
- package/lib/tree/comment.d.ts +20 -0
- package/lib/tree/comment.d.ts.map +1 -0
- package/lib/tree/comment.js +18 -0
- package/lib/tree/comment.js.map +1 -0
- package/lib/tree/condition.d.ts +31 -0
- package/lib/tree/condition.d.ts.map +1 -0
- package/lib/tree/condition.js +103 -0
- package/lib/tree/condition.js.map +1 -0
- package/lib/tree/control.d.ts +104 -0
- package/lib/tree/control.d.ts.map +1 -0
- package/lib/tree/control.js +430 -0
- package/lib/tree/control.js.map +1 -0
- package/lib/tree/declaration-custom.d.ts +18 -0
- package/lib/tree/declaration-custom.d.ts.map +1 -0
- package/lib/tree/declaration-custom.js +24 -0
- package/lib/tree/declaration-custom.js.map +1 -0
- package/lib/tree/declaration-var.d.ts +36 -0
- package/lib/tree/declaration-var.d.ts.map +1 -0
- package/lib/tree/declaration-var.js +63 -0
- package/lib/tree/declaration-var.js.map +1 -0
- package/lib/tree/declaration.d.ts +78 -0
- package/lib/tree/declaration.d.ts.map +1 -0
- package/lib/tree/declaration.js +289 -0
- package/lib/tree/declaration.js.map +1 -0
- package/lib/tree/default-guard.d.ts +15 -0
- package/lib/tree/default-guard.d.ts.map +1 -0
- package/lib/tree/default-guard.js +19 -0
- package/lib/tree/default-guard.js.map +1 -0
- package/lib/tree/dimension.d.ts +33 -0
- package/lib/tree/dimension.d.ts.map +1 -0
- package/lib/tree/dimension.js +291 -0
- package/lib/tree/dimension.js.map +1 -0
- package/lib/tree/expression.d.ts +24 -0
- package/lib/tree/expression.d.ts.map +1 -0
- package/lib/tree/expression.js +28 -0
- package/lib/tree/expression.js.map +1 -0
- package/lib/tree/extend-list.d.ts +23 -0
- package/lib/tree/extend-list.d.ts.map +1 -0
- package/lib/tree/extend-list.js +20 -0
- package/lib/tree/extend-list.js.map +1 -0
- package/lib/tree/extend.d.ts +47 -0
- package/lib/tree/extend.d.ts.map +1 -0
- package/lib/tree/extend.js +292 -0
- package/lib/tree/extend.js.map +1 -0
- package/lib/tree/function.d.ts +48 -0
- package/lib/tree/function.d.ts.map +1 -0
- package/lib/tree/function.js +74 -0
- package/lib/tree/function.js.map +1 -0
- package/lib/tree/import-js.d.ts +35 -0
- package/lib/tree/import-js.d.ts.map +1 -0
- package/lib/tree/import-js.js +45 -0
- package/lib/tree/import-js.js.map +1 -0
- package/lib/tree/import-style.d.ts +156 -0
- package/lib/tree/import-style.d.ts.map +1 -0
- package/lib/tree/import-style.js +556 -0
- package/lib/tree/import-style.js.map +1 -0
- package/lib/tree/index.d.ts +71 -0
- package/lib/tree/index.d.ts.map +1 -0
- package/lib/tree/index.js +95 -0
- package/lib/tree/index.js.map +1 -0
- package/lib/tree/interpolated-reference.d.ts +24 -0
- package/lib/tree/interpolated-reference.d.ts.map +1 -0
- package/lib/tree/interpolated-reference.js +37 -0
- package/lib/tree/interpolated-reference.js.map +1 -0
- package/lib/tree/interpolated.d.ts +62 -0
- package/lib/tree/interpolated.d.ts.map +1 -0
- package/lib/tree/interpolated.js +204 -0
- package/lib/tree/interpolated.js.map +1 -0
- package/lib/tree/js-array.d.ts +10 -0
- package/lib/tree/js-array.d.ts.map +1 -0
- package/lib/tree/js-array.js +10 -0
- package/lib/tree/js-array.js.map +1 -0
- package/lib/tree/js-expr.d.ts +23 -0
- package/lib/tree/js-expr.d.ts.map +1 -0
- package/lib/tree/js-expr.js +28 -0
- package/lib/tree/js-expr.js.map +1 -0
- package/lib/tree/js-function.d.ts +20 -0
- package/lib/tree/js-function.d.ts.map +1 -0
- package/lib/tree/js-function.js +16 -0
- package/lib/tree/js-function.js.map +1 -0
- package/lib/tree/js-object.d.ts +10 -0
- package/lib/tree/js-object.d.ts.map +1 -0
- package/lib/tree/js-object.js +10 -0
- package/lib/tree/js-object.js.map +1 -0
- package/lib/tree/list.d.ts +38 -0
- package/lib/tree/list.d.ts.map +1 -0
- package/lib/tree/list.js +83 -0
- package/lib/tree/list.js.map +1 -0
- package/lib/tree/log.d.ts +29 -0
- package/lib/tree/log.d.ts.map +1 -0
- package/lib/tree/log.js +56 -0
- package/lib/tree/log.js.map +1 -0
- package/lib/tree/mixin.d.ts +87 -0
- package/lib/tree/mixin.d.ts.map +1 -0
- package/lib/tree/mixin.js +112 -0
- package/lib/tree/mixin.js.map +1 -0
- package/lib/tree/negative.d.ts +17 -0
- package/lib/tree/negative.d.ts.map +1 -0
- package/lib/tree/negative.js +22 -0
- package/lib/tree/negative.js.map +1 -0
- package/lib/tree/nil.d.ts +31 -0
- package/lib/tree/nil.d.ts.map +1 -0
- package/lib/tree/nil.js +36 -0
- package/lib/tree/nil.js.map +1 -0
- package/lib/tree/node-base.d.ts +359 -0
- package/lib/tree/node-base.d.ts.map +1 -0
- package/lib/tree/node-base.js +884 -0
- package/lib/tree/node-base.js.map +1 -0
- package/lib/tree/node.d.ts +10 -0
- package/lib/tree/node.d.ts.map +1 -0
- package/lib/tree/node.js +45 -0
- package/lib/tree/node.js.map +1 -0
- package/lib/tree/number.d.ts +21 -0
- package/lib/tree/number.d.ts.map +1 -0
- package/lib/tree/number.js +27 -0
- package/lib/tree/number.js.map +1 -0
- package/lib/tree/operation.d.ts +26 -0
- package/lib/tree/operation.d.ts.map +1 -0
- package/lib/tree/operation.js +103 -0
- package/lib/tree/operation.js.map +1 -0
- package/lib/tree/paren.d.ts +18 -0
- package/lib/tree/paren.d.ts.map +1 -0
- package/lib/tree/paren.js +86 -0
- package/lib/tree/paren.js.map +1 -0
- package/lib/tree/query-condition.d.ts +17 -0
- package/lib/tree/query-condition.d.ts.map +1 -0
- package/lib/tree/query-condition.js +39 -0
- package/lib/tree/query-condition.js.map +1 -0
- package/lib/tree/quoted.d.ts +27 -0
- package/lib/tree/quoted.d.ts.map +1 -0
- package/lib/tree/quoted.js +66 -0
- package/lib/tree/quoted.js.map +1 -0
- package/lib/tree/range.d.ts +33 -0
- package/lib/tree/range.d.ts.map +1 -0
- package/lib/tree/range.js +47 -0
- package/lib/tree/range.js.map +1 -0
- package/lib/tree/reference.d.ts +76 -0
- package/lib/tree/reference.d.ts.map +1 -0
- package/lib/tree/reference.js +521 -0
- package/lib/tree/reference.js.map +1 -0
- package/lib/tree/rest.d.ts +15 -0
- package/lib/tree/rest.d.ts.map +1 -0
- package/lib/tree/rest.js +32 -0
- package/lib/tree/rest.js.map +1 -0
- package/lib/tree/rules-raw.d.ts +17 -0
- package/lib/tree/rules-raw.d.ts.map +1 -0
- package/lib/tree/rules-raw.js +37 -0
- package/lib/tree/rules-raw.js.map +1 -0
- package/lib/tree/rules.d.ts +255 -0
- package/lib/tree/rules.d.ts.map +1 -0
- package/lib/tree/rules.js +2293 -0
- package/lib/tree/rules.js.map +1 -0
- package/lib/tree/ruleset.d.ts +91 -0
- package/lib/tree/ruleset.d.ts.map +1 -0
- package/lib/tree/ruleset.js +506 -0
- package/lib/tree/ruleset.js.map +1 -0
- package/lib/tree/selector-attr.d.ts +31 -0
- package/lib/tree/selector-attr.d.ts.map +1 -0
- package/lib/tree/selector-attr.js +99 -0
- package/lib/tree/selector-attr.js.map +1 -0
- package/lib/tree/selector-basic.d.ts +23 -0
- package/lib/tree/selector-basic.d.ts.map +1 -0
- package/lib/tree/selector-basic.js +34 -0
- package/lib/tree/selector-basic.js.map +1 -0
- package/lib/tree/selector-capture.d.ts +23 -0
- package/lib/tree/selector-capture.d.ts.map +1 -0
- package/lib/tree/selector-capture.js +34 -0
- package/lib/tree/selector-capture.js.map +1 -0
- package/lib/tree/selector-complex.d.ts +40 -0
- package/lib/tree/selector-complex.d.ts.map +1 -0
- package/lib/tree/selector-complex.js +143 -0
- package/lib/tree/selector-complex.js.map +1 -0
- package/lib/tree/selector-compound.d.ts +16 -0
- package/lib/tree/selector-compound.d.ts.map +1 -0
- package/lib/tree/selector-compound.js +114 -0
- package/lib/tree/selector-compound.js.map +1 -0
- package/lib/tree/selector-interpolated.d.ts +23 -0
- package/lib/tree/selector-interpolated.d.ts.map +1 -0
- package/lib/tree/selector-interpolated.js +27 -0
- package/lib/tree/selector-interpolated.js.map +1 -0
- package/lib/tree/selector-list.d.ts +17 -0
- package/lib/tree/selector-list.d.ts.map +1 -0
- package/lib/tree/selector-list.js +184 -0
- package/lib/tree/selector-list.js.map +1 -0
- package/lib/tree/selector-pseudo.d.ts +42 -0
- package/lib/tree/selector-pseudo.d.ts.map +1 -0
- package/lib/tree/selector-pseudo.js +191 -0
- package/lib/tree/selector-pseudo.js.map +1 -0
- package/lib/tree/selector-simple.d.ts +5 -0
- package/lib/tree/selector-simple.d.ts.map +1 -0
- package/lib/tree/selector-simple.js +6 -0
- package/lib/tree/selector-simple.js.map +1 -0
- package/lib/tree/selector.d.ts +43 -0
- package/lib/tree/selector.d.ts.map +1 -0
- package/lib/tree/selector.js +56 -0
- package/lib/tree/selector.js.map +1 -0
- package/lib/tree/sequence.d.ts +43 -0
- package/lib/tree/sequence.d.ts.map +1 -0
- package/lib/tree/sequence.js +148 -0
- package/lib/tree/sequence.js.map +1 -0
- package/lib/tree/tree.d.ts +87 -0
- package/lib/tree/tree.d.ts.map +1 -0
- package/lib/tree/tree.js +2 -0
- package/lib/tree/tree.js.map +1 -0
- package/lib/tree/url.d.ts +18 -0
- package/lib/tree/url.d.ts.map +1 -0
- package/lib/tree/url.js +35 -0
- package/lib/tree/url.js.map +1 -0
- package/lib/tree/util/__tests__/debug-log.d.ts +1 -0
- package/lib/tree/util/__tests__/debug-log.d.ts.map +1 -0
- package/lib/tree/util/__tests__/debug-log.js +36 -0
- package/lib/tree/util/__tests__/debug-log.js.map +1 -0
- package/lib/tree/util/calculate.d.ts +3 -0
- package/lib/tree/util/calculate.d.ts.map +1 -0
- package/lib/tree/util/calculate.js +10 -0
- package/lib/tree/util/calculate.js.map +1 -0
- package/lib/tree/util/cast.d.ts +10 -0
- package/lib/tree/util/cast.d.ts.map +1 -0
- package/lib/tree/util/cast.js +87 -0
- package/lib/tree/util/cast.js.map +1 -0
- package/lib/tree/util/cloning.d.ts +4 -0
- package/lib/tree/util/cloning.d.ts.map +1 -0
- package/lib/tree/util/cloning.js +8 -0
- package/lib/tree/util/cloning.js.map +1 -0
- package/lib/tree/util/collections.d.ts +57 -0
- package/lib/tree/util/collections.d.ts.map +1 -0
- package/lib/tree/util/collections.js +136 -0
- package/lib/tree/util/collections.js.map +1 -0
- package/lib/tree/util/compare.d.ts +11 -0
- package/lib/tree/util/compare.d.ts.map +1 -0
- package/lib/tree/util/compare.js +89 -0
- package/lib/tree/util/compare.js.map +1 -0
- package/lib/tree/util/extend-helpers.d.ts +2 -0
- package/lib/tree/util/extend-helpers.d.ts.map +1 -0
- package/lib/tree/util/extend-helpers.js +2 -0
- package/lib/tree/util/extend-helpers.js.map +1 -0
- package/lib/tree/util/extend-roots.d.ts +37 -0
- package/lib/tree/util/extend-roots.d.ts.map +1 -0
- package/lib/tree/util/extend-roots.js +682 -0
- package/lib/tree/util/extend-roots.js.map +1 -0
- package/lib/tree/util/extend-roots.old.d.ts +132 -0
- package/lib/tree/util/extend-roots.old.d.ts.map +1 -0
- package/lib/tree/util/extend-roots.old.js +2272 -0
- package/lib/tree/util/extend-roots.old.js.map +1 -0
- package/lib/tree/util/extend-trace-debug.d.ts +13 -0
- package/lib/tree/util/extend-trace-debug.d.ts.map +1 -0
- package/lib/tree/util/extend-trace-debug.js +34 -0
- package/lib/tree/util/extend-trace-debug.js.map +1 -0
- package/lib/tree/util/extend.d.ts +218 -0
- package/lib/tree/util/extend.d.ts.map +1 -0
- package/lib/tree/util/extend.js +3033 -0
- package/lib/tree/util/extend.js.map +1 -0
- package/lib/tree/util/find-extendable-locations.d.ts +2 -0
- package/lib/tree/util/find-extendable-locations.d.ts.map +1 -0
- package/lib/tree/util/find-extendable-locations.js +2 -0
- package/lib/tree/util/find-extendable-locations.js.map +1 -0
- package/lib/tree/util/format.d.ts +20 -0
- package/lib/tree/util/format.d.ts.map +1 -0
- package/lib/tree/util/format.js +67 -0
- package/lib/tree/util/format.js.map +1 -0
- package/lib/tree/util/is-node.d.ts +13 -0
- package/lib/tree/util/is-node.d.ts.map +1 -0
- package/lib/tree/util/is-node.js +43 -0
- package/lib/tree/util/is-node.js.map +1 -0
- package/lib/tree/util/print.d.ts +80 -0
- package/lib/tree/util/print.d.ts.map +1 -0
- package/lib/tree/util/print.js +205 -0
- package/lib/tree/util/print.js.map +1 -0
- package/lib/tree/util/process-leading-is.d.ts +25 -0
- package/lib/tree/util/process-leading-is.d.ts.map +1 -0
- package/lib/tree/util/process-leading-is.js +364 -0
- package/lib/tree/util/process-leading-is.js.map +1 -0
- package/lib/tree/util/recursion-helper.d.ts +15 -0
- package/lib/tree/util/recursion-helper.d.ts.map +1 -0
- package/lib/tree/util/recursion-helper.js +43 -0
- package/lib/tree/util/recursion-helper.js.map +1 -0
- package/lib/tree/util/regex.d.ts +4 -0
- package/lib/tree/util/regex.d.ts.map +1 -0
- package/lib/tree/util/regex.js +4 -0
- package/lib/tree/util/regex.js.map +1 -0
- package/lib/tree/util/registry-utils.d.ts +192 -0
- package/lib/tree/util/registry-utils.d.ts.map +1 -0
- package/lib/tree/util/registry-utils.js +1242 -0
- package/lib/tree/util/registry-utils.js.map +1 -0
- package/lib/tree/util/ruleset-trace.d.ts +4 -0
- package/lib/tree/util/ruleset-trace.d.ts.map +1 -0
- package/lib/tree/util/ruleset-trace.js +14 -0
- package/lib/tree/util/ruleset-trace.js.map +1 -0
- package/lib/tree/util/selector-compare.d.ts +2 -0
- package/lib/tree/util/selector-compare.d.ts.map +1 -0
- package/lib/tree/util/selector-compare.js +2 -0
- package/lib/tree/util/selector-compare.js.map +1 -0
- package/lib/tree/util/selector-match-core.d.ts +171 -0
- package/lib/tree/util/selector-match-core.d.ts.map +1 -0
- package/lib/tree/util/selector-match-core.js +1578 -0
- package/lib/tree/util/selector-match-core.js.map +1 -0
- package/lib/tree/util/selector-utils.d.ts +30 -0
- package/lib/tree/util/selector-utils.d.ts.map +1 -0
- package/lib/tree/util/selector-utils.js +100 -0
- package/lib/tree/util/selector-utils.js.map +1 -0
- package/lib/tree/util/serialize-helper.d.ts +13 -0
- package/lib/tree/util/serialize-helper.d.ts.map +1 -0
- package/lib/tree/util/serialize-helper.js +387 -0
- package/lib/tree/util/serialize-helper.js.map +1 -0
- package/lib/tree/util/serialize-types.d.ts +9 -0
- package/lib/tree/util/serialize-types.d.ts.map +1 -0
- package/lib/tree/util/serialize-types.js +216 -0
- package/lib/tree/util/serialize-types.js.map +1 -0
- package/lib/tree/util/should-operate.d.ts +23 -0
- package/lib/tree/util/should-operate.d.ts.map +1 -0
- package/lib/tree/util/should-operate.js +46 -0
- package/lib/tree/util/should-operate.js.map +1 -0
- package/lib/tree/util/sourcemap.d.ts +7 -0
- package/lib/tree/util/sourcemap.d.ts.map +1 -0
- package/lib/tree/util/sourcemap.js +25 -0
- package/lib/tree/util/sourcemap.js.map +1 -0
- package/lib/types/config.d.ts +205 -0
- package/lib/types/config.d.ts.map +1 -0
- package/lib/types/config.js +2 -0
- package/lib/types/config.js.map +1 -0
- package/lib/types/index.d.ts +15 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +3 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/modes.d.ts +24 -0
- package/lib/types/modes.d.ts.map +1 -0
- package/lib/types/modes.js +2 -0
- package/lib/types/modes.js.map +1 -0
- package/lib/types.d.ts +61 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +2 -0
- package/lib/types.js.map +1 -0
- package/lib/use-webpack-resolver.d.ts +9 -0
- package/lib/use-webpack-resolver.d.ts.map +1 -0
- package/lib/use-webpack-resolver.js +41 -0
- package/lib/use-webpack-resolver.js.map +1 -0
- package/lib/visitor/index.d.ts +136 -0
- package/lib/visitor/index.d.ts.map +1 -0
- package/lib/visitor/index.js +135 -0
- package/lib/visitor/index.js.map +1 -0
- package/lib/visitor/less-visitor.d.ts +7 -0
- package/lib/visitor/less-visitor.d.ts.map +1 -0
- package/lib/visitor/less-visitor.js +7 -0
- package/lib/visitor/less-visitor.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,508 @@
|
|
|
1
|
+
// errors.ts
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
const TEMPLATES = {
|
|
5
|
+
// Parse/Lex
|
|
6
|
+
'parse/unexpected-token': {
|
|
7
|
+
summary: 'Unexpected token',
|
|
8
|
+
reason: 'Token "${token}" is not valid here.',
|
|
9
|
+
fix: 'Check for a missing quote/comma or wrong operator.'
|
|
10
|
+
},
|
|
11
|
+
'parse/unterminated-string': {
|
|
12
|
+
summary: 'Unterminated string',
|
|
13
|
+
reason: 'Missing closing quote.',
|
|
14
|
+
fix: 'Close the string, e.g. url("hero.jpg").'
|
|
15
|
+
},
|
|
16
|
+
'parse/unexpected-syntax': {
|
|
17
|
+
summary: 'Unexpected syntax',
|
|
18
|
+
reason: 'Expected ${expected}, got ${got}.',
|
|
19
|
+
fix: 'Add the expected token or remove the unexpected one.'
|
|
20
|
+
},
|
|
21
|
+
'parse/syntax-error': {
|
|
22
|
+
summary: 'Syntax error',
|
|
23
|
+
reason: '${message}',
|
|
24
|
+
fix: 'Check surrounding tokens near this location.'
|
|
25
|
+
},
|
|
26
|
+
// Resolve/Import
|
|
27
|
+
'resolve/name-not-found': {
|
|
28
|
+
summary: 'Name not found',
|
|
29
|
+
reason: 'Symbol "${symbol}" is undefined in this scope.',
|
|
30
|
+
fix: 'Define "${symbol}" or import a file that provides it.'
|
|
31
|
+
},
|
|
32
|
+
'import/circular-compose': {
|
|
33
|
+
summary: 'Circular @-compose detected',
|
|
34
|
+
reason: '${chain}',
|
|
35
|
+
fix: 'Break the cycle (extract shared bits and compose that).'
|
|
36
|
+
},
|
|
37
|
+
// Eval
|
|
38
|
+
'eval/bad-call-arity': {
|
|
39
|
+
summary: 'Bad call: wrong arity',
|
|
40
|
+
reason: '${callee} expects ${expectedCount} args, got ${gotCount}.',
|
|
41
|
+
fix: 'Add/remove arguments to match the signature.'
|
|
42
|
+
},
|
|
43
|
+
'eval/type-mismatch': {
|
|
44
|
+
summary: 'Type mismatch',
|
|
45
|
+
reason: '${callee} expects ${expected}, got ${got}.',
|
|
46
|
+
fix: 'Pass a ${expected}; convert or choose a compatible value.'
|
|
47
|
+
},
|
|
48
|
+
// Extend
|
|
49
|
+
'extend/protected-boundary': {
|
|
50
|
+
summary: 'Extend blocked by protected boundary',
|
|
51
|
+
reason: '"${target}" is defined behind a protected compose boundary.',
|
|
52
|
+
fix: 'Move "${target}" to a shared file or create a local shim.'
|
|
53
|
+
},
|
|
54
|
+
'extend/not-found': {
|
|
55
|
+
summary: 'Extend target "${target}" not found',
|
|
56
|
+
reason: 'No ruleset found matching "${target}" in accessible extend roots.',
|
|
57
|
+
fix: 'Ensure "${target}" exists and is accessible from the current extend root.'
|
|
58
|
+
},
|
|
59
|
+
'extend/not-accessible': {
|
|
60
|
+
summary: 'Extend target "${target}" not accessible',
|
|
61
|
+
reason: '"${target}" exists but is not accessible from the current extend root (blocked by at-rule or compose boundary).',
|
|
62
|
+
fix: 'Move the extend or the target to a shared extend root, or use a different approach.'
|
|
63
|
+
},
|
|
64
|
+
// Plugin
|
|
65
|
+
'plugin/unsupported-feature': {
|
|
66
|
+
summary: 'Unsupported feature',
|
|
67
|
+
reason: 'Plugin "${plugin}" does not implement ${feature}.',
|
|
68
|
+
fix: 'Use a supported alternative or enable a fallback.'
|
|
69
|
+
},
|
|
70
|
+
// ---------- Warnings (examples you can expand) ----------
|
|
71
|
+
'eval/deprecated': {
|
|
72
|
+
summary: 'Deprecated feature',
|
|
73
|
+
reason: '"${what}" is deprecated.',
|
|
74
|
+
fix: 'Use "${use}" instead.'
|
|
75
|
+
},
|
|
76
|
+
'resolve/unused-variable': {
|
|
77
|
+
summary: 'Unused variable',
|
|
78
|
+
reason: '"${symbol}" is declared but its value is never used.',
|
|
79
|
+
fix: 'Remove it or prefix with "_" to silence.'
|
|
80
|
+
},
|
|
81
|
+
'selector/duplicate': {
|
|
82
|
+
summary: 'Duplicate selector',
|
|
83
|
+
reason: 'Selector "${selector}" is defined multiple times.',
|
|
84
|
+
fix: 'Consolidate rules or remove the duplicate.'
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Replaces `${key}` with values from `meta`. Unset keys render as `<key>`.
|
|
89
|
+
*/
|
|
90
|
+
function interpolate(s, meta) {
|
|
91
|
+
return s.replace(/\$\{(\w+)\}/g, (_, k) => String(meta[k] ?? `<${k}>`));
|
|
92
|
+
}
|
|
93
|
+
/* =========================
|
|
94
|
+
* OSC-8 hyperlinks
|
|
95
|
+
* ========================= */
|
|
96
|
+
function osc8(uri, label) {
|
|
97
|
+
return `\x1b]8;;${uri}\x1b\\${label}\x1b]8;;\x1b\\`;
|
|
98
|
+
}
|
|
99
|
+
function supportsLinks() {
|
|
100
|
+
const tty = process.stderr.isTTY && process.env.TERM !== 'dumb';
|
|
101
|
+
if (!tty) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
return Boolean(process.env.TERM_PROGRAM === 'vscode'
|
|
105
|
+
|| process.env.ITERM_SESSION_ID
|
|
106
|
+
|| process.env.WT_SESSION);
|
|
107
|
+
}
|
|
108
|
+
function linkFor(abs, line, col, label) {
|
|
109
|
+
const uri = `vscode://file/${abs}:${line}:${col}`;
|
|
110
|
+
return supportsLinks() ? osc8(uri, label) : label;
|
|
111
|
+
}
|
|
112
|
+
/* =========================
|
|
113
|
+
* Path labeling (human-short)
|
|
114
|
+
* ========================= */
|
|
115
|
+
function trail(p, n) {
|
|
116
|
+
const parts = p.split(path.sep).filter(Boolean);
|
|
117
|
+
return (parts.length <= n ? parts : ['…', ...parts.slice(parts.length - n)]).join(path.sep);
|
|
118
|
+
}
|
|
119
|
+
function prettyLabel(abs, line, col) {
|
|
120
|
+
const rel = path.relative(process.cwd(), abs);
|
|
121
|
+
const shown = (!rel.startsWith('..') && !path.isAbsolute(rel)) ? rel : trail(abs, 3);
|
|
122
|
+
return `${shown}:${line}:${col}`;
|
|
123
|
+
}
|
|
124
|
+
/* =========================
|
|
125
|
+
* Code-frame utilities
|
|
126
|
+
* ========================= */
|
|
127
|
+
function buildLineStarts(src) {
|
|
128
|
+
const starts = [0];
|
|
129
|
+
for (let i = 0; i < src.length; i++) {
|
|
130
|
+
const ch = src.charCodeAt(i);
|
|
131
|
+
if (ch === 10) {
|
|
132
|
+
starts.push(i + 1);
|
|
133
|
+
}
|
|
134
|
+
else if (ch === 13) {
|
|
135
|
+
if (src.charCodeAt(i + 1) === 10) {
|
|
136
|
+
i++;
|
|
137
|
+
}
|
|
138
|
+
starts.push(i + 1);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return Uint32Array.from(starts);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Extracts relevant source lines for code frame display.
|
|
145
|
+
* Returns an object with line numbers as keys (1-indexed) and line content as values.
|
|
146
|
+
* Includes the target line and context lines (before/after).
|
|
147
|
+
* @param source - Full source code
|
|
148
|
+
* @param line - Target line number (1-indexed)
|
|
149
|
+
* @param contextLines - Number of context lines before/after (default: 1)
|
|
150
|
+
* @returns Object with line numbers as keys, e.g. { 55: 'before', 56: 'error', 57: 'after' }
|
|
151
|
+
*/
|
|
152
|
+
export function extractRelevantLines(source, line, contextLines = 1) {
|
|
153
|
+
if (!source) {
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
// Split source into lines once
|
|
157
|
+
const lines = source.split(/\r?\n/);
|
|
158
|
+
const totalLines = lines.length;
|
|
159
|
+
const targetLine = Math.max(1, Math.min(line, totalLines));
|
|
160
|
+
// Calculate line range (1-indexed)
|
|
161
|
+
const startLine = Math.max(1, targetLine - contextLines);
|
|
162
|
+
const endLine = Math.min(totalLines, targetLine + contextLines);
|
|
163
|
+
// Extract relevant lines
|
|
164
|
+
const result = {};
|
|
165
|
+
for (let i = startLine; i <= endLine; i++) {
|
|
166
|
+
result[i] = lines[i - 1]; // Convert to 0-indexed for array access
|
|
167
|
+
}
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
function ensureLineStarts(file) {
|
|
171
|
+
if (!file?.source) {
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
// Your file type may already have `lines`; if not, store it there.
|
|
175
|
+
if (!file.lines) {
|
|
176
|
+
file.lines = buildLineStarts(file.source);
|
|
177
|
+
}
|
|
178
|
+
return file.lines;
|
|
179
|
+
}
|
|
180
|
+
function getLine(file, line) {
|
|
181
|
+
const src = file?.source;
|
|
182
|
+
const idx = ensureLineStarts(file);
|
|
183
|
+
if (!src || !idx || line < 1 || line > idx.length) {
|
|
184
|
+
return '';
|
|
185
|
+
}
|
|
186
|
+
const start = idx[line - 1];
|
|
187
|
+
const end = line < idx.length ? idx[line] - 1 : src.length;
|
|
188
|
+
const last = src.charCodeAt(end - 1);
|
|
189
|
+
const realEnd = last === 13 ? end - 1 : end; // trim trailing \r
|
|
190
|
+
return src.slice(start, realEnd);
|
|
191
|
+
}
|
|
192
|
+
function codeFrameFromFile(file, line = 1, col = 1) {
|
|
193
|
+
if (!file?.source) {
|
|
194
|
+
return '';
|
|
195
|
+
}
|
|
196
|
+
ensureLineStarts(file);
|
|
197
|
+
const width = String(line).length;
|
|
198
|
+
const num = (n) => String(n).padStart(width, ' ');
|
|
199
|
+
const caret = ' '.repeat(Math.max(0, col - 1)) + '^';
|
|
200
|
+
const prev = getLine(file, line - 1);
|
|
201
|
+
const curr = getLine(file, line);
|
|
202
|
+
const next = getLine(file, line + 1);
|
|
203
|
+
let out = '';
|
|
204
|
+
if (prev) {
|
|
205
|
+
out += chalk.gray(`${num(line - 1)} | ${prev}\n`);
|
|
206
|
+
}
|
|
207
|
+
out += chalk.bold(`${num(line)} | ${curr}\n`);
|
|
208
|
+
out += chalk.gray(` ${' '.repeat(width)} | `) + chalk.red(caret) + '\n';
|
|
209
|
+
if (next) {
|
|
210
|
+
out += chalk.gray(`${num(line + 1)} | ${next}\n`);
|
|
211
|
+
}
|
|
212
|
+
return out;
|
|
213
|
+
}
|
|
214
|
+
/* =========================
|
|
215
|
+
* Diagnostic (error or warn)
|
|
216
|
+
* ========================= */
|
|
217
|
+
export class JessError extends Error {
|
|
218
|
+
severity = 'error';
|
|
219
|
+
code = 'parse/syntax-error';
|
|
220
|
+
phase = 'parse';
|
|
221
|
+
// Resolved source context (fileObj preferred; filePath is legacy)
|
|
222
|
+
fileObj;
|
|
223
|
+
filePath;
|
|
224
|
+
line = 1;
|
|
225
|
+
column = 1;
|
|
226
|
+
source;
|
|
227
|
+
node; // Store node to extract endLine/endColumn
|
|
228
|
+
reason = '';
|
|
229
|
+
fix = '';
|
|
230
|
+
note;
|
|
231
|
+
errors;
|
|
232
|
+
lexerErrors;
|
|
233
|
+
constructor(init) {
|
|
234
|
+
// Resolve context from ctx/node first, else from explicit fields.
|
|
235
|
+
const fileObj = init.ctx?.file;
|
|
236
|
+
const abs = fileObj?.fullPath ?? init.filePath;
|
|
237
|
+
const line = init.node?.location?.[1] ?? init.line ?? 1;
|
|
238
|
+
const column = init.node?.location?.[2] ?? init.column ?? 1;
|
|
239
|
+
const source = fileObj?.source ?? init.source;
|
|
240
|
+
const meta = init.meta ?? {};
|
|
241
|
+
const t = TEMPLATES[init.code] ?? TEMPLATES['parse/syntax-error'];
|
|
242
|
+
const summary = init.summary ?? interpolate(t.summary, meta);
|
|
243
|
+
const reason = init.reason ?? interpolate(t.reason, meta);
|
|
244
|
+
const fix = init.fix ?? interpolate(t.fix, meta);
|
|
245
|
+
super(summary);
|
|
246
|
+
this.name = 'JessError';
|
|
247
|
+
this.severity = init.severity ?? 'error';
|
|
248
|
+
this.code = init.code;
|
|
249
|
+
this.phase = init.phase;
|
|
250
|
+
this.fileObj = fileObj;
|
|
251
|
+
this.filePath = abs;
|
|
252
|
+
this.line = line;
|
|
253
|
+
this.column = column;
|
|
254
|
+
this.source = source;
|
|
255
|
+
this.node = init.node; // Store node for endLine/endColumn extraction
|
|
256
|
+
this.reason = reason;
|
|
257
|
+
this.fix = fix;
|
|
258
|
+
this.note = init.note;
|
|
259
|
+
this.errors = init.errors;
|
|
260
|
+
this.lexerErrors = init.lexerErrors;
|
|
261
|
+
}
|
|
262
|
+
/** Pretty, clickable string for terminal/Problems panel. */
|
|
263
|
+
toString() {
|
|
264
|
+
const abs = this.fileObj?.fullPath ?? this.filePath;
|
|
265
|
+
const l = this.line ?? 1;
|
|
266
|
+
const c = this.column ?? 1;
|
|
267
|
+
const label = abs ? prettyLabel(abs, l, c) : '(unknown)';
|
|
268
|
+
const clickable = abs ? linkFor(abs, l, c, label) : label;
|
|
269
|
+
const color = this.severity === 'warn' ? chalk.yellow : chalk.red;
|
|
270
|
+
const header = `${color(this.severity)} ${color(this.code)} `
|
|
271
|
+
+ `${chalk.gray(`[${this.phase}]`)} ${chalk.cyan(clickable)} `
|
|
272
|
+
+ `${chalk.white('— ' + this.message)}`;
|
|
273
|
+
let frame = '';
|
|
274
|
+
if (this.fileObj?.source) {
|
|
275
|
+
frame = codeFrameFromFile(this.fileObj, l, c);
|
|
276
|
+
}
|
|
277
|
+
else if (this.source) {
|
|
278
|
+
// Legacy, slower fallback
|
|
279
|
+
const lines = this.source.split(/\r?\n/);
|
|
280
|
+
const prev = lines[l - 2];
|
|
281
|
+
const curr = lines[l - 1] ?? '';
|
|
282
|
+
const next = lines[l];
|
|
283
|
+
const width = String(l).length;
|
|
284
|
+
const num = (n) => String(n).padStart(width, ' ');
|
|
285
|
+
const caret = ' '.repeat(Math.max(0, c - 1)) + '^';
|
|
286
|
+
if (prev) {
|
|
287
|
+
frame += chalk.gray(`${num(l - 1)} | ${prev}\n`);
|
|
288
|
+
}
|
|
289
|
+
frame += chalk.bold(`${num(l)} | ${curr}\n`);
|
|
290
|
+
frame += chalk.gray(` ${' '.repeat(width)} | `) + chalk.red(caret) + '\n';
|
|
291
|
+
if (next) {
|
|
292
|
+
frame += chalk.gray(`${num(l + 1)} | ${next}\n`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
const out = [
|
|
296
|
+
header,
|
|
297
|
+
frame && frame.trimEnd(),
|
|
298
|
+
'',
|
|
299
|
+
`Reason: ${this.reason}`,
|
|
300
|
+
`Fix: ${this.fix}`,
|
|
301
|
+
this.note ? `Note: ${this.note}` : undefined,
|
|
302
|
+
(!supportsLinks() && abs) ? chalk.dim(`Path: ${abs}:${l}:${c}`) : undefined
|
|
303
|
+
]
|
|
304
|
+
.filter(Boolean)
|
|
305
|
+
.join('\n');
|
|
306
|
+
return out;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
/* =========================
|
|
310
|
+
* Printing helpers
|
|
311
|
+
* ========================= */
|
|
312
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
313
|
+
const _seen = new Set();
|
|
314
|
+
/**
|
|
315
|
+
* Emits a diagnostic to stderr (or a custom stream).
|
|
316
|
+
* Set `dedupe: true` to suppress repeats from the same location/message.
|
|
317
|
+
*/
|
|
318
|
+
export function emit(diag, opts) {
|
|
319
|
+
const stream = opts?.stream ?? process.stderr;
|
|
320
|
+
if (opts?.dedupe) {
|
|
321
|
+
const abs = diag.fileObj?.fullPath ?? diag.filePath ?? '';
|
|
322
|
+
const key = `${diag.severity}|${diag.code}|${abs}|${diag.line}|${diag.column}|${diag.message}`;
|
|
323
|
+
if (_seen.has(key)) {
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
_seen.add(key);
|
|
327
|
+
}
|
|
328
|
+
stream.write(String(diag) + '\n');
|
|
329
|
+
}
|
|
330
|
+
/** Clears the in-process de-duplication set. Useful for tests. */
|
|
331
|
+
export function resetDedupe() {
|
|
332
|
+
_seen.clear();
|
|
333
|
+
}
|
|
334
|
+
/* =========================
|
|
335
|
+
* Factories / Public API
|
|
336
|
+
* ========================= */
|
|
337
|
+
export function makeJessError(init) {
|
|
338
|
+
return new JessError(init);
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Primary **error** helpers.
|
|
342
|
+
* Each function returns a `JessError` ready to be thrown or emitted.
|
|
343
|
+
*/
|
|
344
|
+
export const ERR = {
|
|
345
|
+
// Parse/Lex
|
|
346
|
+
unexpectedToken(args) {
|
|
347
|
+
return makeJessError({ code: 'parse/unexpected-token', phase: 'parse', ...args });
|
|
348
|
+
},
|
|
349
|
+
unterminatedString(args = {}) {
|
|
350
|
+
return makeJessError({ code: 'parse/unterminated-string', phase: 'parse', ...args });
|
|
351
|
+
},
|
|
352
|
+
// Resolve/Import
|
|
353
|
+
nameNotFound(args) {
|
|
354
|
+
return makeJessError({ code: 'resolve/name-not-found', phase: 'resolve', ...args });
|
|
355
|
+
},
|
|
356
|
+
circularCompose(args) {
|
|
357
|
+
return makeJessError({ code: 'import/circular-compose', phase: 'import', ...args });
|
|
358
|
+
},
|
|
359
|
+
// Eval
|
|
360
|
+
arity(args) {
|
|
361
|
+
return makeJessError({ code: 'eval/bad-call-arity', phase: 'eval', ...args });
|
|
362
|
+
},
|
|
363
|
+
typeMismatch(args) {
|
|
364
|
+
return makeJessError({ code: 'eval/type-mismatch', phase: 'eval', ...args });
|
|
365
|
+
},
|
|
366
|
+
// Extend
|
|
367
|
+
extendBoundary(args) {
|
|
368
|
+
return makeJessError({ code: 'extend/protected-boundary', phase: 'extend', ...args });
|
|
369
|
+
},
|
|
370
|
+
extendNotFound(args) {
|
|
371
|
+
return makeJessError({ code: 'extend/not-found', phase: 'extend', ...args });
|
|
372
|
+
},
|
|
373
|
+
extendNotAccessible(args) {
|
|
374
|
+
return makeJessError({ code: 'extend/not-accessible', phase: 'extend', ...args });
|
|
375
|
+
},
|
|
376
|
+
// Plugin
|
|
377
|
+
pluginUnsupported(args) {
|
|
378
|
+
return makeJessError({ code: 'plugin/unsupported-feature', phase: 'plugin', ...args });
|
|
379
|
+
}
|
|
380
|
+
};
|
|
381
|
+
/**
|
|
382
|
+
* Primary **warning** helpers.
|
|
383
|
+
* Same API shape as `ERR`, but default `severity: 'warn'`.
|
|
384
|
+
* Call `emit(WARN.*(...))` to log without throwing.
|
|
385
|
+
*/
|
|
386
|
+
export const WARN = {
|
|
387
|
+
deprecated(args) {
|
|
388
|
+
return makeJessError({ severity: 'warn', code: 'eval/deprecated', phase: 'eval', ...args });
|
|
389
|
+
},
|
|
390
|
+
unusedVar(args) {
|
|
391
|
+
return makeJessError({ severity: 'warn', code: 'resolve/unused-variable', phase: 'resolve', ...args });
|
|
392
|
+
},
|
|
393
|
+
duplicateSelector(args) {
|
|
394
|
+
return makeJessError({ severity: 'warn', code: 'selector/duplicate', phase: 'extend', ...args });
|
|
395
|
+
},
|
|
396
|
+
extendNotFound(args) {
|
|
397
|
+
return makeJessError({ severity: 'warn', code: 'extend/not-found', phase: 'extend', ...args });
|
|
398
|
+
},
|
|
399
|
+
extendNotAccessible(args) {
|
|
400
|
+
return makeJessError({ severity: 'warn', code: 'extend/not-accessible', phase: 'extend', ...args });
|
|
401
|
+
}
|
|
402
|
+
};
|
|
403
|
+
/* =========================
|
|
404
|
+
* Chevrotain adapter
|
|
405
|
+
* ========================= */
|
|
406
|
+
/**
|
|
407
|
+
* Converts a Chevrotain parser/lexer error into a friendly diagnostic.
|
|
408
|
+
* If you pass `ctx`, the error will be clickable and include a code-frame.
|
|
409
|
+
*
|
|
410
|
+
* @param errors Chevrotain recognition errors
|
|
411
|
+
* @param lexerResult Chevrotain lexing result
|
|
412
|
+
* @param filePath Absolute path to the file (legacy fallback)
|
|
413
|
+
* @param source File contents (legacy fallback)
|
|
414
|
+
* @param ctx Optional TreeContext to auto-fill file/line/col/source
|
|
415
|
+
*/
|
|
416
|
+
export function getErrorFromParser(errors, lexerErrors, filePath, source, ctx) {
|
|
417
|
+
const error = lexerErrors?.[0] ?? errors[0];
|
|
418
|
+
if (!error) {
|
|
419
|
+
return new JessError({ code: 'parse/syntax-error', phase: 'parse', filePath, source, ctx });
|
|
420
|
+
}
|
|
421
|
+
const isLex = error.name === 'LexerError'
|
|
422
|
+
|| ('token' in error && error.lexer);
|
|
423
|
+
const line = 'token' in error
|
|
424
|
+
? error.token?.startLine ?? error.line
|
|
425
|
+
: error.line;
|
|
426
|
+
const column = 'token' in error
|
|
427
|
+
? error.token?.startColumn ?? error.column
|
|
428
|
+
: error.column;
|
|
429
|
+
const message = error.message || '';
|
|
430
|
+
let code = 'parse/syntax-error';
|
|
431
|
+
let meta = {};
|
|
432
|
+
if (isLex) {
|
|
433
|
+
code = 'parse/unexpected-token';
|
|
434
|
+
meta = { token: error.char ?? '/' };
|
|
435
|
+
}
|
|
436
|
+
else if (/unterminated|string not closed/i.test(message)) {
|
|
437
|
+
code = 'parse/unterminated-string';
|
|
438
|
+
}
|
|
439
|
+
else if (/expecting/i.test(message)) {
|
|
440
|
+
code = 'parse/unexpected-syntax';
|
|
441
|
+
const m = message.match(/expecting\s+([^,]+).*?but found\s+'?([^']+)'?/i);
|
|
442
|
+
meta = m ? { expected: m[1], got: m[2] } : { expected: 'token', got: 'other' };
|
|
443
|
+
}
|
|
444
|
+
return new JessError({
|
|
445
|
+
code,
|
|
446
|
+
phase: 'parse',
|
|
447
|
+
meta,
|
|
448
|
+
ctx,
|
|
449
|
+
filePath,
|
|
450
|
+
source,
|
|
451
|
+
line: line ?? 1,
|
|
452
|
+
column: column ?? 1,
|
|
453
|
+
errors,
|
|
454
|
+
lexerErrors
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Converts a JessError to a normalized ErrorDiagnostic or WarningDiagnostic.
|
|
459
|
+
* Extracts relevant source lines for code frame display.
|
|
460
|
+
*/
|
|
461
|
+
export function toDiagnostic(error) {
|
|
462
|
+
// Extract relevant lines from source (error line + context)
|
|
463
|
+
const lines = extractRelevantLines(error.source ?? error.fileObj?.source, error.line);
|
|
464
|
+
// Extract endLine/endColumn from node location if available
|
|
465
|
+
// Location format: [startOffset, startLine, startColumn, endOffset, endLine, endColumn]
|
|
466
|
+
const nodeLocation = error.node?.location;
|
|
467
|
+
const endLine = nodeLocation && nodeLocation.length >= 6
|
|
468
|
+
? nodeLocation[4]
|
|
469
|
+
: undefined;
|
|
470
|
+
const endColumn = nodeLocation && nodeLocation.length >= 6
|
|
471
|
+
? nodeLocation[5]
|
|
472
|
+
: undefined;
|
|
473
|
+
// Create file object without source (we only use 'lines' for code frames)
|
|
474
|
+
const file = error.fileObj
|
|
475
|
+
? {
|
|
476
|
+
name: error.fileObj.name,
|
|
477
|
+
path: error.fileObj.path,
|
|
478
|
+
fullPath: error.fileObj.fullPath
|
|
479
|
+
// Explicitly exclude source - we use 'lines' property instead
|
|
480
|
+
}
|
|
481
|
+
: undefined;
|
|
482
|
+
const base = {
|
|
483
|
+
code: error.code,
|
|
484
|
+
phase: error.phase,
|
|
485
|
+
message: error.message,
|
|
486
|
+
reason: error.reason,
|
|
487
|
+
fix: error.fix,
|
|
488
|
+
note: error.note,
|
|
489
|
+
file,
|
|
490
|
+
filePath: error.filePath,
|
|
491
|
+
line: error.line,
|
|
492
|
+
column: error.column,
|
|
493
|
+
endLine,
|
|
494
|
+
endColumn,
|
|
495
|
+
lines
|
|
496
|
+
};
|
|
497
|
+
if (error.severity === 'error') {
|
|
498
|
+
return {
|
|
499
|
+
...base,
|
|
500
|
+
errors: error.errors,
|
|
501
|
+
lexerErrors: error.lexerErrors
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
else {
|
|
505
|
+
return base;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
//# sourceMappingURL=jess-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jess-error.js","sourceRoot":"","sources":["../src/jess-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Deprecation } from '../deprecation.js';
|
|
2
|
+
import type { Logger } from '../logger.js';
|
|
3
|
+
import type { WarningDiagnostic } from '../jess-error.js';
|
|
4
|
+
/**
|
|
5
|
+
* A logger wrapper that provides special handling for deprecation warnings:
|
|
6
|
+
* - Making deprecations fatal (throwing errors)
|
|
7
|
+
* - Limiting repetition (max 5 per deprecation)
|
|
8
|
+
*/
|
|
9
|
+
export declare class DeprecationProcessingLogger implements Logger {
|
|
10
|
+
/** A map of how many times each deprecation has been emitted */
|
|
11
|
+
private readonly _warningCounts;
|
|
12
|
+
/** The inner logger to delegate to */
|
|
13
|
+
private readonly _inner;
|
|
14
|
+
/** Deprecation warnings of these types will cause an error to be thrown */
|
|
15
|
+
readonly fatalDeprecations: Set<Deprecation>;
|
|
16
|
+
/** Whether repetitions of the same warning should be limited */
|
|
17
|
+
readonly limitRepetition: boolean;
|
|
18
|
+
constructor(inner: Logger, options?: {
|
|
19
|
+
fatalDeprecations?: Iterable<Deprecation>;
|
|
20
|
+
limitRepetition?: boolean;
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Processes a deprecation warning.
|
|
24
|
+
*
|
|
25
|
+
* If the deprecation is in fatalDeprecations, this throws an error.
|
|
26
|
+
* If it's already been warned for MAX_REPETITIONS times and limitRepetition is true, the warning is dropped.
|
|
27
|
+
* Otherwise, this is passed on to the inner logger.
|
|
28
|
+
*/
|
|
29
|
+
warnForDeprecation(deprecation: Deprecation, warning: WarningDiagnostic): void;
|
|
30
|
+
/**
|
|
31
|
+
* Prints a warning indicating the number of deprecation warnings that were
|
|
32
|
+
* omitted due to repetition.
|
|
33
|
+
*/
|
|
34
|
+
summarize(): void;
|
|
35
|
+
configure?(log: Logger): void;
|
|
36
|
+
log?(...args: any[]): void;
|
|
37
|
+
info?(...args: any[]): void;
|
|
38
|
+
warn?(...args: any[]): void;
|
|
39
|
+
error?(...args: any[]): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=deprecation-processing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecation-processing.d.ts","sourceRoot":"","sources":["../../src/logger/deprecation-processing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAQ1D;;;;GAIG;AACH,qBAAa,2BAA4B,YAAW,MAAM;IACxD,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;IAEjE,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,2EAA2E;IAC3E,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7C,gEAAgE;IAChE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;gBAGhC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QACP,iBAAiB,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;KACtB;IAOR;;;;;;OAMG;IACH,kBAAkB,CAChB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,iBAAiB,GACzB,IAAI;IAoBP;;;OAGG;IACH,SAAS,IAAI,IAAI;IAejB,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI1B,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3B,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3B,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;CAG7B"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The maximum number of repetitions of the same deprecation warning
|
|
3
|
+
* that will be emitted before hiding the rest.
|
|
4
|
+
*/
|
|
5
|
+
const MAX_REPETITIONS = 5;
|
|
6
|
+
/**
|
|
7
|
+
* A logger wrapper that provides special handling for deprecation warnings:
|
|
8
|
+
* - Making deprecations fatal (throwing errors)
|
|
9
|
+
* - Limiting repetition (max 5 per deprecation)
|
|
10
|
+
*/
|
|
11
|
+
export class DeprecationProcessingLogger {
|
|
12
|
+
/** A map of how many times each deprecation has been emitted */
|
|
13
|
+
_warningCounts = new Map();
|
|
14
|
+
/** The inner logger to delegate to */
|
|
15
|
+
_inner;
|
|
16
|
+
/** Deprecation warnings of these types will cause an error to be thrown */
|
|
17
|
+
fatalDeprecations;
|
|
18
|
+
/** Whether repetitions of the same warning should be limited */
|
|
19
|
+
limitRepetition;
|
|
20
|
+
constructor(inner, options = {}) {
|
|
21
|
+
this._inner = inner;
|
|
22
|
+
this.fatalDeprecations = new Set(options.fatalDeprecations ?? []);
|
|
23
|
+
this.limitRepetition = options.limitRepetition ?? true;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Processes a deprecation warning.
|
|
27
|
+
*
|
|
28
|
+
* If the deprecation is in fatalDeprecations, this throws an error.
|
|
29
|
+
* If it's already been warned for MAX_REPETITIONS times and limitRepetition is true, the warning is dropped.
|
|
30
|
+
* Otherwise, this is passed on to the inner logger.
|
|
31
|
+
*/
|
|
32
|
+
warnForDeprecation(deprecation, warning) {
|
|
33
|
+
if (this.fatalDeprecations.has(deprecation)) {
|
|
34
|
+
const message = `${warning.message}\n\nThis is only an error because you've set the ${deprecation.id} deprecation to be fatal.\nRemove this setting if you need to keep using this feature.`;
|
|
35
|
+
const error = new Error(message);
|
|
36
|
+
error.name = 'DeprecationError';
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
if (this.limitRepetition) {
|
|
40
|
+
const count = (this._warningCounts.get(deprecation) ?? 0) + 1;
|
|
41
|
+
this._warningCounts.set(deprecation, count);
|
|
42
|
+
if (count > MAX_REPETITIONS) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Pass to inner logger
|
|
47
|
+
this._inner.warn?.(warning.message);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Prints a warning indicating the number of deprecation warnings that were
|
|
51
|
+
* omitted due to repetition.
|
|
52
|
+
*/
|
|
53
|
+
summarize() {
|
|
54
|
+
let total = 0;
|
|
55
|
+
for (const [deprecation, count] of this._warningCounts.entries()) {
|
|
56
|
+
if (count > MAX_REPETITIONS) {
|
|
57
|
+
total += count - MAX_REPETITIONS;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (total > 0) {
|
|
61
|
+
this._inner.warn?.(`${total} repetitive deprecation warnings omitted.\nRun in verbose mode to see all warnings.`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Delegate other logger methods to inner logger
|
|
65
|
+
configure(log) {
|
|
66
|
+
this._inner.configure?.(log);
|
|
67
|
+
}
|
|
68
|
+
log(...args) {
|
|
69
|
+
this._inner.log?.(...args);
|
|
70
|
+
}
|
|
71
|
+
info(...args) {
|
|
72
|
+
this._inner.info?.(...args);
|
|
73
|
+
}
|
|
74
|
+
warn(...args) {
|
|
75
|
+
this._inner.warn?.(...args);
|
|
76
|
+
}
|
|
77
|
+
error(...args) {
|
|
78
|
+
this._inner.error?.(...args);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=deprecation-processing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecation-processing.js","sourceRoot":"","sources":["../../src/logger/deprecation-processing.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B;;;;GAIG;AACH,MAAM,OAAO,2BAA2B;IACtC,gEAAgE;IAC/C,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEjE,sCAAsC;IACrB,MAAM,CAAS;IAEhC,2EAA2E;IAClE,iBAAiB,CAAmB;IAE7C,gEAAgE;IACvD,eAAe,CAAU;IAElC,YACE,KAAa,EACb,UAGI,EAAE;QAEN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAChB,WAAwB,EACxB,OAA0B;QAE1B,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,oDAAoD,WAAW,CAAC,EAAE,wFAAwF,CAAC;YAC7L,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,GAAG,kBAAkB,CAAC;YAChC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,KAAK,GAAG,eAAe,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YACjE,IAAI,KAAK,GAAG,eAAe,EAAE,CAAC;gBAC5B,KAAK,IAAI,KAAK,GAAG,eAAe,CAAC;YACnC,CAAC;QACH,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAChB,GAAG,KAAK,qFAAqF,CAC9F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,SAAS,CAAE,GAAW;QACpB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAE,GAAG,IAAW;QACjB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,CAAE,GAAG,IAAW;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,CAAE,GAAG,IAAW;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAE,GAAG,IAAW;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF"}
|