├── .gitattributes
├── .husky
├── pre-push
└── skip.js
├── .github
├── CODEOWNERS
├── in-solidarity.yml
├── ISSUE_TEMPLATE
│ └── config.yml
├── workflows
│ ├── commitlint.yml
│ ├── reuse-compliance.yml
│ ├── e2e.yml
│ └── issues.yml
└── PULL_REQUEST_TEMPLATE.md
├── test
├── fixtures
│ ├── transpiler
│ │ ├── xml
│ │ │ ├── error_UnknownDocumentKind.xml
│ │ │ ├── error_UnknownNamespaceTag.view.xml
│ │ │ ├── error_TopLevelAggregation.view.xml
│ │ │ ├── error_ XMLComposite.control.xml
│ │ │ ├── error_UnknownNamespaceAttribute.view.xml
│ │ │ ├── error_NestedFragmentDefinition.fragment.xml
│ │ │ ├── error_RequireAttributeParsing.view.xml
│ │ │ ├── CustomControl.view.xml
│ │ │ ├── error_AggregationNesting.view.xml
│ │ │ ├── UnknownAttrNamespace.fragment.xml
│ │ │ ├── MultipleXmlns.fragment.xml
│ │ │ ├── XMLFragmentEmbedded.fragment.xml
│ │ │ ├── XMLViewWithLowerCaseControl.view.xml
│ │ │ ├── IgnoredNamespaces.fragment.xml
│ │ │ ├── _XMLFragmentEmbeddedNoNamespace.fragment.xml
│ │ │ ├── XMLFragmentWithLowerCaseControl.fragment.xml
│ │ │ ├── XMLViewNamespacePrefix.view.xml
│ │ │ ├── XMLFragmentEmbeddedFragDef.fragment.xml
│ │ │ ├── ComplexAttributeValues.view.xml
│ │ │ ├── XMLHtmlSvg.view.xml
│ │ │ ├── CustomData.view.xml
│ │ │ ├── XMLFragment.fragment.xml
│ │ │ └── XMLRequire.view.xml
│ │ └── amd
│ │ │ ├── Factory_Empty.js
│ │ │ ├── Factory_NotProvided_A.js
│ │ │ ├── Factory_NotProvided_B.js
│ │ │ ├── Require_Import.js
│ │ │ ├── Factory_Empty_2.js
│ │ │ ├── Noop_NoDefine.js
│ │ │ ├── Noop_EmptyDefine.js
│ │ │ ├── Dependencies_NotProvided_Export_Object.js
│ │ │ ├── Factory_ReturnCallExp.js
│ │ │ ├── ModuleName.js
│ │ │ ├── NoUi5ExtendCall.js
│ │ │ ├── Factory_ArrowFunctionExpr.js
│ │ │ ├── Factory_ReturnNewPromise.js
│ │ │ ├── Require_Errback.js
│ │ │ ├── ModuleName_FactoryArrowFunction.js
│ │ │ ├── Factory_ClassWithoutClassInfo.js
│ │ │ ├── Factory_jQueryExtend.js
│ │ │ ├── _Dependencies_NotProvided.js
│ │ │ ├── Factory_ClassWithoutName.js
│ │ │ ├── Noop_DynamicImport.js
│ │ │ ├── ExportFlag.js
│ │ │ ├── Factory_GlobalVar.js
│ │ │ ├── _Dependencies_AMD.js
│ │ │ ├── NameConflict.js
│ │ │ ├── ModuleName_Dynamic.js
│ │ │ ├── Dependencies.js
│ │ │ ├── Factory_MultipleReturns.js
│ │ │ ├── Dependencies_LocalImport.js
│ │ │ ├── Dependencies_Var.js
│ │ │ ├── Factory_MultipleReturnsArrowFunction.js
│ │ │ ├── Dependencies_Dynamic.js
│ │ │ ├── Factory_ArrowFunction.js
│ │ │ ├── Factory_hoisted_function.js
│ │ │ ├── Factory_FunctionDeclaration.js
│ │ │ ├── Require_Errback_2.js
│ │ │ ├── Factory_iife.js
│ │ │ ├── Factory_VarDeclarationFunctionExpression.js
│ │ │ ├── Require_Probing.js
│ │ │ ├── Factory_cond_iife.js
│ │ │ ├── Factory_cond_iife_2.js
│ │ │ ├── Factory_FunctionDeclarationMultipleReturns.js
│ │ │ ├── Export_Object.js
│ │ │ ├── Factory_VarDeclarationFunctionExpressionMultipleReturns.js
│ │ │ ├── Require_Callback.js
│ │ │ ├── Factory_ClassSingletonPattern.js
│ │ │ ├── Require_AMD.js
│ │ │ ├── Ui5ClassWithMetadata.js
│ │ │ ├── Ui5Bundle.js
│ │ │ └── Factory_BasicModule.js
│ ├── linter
│ │ ├── projects
│ │ │ ├── sap.ui.core
│ │ │ │ └── src
│ │ │ │ │ └── sap
│ │ │ │ │ └── ui
│ │ │ │ │ ├── core
│ │ │ │ │ ├── library.js
│ │ │ │ │ ├── Core.js
│ │ │ │ │ ├── Control.js
│ │ │ │ │ └── Element.js
│ │ │ │ │ └── base
│ │ │ │ │ ├── Object.js
│ │ │ │ │ ├── EventProvider.js
│ │ │ │ │ ├── Metadata.js
│ │ │ │ │ └── ManagedObject.js
│ │ │ ├── com.ui5.troublesome.app
│ │ │ │ ├── webapp
│ │ │ │ │ ├── emptyFile.js
│ │ │ │ │ ├── i18n
│ │ │ │ │ │ ├── i18n.properties
│ │ │ │ │ │ ├── i18n_de.properties
│ │ │ │ │ │ └── i18n_en.properties
│ │ │ │ │ ├── test
│ │ │ │ │ │ ├── unit
│ │ │ │ │ │ │ ├── controller
│ │ │ │ │ │ │ │ ├── Empty.qunit.js
│ │ │ │ │ │ │ │ ├── Foo.qunit.js
│ │ │ │ │ │ │ │ └── App.qunit.js
│ │ │ │ │ │ │ └── unitTests.qunit.js
│ │ │ │ │ │ ├── integration
│ │ │ │ │ │ │ └── opaTests.qunit.js
│ │ │ │ │ │ ├── testsuite.qunit.js
│ │ │ │ │ │ └── testsuite.qunit.html
│ │ │ │ │ ├── model
│ │ │ │ │ │ ├── formatter.js
│ │ │ │ │ │ └── models.js
│ │ │ │ │ ├── view
│ │ │ │ │ │ ├── App.view.xml
│ │ │ │ │ │ └── DesktopMain.view.xml
│ │ │ │ │ ├── controller
│ │ │ │ │ │ └── TemplatingMain.controller.js
│ │ │ │ │ ├── helpers
│ │ │ │ │ │ └── ES6Class.helper.js
│ │ │ │ │ ├── thirdparty
│ │ │ │ │ │ └── topLevelCode.js
│ │ │ │ │ └── bundles
│ │ │ │ │ │ ├── thirdparty-bundle.js
│ │ │ │ │ │ ├── ui5-bundle-without-sourcemap.js
│ │ │ │ │ │ ├── ui5-bundle.js.map
│ │ │ │ │ │ └── thirdparty-bundle.js.map
│ │ │ │ ├── ui5lint.config.matched-patterns.mjs
│ │ │ │ ├── ui5lint-custom.config.cjs
│ │ │ │ ├── ui5lint.config.mjs
│ │ │ │ ├── ui5.yaml
│ │ │ │ ├── ui5lint.config.unmatched-patterns.mjs
│ │ │ │ ├── ui5lint-custom-broken.config.cjs
│ │ │ │ └── configs
│ │ │ │ │ └── ui5-custom.yaml
│ │ │ ├── sap.ui.suite
│ │ │ │ ├── src
│ │ │ │ │ └── sap
│ │ │ │ │ │ └── ui
│ │ │ │ │ │ └── suite
│ │ │ │ │ │ ├── TaskCircle.js
│ │ │ │ │ │ └── library.js
│ │ │ │ └── test
│ │ │ │ │ └── sap
│ │ │ │ │ └── ui
│ │ │ │ │ └── suite
│ │ │ │ │ └── qunit
│ │ │ │ │ └── TaskCircle.qunit.js
│ │ │ ├── library.with.custom.paths
│ │ │ │ ├── package.json
│ │ │ │ ├── src
│ │ │ │ │ ├── main
│ │ │ │ │ │ └── js
│ │ │ │ │ │ │ ├── messagebundle.properties
│ │ │ │ │ │ │ └── ButtonFactory.js
│ │ │ │ │ └── test
│ │ │ │ │ │ └── js
│ │ │ │ │ │ ├── ButtonFactory.js
│ │ │ │ │ │ └── Example.html
│ │ │ │ └── ui5.yaml
│ │ │ ├── sap.f
│ │ │ │ ├── src
│ │ │ │ │ └── sap
│ │ │ │ │ │ └── f
│ │ │ │ │ │ ├── LinterTest.js
│ │ │ │ │ │ ├── .library
│ │ │ │ │ │ ├── ProductSwitchRenderer.js
│ │ │ │ │ │ ├── NewControl.js
│ │ │ │ │ │ └── ProductSwitch.js
│ │ │ │ └── test
│ │ │ │ │ └── sap
│ │ │ │ │ └── f
│ │ │ │ │ └── testsuite.qunit.html
│ │ │ ├── legacy-dirs
│ │ │ │ ├── legacy.app.a
│ │ │ │ │ └── WebContent
│ │ │ │ │ │ └── manifest.json
│ │ │ │ ├── legacy.app.b
│ │ │ │ │ └── src
│ │ │ │ │ │ └── main
│ │ │ │ │ │ └── webapp
│ │ │ │ │ │ └── manifest.json
│ │ │ │ ├── legacy.lib.c
│ │ │ │ │ └── src
│ │ │ │ │ │ └── main
│ │ │ │ │ │ └── js
│ │ │ │ │ │ └── .library
│ │ │ │ ├── legacy.lib.a
│ │ │ │ │ └── src
│ │ │ │ │ │ └── main
│ │ │ │ │ │ └── jslib
│ │ │ │ │ │ └── .library
│ │ │ │ └── legacy.lib.b
│ │ │ │ │ └── src
│ │ │ │ │ └── main
│ │ │ │ │ └── uilib
│ │ │ │ │ └── .library
│ │ │ └── sap.ui.unified
│ │ │ │ └── src
│ │ │ │ └── sap
│ │ │ │ └── ui
│ │ │ │ └── unified
│ │ │ │ └── Foo.js
│ │ ├── rules
│ │ │ ├── NoDeprecatedApi
│ │ │ │ ├── NoDeprecatedFileType.view.html
│ │ │ │ ├── NoDeprecatedFileType.view.json
│ │ │ │ ├── NoDeprecatedFileType.view.tmpl
│ │ │ │ ├── NoDeprecatedFileType.fragment.html
│ │ │ │ ├── ModuleImport.js
│ │ │ │ ├── sap.ui.require-toplevel.js
│ │ │ │ ├── sap.ui.jsview.js
│ │ │ │ ├── CallOnReturnType.js
│ │ │ │ ├── jQuery-device.js
│ │ │ │ ├── MultipleXmlns.fragment.xml
│ │ │ │ ├── sap.ui.require-nested.js
│ │ │ │ ├── ui5.yaml
│ │ │ │ ├── setTheme_Deprecations.js
│ │ │ │ ├── PrototypeClass.js
│ │ │ │ ├── Configuration.beforeBootstrap.qunit.js
│ │ │ │ ├── setTheme_Deprecations.ts
│ │ │ │ ├── BootstrapParameters_Deprecations4.html
│ │ │ │ ├── BootstrapParameters_Deprecations5.html
│ │ │ │ ├── XMLHtmlSvg.view.xml
│ │ │ │ ├── jQuery-plugins.js
│ │ │ │ ├── XMLRequire.view.xml
│ │ │ │ ├── _XMLExtensionPoint.view.xml
│ │ │ │ ├── BootstrapParameters_Deprecations3.html
│ │ │ │ ├── XMLFragment.fragment.xml
│ │ │ │ └── NoDeprecatedApi_negative.js
│ │ │ ├── renderer
│ │ │ │ ├── 5ControlRenderer.js
│ │ │ │ ├── TSControlRenderer.ts
│ │ │ │ ├── 14Control.js
│ │ │ │ ├── 13Control.js
│ │ │ │ ├── 2Control.js
│ │ │ │ ├── 5Control.js
│ │ │ │ ├── 7Control.js
│ │ │ │ ├── 2ControlRenderer.js
│ │ │ │ ├── 10Control.js
│ │ │ │ ├── 9Control.js
│ │ │ │ ├── ControlRendererDeclarationSingleControlExported.js
│ │ │ │ ├── 12Control.js
│ │ │ │ ├── 11Control.js
│ │ │ │ ├── 7ControlRenderer.js
│ │ │ │ ├── 4Control.js
│ │ │ │ ├── 8Control.js
│ │ │ │ ├── 6Control.js
│ │ │ │ ├── 1Control.js
│ │ │ │ ├── 3Control.js
│ │ │ │ └── 8ControlRenderer.js
│ │ │ ├── AsyncComponentFlags
│ │ │ │ ├── Negative_05
│ │ │ │ │ ├── subdir
│ │ │ │ │ │ └── ParentComponent.js
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Negative_10
│ │ │ │ │ ├── subdir
│ │ │ │ │ │ └── ParentComponent.ts
│ │ │ │ │ └── Component.ts
│ │ │ │ ├── Negative_09
│ │ │ │ │ ├── subdir
│ │ │ │ │ │ └── ParentComponent.ts
│ │ │ │ │ └── Component.ts
│ │ │ │ ├── Positive_12
│ │ │ │ │ ├── Component.js
│ │ │ │ │ └── manifest.json
│ │ │ │ ├── Negative_02
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Negative_08
│ │ │ │ │ ├── manifest.json
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Positive_10
│ │ │ │ │ ├── manifest.json
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Positive_01
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Positive_13
│ │ │ │ │ ├── Component.js
│ │ │ │ │ └── manifest.json
│ │ │ │ ├── Positive_14
│ │ │ │ │ ├── Component.js
│ │ │ │ │ └── manifest.json
│ │ │ │ ├── Positive_15
│ │ │ │ │ ├── Component.js
│ │ │ │ │ └── manifest.json
│ │ │ │ ├── Negative_07
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Positive_16
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Negative_11
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Positive_07
│ │ │ │ │ ├── Component.js
│ │ │ │ │ └── manifest.json
│ │ │ │ ├── Positive_08
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Negative_06
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Positive_02
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Positive_20
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Positive_05
│ │ │ │ │ ├── Component.js
│ │ │ │ │ └── subdir
│ │ │ │ │ │ └── ParentComponent.js
│ │ │ │ ├── Negative_12
│ │ │ │ │ ├── Component.js
│ │ │ │ │ └── manifest.json
│ │ │ │ ├── Positive_06
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Negative_13
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Positive_09
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Negative_14
│ │ │ │ │ └── Component.js
│ │ │ │ ├── Positive_11
│ │ │ │ │ └── Component.ts
│ │ │ │ └── Negative_01
│ │ │ │ │ └── Component.js
│ │ │ ├── NoPseudoModules
│ │ │ │ ├── NoPseudoModules_negative.js
│ │ │ │ └── NoPseudoModules.js
│ │ │ ├── NoGlobals
│ │ │ │ ├── ModelDataTypes.view.xml
│ │ │ │ ├── NoImplicitGlobalsOData.js
│ │ │ │ ├── ModelDataTypes_NewVarTypeNegative.js
│ │ │ │ ├── ModelDataTypes_BindPropertyVarTypeNegative.js
│ │ │ │ ├── NoGlobals_Negative.js
│ │ │ │ ├── NoExportedLibValues.js
│ │ │ │ ├── NoImplicitGlobalsOData_Negative.js
│ │ │ │ └── FormatterGlobalBindingObject.js
│ │ │ └── Directives
│ │ │ │ ├── ui5.yaml
│ │ │ │ ├── Directives2.html
│ │ │ │ ├── Directives3.html
│ │ │ │ └── Directives4.html
│ │ └── general
│ │ │ ├── Class.js
│ │ │ ├── FunctionCall.js
│ │ │ ├── Undetected.js
│ │ │ ├── TSLike.js
│ │ │ ├── Raw.js
│ │ │ └── PlainJS.js
│ ├── autofix
│ │ ├── GlobalsExistingDefineWithModuleName.js
│ │ ├── GlobalsExistingDefineWithModuleNameAndEmptyDeps.js
│ │ ├── GlobalsExistingDefineWithExistingUnusedParamsSingle.js
│ │ ├── jQuerySapOutsideModule.js
│ │ ├── GlobalsExistingDefineWithExistingDepsSingle.js
│ │ ├── GlobalsExistingDefineWithExistingUnusedDepsSingle.js
│ │ ├── GlobalsExistingDefineWithExistingUnusedParamsSingleMatching.js
│ │ ├── UnusedDeprecatedImport.js
│ │ ├── GlobalsExistingDefineWithExistingUnusedDepsMultiLine.js
│ │ ├── GlobalsExistingDefineWithExistingUnusedParamsMultiple.js
│ │ ├── GlobalsExistingDefineWithExistingUnusedDepsMultiple2.js
│ │ ├── GlobalsExistingDefineWithExistingDepsMultiple.js
│ │ ├── GlobalsExistingDefineWithModuleName_FunctionExpression.js
│ │ ├── GlobalsJQuery.js
│ │ ├── GlobalsExistingDefineWithExistingUnusedDepsMultiple.js
│ │ ├── GlobalsExistingDefineWithDeps_ExistingArgumentName.js
│ │ ├── GlobalsExistingDefineWithExistingUnusedDepsMultiple3.js
│ │ ├── GlobalsExistingDefineWithExistingUnusedDepsMultiple4.js
│ │ ├── GlobalsExistingDefineWithDeps_ArrowFunction_NoBrackets.js
│ │ ├── GlobalsExistingDefineWithTrailingCommas.js
│ │ ├── jQuerySapRemoveModules.js
│ │ ├── GlobalsProbingRequire.js
│ │ ├── GlobalsExistingDefineTypeScript.ts
│ │ ├── sapMApi
│ │ │ ├── SapM.view.xml
│ │ │ └── SapM.js
│ │ ├── manifestJson
│ │ │ ├── emptyResourcesJs_01
│ │ │ │ └── manifest.json
│ │ │ └── emptyResourcesJs_02
│ │ │ │ └── manifest.json
│ │ ├── GlobalsExistingDefineNonStringLiteralDeps.js
│ │ ├── ParsingError.view.xml
│ │ ├── GlobalsExistingDefineSpecialGlobalAccess.js
│ │ ├── GlobalsExistingDefineWithExistingUnusedDepsMultiple5.js
│ │ ├── jQuerySapDefinitions.js
│ │ ├── GlobalsTypeScript.ts
│ │ ├── ParsingError.js
│ │ ├── GlobalsOutsideDefine.js
│ │ ├── GlobalsExistingDefineWithMissingParameters.js
│ │ ├── GlobalsReturnComponentClass.js
│ │ ├── jQuerySapExtendNoFix.js
│ │ ├── GlobalsExistingDefineWithDeps_SpecialNames.js
│ │ ├── CleanupUnused.js
│ │ ├── bootstrapParameters
│ │ │ ├── BootstrapParameters_SpecialAttributes.html
│ │ │ ├── BootstrapParameters_CompatVersion4.html
│ │ │ ├── BootstrapParameters_CompatVersion5.html
│ │ │ ├── BootstrapParameters_CompatVersion.html
│ │ │ ├── BootstrapParameters_CompatVersion2.html
│ │ │ ├── BootstrapParameters_SpacesTabsLinebreaks2.html
│ │ │ ├── BootstrapParameters_Deprecations3.html
│ │ │ └── BootstrapParameters_SpacesTabsLinebreaks.html
│ │ ├── GlobalsExistingDefineWithDepsWithMixedQuotes.js
│ │ ├── ambiguousEventHandlers
│ │ │ ├── Base.controller.js
│ │ │ ├── appA
│ │ │ │ ├── view
│ │ │ │ │ └── User.view.xml
│ │ │ │ └── controller
│ │ │ │ │ └── User.controller.ts
│ │ │ ├── appB
│ │ │ │ ├── view
│ │ │ │ │ └── User.view.xml
│ │ │ │ └── controller
│ │ │ │ │ └── User.controller.ts
│ │ │ ├── Main.controller.js
│ │ │ ├── MainTs.controller.ts
│ │ │ └── BaseTs.controller.ts
│ │ ├── ODataModelV4.js
│ │ ├── DeprecatedApi.js
│ │ ├── jQuerySapWithImport.js
│ │ ├── jQuerySapWithWhitespaces.js
│ │ ├── Configuration.js
│ │ ├── GlobalsNotFixable.js
│ │ ├── GlobalsNoModules.js
│ │ ├── GlobalsExistingDefineWithoutDeps_ManyGlobals.js
│ │ ├── Core.js
│ │ ├── GlobalsExistingDefineWithoutDeps_ArrowFunction.js
│ │ ├── GlobalsExistingDefineWithoutDeps_EmptyArray.js
│ │ ├── GlobalsExistingDefineTooManyArgs.js
│ │ ├── GlobalsExistingDefineWithDeps_ManyGlobalsMultiLine.js
│ │ ├── GlobalsExistingDefineWithoutDeps_FunctionExpression.js
│ │ └── GlobalsExistingDefineWithDeps_ManyGlobalsMultiLine2.js
│ └── e2e
│ │ └── runtime
│ │ ├── ui5.yaml
│ │ ├── src
│ │ ├── library.js
│ │ └── .library
│ │ ├── test
│ │ └── qunit
│ │ │ ├── testsuite.qunit.html
│ │ │ ├── sap.ui.base.Object.qunit.js
│ │ │ ├── jQuery.sap.resources.qunit.js
│ │ │ ├── jQuery.sap.pad.qunit.js
│ │ │ ├── testsuite.qunit.js
│ │ │ └── jQuery.sap.charToUpperCase.qunit.js
│ │ └── package.json
├── e2e
│ ├── snapshots
│ │ ├── runtime.ts.snap
│ │ ├── compare-ui5lint-snapshots.ts.snap
│ │ └── compare-ui5lint-fix-snapshots.ts.snap
│ └── compare-ui5lint-snapshots.ts
└── lib
│ ├── formatter
│ └── snapshots
│ │ ├── html.ts.snap
│ │ ├── text.ts.snap
│ │ ├── coverage.ts.snap
│ │ └── markdown.ts.snap
│ ├── linter
│ ├── snapshots
│ │ ├── linter.ts.snap
│ │ └── LinterContext.ts.snap
│ ├── rules
│ │ ├── snapshots
│ │ │ ├── XmlInJs.ts.snap
│ │ │ ├── renderer.ts.snap
│ │ │ ├── Directives.ts.snap
│ │ │ ├── NoGlobals.ts.snap
│ │ │ ├── CSPCompliance.ts.snap
│ │ │ ├── NoDeprecatedApi.ts.snap
│ │ │ ├── NoPseudoModules.ts.snap
│ │ │ └── AsyncComponentFlags.ts.snap
│ │ ├── NoGlobals.ts
│ │ ├── XmlInJs.ts
│ │ ├── renderer.ts
│ │ ├── CSPCompliance.ts
│ │ ├── Directives.ts
│ │ ├── NoPseudoModules.ts
│ │ ├── NoDeprecatedApi.ts
│ │ └── AsyncComponentFlags.ts
│ ├── ui5Types
│ │ └── snapshots
│ │ │ └── directives.ts.snap
│ ├── binding
│ │ ├── snapshots
│ │ │ └── BindingLinter.ts.snap
│ │ └── lib
│ │ │ └── snapshots
│ │ │ └── BindingParser.ts.snap
│ ├── xmlTemplate
│ │ ├── snapshots
│ │ │ └── transpiler.ts.snap
│ │ ├── generator
│ │ │ └── snapshots
│ │ │ │ └── ControllerByIdDtsGenerator.ts.snap
│ │ └── transpiler.ts
│ ├── amdTranspiler
│ │ ├── snapshots
│ │ │ └── transpiler.ts.snap
│ │ └── transpiler.ts
│ └── messages.ts
│ ├── snapshots
│ └── index.integration.ts.snap
│ ├── autofix
│ ├── snapshots
│ │ ├── autofix.fixtures.ts.snap
│ │ └── autofix.projects.ts.snap
│ └── autofix.fixtures.ts
│ └── cli
│ └── version.ts
├── .release-please-manifest.json
├── resources
└── types
│ ├── package.json
│ ├── sapui5
│ ├── sap.apf.d.ts
│ ├── sap.ndc.d.ts
│ ├── sap.ovp.d.ts
│ ├── sap.ui.dt.d.ts
│ ├── sap.ui.fl.d.ts
│ ├── sap.ui.vk.d.ts
│ ├── sap.fe.base.d.ts
│ ├── sap.fe.core.d.ts
│ ├── sap.fe.ina.d.ts
│ ├── sap.fe.test.d.ts
│ ├── sap.sac.df.d.ts
│ ├── sap.ui.rta.d.ts
│ ├── sap.zen.dsh.d.ts
│ ├── sap.fe.macros.d.ts
│ ├── sap.fe.tools.d.ts
│ ├── sap.insights.d.ts
│ ├── sap.fe.controls.d.ts
│ ├── sap.fe.templates.d.ts
│ ├── sap.feedback.ui.d.ts
│ ├── sap.uiext.inbox.d.ts
│ ├── sap.ushell_abap.d.ts
│ ├── sap.zen.commons.d.ts
│ ├── sap.zen.crosstab.d.ts
│ ├── sap.esh.search.ui.d.ts
│ ├── sap.fe.navigation.d.ts
│ ├── sap.fe.placeholder.d.ts
│ ├── sap.ui.codeeditor.d.ts
│ ├── sap.ui.testrecorder.d.ts
│ ├── sap.ui.webc.common.d.ts
│ ├── sap.ui.documentation.d.ts
│ ├── sap.webanalytics.core.d.ts
│ ├── sap.f.d.ts
│ ├── sap.m.d.ts
│ ├── sap.ui.generic.template.d.ts
│ ├── sap.fe.plugins.managecache.d.ts
│ ├── sap.me.d.ts
│ ├── sap.tnt.d.ts
│ ├── sap.uxap.d.ts
│ ├── sap.viz.d.ts
│ ├── sap.ca.ui.d.ts
│ ├── sap.chart.d.ts
│ ├── sap.gantt.d.ts
│ ├── sap.makit.d.ts
│ ├── sap.ui.mdc.d.ts
│ ├── sap.ui.ux3.d.ts
│ ├── sap.ui.vbm.d.ts
│ ├── sap.ui.vtm.d.ts
│ ├── sap.ushell.d.ts
│ ├── sap.ui.comp.d.ts
│ ├── sap.ui.core.d.ts
│ ├── sap.rules.ui.d.ts
│ ├── sap.ui.export.d.ts
│ ├── sap.ui.layout.d.ts
│ ├── sap.ui.suite.d.ts
│ ├── sap.ui.table.d.ts
│ ├── sap.ui.commons.d.ts
│ ├── sap.ui.support.d.ts
│ ├── sap.ui.unified.d.ts
│ ├── sap.ui.webc.main.d.ts
│ ├── sap.collaboration.d.ts
│ ├── sap.ui.generic.app.d.ts
│ ├── sap.ui.integration.d.ts
│ ├── sap.ui.webc.fiori.d.ts
│ ├── sap.suite.ui.commons.d.ts
│ ├── sap.ui.richtexteditor.d.ts
│ ├── sap.suite.ui.microchart.d.ts
│ └── sap.suite.ui.generic.template.d.ts
│ ├── index.d.ts
│ ├── jquery.sap.mobile.d.ts
│ └── pseudo-modules
│ ├── sap.ui.suite.d.ts
│ ├── sap.ui.richtexteditor.d.ts
│ ├── sap.suite.ui.generic.template.d.ts
│ └── sap.ui.vtm.d.ts
├── bin
└── ui5lint.js
├── docs
└── images
│ └── UI5_logo_wide.png
├── .npmrc
├── src
├── linter
│ ├── xmlTemplate
│ │ ├── lib
│ │ │ ├── EventHandlerResolver.d.ts
│ │ │ └── JSTokenizer.d.ts
│ │ └── generator
│ │ │ └── ViewGenerator.ts
│ ├── ui5Types
│ │ ├── fix
│ │ │ ├── XmlEnabledFix.ts
│ │ │ └── collections
│ │ │ │ ├── globalFixes.ts
│ │ │ │ └── sapUiCompFixes.ts
│ │ └── amdTranspiler
│ │ │ └── util.ts
│ ├── MessageArgs.ts
│ ├── html
│ │ └── linter.ts
│ ├── dotLibrary
│ │ └── linter.ts
│ ├── yaml
│ │ └── linter.ts
│ └── manifestJson
│ │ └── linter.ts
├── cli
│ ├── LinterArgs.ts
│ ├── version.ts
│ └── middlewares
│ │ └── base.ts
└── autofix
│ └── generateChangesJson.ts
├── tsconfig.build.json
├── ava-e2e.config.js
├── .licensee.json
├── ava.config.js
├── .editorconfig
├── SUPPORT.md
├── .nycrc
└── commitlint.config.mjs
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto eol=lf
2 |
--------------------------------------------------------------------------------
/.husky/pre-push:
--------------------------------------------------------------------------------
1 | npm run hooks:pre-push
2 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | @UI5/ui5-team-cor-fnd
2 |
--------------------------------------------------------------------------------
/.github/in-solidarity.yml:
--------------------------------------------------------------------------------
1 | _extends: ietf/terminology
2 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/xml/error_UnknownDocumentKind.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.release-please-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | ".": "1.20.6"
3 | }
4 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: true
2 |
--------------------------------------------------------------------------------
/resources/types/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "types": "index.d.ts"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/sap.ui.core/src/sap/ui/core/library.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/com.ui5.troublesome.app/webapp/emptyFile.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/sap.ui.suite/src/sap/ui/suite/TaskCircle.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/sap.ui.suite/src/sap/ui/suite/library.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/NoDeprecatedApi/NoDeprecatedFileType.view.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/NoDeprecatedApi/NoDeprecatedFileType.view.json:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/NoDeprecatedApi/NoDeprecatedFileType.view.tmpl:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/NoDeprecatedApi/NoDeprecatedFileType.fragment.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/xml/error_UnknownNamespaceTag.view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.husky/skip.js:
--------------------------------------------------------------------------------
1 | if (process.env.CI) {
2 | process.exit(0);
3 | } else {
4 | process.exit(1);
5 | }
6 |
--------------------------------------------------------------------------------
/bin/ui5lint.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | import initCli from "../lib/cli.js";
3 |
4 | initCli();
5 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_Empty.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(function () {
2 | "use strict"
3 | });
4 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_NotProvided_A.js:
--------------------------------------------------------------------------------
1 | sap.ui.define("sap/ui/core/UIComponent");
2 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_NotProvided_B.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/UIComponent"]);
2 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Require_Import.js:
--------------------------------------------------------------------------------
1 | sap.ui.require(["my/module", `my/other/module`]);
2 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/xml/error_TopLevelAggregation.view.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/images/UI5_logo_wide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/docs/images/UI5_logo_wide.png
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/NoDeprecatedApi/ModuleImport.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/model/odata/ODataModel"]);
2 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_Empty_2.js:
--------------------------------------------------------------------------------
1 | sap.ui.define([], function() {
2 | "use strict";
3 | });
4 |
--------------------------------------------------------------------------------
/test/e2e/snapshots/runtime.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/e2e/snapshots/runtime.ts.snap
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | # Enforce public npm registry
2 | registry=https://registry.npmjs.org/
3 | lockfile-version=3
4 | ignore-scripts=true
5 |
--------------------------------------------------------------------------------
/test/lib/formatter/snapshots/html.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/formatter/snapshots/html.ts.snap
--------------------------------------------------------------------------------
/test/lib/formatter/snapshots/text.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/formatter/snapshots/text.ts.snap
--------------------------------------------------------------------------------
/test/lib/linter/snapshots/linter.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/snapshots/linter.ts.snap
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Noop_NoDefine.js:
--------------------------------------------------------------------------------
1 | // This file contains "sap.ui.define", but no real sap.ui.define call
2 | sap.ui.define;
3 |
--------------------------------------------------------------------------------
/test/lib/formatter/snapshots/coverage.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/formatter/snapshots/coverage.ts.snap
--------------------------------------------------------------------------------
/test/lib/formatter/snapshots/markdown.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/formatter/snapshots/markdown.ts.snap
--------------------------------------------------------------------------------
/test/lib/snapshots/index.integration.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/snapshots/index.integration.ts.snap
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Noop_EmptyDefine.js:
--------------------------------------------------------------------------------
1 | // This file contains "sap.ui.define", but no real sap.ui.define call
2 | sap.ui.define();
3 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/xml/error_ XMLComposite.control.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/lib/linter/rules/snapshots/XmlInJs.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/rules/snapshots/XmlInJs.ts.snap
--------------------------------------------------------------------------------
/test/lib/linter/rules/snapshots/renderer.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/rules/snapshots/renderer.ts.snap
--------------------------------------------------------------------------------
/test/lib/linter/snapshots/LinterContext.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/snapshots/LinterContext.ts.snap
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.apf.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.apf.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ndc.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ndc.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ovp.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ovp.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.dt.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.dt.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.fl.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.fl.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.vk.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.vk.d.ts";
4 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/library.with.custom.paths/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "library.with.custom.paths",
3 | "version": "1.0.0"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/sap.f/src/sap/f/LinterTest.js:
--------------------------------------------------------------------------------
1 | // This project is used to test the linter with the namespace of an OpenUI5 project.
2 |
--------------------------------------------------------------------------------
/test/lib/autofix/snapshots/autofix.fixtures.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/autofix/snapshots/autofix.fixtures.ts.snap
--------------------------------------------------------------------------------
/test/lib/autofix/snapshots/autofix.projects.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/autofix/snapshots/autofix.projects.ts.snap
--------------------------------------------------------------------------------
/test/lib/linter/rules/snapshots/Directives.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/rules/snapshots/Directives.ts.snap
--------------------------------------------------------------------------------
/test/lib/linter/rules/snapshots/NoGlobals.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/rules/snapshots/NoGlobals.ts.snap
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.fe.base.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.fe.base.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.fe.core.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.fe.core.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.fe.ina.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.fe.ina.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.fe.test.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.fe.test.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.sac.df.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.sac.df.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.rta.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.rta.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.zen.dsh.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.zen.dsh.d.ts";
4 |
--------------------------------------------------------------------------------
/test/e2e/snapshots/compare-ui5lint-snapshots.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/e2e/snapshots/compare-ui5lint-snapshots.ts.snap
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithModuleName.js:
--------------------------------------------------------------------------------
1 | sap.ui.define("my/module", function() {
2 | const input = new sap.m.Input();
3 | });
4 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Dependencies_NotProvided_Export_Object.js:
--------------------------------------------------------------------------------
1 | sap.ui.define({
2 | add: function (x, y) {
3 | return x + y;
4 | }
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_ReturnCallExp.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/base/util/merge"], function (merge) {
2 | return merge({}, {});
3 | });
4 |
--------------------------------------------------------------------------------
/test/lib/linter/rules/snapshots/CSPCompliance.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/rules/snapshots/CSPCompliance.ts.snap
--------------------------------------------------------------------------------
/test/lib/linter/ui5Types/snapshots/directives.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/ui5Types/snapshots/directives.ts.snap
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.fe.macros.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.fe.macros.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.fe.tools.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.fe.tools.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.insights.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.insights.d.ts";
4 |
--------------------------------------------------------------------------------
/test/e2e/snapshots/compare-ui5lint-fix-snapshots.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/e2e/snapshots/compare-ui5lint-fix-snapshots.ts.snap
--------------------------------------------------------------------------------
/test/fixtures/transpiler/xml/error_UnknownNamespaceAttribute.view.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
--------------------------------------------------------------------------------
/test/lib/linter/binding/snapshots/BindingLinter.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/binding/snapshots/BindingLinter.ts.snap
--------------------------------------------------------------------------------
/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap
--------------------------------------------------------------------------------
/test/lib/linter/rules/snapshots/NoPseudoModules.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/rules/snapshots/NoPseudoModules.ts.snap
--------------------------------------------------------------------------------
/test/lib/linter/xmlTemplate/snapshots/transpiler.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/xmlTemplate/snapshots/transpiler.ts.snap
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.fe.controls.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.fe.controls.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.fe.templates.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.fe.templates.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.feedback.ui.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.feedback.ui.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.uiext.inbox.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.uiext.inbox.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ushell_abap.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ushell_abap.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.zen.commons.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.zen.commons.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.zen.crosstab.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.zen.crosstab.d.ts";
4 |
--------------------------------------------------------------------------------
/src/linter/xmlTemplate/lib/EventHandlerResolver.d.ts:
--------------------------------------------------------------------------------
1 | export default abstract class EventHandlerResolver {
2 | static parse(sValue: string): string[];
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/ModuleName.js:
--------------------------------------------------------------------------------
1 | sap.ui.define("MyModule", function () {
2 | return function () {
3 | return "MyModuleContent";
4 | };
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/NoUi5ExtendCall.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(function() {
2 | var foo = Data.extend();
3 | Data.extend();
4 | return Data.extend();
5 | });
6 |
--------------------------------------------------------------------------------
/test/lib/linter/amdTranspiler/snapshots/transpiler.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/amdTranspiler/snapshots/transpiler.ts.snap
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.esh.search.ui.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.esh.search.ui.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.fe.navigation.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.fe.navigation.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.fe.placeholder.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.fe.placeholder.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.codeeditor.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.codeeditor.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.testrecorder.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.testrecorder.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.webc.common.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.webc.common.d.ts";
4 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithModuleNameAndEmptyDeps.js:
--------------------------------------------------------------------------------
1 | sap.ui.define("my/module", [], function() {
2 | const input = new sap.m.Input();
3 | });
4 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_ArrowFunctionExpr.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/mvc/Controller"], (Controller) => Controller.extend("MyController", {}));
2 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_ReturnNewPromise.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(function() {
2 | return new Promise(function(resolve) {
3 | resolve();
4 | });
5 | });
6 |
--------------------------------------------------------------------------------
/test/lib/linter/binding/lib/snapshots/BindingParser.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/binding/lib/snapshots/BindingParser.ts.snap
--------------------------------------------------------------------------------
/test/lib/linter/rules/snapshots/AsyncComponentFlags.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/rules/snapshots/AsyncComponentFlags.ts.snap
--------------------------------------------------------------------------------
/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | // For creating a release build, only compile the src dir
3 | "extends": "./tsconfig.base.json",
4 | "include": ["src/**/*"],
5 | }
6 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.documentation.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.documentation.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.webanalytics.core.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.webanalytics.core.d.ts";
4 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithExistingUnusedParamsSingle.js:
--------------------------------------------------------------------------------
1 | sap.ui.define([], function(Input) {
2 | "use strict";
3 |
4 | new sap.m.Button();
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/jQuerySapOutsideModule.js:
--------------------------------------------------------------------------------
1 | jQuery.sap.assert(false, "Error message");
2 | jQuery.sap.getResourcePath('');
3 |
4 | sap.ui.define([], function() {});
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.f.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.f.d.ts";
4 | import "../pseudo-modules/sap.f";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.m.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.m.d.ts";
4 | import "../pseudo-modules/sap.m";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.generic.template.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.generic.template.d.ts";
4 |
--------------------------------------------------------------------------------
/test/fixtures/linter/general/Class.js:
--------------------------------------------------------------------------------
1 | import BaseObject from "sap/ui/base/Object";
2 |
3 | class Foo extends BaseObject {
4 | constructor() {
5 | super();
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/library.with.custom.paths/src/main/js/messagebundle.properties:
--------------------------------------------------------------------------------
1 | # Translation file of library library.with.custom.paths.
2 | ANY_TEXT=AnyText
3 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Require_Errback.js:
--------------------------------------------------------------------------------
1 | sap.ui.require(["some/module"], (module) => {
2 | module.renderButton();
3 | }, (err) => {
4 | console.log(err);
5 | });
6 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.fe.plugins.managecache.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.fe.plugins.managecache.d.ts";
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.me.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.me.d.ts";
4 | import "../pseudo-modules/sap.me";
5 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithExistingDepsSingle.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/m/Button"], function(Button) {
2 | "use strict";
3 |
4 | new sap.m.Button();
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithExistingUnusedDepsSingle.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/m/Button"], function() {
2 | "use strict";
3 |
4 | new sap.m.Button();
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithExistingUnusedParamsSingleMatching.js:
--------------------------------------------------------------------------------
1 | sap.ui.define([], function(Button) {
2 | "use strict";
3 |
4 | new sap.m.Button();
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/UnusedDeprecatedImport.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/Configuration", "sap/m/Button"], function(Configuration, Button) {
2 | const button = new Button();
3 | });
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/ModuleName_FactoryArrowFunction.js:
--------------------------------------------------------------------------------
1 | sap.ui.define("MyModule", () => {
2 | return function () {
3 | return "MyModuleContent";
4 | };
5 | });
6 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.tnt.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.tnt.d.ts";
4 | import "../pseudo-modules/sap.tnt";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.uxap.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.uxap.d.ts";
4 | import "../pseudo-modules/sap.uxap";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.viz.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.viz.d.ts";
4 | import "../pseudo-modules/sap.viz";
5 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithExistingUnusedDepsMultiLine.js:
--------------------------------------------------------------------------------
1 | sap.ui.define([
2 | "sap/m/Input"
3 | ], function() {
4 | const button = new sap.m.Button();
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/com.ui5.troublesome.app/ui5lint.config.matched-patterns.mjs:
--------------------------------------------------------------------------------
1 | export default {
2 | files: [
3 | "webapp/controller/*",
4 | "ui5.yaml",
5 | ],
6 | };
7 |
--------------------------------------------------------------------------------
/resources/types/index.d.ts:
--------------------------------------------------------------------------------
1 | import "./jquery.sap.mobile";
2 | import "./jquery.sap";
3 |
4 | // Note: pseudo-modules are imported individually per library via compilerOptions paths mappings
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ca.ui.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ca.ui.d.ts";
4 | import "../pseudo-modules/sap.ca.ui";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.chart.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.chart.d.ts";
4 | import "../pseudo-modules/sap.chart";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.gantt.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.gantt.d.ts";
4 | import "../pseudo-modules/sap.gantt";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.makit.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.makit.d.ts";
4 | import "../pseudo-modules/sap.makit";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.mdc.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.mdc.d.ts";
4 | import "../pseudo-modules/sap.ui.mdc";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.ux3.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.ux3.d.ts";
4 | import "../pseudo-modules/sap.ui.ux3";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.vbm.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.vbm.d.ts";
4 | import "../pseudo-modules/sap.ui.vbm";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.vtm.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.vtm.d.ts";
4 | import "../pseudo-modules/sap.ui.vtm";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ushell.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ushell.d.ts";
4 | import "../pseudo-modules/sap.ushell";
5 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithExistingUnusedParamsMultiple.js:
--------------------------------------------------------------------------------
1 | sap.ui.define([], function(Input, Button, ComboBox) {
2 | "use strict";
3 |
4 | new sap.m.Button();
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_ClassWithoutClassInfo.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/UIComponent"], function (UIComponent) {
2 | return UIComponent.extend("mycomp.Component");
3 | });
4 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_jQueryExtend.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/thirdparty/jquery", "./base"], function (jQuery, base) {
2 | return jQuery.extend(base, { foo: "bar" });
3 | });
4 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/xml/error_NestedFragmentDefinition.fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.comp.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.comp.d.ts";
4 | import "../pseudo-modules/sap.ui.comp";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.core.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.core.d.ts";
4 | import "../pseudo-modules/sap.ui.core";
5 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithExistingUnusedDepsMultiple2.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/m/Input", "sap/m/Button"], function() {
2 | "use strict";
3 |
4 | new sap.m.Input();
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/legacy-dirs/legacy.app.a/WebContent/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "_version": "1.12.0",
3 | "sap.app": {
4 | "id": "com.app",
5 | "type": "application"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/_Dependencies_NotProvided.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(function (require, exports, modules) {
2 | require(["sap/ui/core/UIComponent"]);
3 | exports("Hello World");
4 | });
5 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/xml/error_RequireAttributeParsing.view.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.rules.ui.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.rules.ui.d.ts";
4 | import "../pseudo-modules/sap.rules.ui";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.export.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.export.d.ts";
4 | import "../pseudo-modules/sap.ui.export";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.layout.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.layout.d.ts";
4 | import "../pseudo-modules/sap.ui.layout";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.suite.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.suite.d.ts";
4 | import "../pseudo-modules/sap.ui.suite";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.table.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.table.d.ts";
4 | import "../pseudo-modules/sap.ui.table";
5 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithExistingDepsMultiple.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/m/Button", "sap/m/Input"], function(Button, Input) {
2 | "use strict";
3 |
4 | new sap.m.Input();
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithModuleName_FunctionExpression.js:
--------------------------------------------------------------------------------
1 | const factoryFn = function() {
2 | const input = sap.m.Input();
3 | };
4 |
5 | sap.ui.define("my/module", factoryFn);
6 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/com.ui5.troublesome.app/webapp/i18n/i18n.properties:
--------------------------------------------------------------------------------
1 | appTitle=com.ui5.troublesome.app
2 | appDescription=UI5 Application com.ui5.troublesome.app
3 | btnText=Say Hello
4 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/com.ui5.troublesome.app/webapp/i18n/i18n_de.properties:
--------------------------------------------------------------------------------
1 | appTitle=com.ui5.troublesome.app
2 | appDescription=UI5 Application com.ui5.troublesome.app
3 | btnText=Sag Hallo
4 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/com.ui5.troublesome.app/webapp/i18n/i18n_en.properties:
--------------------------------------------------------------------------------
1 | appTitle=com.ui5.troublesome.app
2 | appDescription=UI5 Application com.ui5.troublesome.app
3 | btnText=Say Hello
4 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/legacy-dirs/legacy.app.b/src/main/webapp/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "_version": "1.12.0",
3 | "sap.app": {
4 | "id": "com.app",
5 | "type": "application"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_ClassWithoutName.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/mvc/ControllerExtension"], function(ControllerExtension) {
2 | return ControllerExtension.extend({});
3 | });
4 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Noop_DynamicImport.js:
--------------------------------------------------------------------------------
1 | export default () => {
2 | import('./foo')
3 | .then(() => { console.log('success') })
4 | .catch(() => { console.log('error') })
5 | }
6 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.commons.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.commons.d.ts";
4 | import "../pseudo-modules/sap.ui.commons";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.support.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.support.d.ts";
4 | import "../pseudo-modules/sap.ui.support";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.unified.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.unified.d.ts";
4 | import "../pseudo-modules/sap.ui.unified";
5 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/renderer/5ControlRenderer.js:
--------------------------------------------------------------------------------
1 | sap.ui.define([], function () {
2 | // Deprecated declaration. {apiVersion: 2} must be provided.
3 | return function (oRm, oMyControl) {};
4 | });
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.webc.main.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.webc.main.d.ts";
4 | import "../pseudo-modules/sap.ui.webc.main";
5 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsJQuery.js:
--------------------------------------------------------------------------------
1 | /* global jQuery, $ */
2 | // Usage of global jQuery / $ should **for now** not be fixed
3 | sap.ui.define(function() {
4 | jQuery("#container");
5 | $.noop();
6 | });
7 |
--------------------------------------------------------------------------------
/test/fixtures/linter/general/FunctionCall.js:
--------------------------------------------------------------------------------
1 | import values from "sap/base/util/values";
2 | const getValues = () => values;
3 | getValues()({foo: "bar"}); // Special case: CallExpression on a CallExpression
4 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/sap.ui.core/src/sap/ui/core/Core.js:
--------------------------------------------------------------------------------
1 | sap.ui.define([], function() {
2 | "use strict";
3 | if (sap.ui.getCore && sap.ui.getCore()) {
4 | return sap.ui.getCore();
5 | }
6 | });
7 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/ExportFlag.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/mvc/ControllerExtension"], function(ControllerExtension) {
2 | return ControllerExtension.extend("my.ReuseExtension", {});
3 | }, true);
4 |
--------------------------------------------------------------------------------
/test/lib/linter/xmlTemplate/generator/snapshots/ControllerByIdDtsGenerator.ts.snap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UI5/linter/HEAD/test/lib/linter/xmlTemplate/generator/snapshots/ControllerByIdDtsGenerator.ts.snap
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.collaboration.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.collaboration.d.ts";
4 | import "../pseudo-modules/sap.collaboration";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.generic.app.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.generic.app.d.ts";
4 | import "../pseudo-modules/sap.ui.generic.app";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.integration.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.integration.d.ts";
4 | import "../pseudo-modules/sap.ui.integration";
5 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.webc.fiori.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.webc.fiori.d.ts";
4 | import "../pseudo-modules/sap.ui.webc.fiori";
5 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_GlobalVar.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(
2 | [
3 | "sap/ui/core/mvc/Controller",
4 | "sap/ui/core/UIComponent",
5 | "sap/ui/core/routing/History",
6 | ],
7 | window.MyFactory
8 | );
9 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.suite.ui.commons.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.suite.ui.commons.d.ts";
4 | import "../pseudo-modules/sap.suite.ui.commons";
5 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithExistingUnusedDepsMultiple.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/m/Button", "sap/m/Input"], function() {
2 | "use strict";
3 |
4 | new sap.m.Input();
5 | new sap.m.Input();
6 | });
7 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/renderer/TSControlRenderer.ts:
--------------------------------------------------------------------------------
1 | var myControlRenderer = {};
2 | myControlRenderer.apiVersion = 1;
3 | myControlRenderer.render = (oRm, oMyControl) => { };
4 | export default myControlRenderer;
5 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/_Dependencies_AMD.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["require", "exports", "modules"], function (require, exports, modules) {
2 | require(["sap/ui/core/UIComponent"]);
3 | exports("Hello World");
4 | });
5 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/xml/CustomControl.view.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.ui.richtexteditor.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.ui.richtexteditor.d.ts";
4 | import "../pseudo-modules/sap.ui.richtexteditor";
5 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithDeps_ExistingArgumentName.js:
--------------------------------------------------------------------------------
1 | sap.ui.define([
2 | "sap/f/Avatar"
3 | ], function(Avatar) {
4 | const fAvatar = new Avatar();
5 | const mAvatar = new sap.m.Avatar();
6 | });
7 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/com.ui5.troublesome.app/ui5lint-custom.config.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | ignores: [
3 | "webapp/test/**/*",
4 | "!webapp/test/integration/opaTests.qunit.js",
5 | "ui5.yaml"
6 | ],
7 | };
8 |
--------------------------------------------------------------------------------
/test/lib/linter/rules/NoGlobals.ts:
--------------------------------------------------------------------------------
1 | import {fileURLToPath} from "node:url";
2 | import {runLintRulesTests} from "../_linterHelper.js";
3 |
4 | const filePath = fileURLToPath(import.meta.url);
5 | runLintRulesTests(filePath);
6 |
--------------------------------------------------------------------------------
/test/lib/linter/rules/XmlInJs.ts:
--------------------------------------------------------------------------------
1 | import {fileURLToPath} from "node:url";
2 | import {runLintRulesTests} from "../_linterHelper.js";
3 |
4 | const filePath = fileURLToPath(import.meta.url);
5 | runLintRulesTests(filePath);
6 |
--------------------------------------------------------------------------------
/test/lib/linter/rules/renderer.ts:
--------------------------------------------------------------------------------
1 | import {fileURLToPath} from "node:url";
2 | import {runLintRulesTests} from "../_linterHelper.js";
3 |
4 | const filePath = fileURLToPath(import.meta.url);
5 | runLintRulesTests(filePath);
6 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.suite.ui.microchart.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.suite.ui.microchart.d.ts";
4 | import "../pseudo-modules/sap.suite.ui.microchart";
5 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/library.with.custom.paths/src/main/js/ButtonFactory.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/m/Button"], function (Button) {
2 | "use strict";
3 |
4 | return {
5 | createButton: () => new Button()
6 | };
7 | });
8 |
--------------------------------------------------------------------------------
/test/lib/linter/rules/CSPCompliance.ts:
--------------------------------------------------------------------------------
1 | import {fileURLToPath} from "node:url";
2 | import {runLintRulesTests} from "../_linterHelper.js";
3 |
4 | const filePath = fileURLToPath(import.meta.url);
5 | runLintRulesTests(filePath);
6 |
--------------------------------------------------------------------------------
/test/lib/linter/rules/Directives.ts:
--------------------------------------------------------------------------------
1 | import {fileURLToPath} from "node:url";
2 | import {runLintRulesTests} from "../_linterHelper.js";
3 |
4 | const filePath = fileURLToPath(import.meta.url);
5 | runLintRulesTests(filePath);
6 |
--------------------------------------------------------------------------------
/test/lib/linter/rules/NoPseudoModules.ts:
--------------------------------------------------------------------------------
1 | import {fileURLToPath} from "node:url";
2 | import {runLintRulesTests} from "../_linterHelper.js";
3 |
4 | const filePath = fileURLToPath(import.meta.url);
5 | runLintRulesTests(filePath);
6 |
--------------------------------------------------------------------------------
/src/linter/xmlTemplate/lib/JSTokenizer.d.ts:
--------------------------------------------------------------------------------
1 | type RequireMap = Record;
2 | export function parseJS(sSource: string): RequireMap;
3 | export default class JSTokenizer {
4 | static parseJS(sSource: string): RequireMap;
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithExistingUnusedDepsMultiple3.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/m/ComboBox", "sap/m/Input", "sap/m/Button"], function() {
2 | "use strict";
3 |
4 | new sap.m.Button();
5 | new sap.m.Input();
6 | });
7 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithExistingUnusedDepsMultiple4.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/m/ComboBox", "sap/m/Input", "sap/m/Button"], function() {
2 | "use strict";
3 |
4 | new sap.m.Input();
5 | new sap.m.Button();
6 | });
7 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/com.ui5.troublesome.app/ui5lint.config.mjs:
--------------------------------------------------------------------------------
1 | export default {
2 | files: [
3 | "webapp/**/*"
4 | ],
5 | ignores: [
6 | "test/**/*",
7 | "!test/sap/m/visual/Wizard.spec.js",
8 | ],
9 | };
10 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/com.ui5.troublesome.app/webapp/test/unit/controller/Empty.qunit.js:
--------------------------------------------------------------------------------
1 | // This file ensures that the linter does not crash (Failed to map back to source) when it encounters a QUnit test module with just a comment
2 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/sap.ui.core/src/sap/ui/base/Object.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["./Metadata"], function(Metadata) {
2 | "use strict";
3 | var BaseObject = Metadata.createClass("sap.ui.base.Object", {});
4 | return BaseObject;
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/NoDeprecatedApi/sap.ui.require-toplevel.js:
--------------------------------------------------------------------------------
1 | sap.ui.require(["sap/m/Button"], (Button) => {
2 | new Button({
3 | tap: () => console.log("Tapped") // Event "tap" is deprecated
4 | }).placeAt("button");
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/NameConflict.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/UIComponent", `sap/ui/Device`], function (UIComponent) {
2 | "use strict";
3 |
4 | return UIComponent.extend("com.ui5.troublesome.app.UIComponent", {});
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/e2e/runtime/ui5.yaml:
--------------------------------------------------------------------------------
1 | specVersion: "4.0"
2 | metadata:
3 | name: ui5linter.test.e2e.runtime
4 | type: library
5 | framework:
6 | name: OpenUI5
7 | version: "1.120.30"
8 | libraries:
9 | - name: sap.ui.core
10 |
--------------------------------------------------------------------------------
/ava-e2e.config.js:
--------------------------------------------------------------------------------
1 | import defaultAvaConfig from "./ava.config.js";
2 |
3 | defaultAvaConfig.files = ["test/e2e/**/*.ts"];
4 | defaultAvaConfig.timeout = "60s"; // Increased timeout for slower CI environments
5 |
6 | export default defaultAvaConfig;
7 |
--------------------------------------------------------------------------------
/resources/types/sapui5/sap.suite.ui.generic.template.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by the createTypes script.
2 |
3 | import "@sapui5/types/types/sap.suite.ui.generic.template.d.ts";
4 | import "../pseudo-modules/sap.suite.ui.generic.template";
5 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithDeps_ArrowFunction_NoBrackets.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/m/Button"], Button => {
2 | const button = new Button({
3 | text: "Hello"
4 | });
5 | var model = new sap.ui.model.json.JSONModel();
6 | });
7 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineWithTrailingCommas.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/m/Button",], function(Button,) {
2 | const button = new sap.m.Button({
3 | text: "Hello"
4 | });
5 | var model = new sap.ui.model.json.JSONModel();
6 | });
7 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/NoDeprecatedApi/sap.ui.jsview.js:
--------------------------------------------------------------------------------
1 | sap.ui.jsview("ui5lint.example.view.HelloWorld", { // sap.ui.jsview is deprecated
2 | getControllerName : function() {
3 | return "ui5lint.example.controller.HelloWorld";
4 | }
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/ModuleName_Dynamic.js:
--------------------------------------------------------------------------------
1 | const moduleName = (new Date().getTime() % 2 === 0 ? "My" : "Your") + " Module";
2 | sap.ui.define(moduleName, function () {
3 | return function () {
4 | return "MyModuleContent";
5 | };
6 | });
7 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Dependencies.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/UIComponent", `sap/ui/Device`], function (UIComponent, Device, models) {
2 | "use strict";
3 |
4 | return UIComponent.extend("com.ui5.troublesome.app.Component", {});
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Factory_MultipleReturns.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["some/module"], function (merge) {
2 | const otherModule = sap.ui.require("some/other/module");
3 | if (otherModule) {
4 | return otherModule;
5 | }
6 | return merge;
7 | });
8 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/xml/error_AggregationNesting.view.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/jQuerySapRemoveModules.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/base/strings/NormalizePolyfill", "jquery.sap.unicode"], function () {
2 | // https://github.com/UI5/linter/issues/527
3 | const isNFC = jQuery.sap.isStringNFC("test NFC string");
4 | });
5 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/sap.ui.core/src/sap/ui/base/EventProvider.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["./Object"], function(BaseObject) {
2 | "use strict";
3 | var EventProvider = BaseObject.extend("sap.ui.base.EventProvider", {});
4 | return EventProvider;
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/AsyncComponentFlags/Negative_05/subdir/ParentComponent.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/UIComponent"], function (UIComponent) {
2 | "use strict";
3 |
4 | return UIComponent.extend("mycomp.subdir.ParentComponent", {
5 | });
6 | });
7 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsProbingRequire.js:
--------------------------------------------------------------------------------
1 | sap.ui.define([], function() {
2 |
3 | const Button = sap.ui.require("sap/m/Button");
4 | if (Button) {
5 | const oButton = new Button();
6 | }
7 |
8 | const Input = new sap.m.Input();
9 |
10 | });
11 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/com.ui5.troublesome.app/webapp/model/formatter.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(function () {
2 | "use strict";
3 |
4 | return {
5 | formatValue: function (value) {
6 | return value && value.toUpperCase();
7 | }
8 | };
9 | });
10 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/xml/UnknownAttrNamespace.fragment.xml:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/renderer/14Control.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/Control"], function (Control) {
2 | var myControl = Control.extend("mycomp.myControl", {
3 | metadata: {},
4 | renderer(oRm, oControl) {
5 | }
6 | });
7 | return myControl;
8 | });
9 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/renderer/13Control.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/Control"], function (Control) {
2 | var myControl = Control.extend("mycomp.myControl", {
3 | metadata: {},
4 | renderer: function(oRm, oControl) {
5 | }
6 | });
7 | return myControl;
8 | });
9 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/amd/Dependencies_LocalImport.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/UIComponent", "sap/ui/Device", "./model/models"], function (UIComponent, Device, models) {
2 | "use strict";
3 |
4 | return UIComponent.extend("com.ui5.troublesome.app.Component", {});
5 | });
6 |
--------------------------------------------------------------------------------
/test/fixtures/transpiler/xml/MultipleXmlns.fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineTypeScript.ts:
--------------------------------------------------------------------------------
1 | // Note: Usage of sap.ui.define within TypeScript is not recommended, but UI5 linter does not distinguish between JavaScript and TypeScript here.
2 | sap.ui.define([], function() {
3 | const button = new sap.m.Button();
4 | });
5 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/sapMApi/SapM.view.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/fixtures/linter/projects/com.ui5.troublesome.app/webapp/view/App.view.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/AsyncComponentFlags/Negative_10/subdir/ParentComponent.ts:
--------------------------------------------------------------------------------
1 | import UIComponent from "sap/ui/core/UIComponent";
2 | export default class Component extends UIComponent {
3 | static metadata = {
4 | interfaces: ["sap.ui.core.IAsyncContentCreation"],
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/renderer/2Control.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/Control", "./2ControlRenderer"], function (Control, Renderer) {
2 | var myControl = Control.extend("mycomp.myControl", {
3 | metadata: {},
4 | renderer: Renderer,
5 | });
6 |
7 | return myControl;
8 | });
9 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/renderer/5Control.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/Control", "./5ControlRenderer"], function (Control, Renderer) {
2 | var myControl = Control.extend("mycomp.myControl", {
3 | metadata: {},
4 | renderer: Renderer,
5 | });
6 |
7 | return myControl;
8 | });
9 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/renderer/7Control.js:
--------------------------------------------------------------------------------
1 | sap.ui.define(["sap/ui/core/Control", "./7ControlRenderer"], function (Control, Renderer) {
2 | var myControl = Control.extend("mycomp.myControl", {
3 | metadata: {},
4 | renderer: Renderer,
5 | });
6 |
7 | return myControl;
8 | });
9 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/manifestJson/emptyResourcesJs_01/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "_version": "1.12.0",
3 |
4 | "sap.app": {
5 | "id": "com.ui5.troublesome.app",
6 | "type": "application"
7 | },
8 |
9 | "sap.ui5": {
10 | "resources": {
11 | "js": []
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test/fixtures/linter/rules/renderer/2ControlRenderer.js:
--------------------------------------------------------------------------------
1 | sap.ui.define([], function () {
2 | var myControlRenderer = {};
3 |
4 | myControlRenderer.apiVersion = 1; // Deprecated
5 |
6 | myControlRenderer.render = (oRm, oMyControl) => {};
7 |
8 | return myControlRenderer;
9 | });
10 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/GlobalsExistingDefineNonStringLiteralDeps.js:
--------------------------------------------------------------------------------
1 | sap.ui.define([
2 | someModuleName
3 | ], function(someModule) {
4 |
5 | new sap.m.Button();
6 |
7 | sap.ui.require([someOtherModuleName], function(someOtherModule) {
8 | new sap.m.Input();
9 | });
10 |
11 | });
12 |
--------------------------------------------------------------------------------
/test/fixtures/autofix/ParsingError.view.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |