@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.
Files changed (104) hide show
  1. package/CHANGELOG.md +5 -71
  2. package/lib/api-key-validation/ApiKeyValidationService.d.ts +4 -0
  3. package/lib/api-key-validation/ApiKeyValidationService.js +3 -0
  4. package/lib/api-key-validation/ApiKeyValidationService.js.map +1 -0
  5. package/lib/api-key-validation/CloudflareApiKeyService.d.ts +17 -0
  6. package/lib/api-key-validation/CloudflareApiKeyService.js +72 -0
  7. package/lib/api-key-validation/CloudflareApiKeyService.js.map +1 -0
  8. package/lib/api-key-validation/CloudflareApiKeyService.spec.d.ts +1 -0
  9. package/lib/api-key-validation/CloudflareApiKeyService.spec.js +93 -0
  10. package/lib/api-key-validation/CloudflareApiKeyService.spec.js.map +1 -0
  11. package/lib/api-key-validation/DevelopmentApiKeyService.d.ts +5 -0
  12. package/lib/api-key-validation/DevelopmentApiKeyService.js +13 -0
  13. package/lib/api-key-validation/DevelopmentApiKeyService.js.map +1 -0
  14. package/lib/api-key-validation/DevelopmentApiKeyService.spec.d.ts +1 -0
  15. package/lib/api-key-validation/DevelopmentApiKeyService.spec.js +17 -0
  16. package/lib/api-key-validation/DevelopmentApiKeyService.spec.js.map +1 -0
  17. package/lib/api-key-validation/getApiKeyService.d.ts +6 -0
  18. package/lib/api-key-validation/getApiKeyService.js +23 -0
  19. package/lib/api-key-validation/getApiKeyService.js.map +1 -0
  20. package/lib/api-key-validation/getApiKeyService.spec.d.ts +1 -0
  21. package/lib/api-key-validation/getApiKeyService.spec.js +24 -0
  22. package/lib/api-key-validation/getApiKeyService.spec.js.map +1 -0
  23. package/lib/cache/applyDefaultRulesToCacheControlObject.d.ts +19 -0
  24. package/lib/cache/applyDefaultRulesToCacheControlObject.js +21 -0
  25. package/lib/cache/applyDefaultRulesToCacheControlObject.js.map +1 -0
  26. package/lib/cache/applyDefaultRulesToCacheControlObject.spec.d.ts +1 -0
  27. package/lib/cache/applyDefaultRulesToCacheControlObject.spec.js +97 -0
  28. package/lib/cache/applyDefaultRulesToCacheControlObject.spec.js.map +1 -0
  29. package/lib/cache/cacheControlToString.d.ts +2 -0
  30. package/lib/cache/cacheControlToString.js +24 -0
  31. package/lib/cache/cacheControlToString.js.map +1 -0
  32. package/lib/cache/cacheControlToString.spec.d.ts +1 -0
  33. package/lib/cache/cacheControlToString.spec.js +34 -0
  34. package/lib/cache/cacheControlToString.spec.js.map +1 -0
  35. package/lib/cache/index.d.ts +4 -0
  36. package/lib/cache/index.js +21 -0
  37. package/lib/cache/index.js.map +1 -0
  38. package/lib/cache/parseAndSanitiseCacheControlHeader.d.ts +5 -0
  39. package/lib/cache/parseAndSanitiseCacheControlHeader.js +26 -0
  40. package/lib/cache/parseAndSanitiseCacheControlHeader.js.map +1 -0
  41. package/lib/cache/parseAndSanitiseCacheControlHeader.spec.d.ts +1 -0
  42. package/lib/cache/parseAndSanitiseCacheControlHeader.spec.js +21 -0
  43. package/lib/cache/parseAndSanitiseCacheControlHeader.spec.js.map +1 -0
  44. package/lib/cache/parseCacheControl.d.ts +19 -0
  45. package/lib/cache/parseCacheControl.js +46 -0
  46. package/lib/cache/parseCacheControl.js.map +1 -0
  47. package/lib/cache/parseCacheControl.spec.d.ts +1 -0
  48. package/lib/cache/parseCacheControl.spec.js +70 -0
  49. package/lib/cache/parseCacheControl.spec.js.map +1 -0
  50. package/lib/error/InvalidTokenError.d.ts +5 -0
  51. package/lib/error/InvalidTokenError.js +12 -0
  52. package/lib/error/InvalidTokenError.js.map +1 -0
  53. package/lib/error/UnAuthenticatedRequestError.d.ts +4 -0
  54. package/lib/error/UnAuthenticatedRequestError.js +11 -0
  55. package/lib/error/UnAuthenticatedRequestError.js.map +1 -0
  56. package/lib/error/UnprivilegedError.d.ts +5 -0
  57. package/lib/error/UnprivilegedError.js +12 -0
  58. package/lib/error/UnprivilegedError.js.map +1 -0
  59. package/lib/error/index.d.ts +3 -0
  60. package/lib/error/index.js +3 -0
  61. package/lib/error/index.js.map +1 -1
  62. package/lib/formatted-text/formattedTextToHtmlSting.d.ts +4 -0
  63. package/lib/formatted-text/formattedTextToHtmlSting.js +85 -0
  64. package/lib/formatted-text/formattedTextToHtmlSting.js.map +1 -0
  65. package/lib/formatted-text/formattedTextToHtmlSting.spec.d.ts +1 -0
  66. package/lib/formatted-text/formattedTextToHtmlSting.spec.js +212 -0
  67. package/lib/formatted-text/formattedTextToHtmlSting.spec.js.map +1 -0
  68. package/lib/index.d.ts +7 -0
  69. package/lib/index.js +7 -0
  70. package/lib/index.js.map +1 -1
  71. package/lib/server-utils/apiKeyMiddleware.d.ts +3 -0
  72. package/lib/server-utils/apiKeyMiddleware.js +20 -0
  73. package/lib/server-utils/apiKeyMiddleware.js.map +1 -0
  74. package/lib/server-utils/apiKeyMiddleware.spec.d.ts +1 -0
  75. package/lib/server-utils/apiKeyMiddleware.spec.js +39 -0
  76. package/lib/server-utils/apiKeyMiddleware.spec.js.map +1 -0
  77. package/package.json +9 -7
  78. package/src/api-key-validation/ApiKeyValidationService.ts +4 -0
  79. package/src/api-key-validation/CloudflareApiKeyService.spec.ts +122 -0
  80. package/src/api-key-validation/CloudflareApiKeyService.ts +96 -0
  81. package/src/api-key-validation/DevelopmentApiKeyService.spec.ts +17 -0
  82. package/src/api-key-validation/DevelopmentApiKeyService.ts +10 -0
  83. package/src/api-key-validation/getApiKeyService.spec.ts +32 -0
  84. package/src/api-key-validation/getApiKeyService.ts +27 -0
  85. package/src/cache/applyDefaultRulesToCacheControlObject.spec.ts +126 -0
  86. package/src/cache/applyDefaultRulesToCacheControlObject.ts +23 -0
  87. package/src/cache/cacheControlToString.spec.ts +43 -0
  88. package/src/cache/cacheControlToString.ts +22 -0
  89. package/src/cache/index.ts +4 -0
  90. package/src/cache/parseAndSanitiseCacheControlHeader.spec.ts +25 -0
  91. package/src/cache/parseAndSanitiseCacheControlHeader.ts +28 -0
  92. package/src/cache/parseCacheControl.spec.ts +89 -0
  93. package/src/cache/parseCacheControl.ts +74 -0
  94. package/src/error/InvalidTokenError.ts +8 -0
  95. package/src/error/UnAuthenticatedRequestError.ts +7 -0
  96. package/src/error/UnprivilegedError.ts +8 -0
  97. package/src/error/index.ts +4 -0
  98. package/src/formatted-text/formattedTextToHtmlSting.spec.ts +235 -0
  99. package/src/formatted-text/formattedTextToHtmlSting.ts +100 -0
  100. package/src/index.ts +7 -0
  101. package/src/server-utils/apiKeyMiddleware.spec.ts +50 -0
  102. package/src/server-utils/apiKeyMiddleware.ts +23 -0
  103. package/tsconfig.json +1 -1
  104. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyDefaultRulesToCacheControlObject.spec.js","sourceRoot":"","sources":["../../src/cache/applyDefaultRulesToCacheControlObject.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { CacheControl } from './parseCacheControl';
