@forge/lint

5.15.0-next.85.15.0-next.9
~

Modified (17 files)

Index: package/out/lint/linters/permission-linter/api-call-interface.js
===================================================================
--- package/out/lint/linters/permission-linter/api-call-interface.js
+++ package/out/lint/linters/permission-linter/api-call-interface.js
@@ -8,5 +8,6 @@
     ApiCallTypes[ApiCallTypes["STORAGE"] = 2] = "STORAGE";
     ApiCallTypes[ApiCallTypes["EXTERNAL"] = 3] = "EXTERNAL";
     ApiCallTypes[ApiCallTypes["CONTENT_PROPERTY"] = 4] = "CONTENT_PROPERTY";
     ApiCallTypes[ApiCallTypes["IMAGE"] = 5] = "IMAGE";
+    ApiCallTypes[ApiCallTypes["NOTIFICATION"] = 6] = "NOTIFICATION";
 })(ApiCallTypes = exports.ApiCallTypes || (exports.ApiCallTypes = {}));
Index: package/out/lint/linters/permission-linter/verifiers/index.js
===================================================================
--- package/out/lint/linters/permission-linter/verifiers/index.js
+++ package/out/lint/linters/permission-linter/verifiers/index.js
@@ -5,4 +5,5 @@
 tslib_1.__exportStar(require("./image-url-verifier"), exports);
 tslib_1.__exportStar(require("./product-verifier"), exports);
 tslib_1.__exportStar(require("./storage-api-verifier"), exports);
 tslib_1.__exportStar(require("./ui-hook-verifier"), exports);
+tslib_1.__exportStar(require("./notification-api-verifier"), exports);
Index: package/out/lint/linters/permission-linter/visitors/index.js
===================================================================
--- package/out/lint/linters/permission-linter/visitors/index.js
+++ package/out/lint/linters/permission-linter/visitors/index.js
@@ -5,4 +5,5 @@
 tslib_1.__exportStar(require("./image-url-visitor"), exports);
 tslib_1.__exportStar(require("./product-node-visitor"), exports);
 tslib_1.__exportStar(require("./storage-api-node-visitor"), exports);
 tslib_1.__exportStar(require("./ui-hook-node-visitor"), exports);
+tslib_1.__exportStar(require("./notification-api-visitor"), exports);
Index: package/out/lint/text/messages.js
===================================================================
--- package/out/lint/text/messages.js
+++ package/out/lint/text/messages.js
@@ -62,7 +62,11 @@
                     return `The resource attribute "${resource}" is not included in the "resources" section of your app's manifest.yml file`;
                 },
                 reference: 'valid-frame-component-resource-attribute-required'
             }
+        },
+        notification: {
+            message: (scope, product) => `Missing permission ${scope} required for NotificationApi. Only add this if you are building a ${product} app`,
+            reference: 'permission-scope-required'
         }
     }
 };
Index: package/out/lint/linters/permission-linter/permission-linter.js
===================================================================
--- package/out/lint/linters/permission-linter/permission-linter.js
+++ package/out/lint/linters/permission-linter/permission-linter.js
@@ -189,9 +189,10 @@
             new visitors_1.ProductNodeVisitor(),
             new visitors_1.UIHookNodeVisitor(),
             new visitors_1.StorageAPINodeVisitor(),
             new visitors_1.ExternalApiCallVisitor(),
