@golocalinteractive/golocal-cloud-wrapper 1.0.53 → 1.0.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/golocal-cloud-wrapper.css +2 -1
- package/dist/golocal-cloud-wrapper.es.js +88 -17632
- package/dist/golocal-cloud-wrapper.es10.js +66 -0
- package/dist/golocal-cloud-wrapper.es100.js +4 -0
- package/dist/golocal-cloud-wrapper.es101.js +62 -0
- package/dist/golocal-cloud-wrapper.es102.js +77 -0
- package/dist/golocal-cloud-wrapper.es103.js +4 -0
- package/dist/golocal-cloud-wrapper.es104.js +41 -0
- package/dist/golocal-cloud-wrapper.es105.js +4 -0
- package/dist/golocal-cloud-wrapper.es106.js +106 -0
- package/dist/golocal-cloud-wrapper.es107.js +148 -0
- package/dist/golocal-cloud-wrapper.es108.js +28 -0
- package/dist/golocal-cloud-wrapper.es109.js +51 -0
- package/dist/golocal-cloud-wrapper.es11.js +233 -0
- package/dist/golocal-cloud-wrapper.es110.js +25 -0
- package/dist/golocal-cloud-wrapper.es111.js +30 -0
- package/dist/golocal-cloud-wrapper.es112.js +82 -0
- package/dist/golocal-cloud-wrapper.es113.js +125 -0
- package/dist/golocal-cloud-wrapper.es114.js +39 -0
- package/dist/golocal-cloud-wrapper.es115.js +38 -0
- package/dist/golocal-cloud-wrapper.es116.js +7 -0
- package/dist/golocal-cloud-wrapper.es117.js +4 -0
- package/dist/golocal-cloud-wrapper.es118.js +4 -0
- package/dist/golocal-cloud-wrapper.es119.js +4 -0
- package/dist/golocal-cloud-wrapper.es12.js +23 -0
- package/dist/golocal-cloud-wrapper.es120.js +208 -0
- package/dist/golocal-cloud-wrapper.es121.js +145 -0
- package/dist/golocal-cloud-wrapper.es122.js +58 -0
- package/dist/golocal-cloud-wrapper.es123.js +34 -0
- package/dist/golocal-cloud-wrapper.es124.js +4 -0
- package/dist/golocal-cloud-wrapper.es125.js +39 -0
- package/dist/golocal-cloud-wrapper.es126.js +4 -0
- package/dist/golocal-cloud-wrapper.es127.js +4 -0
- package/dist/golocal-cloud-wrapper.es128.js +224 -0
- package/dist/golocal-cloud-wrapper.es129.js +4 -0
- package/dist/golocal-cloud-wrapper.es13.js +24 -0
- package/dist/golocal-cloud-wrapper.es130.js +4 -0
- package/dist/golocal-cloud-wrapper.es131.js +35 -0
- package/dist/golocal-cloud-wrapper.es132.js +4 -0
- package/dist/golocal-cloud-wrapper.es133.js +23 -0
- package/dist/golocal-cloud-wrapper.es134.js +123 -0
- package/dist/golocal-cloud-wrapper.es135.js +469 -0
- package/dist/golocal-cloud-wrapper.es136.js +46 -0
- package/dist/golocal-cloud-wrapper.es137.js +71 -0
- package/dist/golocal-cloud-wrapper.es138.js +66 -0
- package/dist/golocal-cloud-wrapper.es139.js +4 -0
- package/dist/golocal-cloud-wrapper.es14.js +115 -0
- package/dist/golocal-cloud-wrapper.es140.js +27 -0
- package/dist/golocal-cloud-wrapper.es141.js +66 -0
- package/dist/golocal-cloud-wrapper.es142.js +27 -0
- package/dist/golocal-cloud-wrapper.es143.js +5 -0
- package/dist/golocal-cloud-wrapper.es144.js +650 -0
- package/dist/golocal-cloud-wrapper.es145.js +301 -0
- package/dist/golocal-cloud-wrapper.es146.js +90 -0
- package/dist/golocal-cloud-wrapper.es147.js +83 -0
- package/dist/golocal-cloud-wrapper.es148.js +65 -0
- package/dist/golocal-cloud-wrapper.es149.js +1230 -0
- package/dist/golocal-cloud-wrapper.es15.js +641 -0
- package/dist/golocal-cloud-wrapper.es150.js +8 -0
- package/dist/golocal-cloud-wrapper.es151.js +15 -0
- package/dist/golocal-cloud-wrapper.es152.js +139 -0
- package/dist/golocal-cloud-wrapper.es153.js +23 -0
- package/dist/golocal-cloud-wrapper.es154.js +132 -0
- package/dist/golocal-cloud-wrapper.es155.js +19 -0
- package/dist/golocal-cloud-wrapper.es156.js +37 -0
- package/dist/golocal-cloud-wrapper.es157.js +49 -0
- package/dist/golocal-cloud-wrapper.es158.js +10 -0
- package/dist/golocal-cloud-wrapper.es159.js +5 -0
- package/dist/golocal-cloud-wrapper.es16.js +17 -0
- package/dist/golocal-cloud-wrapper.es160.js +35 -0
- package/dist/golocal-cloud-wrapper.es161.js +174 -0
- package/dist/golocal-cloud-wrapper.es162.js +21 -0
- package/dist/golocal-cloud-wrapper.es163.js +4 -0
- package/dist/golocal-cloud-wrapper.es164.js +330 -0
- package/dist/golocal-cloud-wrapper.es165.js +4 -0
- package/dist/golocal-cloud-wrapper.es166.js +34 -0
- package/dist/golocal-cloud-wrapper.es167.js +40 -0
- package/dist/golocal-cloud-wrapper.es168.js +30 -0
- package/dist/golocal-cloud-wrapper.es169.js +62 -0
- package/dist/golocal-cloud-wrapper.es17.js +26 -0
- package/dist/golocal-cloud-wrapper.es170.js +4 -0
- package/dist/golocal-cloud-wrapper.es171.js +340 -0
- package/dist/golocal-cloud-wrapper.es172.js +4 -0
- package/dist/golocal-cloud-wrapper.es173.js +4 -0
- package/dist/golocal-cloud-wrapper.es174.js +4 -0
- package/dist/golocal-cloud-wrapper.es175.js +4 -0
- package/dist/golocal-cloud-wrapper.es176.js +4 -0
- package/dist/golocal-cloud-wrapper.es177.js +24 -0
- package/dist/golocal-cloud-wrapper.es178.js +4 -0
- package/dist/golocal-cloud-wrapper.es179.js +24 -0
- package/dist/golocal-cloud-wrapper.es18.js +5 -0
- package/dist/golocal-cloud-wrapper.es180.js +98 -0
- package/dist/golocal-cloud-wrapper.es181.js +4 -0
- package/dist/golocal-cloud-wrapper.es182.js +46 -0
- package/dist/golocal-cloud-wrapper.es183.js +35 -0
- package/dist/golocal-cloud-wrapper.es184.js +61 -0
- package/dist/golocal-cloud-wrapper.es185.js +4 -0
- package/dist/golocal-cloud-wrapper.es186.js +4 -0
- package/dist/golocal-cloud-wrapper.es187.js +4 -0
- package/dist/golocal-cloud-wrapper.es188.js +23 -0
- package/dist/golocal-cloud-wrapper.es189.js +4 -0
- package/dist/golocal-cloud-wrapper.es19.js +110 -0
- package/dist/golocal-cloud-wrapper.es190.js +4 -0
- package/dist/golocal-cloud-wrapper.es191.js +720 -0
- package/dist/golocal-cloud-wrapper.es192.js +153 -0
- package/dist/golocal-cloud-wrapper.es193.js +166 -0
- package/dist/golocal-cloud-wrapper.es194.js +49 -0
- package/dist/golocal-cloud-wrapper.es195.js +71 -0
- package/dist/golocal-cloud-wrapper.es196.js +25 -0
- package/dist/golocal-cloud-wrapper.es197.js +5 -0
- package/dist/golocal-cloud-wrapper.es198.js +118 -0
- package/dist/golocal-cloud-wrapper.es199.js +16 -0
- package/dist/golocal-cloud-wrapper.es20.js +12 -0
- package/dist/golocal-cloud-wrapper.es200.js +4 -0
- package/dist/golocal-cloud-wrapper.es201.js +429 -0
- package/dist/golocal-cloud-wrapper.es202.js +335 -0
- package/dist/golocal-cloud-wrapper.es203.js +235 -0
- package/dist/golocal-cloud-wrapper.es204.js +38 -0
- package/dist/golocal-cloud-wrapper.es205.js +88 -0
- package/dist/golocal-cloud-wrapper.es206.js +47 -0
- package/dist/golocal-cloud-wrapper.es207.js +13 -0
- package/dist/golocal-cloud-wrapper.es208.js +19 -0
- package/dist/golocal-cloud-wrapper.es209.js +102 -0
- package/dist/golocal-cloud-wrapper.es21.js +185 -0
- package/dist/golocal-cloud-wrapper.es210.js +4 -0
- package/dist/golocal-cloud-wrapper.es211.js +4 -0
- package/dist/golocal-cloud-wrapper.es212.js +24 -0
- package/dist/golocal-cloud-wrapper.es213.js +30 -0
- package/dist/golocal-cloud-wrapper.es214.js +30 -0
- package/dist/golocal-cloud-wrapper.es215.js +34 -0
- package/dist/golocal-cloud-wrapper.es216.js +4 -0
- package/dist/golocal-cloud-wrapper.es217.js +4 -0
- package/dist/golocal-cloud-wrapper.es218.js +48 -0
- package/dist/golocal-cloud-wrapper.es219.js +33 -0
- package/dist/golocal-cloud-wrapper.es22.js +23 -0
- package/dist/golocal-cloud-wrapper.es220.js +30 -0
- package/dist/golocal-cloud-wrapper.es221.js +4 -0
- package/dist/golocal-cloud-wrapper.es222.js +4 -0
- package/dist/golocal-cloud-wrapper.es223.js +78 -0
- package/dist/golocal-cloud-wrapper.es224.js +4 -0
- package/dist/golocal-cloud-wrapper.es225.js +4 -0
- package/dist/golocal-cloud-wrapper.es226.js +4 -0
- package/dist/golocal-cloud-wrapper.es227.js +4 -0
- package/dist/golocal-cloud-wrapper.es228.js +4 -0
- package/dist/golocal-cloud-wrapper.es229.js +24 -0
- package/dist/golocal-cloud-wrapper.es23.js +38 -0
- package/dist/golocal-cloud-wrapper.es230.js +4 -0
- package/dist/golocal-cloud-wrapper.es231.js +4 -0
- package/dist/golocal-cloud-wrapper.es232.js +202 -0
- package/dist/golocal-cloud-wrapper.es233.js +97 -0
- package/dist/golocal-cloud-wrapper.es234.js +4 -0
- package/dist/golocal-cloud-wrapper.es235.js +173 -0
- package/dist/golocal-cloud-wrapper.es236.js +4 -0
- package/dist/golocal-cloud-wrapper.es237.js +21 -0
- package/dist/golocal-cloud-wrapper.es238.js +30 -0
- package/dist/golocal-cloud-wrapper.es239.js +154 -0
- package/dist/golocal-cloud-wrapper.es24.js +16 -0
- package/dist/golocal-cloud-wrapper.es240.js +131 -0
- package/dist/golocal-cloud-wrapper.es241.js +61 -0
- package/dist/golocal-cloud-wrapper.es242.js +42 -0
- package/dist/golocal-cloud-wrapper.es243.js +89 -0
- package/dist/golocal-cloud-wrapper.es244.js +24 -0
- package/dist/golocal-cloud-wrapper.es245.js +19 -0
- package/dist/golocal-cloud-wrapper.es246.js +127 -0
- package/dist/golocal-cloud-wrapper.es247.js +24 -0
- package/dist/golocal-cloud-wrapper.es248.js +33 -0
- package/dist/golocal-cloud-wrapper.es249.js +12 -0
- package/dist/golocal-cloud-wrapper.es25.js +17 -0
- package/dist/golocal-cloud-wrapper.es250.js +24 -0
- package/dist/golocal-cloud-wrapper.es251.js +17 -0
- package/dist/golocal-cloud-wrapper.es252.js +78 -0
- package/dist/golocal-cloud-wrapper.es253.js +19 -0
- package/dist/golocal-cloud-wrapper.es254.js +102 -0
- package/dist/golocal-cloud-wrapper.es255.js +29 -0
- package/dist/golocal-cloud-wrapper.es256.js +151 -0
- package/dist/golocal-cloud-wrapper.es257.js +4 -0
- package/dist/golocal-cloud-wrapper.es258.js +76 -0
- package/dist/golocal-cloud-wrapper.es259.js +92 -0
- package/dist/golocal-cloud-wrapper.es26.js +102 -0
- package/dist/golocal-cloud-wrapper.es260.js +71 -0
- package/dist/golocal-cloud-wrapper.es261.js +124 -0
- package/dist/golocal-cloud-wrapper.es262.js +35 -0
- package/dist/golocal-cloud-wrapper.es263.js +7 -0
- package/dist/golocal-cloud-wrapper.es264.js +23 -0
- package/dist/golocal-cloud-wrapper.es265.js +102 -0
- package/dist/golocal-cloud-wrapper.es266.js +106 -0
- package/dist/golocal-cloud-wrapper.es267.js +4 -0
- package/dist/golocal-cloud-wrapper.es268.js +4 -0
- package/dist/golocal-cloud-wrapper.es269.js +38 -0
- package/dist/golocal-cloud-wrapper.es27.js +45 -0
- package/dist/golocal-cloud-wrapper.es270.js +4 -0
- package/dist/golocal-cloud-wrapper.es271.js +4 -0
- package/dist/golocal-cloud-wrapper.es272.js +4 -0
- package/dist/golocal-cloud-wrapper.es273.js +4 -0
- package/dist/golocal-cloud-wrapper.es274.js +4 -0
- package/dist/golocal-cloud-wrapper.es275.js +4 -0
- package/dist/golocal-cloud-wrapper.es276.js +4 -0
- package/dist/golocal-cloud-wrapper.es277.js +11 -0
- package/dist/golocal-cloud-wrapper.es278.js +29 -0
- package/dist/golocal-cloud-wrapper.es279.js +4 -0
- package/dist/golocal-cloud-wrapper.es28.js +8 -0
- package/dist/golocal-cloud-wrapper.es280.js +4 -0
- package/dist/golocal-cloud-wrapper.es281.js +4 -0
- package/dist/golocal-cloud-wrapper.es282.js +4 -0
- package/dist/golocal-cloud-wrapper.es283.js +5 -0
- package/dist/golocal-cloud-wrapper.es284.js +36 -0
- package/dist/golocal-cloud-wrapper.es285.js +46 -0
- package/dist/golocal-cloud-wrapper.es286.js +55 -0
- package/dist/golocal-cloud-wrapper.es287.js +41 -0
- package/dist/golocal-cloud-wrapper.es288.js +70 -0
- package/dist/golocal-cloud-wrapper.es289.js +20 -0
- package/dist/golocal-cloud-wrapper.es29.js +13 -0
- package/dist/golocal-cloud-wrapper.es290.js +8 -0
- package/dist/golocal-cloud-wrapper.es291.js +4 -0
- package/dist/golocal-cloud-wrapper.es292.js +58 -0
- package/dist/golocal-cloud-wrapper.es293.js +31 -0
- package/dist/golocal-cloud-wrapper.es294.js +6 -0
- package/dist/golocal-cloud-wrapper.es295.js +11 -0
- package/dist/golocal-cloud-wrapper.es296.js +24 -0
- package/dist/golocal-cloud-wrapper.es297.js +32 -0
- package/dist/golocal-cloud-wrapper.es298.js +12 -0
- package/dist/golocal-cloud-wrapper.es299.js +10 -0
- package/dist/golocal-cloud-wrapper.es3.js +22 -0
- package/dist/golocal-cloud-wrapper.es30.js +13 -0
- package/dist/golocal-cloud-wrapper.es300.js +10 -0
- package/dist/golocal-cloud-wrapper.es301.js +159 -0
- package/dist/golocal-cloud-wrapper.es302.js +24 -0
- package/dist/golocal-cloud-wrapper.es303.js +21 -0
- package/dist/golocal-cloud-wrapper.es304.js +16 -0
- package/dist/golocal-cloud-wrapper.es305.js +48 -0
- package/dist/golocal-cloud-wrapper.es306.js +9 -0
- package/dist/golocal-cloud-wrapper.es307.js +37 -0
- package/dist/golocal-cloud-wrapper.es308.js +8 -0
- package/dist/golocal-cloud-wrapper.es309.js +9 -0
- package/dist/golocal-cloud-wrapper.es31.js +299 -0
- package/dist/golocal-cloud-wrapper.es310.js +15 -0
- package/dist/golocal-cloud-wrapper.es32.js +13 -0
- package/dist/golocal-cloud-wrapper.es33.js +13 -0
- package/dist/golocal-cloud-wrapper.es34.js +30 -0
- package/dist/golocal-cloud-wrapper.es35.js +342 -0
- package/dist/golocal-cloud-wrapper.es36.js +16 -0
- package/dist/golocal-cloud-wrapper.es37.js +16 -0
- package/dist/golocal-cloud-wrapper.es38.js +16 -0
- package/dist/golocal-cloud-wrapper.es39.js +491 -0
- package/dist/golocal-cloud-wrapper.es4.js +20 -0
- package/dist/golocal-cloud-wrapper.es40.js +17 -0
- package/dist/golocal-cloud-wrapper.es41.js +4 -0
- package/dist/golocal-cloud-wrapper.es42.js +41 -0
- package/dist/golocal-cloud-wrapper.es43.js +274 -0
- package/dist/golocal-cloud-wrapper.es44.js +4 -0
- package/dist/golocal-cloud-wrapper.es45.js +30 -0
- package/dist/golocal-cloud-wrapper.es46.js +22 -0
- package/dist/golocal-cloud-wrapper.es47.js +16 -0
- package/dist/golocal-cloud-wrapper.es48.js +18 -0
- package/dist/golocal-cloud-wrapper.es49.js +22 -0
- package/dist/golocal-cloud-wrapper.es5.js +12 -0
- package/dist/golocal-cloud-wrapper.es50.js +22 -0
- package/dist/golocal-cloud-wrapper.es51.js +26 -0
- package/dist/golocal-cloud-wrapper.es52.js +22 -0
- package/dist/golocal-cloud-wrapper.es53.js +17 -0
- package/dist/golocal-cloud-wrapper.es54.js +4 -0
- package/dist/golocal-cloud-wrapper.es55.js +4 -0
- package/dist/golocal-cloud-wrapper.es56.js +39 -0
- package/dist/golocal-cloud-wrapper.es57.js +17 -0
- package/dist/golocal-cloud-wrapper.es58.js +2959 -0
- package/dist/golocal-cloud-wrapper.es59.js +417 -0
- package/dist/golocal-cloud-wrapper.es6.js +68 -0
- package/dist/golocal-cloud-wrapper.es60.js +25 -0
- package/dist/golocal-cloud-wrapper.es61.js +28 -0
- package/dist/golocal-cloud-wrapper.es62.js +32 -0
- package/dist/golocal-cloud-wrapper.es63.js +41 -0
- package/dist/golocal-cloud-wrapper.es64.js +20 -0
- package/dist/golocal-cloud-wrapper.es65.js +11 -0
- package/dist/golocal-cloud-wrapper.es66.js +81 -0
- package/dist/golocal-cloud-wrapper.es67.js +14 -0
- package/dist/golocal-cloud-wrapper.es68.js +71 -0
- package/dist/golocal-cloud-wrapper.es69.js +212 -0
- package/dist/golocal-cloud-wrapper.es7.js +16 -0
- package/dist/golocal-cloud-wrapper.es70.js +208 -0
- package/dist/golocal-cloud-wrapper.es71.js +18 -0
- package/dist/golocal-cloud-wrapper.es72.js +129 -0
- package/dist/golocal-cloud-wrapper.es73.js +43 -0
- package/dist/golocal-cloud-wrapper.es74.js +29 -0
- package/dist/golocal-cloud-wrapper.es75.js +11 -0
- package/dist/golocal-cloud-wrapper.es76.js +122 -0
- package/dist/golocal-cloud-wrapper.es77.js +880 -0
- package/dist/golocal-cloud-wrapper.es78.js +288 -0
- package/dist/golocal-cloud-wrapper.es79.js +36 -0
- package/dist/golocal-cloud-wrapper.es8.js +48 -0
- package/dist/golocal-cloud-wrapper.es80.js +12 -0
- package/dist/golocal-cloud-wrapper.es81.js +334 -0
- package/dist/golocal-cloud-wrapper.es82.js +5 -0
- package/dist/golocal-cloud-wrapper.es83.js +8 -0
- package/dist/golocal-cloud-wrapper.es84.js +58 -0
- package/dist/golocal-cloud-wrapper.es85.js +5 -0
- package/dist/golocal-cloud-wrapper.es86.js +104 -0
- package/dist/golocal-cloud-wrapper.es87.js +468 -0
- package/dist/golocal-cloud-wrapper.es88.js +10 -0
- package/dist/golocal-cloud-wrapper.es89.js +6 -0
- package/dist/golocal-cloud-wrapper.es9.js +90 -0
- package/dist/golocal-cloud-wrapper.es90.js +14 -0
- package/dist/golocal-cloud-wrapper.es91.js +17 -0
- package/dist/golocal-cloud-wrapper.es92.js +70 -0
- package/dist/golocal-cloud-wrapper.es93.js +10 -0
- package/dist/golocal-cloud-wrapper.es94.js +227 -0
- package/dist/golocal-cloud-wrapper.es95.js +297 -0
- package/dist/golocal-cloud-wrapper.es96.js +25 -0
- package/dist/golocal-cloud-wrapper.es97.js +39 -0
- package/dist/golocal-cloud-wrapper.es98.js +616 -0
- package/dist/golocal-cloud-wrapper.es99.js +17 -0
- package/package.json +2 -6
- package/dist/golocal-cloud-wrapper.umd.js +0 -197
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { encode } from "./golocal-cloud-wrapper.es242.js";
|
|
2
|
+
import { unprotected } from "./golocal-cloud-wrapper.es257.js";
|
|
3
|
+
import encrypt from "./golocal-cloud-wrapper.es258.js";
|
|
4
|
+
import encryptKeyManagement from "./golocal-cloud-wrapper.es259.js";
|
|
5
|
+
import { JWEInvalid, JOSENotSupported } from "./golocal-cloud-wrapper.es240.js";
|
|
6
|
+
import isDisjoint from "./golocal-cloud-wrapper.es244.js";
|
|
7
|
+
import { encoder, concat, decoder } from "./golocal-cloud-wrapper.es241.js";
|
|
8
|
+
import validateCrit from "./golocal-cloud-wrapper.es248.js";
|
|
9
|
+
class FlattenedEncrypt {
|
|
10
|
+
constructor(plaintext) {
|
|
11
|
+
if (!(plaintext instanceof Uint8Array)) {
|
|
12
|
+
throw new TypeError("plaintext must be an instance of Uint8Array");
|
|
13
|
+
}
|
|
14
|
+
this._plaintext = plaintext;
|
|
15
|
+
}
|
|
16
|
+
setKeyManagementParameters(parameters) {
|
|
17
|
+
if (this._keyManagementParameters) {
|
|
18
|
+
throw new TypeError("setKeyManagementParameters can only be called once");
|
|
19
|
+
}
|
|
20
|
+
this._keyManagementParameters = parameters;
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
setProtectedHeader(protectedHeader) {
|
|
24
|
+
if (this._protectedHeader) {
|
|
25
|
+
throw new TypeError("setProtectedHeader can only be called once");
|
|
26
|
+
}
|
|
27
|
+
this._protectedHeader = protectedHeader;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
setSharedUnprotectedHeader(sharedUnprotectedHeader) {
|
|
31
|
+
if (this._sharedUnprotectedHeader) {
|
|
32
|
+
throw new TypeError("setSharedUnprotectedHeader can only be called once");
|
|
33
|
+
}
|
|
34
|
+
this._sharedUnprotectedHeader = sharedUnprotectedHeader;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
setUnprotectedHeader(unprotectedHeader) {
|
|
38
|
+
if (this._unprotectedHeader) {
|
|
39
|
+
throw new TypeError("setUnprotectedHeader can only be called once");
|
|
40
|
+
}
|
|
41
|
+
this._unprotectedHeader = unprotectedHeader;
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
setAdditionalAuthenticatedData(aad) {
|
|
45
|
+
this._aad = aad;
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
setContentEncryptionKey(cek) {
|
|
49
|
+
if (this._cek) {
|
|
50
|
+
throw new TypeError("setContentEncryptionKey can only be called once");
|
|
51
|
+
}
|
|
52
|
+
this._cek = cek;
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
setInitializationVector(iv) {
|
|
56
|
+
if (this._iv) {
|
|
57
|
+
throw new TypeError("setInitializationVector can only be called once");
|
|
58
|
+
}
|
|
59
|
+
this._iv = iv;
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
async encrypt(key, options) {
|
|
63
|
+
if (!this._protectedHeader && !this._unprotectedHeader && !this._sharedUnprotectedHeader) {
|
|
64
|
+
throw new JWEInvalid("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");
|
|
65
|
+
}
|
|
66
|
+
if (!isDisjoint(this._protectedHeader, this._unprotectedHeader, this._sharedUnprotectedHeader)) {
|
|
67
|
+
throw new JWEInvalid("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");
|
|
68
|
+
}
|
|
69
|
+
const joseHeader = {
|
|
70
|
+
...this._protectedHeader,
|
|
71
|
+
...this._unprotectedHeader,
|
|
72
|
+
...this._sharedUnprotectedHeader
|
|
73
|
+
};
|
|
74
|
+
validateCrit(JWEInvalid, /* @__PURE__ */ new Map(), options == null ? void 0 : options.crit, this._protectedHeader, joseHeader);
|
|
75
|
+
if (joseHeader.zip !== void 0) {
|
|
76
|
+
throw new JOSENotSupported('JWE "zip" (Compression Algorithm) Header Parameter is not supported.');
|
|
77
|
+
}
|
|
78
|
+
const { alg, enc } = joseHeader;
|
|
79
|
+
if (typeof alg !== "string" || !alg) {
|
|
80
|
+
throw new JWEInvalid('JWE "alg" (Algorithm) Header Parameter missing or invalid');
|
|
81
|
+
}
|
|
82
|
+
if (typeof enc !== "string" || !enc) {
|
|
83
|
+
throw new JWEInvalid('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');
|
|
84
|
+
}
|
|
85
|
+
let encryptedKey;
|
|
86
|
+
if (this._cek && (alg === "dir" || alg === "ECDH-ES")) {
|
|
87
|
+
throw new TypeError(`setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header ${alg}`);
|
|
88
|
+
}
|
|
89
|
+
let cek;
|
|
90
|
+
{
|
|
91
|
+
let parameters;
|
|
92
|
+
({ cek, encryptedKey, parameters } = await encryptKeyManagement(alg, enc, key, this._cek, this._keyManagementParameters));
|
|
93
|
+
if (parameters) {
|
|
94
|
+
if (options && unprotected in options) {
|
|
95
|
+
if (!this._unprotectedHeader) {
|
|
96
|
+
this.setUnprotectedHeader(parameters);
|
|
97
|
+
} else {
|
|
98
|
+
this._unprotectedHeader = { ...this._unprotectedHeader, ...parameters };
|
|
99
|
+
}
|
|
100
|
+
} else if (!this._protectedHeader) {
|
|
101
|
+
this.setProtectedHeader(parameters);
|
|
102
|
+
} else {
|
|
103
|
+
this._protectedHeader = { ...this._protectedHeader, ...parameters };
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
let additionalData;
|
|
108
|
+
let protectedHeader;
|
|
109
|
+
let aadMember;
|
|
110
|
+
if (this._protectedHeader) {
|
|
111
|
+
protectedHeader = encoder.encode(encode(JSON.stringify(this._protectedHeader)));
|
|
112
|
+
} else {
|
|
113
|
+
protectedHeader = encoder.encode("");
|
|
114
|
+
}
|
|
115
|
+
if (this._aad) {
|
|
116
|
+
aadMember = encode(this._aad);
|
|
117
|
+
additionalData = concat(protectedHeader, encoder.encode("."), encoder.encode(aadMember));
|
|
118
|
+
} else {
|
|
119
|
+
additionalData = protectedHeader;
|
|
120
|
+
}
|
|
121
|
+
const { ciphertext, tag, iv } = await encrypt(enc, this._plaintext, cek, this._iv, additionalData);
|
|
122
|
+
const jwe = {
|
|
123
|
+
ciphertext: encode(ciphertext)
|
|
124
|
+
};
|
|
125
|
+
if (iv) {
|
|
126
|
+
jwe.iv = encode(iv);
|
|
127
|
+
}
|
|
128
|
+
if (tag) {
|
|
129
|
+
jwe.tag = encode(tag);
|
|
130
|
+
}
|
|
131
|
+
if (encryptedKey) {
|
|
132
|
+
jwe.encrypted_key = encode(encryptedKey);
|
|
133
|
+
}
|
|
134
|
+
if (aadMember) {
|
|
135
|
+
jwe.aad = aadMember;
|
|
136
|
+
}
|
|
137
|
+
if (this._protectedHeader) {
|
|
138
|
+
jwe.protected = decoder.decode(protectedHeader);
|
|
139
|
+
}
|
|
140
|
+
if (this._sharedUnprotectedHeader) {
|
|
141
|
+
jwe.unprotected = this._sharedUnprotectedHeader;
|
|
142
|
+
}
|
|
143
|
+
if (this._unprotectedHeader) {
|
|
144
|
+
jwe.header = this._unprotectedHeader;
|
|
145
|
+
}
|
|
146
|
+
return jwe;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
export {
|
|
150
|
+
FlattenedEncrypt
|
|
151
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { concat, uint64be } from "./golocal-cloud-wrapper.es241.js";
|
|
2
|
+
import checkIvLength from "./golocal-cloud-wrapper.es299.js";
|
|
3
|
+
import checkCekLength from "./golocal-cloud-wrapper.es300.js";
|
|
4
|
+
import crypto, { isCryptoKey } from "./golocal-cloud-wrapper.es294.js";
|
|
5
|
+
import { checkEncCryptoKey } from "./golocal-cloud-wrapper.es301.js";
|
|
6
|
+
import invalidKeyInput from "./golocal-cloud-wrapper.es297.js";
|
|
7
|
+
import generateIv from "./golocal-cloud-wrapper.es302.js";
|
|
8
|
+
import { JOSENotSupported } from "./golocal-cloud-wrapper.es240.js";
|
|
9
|
+
import { types } from "./golocal-cloud-wrapper.es298.js";
|
|
10
|
+
async function cbcEncrypt(enc, plaintext, cek, iv, aad) {
|
|
11
|
+
if (!(cek instanceof Uint8Array)) {
|
|
12
|
+
throw new TypeError(invalidKeyInput(cek, "Uint8Array"));
|
|
13
|
+
}
|
|
14
|
+
const keySize = parseInt(enc.slice(1, 4), 10);
|
|
15
|
+
const encKey = await crypto.subtle.importKey("raw", cek.subarray(keySize >> 3), "AES-CBC", false, ["encrypt"]);
|
|
16
|
+
const macKey = await crypto.subtle.importKey("raw", cek.subarray(0, keySize >> 3), {
|
|
17
|
+
hash: `SHA-${keySize << 1}`,
|
|
18
|
+
name: "HMAC"
|
|
19
|
+
}, false, ["sign"]);
|
|
20
|
+
const ciphertext = new Uint8Array(await crypto.subtle.encrypt({
|
|
21
|
+
iv,
|
|
22
|
+
name: "AES-CBC"
|
|
23
|
+
}, encKey, plaintext));
|
|
24
|
+
const macData = concat(aad, iv, ciphertext, uint64be(aad.length << 3));
|
|
25
|
+
const tag = new Uint8Array((await crypto.subtle.sign("HMAC", macKey, macData)).slice(0, keySize >> 3));
|
|
26
|
+
return { ciphertext, tag, iv };
|
|
27
|
+
}
|
|
28
|
+
async function gcmEncrypt(enc, plaintext, cek, iv, aad) {
|
|
29
|
+
let encKey;
|
|
30
|
+
if (cek instanceof Uint8Array) {
|
|
31
|
+
encKey = await crypto.subtle.importKey("raw", cek, "AES-GCM", false, ["encrypt"]);
|
|
32
|
+
} else {
|
|
33
|
+
checkEncCryptoKey(cek, enc, "encrypt");
|
|
34
|
+
encKey = cek;
|
|
35
|
+
}
|
|
36
|
+
const encrypted = new Uint8Array(await crypto.subtle.encrypt({
|
|
37
|
+
additionalData: aad,
|
|
38
|
+
iv,
|
|
39
|
+
name: "AES-GCM",
|
|
40
|
+
tagLength: 128
|
|
41
|
+
}, encKey, plaintext));
|
|
42
|
+
const tag = encrypted.slice(-16);
|
|
43
|
+
const ciphertext = encrypted.slice(0, -16);
|
|
44
|
+
return { ciphertext, tag, iv };
|
|
45
|
+
}
|
|
46
|
+
const encrypt = async (enc, plaintext, cek, iv, aad) => {
|
|
47
|
+
if (!isCryptoKey(cek) && !(cek instanceof Uint8Array)) {
|
|
48
|
+
throw new TypeError(invalidKeyInput(cek, ...types, "Uint8Array"));
|
|
49
|
+
}
|
|
50
|
+
if (iv) {
|
|
51
|
+
checkIvLength(enc, iv);
|
|
52
|
+
} else {
|
|
53
|
+
iv = generateIv(enc);
|
|
54
|
+
}
|
|
55
|
+
switch (enc) {
|
|
56
|
+
case "A128CBC-HS256":
|
|
57
|
+
case "A192CBC-HS384":
|
|
58
|
+
case "A256CBC-HS512":
|
|
59
|
+
if (cek instanceof Uint8Array) {
|
|
60
|
+
checkCekLength(cek, parseInt(enc.slice(-3), 10));
|
|
61
|
+
}
|
|
62
|
+
return cbcEncrypt(enc, plaintext, cek, iv, aad);
|
|
63
|
+
case "A128GCM":
|
|
64
|
+
case "A192GCM":
|
|
65
|
+
case "A256GCM":
|
|
66
|
+
if (cek instanceof Uint8Array) {
|
|
67
|
+
checkCekLength(cek, parseInt(enc.slice(1, 4), 10));
|
|
68
|
+
}
|
|
69
|
+
return gcmEncrypt(enc, plaintext, cek, iv, aad);
|
|
70
|
+
default:
|
|
71
|
+
throw new JOSENotSupported("Unsupported JWE Content Encryption Algorithm");
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
export {
|
|
75
|
+
encrypt as default
|
|
76
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { wrap as wrap$1 } from "./golocal-cloud-wrapper.es284.js";
|
|
2
|
+
import { ecdhAllowed, generateEpk, deriveKey } from "./golocal-cloud-wrapper.es285.js";
|
|
3
|
+
import { encrypt } from "./golocal-cloud-wrapper.es286.js";
|
|
4
|
+
import { encrypt as encrypt$1 } from "./golocal-cloud-wrapper.es287.js";
|
|
5
|
+
import { encode } from "./golocal-cloud-wrapper.es242.js";
|
|
6
|
+
import normalize from "./golocal-cloud-wrapper.es288.js";
|
|
7
|
+
import generateCek, { bitLength } from "./golocal-cloud-wrapper.es247.js";
|
|
8
|
+
import { JOSENotSupported } from "./golocal-cloud-wrapper.es240.js";
|
|
9
|
+
import { exportJWK } from "./golocal-cloud-wrapper.es263.js";
|
|
10
|
+
import checkKeyType from "./golocal-cloud-wrapper.es252.js";
|
|
11
|
+
import { wrap } from "./golocal-cloud-wrapper.es289.js";
|
|
12
|
+
async function encryptKeyManagement(alg, enc, key, providedCek, providedParameters = {}) {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
let encryptedKey;
|
|
15
|
+
let parameters;
|
|
16
|
+
let cek;
|
|
17
|
+
checkKeyType(alg, key, "encrypt");
|
|
18
|
+
key = await ((_b = (_a = normalize).normalizePublicKey) == null ? void 0 : _b.call(_a, key, alg)) || key;
|
|
19
|
+
switch (alg) {
|
|
20
|
+
case "dir": {
|
|
21
|
+
cek = key;
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
case "ECDH-ES":
|
|
25
|
+
case "ECDH-ES+A128KW":
|
|
26
|
+
case "ECDH-ES+A192KW":
|
|
27
|
+
case "ECDH-ES+A256KW": {
|
|
28
|
+
if (!ecdhAllowed(key)) {
|
|
29
|
+
throw new JOSENotSupported("ECDH with the provided key is not allowed or not supported by your javascript runtime");
|
|
30
|
+
}
|
|
31
|
+
const { apu, apv } = providedParameters;
|
|
32
|
+
let { epk: ephemeralKey } = providedParameters;
|
|
33
|
+
ephemeralKey || (ephemeralKey = (await generateEpk(key)).privateKey);
|
|
34
|
+
const { x, y, crv, kty } = await exportJWK(ephemeralKey);
|
|
35
|
+
const sharedSecret = await deriveKey(key, ephemeralKey, alg === "ECDH-ES" ? enc : alg, alg === "ECDH-ES" ? bitLength(enc) : parseInt(alg.slice(-5, -2), 10), apu, apv);
|
|
36
|
+
parameters = { epk: { x, crv, kty } };
|
|
37
|
+
if (kty === "EC")
|
|
38
|
+
parameters.epk.y = y;
|
|
39
|
+
if (apu)
|
|
40
|
+
parameters.apu = encode(apu);
|
|
41
|
+
if (apv)
|
|
42
|
+
parameters.apv = encode(apv);
|
|
43
|
+
if (alg === "ECDH-ES") {
|
|
44
|
+
cek = sharedSecret;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
cek = providedCek || generateCek(enc);
|
|
48
|
+
const kwAlg = alg.slice(-6);
|
|
49
|
+
encryptedKey = await wrap$1(kwAlg, sharedSecret, cek);
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
case "RSA1_5":
|
|
53
|
+
case "RSA-OAEP":
|
|
54
|
+
case "RSA-OAEP-256":
|
|
55
|
+
case "RSA-OAEP-384":
|
|
56
|
+
case "RSA-OAEP-512": {
|
|
57
|
+
cek = providedCek || generateCek(enc);
|
|
58
|
+
encryptedKey = await encrypt$1(alg, key, cek);
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case "PBES2-HS256+A128KW":
|
|
62
|
+
case "PBES2-HS384+A192KW":
|
|
63
|
+
case "PBES2-HS512+A256KW": {
|
|
64
|
+
cek = providedCek || generateCek(enc);
|
|
65
|
+
const { p2c, p2s } = providedParameters;
|
|
66
|
+
({ encryptedKey, ...parameters } = await encrypt(alg, key, cek, p2c, p2s));
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
case "A128KW":
|
|
70
|
+
case "A192KW":
|
|
71
|
+
case "A256KW": {
|
|
72
|
+
cek = providedCek || generateCek(enc);
|
|
73
|
+
encryptedKey = await wrap$1(alg, key, cek);
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
case "A128GCMKW":
|
|
77
|
+
case "A192GCMKW":
|
|
78
|
+
case "A256GCMKW": {
|
|
79
|
+
cek = providedCek || generateCek(enc);
|
|
80
|
+
const { iv } = providedParameters;
|
|
81
|
+
({ encryptedKey, ...parameters } = await wrap(alg, key, cek, iv));
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
default: {
|
|
85
|
+
throw new JOSENotSupported('Invalid or unsupported "alg" (JWE Algorithm) header value');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return { cek, encryptedKey, parameters };
|
|
89
|
+
}
|
|
90
|
+
export {
|
|
91
|
+
encryptKeyManagement as default
|
|
92
|
+
};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { composeRefs } from "./golocal-cloud-wrapper.es56.js";
|
|
3
|
+
import { j as jsxRuntimeExports } from "./golocal-cloud-wrapper.es18.js";
|
|
4
|
+
// @__NO_SIDE_EFFECTS__
|
|
5
|
+
function createSlot(ownerName) {
|
|
6
|
+
const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
|
|
7
|
+
const Slot2 = React.forwardRef((props, forwardedRef) => {
|
|
8
|
+
const { children, ...slotProps } = props;
|
|
9
|
+
const childrenArray = React.Children.toArray(children);
|
|
10
|
+
const slottable = childrenArray.find(isSlottable);
|
|
11
|
+
if (slottable) {
|
|
12
|
+
const newElement = slottable.props.children;
|
|
13
|
+
const newChildren = childrenArray.map((child) => {
|
|
14
|
+
if (child === slottable) {
|
|
15
|
+
if (React.Children.count(newElement) > 1) return React.Children.only(null);
|
|
16
|
+
return React.isValidElement(newElement) ? newElement.props.children : null;
|
|
17
|
+
} else {
|
|
18
|
+
return child;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });
|
|
22
|
+
}
|
|
23
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });
|
|
24
|
+
});
|
|
25
|
+
Slot2.displayName = `${ownerName}.Slot`;
|
|
26
|
+
return Slot2;
|
|
27
|
+
}
|
|
28
|
+
var Slot = /* @__PURE__ */ createSlot("Slot");
|
|
29
|
+
// @__NO_SIDE_EFFECTS__
|
|
30
|
+
function createSlotClone(ownerName) {
|
|
31
|
+
const SlotClone = React.forwardRef((props, forwardedRef) => {
|
|
32
|
+
const { children, ...slotProps } = props;
|
|
33
|
+
if (React.isValidElement(children)) {
|
|
34
|
+
const childrenRef = getElementRef(children);
|
|
35
|
+
const props2 = mergeProps(slotProps, children.props);
|
|
36
|
+
if (children.type !== React.Fragment) {
|
|
37
|
+
props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
|
|
38
|
+
}
|
|
39
|
+
return React.cloneElement(children, props2);
|
|
40
|
+
}
|
|
41
|
+
return React.Children.count(children) > 1 ? React.Children.only(null) : null;
|
|
42
|
+
});
|
|
43
|
+
SlotClone.displayName = `${ownerName}.SlotClone`;
|
|
44
|
+
return SlotClone;
|
|
45
|
+
}
|
|
46
|
+
var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
|
|
47
|
+
// @__NO_SIDE_EFFECTS__
|
|
48
|
+
function createSlottable(ownerName) {
|
|
49
|
+
const Slottable2 = ({ children }) => {
|
|
50
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children });
|
|
51
|
+
};
|
|
52
|
+
Slottable2.displayName = `${ownerName}.Slottable`;
|
|
53
|
+
Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
|
|
54
|
+
return Slottable2;
|
|
55
|
+
}
|
|
56
|
+
function isSlottable(child) {
|
|
57
|
+
return React.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
|
|
58
|
+
}
|
|
59
|
+
function mergeProps(slotProps, childProps) {
|
|
60
|
+
const overrideProps = { ...childProps };
|
|
61
|
+
for (const propName in childProps) {
|
|
62
|
+
const slotPropValue = slotProps[propName];
|
|
63
|
+
const childPropValue = childProps[propName];
|
|
64
|
+
const isHandler = /^on[A-Z]/.test(propName);
|
|
65
|
+
if (isHandler) {
|
|
66
|
+
if (slotPropValue && childPropValue) {
|
|
67
|
+
overrideProps[propName] = (...args) => {
|
|
68
|
+
const result = childPropValue(...args);
|
|
69
|
+
slotPropValue(...args);
|
|
70
|
+
return result;
|
|
71
|
+
};
|
|
72
|
+
} else if (slotPropValue) {
|
|
73
|
+
overrideProps[propName] = slotPropValue;
|
|
74
|
+
}
|
|
75
|
+
} else if (propName === "style") {
|
|
76
|
+
overrideProps[propName] = { ...slotPropValue, ...childPropValue };
|
|
77
|
+
} else if (propName === "className") {
|
|
78
|
+
overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return { ...slotProps, ...overrideProps };
|
|
82
|
+
}
|
|
83
|
+
function getElementRef(element) {
|
|
84
|
+
var _a, _b;
|
|
85
|
+
let getter = (_a = Object.getOwnPropertyDescriptor(element.props, "ref")) == null ? void 0 : _a.get;
|
|
86
|
+
let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
87
|
+
if (mayWarn) {
|
|
88
|
+
return element.ref;
|
|
89
|
+
}
|
|
90
|
+
getter = (_b = Object.getOwnPropertyDescriptor(element, "ref")) == null ? void 0 : _b.get;
|
|
91
|
+
mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
92
|
+
if (mayWarn) {
|
|
93
|
+
return element.props.ref;
|
|
94
|
+
}
|
|
95
|
+
return element.props.ref || element.ref;
|
|
96
|
+
}
|
|
97
|
+
export {
|
|
98
|
+
Slot as Root,
|
|
99
|
+
Slot,
|
|
100
|
+
createSlot,
|
|
101
|
+
createSlottable
|
|
102
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import epoch from "./golocal-cloud-wrapper.es291.js";
|
|
2
|
+
import isObject from "./golocal-cloud-wrapper.es245.js";
|
|
3
|
+
import secs from "./golocal-cloud-wrapper.es292.js";
|
|
4
|
+
function validateInput(label, input) {
|
|
5
|
+
if (!Number.isFinite(input)) {
|
|
6
|
+
throw new TypeError(`Invalid ${label} input`);
|
|
7
|
+
}
|
|
8
|
+
return input;
|
|
9
|
+
}
|
|
10
|
+
class ProduceJWT {
|
|
11
|
+
constructor(payload = {}) {
|
|
12
|
+
if (!isObject(payload)) {
|
|
13
|
+
throw new TypeError("JWT Claims Set MUST be an object");
|
|
14
|
+
}
|
|
15
|
+
this._payload = payload;
|
|
16
|
+
}
|
|
17
|
+
setIssuer(issuer) {
|
|
18
|
+
this._payload = { ...this._payload, iss: issuer };
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
setSubject(subject) {
|
|
22
|
+
this._payload = { ...this._payload, sub: subject };
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
setAudience(audience) {
|
|
26
|
+
this._payload = { ...this._payload, aud: audience };
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
setJti(jwtId) {
|
|
30
|
+
this._payload = { ...this._payload, jti: jwtId };
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
setNotBefore(input) {
|
|
34
|
+
if (typeof input === "number") {
|
|
35
|
+
this._payload = { ...this._payload, nbf: validateInput("setNotBefore", input) };
|
|
36
|
+
} else if (input instanceof Date) {
|
|
37
|
+
this._payload = { ...this._payload, nbf: validateInput("setNotBefore", epoch(input)) };
|
|
38
|
+
} else {
|
|
39
|
+
this._payload = { ...this._payload, nbf: epoch(/* @__PURE__ */ new Date()) + secs(input) };
|
|
40
|
+
}
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
setExpirationTime(input) {
|
|
44
|
+
if (typeof input === "number") {
|
|
45
|
+
this._payload = { ...this._payload, exp: validateInput("setExpirationTime", input) };
|
|
46
|
+
} else if (input instanceof Date) {
|
|
47
|
+
this._payload = { ...this._payload, exp: validateInput("setExpirationTime", epoch(input)) };
|
|
48
|
+
} else {
|
|
49
|
+
this._payload = { ...this._payload, exp: epoch(/* @__PURE__ */ new Date()) + secs(input) };
|
|
50
|
+
}
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
setIssuedAt(input) {
|
|
54
|
+
if (typeof input === "undefined") {
|
|
55
|
+
this._payload = { ...this._payload, iat: epoch(/* @__PURE__ */ new Date()) };
|
|
56
|
+
} else if (input instanceof Date) {
|
|
57
|
+
this._payload = { ...this._payload, iat: validateInput("setIssuedAt", epoch(input)) };
|
|
58
|
+
} else if (typeof input === "string") {
|
|
59
|
+
this._payload = {
|
|
60
|
+
...this._payload,
|
|
61
|
+
iat: validateInput("setIssuedAt", epoch(/* @__PURE__ */ new Date()) + secs(input))
|
|
62
|
+
};
|
|
63
|
+
} else {
|
|
64
|
+
this._payload = { ...this._payload, iat: validateInput("setIssuedAt", input) };
|
|
65
|
+
}
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export {
|
|
70
|
+
ProduceJWT
|
|
71
|
+
};
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { importJWK } from "./golocal-cloud-wrapper.es156.js";
|
|
2
|
+
import { JWKSInvalid, JWKSNoMatchingKey, JWKSMultipleMatchingKeys, JOSENotSupported } from "./golocal-cloud-wrapper.es240.js";
|
|
3
|
+
import isObject from "./golocal-cloud-wrapper.es245.js";
|
|
4
|
+
function getKtyFromAlg(alg) {
|
|
5
|
+
switch (typeof alg === "string" && alg.slice(0, 2)) {
|
|
6
|
+
case "RS":
|
|
7
|
+
case "PS":
|
|
8
|
+
return "RSA";
|
|
9
|
+
case "ES":
|
|
10
|
+
return "EC";
|
|
11
|
+
case "Ed":
|
|
12
|
+
return "OKP";
|
|
13
|
+
default:
|
|
14
|
+
throw new JOSENotSupported('Unsupported "alg" value for a JSON Web Key Set');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function isJWKSLike(jwks) {
|
|
18
|
+
return jwks && typeof jwks === "object" && Array.isArray(jwks.keys) && jwks.keys.every(isJWKLike);
|
|
19
|
+
}
|
|
20
|
+
function isJWKLike(key) {
|
|
21
|
+
return isObject(key);
|
|
22
|
+
}
|
|
23
|
+
function clone(obj) {
|
|
24
|
+
if (typeof structuredClone === "function") {
|
|
25
|
+
return structuredClone(obj);
|
|
26
|
+
}
|
|
27
|
+
return JSON.parse(JSON.stringify(obj));
|
|
28
|
+
}
|
|
29
|
+
class LocalJWKSet {
|
|
30
|
+
constructor(jwks) {
|
|
31
|
+
this._cached = /* @__PURE__ */ new WeakMap();
|
|
32
|
+
if (!isJWKSLike(jwks)) {
|
|
33
|
+
throw new JWKSInvalid("JSON Web Key Set malformed");
|
|
34
|
+
}
|
|
35
|
+
this._jwks = clone(jwks);
|
|
36
|
+
}
|
|
37
|
+
async getKey(protectedHeader, token) {
|
|
38
|
+
const { alg, kid } = { ...protectedHeader, ...token == null ? void 0 : token.header };
|
|
39
|
+
const kty = getKtyFromAlg(alg);
|
|
40
|
+
const candidates = this._jwks.keys.filter((jwk2) => {
|
|
41
|
+
let candidate = kty === jwk2.kty;
|
|
42
|
+
if (candidate && typeof kid === "string") {
|
|
43
|
+
candidate = kid === jwk2.kid;
|
|
44
|
+
}
|
|
45
|
+
if (candidate && typeof jwk2.alg === "string") {
|
|
46
|
+
candidate = alg === jwk2.alg;
|
|
47
|
+
}
|
|
48
|
+
if (candidate && typeof jwk2.use === "string") {
|
|
49
|
+
candidate = jwk2.use === "sig";
|
|
50
|
+
}
|
|
51
|
+
if (candidate && Array.isArray(jwk2.key_ops)) {
|
|
52
|
+
candidate = jwk2.key_ops.includes("verify");
|
|
53
|
+
}
|
|
54
|
+
if (candidate) {
|
|
55
|
+
switch (alg) {
|
|
56
|
+
case "ES256":
|
|
57
|
+
candidate = jwk2.crv === "P-256";
|
|
58
|
+
break;
|
|
59
|
+
case "ES256K":
|
|
60
|
+
candidate = jwk2.crv === "secp256k1";
|
|
61
|
+
break;
|
|
62
|
+
case "ES384":
|
|
63
|
+
candidate = jwk2.crv === "P-384";
|
|
64
|
+
break;
|
|
65
|
+
case "ES512":
|
|
66
|
+
candidate = jwk2.crv === "P-521";
|
|
67
|
+
break;
|
|
68
|
+
case "Ed25519":
|
|
69
|
+
candidate = jwk2.crv === "Ed25519";
|
|
70
|
+
break;
|
|
71
|
+
case "EdDSA":
|
|
72
|
+
candidate = jwk2.crv === "Ed25519" || jwk2.crv === "Ed448";
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return candidate;
|
|
77
|
+
});
|
|
78
|
+
const { 0: jwk, length } = candidates;
|
|
79
|
+
if (length === 0) {
|
|
80
|
+
throw new JWKSNoMatchingKey();
|
|
81
|
+
}
|
|
82
|
+
if (length !== 1) {
|
|
83
|
+
const error = new JWKSMultipleMatchingKeys();
|
|
84
|
+
const { _cached } = this;
|
|
85
|
+
error[Symbol.asyncIterator] = async function* () {
|
|
86
|
+
for (const jwk2 of candidates) {
|
|
87
|
+
try {
|
|
88
|
+
yield await importWithAlgCache(_cached, jwk2, alg);
|
|
89
|
+
} catch {
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
return importWithAlgCache(this._cached, jwk, alg);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async function importWithAlgCache(cache, jwk, alg) {
|
|
99
|
+
const cached = cache.get(jwk) || cache.set(jwk, {}).get(jwk);
|
|
100
|
+
if (cached[alg] === void 0) {
|
|
101
|
+
const key = await importJWK({ ...jwk, ext: true }, alg);
|
|
102
|
+
if (key instanceof Uint8Array || key.type !== "public") {
|
|
103
|
+
throw new JWKSInvalid("JSON Web Key Set members must be public keys");
|
|
104
|
+
}
|
|
105
|
+
cached[alg] = key;
|
|
106
|
+
}
|
|
107
|
+
return cached[alg];
|
|
108
|
+
}
|
|
109
|
+
function createLocalJWKSet(jwks) {
|
|
110
|
+
const set = new LocalJWKSet(jwks);
|
|
111
|
+
const localJWKSet = async (protectedHeader, token) => set.getKey(protectedHeader, token);
|
|
112
|
+
Object.defineProperties(localJWKSet, {
|
|
113
|
+
jwks: {
|
|
114
|
+
value: () => clone(set._jwks),
|
|
115
|
+
enumerable: true,
|
|
116
|
+
configurable: false,
|
|
117
|
+
writable: false
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
return localJWKSet;
|
|
121
|
+
}
|
|
122
|
+
export {
|
|
123
|
+
createLocalJWKSet
|
|
124
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { JWKSTimeout, JOSEError } from "./golocal-cloud-wrapper.es240.js";
|
|
2
|
+
const fetchJwks = async (url, timeout, options) => {
|
|
3
|
+
let controller;
|
|
4
|
+
let id;
|
|
5
|
+
let timedOut = false;
|
|
6
|
+
if (typeof AbortController === "function") {
|
|
7
|
+
controller = new AbortController();
|
|
8
|
+
id = setTimeout(() => {
|
|
9
|
+
timedOut = true;
|
|
10
|
+
controller.abort();
|
|
11
|
+
}, timeout);
|
|
12
|
+
}
|
|
13
|
+
const response = await fetch(url.href, {
|
|
14
|
+
signal: controller ? controller.signal : void 0,
|
|
15
|
+
redirect: "manual",
|
|
16
|
+
headers: options.headers
|
|
17
|
+
}).catch((err) => {
|
|
18
|
+
if (timedOut)
|
|
19
|
+
throw new JWKSTimeout();
|
|
20
|
+
throw err;
|
|
21
|
+
});
|
|
22
|
+
if (id !== void 0)
|
|
23
|
+
clearTimeout(id);
|
|
24
|
+
if (response.status !== 200) {
|
|
25
|
+
throw new JOSEError("Expected 200 OK from the JSON Web Key Set HTTP response");
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
return await response.json();
|
|
29
|
+
} catch {
|
|
30
|
+
throw new JOSEError("Failed to parse the JSON Web Key Set HTTP response as JSON");
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
export {
|
|
34
|
+
fetchJwks as default
|
|
35
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import crypto, { isCryptoKey } from "./golocal-cloud-wrapper.es294.js";
|
|
2
|
+
import invalidKeyInput from "./golocal-cloud-wrapper.es297.js";
|
|
3
|
+
import { encode } from "./golocal-cloud-wrapper.es242.js";
|
|
4
|
+
import { types } from "./golocal-cloud-wrapper.es298.js";
|
|
5
|
+
const keyToJWK = async (key) => {
|
|
6
|
+
if (key instanceof Uint8Array) {
|
|
7
|
+
return {
|
|
8
|
+
kty: "oct",
|
|
9
|
+
k: encode(key)
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
if (!isCryptoKey(key)) {
|
|
13
|
+
throw new TypeError(invalidKeyInput(key, ...types, "Uint8Array"));
|
|
14
|
+
}
|
|
15
|
+
if (!key.extractable) {
|
|
16
|
+
throw new TypeError("non-extractable CryptoKey cannot be exported as a JWK");
|
|
17
|
+
}
|
|
18
|
+
const { ext, key_ops, alg, use, ...jwk } = await crypto.subtle.exportKey("jwk", key);
|
|
19
|
+
return jwk;
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
keyToJWK as default
|
|
23
|
+
};
|