@squiz/dx-common-lib 1.2.12 → 1.2.13-alpha.0
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 +5 -71
- package/lib/api-key-validation/ApiKeyValidationService.d.ts +4 -0
- package/lib/api-key-validation/ApiKeyValidationService.js +3 -0
- package/lib/api-key-validation/ApiKeyValidationService.js.map +1 -0
- package/lib/api-key-validation/CloudflareApiKeyService.d.ts +17 -0
- package/lib/api-key-validation/CloudflareApiKeyService.js +72 -0
- package/lib/api-key-validation/CloudflareApiKeyService.js.map +1 -0
- package/lib/api-key-validation/CloudflareApiKeyService.spec.d.ts +1 -0
- package/lib/api-key-validation/CloudflareApiKeyService.spec.js +93 -0
- package/lib/api-key-validation/CloudflareApiKeyService.spec.js.map +1 -0
- package/lib/api-key-validation/DevelopmentApiKeyService.d.ts +5 -0
- package/lib/api-key-validation/DevelopmentApiKeyService.js +13 -0
- package/lib/api-key-validation/DevelopmentApiKeyService.js.map +1 -0
- package/lib/api-key-validation/DevelopmentApiKeyService.spec.d.ts +1 -0
- package/lib/api-key-validation/DevelopmentApiKeyService.spec.js +17 -0
- package/lib/api-key-validation/DevelopmentApiKeyService.spec.js.map +1 -0
- package/lib/api-key-validation/getApiKeyService.d.ts +6 -0
- package/lib/api-key-validation/getApiKeyService.js +23 -0
- package/lib/api-key-validation/getApiKeyService.js.map +1 -0
- package/lib/api-key-validation/getApiKeyService.spec.d.ts +1 -0
- package/lib/api-key-validation/getApiKeyService.spec.js +24 -0
- package/lib/api-key-validation/getApiKeyService.spec.js.map +1 -0
- package/lib/cache/applyDefaultRulesToCacheControlObject.d.ts +19 -0
- package/lib/cache/applyDefaultRulesToCacheControlObject.js +21 -0
- package/lib/cache/applyDefaultRulesToCacheControlObject.js.map +1 -0
- package/lib/cache/applyDefaultRulesToCacheControlObject.spec.d.ts +1 -0
- package/lib/cache/applyDefaultRulesToCacheControlObject.spec.js +97 -0
- package/lib/cache/applyDefaultRulesToCacheControlObject.spec.js.map +1 -0
- package/lib/cache/cacheControlToString.d.ts +2 -0
- package/lib/cache/cacheControlToString.js +24 -0
- package/lib/cache/cacheControlToString.js.map +1 -0
- package/lib/cache/cacheControlToString.spec.d.ts +1 -0
- package/lib/cache/cacheControlToString.spec.js +34 -0
- package/lib/cache/cacheControlToString.spec.js.map +1 -0
- package/lib/cache/index.d.ts +4 -0
- package/lib/cache/index.js +21 -0
- package/lib/cache/index.js.map +1 -0
- package/lib/cache/parseAndSanitiseCacheControlHeader.d.ts +5 -0
- package/lib/cache/parseAndSanitiseCacheControlHeader.js +26 -0
- package/lib/cache/parseAndSanitiseCacheControlHeader.js.map +1 -0
- package/lib/cache/parseAndSanitiseCacheControlHeader.spec.d.ts +1 -0
- package/lib/cache/parseAndSanitiseCacheControlHeader.spec.js +21 -0
- package/lib/cache/parseAndSanitiseCacheControlHeader.spec.js.map +1 -0
- package/lib/cache/parseCacheControl.d.ts +19 -0
- package/lib/cache/parseCacheControl.js +46 -0
- package/lib/cache/parseCacheControl.js.map +1 -0
- package/lib/cache/parseCacheControl.spec.d.ts +1 -0
- package/lib/cache/parseCacheControl.spec.js +70 -0
- package/lib/cache/parseCacheControl.spec.js.map +1 -0
- package/lib/error/InvalidTokenError.d.ts +5 -0
- package/lib/error/InvalidTokenError.js +12 -0
- package/lib/error/InvalidTokenError.js.map +1 -0
- package/lib/error/UnAuthenticatedRequestError.d.ts +4 -0
- package/lib/error/UnAuthenticatedRequestError.js +11 -0
- package/lib/error/UnAuthenticatedRequestError.js.map +1 -0
- package/lib/error/UnprivilegedError.d.ts +5 -0
- package/lib/error/UnprivilegedError.js +12 -0
- package/lib/error/UnprivilegedError.js.map +1 -0
- package/lib/error/index.d.ts +3 -0
- package/lib/error/index.js +3 -0
- package/lib/error/index.js.map +1 -1
- package/lib/formatted-text/formattedTextToHtmlSting.d.ts +4 -0
- package/lib/formatted-text/formattedTextToHtmlSting.js +85 -0
- package/lib/formatted-text/formattedTextToHtmlSting.js.map +1 -0
- package/lib/formatted-text/formattedTextToHtmlSting.spec.d.ts +1 -0
- package/lib/formatted-text/formattedTextToHtmlSting.spec.js +212 -0
- package/lib/formatted-text/formattedTextToHtmlSting.spec.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +7 -0
- package/lib/index.js.map +1 -1
- package/lib/server-utils/apiKeyMiddleware.d.ts +3 -0
- package/lib/server-utils/apiKeyMiddleware.js +20 -0
- package/lib/server-utils/apiKeyMiddleware.js.map +1 -0
- package/lib/server-utils/apiKeyMiddleware.spec.d.ts +1 -0
- package/lib/server-utils/apiKeyMiddleware.spec.js +39 -0
- package/lib/server-utils/apiKeyMiddleware.spec.js.map +1 -0
- package/package.json +9 -7
- package/src/api-key-validation/ApiKeyValidationService.ts +4 -0
- package/src/api-key-validation/CloudflareApiKeyService.spec.ts +122 -0
- package/src/api-key-validation/CloudflareApiKeyService.ts +96 -0
- package/src/api-key-validation/DevelopmentApiKeyService.spec.ts +17 -0
- package/src/api-key-validation/DevelopmentApiKeyService.ts +10 -0
- package/src/api-key-validation/getApiKeyService.spec.ts +32 -0
- package/src/api-key-validation/getApiKeyService.ts +27 -0
- package/src/cache/applyDefaultRulesToCacheControlObject.spec.ts +126 -0
- package/src/cache/applyDefaultRulesToCacheControlObject.ts +23 -0
- package/src/cache/cacheControlToString.spec.ts +43 -0
- package/src/cache/cacheControlToString.ts +22 -0
- package/src/cache/index.ts +4 -0
- package/src/cache/parseAndSanitiseCacheControlHeader.spec.ts +25 -0
- package/src/cache/parseAndSanitiseCacheControlHeader.ts +28 -0
- package/src/cache/parseCacheControl.spec.ts +89 -0
- package/src/cache/parseCacheControl.ts +74 -0
- package/src/error/InvalidTokenError.ts +8 -0
- package/src/error/UnAuthenticatedRequestError.ts +7 -0
- package/src/error/UnprivilegedError.ts +8 -0
- package/src/error/index.ts +4 -0
- package/src/formatted-text/formattedTextToHtmlSting.spec.ts +235 -0
- package/src/formatted-text/formattedTextToHtmlSting.ts +100 -0
- package/src/index.ts +7 -0
- package/src/server-utils/apiKeyMiddleware.spec.ts +50 -0
- package/src/server-utils/apiKeyMiddleware.ts +23 -0
- package/tsconfig.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"applyDefaultRulesToCacheControlObject.spec.js","sourceRoot":"","sources":["../../src/cache/applyDefaultRulesToCacheControlObject.spec.ts"],"names":[],"mappings":";;AAAA,mGAAgG;AAEhG,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAE/B,EAAE,CAAC,wHAAwH,EAAE,GAAG,EAAE;QAChI,MAAM,CACJ,IAAA,6EAAqC,EAAC;YACpC,SAAS,EAAE,CAAC;SACb,CAAC,CACH,CAAC,OAAO,CAAC;YACR,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,qIAAqI,EAAE,GAAG,EAAE;QAC7I,MAAM,CACJ,IAAA,6EAAqC,EAAC;YACpC,SAAS,EAAE,iBAAiB,GAAG,CAAC;SACjC,CAAC,CACH,CAAC,OAAO,CAAC;YACR,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wIAAwI,EAAE,GAAG,EAAE;QAChJ,MAAM,CACJ,IAAA,6EAAqC,EAAC;YACpC,SAAS,EAAE,iBAAiB,GAAG,CAAC;SACjC,CAAC,CACH,CAAC,OAAO,CAAC;YACR,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yHAAyH,EAAE,GAAG,EAAE;QACjI,MAAM,CACJ,IAAA,6EAAqC,EAAC;YACpC,UAAU,EAAE,CAAC;SACd,CAAC,CACH,CAAC,OAAO,CAAC;YACR,UAAU,EAAE,iBAAiB;SAC9B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sIAAsI,EAAE,GAAG,EAAE;QAC9I,MAAM,CACJ,IAAA,6EAAqC,EAAC;YACpC,UAAU,EAAE,iBAAiB,GAAG,CAAC;SAClC,CAAC,CACH,CAAC,OAAO,CAAC;YACR,UAAU,EAAE,iBAAiB;SAC9B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yIAAyI,EAAE,GAAG,EAAE;QACjJ,MAAM,CACJ,IAAA,6EAAqC,EAAC;YACpC,UAAU,EAAE,iBAAiB,GAAG,CAAC;SAClC,CAAC,CACH,CAAC,OAAO,CAAC;YACR,UAAU,EAAE,iBAAiB;SAC9B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0HAA0H,EAAE,GAAG,EAAE;QAClI,MAAM,CACJ,IAAA,6EAAqC,EAAC;YACpC,WAAW,EAAE,CAAC;SACf,CAAC,CACH,CAAC,OAAO,CAAC;YACR,WAAW,EAAE,iBAAiB;SAC/B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,0IAA0I,EAAE,GAAG,EAAE;QAClJ,MAAM,CACJ,IAAA,6EAAqC,EAAC;YACpC,WAAW,EAAE,iBAAiB,GAAG,CAAC;SACnC,CAAC,CACH,CAAC,OAAO,CAAC;YACR,WAAW,EAAE,iBAAiB;SAC/B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,CACJ,IAAA,6EAAqC,EAAC;YACpC,SAAS,EAAE,iBAAiB;YAC5B,UAAU,EAAE,IAAI;SACjB,CAAC,CACH,CAAC,OAAO,CAAC;YACR,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,CACJ,IAAA,6EAAqC,EAAC;YACpC,SAAS,EAAE,iBAAiB;YAC5B,UAAU,EAAE,IAAI;SACjB,CAAC,CACH,CAAC,OAAO,CAAC;YACR,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8GAA8G,EAAE,GAAG,EAAE;QACtH,MAAM,CACJ,IAAA,6EAAqC,EAAC;YACpC,SAAS,EAAE,iBAAiB;YAC5B,UAAU,EAAE,iBAAiB;YAC7B,WAAW,EAAE,iBAAiB;YAC9B,wBAAwB,EAAE,iBAAiB;YAC3C,gBAAgB,EAAE,iBAAiB;YACnC,SAAS,EAAE,KAAK;SACjB,CAAC,CACH,CAAC,OAAO,CAAC;YACR,SAAS,EAAE,iBAAiB;YAC5B,UAAU,EAAE,iBAAiB;YAC7B,WAAW,EAAE,iBAAiB;YAC9B,wBAAwB,EAAE,iBAAiB;YAC3C,gBAAgB,EAAE,iBAAiB;YACnC,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.cacheControlToString = void 0;
|
4
|
+
function cacheControlToString(cacheControl) {
|
5
|
+
const parts = [];
|
6
|
+
for (const key of Object.keys(cacheControl)) {
|
7
|
+
let value = cacheControl[key];
|
8
|
+
if (typeof value === 'boolean' && value === true) {
|
9
|
+
parts.push(key);
|
10
|
+
}
|
11
|
+
else {
|
12
|
+
if (typeof value === 'number') {
|
13
|
+
value = value.toString();
|
14
|
+
}
|
15
|
+
else if (typeof value === 'string') {
|
16
|
+
value = `"${value}"`;
|
17
|
+
}
|
18
|
+
parts.push(`${key}=${value}`);
|
19
|
+
}
|
20
|
+
}
|
21
|
+
return parts.join(', ');
|
22
|
+
}
|
23
|
+
exports.cacheControlToString = cacheControlToString;
|
24
|
+
//# sourceMappingURL=cacheControlToString.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cacheControlToString.js","sourceRoot":"","sources":["../../src/cache/cacheControlToString.ts"],"names":[],"mappings":";;;AAEA,SAAgB,oBAAoB,CAAC,YAA0B;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QAC3C,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACjB;aAAM;YACL,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;aAC1B;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBACpC,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC;aACtB;YAED,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;SAC/B;KACF;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAnBD,oDAmBC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,34 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const cacheControlToString_1 = require("./cacheControlToString");
|
4
|
+
describe('cacheControlToString', () => {
|
5
|
+
it('should return an empty string if the input Cache-Control object is empty', () => {
|
6
|
+
expect((0, cacheControlToString_1.cacheControlToString)({})).toEqual('');
|
7
|
+
});
|
8
|
+
it('should return a Cache-Control header string with a single boolean directive', () => {
|
9
|
+
expect((0, cacheControlToString_1.cacheControlToString)({ public: true })).toEqual('public');
|
10
|
+
});
|
11
|
+
it('should return a Cache-Control header string with a single numeric directive', () => {
|
12
|
+
expect((0, cacheControlToString_1.cacheControlToString)({ 'max-age': 3600 })).toEqual('max-age=3600');
|
13
|
+
});
|
14
|
+
it('should return a Cache-Control header string with a single string directive', () => {
|
15
|
+
expect((0, cacheControlToString_1.cacheControlToString)({ extension: 'foo' })).toEqual('extension="foo"');
|
16
|
+
});
|
17
|
+
it('should return a Cache-Control header string with multiple directives', () => {
|
18
|
+
expect((0, cacheControlToString_1.cacheControlToString)({
|
19
|
+
public: true,
|
20
|
+
'max-age': 3600,
|
21
|
+
's-maxage': 86400,
|
22
|
+
'min-fresh': 600,
|
23
|
+
'stale-while-revalidate': 60,
|
24
|
+
'stale-if-error': 86400,
|
25
|
+
extension: 'foo',
|
26
|
+
})).toEqual('public, max-age=3600, s-maxage=86400, min-fresh=600, stale-while-revalidate=60, stale-if-error=86400, extension="foo"');
|
27
|
+
});
|
28
|
+
it('should handle commas in string values in the input Cache-Control object', () => {
|
29
|
+
expect((0, cacheControlToString_1.cacheControlToString)({
|
30
|
+
extension: 'foo, bar',
|
31
|
+
})).toEqual('extension="foo, bar"');
|
32
|
+
});
|
33
|
+
});
|
34
|
+
//# sourceMappingURL=cacheControlToString.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cacheControlToString.spec.js","sourceRoot":"","sources":["../../src/cache/cacheControlToString.spec.ts"],"names":[],"mappings":";;AAAA,iEAA8D;AAE9D,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,CAAC,IAAA,2CAAoB,EAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,CAAC,IAAA,2CAAoB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,CAAC,IAAA,2CAAoB,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,CAAC,IAAA,2CAAoB,EAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,CACJ,IAAA,2CAAoB,EAAC;YACnB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,GAAG;YAChB,wBAAwB,EAAE,EAAE;YAC5B,gBAAgB,EAAE,KAAK;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CACH,CAAC,OAAO,CACP,uHAAuH,CACxH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,CACJ,IAAA,2CAAoB,EAAC;YACnB,SAAS,EAAE,UAAU;SACtB,CAAC,CACH,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./parseAndSanitiseCacheControlHeader"), exports);
|
18
|
+
__exportStar(require("./parseCacheControl"), exports);
|
19
|
+
__exportStar(require("./applyDefaultRulesToCacheControlObject"), exports);
|
20
|
+
__exportStar(require("./cacheControlToString"), exports);
|
21
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uEAAqD;AACrD,sDAAoC;AACpC,0EAAwD;AACxD,yDAAuC"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
export declare const MIN_CACHE_SECONDS = 30;
|
2
|
+
export declare const MAX_CACHE_SECONDS: number;
|
3
|
+
export declare const DEFAULT_CACHE_CONTROL_HEADER: string;
|
4
|
+
export declare function parseAndSanitiseCacheControlHeader(cacheControlString: string | undefined): string;
|
5
|
+
export declare function ensureBetween(input: number, min: number, max: number): number;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ensureBetween = exports.parseAndSanitiseCacheControlHeader = exports.DEFAULT_CACHE_CONTROL_HEADER = exports.MAX_CACHE_SECONDS = exports.MIN_CACHE_SECONDS = void 0;
|
4
|
+
const applyDefaultRulesToCacheControlObject_1 = require("./applyDefaultRulesToCacheControlObject");
|
5
|
+
const cacheControlToString_1 = require("./cacheControlToString");
|
6
|
+
const parseCacheControl_1 = require("./parseCacheControl");
|
7
|
+
exports.MIN_CACHE_SECONDS = 30;
|
8
|
+
exports.MAX_CACHE_SECONDS = minutesToSeconds(30);
|
9
|
+
exports.DEFAULT_CACHE_CONTROL_HEADER = (0, cacheControlToString_1.cacheControlToString)({ public: true, 'max-age': minutesToSeconds(30) });
|
10
|
+
function parseAndSanitiseCacheControlHeader(cacheControlString) {
|
11
|
+
if (!cacheControlString) {
|
12
|
+
return exports.DEFAULT_CACHE_CONTROL_HEADER;
|
13
|
+
}
|
14
|
+
let cacheControl = (0, parseCacheControl_1.parseCacheControl)(cacheControlString);
|
15
|
+
cacheControl = (0, applyDefaultRulesToCacheControlObject_1.applyDefaultRulesToCacheControlObject)(cacheControl);
|
16
|
+
return (0, cacheControlToString_1.cacheControlToString)(cacheControl);
|
17
|
+
}
|
18
|
+
exports.parseAndSanitiseCacheControlHeader = parseAndSanitiseCacheControlHeader;
|
19
|
+
function ensureBetween(input, min, max) {
|
20
|
+
return Math.max(min, Math.min(input, max));
|
21
|
+
}
|
22
|
+
exports.ensureBetween = ensureBetween;
|
23
|
+
function minutesToSeconds(minutes) {
|
24
|
+
return minutes * 60;
|
25
|
+
}
|
26
|
+
//# sourceMappingURL=parseAndSanitiseCacheControlHeader.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parseAndSanitiseCacheControlHeader.js","sourceRoot":"","sources":["../../src/cache/parseAndSanitiseCacheControlHeader.ts"],"names":[],"mappings":";;;AAAA,mGAAgG;AAChG,iEAA8D;AAC9D,2DAAwD;AAE3C,QAAA,iBAAiB,GAAG,EAAE,CAAC;AACvB,QAAA,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAEzC,QAAA,4BAA4B,GAAG,IAAA,2CAAoB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAEpH,SAAgB,kCAAkC,CAAC,kBAAsC;IACvF,IAAI,CAAC,kBAAkB,EAAE;QACvB,OAAO,oCAA4B,CAAC;KACrC;IAED,IAAI,YAAY,GAAG,IAAA,qCAAiB,EAAC,kBAAkB,CAAC,CAAC;IAEzD,YAAY,GAAG,IAAA,6EAAqC,EAAC,YAAY,CAAC,CAAC;IAEnE,OAAO,IAAA,2CAAoB,EAAC,YAAY,CAAC,CAAC;AAC5C,CAAC;AAVD,gFAUC;AAED,SAAgB,aAAa,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IACnE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;AAFD,sCAEC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,GAAG,EAAE,CAAC;AACtB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,21 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const parseAndSanitiseCacheControlHeader_1 = require("./parseAndSanitiseCacheControlHeader");
|
4
|
+
describe('parseAndSanitiseCacheControlHeader', () => {
|
5
|
+
it('should return a default Cache-Control header string if the input is undefined', () => {
|
6
|
+
expect((0, parseAndSanitiseCacheControlHeader_1.parseAndSanitiseCacheControlHeader)(undefined)).toEqual('public, max-age=1800');
|
7
|
+
});
|
8
|
+
it('should return a sanitized Cache-Control header string if the input is a valid Cache-Control header string', () => {
|
9
|
+
expect((0, parseAndSanitiseCacheControlHeader_1.parseAndSanitiseCacheControlHeader)('max-age=3600, s-maxage=86400, min-fresh=600, no-store')).toEqual('max-age=1800, s-maxage=1800, min-fresh=600');
|
10
|
+
});
|
11
|
+
it('should remove the no-store directive from the input Cache-Control header string', () => {
|
12
|
+
expect((0, parseAndSanitiseCacheControlHeader_1.parseAndSanitiseCacheControlHeader)('max-age=3600, no-store')).toEqual('max-age=1800');
|
13
|
+
});
|
14
|
+
it('should remove the no-cache directive from the input Cache-Control header string', () => {
|
15
|
+
expect((0, parseAndSanitiseCacheControlHeader_1.parseAndSanitiseCacheControlHeader)('max-age=3600, no-cache')).toEqual('max-age=1800');
|
16
|
+
});
|
17
|
+
it('should remove both the no-store and no-cache directives from the input Cache-Control header string', () => {
|
18
|
+
expect((0, parseAndSanitiseCacheControlHeader_1.parseAndSanitiseCacheControlHeader)('max-age=3600, no-store, no-cache')).toEqual('max-age=1800');
|
19
|
+
});
|
20
|
+
});
|
21
|
+
//# sourceMappingURL=parseAndSanitiseCacheControlHeader.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parseAndSanitiseCacheControlHeader.spec.js","sourceRoot":"","sources":["../../src/cache/parseAndSanitiseCacheControlHeader.spec.ts"],"names":[],"mappings":";;AAAA,6FAA0F;AAE1F,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,CAAC,IAAA,uEAAkC,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2GAA2G,EAAE,GAAG,EAAE;QACnH,MAAM,CAAC,IAAA,uEAAkC,EAAC,uDAAuD,CAAC,CAAC,CAAC,OAAO,CACzG,4CAA4C,CAC7C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,CAAC,IAAA,uEAAkC,EAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,CAAC,IAAA,uEAAkC,EAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oGAAoG,EAAE,GAAG,EAAE;QAC5G,MAAM,CAAC,IAAA,uEAAkC,EAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
export interface CacheControl {
|
2
|
+
'max-age'?: number;
|
3
|
+
's-maxage'?: number;
|
4
|
+
'min-fresh'?: number;
|
5
|
+
'stale-while-revalidate'?: number;
|
6
|
+
'stale-if-error'?: number;
|
7
|
+
public?: true;
|
8
|
+
private?: true;
|
9
|
+
'no-store'?: true;
|
10
|
+
'no-cache'?: true;
|
11
|
+
'no-transform'?: true;
|
12
|
+
'must-revalidate'?: true;
|
13
|
+
'proxy-revalidate'?: true;
|
14
|
+
'must-understand'?: true;
|
15
|
+
immutable?: true;
|
16
|
+
extension?: string;
|
17
|
+
[key: string]: string | boolean | undefined | number;
|
18
|
+
}
|
19
|
+
export declare function parseCacheControl(header: string): CacheControl;
|
@@ -0,0 +1,46 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.parseCacheControl = void 0;
|
4
|
+
function parseCacheControl(header) {
|
5
|
+
const parts = header.split(/,(?=(?:[^"]|"[^"]*")*$)/);
|
6
|
+
const result = {};
|
7
|
+
for (const part of parts) {
|
8
|
+
const [key, value] = part.split('=');
|
9
|
+
const trimmedKey = key.trim();
|
10
|
+
const trimmedValue = value !== undefined ? value.trim() : undefined;
|
11
|
+
const strippedValue = trimQuotes(trimmedValue);
|
12
|
+
const parsedValue = parseIntOrString(strippedValue, trimmedKey);
|
13
|
+
result[trimmedKey] = parsedValue;
|
14
|
+
}
|
15
|
+
return result;
|
16
|
+
}
|
17
|
+
exports.parseCacheControl = parseCacheControl;
|
18
|
+
function trimQuotes(str) {
|
19
|
+
if (str === undefined) {
|
20
|
+
return str;
|
21
|
+
}
|
22
|
+
if (str[0] === '"' && str[str.length - 1] === '"') {
|
23
|
+
return str.substring(1, str.length - 1);
|
24
|
+
}
|
25
|
+
return str;
|
26
|
+
}
|
27
|
+
function parseIntOrString(str, key) {
|
28
|
+
if (key === 'max-age' ||
|
29
|
+
key === 's-maxage' ||
|
30
|
+
key === 'min-fresh' ||
|
31
|
+
key === 'stale-while-revalidate' ||
|
32
|
+
key === 'stale-if-error') {
|
33
|
+
if (str) {
|
34
|
+
const parsedValue = parseInt(str, 10);
|
35
|
+
return isNaN(parsedValue) ? str || true : parsedValue;
|
36
|
+
}
|
37
|
+
else {
|
38
|
+
return 0;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
if (str === undefined) {
|
42
|
+
return true;
|
43
|
+
}
|
44
|
+
return str;
|
45
|
+
}
|
46
|
+
//# sourceMappingURL=parseCacheControl.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parseCacheControl.js","sourceRoot":"","sources":["../../src/cache/parseCacheControl.ts"],"names":[],"mappings":";;;AAsBA,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACtD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAE9B,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAEhE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;KAClC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAhBD,8CAgBC;AAED,SAAS,UAAU,CAAC,GAAuB;IACzC,IAAI,GAAG,KAAK,SAAS,EAAE;QACrB,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QACjD,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACzC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAuB,EAAE,GAAW;IAC5D,IACE,GAAG,KAAK,SAAS;QACjB,GAAG,KAAK,UAAU;QAClB,GAAG,KAAK,WAAW;QACnB,GAAG,KAAK,wBAAwB;QAChC,GAAG,KAAK,gBAAgB,EACxB;QACA,IAAI,GAAG,EAAE;YACP,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;SACvD;aAAM;YACL,OAAO,CAAC,CAAC;SACV;KACF;IAED,IAAI,GAAG,KAAK,SAAS,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,70 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const parseCacheControl_1 = require("./parseCacheControl");
|
4
|
+
describe('parseCacheControl', () => {
|
5
|
+
test('no-cache', () => {
|
6
|
+
const header = 'no-cache';
|
7
|
+
expect((0, parseCacheControl_1.parseCacheControl)(header)).toEqual({ 'no-cache': true });
|
8
|
+
});
|
9
|
+
test('public', () => {
|
10
|
+
const header = 'public, max-age=3600';
|
11
|
+
expect((0, parseCacheControl_1.parseCacheControl)(header)).toEqual({ public: true, 'max-age': 3600 });
|
12
|
+
});
|
13
|
+
test('private', () => {
|
14
|
+
const header = 'private, no-transform, max-age=3600';
|
15
|
+
expect((0, parseCacheControl_1.parseCacheControl)(header)).toEqual({
|
16
|
+
private: true,
|
17
|
+
'no-transform': true,
|
18
|
+
'max-age': 3600,
|
19
|
+
});
|
20
|
+
});
|
21
|
+
test('max-age', () => {
|
22
|
+
const header = 'max-age=3600, public';
|
23
|
+
expect((0, parseCacheControl_1.parseCacheControl)(header)).toEqual({ 'max-age': 3600, public: true });
|
24
|
+
});
|
25
|
+
test('s-maxage', () => {
|
26
|
+
const header = 's-maxage=604800, must-revalidate';
|
27
|
+
expect((0, parseCacheControl_1.parseCacheControl)(header)).toEqual({
|
28
|
+
's-maxage': 604800,
|
29
|
+
'must-revalidate': true,
|
30
|
+
});
|
31
|
+
});
|
32
|
+
test('must-revalidate', () => {
|
33
|
+
const header = 'no-store, no-cache, must-revalidate';
|
34
|
+
expect((0, parseCacheControl_1.parseCacheControl)(header)).toEqual({
|
35
|
+
'no-store': true,
|
36
|
+
'no-cache': true,
|
37
|
+
'must-revalidate': true,
|
38
|
+
});
|
39
|
+
});
|
40
|
+
test('no-store', () => {
|
41
|
+
const header = 'no-store';
|
42
|
+
expect((0, parseCacheControl_1.parseCacheControl)(header)).toEqual({ 'no-store': true });
|
43
|
+
});
|
44
|
+
test('no-transform', () => {
|
45
|
+
const header = 'no-transform';
|
46
|
+
expect((0, parseCacheControl_1.parseCacheControl)(header)).toEqual({ 'no-transform': true });
|
47
|
+
});
|
48
|
+
test('quoted string', () => {
|
49
|
+
const header = 'extension="foo, bar", no-transform';
|
50
|
+
expect((0, parseCacheControl_1.parseCacheControl)(header)).toEqual({
|
51
|
+
extension: 'foo, bar',
|
52
|
+
'no-transform': true,
|
53
|
+
});
|
54
|
+
});
|
55
|
+
test('multiple values', () => {
|
56
|
+
const header = 'extension="foo, bar", max-age=3600, s-maxage=604800, no-transform, public';
|
57
|
+
expect((0, parseCacheControl_1.parseCacheControl)(header)).toEqual({
|
58
|
+
extension: 'foo, bar',
|
59
|
+
'max-age': 3600,
|
60
|
+
's-maxage': 604800,
|
61
|
+
'no-transform': true,
|
62
|
+
public: true,
|
63
|
+
});
|
64
|
+
});
|
65
|
+
test('empty value', () => {
|
66
|
+
const header = 'extension="", max-age=3600';
|
67
|
+
expect((0, parseCacheControl_1.parseCacheControl)(header)).toEqual({ extension: '', 'max-age': 3600 });
|
68
|
+
});
|
69
|
+
});
|
70
|
+
//# sourceMappingURL=parseCacheControl.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parseCacheControl.spec.js","sourceRoot":"","sources":["../../src/cache/parseCacheControl.spec.ts"],"names":[],"mappings":";;AAAA,2DAAwD;AAExD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;QACpB,MAAM,MAAM,GAAG,UAAU,CAAC;QAE1B,MAAM,CAAC,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;QAClB,MAAM,MAAM,GAAG,sBAAsB,CAAC;QAEtC,MAAM,CAAC,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;QACnB,MAAM,MAAM,GAAG,qCAAqC,CAAC;QAErD,MAAM,CAAC,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;QACnB,MAAM,MAAM,GAAG,sBAAsB,CAAC;QAEtC,MAAM,CAAC,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;QACpB,MAAM,MAAM,GAAG,kCAAkC,CAAC;QAElD,MAAM,CAAC,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,UAAU,EAAE,MAAM;YAClB,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC3B,MAAM,MAAM,GAAG,qCAAqC,CAAC;QAErD,MAAM,CAAC,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;QACpB,MAAM,MAAM,GAAG,UAAU,CAAC;QAE1B,MAAM,CAAC,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;QACxB,MAAM,MAAM,GAAG,cAAc,CAAC;QAE9B,MAAM,CAAC,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,oCAAoC,CAAC;QAEpD,MAAM,CAAC,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,SAAS,EAAE,UAAU;YACrB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC3B,MAAM,MAAM,GAAG,2EAA2E,CAAC;QAE3F,MAAM,CAAC,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,MAAM;YAClB,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;QACvB,MAAM,MAAM,GAAG,4BAA4B,CAAC;QAE5C,MAAM,CAAC,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.InvalidTokenError = void 0;
|
4
|
+
const ErrorWithHttpStatusCode_1 = require("./ErrorWithHttpStatusCode");
|
5
|
+
class InvalidTokenError extends ErrorWithHttpStatusCode_1.ErrorWithHttpStatusCode {
|
6
|
+
constructor() {
|
7
|
+
super(401, 'Invalid authorization token');
|
8
|
+
this.name = 'InvalidTokenError';
|
9
|
+
}
|
10
|
+
}
|
11
|
+
exports.InvalidTokenError = InvalidTokenError;
|
12
|
+
//# sourceMappingURL=InvalidTokenError.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"InvalidTokenError.js","sourceRoot":"","sources":["../../src/error/InvalidTokenError.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AAEpE,MAAa,iBAAkB,SAAQ,iDAAuB;IAE5D;QACE,KAAK,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;QAF5C,SAAI,GAAG,mBAAmB,CAAC;IAG3B,CAAC;CACF;AALD,8CAKC"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.UnAuthenticatedRequestError = void 0;
|
4
|
+
const ErrorWithHttpStatusCode_1 = require("./ErrorWithHttpStatusCode");
|
5
|
+
class UnAuthenticatedRequestError extends ErrorWithHttpStatusCode_1.ErrorWithHttpStatusCode {
|
6
|
+
constructor(message) {
|
7
|
+
super(401, message);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
exports.UnAuthenticatedRequestError = UnAuthenticatedRequestError;
|
11
|
+
//# sourceMappingURL=UnAuthenticatedRequestError.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"UnAuthenticatedRequestError.js","sourceRoot":"","sources":["../../src/error/UnAuthenticatedRequestError.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AAEpE,MAAa,2BAA4B,SAAQ,iDAAuB;IACtE,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtB,CAAC;CACF;AAJD,kEAIC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.UnprivilegedError = void 0;
|
4
|
+
const ErrorWithHttpStatusCode_1 = require("./ErrorWithHttpStatusCode");
|
5
|
+
class UnprivilegedError extends ErrorWithHttpStatusCode_1.ErrorWithHttpStatusCode {
|
6
|
+
constructor() {
|
7
|
+
super(403, 'Permission not satisfied');
|
8
|
+
this.name = 'UnprivilegedError';
|
9
|
+
}
|
10
|
+
}
|
11
|
+
exports.UnprivilegedError = UnprivilegedError;
|
12
|
+
//# sourceMappingURL=UnprivilegedError.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"UnprivilegedError.js","sourceRoot":"","sources":["../../src/error/UnprivilegedError.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AAEpE,MAAa,iBAAkB,SAAQ,iDAAuB;IAE5D;QACE,KAAK,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;QAFzC,SAAI,GAAG,mBAAmB,CAAC;IAG3B,CAAC;CACF;AALD,8CAKC"}
|
package/lib/error/index.d.ts
CHANGED
@@ -4,3 +4,6 @@ export * from './InternalServerError';
|
|
4
4
|
export * from './ResourceNotFoundError';
|
5
5
|
export * from './TimeoutError';
|
6
6
|
export * from './MethodNotImplementedError';
|
7
|
+
export * from './InvalidTokenError';
|
8
|
+
export * from './UnprivilegedError';
|
9
|
+
export * from './UnAuthenticatedRequestError';
|
package/lib/error/index.js
CHANGED
@@ -20,4 +20,7 @@ __exportStar(require("./InternalServerError"), exports);
|
|
20
20
|
__exportStar(require("./ResourceNotFoundError"), exports);
|
21
21
|
__exportStar(require("./TimeoutError"), exports);
|
22
22
|
__exportStar(require("./MethodNotImplementedError"), exports);
|
23
|
+
__exportStar(require("./InvalidTokenError"), exports);
|
24
|
+
__exportStar(require("./UnprivilegedError"), exports);
|
25
|
+
__exportStar(require("./UnAuthenticatedRequestError"), exports);
|
23
26
|
//# sourceMappingURL=index.js.map
|
package/lib/error/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,4DAA0C;AAC1C,wDAAsC;AACtC,0DAAwC;AACxC,iDAA+B;AAC/B,8DAA4C"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,4DAA0C;AAC1C,wDAAsC;AACtC,0DAAwC;AACxC,iDAA+B;AAC/B,8DAA4C;AAE5C,sDAAoC;AACpC,sDAAoC;AACpC,gEAA8C"}
|
@@ -0,0 +1,85 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.formattedTextToHtmlSting = void 0;
|
4
|
+
function formattedTextToHtmlSting(formattedNodes) {
|
5
|
+
switch (formattedNodes.type) {
|
6
|
+
case 'text':
|
7
|
+
return formattedNodes.value;
|
8
|
+
case 'tag':
|
9
|
+
return buildTagHTML(formattedNodes);
|
10
|
+
default:
|
11
|
+
return unknownNodeType(formattedNodes);
|
12
|
+
}
|
13
|
+
}
|
14
|
+
exports.formattedTextToHtmlSting = formattedTextToHtmlSting;
|
15
|
+
function buildTagHTML(formattedTextTag) {
|
16
|
+
const classes = getClassString(formattedTextTag);
|
17
|
+
if (!formattedTextTag.attributes) {
|
18
|
+
formattedTextTag.attributes = { class: classes };
|
19
|
+
}
|
20
|
+
else {
|
21
|
+
formattedTextTag.attributes.class = classes;
|
22
|
+
}
|
23
|
+
const attributesStr = buildAttributesString(formattedTextTag.attributes);
|
24
|
+
const childrenHTML = buildChildrenHTML(formattedTextTag.children);
|
25
|
+
return `<${formattedTextTag.tag}${attributesStr}>${childrenHTML}</${formattedTextTag.tag}>`;
|
26
|
+
}
|
27
|
+
function buildChildrenHTML(children) {
|
28
|
+
if (!children) {
|
29
|
+
return '';
|
30
|
+
}
|
31
|
+
return children.map(formattedTextToHtmlSting).join('');
|
32
|
+
}
|
33
|
+
function unknownNodeType(node) {
|
34
|
+
return `<p class="invalid-node-type"> node of type "${node.type}" cannot be converted to html</p>`;
|
35
|
+
}
|
36
|
+
function getClassString(formattedTextTag) {
|
37
|
+
var _a, _b, _c;
|
38
|
+
const fontClasses = buildFontClasses(formattedTextTag.font);
|
39
|
+
let string = (_b = (_a = formattedTextTag === null || formattedTextTag === void 0 ? void 0 : formattedTextTag.attributes) === null || _a === void 0 ? void 0 : _a.class) !== null && _b !== void 0 ? _b : '';
|
40
|
+
if ((_c = formattedTextTag === null || formattedTextTag === void 0 ? void 0 : formattedTextTag.formattingOptions) === null || _c === void 0 ? void 0 : _c.alignment) {
|
41
|
+
fontClasses.push(formattedTextTag.formattingOptions.alignment);
|
42
|
+
}
|
43
|
+
if (fontClasses.length > 0) {
|
44
|
+
string += ' ' + fontClasses.join(' ');
|
45
|
+
}
|
46
|
+
return string.trim();
|
47
|
+
}
|
48
|
+
function buildAttributesString(attributes) {
|
49
|
+
if (!attributes) {
|
50
|
+
return '';
|
51
|
+
}
|
52
|
+
let attributesString = '';
|
53
|
+
for (const attribute in attributes) {
|
54
|
+
if (attributes[attribute] !== '') {
|
55
|
+
attributesString += ` ${attribute}="${attributes[attribute]}"`;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
return attributesString;
|
59
|
+
}
|
60
|
+
function buildFontClasses(font) {
|
61
|
+
if (!font) {
|
62
|
+
return [];
|
63
|
+
}
|
64
|
+
const classes = [];
|
65
|
+
if (font.bold) {
|
66
|
+
classes.push('bold');
|
67
|
+
}
|
68
|
+
if (font.underline) {
|
69
|
+
classes.push('underline');
|
70
|
+
}
|
71
|
+
if (font.italics) {
|
72
|
+
classes.push('italics');
|
73
|
+
}
|
74
|
+
if (font.color) {
|
75
|
+
classes.push(`color-${font.color}`);
|
76
|
+
}
|
77
|
+
if (font.size) {
|
78
|
+
classes.push(`size-${font.size}`);
|
79
|
+
}
|
80
|
+
if (font.fontFamily) {
|
81
|
+
classes.push(`font-${font.fontFamily}`);
|
82
|
+
}
|
83
|
+
return classes;
|
84
|
+
}
|
85
|
+
//# sourceMappingURL=formattedTextToHtmlSting.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"formattedTextToHtmlSting.js","sourceRoot":"","sources":["../../src/formatted-text/formattedTextToHtmlSting.ts"],"names":[],"mappings":";;;AAMA,SAAgB,wBAAwB,CAAC,cAA8B;IACrE,QAAQ,cAAc,CAAC,IAAI,EAAE;QAC3B,KAAK,MAAM;YACT,OAAO,cAAc,CAAC,KAAK,CAAC;QAC9B,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,cAAc,CAAC,CAAC;QACtC;YACE,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC;KAC1C;AACH,CAAC;AATD,4DASC;AACD,SAAS,YAAY,CAAC,gBAAkC;IACtD,MAAM,OAAO,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAEjD,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE;QAChC,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;KAClD;SAAM;QACL,gBAAgB,CAAC,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC;KAC7C;IAED,MAAM,aAAa,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAElE,OAAO,IAAI,gBAAgB,CAAC,GAAG,GAAG,aAAa,IAAI,YAAY,KAAK,gBAAgB,CAAC,GAAG,GAAG,CAAC;AAC9F,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAsC;IAC/D,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,EAAE,CAAC;KACX;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,eAAe,CAAC,IAAoB;IAC3C,OAAO,+CAA+C,IAAI,CAAC,IAAI,mCAAmC,CAAC;AACrG,CAAC;AAED,SAAS,cAAc,CAAC,gBAAkC;;IACxD,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE5D,IAAI,MAAM,GAAG,MAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,UAAU,0CAAE,KAAK,mCAAI,EAAE,CAAC;IAEvD,IAAI,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,iBAAiB,0CAAE,SAAS,EAAE;QAClD,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;KAChE;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,MAAM,IAAI,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvC;IAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,qBAAqB,CAAC,UAA+C;IAC5E,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,EAAE,CAAC;KACX;IAED,IAAI,gBAAgB,GAAG,EAAE,CAAC;IAC1B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;QAClC,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;YAChC,gBAAgB,IAAI,IAAI,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;SAChE;KACF;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAA6C;IACrE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC;KACX;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACtB;IACD,IAAI,IAAI,CAAC,SAAS,EAAE;QAClB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC3B;IACD,IAAI,IAAI,CAAC,OAAO,EAAE;QAChB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACzB;IACD,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KACrC;IACD,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;KACnC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;KACzC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|