-            new visitors_1.ImageUrlVisitor()
+            new visitors_1.ImageUrlVisitor(),
+            new visitors_1.NotificationAPINodeVisitor()
         ];
         const humanReadableEnvironment = (0, cli_shared_1.environmentToOption)(this.environment);
         this.verifiers = {
             bitbucket: new verifiers_1.ProductVerifier(humanReadableEnvironment, this.manifest, this.bitbucket, 'bitbucket'),
@@ -199,9 +200,10 @@
             jira: new verifiers_1.ProductVerifier(humanReadableEnvironment, this.manifest, this.jira, 'jira'),
             storage: new verifiers_1.StorageAPIVerifier(humanReadableEnvironment, this.manifest),
             uiHook: new verifiers_1.UIHookVerifier(humanReadableEnvironment, this.manifest),
             external: new verifiers_1.ExternalFetchVerifier(humanReadableEnvironment, this.manifest),
-            image: new verifiers_1.ImageUrlVerifier(humanReadableEnvironment, this.manifest)
+            image: new verifiers_1.ImageUrlVerifier(humanReadableEnvironment, this.manifest),
+            notification: new verifiers_1.NotificationVerifier(humanReadableEnvironment, this.manifest)
         };
     }
     setupMatchesMap(filepath) {
         if (!this.jira || !this.confluence || !this.bitbucket)
@@ -212,9 +214,10 @@
             jira: [],
             uiHook: [],
             storage: [],
             external: [],
-            image: []
+            image: [],
+            notification: []
         });
     }
     getFixer() {
         return exports.fixMissingPermissions;
@@ -236,8 +239,11 @@
                 break;
             case api_call_interface_1.ApiCallTypes.IMAGE:
                 criteriaMatches.image.push(apiCall);
                 break;
+            case api_call_interface_1.ApiCallTypes.NOTIFICATION:
+                criteriaMatches.notification.push(apiCall);
+                break;
         }
     }
     async getProductPaths(cacheKey, url) {
         const cached = this.cache?.get(cacheKey);
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/lint",
-  "version": "5.15.0-next.8",
+  "version": "5.15.0-next.9",
   "description": "Linting for forge apps",
   "main": "out/index.js",
   "license": "SEE LICENSE IN LICENSE.txt",
   "scripts": {
@@ -18,12 +18,12 @@
     "@types/node-fetch": "^2.6.12",
     "eslint-plugin-import": "^2.29.1"
   },
   "dependencies": {
-    "@forge/cli-shared": "8.15.1-next.7",
+    "@forge/cli-shared": "8.15.1-next.8",
     "@forge/csp": "5.6.1",
     "@forge/egress": "2.3.1",
-    "@forge/manifest": "12.1.0-next.4",
+    "@forge/manifest": "12.1.0-next.5",
     "@typescript-eslint/typescript-estree": "^5.62.0",
     "array.prototype.flatmap": "^1.3.3",
     "@atlassian/atlassian-openapi": "^1.0.6",
     "cross-spawn": "^7.0.6",
Index: package/out/lint/linters/permission-linter/api-call-interface.d.ts.map
===================================================================
--- package/out/lint/linters/permission-linter/api-call-interface.d.ts.map
+++ package/out/lint/linters/permission-linter/api-call-interface.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"api-call-interface.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/permission-linter/api-call-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,oBAAY,YAAY;IACtB,SAAS,IAAA;IACT,MAAM,IAAA;IACN,SAAS,IAAA;IACT,UAAU,IAAA;IACV,kBAAkB,IAAA;IAClB,OAAO,IAAA;CACR;AAED,oBAAY,WAAW,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;AAE9D,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAS,SAAQ,iBAAiB;IACjD,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,OAAO,GACf,cAAc,GACd,aAAa,GACb,cAAc,GACd,eAAe,GACf,QAAQ,GACR,sBAAsB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"api-call-interface.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/permission-linter/api-call-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,oBAAY,YAAY;IACtB,SAAS,IAAA;IACT,MAAM,IAAA;IACN,SAAS,IAAA;IACT,UAAU,IAAA;IACV,kBAAkB,IAAA;IAClB,OAAO,IAAA;IACP,cAAc,IAAA;CACf;AAED,oBAAY,WAAW,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;AAE9D,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAS,SAAQ,iBAAiB;IACjD,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;CACjC;AAED,oBAAY,OAAO,GACf,cAAc,GACd,aAAa,GACb,cAAc,GACd,eAAe,GACf,QAAQ,GACR,sBAAsB,GACtB,mBAAmB,CAAC"}
\ No newline at end of file
Index: package/out/lint/linters/permission-linter/verifiers/index.d.ts.map
===================================================================
--- package/out/lint/linters/permission-linter/verifiers/index.d.ts.map
+++ package/out/lint/linters/permission-linter/verifiers/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lint/linters/permission-linter/verifiers/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lint/linters/permission-linter/verifiers/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC"}
\ No newline at end of file
Index: package/out/lint/linters/permission-linter/visitors/index.d.ts.map
===================================================================
--- package/out/lint/linters/permission-linter/visitors/index.d.ts.map
+++ package/out/lint/linters/permission-linter/visitors/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lint/linters/permission-linter/visitors/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lint/linters/permission-linter/visitors/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC"}
\ No newline at end of file
Index: package/out/lint/text/messages.d.ts.map
===================================================================
--- package/out/lint/text/messages.d.ts.map
+++ package/out/lint/text/messages.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/lint/text/messages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;2BAGA,MAAM;;;;2BAKN,MAAM;2BAER,MAAM;;;;2BAKJ,MAAM;;;;iCAKA,MAAM;;;;iCAKN,MAAM;;;;8BAKT,MAAM,OAAO,MAAM;;;;+BAKlB,MAAM,UAAU,MAAM,QAAQ,MAAM,GAAG,SAAS,SAAS,MAAM;;;;6BAKjE,MAAM;;;;+BAIJ,MAAM,QAAQ,MAAM,SAAS,MAAM;;;;8BAKpC,MAAM;;;;8BAIN,MAAM;;;;8BAIN,MAAM;;;;;;;;;oCASF,MAAM;;;;;CAOjC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/lint/text/messages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;2BAGA,MAAM;;;;2BAKN,MAAM;2BAER,MAAM;;;;2BAKJ,MAAM;;;;iCAKA,MAAM;;;;iCAKN,MAAM;;;;8BAKT,MAAM,OAAO,MAAM;;;;+BAKlB,MAAM,UAAU,MAAM,QAAQ,MAAM,GAAG,SAAS,SAAS,MAAM;;;;6BAKjE,MAAM;;;;+BAIJ,MAAM,QAAQ,MAAM,SAAS,MAAM;;;;8BAKpC,MAAM;;;;8BAIN,MAAM;;;;8BAIN,MAAM;;;;;;;;;oCASF,MAAM;;;;;6BAOX,MAAM,WAAW,MAAM;;;;CAK7C,CAAC"}
\ No newline at end of file
Index: package/out/lint/linters/permission-linter/permission-linter.d.ts.map
===================================================================
--- package/out/lint/linters/permission-linter/permission-linter.d.ts.map
+++ package/out/lint/linters/permission-linter/permission-linter.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"permission-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/permission-linter/permission-linter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,IAAI,QAAQ,EAAe,MAAM,iBAAiB,CAAC;AAE/E,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EACL,OAAO,EAEP,eAAe,EACf,QAAQ,EACR,cAAc,EACd,cAAc,EACd,aAAa,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAML,WAAW,EAGZ,MAAM,aAAa,CAAC;AAYrB,UAAU,aAAa;IACrB,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;KAC7B,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAKhD,eAAO,MAAM,sBAAsB,WACzB,cAAc,EAAE,YACd,cAAc,EAAE,mBAEtB,mBAAmB,GACnB,gCAAgC,GAChC,+BAA+B,GAC/B,iCAAiC,UAC7B,YAAY,KACnB,IAAI,MAAM,CAkBZ,CAAC;AAEF,eAAO,MAAM,2BAA2B,aAAc,cAAc,EAAE,UAAU,YAAY,KAAG,OAI9F,CAAC;AAoCF,eAAO,MAAM,qBAAqB,WACxB,cAAc,EAAE,YACd,cAAc,EAAE,SACnB,YAAY,KAClB,QAAQ,YAAY,CAyEtB,CAAC;AAEF,UAAU,6BAA6B;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IACzB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,qBAAa,gBAAiB,SAAQ,UAAU,CAAC,OAAO,EAAE,6BAA6B,EAAE,OAAO,EAAE,CAAC;IAe/F,OAAO,CAAC,QAAQ;IAdlB,MAAM,CAAC,cAAc,SAAgC;IACrD,MAAM,CAAC,aAAa,SAA+B;IACnD,MAAM,CAAC,aAAa,SAA+B;IACnD,MAAM,CAAC,oBAAoB,SAAsC;IACjE,MAAM,CAAC,uBAAuB,SAAyC;IACvE,MAAM,CAAC,mBAAmB,SAAqC;IAE/D,OAAO,CAAC,IAAI,CAAC,CAA0B;IACvC,OAAO,CAAC,UAAU,CAAC,CAA0B;IAC7C,OAAO,CAAC,SAAS,CAAC,CAA0B;IAC5C,OAAO,CAAC,KAAK,CAAC,CAAa;gBAGzB,WAAW,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAC1B,MAAM,EAAE,UAAU;IAKP,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA2FvC,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcjD,SAAS,CAAC,QAAQ,IACd,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,GACtG,SAAS;IAIb,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAsB3D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAWtE,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKrE,OAAO,CAAC,YAAY;CAarB"}
\ No newline at end of file
+{"version":3,"file":"permission-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/permission-linter/permission-linter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,IAAI,QAAQ,EAAe,MAAM,iBAAiB,CAAC;AAE/E,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EACL,OAAO,EAEP,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,aAAa,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAML,WAAW,EAIZ,MAAM,aAAa,CAAC;AAarB,UAAU,aAAa;IACrB,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;KAC7B,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAKhD,eAAO,MAAM,sBAAsB,WACzB,cAAc,EAAE,YACd,cAAc,EAAE,mBAEtB,mBAAmB,GACnB,gCAAgC,GAChC,+BAA+B,GAC/B,iCAAiC,UAC7B,YAAY,KACnB,IAAI,MAAM,CAkBZ,CAAC;AAEF,eAAO,MAAM,2BAA2B,aAAc,cAAc,EAAE,UAAU,YAAY,KAAG,OAI9F,CAAC;AAoCF,eAAO,MAAM,qBAAqB,WACxB,cAAc,EAAE,YACd,cAAc,EAAE,SACnB,YAAY,KAClB,QAAQ,YAAY,CAyEtB,CAAC;AAEF,UAAU,6BAA6B;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IACzB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,EAAE,mBAAmB,EAAE,CAAC;CACrC;AAED,qBAAa,gBAAiB,SAAQ,UAAU,CAAC,OAAO,EAAE,6BAA6B,EAAE,OAAO,EAAE,CAAC;IAe/F,OAAO,CAAC,QAAQ;IAdlB,MAAM,CAAC,cAAc,SAAgC;IACrD,MAAM,CAAC,aAAa,SAA+B;IACnD,MAAM,CAAC,aAAa,SAA+B;IACnD,MAAM,CAAC,oBAAoB,SAAsC;IACjE,MAAM,CAAC,uBAAuB,SAAyC;IACvE,MAAM,CAAC,mBAAmB,SAAqC;IAE/D,OAAO,CAAC,IAAI,CAAC,CAA0B;IACvC,OAAO,CAAC,UAAU,CAAC,CAA0B;IAC7C,OAAO,CAAC,SAAS,CAAC,CAA0B;IAC5C,OAAO,CAAC,KAAK,CAAC,CAAa;gBAGzB,WAAW,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAC1B,MAAM,EAAE,UAAU;IAKP,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA6FvC,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAejD,SAAS,CAAC,QAAQ,IACd,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,GACtG,SAAS;IAIb,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAyB3D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAWtE,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKrE,OAAO,CAAC,YAAY;CAarB"}
\ No newline at end of file
File too large for inline diff
Index: package/out/lint/linters/permission-linter/api-call-interface.d.ts
===================================================================
--- package/out/lint/linters/permission-linter/api-call-interface.d.ts
+++ package/out/lint/linters/permission-linter/api-call-interface.d.ts
@@ -4,9 +4,10 @@
     'HOOK' = 1,
     'STORAGE' = 2,
     'EXTERNAL' = 3,
     'CONTENT_PROPERTY' = 4,
-    'IMAGE' = 5
+    'IMAGE' = 5,
+    'NOTIFICATION' = 6
 }
 export declare type ProductName = 'jira' | 'confluence' | 'bitbucket';
 export interface ProductApiCall extends LintCriteriaMatch {
     type: ApiCallTypes.PRODUCT;
@@ -34,6 +35,9 @@
     type: ApiCallTypes.CONTENT_PROPERTY;
     context: string;
     method: string;
 }