2
+ export declare function cacheControlToString(cacheControl: CacheControl): string;
@@ -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,4 @@
1
+ export * from './parseAndSanitiseCacheControlHeader';
2
+ export * from './parseCacheControl';
3
+ export * from './applyDefaultRulesToCacheControlObject';
4
+ export * from './cacheControlToString';
@@ -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,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,5 @@
1
+ import { ErrorWithHttpStatusCode } from './ErrorWithHttpStatusCode';
2
+ export declare class InvalidTokenError extends ErrorWithHttpStatusCode {
3
+ name: string;
4
+ constructor();
5
+ }
@@ -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,4 @@
1
+ import { ErrorWithHttpStatusCode } from './ErrorWithHttpStatusCode';
2
+ export declare class UnAuthenticatedRequestError extends ErrorWithHttpStatusCode {
3
+ constructor(message: string);
4
+ }
@@ -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,5 @@
1
+ import { ErrorWithHttpStatusCode } from './ErrorWithHttpStatusCode';
2
+ export declare class UnprivilegedError extends ErrorWithHttpStatusCode {
3
+ name: string;
4
+ constructor();
5
+ }
@@ -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"}
@@ -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';
@@ -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
@@ -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,4 @@
1
+ import { FORMATTED_TEXT_MODELS } from '@squiz/dx-json-schema-lib';
2
+ type FormattedNodes = FORMATTED_TEXT_MODELS.v1.FormattedNodes;
3
+ export declare function formattedTextToHtmlSting(formattedNodes: FormattedNodes): string;
4
+ export {};
@@ -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":"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"}