@nordcraft/search 1.0.92 → 1.0.94
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/dist/findProblems.js.map +1 -1
- package/dist/findSearch.d.ts +6 -0
- package/dist/findSearch.js +102 -0
- package/dist/findSearch.js.map +1 -0
- package/dist/fixProblems.js.map +1 -1
- package/dist/fixProject.js.map +1 -1
- package/dist/problems.worker.js.map +1 -1
- package/dist/rules/issues/actions/actionRules.index.d.ts +1 -1
- package/dist/rules/issues/actions/createActionNameRule.d.ts +2 -2
- package/dist/rules/issues/actions/createActionNameRule.js.map +1 -1
- package/dist/rules/issues/actions/duplicateActionArgumentNameRule.d.ts +2 -2
- package/dist/rules/issues/actions/duplicateActionArgumentNameRule.js.map +1 -1
- package/dist/rules/issues/actions/legacyActionRule.d.ts +2 -2
- package/dist/rules/issues/actions/legacyActionRule.fix.js.map +1 -1
- package/dist/rules/issues/actions/legacyActionRule.js.map +1 -1
- package/dist/rules/issues/actions/noReferenceProjectActionRule.d.ts +2 -2
- package/dist/rules/issues/actions/noReferenceProjectActionRule.js.map +1 -1
- package/dist/rules/issues/actions/projectActionIsReferenced.memo.js.map +1 -1
- package/dist/rules/issues/actions/unknownActionArgumentRule.d.ts +2 -2
- package/dist/rules/issues/actions/unknownActionArgumentRule.js.map +1 -1
- package/dist/rules/issues/actions/unknownActionEventRule.d.ts +2 -2
- package/dist/rules/issues/actions/unknownActionEventRule.js.map +1 -1
- package/dist/rules/issues/actions/unknownProjectActionRule.d.ts +2 -2
- package/dist/rules/issues/actions/unknownProjectActionRule.js.map +1 -1
- package/dist/rules/issues/apis/apiRules.index.d.ts +4 -4
- package/dist/rules/issues/apis/invalidApiParserModeRule.d.ts +2 -2
- package/dist/rules/issues/apis/invalidApiParserModeRule.js.map +1 -1
- package/dist/rules/issues/apis/invalidApiProxyBodySettingRule.d.ts +2 -2
- package/dist/rules/issues/apis/invalidApiProxyBodySettingRule.js.map +1 -1
- package/dist/rules/issues/apis/invalidApiProxyCookieSettingRule.d.ts +2 -2
- package/dist/rules/issues/apis/invalidApiProxyCookieSettingRule.js.map +1 -1
- package/dist/rules/issues/apis/legacyApiRule.d.ts +2 -2
- package/dist/rules/issues/apis/legacyApiRule.js.map +1 -1
- package/dist/rules/issues/apis/noReferenceApiInputRule.d.ts +2 -2
- package/dist/rules/issues/apis/noReferenceApiInputRule.js.map +1 -1
- package/dist/rules/issues/apis/noReferenceApiRule.d.ts +2 -2
- package/dist/rules/issues/apis/noReferenceApiRule.js.map +1 -1
- package/dist/rules/issues/apis/noReferenceApiServiceRule.d.ts +2 -2
- package/dist/rules/issues/apis/noReferenceApiServiceRule.js.map +1 -1
- package/dist/rules/issues/apis/unknownApiInputRule.d.ts +2 -2
- package/dist/rules/issues/apis/unknownApiInputRule.js.map +1 -1
- package/dist/rules/issues/apis/unknownApiRule.d.ts +2 -2
- package/dist/rules/issues/apis/unknownApiRule.js.map +1 -1
- package/dist/rules/issues/apis/unknownApiServiceRule.d.ts +2 -2
- package/dist/rules/issues/apis/unknownApiServiceRule.js.map +1 -1
- package/dist/rules/issues/apis/unknownFetchInputRule.d.ts +2 -2
- package/dist/rules/issues/apis/unknownFetchInputRule.js.map +1 -1
- package/dist/rules/issues/attributes/attributeRules.index.d.ts +2 -2
- package/dist/rules/issues/attributes/noReferenceAttributeInInstanceRule.d.ts +2 -2
- package/dist/rules/issues/attributes/noReferenceAttributeInInstanceRule.js.map +1 -1
- package/dist/rules/issues/attributes/noReferenceAttributeRule.d.ts +2 -2
- package/dist/rules/issues/attributes/noReferenceAttributeRule.js.map +1 -1
- package/dist/rules/issues/attributes/unknownAttributeRule.d.ts +2 -2
- package/dist/rules/issues/attributes/unknownAttributeRule.js.map +1 -1
- package/dist/rules/issues/attributes/unknownComponentAttributeRule.d.ts +2 -2
- package/dist/rules/issues/attributes/unknownComponentAttributeRule.js.map +1 -1
- package/dist/rules/issues/components/componentIsReferenced.memo.js.map +1 -1
- package/dist/rules/issues/components/componentRules.index.d.ts +1 -1
- package/dist/rules/issues/components/invalidComponentStructureRule.d.ts +2 -2
- package/dist/rules/issues/components/invalidComponentStructureRule.js.map +1 -1
- package/dist/rules/issues/components/noReferenceComponentRule.d.ts +2 -2
- package/dist/rules/issues/components/noReferenceComponentRule.js.map +1 -1
- package/dist/rules/issues/components/unknownComponentRule.d.ts +2 -2
- package/dist/rules/issues/components/unknownComponentRule.js.map +1 -1
- package/dist/rules/issues/context/contextRules.index.d.ts +3 -3
- package/dist/rules/issues/context/noContextConsumersRule.d.ts +2 -2
- package/dist/rules/issues/context/noContextConsumersRule.js.map +1 -1
- package/dist/rules/issues/context/unknownContextFormulaRule.d.ts +2 -2
- package/dist/rules/issues/context/unknownContextFormulaRule.js.map +1 -1
- package/dist/rules/issues/context/unknownContextProviderFormulaRule.d.ts +2 -2
- package/dist/rules/issues/context/unknownContextProviderFormulaRule.js.map +1 -1
- package/dist/rules/issues/context/unknownContextProviderRule.d.ts +2 -2
- package/dist/rules/issues/context/unknownContextProviderRule.js.map +1 -1
- package/dist/rules/issues/dom/createRequiredDirectChildRule.d.ts +2 -2
- package/dist/rules/issues/dom/createRequiredDirectChildRule.js.map +1 -1
- package/dist/rules/issues/dom/createRequiredDirectParentRule.d.ts +2 -2
- package/dist/rules/issues/dom/createRequiredDirectParentRule.js.map +1 -1
- package/dist/rules/issues/dom/createRequiredElementAttributeRule.d.ts +2 -2
- package/dist/rules/issues/dom/createRequiredElementAttributeRule.js.map +1 -1
- package/dist/rules/issues/dom/createRequiredMetaTagRule.d.ts +2 -2
- package/dist/rules/issues/dom/createRequiredMetaTagRule.js.map +1 -1
- package/dist/rules/issues/dom/domRules.index.d.ts +5 -5
- package/dist/rules/issues/dom/elementWithoutInteractiveContentRule.d.ts +2 -2
- package/dist/rules/issues/dom/elementWithoutInteractiveContentRule.js.map +1 -1
- package/dist/rules/issues/dom/imageWithoutDimensionRule.d.ts +2 -2
- package/dist/rules/issues/dom/imageWithoutDimensionRule.js.map +1 -1
- package/dist/rules/issues/dom/nonEmptyVoidElementRule.d.ts +2 -2
- package/dist/rules/issues/dom/nonEmptyVoidElementRule.js.map +1 -1
- package/dist/rules/issues/events/duplicateEventTriggerRule.d.ts +2 -2
- package/dist/rules/issues/events/duplicateEventTriggerRule.js.map +1 -1
- package/dist/rules/issues/events/eventRules.index.d.ts +2 -2
- package/dist/rules/issues/events/noReferenceEventRule.d.ts +2 -2
- package/dist/rules/issues/events/noReferenceEventRule.js.map +1 -1
- package/dist/rules/issues/events/unknownEventRule.d.ts +2 -2
- package/dist/rules/issues/events/unknownEventRule.js.map +1 -1
- package/dist/rules/issues/events/unknownTriggerEventRule.d.ts +2 -2
- package/dist/rules/issues/events/unknownTriggerEventRule.js.map +1 -1
- package/dist/rules/issues/formulas/duplicateFormulaArgumentNameRule.d.ts +2 -2
- package/dist/rules/issues/formulas/duplicateFormulaArgumentNameRule.js.map +1 -1
- package/dist/rules/issues/formulas/formulaRules.index.d.ts +2 -2
- package/dist/rules/issues/formulas/legacyFormulaRule.d.ts +2 -2
- package/dist/rules/issues/formulas/legacyFormulaRule.fix.js.map +1 -1
- package/dist/rules/issues/formulas/legacyFormulaRule.js.map +1 -1
- package/dist/rules/issues/formulas/noReferenceComponentFormulaRule.d.ts +2 -2
- package/dist/rules/issues/formulas/noReferenceComponentFormulaRule.js.map +1 -1
- package/dist/rules/issues/formulas/noReferenceProjectFormulaRule.d.ts +2 -2
- package/dist/rules/issues/formulas/noReferenceProjectFormulaRule.js.map +1 -1
- package/dist/rules/issues/formulas/projectFormulaIsReferenced.memo.js.map +1 -1
- package/dist/rules/issues/formulas/unknownComponentFormulaInputRule.d.ts +2 -2
- package/dist/rules/issues/formulas/unknownComponentFormulaInputRule.js.map +1 -1
- package/dist/rules/issues/formulas/unknownFormulaRule.d.ts +2 -2
- package/dist/rules/issues/formulas/unknownFormulaRule.js.map +1 -1
- package/dist/rules/issues/formulas/unknownProjectFormulaInputRule.d.ts +2 -2
- package/dist/rules/issues/formulas/unknownProjectFormulaInputRule.js.map +1 -1
- package/dist/rules/issues/formulas/unknownProjectFormulaRule.d.ts +2 -2
- package/dist/rules/issues/formulas/unknownProjectFormulaRule.js.map +1 -1
- package/dist/rules/issues/formulas/unknownRepeatIndexFormulaRule.d.ts +2 -2
- package/dist/rules/issues/formulas/unknownRepeatIndexFormulaRule.js.map +1 -1
- package/dist/rules/issues/formulas/unknownRepeatItemFormulaRule.d.ts +2 -2
- package/dist/rules/issues/formulas/unknownRepeatItemFormulaRule.js.map +1 -1
- package/dist/rules/issues/logic/logicRules.index.d.ts +2 -2
- package/dist/rules/issues/logic/noStaticNodeCondition.d.ts +2 -2
- package/dist/rules/issues/logic/noStaticNodeCondition.js.map +1 -1
- package/dist/rules/issues/logic/noUnnecessaryConditionFalsy.d.ts +2 -2
- package/dist/rules/issues/logic/noUnnecessaryConditionFalsy.js.map +1 -1
- package/dist/rules/issues/logic/noUnnecessaryConditionTruthy.d.ts +2 -2
- package/dist/rules/issues/logic/noUnnecessaryConditionTruthy.js.map +1 -1
- package/dist/rules/issues/miscellaneous/createStaticSizeConstraintRule.d.ts +2 -2
- package/dist/rules/issues/miscellaneous/createStaticSizeConstraintRule.js.map +1 -1
- package/dist/rules/issues/miscellaneous/miscRules.index.d.ts +3 -3
- package/dist/rules/issues/miscellaneous/noReferenceNodeRule.d.ts +2 -2
- package/dist/rules/issues/miscellaneous/noReferenceNodeRule.js.map +1 -1
- package/dist/rules/issues/miscellaneous/noReferencePackageRule.d.ts +2 -2
- package/dist/rules/issues/miscellaneous/noReferencePackageRule.js.map +1 -1
- package/dist/rules/issues/miscellaneous/requireExtensionRule.d.ts +2 -2
- package/dist/rules/issues/miscellaneous/requireExtensionRule.js.map +1 -1
- package/dist/rules/issues/miscellaneous/unknownCookieRule.d.ts +2 -2
- package/dist/rules/issues/miscellaneous/unknownCookieRule.js.map +1 -1
- package/dist/rules/issues/routing/duplicateRouteRule.d.ts +2 -2
- package/dist/rules/issues/routing/duplicateRouteRule.js.map +1 -1
- package/dist/rules/issues/routing/duplicateUrlParameterRule.d.ts +2 -2
- package/dist/rules/issues/routing/duplicateUrlParameterRule.js.map +1 -1
- package/dist/rules/issues/routing/routingRules.index.d.ts +2 -2
- package/dist/rules/issues/routing/unknownSetUrlParameterRule.d.ts +2 -2
- package/dist/rules/issues/routing/unknownSetUrlParameterRule.js.map +1 -1
- package/dist/rules/issues/routing/unknownSetUrlParametersRule.d.ts +2 -2
- package/dist/rules/issues/routing/unknownSetUrlParametersRule.js.map +1 -1
- package/dist/rules/issues/routing/unknownUrlParameterRule.d.ts +2 -2
- package/dist/rules/issues/routing/unknownUrlParameterRule.js.map +1 -1
- package/dist/rules/issues/slots/slotRules.index.d.ts +1 -1
- package/dist/rules/issues/slots/unknownComponentSlotRule.d.ts +2 -2
- package/dist/rules/issues/slots/unknownComponentSlotRule.js.map +1 -1
- package/dist/rules/issues/style/invalidStyleSyntaxRule.d.ts +2 -2
- package/dist/rules/issues/style/invalidStyleSyntaxRule.js.map +1 -1
- package/dist/rules/issues/style/legacyStyleVariableRule.d.ts +2 -2
- package/dist/rules/issues/style/legacyStyleVariableRule.js.map +1 -1
- package/dist/rules/issues/style/legacyThemeRule.d.ts +2 -2
- package/dist/rules/issues/style/legacyThemeRule.js.map +1 -1
- package/dist/rules/issues/style/noReferenceAnimationRule.d.ts +2 -2
- package/dist/rules/issues/style/noReferenceAnimationRule.js +3 -1
- package/dist/rules/issues/style/noReferenceAnimationRule.js.map +1 -1
- package/dist/rules/issues/style/noReferenceGlobalCSSVariable.d.ts +2 -2
- package/dist/rules/issues/style/noReferenceGlobalCSSVariable.js.map +1 -1
- package/dist/rules/issues/style/styleRules.index.d.ts +3 -3
- package/dist/rules/issues/style/unknownCSSVariable.d.ts +2 -2
- package/dist/rules/issues/style/unknownCSSVariable.js.map +1 -1
- package/dist/rules/issues/style/unknownClassnameRule.d.ts +2 -2
- package/dist/rules/issues/style/unknownClassnameRule.js.map +1 -1
- package/dist/rules/issues/variables/noReferenceVariableRule.d.ts +2 -2
- package/dist/rules/issues/variables/noReferenceVariableRule.js.map +1 -1
- package/dist/rules/issues/variables/unknownVariableRule.d.ts +2 -2
- package/dist/rules/issues/variables/unknownVariableRule.js.map +1 -1
- package/dist/rules/issues/variables/unknownVariableSetterRule.d.ts +2 -2
- package/dist/rules/issues/variables/unknownVariableSetterRule.js.map +1 -1
- package/dist/rules/issues/variables/variableRules.index.d.ts +1 -1
- package/dist/rules/issues/workflows/duplicateWorkflowParameterRule.d.ts +2 -2
- package/dist/rules/issues/workflows/duplicateWorkflowParameterRule.js.map +1 -1
- package/dist/rules/issues/workflows/noPostNavigateAction.d.ts +2 -2
- package/dist/rules/issues/workflows/noPostNavigateAction.js.map +1 -1
- package/dist/rules/issues/workflows/noReferenceComponentWorkflowRule.d.ts +2 -2
- package/dist/rules/issues/workflows/noReferenceComponentWorkflowRule.js.map +1 -1
- package/dist/rules/issues/workflows/unknownContextProviderWorkflowRule.d.ts +2 -2
- package/dist/rules/issues/workflows/unknownContextProviderWorkflowRule.js.map +1 -1
- package/dist/rules/issues/workflows/unknownContextWorkflowRule.d.ts +2 -2
- package/dist/rules/issues/workflows/unknownContextWorkflowRule.js.map +1 -1
- package/dist/rules/issues/workflows/unknownTriggerWorkflowParameterRule.d.ts +2 -2
- package/dist/rules/issues/workflows/unknownTriggerWorkflowParameterRule.js.map +1 -1
- package/dist/rules/issues/workflows/unknownTriggerWorkflowRule.d.ts +2 -2
- package/dist/rules/issues/workflows/unknownTriggerWorkflowRule.js.map +1 -1
- package/dist/rules/issues/workflows/unknownWorkflowParameterRule.d.ts +2 -2
- package/dist/rules/issues/workflows/unknownWorkflowParameterRule.js.map +1 -1
- package/dist/rules/issues/workflows/workflowRules.index.d.ts +3 -3
- package/dist/rules/search/fieldSearchRule.d.ts +8 -0
- package/dist/rules/search/fieldSearchRule.js +293 -0
- package/dist/rules/search/fieldSearchRule.js.map +1 -0
- package/dist/search.worker.d.ts +1 -11
- package/dist/search.worker.js +17 -6
- package/dist/search.worker.js.map +1 -1
- package/dist/searchProject.d.ts +11 -5
- package/dist/searchProject.js +11 -12
- package/dist/searchProject.js.map +1 -1
- package/dist/types.d.ts +33 -3
- package/dist/util/contextlessEvaluateFormula.js.map +1 -1
- package/dist/util/helpers.js.map +1 -1
- package/dist/util/parseSearchQuery.d.ts +24 -0
- package/dist/util/parseSearchQuery.js +81 -0
- package/dist/util/parseSearchQuery.js.map +1 -0
- package/dist/util/removeUnused.fix.js.map +1 -1
- package/package.json +6 -5
- package/src/findProblems.ts +7 -3
- package/src/findSearch.ts +134 -0
- package/src/rules/issues/actions/createActionNameRule.ts +2 -2
- package/src/rules/issues/actions/duplicateActionArgumentNameRule.ts +2 -2
- package/src/rules/issues/actions/legacyActionRule.ts +2 -2
- package/src/rules/issues/actions/noReferenceProjectActionRule.ts +2 -2
- package/src/rules/issues/actions/unknownActionArgumentRule.ts +2 -2
- package/src/rules/issues/actions/unknownActionEventRule.ts +2 -2
- package/src/rules/issues/actions/unknownProjectActionRule.ts +2 -2
- package/src/rules/issues/apis/invalidApiParserModeRule.ts +2 -2
- package/src/rules/issues/apis/invalidApiProxyBodySettingRule.ts +2 -2
- package/src/rules/issues/apis/invalidApiProxyCookieSettingRule.ts +2 -2
- package/src/rules/issues/apis/legacyApiRule.ts +2 -2
- package/src/rules/issues/apis/noReferenceApiInputRule.ts +2 -2
- package/src/rules/issues/apis/noReferenceApiRule.ts +2 -2
- package/src/rules/issues/apis/noReferenceApiServiceRule.ts +2 -2
- package/src/rules/issues/apis/unknownApiInputRule.ts +2 -2
- package/src/rules/issues/apis/unknownApiRule.ts +2 -2
- package/src/rules/issues/apis/unknownApiServiceRule.ts +2 -2
- package/src/rules/issues/apis/unknownFetchInputRule.ts +2 -2
- package/src/rules/issues/attributes/noReferenceAttributeInInstanceRule.ts +2 -2
- package/src/rules/issues/attributes/noReferenceAttributeRule.ts +2 -2
- package/src/rules/issues/attributes/unknownAttributeRule.ts +2 -2
- package/src/rules/issues/attributes/unknownComponentAttributeRule.ts +2 -2
- package/src/rules/issues/components/invalidComponentStructureRule.ts +2 -2
- package/src/rules/issues/components/noReferenceComponentRule.ts +2 -2
- package/src/rules/issues/components/unknownComponentRule.ts +2 -2
- package/src/rules/issues/context/noContextConsumersRule.ts +2 -2
- package/src/rules/issues/context/unknownContextFormulaRule.ts +2 -2
- package/src/rules/issues/context/unknownContextProviderFormulaRule.ts +2 -2
- package/src/rules/issues/context/unknownContextProviderRule.ts +32 -31
- package/src/rules/issues/dom/createRequiredDirectChildRule.ts +2 -2
- package/src/rules/issues/dom/createRequiredDirectParentRule.ts +2 -2
- package/src/rules/issues/dom/createRequiredElementAttributeRule.ts +2 -2
- package/src/rules/issues/dom/createRequiredMetaTagRule.ts +2 -2
- package/src/rules/issues/dom/elementWithoutInteractiveContentRule.ts +2 -2
- package/src/rules/issues/dom/imageWithoutDimensionRule.ts +2 -2
- package/src/rules/issues/dom/nonEmptyVoidElementRule.ts +2 -2
- package/src/rules/issues/events/duplicateEventTriggerRule.ts +2 -2
- package/src/rules/issues/events/noReferenceEventRule.ts +2 -2
- package/src/rules/issues/events/unknownEventRule.ts +2 -2
- package/src/rules/issues/events/unknownTriggerEventRule.ts +2 -2
- package/src/rules/issues/formulas/duplicateFormulaArgumentNameRule.ts +2 -2
- package/src/rules/issues/formulas/legacyFormulaRule.ts +2 -2
- package/src/rules/issues/formulas/noReferenceComponentFormulaRule.ts +2 -2
- package/src/rules/issues/formulas/noReferenceProjectFormulaRule.ts +2 -2
- package/src/rules/issues/formulas/unknownComponentFormulaInputRule.ts +2 -2
- package/src/rules/issues/formulas/unknownFormulaRule.ts +2 -2
- package/src/rules/issues/formulas/unknownProjectFormulaInputRule.ts +2 -2
- package/src/rules/issues/formulas/unknownProjectFormulaRule.ts +2 -2
- package/src/rules/issues/formulas/unknownRepeatIndexFormulaRule.ts +2 -2
- package/src/rules/issues/formulas/unknownRepeatItemFormulaRule.ts +2 -2
- package/src/rules/issues/logic/noStaticNodeCondition.ts +2 -2
- package/src/rules/issues/logic/noUnnecessaryConditionFalsy.ts +2 -2
- package/src/rules/issues/logic/noUnnecessaryConditionTruthy.ts +2 -2
- package/src/rules/issues/miscellaneous/createStaticSizeConstraintRule.ts +2 -2
- package/src/rules/issues/miscellaneous/noReferenceNodeRule.ts +2 -2
- package/src/rules/issues/miscellaneous/noReferencePackageRule.ts +2 -2
- package/src/rules/issues/miscellaneous/requireExtensionRule.ts +2 -2
- package/src/rules/issues/miscellaneous/unknownCookieRule.ts +2 -2
- package/src/rules/issues/routing/duplicateRouteRule.ts +2 -2
- package/src/rules/issues/routing/duplicateUrlParameterRule.ts +2 -2
- package/src/rules/issues/routing/unknownSetUrlParameterRule.ts +2 -2
- package/src/rules/issues/routing/unknownSetUrlParametersRule.ts +2 -2
- package/src/rules/issues/routing/unknownUrlParameterRule.ts +2 -2
- package/src/rules/issues/slots/unknownComponentSlotRule.ts +2 -2
- package/src/rules/issues/style/invalidStyleSyntaxRule.ts +2 -2
- package/src/rules/issues/style/legacyStyleVariableRule.ts +2 -2
- package/src/rules/issues/style/legacyThemeRule.ts +2 -2
- package/src/rules/issues/style/noReferenceAnimationRule.test.ts +41 -0
- package/src/rules/issues/style/noReferenceAnimationRule.ts +5 -3
- package/src/rules/issues/style/noReferenceGlobalCSSVariable.ts +2 -2
- package/src/rules/issues/style/unknownCSSVariable.ts +2 -2
- package/src/rules/issues/style/unknownClassnameRule.ts +2 -2
- package/src/rules/issues/variables/noReferenceVariableRule.ts +2 -2
- package/src/rules/issues/variables/unknownVariableRule.ts +2 -2
- package/src/rules/issues/variables/unknownVariableSetterRule.ts +2 -2
- package/src/rules/issues/workflows/duplicateWorkflowParameterRule.ts +29 -28
- package/src/rules/issues/workflows/noPostNavigateAction.ts +2 -2
- package/src/rules/issues/workflows/noReferenceComponentWorkflowRule.ts +2 -2
- package/src/rules/issues/workflows/unknownContextProviderWorkflowRule.ts +2 -2
- package/src/rules/issues/workflows/unknownContextWorkflowRule.ts +2 -2
- package/src/rules/issues/workflows/unknownTriggerWorkflowParameterRule.ts +55 -54
- package/src/rules/issues/workflows/unknownTriggerWorkflowRule.ts +2 -2
- package/src/rules/issues/workflows/unknownWorkflowParameterRule.ts +2 -2
- package/src/rules/search/fieldSearchRule.test.ts +464 -0
- package/src/rules/search/fieldSearchRule.ts +391 -0
- package/src/search.worker.ts +19 -46
- package/src/searchProject.ts +45 -27
- package/src/types.ts +41 -3
- package/src/util/parseSearchQuery.test.ts +56 -0
- package/src/util/parseSearchQuery.ts +92 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { NodeType } from '../types';
|
|
2
|
+
export type SearchQueryPart = {
|
|
3
|
+
nodeType?: NodeType['nodeType'];
|
|
4
|
+
fields?: Record<string, string | RegExp> | string | RegExp;
|
|
5
|
+
exclude?: boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Takes a string query and return a search query object.
|
|
9
|
+
*
|
|
10
|
+
* Query format examples:
|
|
11
|
+
* - `Some string` - will match exactly "some string" (case insensitive) in a field
|
|
12
|
+
* - `/some string/i` - same as the above
|
|
13
|
+
* - `/Some string/` - same as the above, but case sensitive (any regex allowed)
|
|
14
|
+
* - `Variable,my-var` - will match formula path nodes, as Arrays and objects are stringified when possible.
|
|
15
|
+
*
|
|
16
|
+
* Programmatic search only (WIP, may change):
|
|
17
|
+
* All starts with "<" and contains one ">".
|
|
18
|
+
*
|
|
19
|
+
* - `<>tag:"div"` - will return fields with key "tag" and value exactly "div"
|
|
20
|
+
* - `<component-node>tag:"img"` - same as above, but will only return nodes of type "component-node"
|
|
21
|
+
* - `<>tag:"img" attrs.alt:"/.+/"` - has field tag equals "img" and any value in field "alt" of object "attrs" on the same element.
|
|
22
|
+
* - `<formula>type:"path" path:Variable,my-var` - precisely match a formula with type "path" and path ["Variable", "my-var"] (note that arrays and objects are stringified when possible, so we can use the same syntax as the literal search for exact matches on them)
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseSearchQuery(query: string): SearchQueryPart[];
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Takes a string query and return a search query object.
|
|
3
|
+
*
|
|
4
|
+
* Query format examples:
|
|
5
|
+
* - `Some string` - will match exactly "some string" (case insensitive) in a field
|
|
6
|
+
* - `/some string/i` - same as the above
|
|
7
|
+
* - `/Some string/` - same as the above, but case sensitive (any regex allowed)
|
|
8
|
+
* - `Variable,my-var` - will match formula path nodes, as Arrays and objects are stringified when possible.
|
|
9
|
+
*
|
|
10
|
+
* Programmatic search only (WIP, may change):
|
|
11
|
+
* All starts with "<" and contains one ">".
|
|
12
|
+
*
|
|
13
|
+
* - `<>tag:"div"` - will return fields with key "tag" and value exactly "div"
|
|
14
|
+
* - `<component-node>tag:"img"` - same as above, but will only return nodes of type "component-node"
|
|
15
|
+
* - `<>tag:"img" attrs.alt:"/.+/"` - has field tag equals "img" and any value in field "alt" of object "attrs" on the same element.
|
|
16
|
+
* - `<formula>type:"path" path:Variable,my-var` - precisely match a formula with type "path" and path ["Variable", "my-var"] (note that arrays and objects are stringified when possible, so we can use the same syntax as the literal search for exact matches on them)
|
|
17
|
+
*/
|
|
18
|
+
export function parseSearchQuery(query) {
|
|
19
|
+
const trimmed = query.trim();
|
|
20
|
+
if (!trimmed)
|
|
21
|
+
return [];
|
|
22
|
+
// Check for programmatic search: <nodeType>field:"value" ...
|
|
23
|
+
const closingBracketIndex = trimmed.startsWith('<')
|
|
24
|
+
? trimmed.indexOf('>')
|
|
25
|
+
: -1;
|
|
26
|
+
if (closingBracketIndex > 0) {
|
|
27
|
+
const nodeTypeStr = trimmed.slice(1, closingBracketIndex).trim();
|
|
28
|
+
const fieldsPart = trimmed.slice(closingBracketIndex + 1).trim();
|
|
29
|
+
const nodeType = nodeTypeStr
|
|
30
|
+
? nodeTypeStr
|
|
31
|
+
: undefined;
|
|
32
|
+
const fields = {};
|
|
33
|
+
// Regex to match field:"value" or field:"/regex/flags"
|
|
34
|
+
// Modified to swallow quotes around /regex/
|
|
35
|
+
const fieldRegex = /\s*([^:]+?)\s*:(?:"\/([^/]*)\/([gimuy]*)"|(?:"([^"]*)"))/gi;
|
|
36
|
+
let match;
|
|
37
|
+
while ((match = fieldRegex.exec(fieldsPart)) !== null) {
|
|
38
|
+
const fieldName = match[1];
|
|
39
|
+
const regexPattern = match[2];
|
|
40
|
+
const regexFlags = match[3];
|
|
41
|
+
const quotedValue = match[4];
|
|
42
|
+
if (regexPattern !== undefined) {
|
|
43
|
+
try {
|
|
44
|
+
fields[fieldName] = new RegExp(regexPattern, regexFlags || undefined);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
fields[fieldName] = `/${regexPattern}/${regexFlags}`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else if (quotedValue !== undefined) {
|
|
51
|
+
// Keep the quotes to indicate "exact match" in the rule
|
|
52
|
+
fields[fieldName] = `"${quotedValue}"`;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return [{ nodeType, fields }];
|
|
56
|
+
}
|
|
57
|
+
// Regular text search
|
|
58
|
+
// Regex match?
|
|
59
|
+
if (trimmed.startsWith('/') && trimmed.lastIndexOf('/') > 0) {
|
|
60
|
+
const lastSlashIndex = trimmed.lastIndexOf('/');
|
|
61
|
+
const pattern = trimmed.slice(1, lastSlashIndex);
|
|
62
|
+
const flags = trimmed.slice(lastSlashIndex + 1);
|
|
63
|
+
try {
|
|
64
|
+
// If no flags provided, don't default to 'i' if user specifically provided /.../
|
|
65
|
+
// The requirement says /Some string/ is case sensitive, /some string/i is case insensitive.
|
|
66
|
+
return [{ fields: new RegExp(pattern, flags || undefined) }];
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// Fallback
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Default: literal case-insensitive match (as a regex for simple consistency with rule)
|
|
73
|
+
// The user says matches exactly "some string" (case insensitive)
|
|
74
|
+
// We use the raw string here because we want to match it exactly (not as a regex)
|
|
75
|
+
return [
|
|
76
|
+
{
|
|
77
|
+
fields: trimmed,
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=parseSearchQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseSearchQuery.js","sourceRoot":"","sources":["../../src/util/parseSearchQuery.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IAEvB,6DAA6D;IAC7D,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QACjD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;QACtB,CAAC,CAAC,CAAC,CAAC,CAAA;IACN,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAA;QAChE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAEhE,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAE,WAAoC;YACvC,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,MAAM,GAAoC,EAAE,CAAA;QAElD,uDAAuD;QACvD,4CAA4C;QAC5C,MAAM,UAAU,GACd,4DAA4D,CAAA;QAC9D,IAAI,KAA6B,CAAA;QACjC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAE5B,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,UAAU,IAAI,SAAS,CAAC,CAAA;gBACvE,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,YAAY,IAAI,UAAU,EAAE,CAAA;gBACtD,CAAC;YACH,CAAC;iBAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBACrC,wDAAwD;gBACxD,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,WAAW,GAAG,CAAA;YACxC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED,sBAAsB;IACtB,eAAe;IACf,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAA;QAC/C,IAAI,CAAC;YACH,iFAAiF;YACjF,4FAA4F;YAC5F,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,iEAAiE;IACjE,kFAAkF;IAClF,OAAO;QACL;YACE,MAAM,EAAE,OAAO;SAChB;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeUnused.fix.js","sourceRoot":"","sources":["../../src/util/removeUnused.fix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,wCAAwC,CAAA;AAGvE,MAAM,CAAC,MAAM,iBAAiB,GAA0B,CAAC,EACvD,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GACtB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAEvB;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA0B,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"removeUnused.fix.js","sourceRoot":"","sources":["../../src/util/removeUnused.fix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,wCAAwC,CAAA;AAGvE,MAAM,CAAC,MAAM,iBAAiB,GAA0B,CAAC,EACvD,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GACtB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAEvB;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA0B,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACvE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7D,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAGhE,CAAA;IAED,yBAAyB;IACzB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,EAAE;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAA0B,CAAA;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,qBAAqB,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC,CAAA;IAED,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAE7B,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -10,11 +10,12 @@
|
|
|
10
10
|
"directory": "packages/search"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@nordcraft/ssr": "1.0.
|
|
14
|
-
"@nordcraft/core": "1.0.
|
|
13
|
+
"@nordcraft/ssr": "1.0.94",
|
|
14
|
+
"@nordcraft/core": "1.0.94",
|
|
15
15
|
"jsondiffpatch": "0.7.3",
|
|
16
|
-
"postcss": "8.5.
|
|
17
|
-
"zod": "4.2.1"
|
|
16
|
+
"postcss": "8.5.8",
|
|
17
|
+
"zod": "4.2.1",
|
|
18
|
+
"fast-deep-equal": "3.1.3"
|
|
18
19
|
},
|
|
19
20
|
"scripts": {
|
|
20
21
|
"build": "tsgo",
|
|
@@ -26,5 +27,5 @@
|
|
|
26
27
|
"test:watch:only": "bun test --watch --only"
|
|
27
28
|
},
|
|
28
29
|
"files": ["dist", "src"],
|
|
29
|
-
"version": "1.0.
|
|
30
|
+
"version": "1.0.94"
|
|
30
31
|
}
|
package/src/findProblems.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { ISSUE_RULES } from './rules/issues/issueRules.index'
|
|
2
2
|
import { searchProject } from './searchProject'
|
|
3
|
-
import type {
|
|
3
|
+
import type {
|
|
4
|
+
FindProblemsArgs,
|
|
5
|
+
FindProblemsResponse,
|
|
6
|
+
IssueResult,
|
|
7
|
+
} from './types'
|
|
4
8
|
|
|
5
9
|
export const findProblems = (
|
|
6
10
|
data: FindProblemsArgs,
|
|
7
11
|
reportResults: (results: FindProblemsResponse) => void,
|
|
8
12
|
) => {
|
|
9
13
|
const { files, options = {} } = data
|
|
10
|
-
const idRespond = (results:
|
|
14
|
+
const idRespond = (results: IssueResult[]) =>
|
|
11
15
|
reportResults({
|
|
12
16
|
id: data.id,
|
|
13
17
|
results,
|
|
@@ -19,7 +23,7 @@ export const findProblems = (
|
|
|
19
23
|
!options.rulesToExclude?.includes(rule.code),
|
|
20
24
|
)
|
|
21
25
|
|
|
22
|
-
let batch:
|
|
26
|
+
let batch: IssueResult[] = []
|
|
23
27
|
let fileType: string | number | undefined
|
|
24
28
|
let fileName: string | number | undefined
|
|
25
29
|
for (const problem of searchProject({
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { ProjectFiles } from '@nordcraft/ssr/dist/ssr.types'
|
|
2
|
+
import { createFieldSearchRule } from './rules/search/fieldSearchRule'
|
|
3
|
+
import { searchProject } from './searchProject'
|
|
4
|
+
import type {
|
|
5
|
+
SearchArgs,
|
|
6
|
+
SearchResponse,
|
|
7
|
+
SearchResult,
|
|
8
|
+
SearchRule,
|
|
9
|
+
} from './types'
|
|
10
|
+
|
|
11
|
+
export interface SearchTask {
|
|
12
|
+
id: string
|
|
13
|
+
cancelled: boolean
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
let currentTask: SearchTask | undefined = undefined
|
|
17
|
+
let files: ProjectFiles | undefined = undefined
|
|
18
|
+
|
|
19
|
+
export async function findSearch(
|
|
20
|
+
data: SearchArgs,
|
|
21
|
+
reportResults: (results: SearchResponse) => void,
|
|
22
|
+
) {
|
|
23
|
+
const { files: _files, id, query, options = {} } = data
|
|
24
|
+
|
|
25
|
+
if (currentTask) {
|
|
26
|
+
currentTask.cancelled = true
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const task: SearchTask = { id, cancelled: false }
|
|
30
|
+
currentTask = task
|
|
31
|
+
|
|
32
|
+
files = _files ?? files
|
|
33
|
+
if (!files) {
|
|
34
|
+
reportResults({
|
|
35
|
+
id,
|
|
36
|
+
results: [],
|
|
37
|
+
complete: true,
|
|
38
|
+
cancelled: true,
|
|
39
|
+
cancelReason: 'No files provided for search',
|
|
40
|
+
})
|
|
41
|
+
return
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const rules: SearchRule[] = []
|
|
45
|
+
rules.push(
|
|
46
|
+
createFieldSearchRule({
|
|
47
|
+
query,
|
|
48
|
+
withDetails: options.withDetails ?? true,
|
|
49
|
+
skippedFields:
|
|
50
|
+
(query.startsWith('<') && query.includes('>')) ||
|
|
51
|
+
(query.startsWith('"') && query.endsWith('"'))
|
|
52
|
+
? {}
|
|
53
|
+
: {
|
|
54
|
+
// Random generated ids are disabled for non-programmatic or exact matching
|
|
55
|
+
'component-node': ['children'],
|
|
56
|
+
},
|
|
57
|
+
}),
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
let batch: SearchResult[] = []
|
|
61
|
+
let fileType: string | number | undefined
|
|
62
|
+
let fileName: string | number | undefined
|
|
63
|
+
let lastYield = performance.now()
|
|
64
|
+
|
|
65
|
+
for (const result of searchProject({
|
|
66
|
+
...options,
|
|
67
|
+
files,
|
|
68
|
+
rules,
|
|
69
|
+
pathsToVisit: options.pathsToVisit ?? [],
|
|
70
|
+
useExactPaths: options.useExactPaths ?? false,
|
|
71
|
+
withDetails: options.withDetails ?? true,
|
|
72
|
+
})) {
|
|
73
|
+
if (task.cancelled) {
|
|
74
|
+
return
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Every 10ms we yield to the event loop to allow new messages to be processed
|
|
78
|
+
if (performance.now() - lastYield > 10) {
|
|
79
|
+
await new Promise((resolve) => setTimeout(resolve))
|
|
80
|
+
lastYield = performance.now()
|
|
81
|
+
if (task.cancelled) {
|
|
82
|
+
// eslint-disable-next-line no-console
|
|
83
|
+
console.warn(
|
|
84
|
+
`Search with id ${id} cancelled after yielding to event loop`,
|
|
85
|
+
)
|
|
86
|
+
return
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
switch (options.batchSize) {
|
|
91
|
+
case 'all': {
|
|
92
|
+
batch.push(result)
|
|
93
|
+
break
|
|
94
|
+
}
|
|
95
|
+
case 'per-file': {
|
|
96
|
+
if (fileType !== result.path[0] || fileName !== result.path[1]) {
|
|
97
|
+
if (batch.length > 0) {
|
|
98
|
+
reportResults({
|
|
99
|
+
id,
|
|
100
|
+
results: batch,
|
|
101
|
+
})
|
|
102
|
+
}
|
|
103
|
+
batch = []
|
|
104
|
+
fileType = result.path[0]
|
|
105
|
+
fileName = result.path[1]
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
batch.push(result)
|
|
109
|
+
break
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
default: {
|
|
113
|
+
batch.push(result)
|
|
114
|
+
if (batch.length >= (options.batchSize ?? 1)) {
|
|
115
|
+
reportResults({
|
|
116
|
+
id,
|
|
117
|
+
results: batch,
|
|
118
|
+
})
|
|
119
|
+
batch = []
|
|
120
|
+
}
|
|
121
|
+
break
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Send the remaining results and mark the search as complete
|
|
127
|
+
if (!task.cancelled) {
|
|
128
|
+
reportResults({
|
|
129
|
+
id,
|
|
130
|
+
results: batch,
|
|
131
|
+
complete: true,
|
|
132
|
+
})
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Category, Code,
|
|
1
|
+
import type { Category, Code, IssueRule, Level } from '../../../types'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Generic rule factory for creating a rule that checks for a specific action name.
|
|
@@ -21,7 +21,7 @@ export function createActionNameRule({
|
|
|
21
21
|
}
|
|
22
22
|
category?: Category
|
|
23
23
|
level?: Level
|
|
24
|
-
}):
|
|
24
|
+
}): IssueRule<{
|
|
25
25
|
name: string
|
|
26
26
|
}> {
|
|
27
27
|
return {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IssueRule } from '../../../types'
|
|
2
2
|
|
|
3
|
-
export const duplicateActionArgumentNameRule:
|
|
3
|
+
export const duplicateActionArgumentNameRule: IssueRule<{
|
|
4
4
|
name: string
|
|
5
5
|
}> = {
|
|
6
6
|
code: 'duplicate action argument name',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { CustomActionModel } from '@nordcraft/core/dist/component/component.types'
|
|
2
|
-
import type { ActionModelNode,
|
|
2
|
+
import type { ActionModelNode, IssueRule, NodeType } from '../../../types'
|
|
3
3
|
import { isLegacyAction } from '../../../util/helpers'
|
|
4
4
|
import { replaceLegacyAction } from './legacyActionRule.fix'
|
|
5
5
|
|
|
6
|
-
export const legacyActionRule:
|
|
6
|
+
export const legacyActionRule: IssueRule<
|
|
7
7
|
{
|
|
8
8
|
name: string
|
|
9
9
|
},
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { isLegacyPluginAction } from '@nordcraft/core/dist/component/actionUtils'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
import { removeFromPathFix } from '../../../util/removeUnused.fix'
|
|
4
4
|
import { projectActionIsReferenced } from './projectActionIsReferenced.memo'
|
|
5
5
|
|
|
6
|
-
export const noReferenceProjectActionRule:
|
|
6
|
+
export const noReferenceProjectActionRule: IssueRule<void> = {
|
|
7
7
|
code: 'no-reference project action',
|
|
8
8
|
level: 'warning',
|
|
9
9
|
category: 'No References',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { isLegacyPluginAction } from '@nordcraft/core/dist/component/actionUtils'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
import { removeFromPathFix } from '../../../util/removeUnused.fix'
|
|
4
4
|
|
|
5
|
-
export const unknownActionArgumentRule:
|
|
5
|
+
export const unknownActionArgumentRule: IssueRule<{ name: string }> = {
|
|
6
6
|
code: 'unknown action argument',
|
|
7
7
|
level: 'warning',
|
|
8
8
|
category: 'Unknown Reference',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { isDefined } from '@nordcraft/core/dist/utils/util'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
import { removeFromPathFix } from '../../../util/removeUnused.fix'
|
|
4
4
|
|
|
5
|
-
export const unknownActionEventRule:
|
|
5
|
+
export const unknownActionEventRule: IssueRule<{ name: string }> = {
|
|
6
6
|
code: 'unknown action event',
|
|
7
7
|
level: 'warning',
|
|
8
8
|
category: 'Unknown Reference',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IssueRule } from '../../../types'
|
|
2
2
|
|
|
3
|
-
export const unknownProjectActionRule:
|
|
3
|
+
export const unknownProjectActionRule: IssueRule<{ name: string }> = {
|
|
4
4
|
code: 'unknown project action',
|
|
5
5
|
level: 'warning',
|
|
6
6
|
category: 'Unknown Reference',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isLegacyApi } from '@nordcraft/core/dist/api/api'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
|
|
4
|
-
export const invalidApiParserModeRule:
|
|
4
|
+
export const invalidApiParserModeRule: IssueRule<{ api: string }> = {
|
|
5
5
|
code: 'invalid api parser mode',
|
|
6
6
|
level: 'warning',
|
|
7
7
|
category: 'Quality',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isLegacyApi } from '@nordcraft/core/dist/api/api'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
|
|
4
|
-
export const invalidApiProxyBodySettingRule:
|
|
4
|
+
export const invalidApiProxyBodySettingRule: IssueRule<{ api: string }> = {
|
|
5
5
|
code: 'invalid api proxy body setting',
|
|
6
6
|
level: 'warning',
|
|
7
7
|
category: 'Quality',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { isLegacyApi } from '@nordcraft/core/dist/api/api'
|
|
2
2
|
import { get } from '@nordcraft/core/dist/utils/collections'
|
|
3
|
-
import type {
|
|
3
|
+
import type { IssueRule } from '../../../types'
|
|
4
4
|
|
|
5
|
-
export const invalidApiProxyCookieSettingRule:
|
|
5
|
+
export const invalidApiProxyCookieSettingRule: IssueRule<{ api: string }> = {
|
|
6
6
|
code: 'invalid api proxy cookie setting',
|
|
7
7
|
level: 'warning',
|
|
8
8
|
category: 'Quality',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isLegacyApi } from '@nordcraft/core/dist/api/api'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
|
|
4
|
-
export const legacyApiRule:
|
|
4
|
+
export const legacyApiRule: IssueRule<{
|
|
5
5
|
name: string
|
|
6
6
|
}> = {
|
|
7
7
|
code: 'legacy api',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ToddleApiV2 } from '@nordcraft/core/dist/api/ToddleApiV2'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
|
|
4
|
-
export const noReferenceApiInputRule:
|
|
4
|
+
export const noReferenceApiInputRule: IssueRule<{ inputName: string }> = {
|
|
5
5
|
code: 'no-reference api input',
|
|
6
6
|
level: 'warning',
|
|
7
7
|
category: 'No References',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { isDefined } from '@nordcraft/core/dist/utils/util'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
import { removeFromPathFix } from '../../../util/removeUnused.fix'
|
|
4
4
|
|
|
5
|
-
export const noReferenceApiRule:
|
|
5
|
+
export const noReferenceApiRule: IssueRule<void> = {
|
|
6
6
|
code: 'no-reference api',
|
|
7
7
|
level: 'warning',
|
|
8
8
|
category: 'No References',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { isLegacyApi } from '@nordcraft/core/dist/api/api'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
import { removeFromPathFix } from '../../../util/removeUnused.fix'
|
|
4
4
|
|
|
5
|
-
export const noReferenceApiServiceRule:
|
|
5
|
+
export const noReferenceApiServiceRule: IssueRule<{ serviceName: string }> = {
|
|
6
6
|
code: 'no-reference api service',
|
|
7
7
|
level: 'warning',
|
|
8
8
|
category: 'No References',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ApiRequest } from '@nordcraft/core/dist/api/apiTypes'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
|
|
4
|
-
export const unknownApiInputRule:
|
|
4
|
+
export const unknownApiInputRule: IssueRule<{
|
|
5
5
|
name: string
|
|
6
6
|
}> = {
|
|
7
7
|
code: 'unknown api input',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { isLegacyApi } from '@nordcraft/core/dist/api/api'
|
|
2
2
|
import { isDefined } from '@nordcraft/core/dist/utils/util'
|
|
3
|
-
import type {
|
|
3
|
+
import type { IssueRule } from '../../../types'
|
|
4
4
|
import { removeFromPathFix } from '../../../util/removeUnused.fix'
|
|
5
5
|
|
|
6
|
-
export const unknownApiServiceRule:
|
|
6
|
+
export const unknownApiServiceRule: IssueRule<{
|
|
7
7
|
apiName: string
|
|
8
8
|
serviceName: string
|
|
9
9
|
}> = {
|
|
@@ -2,12 +2,12 @@ import { get } from '@nordcraft/core/dist/utils/collections'
|
|
|
2
2
|
import type {
|
|
3
3
|
ActionModelNode,
|
|
4
4
|
FixFunction,
|
|
5
|
+
IssueRule,
|
|
5
6
|
NodeType,
|
|
6
|
-
Rule,
|
|
7
7
|
} from '../../../types'
|
|
8
8
|
import { removeFromPathFix } from '../../../util/removeUnused.fix'
|
|
9
9
|
|
|
10
|
-
export const unknownFetchInputRule:
|
|
10
|
+
export const unknownFetchInputRule: IssueRule<
|
|
11
11
|
{
|
|
12
12
|
name: string
|
|
13
13
|
},
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IssueRule } from '../../../types'
|
|
2
2
|
import { contextlessEvaluateFormula } from '../../../util/contextlessEvaluateFormula'
|
|
3
3
|
import { removeFromPathFix } from '../../../util/removeUnused.fix'
|
|
4
4
|
import { componentIsReferenced } from '../components/componentIsReferenced.memo'
|
|
5
5
|
|
|
6
|
-
export const noReferenceAttributeInInstanceRule:
|
|
6
|
+
export const noReferenceAttributeInInstanceRule: IssueRule<void> = {
|
|
7
7
|
code: 'no-reference attribute in instance',
|
|
8
8
|
level: 'info',
|
|
9
9
|
category: 'No References',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IssueRule } from '../../../types'
|
|
2
2
|
import { removeFromPathFix } from '../../../util/removeUnused.fix'
|
|
3
3
|
|
|
4
|
-
export const noReferenceAttributeRule:
|
|
4
|
+
export const noReferenceAttributeRule: IssueRule<void> = {
|
|
5
5
|
code: 'no-reference attribute',
|
|
6
6
|
level: 'warning',
|
|
7
7
|
category: 'No References',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { isDefined } from '@nordcraft/core/dist/utils/util'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
import { removeFromPathFix } from '../../../util/removeUnused.fix'
|
|
4
4
|
|
|
5
|
-
export const unknownComponentAttributeRule:
|
|
5
|
+
export const unknownComponentAttributeRule: IssueRule<{
|
|
6
6
|
name: string
|
|
7
7
|
componentName: string
|
|
8
8
|
}> = {
|
|
@@ -6,8 +6,8 @@ import type {
|
|
|
6
6
|
ComponentNode,
|
|
7
7
|
FixFunction,
|
|
8
8
|
FixType,
|
|
9
|
+
IssueRule,
|
|
9
10
|
NodeType,
|
|
10
|
-
Rule,
|
|
11
11
|
} from '../../../types'
|
|
12
12
|
|
|
13
13
|
export interface InvalidComponentData {
|
|
@@ -91,7 +91,7 @@ const changeDataTypeFix: FixFunction<ComponentNode, InvalidComponentData> = ({
|
|
|
91
91
|
const convertIssuePath = (path: PropertyKey[]) =>
|
|
92
92
|
path.map((p) => (typeof p === 'number' ? p : String(p)))
|
|
93
93
|
|
|
94
|
-
export const invalidComponentStructureRule:
|
|
94
|
+
export const invalidComponentStructureRule: IssueRule<
|
|
95
95
|
InvalidComponentData,
|
|
96
96
|
NodeType,
|
|
97
97
|
ComponentNode
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Component } from '@nordcraft/core/dist/component/component.types'
|
|
2
2
|
import { isDefined } from '@nordcraft/core/dist/utils/util'
|
|
3
|
-
import type {
|
|
3
|
+
import type { IssueRule } from '../../../types'
|
|
4
4
|
import { contextlessEvaluateFormula } from '../../../util/contextlessEvaluateFormula'
|
|
5
5
|
import { removeFromPathFix } from '../../../util/removeUnused.fix'
|
|
6
6
|
import { componentIsReferenced } from './componentIsReferenced.memo'
|
|
7
7
|
|
|
8
|
-
export const noReferenceComponentRule:
|
|
8
|
+
export const noReferenceComponentRule: IssueRule<void> = {
|
|
9
9
|
code: 'no-reference component',
|
|
10
10
|
level: 'warning',
|
|
11
11
|
category: 'No References',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isDefined } from '@nordcraft/core/dist/utils/util'
|
|
2
|
-
import type {
|
|
2
|
+
import type { IssueRule } from '../../../types'
|
|
3
3
|
|
|
4
|
-
export const unknownComponentRule:
|
|
4
|
+
export const unknownComponentRule: IssueRule<{
|
|
5
5
|
name: string
|
|
6
6
|
}> = {
|
|
7
7
|
code: 'unknown component',
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IssueRule } from '../../../types'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Rule for checking if a component exposes formulas or workflows
|
|
5
5
|
* in context but has no slots or components that could consume them
|
|
6
6
|
*/
|
|
7
|
-
export const noContextConsumersRule:
|
|
7
|
+
export const noContextConsumersRule: IssueRule<{
|
|
8
8
|
providerName: string
|
|
9
9
|
formulaName: string
|
|
10
10
|
}> = {
|