@nr1e/commons 0.1.3-alpha.1 → 0.2.0-beta.1733341514

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 (47) hide show
  1. package/README.md +11 -0
  2. package/bitsnbytes/b64.d.mts.map +1 -1
  3. package/bitsnbytes/b64.mjs +0 -2
  4. package/bitsnbytes/b64.mjs.map +1 -1
  5. package/bitsnbytes/b64.test.d.mts +2 -0
  6. package/bitsnbytes/b64.test.d.mts.map +1 -0
  7. package/bitsnbytes/b64.test.mjs +71 -0
  8. package/bitsnbytes/b64.test.mjs.map +1 -0
  9. package/bitsnbytes/index.mjs.map +1 -1
  10. package/errors/errors.mjs.map +1 -1
  11. package/errors/errors.test.d.mts +2 -0
  12. package/errors/errors.test.d.mts.map +1 -0
  13. package/errors/errors.test.mjs +45 -0
  14. package/errors/errors.test.mjs.map +1 -0
  15. package/errors/index.mjs.map +1 -1
  16. package/http/http-method.mjs.map +1 -1
  17. package/http/http-status-code.mjs.map +1 -1
  18. package/http/index.mjs.map +1 -1
  19. package/lang/equality.d.mts +2 -0
  20. package/lang/equality.d.mts.map +1 -0
  21. package/lang/equality.mjs +27 -0
  22. package/lang/equality.mjs.map +1 -0
  23. package/lang/equality.test.d.mts +2 -0
  24. package/lang/equality.test.d.mts.map +1 -0
  25. package/lang/equality.test.mjs +15 -0
  26. package/lang/equality.test.mjs.map +1 -0
  27. package/lang/index.d.mts +1 -0
  28. package/lang/index.d.mts.map +1 -1
  29. package/lang/index.mjs +1 -0
  30. package/lang/index.mjs.map +1 -1
  31. package/lang/sleep.mjs +1 -1
  32. package/lang/sleep.mjs.map +1 -1
  33. package/lang/type-functions.mjs.map +1 -1
  34. package/oauth/crypto-functions.mjs.map +1 -1
  35. package/oauth/crypto-functions.test.d.mts +2 -0
  36. package/oauth/crypto-functions.test.d.mts.map +1 -0
  37. package/oauth/crypto-functions.test.mjs +36 -0
  38. package/oauth/crypto-functions.test.mjs.map +1 -0
  39. package/oauth/index.mjs.map +1 -1
  40. package/package.json +14 -13
  41. package/validator/index.mjs.map +1 -1
  42. package/validator/validators.mjs +14 -7
  43. package/validator/validators.mjs.map +1 -1
  44. package/validator/validators.test.d.mts +2 -0
  45. package/validator/validators.test.d.mts.map +1 -0
  46. package/validator/validators.test.mjs +177 -0
  47. package/validator/validators.test.mjs.map +1 -0
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # Commons JS
2
+
3
+ [![NPM Version][npm-image]][npm-url]
4
+ [![GitHub Actions][github-image]][github-url]
5
+
6
+ This project provides reusable components commonly needed in typescript projects.
7
+
8
+ [github-url]: https://github.com/nr1etech/commons-js/actions
9
+ [github-image]: https://github.com/nr1etech/commons-js/workflows/ci/badge.svg
10
+ [npm-url]: https://npmjs.org/package/@nr1e/commons-js
11
+ [npm-image]: https://img.shields.io/npm/v/@nre1/commons-js.svg
@@ -1 +1 @@
1
- {"version":3,"file":"b64.d.mts","sourceRoot":"","sources":["../../src/bitsnbytes/b64.mts"],"names":[],"mappings":"AAOA,eAAO,MAAM,YAAY,EAAE,UAMzB,CAAC;AAOH,eAAO,MAAM,yBAAyB,EAAE,UAMtC,CAAC;AAOH,eAAO,MAAM,gBAAgB,EAAE,UAM7B,CAAC;AAOH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;CAChD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,CA0B5E;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,UAAU,CAyCvE;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAEpE;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAEjE"}
1
+ {"version":3,"file":"b64.d.mts","sourceRoot":"","sources":["../../src/bitsnbytes/b64.mts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,EAAE,UAMzB,CAAC;AAOH,eAAO,MAAM,yBAAyB,EAAE,UAMtC,CAAC;AAOH,eAAO,MAAM,gBAAgB,EAAE,UAM7B,CAAC;AAOH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;CAChD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,CA0B5E;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,UAAU,CAyCvE;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAEpE;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAEjE"}
@@ -1,7 +1,5 @@
1
1
  import { IllegalArgumentError } from '../errors/errors.mjs';
2
- // eslint-disable-next-line node/no-unsupported-features/node-builtins
3
2
  const encoder = new TextEncoder();
4
- // eslint-disable-next-line node/no-unsupported-features/node-builtins
5
3
  const decoder = new TextDecoder();
6
4
  export const BASE64_CHARS = new Uint8Array([
7
5
  0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d,
@@ -1 +1 @@
1
- {"version":3,"file":"b64.mjs","sourceRoot":"","sources":["../../src/bitsnbytes/b64.mts"],"names":[],"mappings":"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","sourcesContent":["import {IllegalArgumentError} from '../errors/errors.mjs';\n\n// eslint-disable-next-line node/no-unsupported-features/node-builtins\nconst encoder = new TextEncoder();\n// eslint-disable-next-line node/no-unsupported-features/node-builtins\nconst decoder = new TextDecoder();\n\nexport const BASE64_CHARS: Uint8Array = new Uint8Array([\n 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d,\n 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a,\n 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d,\n 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a,\n 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2f, 0x3d,\n]);\n// 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n// 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n// 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',\n// 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',\n// '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/', '='\n\nexport const URL_MODIFIED_BASE64_CHARS: Uint8Array = new Uint8Array([\n 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d,\n 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a,\n 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d,\n 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a,\n 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2d, 0x5f,\n]);\n// 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n// 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n// 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',\n// 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',\n// '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '_',\n\nexport const YUI_BASE64_CHARS: Uint8Array = new Uint8Array([\n 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d,\n 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a,\n 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d,\n 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a,\n 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2e, 0x5f, 0x2d,\n]);\n// 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n// 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n// 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',\n// 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',\n// '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '_', '-'\n\nexport type Base64CharSet = 'b64' | 'url' | 'yui';\n\nexport interface Base64Options {\n readonly fromIndex?: number;\n readonly toIndex?: number;\n readonly b64chars?: Uint8Array | Base64CharSet;\n}\n\n/**\n * Returns a base64 character set and validates one if passed in.\n *\n * @param b64chars a base64 character set\n */\nexport function b64Charset(b64chars?: Uint8Array | Base64CharSet): Uint8Array {\n if (b64chars === undefined || b64chars === null) {\n return BASE64_CHARS;\n }\n if (b64chars instanceof Uint8Array) {\n if (b64chars.length !== 65 && b64chars.length !== 64) {\n throw new IllegalArgumentError(\n 'b64chars',\n 'Base 64 character sets must be 64 or 65 characters.'\n );\n }\n return b64chars;\n }\n switch (b64chars) {\n case 'b64':\n return BASE64_CHARS;\n case 'url':\n return URL_MODIFIED_BASE64_CHARS;\n case 'yui':\n return YUI_BASE64_CHARS;\n default:\n throw new IllegalArgumentError(\n 'b64chars',\n `Invalid base64 character set '${b64chars}'`\n );\n }\n}\n\n/**\n * Base64 encodes a series of bytes.\n *\n * @param buf Bytes to encode\n * @param opts Encoding options\n * @return a base64 string\n */\nexport function tob64(buf: Uint8Array, opts?: Base64Options): Uint8Array {\n const b64chars = b64Charset(opts?.b64chars);\n const toIndex = opts?.toIndex ?? buf.length;\n const fromIndex = opts?.fromIndex ?? 0;\n // every 3 bytes is 4 characters in padded base64 (6 bits per char)\n const num = toIndex - fromIndex;\n const numc =\n b64chars.length === 65\n ? ((num + 2 - ((num + 2) % 3)) / 3) * 4 // padded\n : (num * 8) / 6 + ((num * 8) % 6 !== 0 ? 1 : 0); // not padded\n const b64 = new Uint8Array(numc);\n let n = 0;\n for (let i = 0; i < toIndex; i += 3) {\n const v =\n ((buf[i] & 0xff) << 16) |\n (i + 1 < toIndex ? (buf[i + 1] & 0xff) << 8 : 0) |\n (i + 2 < toIndex ? buf[i + 2] & 0xff : 0);\n b64[n++] = b64chars[(v >>> 18) & 0x3f];\n b64[n++] = b64chars[(v >>> 12) & 0x3f];\n switch (\n toIndex - i // calculate bytes remaining to be processed\n ) {\n case 1: // 0 bytes left to process\n if (b64chars.length === 65) {\n b64[n++] = b64chars[64];\n b64[n++] = b64chars[64];\n }\n break;\n case 2: // 1 byte left to process\n b64[n++] = b64chars[(v >>> 6) & 0x3f];\n if (b64chars.length === 65) {\n b64[n++] = b64chars[64];\n }\n break;\n default:\n b64[n++] = b64chars[(v >>> 6) & 0x3f];\n b64[n++] = b64chars[v & 0x3f];\n break;\n }\n }\n return b64;\n}\n\n/**\n * Base64 encodes a series of bytes to a string.\n *\n * @param buf Bytes to encode\n * @param opts Encoding options\n * @return a base64 string\n */\nexport function tob64s(buf: Uint8Array, opts?: Base64Options): string {\n return decoder.decode(tob64(buf, opts));\n}\n\n/**\n * Base64 encodes a string to a string.\n *\n * @param str String to encode\n * @param opts Encoding options\n * @return a base64 string\n */\nexport function stob64s(str: string, opts?: Base64Options): string {\n return tob64s(encoder.encode(str), opts);\n}\n"]}
1
+ {"version":3,"file":"b64.mjs","sourceRoot":"","sources":["../../src/bitsnbytes/b64.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=b64.test.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"b64.test.d.mts","sourceRoot":"","sources":["../../src/bitsnbytes/b64.test.mts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ import { test, expect } from 'vitest';
2
+ import { stob64s, tob64s } from './b64.mjs';
3
+ import * as crypto from 'crypto';
4
+ test('Test tob64', () => {
5
+ const str = '"Computer, compute to the last digit the value of pi" -- Spock';
6
+ let b64s = [
7
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvY2s=',
8
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvYw==',
9
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3Bv',
10
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3A=',
11
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gUw==',
12
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0g',
13
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0=',
14
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLQ==',
15
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIg',
16
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSI=',
17
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaQ==',
18
+ ];
19
+ for (let i = 0; i < b64s.length; i++) {
20
+ expect(b64s[i]).toBe(stob64s(str.substring(0, str.length - i)));
21
+ }
22
+ // Test URL modified base64 encoding
23
+ b64s = [
24
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvY2s',
25
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvYw',
26
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3Bv',
27
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3A',
28
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gUw',
29
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0g',
30
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0',
31
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLQ',
32
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIg',
33
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSI',
34
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaQ',
35
+ ];
36
+ for (let i = 0; i < b64s.length; i++) {
37
+ expect(b64s[i]).toBe(stob64s(str.substring(0, str.length - i), { b64chars: 'url' }));
38
+ }
39
+ // Test YUI modified base64 encoding
40
+ b64s = [
41
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvY2s-',
42
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvYw--',
43
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3Bv',
44
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3A-',
45
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gUw--',
46
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0g',
47
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0-',
48
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLQ--',
49
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIg',
50
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSI-',
51
+ 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaQ--',
52
+ ];
53
+ for (let i = 0; i < b64s.length; i++) {
54
+ expect(b64s[i]).toBe(stob64s(str.substring(0, str.length - i), { b64chars: 'yui' }));
55
+ }
56
+ });
57
+ test('Compare to Node', () => {
58
+ for (let i = 0; i < 100; i++) {
59
+ const bytes = crypto.randomBytes(16);
60
+ const str = tob64s(bytes, { b64chars: 'url' });
61
+ const nodeStr = bytes.toString('base64url');
62
+ expect(str).toEqual(nodeStr);
63
+ }
64
+ for (let i = 0; i < 100; i++) {
65
+ const bytes = crypto.randomBytes(16);
66
+ const str = tob64s(bytes, { b64chars: 'b64' });
67
+ const nodeStr = bytes.toString('base64');
68
+ expect(str).toEqual(nodeStr);
69
+ }
70
+ });
71
+ //# sourceMappingURL=b64.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"b64.test.mjs","sourceRoot":"","sources":["../../src/bitsnbytes/b64.test.mts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;IACtB,MAAM,GAAG,GAAG,gEAAgE,CAAC;IAC7E,IAAI,IAAI,GAAG;QACT,sFAAsF;QACtF,sFAAsF;QACtF,kFAAkF;QAClF,kFAAkF;QAClF,kFAAkF;QAClF,8EAA8E;QAC9E,8EAA8E;QAC9E,8EAA8E;QAC9E,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;KAC3E,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,oCAAoC;IACpC,IAAI,GAAG;QACL,qFAAqF;QACrF,oFAAoF;QACpF,kFAAkF;QAClF,iFAAiF;QACjF,gFAAgF;QAChF,8EAA8E;QAC9E,6EAA6E;QAC7E,4EAA4E;QAC5E,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;KACzE,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAClB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,IAAI,GAAG;QACL,sFAAsF;QACtF,sFAAsF;QACtF,kFAAkF;QAClF,kFAAkF;QAClF,kFAAkF;QAClF,8EAA8E;QAC9E,8EAA8E;QAC9E,8EAA8E;QAC9E,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;KAC3E,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAClB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAC7D,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/bitsnbytes/index.mts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC","sourcesContent":["export * from './b64.mjs';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/bitsnbytes/index.mts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.mjs","sourceRoot":"","sources":["../../src/errors/errors.mts"],"names":[],"mappings":"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","sourcesContent":["import {HttpStatusCode} from '../http/index.mjs';\nimport {isError, isObject} from '../lang/index.mjs';\n\n/**\n * An extended version of Error that includes an HttpStatusCode.\n * This can be useful in middleware error handlers to determine http status codes to return to the client.\n */\nexport interface HttpError extends Error {\n /**\n * The HTTP status code.\n */\n statusCode: HttpStatusCode | number;\n}\n\n/**\n * Checks if the given parameter is an HttpError.\n *\n * @param e The parameter to check\n */\nexport function isHttpError(e?: unknown): e is HttpError {\n return isObject(e) && !!(e && e.stack && e.statusCode && e.message && e.name);\n}\n\n/**\n * Thrown when a resource cannot be found.\n */\nexport class NotFoundError extends Error implements HttpError {\n readonly statusCode = HttpStatusCode.NOT_FOUND;\n /**\n * The max-age value to set in the Cache-Control header if used in a middleware.\n */\n readonly maxAge?: number;\n constructor(message?: string, maxAge?: number) {\n message = message ?? 'Not found';\n super(message);\n this.name = 'NotFoundError';\n this.maxAge = maxAge;\n }\n}\n\n/**\n * Checks if the given parameter is a NotFoundError.\n *\n * @param e The parameter to check\n */\nexport function isNotFoundError(e?: unknown): e is NotFoundError {\n return isHttpError(e) && e.name === 'NotFoundError';\n}\n\n/**\n * Thrown when a request is missing authentication credentials.\n */\nexport class UnauthorizedError extends Error implements HttpError {\n readonly statusCode = HttpStatusCode.UNAUTHORIZED;\n constructor(message?: string) {\n message = message ?? 'Unauthorized';\n super(message);\n this.name = 'UnauthorizedError';\n }\n}\n\n/**\n * Checks if the given parameter is a UnauthorizedError.\n *\n * @param e The parameter to check\n */\nexport function isUnauthorizedError(e?: unknown): e is UnauthorizedError {\n return isHttpError(e) && e.name === 'UnauthorizedError';\n}\n\n/**\n * Thrown when credentials are present, but the requested operations is not allowed.\n */\nexport class ForbiddenError extends Error implements HttpError {\n readonly statusCode = HttpStatusCode.FORBIDDEN;\n constructor(message?: string) {\n message = message ?? 'Forbidden';\n super(message);\n this.name = 'ForbiddenError';\n }\n}\n\n/**\n * Checks if the given parameter is a ForbiddenError.\n *\n * @param e The parameter to check\n */\nexport function isForbiddenError(e?: unknown): e is ForbiddenError {\n return isHttpError(e) && e.name === 'ForbiddenError';\n}\n\n/**\n * Thrown when a validation error occurs.\n */\nexport class ValidationError extends Error implements HttpError {\n readonly statusCode = HttpStatusCode.BAD_REQUEST;\n constructor(message?: string) {\n message = message ?? 'Validation error';\n super(message);\n this.name = 'ValidationError';\n }\n}\n\n/**\n * Checks if the given variable is a ValidationError.\n *\n * @param e The variable to check\n */\nexport function isValidationError(e?: unknown): e is ValidationError {\n return isHttpError(e) && e.name === 'ValidationError';\n}\n\n/**\n * Thrown when a bad request is made.\n */\nexport class BadRequestError extends Error implements HttpError {\n readonly statusCode = HttpStatusCode.BAD_REQUEST;\n constructor(message?: string) {\n message = message ?? 'Bad request';\n super(message ?? 'Bad request');\n this.name = 'BadRequestError';\n }\n}\n\n/**\n * Checks if the given parameter is a BadRequestError.\n *\n * @param e The parameter to check\n */\nexport function isBadRequestError(e?: unknown): e is BadRequestError {\n return isHttpError(e) && e.name === 'BadRequestError';\n}\n\n/**\n * Throws when an internal server error occurs.\n */\nexport class InternalServerError extends Error implements HttpError {\n readonly statusCode = HttpStatusCode.INTERNAL_SERVER_ERROR;\n constructor(message?: string) {\n message = message ?? 'Internal server error';\n super(message);\n this.name = 'InternalServerError';\n }\n}\n\n/**\n * Checks if the given parameter is a InternalServerError.\n *\n * @param e The parameter to check\n */\nexport function isInternalServerError(e?: unknown): e is InternalServerError {\n return isHttpError(e) && e.name === 'InternalServerError';\n}\n\n/**\n * Thrown when a conflict occurs.\n */\nexport class ConflictError extends Error implements HttpError {\n readonly statusCode = HttpStatusCode.CONFLICT;\n constructor(message?: string) {\n message = message ?? 'Conflict';\n super(message);\n this.name = 'ConflictError';\n }\n}\n\n/**\n * Checks if the given parameter is a ConflictError.\n *\n * @param e The parameter to check\n */\nexport function isConflictError(e?: unknown): e is ConflictError {\n return isHttpError(e) && e.name === 'ConflictError';\n}\n\n/**\n * Thrown when a unsupported media type is used.\n */\nexport class UnsupportedMediaTypeError extends Error implements HttpError {\n readonly statusCode = HttpStatusCode.UNSUPPORTED_MEDIA_TYPE;\n constructor(message?: string) {\n message = message ?? 'Unsupported media type';\n super(message);\n this.name = 'UnsupportedMediaTypeError';\n }\n}\n\n/**\n * Checks if the given parameter is a UnsupportedMediaTypeError.\n *\n * @param e The parameter to check\n */\nexport function isUnsupportedMediaTypeError(\n e?: unknown\n): e is UnsupportedMediaTypeError {\n return isHttpError(e) && e.name === 'UnsupportedMediaTypeError';\n}\n\n/**\n * Thrown when a requested operation is not implemented.\n */\nexport class NotImplementedError extends Error implements HttpError {\n readonly statusCode = HttpStatusCode.NOT_IMPLEMENTED;\n readonly expose = true;\n constructor(message?: string) {\n message = message ?? 'Not implemented';\n super(message);\n this.name = 'NotImplementedError';\n }\n}\n\n/**\n * Checks if the given parameter is a NotImplementedError.\n *\n * @param e The parameter to check\n */\nexport function isNotImplementedError(e?: unknown): e is NotImplementedError {\n return isHttpError(e) && e.name === 'NotImplementedError';\n}\n\n/**\n * Thrown when an illegal argument is passed to a function.\n */\nexport class IllegalArgumentError extends Error {\n readonly argName: string;\n constructor(argName: string, message?: string) {\n message = message ?? `Illegal argument ${argName}`;\n super(message);\n this.argName = argName;\n this.name = 'IllegalArgumentError';\n }\n}\n\n/**\n * Checks if the given parameter is a IllegalArgumentError.\n *\n * @param e The parameter to check\n */\nexport function isIllegalArgumentError(e?: unknown): e is IllegalArgumentError {\n return isError(e) && e.name === 'IllegalArgumentError';\n}\n\n/**\n * Converts the given parameter to an HttpError.\n *\n * @param code The HTTP status code\n * @param message The error message\n */\nexport function toError(\n code: number | HttpStatusCode,\n message?: string\n): Error {\n switch (code) {\n case HttpStatusCode.NOT_FOUND:\n return new NotFoundError(message);\n case HttpStatusCode.FORBIDDEN:\n return new ForbiddenError(message);\n case HttpStatusCode.BAD_REQUEST:\n return new BadRequestError(message);\n case HttpStatusCode.INTERNAL_SERVER_ERROR:\n return new InternalServerError(message);\n case HttpStatusCode.CONFLICT:\n return new ConflictError(message);\n case HttpStatusCode.UNSUPPORTED_MEDIA_TYPE:\n return new UnsupportedMediaTypeError(message);\n case HttpStatusCode.NOT_IMPLEMENTED:\n return new NotImplementedError(message);\n default:\n return new Error(message);\n }\n}\n"]}
1
+ {"version":3,"file":"errors.mjs","sourceRoot":"","sources":["../../src/errors/errors.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=errors.test.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.d.mts","sourceRoot":"","sources":["../../src/errors/errors.test.mts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ import { test, expect } from 'vitest';
2
+ import { BadRequestError, ForbiddenError, InternalServerError, isBadRequestError, isForbiddenError, isInternalServerError, isNotFoundError, isValidationError, NotFoundError, toError, ValidationError, } from './errors.mjs';
3
+ import { HttpStatusCode } from '../http/index.mjs';
4
+ test('Test isNotFoundError', () => {
5
+ expect(isNotFoundError(undefined)).toBeFalsy();
6
+ expect(isNotFoundError(null)).toBeFalsy();
7
+ expect(isNotFoundError({})).toBeFalsy();
8
+ expect(isNotFoundError(new ForbiddenError('just a test'))).toBeFalsy();
9
+ expect(isNotFoundError(new NotFoundError('just a test'))).toBeTruthy();
10
+ });
11
+ test('Test isForbiddenError', () => {
12
+ expect(isForbiddenError(undefined)).toBeFalsy();
13
+ expect(isForbiddenError(null)).toBeFalsy();
14
+ expect(isForbiddenError({})).toBeFalsy();
15
+ expect(isForbiddenError(new NotFoundError('just a test'))).toBeFalsy();
16
+ expect(isForbiddenError(new ForbiddenError('just a test'))).toBeTruthy();
17
+ });
18
+ test('Test isValidationError', () => {
19
+ expect(isValidationError(undefined)).toBeFalsy();
20
+ expect(isValidationError(null)).toBeFalsy();
21
+ expect(isValidationError({})).toBeFalsy();
22
+ expect(isValidationError(new NotFoundError('just a test'))).toBeFalsy();
23
+ expect(isValidationError(new ValidationError('just a test'))).toBeTruthy();
24
+ });
25
+ test('Test isBadRequestError', () => {
26
+ expect(isBadRequestError(undefined)).toBeFalsy();
27
+ expect(isBadRequestError(null)).toBeFalsy();
28
+ expect(isBadRequestError({})).toBeFalsy();
29
+ expect(isBadRequestError(new NotFoundError('just a test'))).toBeFalsy();
30
+ expect(isBadRequestError(new BadRequestError('just a test'))).toBeTruthy();
31
+ });
32
+ test('Test isInternalServerError', () => {
33
+ expect(isInternalServerError(undefined)).toBeFalsy();
34
+ expect(isInternalServerError(null)).toBeFalsy();
35
+ expect(isInternalServerError({})).toBeFalsy();
36
+ expect(isInternalServerError(new NotFoundError('just a test'))).toBeFalsy();
37
+ expect(isInternalServerError(new InternalServerError('just a test'))).toBeTruthy();
38
+ });
39
+ test('Test toError', () => {
40
+ expect(isNotFoundError(toError(HttpStatusCode.NOT_FOUND, 'some message'))).toBeTruthy();
41
+ expect(isForbiddenError(toError(HttpStatusCode.FORBIDDEN, 'some message'))).toBeTruthy();
42
+ expect(isBadRequestError(toError(HttpStatusCode.BAD_REQUEST, 'some message'))).toBeTruthy();
43
+ expect(isInternalServerError(toError(HttpStatusCode.INTERNAL_SERVER_ERROR, 'some message'))).toBeTruthy();
44
+ });
45
+ //# sourceMappingURL=errors.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.mjs","sourceRoot":"","sources":["../../src/errors/errors.test.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/errors/index.mts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from './errors.mjs';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/errors/index.mts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-method.mjs","sourceRoot":"","sources":["../../src/http/http-method.mts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,iCAAmB,CAAA;AACrB,CAAC,EARW,UAAU,KAAV,UAAU,QAQrB","sourcesContent":["export enum HttpMethod {\n GET = 'GET',\n POST = 'POST',\n PUT = 'PUT',\n PATCH = 'PATCH',\n DELETE = 'DELETE',\n HEAD = 'HEAD',\n OPTIONS = 'OPTIONS',\n}\n"]}
1
+ {"version":3,"file":"http-method.mjs","sourceRoot":"","sources":["../../src/http/http-method.mts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,iCAAmB,CAAA;AACrB,CAAC,EARW,UAAU,KAAV,UAAU,QAQrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-status-code.mjs","sourceRoot":"","sources":["../../src/http/http-status-code.mts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAyCX;AAzCD,WAAY,cAAc;IACxB,6DAAc,CAAA;IACd,mFAAyB,CAAA;IACzB,iDAAQ,CAAA;IACR,2DAAa,CAAA;IACb,6DAAc,CAAA;IACd,uGAAmC,CAAA;IACnC,iEAAgB,CAAA;IAChB,uEAAmB,CAAA;IACnB,2EAAqB,CAAA;IACrB,6EAAsB,CAAA;IACtB,iFAAwB,CAAA;IACxB,uDAAW,CAAA;IACX,+DAAe,CAAA;IACf,qEAAkB,CAAA;IAClB,+DAAe,CAAA;IACf,iFAAwB,CAAA;IACxB,mEAAiB,CAAA;IACjB,qEAAkB,CAAA;IAClB,6EAAsB,CAAA;IACtB,+DAAe,CAAA;IACf,+DAAe,CAAA;IACf,iFAAwB,CAAA;IACxB,yEAAoB,CAAA;IACpB,uGAAmC,CAAA;IACnC,2EAAqB,CAAA;IACrB,6DAAc,CAAA;IACd,qDAAU,CAAA;IACV,2EAAqB,CAAA;IACrB,mFAAyB,CAAA;IACzB,6FAA8B,CAAA;IAC9B,qFAA0B,CAAA;IAC1B,yFAA4B,CAAA;IAC5B,uFAA2B,CAAA;IAC3B,iFAAwB,CAAA;IACxB,uFAA2B,CAAA;IAC3B,2EAAqB,CAAA;IACrB,mEAAiB,CAAA;IACjB,mFAAyB,CAAA;IACzB,2EAAqB,CAAA;IACrB,iGAAgC,CAAA;AAClC,CAAC,EAzCW,cAAc,KAAd,cAAc,QAyCzB","sourcesContent":["export enum HttpStatusCode {\n CONTINUE = 100,\n SWITCHING_PROTOCOLS = 101,\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NON_AUTHORITATIVE_INFORMATION = 203,\n NO_CONTENT = 204,\n RESET_CONTENT = 205,\n PARTIAL_CONTENT = 206,\n MULTIPLE_CHOICES = 300,\n PERMANENT_REDIRECT = 301,\n FOUND = 302,\n SEE_OTHER = 303,\n NOT_MODIFIED = 304,\n USE_PROXY = 305,\n TEMPORARY_REDIRECT = 307,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n PAYMENT_REQUIRED = 402,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n METHOD_NOT_ALLOWED = 405,\n NOT_ACCEPTABLE = 406,\n PROXY_AUTHENTICATION_REQUIRED = 407,\n REQUEST_TIMEOUT = 408,\n CONFLICT = 409,\n GONE = 410,\n LENGTH_REQUIRED = 411,\n PRECONDITION_FAILED = 412,\n REQUEST_ENTITY_TOO_LARGE = 413,\n REQUEST_URI_TOO_LONG = 414,\n UNSUPPORTED_MEDIA_TYPE = 415,\n RANGE_NOT_SATISFIABLE = 416,\n EXPECTATION_FAILED = 417,\n INTERNAL_SERVER_ERROR = 500,\n NOT_IMPLEMENTED = 501,\n BAD_GATEWAY = 502,\n SERVICE_UNAVAILABLE = 503,\n GATEWAY_TIMEOUT = 504,\n HTTP_VERSION_NOT_SUPPORTED = 505,\n}\n"]}
1
+ {"version":3,"file":"http-status-code.mjs","sourceRoot":"","sources":["../../src/http/http-status-code.mts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAyCX;AAzCD,WAAY,cAAc;IACxB,6DAAc,CAAA;IACd,mFAAyB,CAAA;IACzB,iDAAQ,CAAA;IACR,2DAAa,CAAA;IACb,6DAAc,CAAA;IACd,uGAAmC,CAAA;IACnC,iEAAgB,CAAA;IAChB,uEAAmB,CAAA;IACnB,2EAAqB,CAAA;IACrB,6EAAsB,CAAA;IACtB,iFAAwB,CAAA;IACxB,uDAAW,CAAA;IACX,+DAAe,CAAA;IACf,qEAAkB,CAAA;IAClB,+DAAe,CAAA;IACf,iFAAwB,CAAA;IACxB,mEAAiB,CAAA;IACjB,qEAAkB,CAAA;IAClB,6EAAsB,CAAA;IACtB,+DAAe,CAAA;IACf,+DAAe,CAAA;IACf,iFAAwB,CAAA;IACxB,yEAAoB,CAAA;IACpB,uGAAmC,CAAA;IACnC,2EAAqB,CAAA;IACrB,6DAAc,CAAA;IACd,qDAAU,CAAA;IACV,2EAAqB,CAAA;IACrB,mFAAyB,CAAA;IACzB,6FAA8B,CAAA;IAC9B,qFAA0B,CAAA;IAC1B,yFAA4B,CAAA;IAC5B,uFAA2B,CAAA;IAC3B,iFAAwB,CAAA;IACxB,uFAA2B,CAAA;IAC3B,2EAAqB,CAAA;IACrB,mEAAiB,CAAA;IACjB,mFAAyB,CAAA;IACzB,2EAAqB,CAAA;IACrB,iGAAgC,CAAA;AAClC,CAAC,EAzCW,cAAc,KAAd,cAAc,QAyCzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/http/index.mts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC","sourcesContent":["export * from './http-status-code.mjs';\nexport * from './http-method.mjs';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/http/index.mts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function deepEquals(object1: unknown, object2: unknown): boolean;
2
+ //# sourceMappingURL=equality.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equality.d.mts","sourceRoot":"","sources":["../../src/lang/equality.mts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,WA4B5D"}
@@ -0,0 +1,27 @@
1
+ import { isObject } from './type-functions.mjs';
2
+ export function deepEquals(object1, object2) {
3
+ if (object1 === undefined ||
4
+ object2 === undefined ||
5
+ object1 === null ||
6
+ object2 === null) {
7
+ return false;
8
+ }
9
+ const obj1 = object1;
10
+ const obj2 = object2;
11
+ const keys1 = Object.keys(obj1);
12
+ const keys2 = Object.keys(obj2);
13
+ if (keys1.length !== keys2.length) {
14
+ return false;
15
+ }
16
+ for (const key of keys1) {
17
+ const val1 = obj1[key];
18
+ const val2 = obj2[key];
19
+ const areObjects = isObject(val1) && isObject(val2);
20
+ if ((areObjects && !deepEquals(val1, val2)) ||
21
+ (!areObjects && val1 !== val2)) {
22
+ return false;
23
+ }
24
+ }
25
+ return true;
26
+ }
27
+ //# sourceMappingURL=equality.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equality.mjs","sourceRoot":"","sources":["../../src/lang/equality.mts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAE9C,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,OAAgB;IAC3D,IACE,OAAO,KAAK,SAAS;QACrB,OAAO,KAAK,SAAS;QACrB,OAAO,KAAK,IAAI;QAChB,OAAO,KAAK,IAAI,EAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,OAAmC,CAAC;IACjD,MAAM,IAAI,GAAG,OAAmC,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IACE,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,UAAU,IAAI,IAAI,KAAK,IAAI,CAAC,EAC9B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=equality.test.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equality.test.d.mts","sourceRoot":"","sources":["../../src/lang/equality.test.mts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { test, expect } from 'vitest';
2
+ import { deepEquals } from './equality.mjs';
3
+ test('Test deepEquals', () => {
4
+ expect(deepEquals('bar', 'bar')).toBeTruthy();
5
+ expect(deepEquals('bar', 'baz')).toBeFalsy();
6
+ expect(deepEquals({ bar: 'baz', foo: 'bar' }, { foo: 'bar', bar: 'baz' })).toBeTruthy();
7
+ expect(deepEquals('bar', 'baz')).toBeFalsy();
8
+ expect(deepEquals(['bar', 'baz'], ['baz', 'bar'])).toBeFalsy();
9
+ expect(deepEquals(['bar', 'baz'], ['bar', 'baz', 'foo'])).toBeFalsy();
10
+ expect(deepEquals('bar', undefined)).toBeFalsy();
11
+ expect(deepEquals('bar', null)).toBeFalsy();
12
+ expect(deepEquals(undefined, 'bar')).toBeFalsy();
13
+ expect(deepEquals(null, 'baz')).toBeFalsy();
14
+ });
15
+ //# sourceMappingURL=equality.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equality.test.mjs","sourceRoot":"","sources":["../../src/lang/equality.test.mts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE1C,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC3B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9C,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC7C,MAAM,CACJ,UAAU,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAC,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAC,CAAC,CAC/D,CAAC,UAAU,EAAE,CAAC;IACf,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/D,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACtE,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACjD,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC5C,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACjD,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AAC9C,CAAC,CAAC,CAAC"}
package/lang/index.d.mts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './equality.mjs';
1
2
  export * from './type-functions.mjs';
2
3
  export * from './sleep.mjs';
3
4
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/lang/index.mts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/lang/index.mts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC"}
package/lang/index.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './equality.mjs';
1
2
  export * from './type-functions.mjs';
2
3
  export * from './sleep.mjs';
3
4
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/lang/index.mts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC","sourcesContent":["export * from './type-functions.mjs';\nexport * from './sleep.mjs';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/lang/index.mts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC"}
package/lang/sleep.mjs CHANGED
@@ -4,6 +4,6 @@
4
4
  * @param ms the number of milliseconds to sleep
5
5
  */
6
6
  export function sleep(ms) {
7
- return new Promise(resolve => setTimeout(resolve, ms));
7
+ return new Promise((resolve) => setTimeout(resolve, ms));
8
8
  }
9
9
  //# sourceMappingURL=sleep.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sleep.mjs","sourceRoot":"","sources":["../../src/lang/sleep.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC","sourcesContent":["/**\n * Sleep for a given amount of time\n *\n * @param ms the number of milliseconds to sleep\n */\nexport function sleep(ms: number) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n"]}
1
+ {"version":3,"file":"sleep.mjs","sourceRoot":"","sources":["../../src/lang/sleep.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"type-functions.mjs","sourceRoot":"","sources":["../../src/lang/type-functions.mts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,OAAO,CACL,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAa;IACnC,OAAO,IAAI,YAAY,KAAK,CAAC;AAC/B,CAAC","sourcesContent":["export function isObject(item: unknown): item is Record<string, unknown> {\n return (\n item !== null && typeof item === 'object' && Array.isArray(item) === false\n );\n}\n\nexport function isString(item: unknown): item is string {\n return typeof item === 'string';\n}\n\nexport function isError(item: unknown): item is Error {\n return item instanceof Error;\n}\n"]}
1
+ {"version":3,"file":"type-functions.mjs","sourceRoot":"","sources":["../../src/lang/type-functions.mts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,OAAO,CACL,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAa;IACnC,OAAO,IAAI,YAAY,KAAK,CAAC;AAC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"crypto-functions.mjs","sourceRoot":"","sources":["../../src/oauth/crypto-functions.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;QAC3C,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;QAC3C,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;QAC3C,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import * as crypto from 'crypto';\nimport {tob64s} from '../bitsnbytes/index.mjs';\n\n/**\n * Generates a state string for use with OAuth2.0 authorization requests.\n *\n * @param len The length of the state string in bytes. Defaults to 16 bytes.\n */\nexport function generateState(len?: number): string {\n if (len && len < 16) {\n throw new Error('State must be at least 16 bytes');\n }\n return tob64s(crypto.randomBytes(len ?? 16), {\n b64chars: 'url',\n });\n}\n\n/**\n * Generates a nonce string for use with OAuth2.0 authorization requests.\n *\n * @param len The length of the state string in bytes. Defaults to 16 bytes.\n */\nexport function generateNonce(len?: number): string {\n if (len && len < 16) {\n throw new Error('Nonce must be at least 16 bytes');\n }\n return tob64s(crypto.randomBytes(len ?? 16), {\n b64chars: 'url',\n });\n}\n\n/**\n * Generates a secret string for use with OAuth2.0 authorization requests.\n *\n * @param len The length of the state string in bytes. Defaults to 32 bytes.\n */\nexport function generateSecret(len?: number): string {\n if (len && len < 32) {\n throw new Error('Secret must be at least 32 bytes');\n }\n return tob64s(crypto.randomBytes(len ?? 32), {\n b64chars: 'url',\n });\n}\n"]}
1
+ {"version":3,"file":"crypto-functions.mjs","sourceRoot":"","sources":["../../src/oauth/crypto-functions.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;QAC3C,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;QAC3C,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;QAC3C,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=crypto-functions.test.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-functions.test.d.mts","sourceRoot":"","sources":["../../src/oauth/crypto-functions.test.mts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ import { test, expect } from 'vitest';
2
+ import { generateNonce, generateSecret, generateState, } from './crypto-functions.mjs';
3
+ test('Test generateState', () => {
4
+ const state = generateState();
5
+ expect(state).toMatch(/^[A-Za-z0-9_-]{22}$/);
6
+ });
7
+ test('Test generateState with custom length', () => {
8
+ const state = generateState(32);
9
+ expect(state).toMatch(/^[A-Za-z0-9_-]{43}$/);
10
+ });
11
+ test('Test generateState with invalid length', () => {
12
+ expect(() => generateState(10)).toThrow('State must be at least 16 bytes');
13
+ });
14
+ test('Test generateNonce', () => {
15
+ const nonce = generateNonce();
16
+ expect(nonce).toMatch(/^[A-Za-z0-9_-]{22}$/);
17
+ });
18
+ test('Test generateNonce with custom length', () => {
19
+ const nonce = generateNonce(32);
20
+ expect(nonce).toMatch(/^[A-Za-z0-9_-]{43}$/);
21
+ });
22
+ test('Test generateNonce with invalid length', () => {
23
+ expect(() => generateNonce(10)).toThrow('Nonce must be at least 16 bytes');
24
+ });
25
+ test('Test generateSecret', () => {
26
+ const secret = generateSecret();
27
+ expect(secret).toMatch(/^[A-Za-z0-9_-]{43}$/);
28
+ });
29
+ test('Test generateSecret with custom length', () => {
30
+ const secret = generateSecret(64);
31
+ expect(secret).toMatch(/^[A-Za-z0-9_-]{86}$/);
32
+ });
33
+ test('Test generateSecret with invalid length', () => {
34
+ expect(() => generateSecret(10)).toThrow('Secret must be at least 32 bytes');
35
+ });
36
+ //# sourceMappingURL=crypto-functions.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-functions.test.mjs","sourceRoot":"","sources":["../../src/oauth/crypto-functions.test.mts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC9B,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACjD,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;IAClD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC9B,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACjD,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;IAClD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAC/B,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;IAClD,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACnD,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/oauth/index.mts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC","sourcesContent":["export * from './crypto-functions.mjs';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/oauth/index.mts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nr1e/commons",
3
- "description": "Provides common patterns for validation",
4
- "version": "0.1.3-alpha.1",
3
+ "description": "Common utilities for TypeScript projects",
4
+ "version": "0.2.0-beta.1733341514",
5
5
  "type": "module",
6
6
  "author": "NR1E, Inc.",
7
7
  "publishConfig": {
@@ -20,16 +20,18 @@
20
20
  "**"
21
21
  ],
22
22
  "devDependencies": {
23
- "@types/node": "20.14.2",
24
- "@vitest/coverage-v8": "^1.6.0",
25
- "gts": "^5.3.1",
26
- "ts-node": "^10.9.2",
27
- "typedoc": "^0.25.13",
28
- "typescript": "~5.4.5",
29
- "vitest": "^1.6.0"
23
+ "@eslint/js": "^9.16.0",
24
+ "@types/node": "^22.10.1",
25
+ "@vitest/coverage-v8": "^2.1.8",
26
+ "eslint": "^9.16.0",
27
+ "prettier": "^3.4.2",
28
+ "typedoc": "^0.27.3",
29
+ "typescript": "^5.7.2",
30
+ "typescript-eslint": "^8.17.0",
31
+ "vitest": "^2.1.8"
30
32
  },
31
33
  "dependencies": {
32
- "tslib": "^2.6.3"
34
+ "tslib": "^2.8.1"
33
35
  },
34
36
  "exports": {
35
37
  "./bitsnbytes": {
@@ -59,13 +61,12 @@
59
61
  }
60
62
  },
61
63
  "scripts": {
64
+ "prebuild": "prettier --check . && eslint .",
62
65
  "build": "tsc",
63
- "postbuild": "prettier --check . && gts lint && cp package.json dist",
66
+ "postbuild": "cp package.json README.md dist",
64
67
  "watch": "tsc -w",
65
68
  "test": "vitest run --coverage",
66
- "lint": "gts lint",
67
69
  "clean": "rm -rf dist && rm -rf site && rm -rf coverage",
68
- "fix": "gts fix",
69
70
  "fmt": "prettier --write .",
70
71
  "site": "typedoc --out site \"src/**/*.mts\" --exclude \"src/**/*.test.*\""
71
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/validator/index.mts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './validators.mjs';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/validator/index.mts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -291,12 +291,19 @@ export function validString(name, options, value) {
291
291
  if (!isString(value)) {
292
292
  throw new ValidationError(`${name} must be a string`);
293
293
  }
294
- options.minLength && minLength(name, options.minLength, value);
295
- options.maxLength && maxLength(name, options.maxLength, value);
296
- options.regex && match(name, options.regex, value);
297
- options.notBlank && notBlank(name, value);
298
- options.notEmpty && notEmpty(name, value);
299
- options.email && email(name, value);
300
- options.number && number(name, value);
294
+ if (options.minLength)
295
+ minLength(name, options.minLength, value);
296
+ if (options.maxLength)
297
+ maxLength(name, options.maxLength, value);
298
+ if (options.regex)
299
+ match(name, options.regex, value);
300
+ if (options.notBlank)
301
+ notBlank(name, value);
302
+ if (options.notEmpty)
303
+ notEmpty(name, value);
304
+ if (options.email)
305
+ email(name, value);
306
+ if (options.number)
307
+ number(name, value);
301
308
  }
302
309
  //# sourceMappingURL=validators.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.mjs","sourceRoot":"","sources":["../../src/validator/validators.mts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,CAAW;IACnC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CACrB,IAAY,EACZ,CAAW;IAEX,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,+BAA+B,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,CAAW;IACpC,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,CAAW;IAEX,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,CAAW;IACpC,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,CAAW;IAEX,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,CAAiB;IACtD,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AACjC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,KAAa,EAAE,CAAiB;IAClE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,eAAe,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,CAAiB;IACvC,MAAM,UAAU,GACd,4LAA4L,CAAC;IAC/L,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,CAAiB;IACnD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,+BAA+B,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,CAA6B;IACvE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,MAAc,EACd,CAA6B;IAE7B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CAAC,aAAa,IAAI,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,CAA6B;IACvE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,MAAc,EACd,CAA6B;IAE7B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CACvB,aAAa,IAAI,yBAAyB,MAAM,EAAE,CACnD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,CAA0B;IACjD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,CAA0B;IAC7D,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,kBAAkB,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,CAA0B;IACrE,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC;AACzD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,QAAgB,EAChB,CAA0B;IAE1B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,QAAgB,EAChB,CAA0B;IAE1B,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,QAAgB,EAChB,CAA0B;IAE1B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,QAAgB,EAChB,CAA0B;IAE1B,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,QAAgB,EAChB,QAAgB,EAChB,CAA0B;IAE1B,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,eAAe,CACvB,GAAG,IAAI,oBAAoB,QAAQ,QAAQ,QAAQ,EAAE,CACtD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;AAahF,MAAM,UAAU,aAAa,CAC3B,OAAgC,EAChC,KAAe;IAEf,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,OAAgC,EAChC,KAAe;IAEf,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO;IACT,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/D,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC","sourcesContent":["import {ValidationError} from '../errors/index.mjs';\n\n/**\n * Tests if a value is null or undefined.\n *\n * @param o the value to check\n */\nexport function isNotNull(o?: unknown): o is NonNullable<unknown> {\n return o !== undefined && o !== null;\n}\n\n/**\n * Throws a ValidationError if the value is null or undefined.\n * This function also asserts the value to be NonNullable if the check passes.\n *\n * @param name the name of the variable\n * @param o the value to check\n */\nexport function notNull(\n name: string,\n o?: unknown\n): asserts o is NonNullable<unknown> {\n if (!isNotNull(o)) {\n throw new ValidationError(`${name} may not be null or undefined`);\n }\n}\n\n/**\n * Tests if a value is empty, null, undefined or has a length of 0.\n *\n * @param o the value to check\n */\nexport function isNotEmpty(o?: unknown): o is NonNullable<unknown> {\n return !(o === undefined || o === null || o.toString().length === 0);\n}\n\n/**\n * Throws a ValidationError if the value is null, undefined or the length is 0.\n * This function also asserts the value to be NonNullable if the check passes.\n *\n * @param name the name of the variable\n * @param o the value to check\n */\nexport function notEmpty(\n name: string,\n o?: unknown\n): asserts o is NonNullable<unknown> {\n if (!isNotEmpty(o)) {\n throw new ValidationError(`${name} may not be empty`);\n }\n}\n\n/**\n * Tests if a value is null, undefined, has a length of 0 or contains only whitespace.\n *\n * @param o the value to check\n */\nexport function isNotBlank(o?: unknown): o is NonNullable<unknown> {\n return !(o === undefined || o === null || o.toString().trim().length === 0);\n}\n\n/**\n * Throws a ValidationError if the value is null, undefined, has a length of 0 or contains only whitespace.\n * This function also asserts the value to be NonNullable if the check passes.\n *\n * @param name the name of the variable\n * @param o the value to check\n */\nexport function notBlank(\n name: string,\n o?: unknown\n): asserts o is NonNullable<unknown> {\n if (!isNotBlank(o)) {\n throw new ValidationError(`${name} may not be blank`);\n }\n}\n\n/**\n * Tests if a value does not match the regular expression provided.\n * Undefined and null values are skipped and not tested.\n *\n * @param regex the regular expression to test with\n * @param o the value to check\n */\nexport function isMatch(regex: RegExp, o?: string | null): o is string {\n if (o === undefined || o === null) {\n return true;\n }\n return o.match(regex) !== null;\n}\n\n/**\n * Throws a ValidationError if the value matches the regular expression provided.\n * Undefined and null values are skipped and not validated.\n *\n * @param name the name of the variable\n * @param regex the regular expression to validate with\n * @param o the value to check\n */\nexport function match(name: string, regex: RegExp, o?: string | null) {\n if (!isMatch(regex, o)) {\n throw new ValidationError(`${name} must match ${regex}`);\n }\n}\n\n/**\n * Tests if a value is a valid email address.\n * Undefined and null values are skipped and not validated.\n *\n * @param o the value to check\n */\nexport function isEmail(o?: string | null): o is string {\n const expression =\n /^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/;\n return !(o !== undefined && o !== null && !expression.test(o));\n}\n\n/**\n * Throws a ValidationError if the value provided is not an email.\n * Undefined and null values are skipped and not validated.\n *\n * @param name the name of the variable\n * @param o the value to check\n */\nexport function email(name: string, o?: string | null) {\n if (!isEmail(o)) {\n throw new ValidationError(`${name} is not a valid email address`);\n }\n}\n\n/**\n * Tests if a value has a length that is less than the provided length.\n * Undefined and null values are skipped and not validated.\n *\n * @param length the maximum length of the variable\n * @param o the value to check\n */\nexport function isMaxLength(length: number, o?: string | unknown[] | null) {\n return !(o !== undefined && o !== null && o.length > length);\n}\n\n/**\n * Throws a ValidationError if the value provided has a length that exceeds the provided length.\n * Undefined and null values are skipped and not validated.\n *\n * @param name the name of the variable\n * @param length the maximum length of the variable\n * @param o the value to check\n */\nexport function maxLength(\n name: string,\n length: number,\n o?: string | unknown[] | null\n) {\n if (!isMaxLength(length, o)) {\n throw new ValidationError(`length of ${name} may not exceed ${length}`);\n }\n}\n\n/**\n * Tests if a value has a length that is greater than the provided length.\n * Undefined and null values are skipped and not validated.\n *\n * @param length the minimum length of the variable\n * @param o the value to check\n */\nexport function isMinLength(length: number, o?: string | unknown[] | null) {\n return !(o !== undefined && o !== null && o.length < length);\n}\n\n/**\n * Throws a ValidationError if the value provided has a length that is less than the provided length.\n * Undefined and null values are skipped and not validated.\n *\n * @param name the name of the variable\n * @param length the minimum length of the variable\n * @param o the value to check\n */\nexport function minLength(\n name: string,\n length: number,\n o?: string | unknown[] | null\n) {\n if (!isMinLength(length, o)) {\n throw new ValidationError(\n `length of ${name} may not be less than ${length}`\n );\n }\n}\n\n/**\n * Tests if a value provided is a number.\n * Undefined and null values are skipped and not validated.\n *\n * @param o the value to check\n */\nexport function isNumber(o?: string | null | number): boolean {\n return o === undefined || o === null || !isNaN(+o);\n}\n\n/**\n * Throws a ValidationError if the value provided is not a number.\n * Undefined and null values are skipped and not validated.\n *\n * @param name the name of the variable\n * @param o the value to check\n */\nexport function number(name: string, o?: string | null | number) {\n if (!isNumber(o)) {\n throw new ValidationError(`${name} is not a number`);\n }\n}\n\n/**\n * Tests if a value is less than the provided minimum value.\n * Undefined and null values are skipped and not validated.\n *\n * @param minValue the minimum value allowed\n * @param o the value to check\n */\nexport function isMinValue(minValue: number, o?: string | number | null) {\n return o === undefined || o === null || +o >= minValue;\n}\n\n/**\n * Throws a ValidationError if the value is less than the provided minimum value.\n * Undefined and null values are skipped and not validated.\n *\n * @param name the name of the variable\n * @param minValue the minimum value allowed\n * @param o the value to check\n */\nexport function minValue(\n name: string,\n minValue: number,\n o?: number | string | null\n) {\n if (!isMinValue(minValue, o)) {\n throw new ValidationError(`${name} may not be less than ${minValue}`);\n }\n}\n\n/**\n * Tests if a value is more than the provided maximum value.\n * Undefined and null values are skipped and not validated.\n *\n * @param maxValue the maximum value allowed\n * @param o the value to check\n */\nexport function isMaxValue(\n maxValue: number,\n o?: string | number | null\n): boolean {\n return !(o !== undefined && o !== null && +o > maxValue);\n}\n\n/**\n * Throws a ValidationError if the value is more than the provided maximum value.\n * Undefined and null values are skipped and not validated.\n *\n * @param name the name of the variable\n * @param maxValue the maximum value allowed\n * @param o the value to check\n */\nexport function maxValue(\n name: string,\n maxValue: number,\n o?: number | string | null\n) {\n if (!isMaxValue(maxValue, o)) {\n throw new ValidationError(`${name} may not be greater than ${maxValue}`);\n }\n}\n\n/**\n * Tests if the value is between the provided minimum and maximum values inclusive.\n * Undefined and null values are skipped and not validated.\n *\n * @param minValue the minimum value allowed\n * @param maxValue the maximum value allowed\n * @param o the value to check\n */\nexport function isBetweenValues(\n minValue: number,\n maxValue: number,\n o?: string | number | null\n): boolean {\n return !(o !== undefined && o !== null && (+o < minValue || +o > maxValue));\n}\n\n/**\n * Throws a ValidationError if the value is not between the provided minimum and maximum values inclusive.\n * Undefined and null values are skipped and not validated.\n *\n * @param name the name of the variable\n * @param minValue the minimum value allowed\n * @param maxValue the maximum value allowed\n * @param o the value to check\n */\nexport function betweenValues(\n name: string,\n minValue: number,\n maxValue: number,\n o?: string | number | null\n) {\n if (!isBetweenValues(minValue, maxValue, o)) {\n throw new ValidationError(\n `${name} must be between ${minValue} and ${maxValue}`\n );\n }\n}\n\nconst isString = (value: unknown): value is string => typeof value === 'string';\n\nexport interface StringValidationOptions {\n readonly required: boolean;\n readonly minLength?: number;\n readonly maxLength?: number;\n readonly regex?: RegExp;\n readonly notBlank?: boolean;\n readonly notEmpty?: boolean;\n readonly email?: boolean;\n readonly number?: boolean;\n}\n\nexport function isValidString(\n options: StringValidationOptions,\n value?: unknown\n): value is string {\n if (options.required) {\n if (!isNotNull(value)) {\n return false;\n }\n } else if (value === undefined || value === null) {\n return true;\n }\n if (!isString(value)) {\n return false;\n }\n if (options.minLength && !isMinLength(options.minLength, value)) {\n return false;\n }\n if (options.maxLength && !isMaxLength(options.maxLength, value)) {\n return false;\n }\n if (options.regex && !isMatch(options.regex, value)) {\n return false;\n }\n if (options.notBlank && !isNotBlank(value)) {\n return false;\n }\n if (options.notEmpty && !isNotEmpty(value)) {\n return false;\n }\n if (options.email && !isEmail(value)) {\n return false;\n }\n if (options.number && !isNumber(value)) {\n return false;\n }\n return true;\n}\n\nexport function validString(\n name: string,\n options: StringValidationOptions,\n value?: unknown\n): void {\n if (options.required) {\n notNull(name, value);\n } else if (value === undefined || value === null) {\n return;\n }\n if (!isString(value)) {\n throw new ValidationError(`${name} must be a string`);\n }\n options.minLength && minLength(name, options.minLength, value);\n options.maxLength && maxLength(name, options.maxLength, value);\n options.regex && match(name, options.regex, value);\n options.notBlank && notBlank(name, value);\n options.notEmpty && notEmpty(name, value);\n options.email && email(name, value);\n options.number && number(name, value);\n}\n"]}
1
+ {"version":3,"file":"validators.mjs","sourceRoot":"","sources":["../../src/validator/validators.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validators.test.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.test.d.mts","sourceRoot":"","sources":["../../src/validator/validators.test.mts"],"names":[],"mappings":""}
@@ -0,0 +1,177 @@
1
+ import { test, expect } from 'vitest';
2
+ import { betweenValues, email, number, maxLength, maxValue, minLength, minValue, notBlank, notEmpty, notNull, validString, isNotNull, isNotEmpty, isNotBlank, match, isMatch, isEmail, isMaxLength, isMinLength, isNumber, isMinValue, isMaxValue, isBetweenValues, isValidString, } from './validators.mjs';
3
+ test('Test isNotNull', () => {
4
+ expect(isNotNull('bar')).toBeTruthy();
5
+ expect(isNotNull(null)).toBeFalsy();
6
+ expect(isNotNull(undefined)).toBeFalsy();
7
+ });
8
+ test('Test notNull', () => {
9
+ notNull('foo', 'bar');
10
+ expect(() => notNull('foo', null)).toThrow('foo may not be null or undefined');
11
+ expect(() => notNull('foo', undefined)).toThrow('foo may not be null or undefined');
12
+ });
13
+ test('Test isNotEmpty', () => {
14
+ expect(isNotEmpty('bar')).toBeTruthy();
15
+ expect(isNotEmpty('')).toBeFalsy();
16
+ expect(isNotEmpty(null)).toBeFalsy();
17
+ expect(isNotEmpty(undefined)).toBeFalsy();
18
+ });
19
+ test('Test notEmpty', () => {
20
+ notEmpty('foo', 'bar');
21
+ expect(() => notEmpty('foo', '')).toThrow('foo may not be empty');
22
+ expect(() => notEmpty('foo', null)).toThrow('foo may not be empty');
23
+ expect(() => notEmpty('foo', undefined)).toThrow('foo may not be empty');
24
+ });
25
+ test('Test isNotBlank', () => {
26
+ expect(isNotBlank('bar')).toBeTruthy();
27
+ expect(isNotBlank(' ')).toBeFalsy();
28
+ expect(isNotBlank('')).toBeFalsy();
29
+ expect(isNotBlank(null)).toBeFalsy();
30
+ expect(isNotBlank(undefined)).toBeFalsy();
31
+ });
32
+ test('Test notBlank', () => {
33
+ notBlank('foo', 'bar');
34
+ expect(() => notBlank('foo', ' ')).toThrow('foo may not be blank');
35
+ expect(() => notBlank('foo', '')).toThrow('foo may not be blank');
36
+ expect(() => notBlank('foo', null)).toThrow('foo may not be blank');
37
+ expect(() => notBlank('foo', undefined)).toThrow('foo may not be blank');
38
+ });
39
+ test('Test isMatch', () => {
40
+ expect(isMatch(/bar/, 'bar')).toBeTruthy();
41
+ expect(isMatch(/bar/, null)).toBeTruthy();
42
+ expect(isMatch(/bar/, undefined)).toBeTruthy();
43
+ expect(isMatch(/bar/, 'baz')).toBeFalsy();
44
+ });
45
+ test('Test match', () => {
46
+ match('foo', /bar/, 'bar');
47
+ match('foo', /bar/, null);
48
+ match('foo', /bar/, undefined);
49
+ expect(() => match('foo', /bar/, 'baz')).toThrow('foo must match /bar/');
50
+ });
51
+ test('Test isEmail', () => {
52
+ expect(isEmail('test@example.com')).toBeTruthy();
53
+ expect(isEmail(null)).toBeTruthy();
54
+ expect(isEmail(undefined)).toBeTruthy();
55
+ expect(isEmail('test')).toBeFalsy();
56
+ });
57
+ test('Test email', () => {
58
+ email('foo', 'test@example.com');
59
+ email('foo', null);
60
+ email('foo', undefined);
61
+ expect(() => email('foo', 'test')).toThrow('foo is not a valid email address');
62
+ });
63
+ test('Test isMaxLength', () => {
64
+ const arr = [];
65
+ arr.push('a', 'b', 'c');
66
+ expect(isMaxLength(3, 'bar')).toBeTruthy();
67
+ expect(isMaxLength(3, null)).toBeTruthy();
68
+ expect(isMaxLength(3, undefined)).toBeTruthy();
69
+ expect(isMaxLength(3, arr)).toBeTruthy();
70
+ expect(isMaxLength(2, 'baz')).toBeFalsy();
71
+ expect(isMaxLength(2, arr)).toBeFalsy();
72
+ });
73
+ test('Test maxLength', () => {
74
+ const arr = [];
75
+ arr.push('a', 'b', 'c');
76
+ maxLength('foo', 3, 'bar');
77
+ maxLength('foo', 3, null);
78
+ maxLength('foo', 3, undefined);
79
+ maxLength('foo', 3, arr);
80
+ expect(() => maxLength('foo', 2, 'baz')).toThrow('length of foo may not exceed 2');
81
+ expect(() => maxLength('foo', 2, arr)).toThrow('length of foo may not exceed 2');
82
+ });
83
+ test('Test isMinLength', () => {
84
+ const arr = [];
85
+ arr.push('a', 'b', 'c');
86
+ expect(isMinLength(3, 'bar')).toBeTruthy();
87
+ expect(isMinLength(3, null)).toBeTruthy();
88
+ expect(isMinLength(3, undefined)).toBeTruthy();
89
+ expect(isMinLength(3, arr)).toBeTruthy();
90
+ expect(isMinLength(4, 'baz')).toBeFalsy();
91
+ expect(isMinLength(4, arr)).toBeFalsy();
92
+ });
93
+ test('Test minLength', () => {
94
+ const arr = [];
95
+ arr.push('a', 'b', 'c');
96
+ minLength('foo', 3, 'bar');
97
+ minLength('foo', 3, null);
98
+ minLength('foo', 3, undefined);
99
+ minLength('foo', 3, arr);
100
+ expect(() => minLength('foo', 4, 'baz')).toThrow('length of foo may not be less than 4');
101
+ expect(() => minLength('foo', 4, arr)).toThrow('length of foo may not be less than 4');
102
+ });
103
+ test('Test isNumber', () => {
104
+ expect(isNumber(1)).toBeTruthy();
105
+ expect(isNumber('1')).toBeTruthy();
106
+ expect(isNumber(null)).toBeTruthy();
107
+ expect(isNumber(undefined)).toBeTruthy();
108
+ expect(isNumber('bar')).toBeFalsy();
109
+ });
110
+ test('Test number', () => {
111
+ number('foo', 1);
112
+ number('foo', '1');
113
+ number('foo', null);
114
+ number('foo', undefined);
115
+ expect(() => number('foo', 'bar')).toThrow('foo is not a number');
116
+ });
117
+ test('Test isMinValue', () => {
118
+ expect(isMinValue(1, 2)).toBeTruthy();
119
+ expect(isMinValue(1, '2')).toBeTruthy();
120
+ expect(isMinValue(1, null)).toBeTruthy();
121
+ expect(isMinValue(1, undefined)).toBeTruthy();
122
+ expect(isMinValue(2, 1)).toBeFalsy();
123
+ });
124
+ test('Test minValue', () => {
125
+ minValue('foo', 1, 2);
126
+ minValue('foo', 1, '2');
127
+ minValue('foo', 1, null);
128
+ minValue('foo', 1, undefined);
129
+ expect(() => minValue('foo', 2, 1)).toThrow('foo may not be less than 2');
130
+ });
131
+ test('Test isMaxValue', () => {
132
+ expect(isMaxValue(2, 1)).toBeTruthy();
133
+ expect(isMaxValue(2, '1')).toBeTruthy();
134
+ expect(isMaxValue(2, null)).toBeTruthy();
135
+ expect(isMaxValue(2, undefined)).toBeTruthy();
136
+ expect(isMaxValue(1, 2)).toBeFalsy();
137
+ });
138
+ test('Test maxValue', () => {
139
+ maxValue('foo', 2, 1);
140
+ maxValue('foo', 2, '1');
141
+ maxValue('foo', 2, null);
142
+ maxValue('foo', 2, undefined);
143
+ expect(() => maxValue('foo', 1, 2)).toThrow('foo may not be greater than 1');
144
+ });
145
+ test('Test isBetweenValues', () => {
146
+ expect(isBetweenValues(1, 3, 2)).toBeTruthy();
147
+ expect(isBetweenValues(1, 3, '2')).toBeTruthy();
148
+ expect(isBetweenValues(1, 3, null)).toBeTruthy();
149
+ expect(isBetweenValues(1, 3, undefined)).toBeTruthy();
150
+ expect(isBetweenValues(1, 3, 4)).toBeFalsy();
151
+ });
152
+ test('Test betweenValues', () => {
153
+ betweenValues('foo', 1, 3, 2);
154
+ betweenValues('foo', 1, 3, '2');
155
+ betweenValues('foo', 1, 3, null);
156
+ betweenValues('foo', 1, 3, undefined);
157
+ expect(() => betweenValues('foo', 1, 3, 4)).toThrow('foo must be between 1 and 3');
158
+ });
159
+ test('Test isValidString', () => {
160
+ expect(isValidString({ required: true }, 'bar')).toBeTruthy();
161
+ expect(isValidString({ required: true }, ' ')).toBeTruthy();
162
+ expect(isValidString({ required: true }, '')).toBeTruthy();
163
+ expect(isValidString({ required: false }, null)).toBeTruthy();
164
+ expect(isValidString({ required: false }, undefined)).toBeTruthy();
165
+ expect(isValidString({ required: true }, null)).toBeFalsy();
166
+ expect(isValidString({ required: true }, undefined)).toBeFalsy();
167
+ });
168
+ test('Test validString', () => {
169
+ validString('foo', { required: true }, 'bar');
170
+ validString('foo', { required: true }, ' ');
171
+ validString('foo', { required: true }, '');
172
+ validString('foo', { required: false }, null);
173
+ validString('foo', { required: false }, undefined);
174
+ expect(() => validString('foo', { required: true }, null)).toThrow('foo may not be null or undefined');
175
+ expect(() => validString('foo', { required: true }, undefined)).toThrow('foo may not be null or undefined');
176
+ });
177
+ //# sourceMappingURL=validators.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.test.mjs","sourceRoot":"","sources":["../../src/validator/validators.test.mts"],"names":[],"mappings":"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"}