-export declare type ApiCall = ProductApiCall | UIHookApiCall | StorageApiCall | ExternalApiCall | ImageUrl | ContentPropertyApiCall;
+export interface NotificationApiCall extends LintCriteriaMatch {
+    type: ApiCallTypes.NOTIFICATION;
+}
+export declare type ApiCall = ProductApiCall | UIHookApiCall | StorageApiCall | ExternalApiCall | ImageUrl | ContentPropertyApiCall | NotificationApiCall;
 //# sourceMappingURL=api-call-interface.d.ts.map
\ No newline at end of file
Index: package/out/lint/linters/permission-linter/verifiers/index.d.ts
===================================================================
--- package/out/lint/linters/permission-linter/verifiers/index.d.ts
+++ package/out/lint/linters/permission-linter/verifiers/index.d.ts
@@ -2,5 +2,6 @@
 export * from './image-url-verifier';
 export * from './product-verifier';
 export * from './storage-api-verifier';
 export * from './ui-hook-verifier';
+export * from './notification-api-verifier';
 //# sourceMappingURL=index.d.ts.map
\ No newline at end of file
Index: package/out/lint/linters/permission-linter/visitors/index.d.ts
===================================================================
--- package/out/lint/linters/permission-linter/visitors/index.d.ts
+++ package/out/lint/linters/permission-linter/visitors/index.d.ts
@@ -2,5 +2,6 @@
 export * from './image-url-visitor';
 export * from './product-node-visitor';
 export * from './storage-api-node-visitor';
 export * from './ui-hook-node-visitor';
