@gonextgames/utils 0.0.15 → 0.0.16
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/client/auth/authStore.js +6 -0
- package/dist/client/auth/index.js +13 -7
- package/dist/client/components/AdBar.js +40 -32
- package/dist/client/index.js +19 -10
- package/dist/server/auth/index.js +4 -4
- package/dist/server/auth/tokens.js +1 -1
- package/package.json +10 -6
- package/readme.md +3 -3
@@ -1,4 +1,5 @@
|
|
1
1
|
"use strict";
|
2
|
+
'use client';
|
2
3
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
4
5
|
value: true
|
@@ -30,5 +31,10 @@ const useAuthStore = exports.useAuthStore = (0, _zustand.create)(set => ({
|
|
30
31
|
set({
|
31
32
|
isLoading: loading
|
32
33
|
});
|
34
|
+
},
|
35
|
+
setError: error => {
|
36
|
+
set({
|
37
|
+
error
|
38
|
+
});
|
33
39
|
}
|
34
40
|
}));
|
@@ -6,9 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.AuthProvider = AuthProvider;
|
8
8
|
exports.useAuth = useAuth;
|
9
|
-
var _react = require("react");
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
10
10
|
var _navigation = require("next/navigation");
|
11
11
|
var _authStore = require("./authStore");
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
12
15
|
const AuthContext = /*#__PURE__*/(0, _react.createContext)({});
|
13
16
|
function AuthProvider({
|
14
17
|
children
|
@@ -129,23 +132,26 @@ function AuthProvider({
|
|
129
132
|
logout,
|
130
133
|
register
|
131
134
|
};
|
132
|
-
return /*#__PURE__*/
|
133
|
-
value: value
|
134
|
-
|
135
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(AuthContext.Provider, {
|
136
|
+
value: value,
|
137
|
+
children: children
|
138
|
+
});
|
135
139
|
}
|
136
|
-
|
137
|
-
// Export the hook directly with the function declaration
|
138
140
|
function useAuth() {
|
139
141
|
const {
|
140
142
|
user,
|
141
143
|
isAuthenticated,
|
142
144
|
isLoading
|
143
145
|
} = (0, _authStore.useAuthStore)();
|
146
|
+
const context = (0, _react.useContext)(AuthContext);
|
147
|
+
if (!context) {
|
148
|
+
throw new Error('useAuth must be used within an AuthProvider');
|
149
|
+
}
|
144
150
|
const {
|
145
151
|
login,
|
146
152
|
logout,
|
147
153
|
register
|
148
|
-
} =
|
154
|
+
} = context;
|
149
155
|
return {
|
150
156
|
user,
|
151
157
|
isAuthenticated,
|
@@ -5,8 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
6
6
|
});
|
7
7
|
exports.default = AdBar;
|
8
|
-
var _react = require("react");
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
9
9
|
var _trackEvent = require("../analytics/trackEvent");
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
10
13
|
const defaultLinks = [{
|
11
14
|
url: 'https://randomgameidea.com',
|
12
15
|
title: 'Random Game Idea',
|
@@ -30,35 +33,40 @@ function AdBar({
|
|
30
33
|
defaultIcon = '/default-favicon.png'
|
31
34
|
}) {
|
32
35
|
const [activePopover, setActivePopover] = (0, _react.useState)(null);
|
33
|
-
return /*#__PURE__*/
|
34
|
-
className: "adbar"
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
36
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
37
|
+
className: "adbar",
|
38
|
+
children: links.map((link, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
39
|
+
className: "adbar-item-wrapper",
|
40
|
+
onMouseEnter: () => setActivePopover(index),
|
41
|
+
onMouseLeave: () => setActivePopover(null),
|
42
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
43
|
+
href: link.url + (via ? `?via=${via}` : '')
|
44
|
+
// target="_blank"
|
45
|
+
// rel="noopener noreferrer"
|
46
|
+
,
|
47
|
+
onClick: e => {
|
48
|
+
e.preventDefault();
|
49
|
+
(0, _trackEvent.trackEvent)(`adbar_${link.title}_click`);
|
50
|
+
window.location.href = link.url + (via ? `?via=${via}` : '');
|
51
|
+
},
|
52
|
+
className: "adbar-icon",
|
53
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
|
54
|
+
src: `${link.url}/icon.ico`,
|
55
|
+
alt: link.title || `Visit ${link.url}`,
|
56
|
+
onError: e => {
|
57
|
+
e.target.src = defaultIcon;
|
58
|
+
}
|
59
|
+
})
|
60
|
+
}), activePopover === index && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
61
|
+
className: "custom-popover",
|
62
|
+
children: [link.title && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
63
|
+
className: "popover-title",
|
64
|
+
children: link.title || new URL(link.url || link).hostname
|
65
|
+
}), link.description && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
66
|
+
className: "popover-content",
|
67
|
+
children: link.description
|
68
|
+
})]
|
69
|
+
})]
|
70
|
+
}, index))
|
71
|
+
});
|
64
72
|
}
|
package/dist/client/index.js
CHANGED
@@ -3,20 +3,27 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
var
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
});
|
6
|
+
var _exportNames = {
|
7
|
+
AuthProvider: true,
|
8
|
+
useAuth: true
|
9
|
+
};
|
10
|
+
Object.defineProperty(exports, "AuthProvider", {
|
11
|
+
enumerable: true,
|
12
|
+
get: function () {
|
13
|
+
return _auth.AuthProvider;
|
14
|
+
}
|
16
15
|
});
|
16
|
+
Object.defineProperty(exports, "useAuth", {
|
17
|
+
enumerable: true,
|
18
|
+
get: function () {
|
19
|
+
return _auth.useAuth;
|
20
|
+
}
|
21
|
+
});
|
22
|
+
var _auth = require("./auth");
|
17
23
|
var _analytics = require("./analytics");
|
18
24
|
Object.keys(_analytics).forEach(function (key) {
|
19
25
|
if (key === "default" || key === "__esModule") return;
|
26
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
20
27
|
if (key in exports && exports[key] === _analytics[key]) return;
|
21
28
|
Object.defineProperty(exports, key, {
|
22
29
|
enumerable: true,
|
@@ -28,6 +35,7 @@ Object.keys(_analytics).forEach(function (key) {
|
|
28
35
|
var _components = require("./components");
|
29
36
|
Object.keys(_components).forEach(function (key) {
|
30
37
|
if (key === "default" || key === "__esModule") return;
|
38
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
31
39
|
if (key in exports && exports[key] === _components[key]) return;
|
32
40
|
Object.defineProperty(exports, key, {
|
33
41
|
enumerable: true,
|
@@ -39,6 +47,7 @@ Object.keys(_components).forEach(function (key) {
|
|
39
47
|
var _useStripe = require("./useStripe");
|
40
48
|
Object.keys(_useStripe).forEach(function (key) {
|
41
49
|
if (key === "default" || key === "__esModule") return;
|
50
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
42
51
|
if (key in exports && exports[key] === _useStripe[key]) return;
|
43
52
|
Object.defineProperty(exports, key, {
|
44
53
|
enumerable: true,
|
@@ -1,5 +1,4 @@
|
|
1
1
|
"use strict";
|
2
|
-
'use server';
|
3
2
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
5
4
|
value: true
|
@@ -10,10 +9,11 @@ exports.registerUserAndSetToken = registerUserAndSetToken;
|
|
10
9
|
var _users = require("../users");
|
11
10
|
var _passwordHashing = require("./passwordHashing.js");
|
12
11
|
var _uuid = require("uuid");
|
12
|
+
var _tokens = require("./tokens.js");
|
13
13
|
async function getUserFromToken(tableName, tokenName) {
|
14
14
|
try {
|
15
15
|
if (!tableName) throw new Error('Table name is required to getUserFromToken.');
|
16
|
-
const verifiedUser = await getUserIdAndEmailFromToken(tokenName);
|
16
|
+
const verifiedUser = await (0, _tokens.getUserIdAndEmailFromToken)(tokenName);
|
17
17
|
if (!verifiedUser || !verifiedUser.user_id || !verifiedUser.email) {
|
18
18
|
console.warn('No user ID or email found in token', verifiedUser);
|
19
19
|
return null;
|
@@ -53,7 +53,7 @@ async function loginWithEmailAndPasswordAndSetToken(email, password, tableName,
|
|
53
53
|
console.warn('Invalid password for user:', email);
|
54
54
|
throw new Error('Invalid password');
|
55
55
|
}
|
56
|
-
await setToken(tokenName, user.user_id, user.email);
|
56
|
+
await (0, _tokens.setToken)(tokenName, user.user_id, user.email);
|
57
57
|
const {
|
58
58
|
password: _,
|
59
59
|
...userWithoutPassword
|
@@ -87,7 +87,7 @@ async function registerUserAndSetToken(name, email, password, otherData, tableNa
|
|
87
87
|
password: hashedPassword
|
88
88
|
};
|
89
89
|
await (0, _users.createUser)(user.user_id, user.name, user.email, user.password, otherData, tableName);
|
90
|
-
await setToken('token', user.user_id, user.email);
|
90
|
+
await (0, _tokens.setToken)('token', user.user_id, user.email);
|
91
91
|
const {
|
92
92
|
password: _,
|
93
93
|
...userWithoutPassword
|
@@ -35,7 +35,7 @@ async function setToken(tokenName, userId, email) {
|
|
35
35
|
const token = _jsonwebtoken.default.sign(payload, JWT_SECRET, {
|
36
36
|
expiresIn: '7d'
|
37
37
|
});
|
38
|
-
const cookieStore = (0, _headers.cookies)();
|
38
|
+
const cookieStore = await (0, _headers.cookies)();
|
39
39
|
cookieStore.set(tokenName, token, {
|
40
40
|
httpOnly: true,
|
41
41
|
secure: process.env.ENVIRONMENT === 'production',
|
package/package.json
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
{
|
2
2
|
"name": "@gonextgames/utils",
|
3
3
|
"exports": {
|
4
|
-
"./client":
|
4
|
+
"./client": {
|
5
|
+
"default": "./dist/client/index.js"
|
6
|
+
},
|
5
7
|
"./client/*": "./dist/client/*.js",
|
6
|
-
"./server":
|
7
|
-
|
8
|
-
|
9
|
-
"./server
|
8
|
+
"./server": {
|
9
|
+
"node": "./dist/server/index.js"
|
10
|
+
},
|
11
|
+
"./server/*": "./dist/server/*.js"
|
10
12
|
},
|
11
|
-
"version": "0.0.
|
13
|
+
"version": "0.0.16",
|
12
14
|
"publishConfig": {
|
13
15
|
"registry": "https://registry.npmjs.org/",
|
14
16
|
"access": "public"
|
@@ -49,6 +51,8 @@
|
|
49
51
|
"node": ">=20.0.0"
|
50
52
|
},
|
51
53
|
"peerDependencies": {
|
54
|
+
"react": "^19.0.0",
|
55
|
+
"react-dom": "^19.0.0",
|
52
56
|
"next": "15.1.4"
|
53
57
|
}
|
54
58
|
}
|
package/readme.md
CHANGED
@@ -47,7 +47,7 @@ const { isAuthenticated, logout, user } = useAuth()
|
|
47
47
|
```
|
48
48
|
- To change auth
|
49
49
|
```js
|
50
|
-
import { useAuth } from '@gonextgames/utils
|
50
|
+
import { useAuth } from '@gonextgames/utils/client'
|
51
51
|
// Call these functions to call the backend
|
52
52
|
const { login/register/logout } = useAuth()
|
53
53
|
```
|
@@ -58,7 +58,7 @@ When implementing auth, you can use the `redirect` function with the `from` para
|
|
58
58
|
- Implement /api/auth/verify for tokens
|
59
59
|
|
60
60
|
```js
|
61
|
-
import { getUserFromToken } from '@gonextgames/utils
|
61
|
+
import { getUserFromToken } from '@gonextgames/utils/server/auth'
|
62
62
|
|
63
63
|
export async function GET(req) {
|
64
64
|
try {
|
@@ -77,7 +77,7 @@ export async function GET(req) {
|
|
77
77
|
- Consume it with
|
78
78
|
|
79
79
|
```js
|
80
|
-
import { getUserFromToken } from '@gonextgames/utils
|
80
|
+
import { getUserFromToken } from '@gonextgames/utils/server/auth'
|
81
81
|
const user = await getUserFromToken("NAME_OF_USERS_TABLE", "TOKEN_NAME")
|
82
82
|
if (!user) {
|
83
83
|
redirect(`/login?from=${encodeURIComponent('/FROM-ENDPOINT')}`)
|