npm package diff
Package: @forge/manifest
Versions: 8.9.0-next.12-experimental-99739ec - 9.0.0-next.13
File: package/out/validators/remote-auth-scopes-validator.js
Index: package/out/validators/remote-auth-scopes-validator.js
===================================================================
--- package/out/validators/remote-auth-scopes-validator.js
+++ package/out/validators/remote-auth-scopes-validator.js
@@ -0,0 +1,47 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.RemoteAuthScopesValidator = void 0;
+const types_1 = require("../types");
+const text_1 = require("../text");
+const utils_1 = require("../utils");
+class RemoteAuthScopesValidator {
+ async validate(manifest) {
+ if (!manifest?.typedContent?.remotes && !manifest?.typedContent?.modules?.endpoint) {
+ return {
+ success: true,
+ manifestObject: manifest
+ };
+ }
+ const remotes = manifest.typedContent.remotes;
+ const endpoints = manifest.typedContent.modules?.endpoint ?? [];
+ const hasAppUserToken = endpoints.some((endpoint) => this.appUserTokenEnabled(endpoint.auth)) ||
+ remotes?.some((remote) => this.appUserTokenEnabled(remote.auth));
+ const hasAppSystemToken = endpoints.some((endpoint) => this.appSystemTokenEnabled(endpoint.auth)) ||
+ remotes?.some((remote) => this.appSystemTokenEnabled(remote.auth));
+ if (hasAppUserToken || hasAppSystemToken) {
+ const scopes = manifest.typedContent.permissions?.scopes ?? [];
+ const filteredScopes = scopes.filter((scope) => !types_1.REMOTE_AUTH_SCOPES.includes(scope));
+ if (filteredScopes.length === 0) {
+ return {
+ success: false,
+ manifestObject: manifest,
+ errors: [
+ {
+ message: text_1.errors.app.remotes.missingAppScopesForRemoteAuth(),
+ reference: text_1.References.App,
+ level: 'error',
+ ...(0, utils_1.findPosition)('scopes', manifest.yamlContentByLine)
+ }
+ ]
+ };
+ }
+ }
+ return {
+ success: true,
+ manifestObject: manifest
+ };
+ }
+ appUserTokenEnabled = (auth) => auth?.appUserToken?.enabled === true;
+ appSystemTokenEnabled = (auth) => auth?.appSystemToken?.enabled === true;
+}
+exports.RemoteAuthScopesValidator = RemoteAuthScopesValidator;