react-oauth-providers 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __defProps = Object.defineProperties;
5
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
5
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
8
7
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
- var __getProtoOf = Object.getPrototypeOf;
10
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
11
9
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
10
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -34,14 +32,6 @@ var __copyProps = (to, from, except, desc) => {
34
32
  }
35
33
  return to;
36
34
  };
37
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
38
- // If the importer is in node compatibility mode or this is not an ESM
39
- // file that has been converted to a CommonJS file using a Babel-
40
- // compatible transform (i.e. "__esModule" has not been set), then set
41
- // "default" to the CommonJS "module.exports" for node compatibility.
42
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
43
- mod
44
- ));
45
35
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
46
36
  var __async = (__this, __arguments, generator) => {
47
37
  return new Promise((resolve, reject) => {
@@ -78,7 +68,7 @@ var import_react = require("react");
78
68
  var AuthContext = (0, import_react.createContext)({});
79
69
 
80
70
  // src/AuthProvider.tsx
81
- var import_react2 = __toESM(require("react"));
71
+ var import_react2 = require("react");
82
72
 
83
73
  // src/utils/session.ts
84
74
  function setSessionItem(key, value, ttlMs) {
@@ -149,16 +139,28 @@ var http_default = {
149
139
  };
150
140
 
151
141
  // src/utils/pkce.ts
152
- var import_oauth_pkce = __toESM(require("oauth-pkce"));
153
142
  var generatePkce = () => __async(void 0, null, function* () {
154
- return new Promise((resolve, reject) => {
155
- (0, import_oauth_pkce.default)(50, (error, { verifier, challenge }) => {
156
- if (error)
157
- reject(error);
158
- resolve({ verifier, challenge, algorithm: "S256" });
159
- });
160
- });
143
+ const array = new Uint8Array(32);
144
+ crypto.getRandomValues(array);
145
+ const verifier = base64UrlEncode(array);
146
+ const buffer = new TextEncoder().encode(verifier);
147
+ const digest = yield crypto.subtle.digest("SHA-256", buffer);
148
+ const challenge = base64UrlEncode(new Uint8Array(digest));
149
+ return {
150
+ verifier,
151
+ challenge,
152
+ algorithm: "S256"
153
+ };
161
154
  });
155
+ var base64UrlEncode = (array) => {
156
+ let str = "";
157
+ const chunkSize = 32768;
158
+ for (let i = 0; i < array.length; i += chunkSize) {
159
+ const chunk = array.subarray(i, i + chunkSize);
160
+ str += String.fromCharCode.apply(null, Array.from(chunk));
161
+ }
162
+ return btoa(str).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
163
+ };
162
164
 
163
165
  // src/utils/others.ts
164
166
  var toURL = (input) => {
@@ -490,6 +492,7 @@ var clearTokens = () => {
490
492
  };
491
493
 
492
494
  // src/AuthProvider.tsx
495
+ var import_jsx_runtime = require("react/jsx-runtime");
493
496
  var AuthProvider = ({
494
497
  authConfig,
495
498
  children
@@ -557,7 +560,7 @@ var AuthProvider = ({
557
560
  },
558
561
  []
559
562
  );
560
- return /* @__PURE__ */ import_react2.default.createElement(
563
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
561
564
  AuthContext.Provider,
562
565
  {
563
566
  value: {
@@ -565,9 +568,9 @@ var AuthProvider = ({
565
568
  signinWithGoogle,
566
569
  user,
567
570
  logOut
568
- }
569
- },
570
- children
571
+ },
572
+ children
573
+ }
571
574
  );
572
575
  };
573
576
 
package/dist/index.mjs CHANGED
@@ -43,7 +43,7 @@ import { createContext } from "react";
43
43
  var AuthContext = createContext({});
44
44
 
45
45
  // src/AuthProvider.tsx
46
- import React, { useCallback, useEffect, useMemo, useState } from "react";
46
+ import { useCallback, useEffect, useMemo, useState } from "react";
47
47
 
48
48
  // src/utils/session.ts
49
49
  function setSessionItem(key, value, ttlMs) {
@@ -114,16 +114,28 @@ var http_default = {
114
114
  };
115
115
 
116
116
  // src/utils/pkce.ts
117
- import getPkce from "oauth-pkce";
118
117
  var generatePkce = () => __async(void 0, null, function* () {
119
- return new Promise((resolve, reject) => {
120
- getPkce(50, (error, { verifier, challenge }) => {
121
- if (error)
122
- reject(error);
123
- resolve({ verifier, challenge, algorithm: "S256" });
124
- });
125
- });
118
+ const array = new Uint8Array(32);
119
+ crypto.getRandomValues(array);
120
+ const verifier = base64UrlEncode(array);
121
+ const buffer = new TextEncoder().encode(verifier);
122
+ const digest = yield crypto.subtle.digest("SHA-256", buffer);
123
+ const challenge = base64UrlEncode(new Uint8Array(digest));
124
+ return {
125
+ verifier,
126
+ challenge,
127
+ algorithm: "S256"
128
+ };
126
129
  });
130
+ var base64UrlEncode = (array) => {
131
+ let str = "";
132
+ const chunkSize = 32768;
133
+ for (let i = 0; i < array.length; i += chunkSize) {
134
+ const chunk = array.subarray(i, i + chunkSize);
135
+ str += String.fromCharCode.apply(null, Array.from(chunk));
136
+ }
137
+ return btoa(str).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
138
+ };
127
139
 
128
140
  // src/utils/others.ts
129
141
  var toURL = (input) => {
@@ -455,6 +467,7 @@ var clearTokens = () => {
455
467
  };
456
468
 
457
469
  // src/AuthProvider.tsx
470
+ import { jsx } from "react/jsx-runtime";
458
471
  var AuthProvider = ({
459
472
  authConfig,
460
473
  children
@@ -522,7 +535,7 @@ var AuthProvider = ({
522
535
  },
523
536
  []
524
537
  );
525
- return /* @__PURE__ */ React.createElement(
538
+ return /* @__PURE__ */ jsx(
526
539
  AuthContext.Provider,
527
540
  {
528
541
  value: {
@@ -530,9 +543,9 @@ var AuthProvider = ({
530
543
  signinWithGoogle,
531
544
  user,
532
545
  logOut
533
- }
534
- },
535
- children
546
+ },
547
+ children
548
+ }
536
549
  );
537
550
  };
538
551
 
package/package.json CHANGED
@@ -1,19 +1,16 @@
1
1
  {
2
2
  "name": "react-oauth-providers",
3
- "version": "1.0.1",
4
- "main": "dist/index.cjs.js",
5
- "module": "dist/index.esm.js",
6
- "types": "dist/types/index.d.ts",
3
+ "version": "1.1.0",
4
+ "main": "dist/index.js",
5
+ "module": "dist/index.mjs",
6
+ "types": "dist/index.d.ts",
7
7
  "scripts": {
8
- "build": "tsup src/index.ts --format cjs,esm --dts --out-dir dist",
8
+ "build": "tsup",
9
9
  "test": "echo \"Error: no test specified\" && exit 1"
10
10
  },
11
11
  "files": [
12
12
  "dist"
13
13
  ],
14
- "dependencies": {
15
- "oauth-pkce": "^0.0.7"
16
- },
17
14
  "peerDependencies": {
18
15
  "react": "^18.0.0",
19
16
  "react-dom": "^18.0.0"