@vasanthcambium/marketplace-auth 0.1.1 → 0.1.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionGate.d.ts","sourceRoot":"","sources":["../../src/react/SessionGate.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SessionGate.d.ts","sourceRoot":"","sources":["../../src/react/SessionGate.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAA4B,MAAM,OAAO,CAAC;AAIjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CAUnE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import { useSession } from './useSession.js';
|
|
3
|
-
import {
|
|
4
|
+
import { SessionExpiredError } from '../shared/errors.js';
|
|
4
5
|
/**
|
|
5
6
|
* Renders children only when a valid session exists.
|
|
6
7
|
* Shows a loading screen while the session check is in flight.
|
|
@@ -21,14 +22,40 @@ function AuthScreen({ error }) {
|
|
|
21
22
|
if (error instanceof SessionExpiredError) {
|
|
22
23
|
return (_jsxs(Screen, { children: [_jsx("h1", { style: styles.heading, children: "Session Expired" }), _jsx("p", { style: styles.body, children: "Your session has expired. Please re-launch this app from cnMaestro." })] }));
|
|
23
24
|
}
|
|
24
|
-
if (isDev)
|
|
25
|
-
|
|
26
|
-
return (_jsxs(Screen, { children: [_jsx("div", { style: styles.devBadge, children: "DEV MODE" }), _jsx("h1", { style: styles.heading, children: "NBI credentials not configured" }), _jsx("p", { style: styles.body, children: status === 502
|
|
27
|
-
? 'The dev proxy could not authenticate — credentials are missing or wrong.'
|
|
28
|
-
: `Could not reach the API${status ? ` (HTTP ${status})` : ''}.` }), _jsxs("ol", { style: styles.list, children: [_jsxs("li", { children: ["Copy ", _jsx("code", { style: styles.code, children: ".env.development.example" }), " \u2192 ", _jsx("code", { style: styles.code, children: ".env.development" })] }), _jsxs("li", { children: ["Fill in ", _jsx("code", { style: styles.code, children: "NBI_CLIENT_ID" }), " and ", _jsx("code", { style: styles.code, children: "NBI_CLIENT_SECRET" }), " from your cnMaestro tenant (Settings \u2192 API Access)"] }), _jsx("li", { children: "Restart the dev server" })] })] }));
|
|
29
|
-
}
|
|
25
|
+
if (isDev)
|
|
26
|
+
return _jsx(DevLoginForm, {});
|
|
30
27
|
return (_jsxs(Screen, { children: [_jsx("h1", { style: styles.heading, children: "Not Authenticated" }), _jsx("p", { style: styles.body, children: "Please launch this app from the cnMaestro marketplace." })] }));
|
|
31
28
|
}
|
|
29
|
+
function DevLoginForm() {
|
|
30
|
+
const [clientId, setClientId] = useState('');
|
|
31
|
+
const [clientSecret, setClientSecret] = useState('');
|
|
32
|
+
const [busy, setBusy] = useState(false);
|
|
33
|
+
const [err, setErr] = useState(null);
|
|
34
|
+
async function handleSubmit(e) {
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
setBusy(true);
|
|
37
|
+
setErr(null);
|
|
38
|
+
try {
|
|
39
|
+
const res = await fetch('/api/__dev-auth__', {
|
|
40
|
+
method: 'POST',
|
|
41
|
+
headers: { 'content-type': 'application/json' },
|
|
42
|
+
body: JSON.stringify({ clientId, clientSecret }),
|
|
43
|
+
});
|
|
44
|
+
if (!res.ok) {
|
|
45
|
+
const j = await res.json().catch(() => ({}));
|
|
46
|
+
setErr(j.error ?? `Server error (${res.status})`);
|
|
47
|
+
setBusy(false);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
window.location.reload();
|
|
51
|
+
}
|
|
52
|
+
catch (ex) {
|
|
53
|
+
setErr(String(ex));
|
|
54
|
+
setBusy(false);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return (_jsxs(Screen, { children: [_jsx("div", { style: styles.devBadge, children: "DEV MODE" }), _jsx("h1", { style: styles.heading, children: "Connect to cnMaestro" }), _jsx("p", { style: styles.body, children: "Enter your NBI API credentials to start the local dev session." }), _jsxs("form", { onSubmit: handleSubmit, style: styles.form, children: [_jsxs("label", { style: styles.label, children: ["Client ID", _jsx("input", { style: styles.input, type: "text", value: clientId, onChange: (e) => setClientId(e.target.value), placeholder: "your-client-id", required: true, autoFocus: true })] }), _jsxs("label", { style: styles.label, children: ["Client Secret", _jsx("input", { style: styles.input, type: "password", value: clientSecret, onChange: (e) => setClientSecret(e.target.value), placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", autoComplete: "off", required: true })] }), err && _jsx("p", { style: styles.formError, children: err }), _jsx("button", { type: "submit", style: styles.button, disabled: busy, children: busy ? 'Connecting…' : 'Connect' })] })] }));
|
|
58
|
+
}
|
|
32
59
|
function Screen({ children }) {
|
|
33
60
|
return (_jsx("div", { style: styles.screen, children: _jsx("div", { style: styles.card, children: children }) }));
|
|
34
61
|
}
|
|
@@ -53,15 +80,29 @@ const styles = {
|
|
|
53
80
|
margin: '0 0 0.75rem', color: '#003A70', fontSize: '1.4rem',
|
|
54
81
|
},
|
|
55
82
|
body: {
|
|
56
|
-
margin: '0 0
|
|
83
|
+
margin: '0 0 1.5rem', color: '#374151', lineHeight: 1.5,
|
|
57
84
|
},
|
|
58
85
|
muted: { color: '#6b7280' },
|
|
59
|
-
|
|
60
|
-
|
|
86
|
+
form: {
|
|
87
|
+
display: 'flex', flexDirection: 'column', gap: '1rem',
|
|
88
|
+
},
|
|
89
|
+
label: {
|
|
90
|
+
display: 'flex', flexDirection: 'column', gap: '0.35rem',
|
|
91
|
+
fontSize: '0.875rem', fontWeight: 600, color: '#374151',
|
|
92
|
+
},
|
|
93
|
+
input: {
|
|
94
|
+
border: '1px solid #d2d6dc', borderRadius: '6px',
|
|
95
|
+
padding: '0.5rem 0.75rem', fontSize: '0.9rem',
|
|
96
|
+
fontFamily: 'inherit', outline: 'none',
|
|
97
|
+
},
|
|
98
|
+
button: {
|
|
99
|
+
background: '#003A70', color: '#ffffff', border: 0,
|
|
100
|
+
borderRadius: '6px', padding: '0.6rem 1.25rem',
|
|
101
|
+
fontSize: '0.95rem', fontFamily: 'inherit',
|
|
102
|
+
cursor: 'pointer', fontWeight: 600, marginTop: '0.25rem',
|
|
61
103
|
},
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
padding: '0.1rem 0.35rem', fontSize: '0.875em', fontFamily: 'monospace',
|
|
104
|
+
formError: {
|
|
105
|
+
margin: 0, color: '#D9027D', fontSize: '0.875rem',
|
|
65
106
|
},
|
|
66
107
|
};
|
|
67
108
|
//# sourceMappingURL=SessionGate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionGate.js","sourceRoot":"","sources":["../../src/react/SessionGate.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SessionGate.js","sourceRoot":"","sources":["../../src/react/SessionGate.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED