@forge/lint
6.0.0-next.116.0.0-next.12
out/lint/linters/app-managed-permissions-sdk-linter/app-managed-permissions-sdk-linter.js+
out/lint/linters/app-managed-permissions-sdk-linter/app-managed-permissions-sdk-linter.jsNew file+43
Index: package/out/lint/linters/app-managed-permissions-sdk-linter/app-managed-permissions-sdk-linter.js
===================================================================
--- package/out/lint/linters/app-managed-permissions-sdk-linter/app-managed-permissions-sdk-linter.js
+++ package/out/lint/linters/app-managed-permissions-sdk-linter/app-managed-permissions-sdk-linter.js
@@ -0,0 +1,43 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.AppManagedPermissionsSdkLinter = void 0;
+const manifest_1 = require("@forge/manifest");
+const abstract_linter_1 = require("../../abstract-linter");
+const linter_interface_1 = require("../../linter-interface");
+const text_1 = require("../../text");
+const detect_permission_sensitive_usage_1 = require("./detect-permission-sensitive-usage");
+const detect_permissions_sdk_usage_1 = require("./detect-permissions-sdk-usage");
+const manifest_declarative_permission_handling_1 = require("./manifest-declarative-permission-handling");
+class AppManagedPermissionsSdkLinter extends abstract_linter_1.AbstractLinter {
+ manifest;
+ constructor(manifest, logger) {
+ super(logger);
+ this.manifest = manifest;
+ }
+ async bootstrap() {
+ }
+ async batchExecuteImpl(inputs = []) {
+ if (this.manifest.permissions?.enforcement !== 'app-managed') {
+ return [];
+ }
+ const declaresHandling = (0, manifest_declarative_permission_handling_1.manifestDeclaresDeclarativePermissionHandling)(this.manifest) ||
+ inputs.some(({ ast }) => ast !== null && (0, detect_permissions_sdk_usage_1.doesAstUsePermissionsSdk)(ast));
+ if (declaresHandling) {
+ return [];
+ }
+ const hasPermissionSensitiveUsage = inputs.some(({ ast }) => (0, detect_permission_sensitive_usage_1.doesAstIndicatePermissionSensitiveUsage)(ast));
+ if (!hasPermissionSensitiveUsage) {
+ return [];
+ }
+ const lintResult = new linter_interface_1.LintResult(manifest_1.MANIFEST_FILE);
+ lintResult.add({
+ class: linter_interface_1.LintClass.Warning,
+ message: text_1.messages.verifiers.appManagedPermissionsSdk.message(),
+ reference: text_1.messages.verifiers.appManagedPermissionsSdk.reference,
+ line: 0,
+ column: 0
+ });
+ return [lintResult];
+ }
+}
+exports.AppManagedPermissionsSdkLinter = AppManagedPermissionsSdkLinter;