@newskit-render/auth 0.30.0 → 0.31.2

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 (49) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/__tests__/CookieView.d.ts +1 -0
  3. package/dist/{__tests__ → cjs/__tests__}/CookieView.js +5 -4
  4. package/dist/cjs/__tests__/CookieView.js.map +1 -0
  5. package/dist/cjs/client/CookieView.d.ts +5 -0
  6. package/dist/{client → cjs/client}/CookieView.js +3 -1
  7. package/dist/cjs/client/CookieView.js.map +1 -0
  8. package/dist/cjs/client/PageWithAuth.d.ts +6 -0
  9. package/dist/cjs/client/PageWithAuth.js +18 -0
  10. package/dist/cjs/client/PageWithAuth.js.map +1 -0
  11. package/dist/cjs/client/SessionProvider.d.ts +10 -0
  12. package/dist/cjs/client/SessionProvider.js +11 -0
  13. package/dist/cjs/client/SessionProvider.js.map +1 -0
  14. package/dist/cjs/client/index.d.ts +3 -0
  15. package/dist/cjs/client/index.js +16 -0
  16. package/dist/cjs/client/index.js.map +1 -0
  17. package/dist/cjs/index.d.ts +2 -0
  18. package/dist/cjs/index.js +19 -0
  19. package/dist/cjs/index.js.map +1 -0
  20. package/dist/cjs/providers/index.d.ts +7 -0
  21. package/dist/{providers → cjs/providers}/index.js +4 -3
  22. package/dist/cjs/providers/index.js.map +1 -0
  23. package/dist/esm/__tests__/CookieView.d.ts +1 -0
  24. package/dist/esm/__tests__/CookieView.js +39 -0
  25. package/dist/esm/__tests__/CookieView.js.map +1 -0
  26. package/dist/esm/client/CookieView.d.ts +5 -0
  27. package/dist/esm/client/CookieView.js +10 -0
  28. package/dist/esm/client/CookieView.js.map +1 -0
  29. package/dist/esm/client/PageWithAuth.d.ts +6 -0
  30. package/dist/esm/client/PageWithAuth.js +14 -0
  31. package/dist/esm/client/PageWithAuth.js.map +1 -0
  32. package/dist/esm/client/SessionProvider.d.ts +10 -0
  33. package/dist/esm/client/SessionProvider.js +7 -0
  34. package/dist/esm/client/SessionProvider.js.map +1 -0
  35. package/dist/esm/client/index.d.ts +3 -0
  36. package/dist/esm/client/index.js +4 -0
  37. package/dist/esm/client/index.js.map +1 -0
  38. package/dist/esm/index.d.ts +2 -0
  39. package/dist/esm/index.js +3 -0
  40. package/dist/esm/index.js.map +1 -0
  41. package/dist/esm/providers/index.d.ts +7 -0
  42. package/dist/esm/providers/index.js +17 -0
  43. package/dist/esm/providers/index.js.map +1 -0
  44. package/package.json +5 -5
  45. package/providers.js +2 -1
  46. package/dist/client/PageWithAuth.js +0 -16
  47. package/dist/client/SessionProvider.js +0 -12
  48. package/dist/client/index.js +0 -17
  49. package/index.js +0 -1
package/README.md CHANGED
@@ -8,8 +8,9 @@ Before starting, either locally or on deployed enviroments, you will need the fo
8
8
 
9
9
  - **OKTA_CLIENT_ID** - client id for **OKTA** app
10
10
  - **OKTA_CLIENT_SECRET** - client secret for **OKTA** app
11
- - **OKTA_DOMAIN** - domain of **OKTA** app i.e `newscorp.okta.com`
11
+ - **OKTA_DOMAIN** - domain of **OKTA** app i.e `https://newscorp.okta.com`
12
12
  - **NEXTAUTH_URL** - domain of your app i.e on local `http://localhost:3000` or on some environment `https://newskit-render.prod.ceng.newsuk.tech`
