@forge/lint
5.15.0-next.85.15.0-next.9
+
Added (6 files)
~
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;