dh-auth-library 1.0.0 → 1.2.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/README.md +23 -12
- package/dist/auth/api/apiTokenHelper.d.ts +2 -2
- package/dist/auth/api/index.d.ts +0 -1
- package/dist/auth/api/sessionHandlerResolvers.d.ts +3 -6
- package/dist/auth/pages/digidLoginPage.d.ts +1 -1
- package/dist/auth/pages/eHerkenningLoginPage.d.ts +6 -7
- package/dist/auth/sessionHandler.d.ts +1 -1
- package/dist/auth/utils/sessionFileHelper.d.ts +9 -8
- package/dist/constants/accountTypes.d.ts +7 -29
- package/dist/constants/authTypes.d.ts +3 -0
- package/dist/constants/index.d.ts +1 -4
- package/dist/index.cjs.js +35 -333
- package/dist/index.es.js +34 -317
- package/package.json +55 -54
- package/dist/auth/api/apiAuthentication.d.ts +0 -10
- package/dist/constants/accounts.d.ts +0 -12
- package/dist/constants/testAccounts.d.ts +0 -38
- package/dist/constants/testProfiles.d.ts +0 -27
- package/dist/sha-B5xpXfPW.mjs +0 -911
- package/dist/sha-Eh0BcCJ_.js +0 -911
package/dist/index.es.js
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import { BasePage, LocalLoginPage, SessionManager, Url,
|
|
1
|
+
import { BasePage, LocalLoginPage, SessionManager, Url, getUrl, isRunningOnLocalhost, urls } from "nl-portal-playwright-libraries";
|
|
2
2
|
import * as process$2 from "node:process";
|
|
3
3
|
import process$1 from "node:process";
|
|
4
4
|
import { expect } from "@playwright/test";
|
|
5
|
+
import { TOTP } from "totp-generator";
|
|
5
6
|
import * as path from "node:path";
|
|
6
|
-
//#region \0rolldown/runtime.js
|
|
7
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
|
|
8
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
9
|
-
throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
|
|
10
|
-
});
|
|
11
|
-
//#endregion
|
|
12
7
|
//#region src/auth/loginhandlers/localhostLoginHandler.ts
|
|
13
8
|
var LocalhostLoginHandler = class {
|
|
14
9
|
async loginAndCreateSessionStorage(page, account, file) {
|
|
@@ -78,48 +73,6 @@ var LoginOverzichtPage = class extends BasePage {
|
|
|
78
73
|
}
|
|
79
74
|
};
|
|
80
75
|
//#endregion
|
|
81
|
-
//#region src/constants/accounts.ts
|
|
82
|
-
/**
|
|
83
|
-
* To use these accounts they should be available as environment variables
|
|
84
|
-
*/
|
|
85
|
-
var localhostBurgerAccount = {
|
|
86
|
-
username: `${process.env.LOCAL_BURGER_USERNAME}`,
|
|
87
|
-
password: `${process.env.LOCAL_BURGER_PASSWORD}`
|
|
88
|
-
};
|
|
89
|
-
var localhostBedrijfAccount = {
|
|
90
|
-
username: `${process.env.LOCAL_BEDRIJF_USERNAME}`,
|
|
91
|
-
password: `${process.env.LOCAL_BEDRIJF_PASSWORD}`
|
|
92
|
-
};
|
|
93
|
-
var defaultDigidAccount = {
|
|
94
|
-
username: `${process.env.DIGID_USER}`,
|
|
95
|
-
password: `${process.env.DIGID_PASSWORD}`,
|
|
96
|
-
bsn: `${process.env.DIGID_BSN}`
|
|
97
|
-
};
|
|
98
|
-
var defaultDigidGemachtigdAccount = {
|
|
99
|
-
username: `${process.env.DIGID_GEMACHTIGDE_USER}`,
|
|
100
|
-
password: `${process.env.DIGID_GEMACHTIGDE_PASSWORD}`,
|
|
101
|
-
bsn: `${process.env.DIGID_GEMACHTIGDE_BSN}`
|
|
102
|
-
};
|
|
103
|
-
var defaultEHerkenningAccount = {
|
|
104
|
-
username: `${process.env.EHERKENNING_USER}`,
|
|
105
|
-
password: `${process.env.EHERKENNING_PASSWORD}`,
|
|
106
|
-
bsn: `${process.env.EHERKENNING_NUMMER}`
|
|
107
|
-
};
|
|
108
|
-
var defaultVestigingAccount = {
|
|
109
|
-
username: `${process.env.EHERKENNING_VESTIGING_NAME}`,
|
|
110
|
-
password: `${process.env.EHERKENNING_VESTIGING_PASSWORD}`,
|
|
111
|
-
bsn: `${process.env.EHERKENNING_VESTIGING_NUMMER}`
|
|
112
|
-
};
|
|
113
|
-
var defaultProfessioneelBewindvoerderAccount = {
|
|
114
|
-
username: `${process.env.EHERKENNING_BEWINDVOERDER_USER}`,
|
|
115
|
-
password: `${process.env.EHERKENNING_BEWINDVOERDER_PASSWORD}`,
|
|
116
|
-
bsn: `${process.env.EHERKENNING_BEWINDVOERDER_BSN}`
|
|
117
|
-
};
|
|
118
|
-
var defaultADAccount = {
|
|
119
|
-
username: `${process.env.AD_USER}`,
|
|
120
|
-
password: `${process.env.AD_PASSWORD}`
|
|
121
|
-
};
|
|
122
|
-
//#endregion
|
|
123
76
|
//#region src/auth/pages/digidLoginPage.ts
|
|
124
77
|
var DigidLoginPage = class extends LoginOverzichtPage {
|
|
125
78
|
constructor(page) {
|
|
@@ -165,7 +118,6 @@ var DigidLoginPage = class extends LoginOverzichtPage {
|
|
|
165
118
|
} catch (_error) {}
|
|
166
119
|
}
|
|
167
120
|
async loginWithDigid(account, gemachtigde) {
|
|
168
|
-
account ??= defaultDigidAccount;
|
|
169
121
|
await this.page.getByLabel("Inlogoptie 5 van 5: Inloggen").click();
|
|
170
122
|
await this.page.getByLabel("Testen betrouwbaarheidsniveau").selectOption("25");
|
|
171
123
|
await this.page.getByLabel("DigiD gebruikersnaam").fill(account.username);
|
|
@@ -216,7 +168,6 @@ var EHerkenningLoginPage = class extends LoginOverzichtPage {
|
|
|
216
168
|
this.verderLink = page.getByRole("link", { name: /Verder|Continue|Ga verder/ });
|
|
217
169
|
}
|
|
218
170
|
async probeerInTeLoggenMetEHerkenning(account) {
|
|
219
|
-
account ??= defaultEHerkenningAccount;
|
|
220
171
|
await this.dropdownSelectIdentityProvider.selectOption("Digidentity AD 1.13 (preproduction)");
|
|
221
172
|
await this.page.locator("#remember").click();
|
|
222
173
|
await this.buttonConfirmIdentityProviderSelection.click();
|
|
@@ -262,21 +213,12 @@ var EHerkenningLoginPage = class extends LoginOverzichtPage {
|
|
|
262
213
|
async loginAlsProfessioneelBewindvoerder(gemachtigde, file) {
|
|
263
214
|
await this.openPage();
|
|
264
215
|
await this.klikOpProfessioneelBewindvoerderLoginOptie();
|
|
265
|
-
|
|
216
|
+
try {
|
|
266
217
|
await this.probeerInTeLoggenMetEHerkenning(gemachtigde);
|
|
267
218
|
} catch (_error) {
|
|
268
219
|
await this.openPage();
|
|
269
220
|
await this.probeerInTeLoggenMetEHerkenning(gemachtigde);
|
|
270
221
|
}
|
|
271
|
-
else {
|
|
272
|
-
gemachtigde = defaultProfessioneelBewindvoerderAccount;
|
|
273
|
-
try {
|
|
274
|
-
await this.loginWithEHerkenning(gemachtigde);
|
|
275
|
-
} catch (_error) {
|
|
276
|
-
await this.openPage();
|
|
277
|
-
await this.loginWithEHerkenning(gemachtigde);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
222
|
if (gemachtigde.bsn != null) {
|
|
281
223
|
await this.verderLink.click();
|
|
282
224
|
await this.inputBsn.fill(gemachtigde.bsn);
|
|
@@ -286,10 +228,6 @@ var EHerkenningLoginPage = class extends LoginOverzichtPage {
|
|
|
286
228
|
await this.accepteerCookies();
|
|
287
229
|
if (file) await this.page.context().storageState({ path: file });
|
|
288
230
|
}
|
|
289
|
-
async valideerDatNietGemachtigdBerichtZichtbaarIs() {
|
|
290
|
-
await expect(this.page.getByText("Helaas bent u niet gemachtigd")).toBeVisible();
|
|
291
|
-
await expect(this.page.getByText("Helaas bent u niet gemachtigd voor toegang tot Aanvragen en regelen producten en diensten als bewindvoerder van Gemeente Den Haag.")).toBeVisible();
|
|
292
|
-
}
|
|
293
231
|
};
|
|
294
232
|
//#endregion
|
|
295
233
|
//#region src/auth/loginhandlers/eHerkenningLoginHandler.ts
|
|
@@ -313,102 +251,6 @@ var EHerkenningBewindvoerderLoginHandler = class {
|
|
|
313
251
|
}
|
|
314
252
|
};
|
|
315
253
|
//#endregion
|
|
316
|
-
//#region node_modules/.pnpm/totp-generator@2.0.1/node_modules/totp-generator/lib/esm/index.js
|
|
317
|
-
var TOTP = class TOTP {
|
|
318
|
-
static _sign = async (t, e, r) => {
|
|
319
|
-
try {
|
|
320
|
-
const a = (globalThis.crypto || __require("node:crypto").webcrypto).subtle, i = await a.importKey("raw", t, {
|
|
321
|
-
name: "HMAC",
|
|
322
|
-
hash: { name: r }
|
|
323
|
-
}, !1, ["sign"]), n = TOTP.hex2buf(e);
|
|
324
|
-
return await a.sign("HMAC", i, n);
|
|
325
|
-
} catch (a) {
|
|
326
|
-
const { default: i } = await import("./sha-B5xpXfPW.mjs"), n = new i(r, "ARRAYBUFFER");
|
|
327
|
-
return n.setHMACKey(t, "ARRAYBUFFER"), n.update(TOTP.hex2buf(e)), n.getHMAC("ARRAYBUFFER");
|
|
328
|
-
}
|
|
329
|
-
};
|
|
330
|
-
static async generate(t, e) {
|
|
331
|
-
const r = {
|
|
332
|
-
digits: 6,
|
|
333
|
-
algorithm: "SHA-1",
|
|
334
|
-
encoding: "hex",
|
|
335
|
-
period: 30,
|
|
336
|
-
timestamp: Date.now(),
|
|
337
|
-
explicitZeroPad: !1,
|
|
338
|
-
...e
|
|
339
|
-
}, a = Math.floor(r.timestamp / 1e3), i = TOTP.dec2hex(Math.floor(a / r.period)).padStart(16, "0"), n = "hex" === r.encoding ? TOTP.base32ToBuffer(t) : TOTP.asciiToBuffer(t), o = await TOTP._sign(n, i, r.algorithm), s = TOTP.buf2hex(o), c = 2 * TOTP.hex2dec(s.slice(-1)), h = (2147483647 & TOTP.hex2dec(s.slice(c, c + 8))).toString().slice(-r.digits), T = r.explicitZeroPad ? h.padStart(r.digits, "0") : h, d = 1e3 * r.period;
|
|
340
|
-
return {
|
|
341
|
-
otp: T,
|
|
342
|
-
expires: Math.ceil((r.timestamp + 1) / d) * d
|
|
343
|
-
};
|
|
344
|
-
}
|
|
345
|
-
static hex2dec(t) {
|
|
346
|
-
return parseInt(t, 16);
|
|
347
|
-
}
|
|
348
|
-
static dec2hex(t) {
|
|
349
|
-
return (t < 15.5 ? "0" : "") + Math.round(t).toString(16);
|
|
350
|
-
}
|
|
351
|
-
static base32ToBuffer(t) {
|
|
352
|
-
let e = (t = t.toUpperCase()).length;
|
|
353
|
-
for (; 61 === t.charCodeAt(e - 1);) e--;
|
|
354
|
-
const r = new Uint8Array(5 * e / 8);
|
|
355
|
-
let a = 0, i = 0, n = 0;
|
|
356
|
-
for (let o = 0; o < e; o++) {
|
|
357
|
-
const e = TOTP.base32[t.charCodeAt(o)];
|
|
358
|
-
if (void 0 === e) throw new Error("Invalid base32 character in key");
|
|
359
|
-
a = a << 5 | e, i += 5, i >= 8 && (r[n++] = a >>> (i -= 8));
|
|
360
|
-
}
|
|
361
|
-
return r.buffer;
|
|
362
|
-
}
|
|
363
|
-
static asciiToBuffer(t) {
|
|
364
|
-
const e = new Uint8Array(t.length);
|
|
365
|
-
for (let r = 0; r < t.length; r++) e[r] = t.charCodeAt(r);
|
|
366
|
-
return e.buffer;
|
|
367
|
-
}
|
|
368
|
-
static hex2buf(t) {
|
|
369
|
-
const e = new Uint8Array(t.length / 2);
|
|
370
|
-
for (let r = 0, a = 0; r < t.length; r += 2, a++) e[a] = TOTP.hex2dec(t.slice(r, r + 2));
|
|
371
|
-
return e.buffer;
|
|
372
|
-
}
|
|
373
|
-
static buf2hex(t) {
|
|
374
|
-
return [...new Uint8Array(t)].map((t) => t.toString(16).padStart(2, "0")).join("");
|
|
375
|
-
}
|
|
376
|
-
static base32 = {
|
|
377
|
-
50: 26,
|
|
378
|
-
51: 27,
|
|
379
|
-
52: 28,
|
|
380
|
-
53: 29,
|
|
381
|
-
54: 30,
|
|
382
|
-
55: 31,
|
|
383
|
-
65: 0,
|
|
384
|
-
66: 1,
|
|
385
|
-
67: 2,
|
|
386
|
-
68: 3,
|
|
387
|
-
69: 4,
|
|
388
|
-
70: 5,
|
|
389
|
-
71: 6,
|
|
390
|
-
72: 7,
|
|
391
|
-
73: 8,
|
|
392
|
-
74: 9,
|
|
393
|
-
75: 10,
|
|
394
|
-
76: 11,
|
|
395
|
-
77: 12,
|
|
396
|
-
78: 13,
|
|
397
|
-
79: 14,
|
|
398
|
-
80: 15,
|
|
399
|
-
81: 16,
|
|
400
|
-
82: 17,
|
|
401
|
-
83: 18,
|
|
402
|
-
84: 19,
|
|
403
|
-
85: 20,
|
|
404
|
-
86: 21,
|
|
405
|
-
87: 22,
|
|
406
|
-
88: 23,
|
|
407
|
-
89: 24,
|
|
408
|
-
90: 25
|
|
409
|
-
};
|
|
410
|
-
};
|
|
411
|
-
//#endregion
|
|
412
254
|
//#region src/auth/pages/adLoginPage.ts
|
|
413
255
|
var gzacUrlProd = "https://alg-zgw.denhaag.nl";
|
|
414
256
|
var gzacUrlAcp = "https://alg-zgw.acc.denhaag.nl";
|
|
@@ -515,29 +357,29 @@ var environment = process$2.env.ENV ?? "test";
|
|
|
515
357
|
* Easy way to create the filenames for the sessions
|
|
516
358
|
*/
|
|
517
359
|
var SessionFileHelper = class {
|
|
518
|
-
static getLocalhostFileName(browser) {
|
|
519
|
-
return path.join(sessionsDir, `${browser.browserType().name()}-${environment}-${
|
|
360
|
+
static getLocalhostFileName(browser, account) {
|
|
361
|
+
return path.join(sessionsDir, `${browser.browserType().name()}-${environment}-${account.username}.json`);
|
|
520
362
|
}
|
|
521
|
-
static getLocalhostFileNameBedrijf(browser) {
|
|
522
|
-
return path.join(sessionsDir, `${browser.browserType().name()}-${environment}-${
|
|
363
|
+
static getLocalhostFileNameBedrijf(browser, account) {
|
|
364
|
+
return path.join(sessionsDir, `${browser.browserType().name()}-${environment}-${account.username}.json`);
|
|
523
365
|
}
|
|
524
|
-
static getDigidFileName(browser) {
|
|
525
|
-
return path.join(sessionsDir, `${browser.browserType().name()}-digid-${environment}-${
|
|
366
|
+
static getDigidFileName(browser, account) {
|
|
367
|
+
return path.join(sessionsDir, `${browser.browserType().name()}-digid-${environment}-${account.username}.json`);
|
|
526
368
|
}
|
|
527
|
-
static getDigidGemachtigdeFileName(browser) {
|
|
528
|
-
return path.join(sessionsDir, `${browser.browserType().name()}-digid-gemachtigde-${environment}-${
|
|
369
|
+
static getDigidGemachtigdeFileName(browser, account) {
|
|
370
|
+
return path.join(sessionsDir, `${browser.browserType().name()}-digid-gemachtigde-${environment}-${account.username}.json`);
|
|
529
371
|
}
|
|
530
|
-
static getEHerkenningFileName(browser) {
|
|
531
|
-
return path.join(sessionsDir, `${browser.browserType().name()}-eherkenning-${environment}.json`);
|
|
372
|
+
static getEHerkenningFileName(browser, account) {
|
|
373
|
+
return path.join(sessionsDir, `${browser.browserType().name()}-eherkenning-${environment}-${account.username}.json`);
|
|
532
374
|
}
|
|
533
|
-
static getEHerkenningVestigingFileName(browser) {
|
|
534
|
-
return path.join(sessionsDir, `${browser.browserType().name()}-eherkenning-vestiging-${environment}.json`);
|
|
375
|
+
static getEHerkenningVestigingFileName(browser, account) {
|
|
376
|
+
return path.join(sessionsDir, `${browser.browserType().name()}-eherkenning-vestiging-${environment}-${account.username}.json`);
|
|
535
377
|
}
|
|
536
|
-
static getEHerkenningBewindvoerderFileName(browser) {
|
|
537
|
-
return path.join(sessionsDir, `${browser.browserType().name()}-eherkenning-bewindvoerder-${environment}.json`);
|
|
378
|
+
static getEHerkenningBewindvoerderFileName(browser, account) {
|
|
379
|
+
return path.join(sessionsDir, `${browser.browserType().name()}-eherkenning-bewindvoerder-${environment}-${account.username}.json`);
|
|
538
380
|
}
|
|
539
|
-
static getADFileName(browser) {
|
|
540
|
-
return path.join(sessionsDir, `${browser.browserType().name()}-ad-${environment}.json`);
|
|
381
|
+
static getADFileName(browser, account) {
|
|
382
|
+
return path.join(sessionsDir, `${browser.browserType().name()}-ad-${environment}-${account.username}.json`);
|
|
541
383
|
}
|
|
542
384
|
};
|
|
543
385
|
//#endregion
|
|
@@ -555,12 +397,12 @@ function createSessionHandler(authType, account, loginHandler) {
|
|
|
555
397
|
return {
|
|
556
398
|
getFile: (browser) => {
|
|
557
399
|
switch (authType) {
|
|
558
|
-
case "digid": return SessionFileHelper.getDigidFileName(browser);
|
|
559
|
-
case "digid_gemachtigde": return SessionFileHelper.getDigidGemachtigdeFileName(browser);
|
|
560
|
-
case "eherkenning": return SessionFileHelper.getEHerkenningFileName(browser);
|
|
561
|
-
case "eherkenning_vestiging": return SessionFileHelper.getEHerkenningVestigingFileName(browser);
|
|
562
|
-
case "eherkenning_bewindvoerder": return SessionFileHelper.getEHerkenningBewindvoerderFileName(browser);
|
|
563
|
-
case "ad-session": return SessionFileHelper.getADFileName(browser);
|
|
400
|
+
case "digid": return SessionFileHelper.getDigidFileName(browser, account);
|
|
401
|
+
case "digid_gemachtigde": return SessionFileHelper.getDigidGemachtigdeFileName(browser, account);
|
|
402
|
+
case "eherkenning": return SessionFileHelper.getEHerkenningFileName(browser, account);
|
|
403
|
+
case "eherkenning_vestiging": return SessionFileHelper.getEHerkenningVestigingFileName(browser, account);
|
|
404
|
+
case "eherkenning_bewindvoerder": return SessionFileHelper.getEHerkenningBewindvoerderFileName(browser, account);
|
|
405
|
+
case "ad-session": return SessionFileHelper.getADFileName(browser, account);
|
|
564
406
|
default: throw new Error(`Unsupported auth type: ${authType}`);
|
|
565
407
|
}
|
|
566
408
|
},
|
|
@@ -575,7 +417,10 @@ function createSessionHandler(authType, account, loginHandler) {
|
|
|
575
417
|
const useADSession = process.env.WITH_AD_SESSION === "true";
|
|
576
418
|
const page = await browser.newPage({
|
|
577
419
|
ignoreHTTPSErrors: true,
|
|
578
|
-
storageState: useADSession && authType !== "ad-session" ? SessionFileHelper.getADFileName(browser
|
|
420
|
+
storageState: useADSession && authType !== "ad-session" ? SessionFileHelper.getADFileName(browser, {
|
|
421
|
+
username: `${process.env.AD_USER}`,
|
|
422
|
+
password: `${process.env.AD_PASSWORD}`
|
|
423
|
+
}) : void 0
|
|
579
424
|
});
|
|
580
425
|
console.log(`New session will be created: ${file}`);
|
|
581
426
|
try {
|
|
@@ -626,15 +471,14 @@ function createSessionHandler(authType, account, loginHandler) {
|
|
|
626
471
|
* Per specfile it is not problem but this should be done in every specfile to assure a valid token
|
|
627
472
|
*
|
|
628
473
|
* @param baseTest
|
|
629
|
-
* @param
|
|
474
|
+
* @param handler
|
|
630
475
|
*/
|
|
631
|
-
function getApiTokenFromSession(baseTest,
|
|
476
|
+
function getApiTokenFromSession(baseTest, handler) {
|
|
632
477
|
return baseTest.extend({
|
|
633
478
|
urls: async ({}, use) => {
|
|
634
479
|
await use(urls);
|
|
635
480
|
},
|
|
636
481
|
token: async ({ browser }, use) => {
|
|
637
|
-
const handler = handlerResolver();
|
|
638
482
|
const storageState = await SessionManager.getOrCreateSession(browser, handler);
|
|
639
483
|
const context = await browser.newContext(storageState ? { storageState } : {});
|
|
640
484
|
const page = await context.newPage();
|
|
@@ -672,135 +516,8 @@ function getApiTokenFromSession(baseTest, handlerResolver) {
|
|
|
672
516
|
}
|
|
673
517
|
//#endregion
|
|
674
518
|
//#region src/auth/api/sessionHandlerResolvers.ts
|
|
675
|
-
function
|
|
676
|
-
|
|
677
|
-
return createSessionHandler("digid", defaultDigidAccount, getLoginHandler("digid"));
|
|
678
|
-
}
|
|
679
|
-
function getBedrijfSessionHandler() {
|
|
680
|
-
if (isRunningOnLocalhost()) return createSessionHandler("eherkenning", localhostBedrijfAccount, getLoginHandler("eherkenning"));
|
|
681
|
-
return createSessionHandler("eherkenning", defaultEHerkenningAccount, getLoginHandler("eherkenning"));
|
|
682
|
-
}
|
|
683
|
-
function getVestigingSessionHandler() {
|
|
684
|
-
return createSessionHandler("eherkenning_vestiging", defaultVestigingAccount, getLoginHandler("eherkenning_vestiging"));
|
|
519
|
+
function getSessionHandler(authType, account) {
|
|
520
|
+
return createSessionHandler(authType, account, getLoginHandler(authType));
|
|
685
521
|
}
|
|
686
|
-
function getDigidGemachtigdeSessionHandler() {
|
|
687
|
-
return createSessionHandler("digid_gemachtigde", defaultDigidGemachtigdAccount, getLoginHandler("digid_gemachtigde"));
|
|
688
|
-
}
|
|
689
|
-
function getEHerkenningBewindvoerderSessionHandler() {
|
|
690
|
-
return createSessionHandler("eherkenning_bewindvoerder", defaultProfessioneelBewindvoerderAccount, getLoginHandler("eherkenning_bewindvoerder"));
|
|
691
|
-
}
|
|
692
|
-
function getAdSessionHandler() {
|
|
693
|
-
return createSessionHandler("ad-session", defaultADAccount, getLoginHandler("ad-session"));
|
|
694
|
-
}
|
|
695
|
-
//#endregion
|
|
696
|
-
//#region src/auth/api/apiAuthentication.ts
|
|
697
|
-
/**
|
|
698
|
-
* The api's will use an existing session and use that token for the requests.
|
|
699
|
-
* The reason for this is that the token life-span is short and the UI always does a token-refresh.
|
|
700
|
-
* By using the UI session and stealing that token it will always be valid.
|
|
701
|
-
*/
|
|
702
|
-
var burgerApiTest = getApiTokenFromSession(baseTest, getBurgerSessionHandler);
|
|
703
|
-
var bedrijfApiTest = getApiTokenFromSession(baseTest, getBedrijfSessionHandler);
|
|
704
|
-
var vestigingApiTest = getApiTokenFromSession(baseTest, getVestigingSessionHandler);
|
|
705
|
-
var digidGemachtigdeApiTest = getApiTokenFromSession(baseTest, getDigidGemachtigdeSessionHandler);
|
|
706
|
-
var eHerkenningBewindvoerderApiTest = getApiTokenFromSession(baseTest, getEHerkenningBewindvoerderSessionHandler);
|
|
707
|
-
//#endregion
|
|
708
|
-
//#region src/constants/accountTypes.ts
|
|
709
|
-
var profiles = {
|
|
710
|
-
burger: {
|
|
711
|
-
accountType: "burger",
|
|
712
|
-
authType: "digid",
|
|
713
|
-
id: "999994499"
|
|
714
|
-
},
|
|
715
|
-
bedrijf: {
|
|
716
|
-
accountType: "bedrijf",
|
|
717
|
-
authType: "eherkenning",
|
|
718
|
-
id: "90002768"
|
|
719
|
-
},
|
|
720
|
-
vestiging: {
|
|
721
|
-
accountType: "vestiging",
|
|
722
|
-
authType: "eherkenning_vestiging",
|
|
723
|
-
id: "990000262129"
|
|
724
|
-
},
|
|
725
|
-
gemachtigde: {
|
|
726
|
-
accountType: "digid-gemachtigde",
|
|
727
|
-
authType: "digid_gemachtigde",
|
|
728
|
-
id: ""
|
|
729
|
-
},
|
|
730
|
-
bewindvoerder: {
|
|
731
|
-
accountType: "bedrijf",
|
|
732
|
-
authType: "eherkenning_bewindvoerder",
|
|
733
|
-
id: "999994499"
|
|
734
|
-
}
|
|
735
|
-
};
|
|
736
|
-
//#endregion
|
|
737
|
-
//#region src/constants/testAccounts.ts
|
|
738
|
-
var TestAccounts = {
|
|
739
|
-
zgwdigiduser1: {
|
|
740
|
-
id: "999991954",
|
|
741
|
-
type: "burger"
|
|
742
|
-
},
|
|
743
|
-
zgwdigiduser2: {
|
|
744
|
-
id: "999991115",
|
|
745
|
-
type: "burger"
|
|
746
|
-
},
|
|
747
|
-
zgwdigiduser3: {
|
|
748
|
-
id: "999991966",
|
|
749
|
-
type: "burger"
|
|
750
|
-
},
|
|
751
|
-
zgwdigiduser4: {
|
|
752
|
-
id: "999992922",
|
|
753
|
-
type: "burger"
|
|
754
|
-
},
|
|
755
|
-
zgwdigiduser5: {
|
|
756
|
-
id: "999991322",
|
|
757
|
-
type: "burger"
|
|
758
|
-
},
|
|
759
|
-
testautomatisering: {
|
|
760
|
-
id: "999994499",
|
|
761
|
-
type: "burger"
|
|
762
|
-
},
|
|
763
|
-
localhostaccount: {
|
|
764
|
-
id: "999993847",
|
|
765
|
-
type: "burger"
|
|
766
|
-
},
|
|
767
|
-
kvkAccount: {
|
|
768
|
-
id: "90002768",
|
|
769
|
-
type: "bedrijf"
|
|
770
|
-
},
|
|
771
|
-
kvkVestiging: {
|
|
772
|
-
id: "990000262129",
|
|
773
|
-
type: "vestiging"
|
|
774
|
-
}
|
|
775
|
-
};
|
|
776
|
-
//#endregion
|
|
777
|
-
//#region src/constants/testProfiles.ts
|
|
778
|
-
var testProfiles = {
|
|
779
|
-
burger: {
|
|
780
|
-
accountType: "burger",
|
|
781
|
-
authType: "digid",
|
|
782
|
-
id: "999994499"
|
|
783
|
-
},
|
|
784
|
-
bedrijf: {
|
|
785
|
-
accountType: "bedrijf",
|
|
786
|
-
authType: "eherkenning",
|
|
787
|
-
id: "90002768"
|
|
788
|
-
},
|
|
789
|
-
vestiging: {
|
|
790
|
-
accountType: "vestiging",
|
|
791
|
-
authType: "eherkenning_vestiging",
|
|
792
|
-
id: "990000262129"
|
|
793
|
-
},
|
|
794
|
-
gemachtigde: {
|
|
795
|
-
accountType: "digid-gemachtigde",
|
|
796
|
-
authType: "digid_gemachtigde",
|
|
797
|
-
id: ""
|
|
798
|
-
},
|
|
799
|
-
bewindvoerder: {
|
|
800
|
-
accountType: "bedrijf",
|
|
801
|
-
authType: "eherkenning_bewindvoerder",
|
|
802
|
-
id: "999994499"
|
|
803
|
-
}
|
|
804
|
-
};
|
|
805
522
|
//#endregion
|
|
806
|
-
export { ADLoginHandler, ADLoginPage, DigidGemachtigdeLoginHandler, DigidLoginHandler, DigidLoginPage, EHerkenningBewindvoerderLoginHandler, EHerkenningLoginHandler, EHerkenningLoginPage, LocalhostLoginHandler, LoginOverzichtPage, MAX_SESSION_TIME_IN_MINUTES, SessionFileHelper,
|
|
523
|
+
export { ADLoginHandler, ADLoginPage, DigidGemachtigdeLoginHandler, DigidLoginHandler, DigidLoginPage, EHerkenningBewindvoerderLoginHandler, EHerkenningLoginHandler, EHerkenningLoginPage, LocalhostLoginHandler, LoginOverzichtPage, MAX_SESSION_TIME_IN_MINUTES, SessionFileHelper, createSessionHandler, getApiTokenFromSession, getLoginHandler, getSessionHandler };
|
package/package.json
CHANGED
|
@@ -1,54 +1,55 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "dh-auth-library",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "git+https://github.com/Gemeente-DenHaag/dh-auth-library.git"
|
|
7
|
+
},
|
|
8
|
+
"description": "Authentication package for all types of login on DH applications",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"main": "dist/index.cjs.js",
|
|
11
|
+
"module": "dist/index.es.js",
|
|
12
|
+
"types": "dist/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.es.js",
|
|
17
|
+
"require": "./dist/index.cjs.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=22",
|
|
25
|
+
"pnpm": "^11"
|
|
26
|
+
},
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"@playwright/test": ">=1.60.0"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@eslint/js": "10.0.1",
|
|
32
|
+
"@playwright/test": "^1.61.1",
|
|
33
|
+
"@types/node": "^25.9.4",
|
|
34
|
+
"eslint": "^10.5.0",
|
|
35
|
+
"typescript": "^6.0.3",
|
|
36
|
+
"typescript-eslint": "8.60.1",
|
|
37
|
+
"vite": "^8.1.0",
|
|
38
|
+
"vite-tsconfig-paths": "^6.1.1"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"nl-portal-playwright-libraries": "^1.1.3",
|
|
42
|
+
"totp-generator": "^2.0.1"
|
|
43
|
+
},
|
|
44
|
+
"keywords": [
|
|
45
|
+
"playwright",
|
|
46
|
+
"testing",
|
|
47
|
+
"automation",
|
|
48
|
+
"e2e",
|
|
49
|
+
"dh-auth"
|
|
50
|
+
],
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "vite build && tsc -p tsconfig.build.json",
|
|
53
|
+
"lint": "eslint ."
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The api's will use an existing session and use that token for the requests.
|
|
3
|
-
* The reason for this is that the token life-span is short and the UI always does a token-refresh.
|
|
4
|
-
* By using the UI session and stealing that token it will always be valid.
|
|
5
|
-
*/
|
|
6
|
-
export declare const burgerApiTest: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & import("./apiTokenHelper").ApiFixtures, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
|
|
7
|
-
export declare const bedrijfApiTest: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & import("./apiTokenHelper").ApiFixtures, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
|
|
8
|
-
export declare const vestigingApiTest: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & import("./apiTokenHelper").ApiFixtures, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
|
|
9
|
-
export declare const digidGemachtigdeApiTest: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & import("./apiTokenHelper").ApiFixtures, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
|
|
10
|
-
export declare const eHerkenningBewindvoerderApiTest: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & import("./apiTokenHelper").ApiFixtures, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Account } from 'nl-portal-playwright-libraries';
|
|
2
|
-
/**
|
|
3
|
-
* To use these accounts they should be available as environment variables
|
|
4
|
-
*/
|
|
5
|
-
export declare const localhostBurgerAccount: Account;
|
|
6
|
-
export declare const localhostBedrijfAccount: Account;
|
|
7
|
-
export declare const defaultDigidAccount: Account;
|
|
8
|
-
export declare const defaultDigidGemachtigdAccount: Account;
|
|
9
|
-
export declare const defaultEHerkenningAccount: Account;
|
|
10
|
-
export declare const defaultVestigingAccount: Account;
|
|
11
|
-
export declare const defaultProfessioneelBewindvoerderAccount: Account;
|
|
12
|
-
export declare const defaultADAccount: Account;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
export declare const TestAccounts: {
|
|
2
|
-
zgwdigiduser1: {
|
|
3
|
-
id: string;
|
|
4
|
-
type: "burger";
|
|
5
|
-
};
|
|
6
|
-
zgwdigiduser2: {
|
|
7
|
-
id: string;
|
|
8
|
-
type: "burger";
|
|
9
|
-
};
|
|
10
|
-
zgwdigiduser3: {
|
|
11
|
-
id: string;
|
|
12
|
-
type: "burger";
|
|
13
|
-
};
|
|
14
|
-
zgwdigiduser4: {
|
|
15
|
-
id: string;
|
|
16
|
-
type: "burger";
|
|
17
|
-
};
|
|
18
|
-
zgwdigiduser5: {
|
|
19
|
-
id: string;
|
|
20
|
-
type: "burger";
|
|
21
|
-
};
|
|
22
|
-
testautomatisering: {
|
|
23
|
-
id: string;
|
|
24
|
-
type: "burger";
|
|
25
|
-
};
|
|
26
|
-
localhostaccount: {
|
|
27
|
-
id: string;
|
|
28
|
-
type: "burger";
|
|
29
|
-
};
|
|
30
|
-
kvkAccount: {
|
|
31
|
-
id: string;
|
|
32
|
-
type: "bedrijf";
|
|
33
|
-
};
|
|
34
|
-
kvkVestiging: {
|
|
35
|
-
id: string;
|
|
36
|
-
type: "vestiging";
|
|
37
|
-
};
|
|
38
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export declare const testProfiles: {
|
|
2
|
-
readonly burger: {
|
|
3
|
-
readonly accountType: "burger";
|
|
4
|
-
readonly authType: "digid";
|
|
5
|
-
readonly id: "999994499";
|
|
6
|
-
};
|
|
7
|
-
readonly bedrijf: {
|
|
8
|
-
readonly accountType: "bedrijf";
|
|
9
|
-
readonly authType: "eherkenning";
|
|
10
|
-
readonly id: "90002768";
|
|
11
|
-
};
|
|
12
|
-
readonly vestiging: {
|
|
13
|
-
readonly accountType: "vestiging";
|
|
14
|
-
readonly authType: "eherkenning_vestiging";
|
|
15
|
-
readonly id: "990000262129";
|
|
16
|
-
};
|
|
17
|
-
readonly gemachtigde: {
|
|
18
|
-
readonly accountType: "digid-gemachtigde";
|
|
19
|
-
readonly authType: "digid_gemachtigde";
|
|
20
|
-
readonly id: "";
|
|
21
|
-
};
|
|
22
|
-
readonly bewindvoerder: {
|
|
23
|
-
readonly accountType: "bedrijf";
|
|
24
|
-
readonly authType: "eherkenning_bewindvoerder";
|
|
25
|
-
readonly id: "999994499";
|
|
26
|
-
};
|
|
27
|
-
};
|