@tsed/jwks 8.11.1 → 8.11.2-rc.1

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.
@@ -29,4 +29,3 @@ export function getJwks(options) {
29
29
  }
30
30
  return JSON.parse(fs.readFileSync(options.path, { encoding: "utf-8" }));
31
31
  }
32
- //# sourceMappingURL=getJwks.js.map
package/lib/esm/index.js CHANGED
@@ -1,4 +1,3 @@
1
1
  export * from "./getJwks.js";
2
2
  // @ts-ignore
3
3
  export * from "jose2";
4
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@tsed/jwks",
3
3
  "description": "Utils to generate jwks pair keys",
4
4
  "type": "module",
5
- "version": "8.11.1",
5
+ "version": "8.11.2-rc.1",
6
6
  "source": "./src/index.ts",
7
7
  "main": "./lib/esm/index.js",
8
8
  "module": "./lib/esm/index.js",
@@ -28,8 +28,8 @@
28
28
  "tslib": "2.7.0"
29
29
  },
30
30
  "devDependencies": {
31
- "@tsed/barrels": "8.11.1",
32
- "@tsed/typescript": "8.11.1",
31
+ "@tsed/barrels": "8.11.2-rc.1",
32
+ "@tsed/typescript": "8.11.2-rc.1",
33
33
  "eslint": "9.12.0",
34
34
  "typescript": "5.4.5",
35
35
  "vitest": "3.1.4"
@@ -41,5 +41,8 @@
41
41
  },
42
42
  "homepage": "https://github.com/tsedio/tsed/tree/production/packages/security/jwks",
43
43
  "author": "Romain Lenzotti",