13
+ - **NEXTAUTH_SECRET** - A random string is used to hash tokens, sign/encrypt cookies and generate cryptographic keys. You can quickly create a good value on the command line via this openssl command. `openssl rand -base64 32`
13
14
 
14
15
  To get this information you need to raise a ticket with **ServiceDesk** for the attention of **IAM and Collaboration team**. You need to request they set up **OKTA** apps for each of your environments.
15
16
 
@@ -0,0 +1 @@
1
+ export {};
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var react_1 = __importDefault(require("react"));
7
7
  var react_dom_1 = require("react-dom");
8
- var CookieView_1 = __importDefault(require("../client/CookieView"));
8
+ var CookieView_1 = require("../client/CookieView");
9
9
  describe('CookieView', function () {
10
10
  var container;
11
11
  beforeEach(function () {
@@ -18,7 +18,7 @@ describe('CookieView', function () {
18
18
  container = { textContent: '' };
19
19
  });
20
20
  test('Not visible, no cookie set', function () {
21
- (0, react_dom_1.render)(react_1.default.createElement(CookieView_1.default, null,
21
+ (0, react_dom_1.render)(react_1.default.createElement(CookieView_1.CookieView, null,
22
22
  react_1.default.createElement("div", null, "Not visible")), container);
23
23
  expect(container.textContent).toBe('');
24
24
  });
@@ -27,7 +27,7 @@ describe('CookieView', function () {
27
27
  writable: true,
28
28
  value: 'nextAuthShowLogOut=false',
29
29
  });
30
- (0, react_dom_1.render)(react_1.default.createElement(CookieView_1.default, null,
30
+ (0, react_dom_1.render)(react_1.default.createElement(CookieView_1.CookieView, null,
31
31
  react_1.default.createElement("div", null, "visible")), container);
32
32
  expect(container.textContent).toBe('');
33
33
  });
@@ -36,8 +36,9 @@ describe('CookieView', function () {
36
36
  writable: true,
37
37
  value: 'nextAuthShowLogOut=true',
38
38
  });
39
- (0, react_dom_1.render)(react_1.default.createElement(CookieView_1.default, null,
39
+ (0, react_dom_1.render)(react_1.default.createElement(CookieView_1.CookieView, null,
40
40
  react_1.default.createElement("div", null, "visible")), container);
41
41
  expect(container.textContent).toBe('visible');
42
42
  });
43
43
  });
44
+ //# sourceMappingURL=CookieView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieView.js","sourceRoot":"","sources":["../../../src/__tests__/CookieView.tsx"],"names":[],"mappings":";;;;;AAAA,gDAAyB;AACzB,uCAA0D;AAC1D,mDAAiD;AAEjD,QAAQ,CAAC,YAAY,EAAE;IACrB,IAAI,SAAS,CAAA;IACb,UAAU,CAAC;QACT,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACzC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC;QACR,IAAA,kCAAsB,EAAC,SAAS,CAAC,CAAA;QACjC,SAAS,CAAC,MAAM,EAAE,CAAA;QAClB,SAAS,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE;QACjC,IAAA,kBAAM,EACJ,8BAAC,uBAAU;YACT,yDAAsB,CACX,EACb,SAAS,CACV,CAAA;QACD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sCAAsC,EAAE;QAC3C,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE;YACxC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,0BAA0B;SAClC,CAAC,CAAA;QACF,IAAA,kBAAM,EACJ,8BAAC,uBAAU;YACT,qDAAkB,CACP,EACb,SAAS,CACV,CAAA;QACD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,iCAAiC,EAAE;QACtC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE;YACxC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,yBAAyB;SACjC,CAAC,CAAA;QACF,IAAA,kBAAM,EACJ,8BAAC,uBAAU;YACT,qDAAkB,CACP,EACb,SAAS,CACV,CAAA;QACD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare const CookieView: ({ cookieName, children, }: {
3
+ cookieName?: string | undefined;
4
+ children: JSX.Element;
5
+ }) => JSX.Element | null;
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CookieView = void 0;
6
7
  var cookie_1 = __importDefault(require("cookie"));
7
8
  var CookieView = function (_a) {
8
9
  var _b = _a.cookieName, cookieName = _b === void 0 ? 'nextAuthShowLogOut' : _b, children = _a.children;
@@ -12,4 +13,5 @@ var CookieView = function (_a) {
12
13
  : null
13
14
  : null;
14
15
  };
15
- exports.default = CookieView;
16
+ exports.CookieView = CookieView;
17
+ //# sourceMappingURL=CookieView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieView.js","sourceRoot":"","sources":["../../../src/client/CookieView.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA2B;AACpB,IAAM,UAAU,GAAG,UAAC,EAM1B;QALC,kBAAiC,EAAjC,UAAU,mBAAG,oBAAoB,KAAA,EACjC,QAAQ,cAAA;IAKR,OAAA,OAAO,QAAQ,KAAK,WAAW;QAC7B,CAAC,CAAC,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,MAAM;YACpD,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI;QACR,CAAC,CAAC,IAAI;AAJR,CAIQ,CAAA;AAXG,QAAA,UAAU,cAWb"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export declare const PageWithAuth: ({ children, isLoading, onDenied, }: {
3
+ children: JSX.Element;
4
+ isLoading: JSX.Element;
5
+ onDenied: JSX.Element;
6
+ }) => JSX.Element;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PageWithAuth = void 0;
4
+ var react_1 = require("next-auth/react");
5
+ var PageWithAuth = function (_a) {
6
+ var children = _a.children, isLoading = _a.isLoading, onDenied = _a.onDenied;
7
+ var _b = (0, react_1.useSession)(), session = _b.data, status = _b.status;
8
+ if (status === 'loading')
9
+ return isLoading;
10
+ if (!session && status === 'unauthenticated') {
11
+ return onDenied;
12
+ }
13
+ else {
14
+ return children;
15
+ }
16
+ };
17
+ exports.PageWithAuth = PageWithAuth;
18
+ //# sourceMappingURL=PageWithAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageWithAuth.js","sourceRoot":"","sources":["../../../src/client/PageWithAuth.tsx"],"names":[],"mappings":";;;AAAA,yCAA4C;AAErC,IAAM,YAAY,GAAG,UAAC,EAQ5B;QAPC,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,QAAQ,cAAA;IAMF,IAAA,KAA4B,IAAA,kBAAU,GAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAA;IAE9C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAE1C,IAAI,CAAC,OAAO,IAAI,MAAM,KAAK,iBAAiB,EAAE;QAC5C,OAAO,QAAQ,CAAA;KAChB;SAAM;QACL,OAAO,QAAQ,CAAA;KAChB;AACH,CAAC,CAAA;AAlBY,QAAA,YAAY,gBAkBxB"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { Session } from 'next-auth';
3
+ export declare const SessionProvider: ({ pageProps, children, }: {
4
+ pageProps: {
5
+ session: Session;
6
+ } & {
7
+ [key: string]: unknown;
8
+ };
9
+ children: JSX.Element;
10
+ }) => JSX.Element;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionProvider = void 0;
4
+ var react_1 = require("react");
5
+ var react_2 = require("next-auth/react");
6
+ var SessionProvider = function (_a) {
7
+ var pageProps = _a.pageProps, children = _a.children;
8
+ return (0, react_1.createElement)(react_2.SessionProvider, { session: pageProps.session, children: children }, children);
9
+ };
10
+ exports.SessionProvider = SessionProvider;
11
+ //# sourceMappingURL=SessionProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionProvider.js","sourceRoot":"","sources":["../../../src/client/SessionProvider.tsx"],"names":[],"mappings":";;;AAAA,+BAAqC;AAErC,yCAA6D;AAEtD,IAAM,eAAe,GAAG,UAAC,EAM/B;QALC,SAAS,eAAA,EACT,QAAQ,cAAA;IAKR,OAAO,IAAA,qBAAa,EAClB,uBAAQ,EACR,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAClD,QAAQ,CACT,CAAA;AACH,CAAC,CAAA;AAZY,QAAA,eAAe,mBAY3B"}
@@ -0,0 +1,3 @@
1
+ export * from './PageWithAuth';
2
+ export * from './CookieView';
3
+ export * from './SessionProvider';
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./PageWithAuth"), exports);
14
+ __exportStar(require("./CookieView"), exports);
15
+ __exportStar(require("./SessionProvider"), exports);
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA8B;AAC9B,+CAA4B;AAC5B,oDAAiC"}
@@ -0,0 +1,2 @@
1
+ export { getSession, signIn, signOut } from 'next-auth/react';
2
+ export * from './client';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.signOut = exports.signIn = exports.getSession = void 0;
14
+ var react_1 = require("next-auth/react");
15
+ Object.defineProperty(exports, "getSession", { enumerable: true, get: function () { return react_1.getSession; } });
16
+ Object.defineProperty(exports, "signIn", { enumerable: true, get: function () { return react_1.signIn; } });
17
+ Object.defineProperty(exports, "signOut", { enumerable: true, get: function () { return react_1.signOut; } });
18
+ __exportStar(require("./client"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,yCAA6D;AAApD,mGAAA,UAAU,OAAA;AAAE,+FAAA,MAAM,OAAA;AAAE,gGAAA,OAAO,OAAA;AACpC,2CAAwB"}
@@ -0,0 +1,7 @@
1
+ import { NextApiRequest, NextApiResponse } from 'next';
2
+ declare const createAuthRoute: (req: NextApiRequest, res: NextApiResponse, providerOptions: {
3
+ OKTA_CLIENT_ID: string;
4
+ OKTA_CLIENT_SECRET: string;
5
+ OKTA_DOMAIN: string;
6
+ }) => Promise<void>;
7
+ export default createAuthRoute;
@@ -4,18 +4,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var next_auth_1 = __importDefault(require("next-auth"));
7
- var providers_1 = __importDefault(require("next-auth/providers"));
7
+ var okta_1 = __importDefault(require("next-auth/providers/okta"));
8
8
  var createAuthRoute = function (req, res, providerOptions) {
9
9
  var OKTA_CLIENT_ID = providerOptions.OKTA_CLIENT_ID, OKTA_CLIENT_SECRET = providerOptions.OKTA_CLIENT_SECRET, OKTA_DOMAIN = providerOptions.OKTA_DOMAIN;
10
10
  var options = {
11
11
  providers: [
12
- providers_1.default.Okta({
12
+ (0, okta_1.default)({
13
13
  clientId: OKTA_CLIENT_ID,
14
14
  clientSecret: OKTA_CLIENT_SECRET,
15
- domain: OKTA_DOMAIN,
15
+ issuer: OKTA_DOMAIN,
16
16
  }),
17
17
  ],
18
18
  };
19
19
  return (0, next_auth_1.default)(req, res, options);
20
20
  };
21
21
  exports.default = createAuthRoute;
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";;;;;AAAA,wDAAgC;AAEhC,kEAAmD;AACnD,IAAM,eAAe,GAAG,UACtB,GAAmB,EACnB,GAAoB,EACpB,eAIC;IAEO,IAAA,cAAc,GAAsC,eAAe,eAArD,EAAE,kBAAkB,GAAkB,eAAe,mBAAjC,EAAE,WAAW,GAAK,eAAe,YAApB,CAAoB;IAC3E,IAAM,OAAO,GAAG;QACd,SAAS,EAAE;YACT,IAAA,cAAY,EAAC;gBACX,QAAQ,EAAE,cAAc;gBACxB,YAAY,EAAE,kBAAkB;gBAChC,MAAM,EAAE,WAAW;aACpB,CAAC;SACH;KACF,CAAA;IAED,OAAO,IAAA,mBAAQ,EAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC,CAAA;AAED,kBAAe,eAAe,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ import React from 'react';
2
+ import { render, unmountComponentAtNode } from 'react-dom';
3
+ import { CookieView } from '../client/CookieView';
4
+ describe('CookieView', function () {
5
+ var container;
6
+ beforeEach(function () {
7
+ container = document.createElement('div');
8
+ document.body.appendChild(container);
9
+ });
10
+ afterEach(function () {
11
+ unmountComponentAtNode(container);
12
+ container.remove();
13
+ container = { textContent: '' };
14
+ });
15
+ test('Not visible, no cookie set', function () {
16
+ render(React.createElement(CookieView, null,
17
+ React.createElement("div", null, "Not visible")), container);
18
+ expect(container.textContent).toBe('');
19
+ });
20
+ test('Not visible, cookie set set to false', function () {
21
+ Object.defineProperty(document, 'cookie', {
22
+ writable: true,
23
+ value: 'nextAuthShowLogOut=false',
24
+ });
25
+ render(React.createElement(CookieView, null,
26
+ React.createElement("div", null, "visible")), container);
27
+ expect(container.textContent).toBe('');
28
+ });
29
+ test('Visible, cookie set set to true', function () {
30
+ Object.defineProperty(document, 'cookie', {
31
+ writable: true,
32
+ value: 'nextAuthShowLogOut=true',
33
+ });
34
+ render(React.createElement(CookieView, null,
35
+ React.createElement("div", null, "visible")), container);
36
+ expect(container.textContent).toBe('visible');
37
+ });
38
+ });
39
+ //# sourceMappingURL=CookieView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieView.js","sourceRoot":"","sources":["../../../src/__tests__/CookieView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,QAAQ,CAAC,YAAY,EAAE;IACrB,IAAI,SAAS,CAAA;IACb,UAAU,CAAC;QACT,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACzC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC;QACR,sBAAsB,CAAC,SAAS,CAAC,CAAA;QACjC,SAAS,CAAC,MAAM,EAAE,CAAA;QAClB,SAAS,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE;QACjC,MAAM,CACJ,oBAAC,UAAU;YACT,+CAAsB,CACX,EACb,SAAS,CACV,CAAA;QACD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sCAAsC,EAAE;QAC3C,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE;YACxC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,0BAA0B;SAClC,CAAC,CAAA;QACF,MAAM,CACJ,oBAAC,UAAU;YACT,2CAAkB,CACP,EACb,SAAS,CACV,CAAA;QACD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,iCAAiC,EAAE;QACtC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE;YACxC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,yBAAyB;SACjC,CAAC,CAAA;QACF,MAAM,CACJ,oBAAC,UAAU;YACT,2CAAkB,CACP,EACb,SAAS,CACV,CAAA;QACD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare const CookieView: ({ cookieName, children, }: {
3
+ cookieName?: string | undefined;
4
+ children: JSX.Element;
5
+ }) => JSX.Element | null;
@@ -0,0 +1,10 @@
1
+ import cookie from 'cookie';
2
+ export var CookieView = function (_a) {
3
+ var _b = _a.cookieName, cookieName = _b === void 0 ? 'nextAuthShowLogOut' : _b, children = _a.children;
4
+ return typeof document !== 'undefined'
5
+ ? cookie.parse(document.cookie)[cookieName] === 'true'
6
+ ? children
7
+ : null
8
+ : null;
9
+ };
10
+ //# sourceMappingURL=CookieView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieView.js","sourceRoot":"","sources":["../../../src/client/CookieView.tsx"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,MAAM,CAAC,IAAM,UAAU,GAAG,UAAC,EAM1B;QALC,kBAAiC,EAAjC,UAAU,mBAAG,oBAAoB,KAAA,EACjC,QAAQ,cAAA;IAKR,OAAA,OAAO,QAAQ,KAAK,WAAW;QAC7B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,MAAM;YACpD,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI;QACR,CAAC,CAAC,IAAI;AAJR,CAIQ,CAAA"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export declare const PageWithAuth: ({ children, isLoading, onDenied, }: {
3
+ children: JSX.Element;
4
+ isLoading: JSX.Element;
5
+ onDenied: JSX.Element;
6
+ }) => JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { useSession } from 'next-auth/react';
2
+ export var PageWithAuth = function (_a) {
3
+ var children = _a.children, isLoading = _a.isLoading, onDenied = _a.onDenied;
4
+ var _b = useSession(), session = _b.data, status = _b.status;
5
+ if (status === 'loading')
6
+ return isLoading;
7
+ if (!session && status === 'unauthenticated') {
8
+ return onDenied;
9
+ }
10
+ else {
11
+ return children;
12
+ }
13
+ };
14
+ //# sourceMappingURL=PageWithAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageWithAuth.js","sourceRoot":"","sources":["../../../src/client/PageWithAuth.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,CAAC,IAAM,YAAY,GAAG,UAAC,EAQ5B;QAPC,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,QAAQ,cAAA;IAMF,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAA;IAE9C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAE1C,IAAI,CAAC,OAAO,IAAI,MAAM,KAAK,iBAAiB,EAAE;QAC5C,OAAO,QAAQ,CAAA;KAChB;SAAM;QACL,OAAO,QAAQ,CAAA;KAChB;AACH,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { Session } from 'next-auth';
3
+ export declare const SessionProvider: ({ pageProps, children, }: {
4
+ pageProps: {
5
+ session: Session;
6
+ } & {
7
+ [key: string]: unknown;
8
+ };
9
+ children: JSX.Element;
10
+ }) => JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { createElement } from 'react';
2
+ import { SessionProvider as Provider } from 'next-auth/react';
3
+ export var SessionProvider = function (_a) {
4
+ var pageProps = _a.pageProps, children = _a.children;
5
+ return createElement(Provider, { session: pageProps.session, children: children }, children);
6
+ };
7
+ //# sourceMappingURL=SessionProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionProvider.js","sourceRoot":"","sources":["../../../src/client/SessionProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,EAAE,eAAe,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE7D,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,EAM/B;QALC,SAAS,eAAA,EACT,QAAQ,cAAA;IAKR,OAAO,aAAa,CAClB,QAAQ,EACR,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAClD,QAAQ,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './PageWithAuth';
2
+ export * from './CookieView';
3
+ export * from './SessionProvider';
@@ -0,0 +1,4 @@
1
+ export * from './PageWithAuth';
2
+ export * from './CookieView';
3
+ export * from './SessionProvider';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { getSession, signIn, signOut } from 'next-auth/react';
2
+ export * from './client';
@@ -0,0 +1,3 @@
1
+ export { getSession, signIn, signOut } from 'next-auth/react';
2
+ export * from './client';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC7D,cAAc,UAAU,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { NextApiRequest, NextApiResponse } from 'next';
2
+ declare const createAuthRoute: (req: NextApiRequest, res: NextApiResponse, providerOptions: {
3
+ OKTA_CLIENT_ID: string;
4
+ OKTA_CLIENT_SECRET: string;
5
+ OKTA_DOMAIN: string;
6
+ }) => Promise<void>;
7
+ export default createAuthRoute;
@@ -0,0 +1,17 @@
1
+ import NextAuth from 'next-auth';
2
+ import OktaProvider from 'next-auth/providers/okta';
3
+ var createAuthRoute = function (req, res, providerOptions) {
4
+ var OKTA_CLIENT_ID = providerOptions.OKTA_CLIENT_ID, OKTA_CLIENT_SECRET = providerOptions.OKTA_CLIENT_SECRET, OKTA_DOMAIN = providerOptions.OKTA_DOMAIN;
5
+ var options = {
6
+ providers: [
7
+ OktaProvider({
8
+ clientId: OKTA_CLIENT_ID,
9
+ clientSecret: OKTA_CLIENT_SECRET,
10
+ issuer: OKTA_DOMAIN,
11
+ }),
12
+ ],
13
+ };
14
+ return NextAuth(req, res, options);
15
+ };
16
+ export default createAuthRoute;
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAA;AAEhC,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,IAAM,eAAe,GAAG,UACtB,GAAmB,EACnB,GAAoB,EACpB,eAIC;IAEO,IAAA,cAAc,GAAsC,eAAe,eAArD,EAAE,kBAAkB,GAAkB,eAAe,mBAAjC,EAAE,WAAW,GAAK,eAAe,YAApB,CAAoB;IAC3E,IAAM,OAAO,GAAG;QACd,SAAS,EAAE;YACT,YAAY,CAAC;gBACX,QAAQ,EAAE,cAAc;gBACxB,YAAY,EAAE,kBAAkB;gBAChC,MAAM,EAAE,WAAW;aACpB,CAAC;SACH;KACF,CAAA;IAED,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC,CAAA;AAED,eAAe,eAAe,CAAA"}
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "@newskit-render/auth",
3
- "version": "0.30.0",
3
+ "version": "0.31.2",
4
4
  "description": "Newskit Render",
5
5
  "author": "",
6
6
  "license": "UNLICENSED",
7
7
  "keywords": [],
8
- "main": "index.js",
8
+ "module": "dist/esm/index.js",
9
+ "main": "dist/cjs/index.js",
9
10
  "engines": {
10
11
  "node": ">=16.13"
11
12
  },
12
13
  "scripts": {
13
- "build": "rm -rf dist && tsc -b tsconfig.build.json",
14
+ "build": "rm -rf dist && tsc -b tsconfig.build.json && tsc -p tsconfig.build.json --module CommonJS --outDir './dist/cjs'",
14
15
  "build:watch": "tsc -b tsconfig.build.json -w",
15
16
  "test:unit": "jest --coverage --verbose",
16
17
  "test:unit:watch": "jest --watch",
@@ -21,7 +22,7 @@
21
22
  },
22
23
  "dependencies": {
23
24
  "cookie": "0.4.1",
24
- "next-auth": "3.1.0"
25
+ "next-auth": "4.2.1"
25
26
  },
26
27
  "peerDependencies": {
27
28
  "react": "17.0.2",
@@ -31,7 +32,6 @@
31
32
  "@babel/polyfill": "7.10.1",
32
33
  "@babel/register": "7.10.1",
33
34
  "@types/jest": "27.0.2",
34
- "@types/next-auth": "3.1.0",
35
35
  "@types/react": "17.0.2",
36
36
  "@typescript-eslint/eslint-plugin": "4.9.0",
37
37
  "@typescript-eslint/parser": "4.9.0",
package/providers.js CHANGED
@@ -1 +1,2 @@
1
- module.exports = require('./dist/providers').default
1
+ // file is related to server side
2
+ module.exports = require('./dist/cjs/providers').default
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var client_1 = require("next-auth/client");
4
- var PageWithAuth = function (_a) {
5
- var children = _a.children, isLoading = _a.isLoading, onDenied = _a.onDenied;
6
- var _b = (0, client_1.useSession)(), session = _b[0], loading = _b[1];
7
- if (typeof window !== 'undefined' && loading)
8
- return isLoading;
9
- if (!session) {
10
- return onDenied;
11
- }
12
- else {
13
- return children;
14
- }
15
- };
16
- exports.default = PageWithAuth;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var react_1 = require("react");
4
- var client_1 = require("next-auth/client");
5
- var SessionProvider = function (_a) {
6
- var pageProps = _a.pageProps, children = _a.children;
7
- if (pageProps && pageProps.session !== undefined) {
8
- return (0, react_1.createElement)(client_1.Provider, { session: pageProps.session }, children);
9
- }
10
- return children;
11
- };
12
- exports.default = SessionProvider;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var PageWithAuth_1 = __importDefault(require("./PageWithAuth"));
7
- var SessionProvider_1 = __importDefault(require("./SessionProvider"));
8
- var CookieView_1 = __importDefault(require("./CookieView"));
9
- var client_1 = require("next-auth/client");
10
- exports.default = {
11
- PageWithAuth: PageWithAuth_1.default,
12
- getSession: client_1.getSession,
13
- SessionProvider: SessionProvider_1.default,
14
- signIn: client_1.signIn,
15
- signOut: client_1.signOut,
16
- CookieView: CookieView_1.default,
17
- };
package/index.js DELETED
@@ -1 +0,0 @@
1
- module.exports = require('./dist/client').default