@forge/bridge 5.13.1-next.3 → 5.14.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissionsUtil.d.ts","sourceRoot":"","sources":["../../src/permissions/permissionsUtil.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"permissionsUtil.d.ts","sourceRoot":"","sources":["../../src/permissions/permissionsUtil.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAoBnD,QAAA,MAAM,cAAc,sEAAuE,CAAC;AAC5F,oBAAY,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAK3D,QAAA,MAAM,WAAW,gCAAiC,CAAC;AACnD,oBAAY,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAKrD,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE;YACN,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAKD,oBAAY,kBAAkB,GAAG,sBAAsB,CAAC;AAKxD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACpC;AAKD,MAAM,WAAW,eAAe;IAI9B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAOrC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAOxD,eAAe,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAK9D,SAAS,EAAE,MAAM,MAAM,EAAE,CAAC;IAK1B,sBAAsB,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC;IAKnD,iBAAiB,EAAE,MAAM,OAAO,CAAC;CAClC;AAOD,wBAAgB,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,CAmDhH;AA+ID,wBAAsB,gBAAgB,CACpC,mBAAmB,EAAE,sBAAsB,EAC3C,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,SAAS,GAClD,OAAO,CAAC,qBAAqB,CAAC,CAiDhC"}
|
|
@@ -106,11 +106,40 @@ function checkExternalPermissions(requiredExternal, permissionUtils) {
|
|
|
106
106
|
}
|
|
107
107
|
return missingExternal;
|
|
108
108
|
}
|
|
109
|
+
function validateObjectField(value, fieldPath) {
|
|
110
|
+
if (value !== undefined) {
|
|
111
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
112
|
+
throw new TypeError(`${fieldPath} should be an object, not ${Array.isArray(value) ? 'an array' : `a ${typeof value}`}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function validateArrayField(value, fieldPath) {
|
|
117
|
+
if (value !== undefined && !Array.isArray(value)) {
|
|
118
|
+
throw new TypeError(`${fieldPath} should be an array, not a ${typeof value}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function validatePermissionShape(requiredPermissions) {
|
|
122
|
+
validateArrayField(requiredPermissions.scopes, 'scopes');
|
|
123
|
+
const external = requiredPermissions.external;
|
|
124
|
+
if (external === undefined)
|
|
125
|
+
return;
|
|
126
|
+
validateObjectField(external, 'external');
|
|
127
|
+
if (external.fetch !== undefined) {
|
|
128
|
+
validateObjectField(external.fetch, 'external.fetch');
|
|
129
|
+
for (const type of FETCH_TYPES) {
|
|
130
|
+
validateArrayField(external.fetch[type], `external.fetch.${type}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
for (const type of RESOURCE_TYPES) {
|
|
134
|
+
validateArrayField(external[type], `external.${type}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
109
137
|
async function checkPermissions(requiredPermissions, runtimePermissions) {
|
|
110
138
|
var _a;
|
|
111
139
|
if (!requiredPermissions) {
|
|
112
140
|
return { granted: false, missing: null };
|
|
113
141
|
}
|
|
142
|
+
validatePermissionShape(requiredPermissions);
|
|
114
143
|
if (!((_a = requiredPermissions.scopes) === null || _a === void 0 ? void 0 : _a.length) && !requiredPermissions.external) {
|
|
115
144
|
return { granted: true, missing: null };
|
|
116
145
|
}
|