+export * from './notification-api-visitor';
 //# sourceMappingURL=index.d.ts.map
\ No newline at end of file
Index: package/out/lint/text/messages.d.ts
===================================================================
--- package/out/lint/text/messages.d.ts
+++ package/out/lint/text/messages.d.ts
@@ -58,7 +58,11 @@
                 message: (resource: string) => string;
                 reference: string;
             };
         };
+        notification: {
+            message: (scope: string, product: string) => string;
+            reference: string;
+        };
     };
 };
 //# sourceMappingURL=messages.d.ts.map
\ No newline at end of file
Index: package/out/lint/linters/permission-linter/permission-linter.d.ts
===================================================================
--- package/out/lint/linters/permission-linter/permission-linter.d.ts
+++ package/out/lint/linters/permission-linter/permission-linter.d.ts
@@ -1,8 +1,8 @@
 import type { ManifestSchema as Manifest } from '@forge/manifest';
 import BaseLinter from '../../base-linter';
 import { LintFixState, LintLogger, LintResultRule } from '../../linter-interface';
-import { ApiCall, ExternalApiCall, ImageUrl, ProductApiCall, StorageApiCall, UIHookApiCall } from './api-call-interface';
+import { ApiCall, ExternalApiCall, ImageUrl, NotificationApiCall, ProductApiCall, StorageApiCall, UIHookApiCall } from './api-call-interface';
 import { PathMethods } from './verifiers';
 interface SwaggerFormat {
     paths: {
         [path: string]: PathMethods;
@@ -19,8 +19,9 @@
     storage: StorageApiCall[];
     uiHook: UIHookApiCall[];
     external: ExternalApiCall[];
     image: ImageUrl[];
+    notification: NotificationApiCall[];
 }
 export declare class PermissionLinter extends BaseLinter<ApiCall, PermissionLintCriteriaMatches, ApiCall[]> {
     private manifest;
     static JIRA_CACHE_KEY: string;