44
- "license": "MIT"
44
+ "license": "MIT",
45
+ "publishConfig": {
46
+ "tag": "rc"
47
+ }
45
48
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"getJwks.js","sourceRoot":"","sources":["../../src/getJwks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,aAAa;AACb,OAAO,EAAC,GAAG,EAAE,IAAI,EAAgB,MAAM,OAAO,CAAC;AAW/C,MAAM,UAAU,YAAY,CAAC,UAAgC,EAAE;IAC7D,MAAM,EAAC,YAAY,EAAC,GAAG,OAAO,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAErC,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,CAAC,OAAO,CAAC,CAAC,EAAC,IAAI,EAAE,GAAG,OAAO,EAAC,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAElD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAC,GAAG,EAAE,KAAK,EAAC,CAAC,CAAC;QACjD,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC;QACjE,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAoB;IAC1C,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAExC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;AACxE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,aAAa;AACb,cAAc,OAAO,CAAC"}
@@ -1,51 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- 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
- 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
- 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
- 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
- kZjWbi8qjXCFuz1arVxsb2qNOjmQlk+Yolegj16Wfcs+W83TTU7+Heijl3YVHi+X
7
- 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
- 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
- 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
- H6wVegb0IrWhXH5tklFDYkJXyAmLPAReMXuZMTg7EXaMU2ACGShXp7bN6gxrkcVa
11
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- hPHh8/noXgTUN7N9aahkPOgyyW39MQ/5h5oo42X26/o06d+DGpAmVXCXVJYXYrT2
22
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- aNc0elCSiAJNJ+OfBeun+sgQUZu8v51jU1TolHS1eQKCAQEAwGQ7tDMcRfuNgL5O
35
- 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
- eTFA+EsktGpxvKkQRMTrkQijgcY3HCpEOtaHdC0xhlVQT8PUH5bi8oQKcLTHZz2R
37
- czx9Y/Q6IkU845V2oLlmzOyD6hJDR2UZCVashhetc9L6fB0ICN2gnIUjcZvJ95eB
38
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
51
- -----END RSA PRIVATE KEY-----
@@ -1,14 +0,0 @@
1
- -----BEGIN PUBLIC KEY-----
2
- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAooP/p2isfqsJH+OAPT3l
3
- vCJOFCxgscE0SC8zj0sWs/r/N5zm7UTaU0PgH6NLURkNSiAqDfzKFfeV9QxkzYRl
4
- HJ+JFt32MC+ypk+93gOYJOMOVk4JGHi5U77D/5tD3mjWe6bQM6k8wKgp44+sboq/
5
- FDauA9dM+Mw0LSeueGBo9TigQ7U0vTKfGYRWZv70X6lEePdeej5aoc3IhU5bX81f
6
- jvKKutwyoza4ovXPJuOwYJOhAsMmkZjWbi8qjXCFuz1arVxsb2qNOjmQlk+Yoleg
7
- j16Wfcs+W83TTU7+Heijl3YVHi+XLPstemGiPGJhAikQWCv9udYFqlZjhyX22iSt
8
- qPYBDkqi0lVy0bUVs0pmD90BB46kXmvHpxiwh+oDPtGZzt0lzcjmVP1HXF2X+c9i
9
- 2xLsKvibbizqqQ5G7okPs5MO+Jvww0/6++T4ATM5MzxIIN1cWH/uq7SKoP/Fsphe
10
- 6GeeJrtD/Ww2T30ZQVzoSYMZE/PvH6wVegb0IrWhXH5tklFDYkJXyAmLPAReMXuZ
11
- MTg7EXaMU2ACGShXp7bN6gxrkcVaA4TnOQgEALCI1rusORUyf8wOYIW5iLdXcnaY
12
- 5GZgH2OymyCZ6AzxsAc4TpwDrGNHuA5oitucfqLicUAAoGItn9rJOTQ6M2HkyqS+
13
- TeKwmmz2mb1oslGfSCJ9y4UCAwEAAQ==
14
- -----END PUBLIC KEY-----
@@ -1,51 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- j9tvuN0obVilZtie9QGlRGj6wFA2EgrVKC/iy9H1rfduxvvY0kWYyiGhPAKr9gNq
26
- 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
- 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
- lhkWP1HBKbj88ZSqlfTW3FP0a4tpprcH/WuPw6ynVqRUZa1tOg4IaD5/izFj1jG5
29
- 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
- hSSMfFh0xgYoPgY285ZFxOBB5ykZLQez4feKmW6TSrHFBgF5ZAlkAXKv+N7j4Fxd
31
- 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
- SlstE7rTCv9NSRxWtlhropY7omfE4gRhU1/hz2k02fEHaL1XYWOe+U30r9E9APle
33
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- eZk/ZdsTGKu/I4sLsN9TDCXJCEgiYXodJeaRsfuA4JRVU/37DVMlHr3ygNVUan1V
43
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
51
- -----END RSA PRIVATE KEY-----
@@ -1,14 +0,0 @@
1
- -----BEGIN PUBLIC KEY-----
2
- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArQ+VYeRDY+Y6gPMCSLWL
3
- zWB2CSvAIxmE1VN/IRJlvjheATFgWQT4qcsFSK7EQ1frz+DhjmCUQcFQ53ubDKz+
4
- f4zHVEeH9+8H2bw2DZ0uUss3LDnA3ryZ9J1Qhxp7bcsyKQOmCDnqMhLd8Sp0B8v1
5
- vKmCvXAd4NOz1BhDkCWI7LhZjEzGRqy3mPHp2JKhyM4DPa5FLlpQnWOAmy+W39gm
6
- Nwfpnz6zpIBrkKglWEpHCdT59fxsyslz3anxklGKMBGwUa3ZHiwN/VTkPU39K/p2
7
- Xop5mtvO9rh87vImWbAE8w8nSPO7wmCTiBJY+bgG4KeXbB1NLAyEfaty2RXMh8va
8
- CAlpT+FKxO6u1DGcrsvAmkOmHsGIIYtd3syxVhYkrFKZU1vhDJq1jER9JlKGnzCY
9
- SrXINJ4iNEk5gIw8YJtAmJsj2gVYdLCJx4HUXv77WC+xDQ7MAYqIYF5fL2R+k+dp
10
- aJs+Fyn76vf8yr2SDC4j442P+Evt78NYl5/sIOKS47GKNx7V+JIcA2TJVZyKTmeQ
11
- QCpMhFuLJIJBxBF6S998oEgM4cPtZSOfugByu0rjf3CfQXl32Qc6dVXtOeIzZlzM
12
- 3dxOnvzVsiM9kiYp9d7uKFGkQXgyw7umI+VrWQIDwi7ppJIX6fuemJD9KxtA34Wa
13
- e3qtm9ISXV7NeZIXt5d1+DcCAwEAAQ==
14
- -----END PUBLIC KEY-----
@@ -1,60 +0,0 @@
1
- import {join} from "node:path";
2
-
3
- import fs from "fs-extra";
4
-
5
- import {generateJwks, getJwks} from "./getJwks.js";
6
-
7
- const rootDir = join(import.meta.dirname, "__mocks__");
8
-
9
- describe("GetJwks", () => {
10
- beforeEach(() => {
11
- fs.removeSync(join(rootDir, "generated", "keys.json"));
12
- });
13
- describe("generateJwks()", () => {
14
- it("should generate Jwks keys without certificates", async () => {
15
- const output = await generateJwks();
16
-
17
- expect(output.keys.length).toEqual(3);
18
- });
19
- it("should generateJwks keys from certificates", async () => {
20
- const output = await generateJwks({
21
- certificates: [
22
- {path: join(rootDir, "keys", "sig.rsa.pub.pem"), alg: "RS256", use: "sig", kid: "key-0"},
23
- {path: join(rootDir, "keys", "sig.rsa.prv.pem"), alg: "RS256", use: "sig"},
24
- {path: join(rootDir, "keys", "enc.rsa.pub.pem"), alg: "RS256", use: "enc", kid: "key-1"},
25
- {path: join(rootDir, "keys", "enc.rsa.prv.pem"), alg: "RS256", use: "enc"}
26
- ] as never[]
27
- });
28
-
29
- expect(output).toEqual({
30
- keys: [
31
- {
32
- alg: "RS256",
33
- e: "AQAB",
34
- kid: "key-0",
35
- kty: "RSA",
36
- n: "rQ-VYeRDY-Y6gPMCSLWLzWB2CSvAIxmE1VN_IRJlvjheATFgWQT4qcsFSK7EQ1frz-DhjmCUQcFQ53ubDKz-f4zHVEeH9-8H2bw2DZ0uUss3LDnA3ryZ9J1Qhxp7bcsyKQOmCDnqMhLd8Sp0B8v1vKmCvXAd4NOz1BhDkCWI7LhZjEzGRqy3mPHp2JKhyM4DPa5FLlpQnWOAmy-W39gmNwfpnz6zpIBrkKglWEpHCdT59fxsyslz3anxklGKMBGwUa3ZHiwN_VTkPU39K_p2Xop5mtvO9rh87vImWbAE8w8nSPO7wmCTiBJY-bgG4KeXbB1NLAyEfaty2RXMh8vaCAlpT-FKxO6u1DGcrsvAmkOmHsGIIYtd3syxVhYkrFKZU1vhDJq1jER9JlKGnzCYSrXINJ4iNEk5gIw8YJtAmJsj2gVYdLCJx4HUXv77WC-xDQ7MAYqIYF5fL2R-k-dpaJs-Fyn76vf8yr2SDC4j442P-Evt78NYl5_sIOKS47GKNx7V-JIcA2TJVZyKTmeQQCpMhFuLJIJBxBF6S998oEgM4cPtZSOfugByu0rjf3CfQXl32Qc6dVXtOeIzZlzM3dxOnvzVsiM9kiYp9d7uKFGkQXgyw7umI-VrWQIDwi7ppJIX6fuemJD9KxtA34Wae3qtm9ISXV7NeZIXt5d1-Dc",
37
- use: "sig"
38
- },
39
- {
40
- alg: "RS256",
41
- e: "AQAB",
42
- kid: "key-1",
43
- kty: "RSA",
44
- n: "ooP_p2isfqsJH-OAPT3lvCJOFCxgscE0SC8zj0sWs_r_N5zm7UTaU0PgH6NLURkNSiAqDfzKFfeV9QxkzYRlHJ-JFt32MC-ypk-93gOYJOMOVk4JGHi5U77D_5tD3mjWe6bQM6k8wKgp44-sboq_FDauA9dM-Mw0LSeueGBo9TigQ7U0vTKfGYRWZv70X6lEePdeej5aoc3IhU5bX81fjvKKutwyoza4ovXPJuOwYJOhAsMmkZjWbi8qjXCFuz1arVxsb2qNOjmQlk-Yolegj16Wfcs-W83TTU7-Heijl3YVHi-XLPstemGiPGJhAikQWCv9udYFqlZjhyX22iStqPYBDkqi0lVy0bUVs0pmD90BB46kXmvHpxiwh-oDPtGZzt0lzcjmVP1HXF2X-c9i2xLsKvibbizqqQ5G7okPs5MO-Jvww0_6--T4ATM5MzxIIN1cWH_uq7SKoP_Fsphe6GeeJrtD_Ww2T30ZQVzoSYMZE_PvH6wVegb0IrWhXH5tklFDYkJXyAmLPAReMXuZMTg7EXaMU2ACGShXp7bN6gxrkcVaA4TnOQgEALCI1rusORUyf8wOYIW5iLdXcnaY5GZgH2OymyCZ6AzxsAc4TpwDrGNHuA5oitucfqLicUAAoGItn9rJOTQ6M2HkyqS-TeKwmmz2mb1oslGfSCJ9y4U",
45
- use: "enc"
46
- }
47
- ]
48
- });
49
- });
50
- });
51
- describe("getJwks()", () => {
52
- it("should generate Jwks keys without certificates", () => {
53
- const output = getJwks({
54
- path: join(rootDir, "generated", "keys.json")
55
- });
56
-
57
- expect(output.keys.length).toEqual(3);
58
- });
59
- });
60
- });
package/src/getJwks.ts DELETED
@@ -1,47 +0,0 @@
1
- import {dirname} from "node:path";
2
-
3
- import fs from "fs-extra";
4
- // @ts-ignore
5
- import {JWK, JWKS, KeyParameters} from "jose2";
6
-
7
- export interface JwksKeyParameters extends KeyParameters {
8
- path: string;
9
- }
10
-
11
- export interface JwksOptions {
12
- path: string;
13
- certificates?: JwksKeyParameters[];
14
- }
15
-
16
- export function generateJwks(options: Partial<JwksOptions> = {}) {
17
- const {certificates} = options;
18
- const keystore = new JWKS.KeyStore();
19
-
20
- if (certificates) {
21
- certificates.forEach(({path, ...options}) => {
22
- const content = fs.readFileSync(path, {encoding: "utf-8"});
23
- const isPrivate = content.includes("PRIVATE KEY");
24
-
25
- if (!isPrivate) {
26
- keystore.add(JWK.asKey(content, options));
27
- }
28
- });
29
- } else {
30
- keystore.generateSync("RSA", 2048, {use: "sig"});
31
- keystore.generateSync("EC", "P-256", {use: "sig", alg: "ES256"});
32
- keystore.generateSync("OKP", "Ed25519", {use: "sig", alg: "EdDSA"});
33
- }
34
-
35
- return keystore.toJWKS(true);
36
- }
37
-
38
- export function getJwks(options: JwksOptions) {
39
- fs.ensureDirSync(dirname(options.path));
40
-
41
- if (!fs.existsSync(options.path)) {
42
- const keys = generateJwks(options);
43
- fs.writeFileSync(options.path, JSON.stringify(keys, null, 2));
44
- }
45
-
46
- return JSON.parse(fs.readFileSync(options.path, {encoding: "utf-8"}));
47
- }
package/src/index.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from "./getJwks.js";
2
- // @ts-ignore
3
- export * from "jose2";
package/vitest.config.mts DELETED
@@ -1,21 +0,0 @@
1
- // @ts-ignore
2
- import {presets} from "@tsed/vitest/presets";
3
- import {defineConfig} from "vitest/config";
4
-
5
- export default defineConfig(
6
- {
7
- ...presets,
8
- test: {
9
- ...presets.test,
10
- coverage: {
11
- ...presets.test.coverage,
12
- thresholds: {
13
- statements: 0,
14
- branches: 0,
15
- functions: 0,
16
- lines: 0
17
- }
18
- }
19
- }
20
- }
21
- );