@thunderid/nextjs 1.2.2 → 1.3.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/ThunderIDNextClient.d.ts +33 -1
- package/dist/ThunderIDNextClient.d.ts.map +1 -1
- package/dist/ThunderIDNextClient.js +27 -0
- package/dist/ThunderIDNextClient.js.map +1 -1
- package/dist/cjs/ThunderIDNextClient.cjs +27 -0
- package/dist/cjs/ThunderIDNextClient.cjs.map +1 -1
- package/dist/cjs/client/components/presentation/AuthFlowSelect/AuthFlowSelect.cjs +25 -0
- package/dist/cjs/client/components/presentation/AuthFlowSelect/AuthFlowSelect.cjs.map +1 -0
- package/dist/cjs/client/components/presentation/UserSelect/UserSelect.cjs +25 -0
- package/dist/cjs/client/components/presentation/UserSelect/UserSelect.cjs.map +1 -0
- package/dist/cjs/client/components/presentation/UserTypeSelect/UserTypeSelect.cjs +25 -0
- package/dist/cjs/client/components/presentation/UserTypeSelect/UserTypeSelect.cjs.map +1 -0
- package/dist/cjs/client/fetchAuthFlowsFromServer.cjs +18 -0
- package/dist/cjs/client/fetchAuthFlowsFromServer.cjs.map +1 -0
- package/dist/cjs/client/fetchUserTypesFromServer.cjs +18 -0
- package/dist/cjs/client/fetchUserTypesFromServer.cjs.map +1 -0
- package/dist/cjs/client/fetchUsersFromServer.cjs +18 -0
- package/dist/cjs/client/fetchUsersFromServer.cjs.map +1 -0
- package/dist/cjs/client/index.cjs +3 -0
- package/dist/cjs/client/loadPageFromAction.cjs +19 -0
- package/dist/cjs/client/loadPageFromAction.cjs.map +1 -0
- package/dist/cjs/index.cjs +6 -0
- package/dist/cjs/server/actions/getAuthFlowsAction.cjs +28 -0
- package/dist/cjs/server/actions/getAuthFlowsAction.cjs.map +1 -0
- package/dist/cjs/server/actions/getUserTypesAction.cjs +27 -0
- package/dist/cjs/server/actions/getUserTypesAction.cjs.map +1 -0
- package/dist/cjs/server/actions/getUsersAction.cjs +28 -0
- package/dist/cjs/server/actions/getUsersAction.cjs.map +1 -0
- package/dist/cjs/server/actions/runSelectPageAction.cjs +47 -0
- package/dist/cjs/server/actions/runSelectPageAction.cjs.map +1 -0
- package/dist/client/components/presentation/AuthFlowSelect/AuthFlowSelect.d.ts +11 -0
- package/dist/client/components/presentation/AuthFlowSelect/AuthFlowSelect.d.ts.map +1 -0
- package/dist/client/components/presentation/AuthFlowSelect/AuthFlowSelect.js +22 -0
- package/dist/client/components/presentation/AuthFlowSelect/AuthFlowSelect.js.map +1 -0
- package/dist/client/components/presentation/UserSelect/UserSelect.d.ts +11 -0
- package/dist/client/components/presentation/UserSelect/UserSelect.d.ts.map +1 -0
- package/dist/client/components/presentation/UserSelect/UserSelect.js +22 -0
- package/dist/client/components/presentation/UserSelect/UserSelect.js.map +1 -0
- package/dist/client/components/presentation/UserTypeSelect/UserTypeSelect.d.ts +11 -0
- package/dist/client/components/presentation/UserTypeSelect/UserTypeSelect.d.ts.map +1 -0
- package/dist/client/components/presentation/UserTypeSelect/UserTypeSelect.js +22 -0
- package/dist/client/components/presentation/UserTypeSelect/UserTypeSelect.js.map +1 -0
- package/dist/client/fetchAuthFlowsFromServer.d.ts +9 -0
- package/dist/client/fetchAuthFlowsFromServer.d.ts.map +1 -0
- package/dist/client/fetchAuthFlowsFromServer.js +18 -0
- package/dist/client/fetchAuthFlowsFromServer.js.map +1 -0
- package/dist/client/fetchUserTypesFromServer.d.ts +9 -0
- package/dist/client/fetchUserTypesFromServer.d.ts.map +1 -0
- package/dist/client/fetchUserTypesFromServer.js +18 -0
- package/dist/client/fetchUserTypesFromServer.js.map +1 -0
- package/dist/client/fetchUsersFromServer.d.ts +8 -0
- package/dist/client/fetchUsersFromServer.d.ts.map +1 -0
- package/dist/client/fetchUsersFromServer.js +18 -0
- package/dist/client/fetchUsersFromServer.js.map +1 -0
- package/dist/client/index.d.ts +6 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +3 -0
- package/dist/client/loadPageFromAction.d.ts +9 -0
- package/dist/client/loadPageFromAction.d.ts.map +1 -0
- package/dist/client/loadPageFromAction.js +17 -0
- package/dist/client/loadPageFromAction.js.map +1 -0
- package/dist/index.js +4 -1
- package/dist/server/actions/getAuthFlowsAction.d.ts +19 -0
- package/dist/server/actions/getAuthFlowsAction.d.ts.map +1 -0
- package/dist/server/actions/getAuthFlowsAction.js +26 -0
- package/dist/server/actions/getAuthFlowsAction.js.map +1 -0
- package/dist/server/actions/getUserTypesAction.d.ts +18 -0
- package/dist/server/actions/getUserTypesAction.d.ts.map +1 -0
- package/dist/server/actions/getUserTypesAction.js +25 -0
- package/dist/server/actions/getUserTypesAction.js.map +1 -0
- package/dist/server/actions/getUsersAction.d.ts +18 -0
- package/dist/server/actions/getUsersAction.d.ts.map +1 -0
- package/dist/server/actions/getUsersAction.js +26 -0
- package/dist/server/actions/getUsersAction.js.map +1 -0
- package/dist/server/actions/runSelectPageAction.d.ts +28 -0
- package/dist/server/actions/runSelectPageAction.d.ts.map +1 -0
- package/dist/server/actions/runSelectPageAction.js +45 -0
- package/dist/server/actions/runSelectPageAction.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUsersAction.js","names":["runSelectPageAction"],"sources":["../../../src/server/actions/getUsersAction.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use server';\n\nimport {toUserSelectPage} from '@thunderid/node';\nimport runSelectPageAction, {SelectPageActionResult} from './runSelectPageAction';\n\n/**\n * Request from the browser. Carries no session ID, token, or URL; the session comes from the request cookie.\n */\nexport interface GetUsersActionRequest {\n filter?: string;\n limit?: number;\n offset?: number;\n}\n\nexport type GetUsersActionResult = SelectPageActionResult;\n\n/**\n * Loads one page of users for a `USER_SELECT` picker using the signed-in user's server-held session.\n *\n * Never throws across the server action boundary; failures are mapped to a plain result.\n */\nconst getUsersAction = async ({filter, limit, offset}: GetUsersActionRequest = {}): Promise<GetUsersActionResult> =>\n runSelectPageAction(\n 'users',\n {filter, limit, offset},\n async (client, sessionId, query) =>\n toUserSelectPage(\n await client.getUsers({filter: query.filter, limit: query.limit, offset: query.offset}, sessionId),\n query.offset ?? 0,\n ),\n {allowFilter: true},\n );\n\nexport default getUsersAction;\n"],"mappings":";;;;;;;;;;;;AAwBA,MAAM,iBAAiB,OAAO,EAAC,QAAQ,OAAO,WAAiC,EAAE,KAC/EA,4BACE,SACA;CAAC;CAAQ;CAAO;CAAO,EACvB,OAAO,QAAQ,WAAW,UACxB,iBACE,MAAM,OAAO,SAAS;CAAC,QAAQ,MAAM;CAAQ,OAAO,MAAM;CAAO,QAAQ,MAAM;CAAO,EAAE,UAAU,EAClG,MAAM,UAAU,EACjB,EACH,EAAC,aAAa,MAAK,CACpB;AAEH,6BAAe"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { SelectPageErrorResult, SelectPage, SelectPageQuery } from '@thunderid/node';
|
|
2
|
+
import type ThunderIDNextClient from '../../ThunderIDNextClient';
|
|
3
|
+
/**
|
|
4
|
+
* What a select page server action returns: the normalized page, or a plain failure. It never
|
|
5
|
+
* throws, because a thrown class instance loses its prototype chain crossing the server action boundary. A failure
|
|
6
|
+
* carries a message built on the server and the status, never the text of the upstream reply.
|
|
7
|
+
*/
|
|
8
|
+
export type SelectPageActionResult = {
|
|
9
|
+
page: SelectPage;
|
|
10
|
+
success: true;
|
|
11
|
+
} | ({
|
|
12
|
+
success: false;
|
|
13
|
+
} & SelectPageErrorResult);
|
|
14
|
+
/**
|
|
15
|
+
* Runs one select page load with the signed-in user's server-held session. The session comes from the
|
|
16
|
+
* request cookie, never from the caller. A server action is a public endpoint, so the paging values the caller
|
|
17
|
+
* sends are checked here and not trusted from their TypeScript types. A missing session, a malformed request or any
|
|
18
|
+
* failure becomes a plain result.
|
|
19
|
+
*/
|
|
20
|
+
declare const runSelectPageAction: (resource: string, rawQuery: {
|
|
21
|
+
filter?: unknown;
|
|
22
|
+
limit?: unknown;
|
|
23
|
+
offset?: unknown;
|
|
24
|
+
}, load: (client: ThunderIDNextClient, sessionId: string, query: SelectPageQuery) => Promise<SelectPage>, { allowFilter }?: {
|
|
25
|
+
allowFilter?: boolean;
|
|
26
|
+
}) => Promise<SelectPageActionResult>;
|
|
27
|
+
export default runSelectPageAction;
|
|
28
|
+
//# sourceMappingURL=runSelectPageAction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runSelectPageAction.d.ts","sourceRoot":"","sources":["../../../src/server/actions/runSelectPageAction.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,qBAAqB,EAAE,UAAU,EAAE,eAAe,EAAwB,MAAM,iBAAiB,CAAC;AAE/G,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAC;AAGjE;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAC,GAAG,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAC,GAAG,qBAAqB,CAAC,CAAC;AAEpH;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,GACvB,UAAU,MAAM,EAChB,UAAU;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAC,EAC/D,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,UAAU,CAAC,EACrG,kBAAuB;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAM,KAClD,OAAO,CAAC,sBAAsB,CA0BhC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import getSessionId_default from "./getSessionId.js";
|
|
2
|
+
import getClient_default from "../getClient.js";
|
|
3
|
+
import { loadPageWithRetryAndLog, mapSelectPageError, parseSelectPageQuery } from "@thunderid/node";
|
|
4
|
+
|
|
5
|
+
//#region src/server/actions/runSelectPageAction.ts
|
|
6
|
+
/**
|
|
7
|
+
* Runs one select page load with the signed-in user's server-held session. The session comes from the
|
|
8
|
+
* request cookie, never from the caller. A server action is a public endpoint, so the paging values the caller
|
|
9
|
+
* sends are checked here and not trusted from their TypeScript types. A missing session, a malformed request or any
|
|
10
|
+
* failure becomes a plain result.
|
|
11
|
+
*/
|
|
12
|
+
const runSelectPageAction = async (resource, rawQuery, load, { allowFilter = false } = {}) => {
|
|
13
|
+
const sessionId = await getSessionId_default();
|
|
14
|
+
if (!sessionId) return {
|
|
15
|
+
message: `Failed to load ${resource} (HTTP 401).`,
|
|
16
|
+
statusCode: 401,
|
|
17
|
+
success: false
|
|
18
|
+
};
|
|
19
|
+
const checked = parseSelectPageQuery(rawQuery ?? {}, { allowFilter });
|
|
20
|
+
if (checked.invalid !== void 0) return {
|
|
21
|
+
message: `Failed to load ${resource} (HTTP 400).`,
|
|
22
|
+
statusCode: 400,
|
|
23
|
+
success: false
|
|
24
|
+
};
|
|
25
|
+
const { query } = checked;
|
|
26
|
+
try {
|
|
27
|
+
return {
|
|
28
|
+
page: await loadPageWithRetryAndLog(resource, {
|
|
29
|
+
limit: query.limit,
|
|
30
|
+
offset: query.offset
|
|
31
|
+
}, () => load(getClient_default(), sessionId, query)),
|
|
32
|
+
success: true
|
|
33
|
+
};
|
|
34
|
+
} catch (error) {
|
|
35
|
+
return {
|
|
36
|
+
...mapSelectPageError(error, resource),
|
|
37
|
+
success: false
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
var runSelectPageAction_default = runSelectPageAction;
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
export { runSelectPageAction_default as default };
|
|
45
|
+
//# sourceMappingURL=runSelectPageAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runSelectPageAction.js","names":["sessionId: string | undefined","getSessionId","checked: SelectPageQueryResult","getClient"],"sources":["../../../src/server/actions/runSelectPageAction.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {loadPageWithRetryAndLog, mapSelectPageError, parseSelectPageQuery} from '@thunderid/node';\nimport type {SelectPageErrorResult, SelectPage, SelectPageQuery, SelectPageQueryResult} from '@thunderid/node';\nimport getSessionId from './getSessionId';\nimport type ThunderIDNextClient from '../../ThunderIDNextClient';\nimport getClient from '../getClient';\n\n/**\n * What a select page server action returns: the normalized page, or a plain failure. It never\n * throws, because a thrown class instance loses its prototype chain crossing the server action boundary. A failure\n * carries a message built on the server and the status, never the text of the upstream reply.\n */\nexport type SelectPageActionResult = {page: SelectPage; success: true} | ({success: false} & SelectPageErrorResult);\n\n/**\n * Runs one select page load with the signed-in user's server-held session. The session comes from the\n * request cookie, never from the caller. A server action is a public endpoint, so the paging values the caller\n * sends are checked here and not trusted from their TypeScript types. A missing session, a malformed request or any\n * failure becomes a plain result.\n */\nconst runSelectPageAction = async (\n resource: string,\n rawQuery: {filter?: unknown; limit?: unknown; offset?: unknown},\n load: (client: ThunderIDNextClient, sessionId: string, query: SelectPageQuery) => Promise<SelectPage>,\n {allowFilter = false}: {allowFilter?: boolean} = {},\n): Promise<SelectPageActionResult> => {\n const sessionId: string | undefined = await getSessionId();\n\n if (!sessionId) {\n return {message: `Failed to load ${resource} (HTTP 401).`, statusCode: 401, success: false};\n }\n\n const checked: SelectPageQueryResult = parseSelectPageQuery(rawQuery ?? {}, {allowFilter});\n\n if (checked.invalid !== undefined) {\n return {message: `Failed to load ${resource} (HTTP 400).`, statusCode: 400, success: false};\n }\n\n const {query} = checked;\n\n try {\n // The retry and the failure log live here, where the real error and its status still exist. The plain result\n // sent to the browser carries only a message built here and the status.\n const page: SelectPage = await loadPageWithRetryAndLog(resource, {limit: query.limit, offset: query.offset}, () =>\n load(getClient(), sessionId, query),\n );\n\n return {page, success: true};\n } catch (error) {\n return {...mapSelectPageError(error, resource), success: false};\n }\n};\n\nexport default runSelectPageAction;\n"],"mappings":";;;;;;;;;;;AAsBA,MAAM,sBAAsB,OAC1B,UACA,UACA,MACA,EAAC,cAAc,UAAkC,EAAE,KACf;CACpC,MAAMA,YAAgC,MAAMC,sBAAc;AAE1D,KAAI,CAAC,UACH,QAAO;EAAC,SAAS,kBAAkB,SAAS;EAAe,YAAY;EAAK,SAAS;EAAM;CAG7F,MAAMC,UAAiC,qBAAqB,YAAY,EAAE,EAAE,EAAC,aAAY,CAAC;AAE1F,KAAI,QAAQ,YAAY,OACtB,QAAO;EAAC,SAAS,kBAAkB,SAAS;EAAe,YAAY;EAAK,SAAS;EAAM;CAG7F,MAAM,EAAC,UAAS;AAEhB,KAAI;AAOF,SAAO;GAAC,MAJiB,MAAM,wBAAwB,UAAU;IAAC,OAAO,MAAM;IAAO,QAAQ,MAAM;IAAO,QACzG,KAAKC,mBAAW,EAAE,WAAW,MAAM,CACpC;GAEa,SAAS;GAAK;UACrB,OAAO;AACd,SAAO;GAAC,GAAG,mBAAmB,OAAO,SAAS;GAAE,SAAS;GAAM;;;AAInE,kCAAe"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thunderid/nextjs",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Next.js SDK for ThunderID",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"thunderid",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"directory": "packages/nextjs"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@thunderid/node": "^1.
|
|
41
|
-
"@thunderid/react": "^1.
|
|
40
|
+
"@thunderid/node": "^1.3.0",
|
|
41
|
+
"@thunderid/react": "^1.4.0",
|
|
42
42
|
"@types/react": "19.2.14",
|
|
43
43
|
"jose": "6.2.3",
|
|
44
44
|
"tslib": "2.8.1"
|