@ksvedal/docs 0.1.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.
Files changed (137) hide show
  1. package/README.md +74 -0
  2. package/dist/Starthjelp-CDnMsPRF.js +6 -0
  3. package/dist/Starthjelp-DTDqsiPb.js +6 -0
  4. package/dist/_baseUniq-FW_jgYGR.js +477 -0
  5. package/dist/access_policy-BV-cRgLX.js +17 -0
  6. package/dist/access_policy-pBOJMSEK.js +17 -0
  7. package/dist/access_token_lifetime-6ypKk6LU.js +31 -0
  8. package/dist/access_token_lifetime-CVau9UC3.js +31 -0
  9. package/dist/allowed_grant_types-BrnsQvWi.js +101 -0
  10. package/dist/allowed_grant_types-ovkxJeQq.js +101 -0
  11. package/dist/application_type-BAESO1T4.js +36 -0
  12. package/dist/application_type-BtouPPrt.js +39 -0
  13. package/dist/arc-zSbgd3Dl.js +83 -0
  14. package/dist/architecture-U656AL7Q-bG73RCfJ.js +5 -0
  15. package/dist/architectureDiagram-VXUJARFQ-DbJ1yKpS.js +4668 -0
  16. package/dist/authentication_method-B28p58-a.js +43 -0
  17. package/dist/authentication_method-D8EwmEki.js +43 -0
  18. package/dist/authorization_lifetime-CfhrWQ9Y.js +39 -0
  19. package/dist/authorization_lifetime-DrFRbscQ.js +39 -0
  20. package/dist/backchannel_logout_uri-BTceN7xq.js +33 -0
  21. package/dist/backchannel_logout_uri-CBdktUL7.js +33 -0
  22. package/dist/blockDiagram-VD42YOAC-CmPMJI6H.js +2265 -0
  23. package/dist/breadcrumbs.json +1202 -0
  24. package/dist/c4Diagram-YG6GDRKO-BtTnslb7.js +1581 -0
  25. package/dist/channel-B9C38GUl.js +5 -0
  26. package/dist/chunk-4BX2VUAB-BLcImAIn.js +9 -0
  27. package/dist/chunk-55IACEB6-Cd_NYMQ6.js +8 -0
  28. package/dist/chunk-B4BG7PRW-C5mt8tWU.js +1376 -0
  29. package/dist/chunk-DI55MBZ5-BliqH_si.js +1382 -0
  30. package/dist/chunk-FMBD7UC4-D8OxNP20.js +19 -0
  31. package/dist/chunk-QN33PNHL-DBPrGAkF.js +20 -0
  32. package/dist/chunk-QZHKN3VN-Ce2k3n1F.js +15 -0
  33. package/dist/chunk-TZMSLE5B-BB3w_n2J.js +64 -0
  34. package/dist/classDiagram-2ON5EDUG-BJg1PJs9.js +16 -0
  35. package/dist/classDiagram-v2-WZHVMYZB-BJg1PJs9.js +16 -0
  36. package/dist/client_types-BmacnRwO.js +17 -0
  37. package/dist/client_types-Cu_f02j7.js +17 -0
  38. package/dist/clone-DZF-mLM1.js +8 -0
  39. package/dist/components/Docs.d.ts +5 -0
  40. package/dist/components/DocsBreadcrumbs.d.ts +10 -0
  41. package/dist/components/DocsErrorBoundary.d.ts +21 -0
  42. package/dist/components/DocsPage.d.ts +10 -0
  43. package/dist/components/DocsSearch.d.ts +12 -0
  44. package/dist/components/DocsViewer.d.ts +11 -0
  45. package/dist/components/index.d.ts +6 -0
  46. package/dist/components/useDocsStyles.d.ts +1 -0
  47. package/dist/cose-bilkent-S5V4N54A-xEniAY-c.js +2608 -0
  48. package/dist/cytoscape.esm-CjI2IsL8.js +18735 -0
  49. package/dist/dagre-6UL2VRFP-DWEj74f8.js +446 -0
  50. package/dist/defaultLocale-BgPVtth8.js +171 -0
  51. package/dist/delegation_source-B8L65LAZ.js +17 -0
  52. package/dist/delegation_source-DBE0sh58.js +17 -0
  53. package/dist/diagram-PSM6KHXK-Z3KtWXiy.js +533 -0
  54. package/dist/diagram-QEK2KX5R-BVA9QmB8.js +221 -0
  55. package/dist/diagram-S2PKOQOG-BOmc_fL6.js +143 -0
  56. package/dist/docs/folder.d.ts +12 -0
  57. package/dist/docs/types.d.ts +12 -0
  58. package/dist/entraid-CPkATiHs.js +6 -0
  59. package/dist/entraid-CSwp8dMQ.js +6 -0
  60. package/dist/erDiagram-Q2GNP2WA-Blro_6F2.js +842 -0
  61. package/dist/faq-CqjYqwL1.js +8 -0
  62. package/dist/faq-TqD11_1a.js +8 -0
  63. package/dist/flowDiagram-NV44I4VS-BN9iLCEi.js +1627 -0
  64. package/dist/frontchannel_logout_uri-Bt6bvoBs.js +36 -0
  65. package/dist/frontchannel_logout_uri-DRGyFXRl.js +36 -0
  66. package/dist/ganttDiagram-JELNMOA3-CXLPJQlh.js +2670 -0
  67. package/dist/general--WqS-xp8.js +89 -0
  68. package/dist/general-B37q4SsA.js +63 -0
  69. package/dist/general-BCOYLf6V.js +152 -0
  70. package/dist/general-CQFRRoeE.js +63 -0
  71. package/dist/general-Dk7lWiBC.js +152 -0
  72. package/dist/general-QQfgnjEE.js +89 -0
  73. package/dist/gitGraph-F6HP7TQM-ChFlbGFG.js +5 -0
  74. package/dist/gitGraphDiagram-NY62KEGX-DXSPVlhd.js +712 -0
  75. package/dist/graph-dALvSPTP.js +381 -0
  76. package/dist/index-D_FT2Td-.js +25338 -0
  77. package/dist/index.d.ts +2 -0
  78. package/dist/index.js +9 -0
  79. package/dist/info-NVLQJR56-BSQ5ueiP.js +5 -0
  80. package/dist/infoDiagram-WHAUD3N6-D0hbJwWb.js +24 -0
  81. package/dist/init-DjUOC4st.js +16 -0
  82. package/dist/integration_guide-BXkM8zJ-.js +7 -0
  83. package/dist/integration_guide-CLABphnS.js +313 -0
  84. package/dist/integration_guide-Ci8Nz8oL.js +313 -0
  85. package/dist/integration_guide-Ct8RYoMV.js +6 -0
  86. package/dist/integration_guide-DWfjt6Qk.js +6 -0
  87. package/dist/integration_guide-DrKTpPnR.js +6 -0
  88. package/dist/journeyDiagram-XKPGCS4Q-DTU9EVLJ.js +834 -0
  89. package/dist/kanban-definition-3W4ZIXB7-CcKx9EnU.js +721 -0
  90. package/dist/katex-C6SjTJMZ.js +11690 -0
  91. package/dist/layout-DUskCdLZ.js +1441 -0
  92. package/dist/linear-RKbqvfvG.js +259 -0
  93. package/dist/mermaid-parser.core-C-16ojim.js +15189 -0
  94. package/dist/min-CsCJm_uR.js +38 -0
  95. package/dist/mindmap-definition-VGOIOE7T-LpgPu_oq.js +787 -0
  96. package/dist/on_behalf_of-EcHpNqmZ.js +36 -0
  97. package/dist/on_behalf_of-qrlvHfcG.js +36 -0
  98. package/dist/ordinal-DfAQgscy.js +61 -0
  99. package/dist/overview-Bw11cTNo.js +21 -0
  100. package/dist/overview-ZreyAEkN.js +21 -0
  101. package/dist/packet-BFZMPI3H-CwJrUCZn.js +5 -0
  102. package/dist/pie-7BOR55EZ-WUF72bRP.js +5 -0
  103. package/dist/pieDiagram-ADFJNKIX-BRjx2vS_.js +161 -0
  104. package/dist/pkce-BkSKWYmh.js +34 -0
  105. package/dist/pkce-C3U_jCxQ.js +33 -0
  106. package/dist/post_logout_redirect_uri-BSzuTRwg.js +33 -0
  107. package/dist/post_logout_redirect_uri-BnhzB1De.js +33 -0
  108. package/dist/pseudonymous_login-B3oa6s2f.js +17 -0
  109. package/dist/pseudonymous_login-x98obOlL.js +17 -0
  110. package/dist/quadrantDiagram-AYHSOK5B-BOwjGYKH.js +1024 -0
  111. package/dist/radar-NHE76QYJ-DRN4buPP.js +5 -0
  112. package/dist/redirect_uri-Cnlv_2rt.js +38 -0
  113. package/dist/redirect_uri-DgNidm8d.js +38 -0
  114. package/dist/refresh_token_lifetime-DCzCzIyu.js +34 -0
  115. package/dist/refresh_token_lifetime-QcGf0aOG.js +34 -0
  116. package/dist/refresh_token_usage-C2LdxQHa.js +33 -0
  117. package/dist/refresh_token_usage-DXI98e4O.js +33 -0
  118. package/dist/requirementDiagram-UZGBJVZJ-KRDecAgT.js +852 -0
  119. package/dist/sankeyDiagram-TZEHDZUN-MKxbwv35.js +810 -0
  120. package/dist/search-index.json +450 -0
  121. package/dist/sequenceDiagram-WL72ISMW-DEo0cUN3.js +2518 -0
  122. package/dist/sso-BuAlvelZ.js +79 -0
  123. package/dist/sso-DYMIpoUd.js +78 -0
  124. package/dist/stateDiagram-FKZM4ZOC-CaTGomRc.js +263 -0
  125. package/dist/stateDiagram-v2-4FDKWEC3-l4p7_3uG.js +16 -0
  126. package/dist/timeline-definition-IT6M3QCI-ChX0PfWC.js +799 -0
  127. package/dist/token_lifetimes-Cp22x6RM.js +17 -0
  128. package/dist/token_lifetimes-CwzcMEnb.js +17 -0
  129. package/dist/token_type-B8DCg80j.js +17 -0
  130. package/dist/token_type-C7Y04-Fc.js +17 -0
  131. package/dist/treemap-KMMF4GRG-DNEhU-LQ.js +5 -0
  132. package/dist/user_involvement-4nbn_fQ7.js +17 -0
  133. package/dist/user_involvement-COT572uK.js +17 -0
  134. package/dist/visibility-BSqCGXMv.js +17 -0
  135. package/dist/visibility-CidZ07d9.js +17 -0
  136. package/dist/xychartDiagram-PRI3JC2R-CBQAJ13t.js +1340 -0
  137. package/package.json +60 -0
@@ -0,0 +1,36 @@
1
+ const e = `# OnBehalfOf
2
+
3
+ ## Om funksjonaliteten
4
+
5
+ *Onbehalfof* gjer det mogleg for tjenesteleverandørar å tilby tjenester til ulike kunder over same integrasjon.
6
+
7
+ * Gir mulighet til å ha ulike navn, logo og tilbake-url
8
+ * Statistikk / fakturering går til riktig tjenesteeier
9
+
10
+ Merk at en onbehalfof-integrasjon IKKE gir tilgang til scopes som egen kunde har fått tilgang til.
11
+
12
+ ## Bruk
13
+
14
+ Autentiseringsrequest må inneholde ekstra parameter \`\`\`onbehalfof\`\`\`:
15
+
16
+ \`\`\`
17
+ https:/…./authorize?client_id=test_client&onbehalfof=leikanger_kommune&...
18
+ \`\`\`
19
+
20
+ Returnert ID-token vil då innehalde eit nytt claim \`\`\`client_onbehalfof\`\`\`:
21
+
22
+ \`\`\`
23
+ {
24
+
25
+ aud: "test_client"
26
+ aud_onbehalfof: "leikanger_kommune"
27
+
28
+ }
29
+ \`\`\`
30
+
31
+ Klient må validere at returnert "client_onbehalfof" stemmer overens med forespurt onbehalfof-verdi.
32
+
33
+ Kombinasjonen av client og client_onbehalfof må vere pre-registrert hjå ID-porten.`;
34
+ export {
35
+ e as default
36
+ };
@@ -0,0 +1,36 @@
1
+ const e = `# OnBehalfOf
2
+
3
+ ## Om funksjonaliteten
4
+
5
+ *Onbehalfof* gjer det mogleg for tjenesteleverandørar å tilby tjenester til ulike kunder over same integrasjon.
6
+
7
+ * Gir mulighet til å ha ulike navn, logo og tilbake-url
8
+ * Statistikk / fakturering går til riktig tjenesteeier
9
+
10
+ Merk at en onbehalfof-integrasjon IKKE gir tilgang til scopes som egen kunde har fått tilgang til.
11
+
12
+ ## Bruk
13
+
14
+ Autentiseringsrequest må inneholde ekstra parameter \`\`\`onbehalfof\`\`\`:
15
+
16
+ \`\`\`
17
+ https:/…./authorize?client_id=test_client&onbehalfof=leikanger_kommune&...
18
+ \`\`\`
19
+
20
+ Returnert ID-token vil då innehalde eit nytt claim \`\`\`client_onbehalfof\`\`\`:
21
+
22
+ \`\`\`
23
+ {
24
+
25
+ aud: "test_client"
26
+ aud_onbehalfof: "leikanger_kommune"
27
+
28
+ }
29
+ \`\`\`
30
+
31
+ Klient må validere at returnert "client_onbehalfof" stemmer overens med forespurt onbehalfof-verdi.
32
+
33
+ Kombinasjonen av client og client_onbehalfof må vere pre-registrert hjå ID-porten.`;
34
+ export {
35
+ e as default
36
+ };
@@ -0,0 +1,61 @@
1
+ import { i as a } from "./init-DjUOC4st.js";
2
+ class o extends Map {
3
+ constructor(n, t = g) {
4
+ if (super(), Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: t } }), n != null) for (const [r, s] of n) this.set(r, s);
5
+ }
6
+ get(n) {
7
+ return super.get(c(this, n));
8
+ }
9
+ has(n) {
10
+ return super.has(c(this, n));
11
+ }
12
+ set(n, t) {
13
+ return super.set(l(this, n), t);
14
+ }
15
+ delete(n) {
16
+ return super.delete(p(this, n));
17
+ }
18
+ }
19
+ function c({ _intern: e, _key: n }, t) {
20
+ const r = n(t);
21
+ return e.has(r) ? e.get(r) : t;
22
+ }
23
+ function l({ _intern: e, _key: n }, t) {
24
+ const r = n(t);
25
+ return e.has(r) ? e.get(r) : (e.set(r, t), t);
26
+ }
27
+ function p({ _intern: e, _key: n }, t) {
28
+ const r = n(t);
29
+ return e.has(r) && (t = e.get(r), e.delete(r)), t;
30
+ }
31
+ function g(e) {
32
+ return e !== null && typeof e == "object" ? e.valueOf() : e;
33
+ }
34
+ const f = Symbol("implicit");
35
+ function h() {
36
+ var e = new o(), n = [], t = [], r = f;
37
+ function s(u) {
38
+ let i = e.get(u);
39
+ if (i === void 0) {
40
+ if (r !== f) return r;
41
+ e.set(u, i = n.push(u) - 1);
42
+ }
43
+ return t[i % t.length];
44
+ }
45
+ return s.domain = function(u) {
46
+ if (!arguments.length) return n.slice();
47
+ n = [], e = new o();
48
+ for (const i of u)
49
+ e.has(i) || e.set(i, n.push(i) - 1);
50
+ return s;
51
+ }, s.range = function(u) {
52
+ return arguments.length ? (t = Array.from(u), s) : t.slice();
53
+ }, s.unknown = function(u) {
54
+ return arguments.length ? (r = u, s) : r;
55
+ }, s.copy = function() {
56
+ return h(n, t).unknown(r);
57
+ }, a.apply(s, arguments), s;
58
+ }
59
+ export {
60
+ h as o
61
+ };
@@ -0,0 +1,21 @@
1
+ const e = `# Oversikt over scopes
2
+
3
+ ## Hva er dette?
4
+
5
+ Denne seksjonen beskriver felter og valg som ofte brukes når du definerer et scope eller en API-tilgang. Målet er ikke å dekke alle detaljer, men å gi korte forklaringer som gjør det enklere å forstå hva de ulike innstillingene betyr i praksis.
6
+
7
+ ## Typiske tema
8
+
9
+ - hvilken type klient eller produkt tilgangen hører til
10
+ - om scopet er offentlig eller privat
11
+ - hvordan tilgang godkjennes og delegeres
12
+ - hvordan token utformes og hvor lenge de varer
13
+ - om sluttbruker må involveres
14
+
15
+ ## Hvordan lese artiklene
16
+
17
+ Hver underside forklarer ett begrep, når det typisk brukes, og hvilke avveininger som følger med. Dette gjør det enklere å bruke mappen som eksempelinnhold under \`scopes\`.
18
+ `;
19
+ export {
20
+ e as default
21
+ };
@@ -0,0 +1,21 @@
1
+ const e = `# Scope overview
2
+
3
+ ## What is this?
4
+
5
+ This section describes fields and choices that are commonly used when defining a scope or API access. The goal is not to document every detail, but to provide short explanations that make the different settings easier to understand in practice.
6
+
7
+ ## Typical topics
8
+
9
+ - which client or product type the scope belongs to
10
+ - whether the scope is public or private
11
+ - how access is approved and delegated
12
+ - how tokens are shaped and how long they live
13
+ - whether the end user must be involved
14
+
15
+ ## How to use these pages
16
+
17
+ Each page explains one concept, when it is typically used, and which trade-offs come with it. That makes the folder useful as realistic example content under \`scopes\`.
18
+ `;
19
+ export {
20
+ e as default
21
+ };
@@ -0,0 +1,5 @@
1
+ import { P as c, a as r } from "./mermaid-parser.core-C-16ojim.js";
2
+ export {
3
+ c as PacketModule,
4
+ r as createPacketServices
5
+ };
@@ -0,0 +1,5 @@
1
+ import { b as a, d as i } from "./mermaid-parser.core-C-16ojim.js";
2
+ export {
3
+ a as PieModule,
4
+ i as createPieServices
5
+ };
@@ -0,0 +1,161 @@
1
+ import { V as S, P as z, aB as j, _ as p, g as q, s as H, a as K, b as Z, t as J, q as Q, l as F, c as X, F as Y, K as ee, a4 as te, e as ae, z as re, H as ne } from "./index-D_FT2Td-.js";
2
+ import { p as ie } from "./chunk-4BX2VUAB-BLcImAIn.js";
3
+ import { p as se } from "./mermaid-parser.core-C-16ojim.js";
4
+ import { d as I } from "./arc-zSbgd3Dl.js";
5
+ import { o as le } from "./ordinal-DfAQgscy.js";
6
+ function oe(e, a) {
7
+ return a < e ? -1 : a > e ? 1 : a >= e ? 0 : NaN;
8
+ }
9
+ function ce(e) {
10
+ return e;
11
+ }
12
+ function ue() {
13
+ var e = ce, a = oe, f = null, x = S(0), s = S(z), o = S(0);
14
+ function l(t) {
15
+ var n, c = (t = j(t)).length, g, y, m = 0, u = new Array(c), i = new Array(c), v = +x.apply(this, arguments), w = Math.min(z, Math.max(-z, s.apply(this, arguments) - v)), h, C = Math.min(Math.abs(w) / c, o.apply(this, arguments)), $ = C * (w < 0 ? -1 : 1), d;
16
+ for (n = 0; n < c; ++n)
17
+ (d = i[u[n] = n] = +e(t[n], n, t)) > 0 && (m += d);
18
+ for (a != null ? u.sort(function(A, D) {
19
+ return a(i[A], i[D]);
20
+ }) : f != null && u.sort(function(A, D) {
21
+ return f(t[A], t[D]);
22
+ }), n = 0, y = m ? (w - c * $) / m : 0; n < c; ++n, v = h)
23
+ g = u[n], d = i[g], h = v + (d > 0 ? d * y : 0) + $, i[g] = {
24
+ data: t[g],
25
+ index: n,
26
+ value: d,
27
+ startAngle: v,
28
+ endAngle: h,
29
+ padAngle: C
30
+ };
31
+ return i;
32
+ }
33
+ return l.value = function(t) {
34
+ return arguments.length ? (e = typeof t == "function" ? t : S(+t), l) : e;
35
+ }, l.sortValues = function(t) {
36
+ return arguments.length ? (a = t, f = null, l) : a;
37
+ }, l.sort = function(t) {
38
+ return arguments.length ? (f = t, a = null, l) : f;
39
+ }, l.startAngle = function(t) {
40
+ return arguments.length ? (x = typeof t == "function" ? t : S(+t), l) : x;
41
+ }, l.endAngle = function(t) {
42
+ return arguments.length ? (s = typeof t == "function" ? t : S(+t), l) : s;
43
+ }, l.padAngle = function(t) {
44
+ return arguments.length ? (o = typeof t == "function" ? t : S(+t), l) : o;
45
+ }, l;
46
+ }
47
+ var pe = ne.pie, G = {
48
+ sections: /* @__PURE__ */ new Map(),
49
+ showData: !1
50
+ }, T = G.sections, N = G.showData, ge = structuredClone(pe), de = /* @__PURE__ */ p(() => structuredClone(ge), "getConfig"), fe = /* @__PURE__ */ p(() => {
51
+ T = /* @__PURE__ */ new Map(), N = G.showData, re();
52
+ }, "clear"), he = /* @__PURE__ */ p(({ label: e, value: a }) => {
53
+ if (a < 0)
54
+ throw new Error(
55
+ `"${e}" has invalid value: ${a}. Negative values are not allowed in pie charts. All slice values must be >= 0.`
56
+ );
57
+ T.has(e) || (T.set(e, a), F.debug(`added new section: ${e}, with value: ${a}`));
58
+ }, "addSection"), me = /* @__PURE__ */ p(() => T, "getSections"), ve = /* @__PURE__ */ p((e) => {
59
+ N = e;
60
+ }, "setShowData"), Se = /* @__PURE__ */ p(() => N, "getShowData"), L = {
61
+ getConfig: de,
62
+ clear: fe,
63
+ setDiagramTitle: Q,
64
+ getDiagramTitle: J,
65
+ setAccTitle: Z,
66
+ getAccTitle: K,
67
+ setAccDescription: H,
68
+ getAccDescription: q,
69
+ addSection: he,
70
+ getSections: me,
71
+ setShowData: ve,
72
+ getShowData: Se
73
+ }, xe = /* @__PURE__ */ p((e, a) => {
74
+ ie(e, a), a.setShowData(e.showData), e.sections.map(a.addSection);
75
+ }, "populateDb"), ye = {
76
+ parse: /* @__PURE__ */ p(async (e) => {
77
+ const a = await se("pie", e);
78
+ F.debug(a), xe(a, L);
79
+ }, "parse")
80
+ }, we = /* @__PURE__ */ p((e) => `
81
+ .pieCircle{
82
+ stroke: ${e.pieStrokeColor};
83
+ stroke-width : ${e.pieStrokeWidth};
84
+ opacity : ${e.pieOpacity};
85
+ }
86
+ .pieOuterCircle{
87
+ stroke: ${e.pieOuterStrokeColor};
88
+ stroke-width: ${e.pieOuterStrokeWidth};
89
+ fill: none;
90
+ }
91
+ .pieTitleText {
92
+ text-anchor: middle;
93
+ font-size: ${e.pieTitleTextSize};
94
+ fill: ${e.pieTitleTextColor};
95
+ font-family: ${e.fontFamily};
96
+ }
97
+ .slice {
98
+ font-family: ${e.fontFamily};
99
+ fill: ${e.pieSectionTextColor};
100
+ font-size:${e.pieSectionTextSize};
101
+ // fill: white;
102
+ }
103
+ .legend text {
104
+ fill: ${e.pieLegendTextColor};
105
+ font-family: ${e.fontFamily};
106
+ font-size: ${e.pieLegendTextSize};
107
+ }
108
+ `, "getStyles"), Ae = we, De = /* @__PURE__ */ p((e) => {
109
+ const a = [...e.values()].reduce((s, o) => s + o, 0), f = [...e.entries()].map(([s, o]) => ({ label: s, value: o })).filter((s) => s.value / a * 100 >= 1).sort((s, o) => o.value - s.value);
110
+ return ue().value((s) => s.value)(f);
111
+ }, "createPieArcs"), Ce = /* @__PURE__ */ p((e, a, f, x) => {
112
+ F.debug(`rendering pie chart
113
+ ` + e);
114
+ const s = x.db, o = X(), l = Y(s.getConfig(), o.pie), t = 40, n = 18, c = 4, g = 450, y = g, m = ee(a), u = m.append("g");
115
+ u.attr("transform", "translate(" + y / 2 + "," + g / 2 + ")");
116
+ const { themeVariables: i } = o;
117
+ let [v] = te(i.pieOuterStrokeWidth);
118
+ v ?? (v = 2);
119
+ const w = l.textPosition, h = Math.min(y, g) / 2 - t, C = I().innerRadius(0).outerRadius(h), $ = I().innerRadius(h * w).outerRadius(h * w);
120
+ u.append("circle").attr("cx", 0).attr("cy", 0).attr("r", h + v / 2).attr("class", "pieOuterCircle");
121
+ const d = s.getSections(), A = De(d), D = [
122
+ i.pie1,
123
+ i.pie2,
124
+ i.pie3,
125
+ i.pie4,
126
+ i.pie5,
127
+ i.pie6,
128
+ i.pie7,
129
+ i.pie8,
130
+ i.pie9,
131
+ i.pie10,
132
+ i.pie11,
133
+ i.pie12
134
+ ];
135
+ let b = 0;
136
+ d.forEach((r) => {
137
+ b += r;
138
+ });
139
+ const P = A.filter((r) => (r.data.value / b * 100).toFixed(0) !== "0"), E = le(D);
140
+ u.selectAll("mySlices").data(P).enter().append("path").attr("d", C).attr("fill", (r) => E(r.data.label)).attr("class", "pieCircle"), u.selectAll("mySlices").data(P).enter().append("text").text((r) => (r.data.value / b * 100).toFixed(0) + "%").attr("transform", (r) => "translate(" + $.centroid(r) + ")").style("text-anchor", "middle").attr("class", "slice"), u.append("text").text(s.getDiagramTitle()).attr("x", 0).attr("y", -400 / 2).attr("class", "pieTitleText");
141
+ const W = [...d.entries()].map(([r, M]) => ({
142
+ label: r,
143
+ value: M
144
+ })), k = u.selectAll(".legend").data(W).enter().append("g").attr("class", "legend").attr("transform", (r, M) => {
145
+ const R = n + c, B = R * W.length / 2, V = 12 * n, U = M * R - B;
146
+ return "translate(" + V + "," + U + ")";
147
+ });
148
+ k.append("rect").attr("width", n).attr("height", n).style("fill", (r) => E(r.label)).style("stroke", (r) => E(r.label)), k.append("text").attr("x", n + c).attr("y", n - c).text((r) => s.getShowData() ? `${r.label} [${r.value}]` : r.label);
149
+ const _ = Math.max(
150
+ ...k.selectAll("text").nodes().map((r) => (r == null ? void 0 : r.getBoundingClientRect().width) ?? 0)
151
+ ), O = y + t + n + c + _;
152
+ m.attr("viewBox", `0 0 ${O} ${g}`), ae(m, g, O, l.useMaxWidth);
153
+ }, "draw"), $e = { draw: Ce }, ze = {
154
+ parser: ye,
155
+ db: L,
156
+ renderer: $e,
157
+ styles: Ae
158
+ };
159
+ export {
160
+ ze as diagram
161
+ };
@@ -0,0 +1,34 @@
1
+ const e = `#PKCE
2
+
3
+ ## Om funksjonaliteten
4
+
5
+ PKCE - Proof Key for Code Exchange - (uttales "pixy") er en metode som beskytter både public klienter som benytter autorisasjonskodeflyten (typisk mobil-app'er) mot stjeling av autorisasjonskoden, men også mot CSRF-angrep.
6
+
7
+ PKCE er definert i [RFC7636](https://tools.ietf.org/html/rfc7636), og vi henviser til denne for detaljert dokumentasjon av funksjonaliten.
8
+
9
+ Metoden er basert på følgende steg:
10
+
11
+ 1. klienten genererer en hemmelighet \`code_verifier\` ved hver innlogging.
12
+ 2. I /authorize-kallet sendes en hash'et versjon \`code_challenge\` av hemmeligheten som en del av forespørselen
13
+ 3. I /token-kallet må \`code_verifier\` sendes med. En eventuell angriper som har snappet opp autorisasjonskoden underveis, kjenner ikke hemmeligheten, og vil derfor ikke få utlevert tokens.
14
+
15
+ Vi støtter bare \`code_challenge_method=S256\`
16
+
17
+ **Merk at code_verifier må være minst 43 karakterer lang, og ikke lengre enn 128.**
18
+
19
+ Dersom \`code_verifier\` er \`xyo94uhy3zKvgB0NJwLms86SwcjtWviEOpkBnGgaLlo\` så blir utrekna \`code_challenge\` lik \`b7elB7ZyxIXgFyvBznKvxl7wOB-H17Pz0a3B62NIMFI\`. Code challenge skal ikke bruke padding.
20
+
21
+ [Her er et verktøy for å rekne ut challenges:](https://gist.github.com/tonyxu-io/21eb57ab2a4aeb2a3ee10f77542abe64)
22
+
23
+
24
+ ### PKCE er som hovedregel påkrevd
25
+
26
+ Oppdaterte sikkerhetsanbefalinger fra IETF er klare på at bruk av PKCE er beste praksis, og det er påkrevd i Oauth 2.1-standarden.
27
+
28
+ Derfor må alle klienter i ID-porten bruke PKCE, hvis ikke vil ID-porten som hovedregel avvise autentiseringsforespørselen.
29
+
30
+ Men for kunder med mindre sikker integrasjonsprogramvare som ennå ikke støtte PKCE, så er det er mulig å bruke [selvbetjening]({{site.baseurl}}/docs/idporten/oidc/oidc_func_clientreg.html) til å **nedgradere** klienten sin til omgå ID-portens tvungne PKCE-validering, dette gjøres ved å sette \`code_challenge_method\` på klienten til "none".
31
+ `;
32
+ export {
33
+ e as default
34
+ };
@@ -0,0 +1,33 @@
1
+ const e = `# PKCE
2
+
3
+ ## About the functionality
4
+
5
+ PKCE, Proof Key for Code Exchange, (pronounced "pixy") is a method that protects public clients using the authorization code flow, typically mobile apps, against theft of the authorization code, and also against CSRF attacks.
6
+
7
+ PKCE is defined in [RFC7636](https://tools.ietf.org/html/rfc7636), and we refer to that specification for detailed documentation of the functionality.
8
+
9
+ The method is based on the following steps:
10
+
11
+ 1. The client generates a secret \`code_verifier\` for each login.
12
+ 2. In the \`/authorize\` call, a hashed version of the secret, \`code_challenge\`, is sent as part of the request.
13
+ 3. In the \`/token\` call, \`code_verifier\` must be sent. A potential attacker who has intercepted the authorization code does not know the secret and will therefore not receive tokens.
14
+
15
+ We only support \`code_challenge_method=S256\`.
16
+
17
+ **Note that \`code_verifier\` must be at least 43 characters long, and no longer than 128.**
18
+
19
+ If \`code_verifier\` is \`xyo94uhy3zKvgB0NJwLms86SwcjtWviEOpkBnGgaLlo\`, the calculated \`code_challenge\` becomes \`b7elB7ZyxIXgFyvBznKvxl7wOB-H17Pz0a3B62NIMFI\`. The code challenge must not use padding.
20
+
21
+ [Here is a tool for calculating challenges:](https://gist.github.com/tonyxu-io/21eb57ab2a4aeb2a3ee10f77542abe64)
22
+
23
+ ### PKCE is generally required
24
+
25
+ Updated security recommendations from the IETF are clear that using PKCE is best practice, and it is required by the OAuth 2.1 standard.
26
+
27
+ Therefore, all clients in ID-porten must use PKCE. As a general rule, ID-porten will reject the authentication request if PKCE is not used.
28
+
29
+ However, for customers with less mature integration software that does not yet support PKCE, it is possible to use [self-service]({{site.baseurl}}/docs/idporten/oidc/oidc_func_clientreg.html) to **downgrade** the client so it bypasses ID-porten's enforced PKCE validation. This is done by setting \`code_challenge_method\` on the client to \`none\`.
30
+ `;
31
+ export {
32
+ e as default
33
+ };
@@ -0,0 +1,33 @@
1
+ const e = `# Post logout redirect URI-er
2
+
3
+ ## Formål
4
+
5
+ Post logout redirect URI-er er adresser brukeren kan sendes til etter at en sentral utloggingsprosess er fullført.
6
+
7
+ Dette brukes for å gi en kontrollert avslutning av brukerreisen etter logout.
8
+
9
+ ## Teknisk virkemåte
10
+
11
+ Når brukeren logger ut hos autorisasjonsserveren, kan vedkommende omdirigeres tilbake til en registrert adresse hos klienten. Denne adressen kan brukes til å:
12
+
13
+ - vise bekreftelse på utlogging
14
+ - tilby ny innlogging
15
+ - sende brukeren til startside eller annen definert landingsside
16
+
17
+ ### Sikkerhet
18
+
19
+ Som med redirect URI-er må også disse adressene være forhåndsregistrert, for å unngå åpen redirect og uønsket videresending.
20
+
21
+ ## Bruk i OIDC-klienter
22
+
23
+ ### ID-porten og Ansattporten
24
+
25
+ Dette er relevant for klienter som deltar i sentral logout og ønsker å styre hvor brukeren havner etter utlogging.
26
+
27
+ ### Maskinporten
28
+
29
+ Dette er normalt ikke relevant i Maskinporten, siden det ikke er en sluttbrukerbasert nettlesersesjon som skal avsluttes.
30
+ `;
31
+ export {
32
+ e as default
33
+ };
@@ -0,0 +1,33 @@
1
+ const e = `# Post logout redirect URIs
2
+
3
+ ## Purpose
4
+
5
+ Post logout redirect URIs are addresses the user can be sent to after a central logout process has completed.
6
+
7
+ This is used to provide a controlled end to the user journey after logout.
8
+
9
+ ## Technical behavior
10
+
11
+ When the user logs out at the authorization server, they can be redirected back to a registered address at the client. This address can be used to:
12
+
13
+ - show logout confirmation
14
+ - offer a new login
15
+ - send the user to a front page or another defined landing page
16
+
17
+ ### Security
18
+
19
+ As with redirect URIs, these addresses must also be pre-registered in order to avoid open redirects and unwanted forwarding.
20
+
21
+ ## Use in OIDC clients
22
+
23
+ ### ID-porten and Ansattporten
24
+
25
+ This is relevant for clients that participate in central logout and want to control where the user ends up after logging out.
26
+
27
+ ### Maskinporten
28
+
29
+ This is normally not relevant in Maskinporten, since there is no end-user-based browser session to terminate.
30
+ `;
31
+ export {
32
+ e as default
33
+ };
@@ -0,0 +1,17 @@
1
+ const e = `# Pseudonymisert innlogging
2
+
3
+ ## Hva betyr det?
4
+
5
+ Pseudonymisert innlogging betyr at identiteten som deles med klienten eller API-et er begrenset, slik at sluttbrukeren ikke nødvendigvis eksponeres med full eller direkte identifikasjon.
6
+
7
+ ## Når er det nyttig?
8
+
9
+ Dette kan være relevant når tjenesten trenger å kjenne igjen samme bruker over tid, men ikke trenger fullt fødselsnummer eller andre sterke identifikatorer i hvert kall.
10
+
11
+ ## Hva må vurderes?
12
+
13
+ Pseudonymisering reduserer datadeling, men gjør også enkelte typer kobling og saksbehandling vanskeligere. Det bør derfor brukes når det faktisk er tilstrekkelig for formålet.
14
+ `;
15
+ export {
16
+ e as default
17
+ };
@@ -0,0 +1,17 @@
1
+ const e = `# Pseudonymous login
2
+
3
+ ## What does it mean?
4
+
5
+ Pseudonymous login means that the identity shared with the client or API is limited, so the end user is not necessarily exposed through full or direct identification.
6
+
7
+ ## When is it useful?
8
+
9
+ This can be relevant when a service needs to recognize the same user over time, but does not need a full national identity number or other strong identifiers in every call.
10
+
11
+ ## What should be considered?
12
+
13
+ Pseudonymization reduces data sharing, but it can also make some forms of linking and case handling harder. It should therefore be used when it is actually sufficient for the purpose.
14
+ `;
15
+ export {
16
+ e as default
17
+ };