@authup/client-auth-console 1.0.0-beta.68 → 1.0.0-beta.69

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.
@@ -13,7 +13,7 @@
13
13
  <link rel="icon" type="image/svg+xml" href="/console/auth/assets/favicon-CEtVE1SK.svg" />
14
14
  <title>Authup</title>
15
15
  <!--preload-links-->
16
- <script type="module" crossorigin src="/console/auth/assets/index-BdwUQS5d.js"></script>
16
+ <script type="module" crossorigin src="/console/auth/assets/index-UI54EPIA.js"></script>
17
17
  <link rel="stylesheet" crossorigin href="/console/auth/assets/index-CyF87xq2.css">
18
18
  </head>
19
19
  <body>
@@ -5227,8 +5227,8 @@ var require_runtime_core_cjs_prod = /* @__PURE__ */ __commonJSMin(((exports) =>
5227
5227
  const oldLength = c1.length;
5228
5228
  const newLength = c2.length;
5229
5229
  const commonLength = Math.min(oldLength, newLength);
5230
- let i;
5231
- for (i = 0; i < commonLength; i++) {
5230
+ let i = 0;
5231
+ for (; i < commonLength; i++) {
5232
5232
  const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
5233
5233
  patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
5234
5234
  }
@@ -19954,8 +19954,8 @@ var require_lib$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
19954
19954
  return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement");
19955
19955
  }
19956
19956
  verifyBreakContinue(node, isBreak) {
19957
- let i;
19958
- for (i = 0; i < this.state.labels.length; ++i) {
19957
+ let i = 0;
19958
+ for (; i < this.state.labels.length; ++i) {
19959
19959
  const lab = this.state.labels[i];
19960
19960
  if (node.label == null || lab.name === node.label.name) {
19961
19961
  if (lab.kind != null && (isBreak || lab.kind === 1)) break;
@@ -22243,10 +22243,9 @@ var require_source_map_generator = /* @__PURE__ */ __commonJSMin(((exports) => {
22243
22243
  next = "";
22244
22244
  if (mapping.generatedLine !== previousGeneratedLine) {
22245
22245
  previousGeneratedColumn = 0;
22246
- while (mapping.generatedLine !== previousGeneratedLine) {
22247
- next += ";";
22248
- previousGeneratedLine++;
22249
- }
22246
+ var lineDelta = mapping.generatedLine - previousGeneratedLine;
22247
+ next += lineDelta === 1 ? ";" : ";".repeat(lineDelta);
22248
+ previousGeneratedLine = mapping.generatedLine;
22250
22249
  } else if (i > 0) {
22251
22250
  if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) continue;
22252
22251
  next += ",";
@@ -22427,6 +22426,14 @@ var require_quick_sort = /* @__PURE__ */ __commonJSMin(((exports) => {
22427
22426
  let template = SortTemplate.toString();
22428
22427
  return new Function(`return ${template}`)()(comparator);
22429
22428
  }
22429
+ var isEvalAllowed = (function() {
22430
+ try {
22431
+ new Function("return 0")();
22432
+ return true;
22433
+ } catch {
22434
+ return false;
22435
+ }
22436
+ })();
22430
22437
  /**
22431
22438
  * Sort the given array in-place with the given comparator function.
22432
22439
  *
@@ -22437,7 +22444,7 @@ var require_quick_sort = /* @__PURE__ */ __commonJSMin(((exports) => {
22437
22444
  */
22438
22445
  var sortCache = /* @__PURE__ */ new WeakMap();
22439
22446
  exports.quickSort = function(ary, comparator, start = 0) {
22440
- let doQuickSort = sortCache.get(comparator);
22447
+ let doQuickSort = isEvalAllowed ? sortCache.get(comparator) : SortTemplate(comparator);
22441
22448
  if (doQuickSort === void 0) {
22442
22449
  doQuickSort = cloneSort(comparator);
22443
22450
  sortCache.set(comparator, doQuickSort);
@@ -22453,6 +22460,7 @@ var require_source_map_consumer = /* @__PURE__ */ __commonJSMin(((exports) => {
22453
22460
  var ArraySet = require_array_set().ArraySet;
22454
22461
  var base64VLQ = require_base64_vlq();
22455
22462
  var quickSort = require_quick_sort().quickSort;
22463
+ var MAX_SECTION_OFFSET_LINE = 1e7;
22456
22464
  function SourceMapConsumer(aSourceMap, aSourceMapURL) {
22457
22465
  var sourceMap = aSourceMap;
22458
22466
  if (typeof aSourceMap === "string") sourceMap = util.parseSourceMapInput(aSourceMap);
@@ -22677,8 +22685,8 @@ var require_source_map_consumer = /* @__PURE__ */ __commonJSMin(((exports) => {
22677
22685
  var relativeSource = aSource;
22678
22686
  if (this.sourceRoot != null) relativeSource = util.relative(this.sourceRoot, relativeSource);
22679
22687
  if (this._sources.has(relativeSource)) return this._sources.indexOf(relativeSource);
22680
- var i;
22681
- for (i = 0; i < this._absoluteSources.length; ++i) if (this._absoluteSources[i] == aSource) return i;
22688
+ var i = 0;
22689
+ for (; i < this._absoluteSources.length; ++i) if (this._absoluteSources[i] == aSource) return i;
22682
22690
  return -1;
22683
22691
  };
22684
22692
  /**
@@ -23054,21 +23062,37 @@ var require_source_map_consumer = /* @__PURE__ */ __commonJSMin(((exports) => {
23054
23062
  line: -1,
23055
23063
  column: 0
23056
23064
  };
23065
+ var maxOffsetLine = 0;
23057
23066
  this._sections = sections.map(function(s) {
23058
23067
  if (s.url) throw new Error("Support for url field in sections not implemented.");
23059
23068
  var offset = util.getArg(s, "offset");
23060
23069
  var offsetLine = util.getArg(offset, "line");
23061
23070
  var offsetColumn = util.getArg(offset, "column");
23071
+ if (!isValidOffset(offsetLine) || !isValidOffset(offsetColumn)) throw new Error("Section offset line and column must be non-negative integers.");
23072
+ if (offsetLine > MAX_SECTION_OFFSET_LINE) throw new Error("Section offset line must not exceed " + MAX_SECTION_OFFSET_LINE + ".");
23062
23073
  if (offsetLine < lastOffset.line || offsetLine === lastOffset.line && offsetColumn < lastOffset.column) throw new Error("Section offsets must be ordered and non-overlapping.");
23063
23074
  lastOffset = offset;
23075
+ var consumer = new SourceMapConsumer(util.getArg(s, "map"), aSourceMapURL);
23076
+ var totalOffsetLine = offsetLine + (consumer._maxOffsetLine || 0);
23077
+ if (totalOffsetLine > MAX_SECTION_OFFSET_LINE) throw new Error("Section offset line must not exceed " + MAX_SECTION_OFFSET_LINE + ", including offsets of nested sections.");
23078
+ if (totalOffsetLine > maxOffsetLine) maxOffsetLine = totalOffsetLine;
23064
23079
  return {
23065
23080
  generatedOffset: {
23066
23081
  generatedLine: offsetLine + 1,
23067
23082
  generatedColumn: offsetColumn + 1
23068
23083
  },
23069
- consumer: new SourceMapConsumer(util.getArg(s, "map"), aSourceMapURL)
23084
+ consumer
23070
23085
  };
23071
23086
  });
23087
+ this._maxOffsetLine = maxOffsetLine;
23088
+ }
23089
+ /**
23090
+ * Section offsets come from untrusted input and are used as line/column
23091
+ * numbers, so only accept non-negative safe integers (rejects NaN, Infinity,
23092
+ * strings, fractions, etc).
23093
+ */
23094
+ function isValidOffset(aValue) {
23095
+ return typeof aValue === "number" && aValue >= 0 && aValue <= 9007199254740991 && Math.floor(aValue) === aValue;
23072
23096
  }
23073
23097
  IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
23074
23098
  IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
@@ -23081,7 +23105,10 @@ var require_source_map_consumer = /* @__PURE__ */ __commonJSMin(((exports) => {
23081
23105
  */
23082
23106
  Object.defineProperty(IndexedSourceMapConsumer.prototype, "sources", { get: function() {
23083
23107
  var sources = [];
23084
- for (var i = 0; i < this._sections.length; i++) for (var j = 0; j < this._sections[i].consumer.sources.length; j++) sources.push(this._sections[i].consumer.sources[j]);
23108
+ for (var i = 0; i < this._sections.length; i++) {
23109
+ var sectionSources = this._sections[i].consumer.sources;
23110
+ for (var j = 0; j < sectionSources.length; j++) sources.push(sectionSources[j]);
23111
+ }
23085
23112
  return sources;
23086
23113
  } });
23087
23114
  /**
@@ -23288,6 +23315,10 @@ var require_source_node = /* @__PURE__ */ __commonJSMin(((exports) => {
23288
23315
  }
23289
23316
  }
23290
23317
  while (lastGeneratedLine < mapping.generatedLine) {
23318
+ if (remainingLinesIndex >= remainingLines.length) {
23319
+ lastGeneratedLine = mapping.generatedLine;
23320
+ break;
23321
+ }
23291
23322
  node.add(shiftNextLine());
23292
23323
  lastGeneratedLine++;
23293
23324
  }
@@ -37045,6 +37076,17 @@ function _array(Class, element, params) {
37045
37076
  });
37046
37077
  }
37047
37078
  // @__NO_SIDE_EFFECTS__
37079
+ function _custom(Class, fn, _params) {
37080
+ const norm = normalizeParams(_params);
37081
+ norm.abort ?? (norm.abort = true);
37082
+ return new Class({
37083
+ type: "custom",
37084
+ check: "custom",
37085
+ fn,
37086
+ ...norm
37087
+ });
37088
+ }
37089
+ // @__NO_SIDE_EFFECTS__
37048
37090
  function _refine(Class, fn, _params) {
37049
37091
  return new Class({
37050
37092
  type: "custom",
@@ -38921,6 +38963,9 @@ var ZodCustom = /*@__PURE__*/ $constructor("ZodCustom", (inst, def) => {
38921
38963
  ZodType.init(inst, def);
38922
38964
  inst._zod.processJSONSchema = (ctx, json, params) => customProcessor(inst, ctx, json, params);
38923
38965
  });
38966
+ function custom(fn, _params) {
38967
+ return /* @__PURE__ */ _custom(ZodCustom, fn ?? (() => true), _params);
38968
+ }
38924
38969
  function refine(fn, _params = {}) {
38925
38970
  return /* @__PURE__ */ _refine(ZodCustom, fn, _params);
38926
38971
  }
@@ -39055,7 +39100,7 @@ function generateName(seed) {
39055
39100
  }
39056
39101
  //#endregion
39057
39102
  //#region ../../packages/kit/node_modules/nanoid/url-alphabet/index.js
39058
- var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
39103
+ var urlAlphabet = "57X6y3wQZNzYjJB2L_10pxbackgroundhimselfUTF-8DEMOGRAPHICSVqvt4KW9";
39059
39104
  //#endregion
39060
39105
  //#region ../../packages/kit/node_modules/nanoid/index.js
39061
39106
  var GET_RANDOM_LIMIT = 65536;
@@ -39083,7 +39128,7 @@ function customRandom(alphabet, defaultSize, getRandom) {
39083
39128
  let id = "";
39084
39129
  while (true) {
39085
39130
  let bytes = getRandom(size);
39086
- let i = size;
39131
+ let i = size |= 0;
39087
39132
  while (i--) {
39088
39133
  id += alphabet[bytes[i] & mask];
39089
39134
  if (id.length >= size) return id;
@@ -39091,10 +39136,10 @@ function customRandom(alphabet, defaultSize, getRandom) {
39091
39136
  }
39092
39137
  };
39093
39138
  }
39094
- let step = Math.ceil(409.6 * defaultSize / safeByteCutoff);
39095
39139
  return (size = defaultSize) => {
39096
39140
  if (!size) return "";
39097
39141
  let id = "";
39142
+ let step = Math.ceil(409.6 * size / safeByteCutoff);
39098
39143
  while (true) {
39099
39144
  let bytes = getRandom(step);
39100
39145
  let i = step;
@@ -50925,6 +50970,11 @@ var DatePolicyEvaluator = class {
50925
50970
  };
50926
50971
  //#endregion
50927
50972
  //#region ../../packages/access/src/policy/built-in/identity/data/validator.ts
50973
+ function isPermissionPolicyBinding(input) {
50974
+ if (!input || typeof input !== "object") return false;
50975
+ const { permission } = input;
50976
+ return !!permission && typeof permission === "object" && typeof permission.name === "string";
50977
+ }
50928
50978
  var PolicyIdentityDataValidator = class extends Container {
50929
50979
  initialize() {
50930
50980
  super.initialize();
@@ -50932,6 +50982,7 @@ var PolicyIdentityDataValidator = class extends Container {
50932
50982
  this.mount("id", createValidator(uuid()));
50933
50983
  this.mount("clientId", createValidator(uuid().or(_null()).or(_undefined()).optional()));
50934
50984
  this.mount("realmId", createValidator(uuid().or(_null()).or(_undefined()).optional()));
50985
+ this.mount("grants", createValidator(array(custom((input) => isPermissionPolicyBinding(input))).optional()));
50935
50986
  this.mount("realmName", createValidator(string().min(3).max(128).or(_null()).or(_undefined()).optional()));
50936
50987
  }
50937
50988
  };
@@ -56548,7 +56599,7 @@ var Icon = (0, vue_exports.defineComponent)((props, { emit }) => {
56548
56599
  flip: { type: String },
56549
56600
  id: { type: String },
56550
56601
  ariaHidden: {
56551
- type: Boolean,
56602
+ type: [Boolean, String],
56552
56603
  default: void 0
56553
56604
  },
56554
56605
  customise: { type: Function },
@@ -56924,6 +56975,10 @@ var Diagnostic = class Diagnostic extends Error {
56924
56975
  */
56925
56976
  sources;
56926
56977
  /**
56978
+ * Structured information associated with this diagnostic code.
56979
+ */
56980
+ data;
56981
+ /**
56927
56982
  * Alias for {@link Error.message}: the reason this diagnostic was raised.
56928
56983
  */
56929
56984
  get why() {
@@ -56942,6 +56997,7 @@ var Diagnostic = class Diagnostic extends Error {
56942
56997
  this.fix = init.fix;
56943
56998
  this.docs = init.docs;
56944
56999
  this.sources = init.sources;
57000
+ this.data = init.data;
56945
57001
  captureStackTrace?.(this, captureFrom);
56946
57002
  }
56947
57003
  /**
@@ -56955,6 +57011,7 @@ var Diagnostic = class Diagnostic extends Error {
56955
57011
  docs: this.docs,
56956
57012
  sources: this.sources,
56957
57013
  cause: this.cause,
57014
+ data: this.data,
56958
57015
  stack: this.stack
56959
57016
  };
56960
57017
  }
@@ -56990,7 +57047,8 @@ function defineDiagnostics(options) {
56990
57047
  fix: toValueWithArgs(def.fix, params),
56991
57048
  docs,
56992
57049
  cause: params.cause,
56993
- sources: params.sources
57050
+ sources: params.sources,
57051
+ data: toValueWithArgs(def.data, params)
56994
57052
  }, handle);
56995
57053
  for (const reporter of reporters) reporter(diagnostic, reporterOptions);
56996
57054
  return diagnostic;
@@ -57000,9 +57058,9 @@ function defineDiagnostics(options) {
57000
57058
  return result;
57001
57059
  }
57002
57060
  //#endregion
57003
- //#region ../../node_modules/vue-router/dist/useApi-BPuI6ZR9.js
57061
+ //#region ../../node_modules/vue-router/dist/useApi-CUWMwLLw.js
57004
57062
  /*!
57005
- * vue-router v5.3.1
57063
+ * vue-router v5.4.0
57006
57064
  * (c) 2026 Eduardo San Martin Morote
57007
57065
  * @license MIT
57008
57066
  */
@@ -57105,7 +57163,7 @@ function stringifyRoute(to) {
57105
57163
  /**
57106
57164
  * Runtime diagnostics catalog for Vue Router.
57107
57165
  *
57108
- * Every entry has a stable `VUE_ROUTER_R####` code, a `why` that states the problem
57166
+ * Every entry has a stable `VUE_ROUTER_X####` code, a `why` that states the problem
57109
57167
  * (the diagnosis only, never the remedy) and a `fix` that states the remedy
57110
57168
  * (only, never the diagnosis). They are complementary: the reporter prints
57111
57169
  * both, so neither repeats the other. The diagnosis substrings asserted by the
@@ -57116,10 +57174,23 @@ function stringifyRoute(to) {
57116
57174
  * Codes are permanent: never rename or reuse one.
57117
57175
  * - `VUE_ROUTER_R0###` core runtime warnings
57118
57176
  * - `VUE_ROUTER_R1###` experimental data-loaders
57177
+ * - `VUE_ROUTER_D0###` deprecations
57119
57178
  */
57120
57179
  var diagnostics$1 = /*#__PURE__*/ defineDiagnostics({
57121
57180
  reporters: [/*#__PURE__*/ createConsoleReporter()],
57122
57181
  codes: {
57182
+ VUE_ROUTER_R0122: {
57183
+ why: (p) => `The optional path param "${p.param}" is being removed with ${p.value}.`,
57184
+ fix: "Use null to remove an optional path param."
57185
+ },
57186
+ VUE_ROUTER_D0001: {
57187
+ why: (p) => `Route "${p.name}" uses beforeEnter, which is deprecated in the experimental router.`,
57188
+ fix: "Move the condition to the route meta field and check to.meta in router.beforeEach()."
57189
+ },
57190
+ VUE_ROUTER_D0002: {
57191
+ why: (p) => `The query value of "${p.key}" is not an array (${p.value}). Non array query values are deprecated in the experimental router.`,
57192
+ fix: (p) => `Wrap the value in an array: \`{ ${JSON.stringify(p.key)}: [${p.value}] }\`. Use undefined to remove the key.`
57193
+ },
57123
57194
  VUE_ROUTER_R0001: {
57124
57195
  why: (p) => `Parent route "${p.name}" not found when adding child route`,
57125
57196
  fix: "Add the parent route before its children, or check the parent name for typos.",
@@ -57238,6 +57309,14 @@ var diagnostics$1 = /*#__PURE__*/ defineDiagnostics({
57238
57309
  fix: "Return a selector that matches an existing element, or guard against missing elements.",
57239
57310
  docs: "https://router.vuejs.org/guide/advanced/scroll-behavior.html"
57240
57311
  },
57312
+ VUE_ROUTER_R0043: {
57313
+ why: (p) => `Several active useScrollRestoration() calls use the key "${p.key}" with different "capture" or "restore" options. They overwrite each other's saved entry.`,
57314
+ fix: "Give each call a different \"key\", or combine them if they are in the same component."
57315
+ },
57316
+ VUE_ROUTER_R0044: {
57317
+ why: "No ScrollRestoration plugin is available to useScrollRestoration().",
57318
+ fix: "Install ScrollRestoration on the app before calling useScrollRestoration()."
57319
+ },
57241
57320
  VUE_ROUTER_R0050: {
57242
57321
  why: (p) => {
57243
57322
  let to;
@@ -57389,6 +57468,13 @@ var routeLocationKey = Symbol(process.env.NODE_ENV !== "production" ? "route loc
57389
57468
  */
57390
57469
  var routerViewLocationKey = Symbol(process.env.NODE_ENV !== "production" ? "router view location" : "");
57391
57470
  /**
57471
+ * Callbacks called by the closest ancestor router-view once it displays a new
57472
+ * route. Used by `onRouteRendered()`.
57473
+ *
57474
+ * @internal
57475
+ */
57476
+ var routerViewOnRouteRenderedKey = Symbol(process.env.NODE_ENV !== "production" ? "router view on route rendered" : "");
57477
+ /**
57392
57478
  * Returns the current route location. Equivalent to using `$route` inside
57393
57479
  * templates.
57394
57480
  */
@@ -57396,9 +57482,9 @@ function useRoute(_name) {
57396
57482
  return (0, vue_exports.inject)(routeLocationKey);
57397
57483
  }
57398
57484
  //#endregion
57399
- //#region ../../node_modules/vue-router/dist/devtools-CN5uWJaH.js
57485
+ //#region ../../node_modules/vue-router/dist/devtools-CxgSYwGp.js
57400
57486
  /*!
57401
- * vue-router v5.3.1
57487
+ * vue-router v5.4.0
57402
57488
  * (c) 2026 Eduardo San Martin Morote
57403
57489
  * @license MIT
57404
57490
  */
@@ -57420,6 +57506,11 @@ var isBrowser = typeof document !== "undefined";
57420
57506
  * encoded everywhere because some browsers like FF encode it when directly
57421
57507
  * written while others don't. Safari and IE don't encode ``"<>{}``` in hash.
57422
57508
  */
57509
+ /**
57510
+ * NOTE: `replaceAll()` is not faster than `replace()` with a global RegExp.
57511
+ * Benchmarks do not show a clear benefit for these simple replacements:
57512
+ * https://github.com/mathiasbynens/string-prototype-replace-regexp-benchmark
57513
+ */
57423
57514
  var HASH_RE$1 = /#/g;
57424
57515
  var AMPERSAND_RE$1 = /&/g;
57425
57516
  var SLASH_RE$1 = /\//g;
@@ -57763,6 +57854,12 @@ function getSavedScrollPosition(key) {
57763
57854
  scrollPositions.delete(key);
57764
57855
  return scroll;
57765
57856
  }
57857
+ function invalidateScrollPositions(position, replace = false) {
57858
+ for (const key of scrollPositions.keys()) {
57859
+ const entryPosition = parseInt(key, 10);
57860
+ if (entryPosition === position || !replace && entryPosition > position) scrollPositions.delete(key);
57861
+ }
57862
+ }
57766
57863
  /**
57767
57864
  * ScrollBehavior instance used by the router to compute and restore the scroll
57768
57865
  * position when navigating.
@@ -58029,7 +58126,7 @@ function addDevtools(app, router, matcher) {
58029
58126
  //#endregion
58030
58127
  //#region ../../node_modules/vue-router/dist/vue-router.js
58031
58128
  /*!
58032
- * vue-router v5.3.1
58129
+ * vue-router v5.4.0
58033
58130
  * (c) 2026 Eduardo San Martin Morote
58034
58131
  * @license MIT
58035
58132
  */
@@ -58154,7 +58251,9 @@ function useHistoryStateNavigation(base) {
58154
58251
  }
58155
58252
  }
58156
58253
  function replace(to, data) {
58157
- changeLocation(to, assign$2({}, history.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);
58254
+ const state = assign$2({}, history.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position });
58255
+ changeLocation(to, state, true);
58256
+ invalidateScrollPositions(state.position, true);
58158
58257
  currentLocation.value = to;
58159
58258
  }
58160
58259
  function push(to, data) {
@@ -58165,6 +58264,7 @@ function useHistoryStateNavigation(base) {
58165
58264
  if (process.env.NODE_ENV !== "production" && !history.state) diagnostics$1.VUE_ROUTER_R0121();
58166
58265
  changeLocation(currentState.current, currentState, true);
58167
58266
  changeLocation(to, assign$2({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);
58267
+ invalidateScrollPositions(currentState.position);
58168
58268
  currentLocation.value = to;
58169
58269
  }
58170
58270
  return {
@@ -59048,7 +59148,11 @@ var RouterViewImpl = /*#__PURE__*/ (0, vue_exports.defineComponent)({
59048
59148
  (0, vue_exports.provide)(viewDepthKey, (0, vue_exports.computed)(() => depth.value + 1));
59049
59149
  (0, vue_exports.provide)(matchedRouteKey, matchedRouteRef);
59050
59150
  (0, vue_exports.provide)(routerViewLocationKey, routeToDisplay);
59151
+ const onRouteRenderedCallbacks = /* @__PURE__ */ new Set();
59152
+ (0, vue_exports.provide)(routerViewOnRouteRenderedKey, onRouteRenderedCallbacks);
59051
59153
  const viewRef = (0, vue_exports.ref)();
59154
+ let settledRoute = START_LOCATION_NORMALIZED;
59155
+ const { app } = (0, vue_exports.getCurrentInstance)().appContext;
59052
59156
  (0, vue_exports.watch)(() => [
59053
59157
  viewRef.value,
59054
59158
  matchedRouteRef.value,
@@ -59077,8 +59181,16 @@ var RouterViewImpl = /*#__PURE__*/ (0, vue_exports.defineComponent)({
59077
59181
  const onVnodeUnmounted = (vnode) => {
59078
59182
  if (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;
59079
59183
  };
59184
+ const onVnodeSettled = (vnode) => (0, vue_exports.nextTick)(() => {
59185
+ if (settledRoute === route || routeToDisplay.value !== route || vnode.el.getRootNode() !== app._container.getRootNode()) return;
59186
+ const from = settledRoute;
59187
+ settledRoute = route;
59188
+ for (const callback of onRouteRenderedCallbacks) callback(route, from);
59189
+ });
59080
59190
  const component = (0, vue_exports.h)(ViewComponent, assign$2({}, routeProps, attrs, {
59081
59191
  onVnodeUnmounted,
59192
+ onVnodeMounted: onVnodeSettled,
59193
+ onVnodeUpdated: onVnodeSettled,
59082
59194
  ref: viewRef
59083
59195
  }));
59084
59196
  if ((process.env.NODE_ENV !== "production" || false) && isBrowser && component.ref) {
@@ -59123,7 +59235,7 @@ function warnDeprecatedUsage() {
59123
59235
  * @param options - {@link RouterOptions}
59124
59236
  */
59125
59237
  function createRouter(options) {
59126
- const matcher = createRouterMatcher(options.routes, options);
59238
+ const matcher = options.matcher || createRouterMatcher(options.routes, options);
59127
59239
  const parseQuery$1$1 = options.parseQuery || parseQuery$1;
59128
59240
  const stringifyQuery$1$1 = options.stringifyQuery || stringifyQuery$1;
59129
59241
  const routerHistory = options.history;
@@ -61148,7 +61260,6 @@ function useNavigatorLanguage(options = {}) {
61148
61260
  language
61149
61261
  };
61150
61262
  }
61151
- Number.POSITIVE_INFINITY;
61152
61263
  /**
61153
61264
  * Shorthand for v-model binding, props + emit -> ref
61154
61265
  *
@@ -65130,7 +65241,7 @@ async function Ai(i, o) {
65130
65241
  let w = null;
65131
65242
  const A = n$1(() => {
65132
65243
  const g = new _r("The operation was aborted.");
65133
- f(g), l.body && l.body instanceof me.Readable && l.body.destroy(g), !(!w || !w.body) && w.body.emit("error", g);
65244
+ f(g), l.body && l.body instanceof me.Readable && l.body.destroy(g), w && w.body && w.body.emit("error", g);
65134
65245
  }, "abort");
65135
65246
  if (v && v.aborted) {
65136
65247
  A();
@@ -69171,7 +69282,7 @@ Content-Type: ${R.type || "application/octet-stream"}\r
69171
69282
  let B = null;
69172
69283
  const I = u(() => {
69173
69284
  const v = new AbortError("The operation was aborted.");
69174
- g(v), b.body && b.body instanceof Stream__default.Readable && b.body.destroy(v), !(!B || !B.body) && B.body.emit("error", v);
69285
+ g(v), b.body && b.body instanceof Stream__default.Readable && b.body.destroy(v), B && B.body && B.body.emit("error", v);
69175
69286
  }, "abort");
69176
69287
  if (z && z.aborted) {
69177
69288
  I();
@@ -86387,14 +86498,14 @@ var IdentityProviderAPI = class extends BaseAPI$1 {
86387
86498
  return url;
86388
86499
  }
86389
86500
  async createLinkRequest(id) {
86390
- return (await this.client.post(`identity-providers/${id}/link-request`)).data;
86501
+ return (await this.client.post(`identity-providers/${encodeURIComponent(id)}/link-request`)).data;
86391
86502
  }
86392
86503
  async completeLogin(id) {
86393
- return (await this.client.post(`identity-providers/${id}/login-complete`)).data;
86504
+ return (await this.client.post(`identity-providers/${encodeURIComponent(id)}/login-complete`)).data;
86394
86505
  }
86395
86506
  async confirmLinkRequest(id, handle) {
86396
86507
  const payload = { handle };
86397
- return (await this.client.post(`identity-providers/${id}/link-confirm`, payload)).data;
86508
+ return (await this.client.post(`identity-providers/${encodeURIComponent(id)}/link-confirm`, payload)).data;
86398
86509
  }
86399
86510
  async getMany(record) {
86400
86511
  return (await this.client.get(`identity-providers${buildQueryString(record)}`)).data;
@@ -87453,8 +87564,9 @@ var Client = class extends Client$1 {
87453
87564
  async getJwks() {
87454
87565
  return (await this.get("jwks")).data;
87455
87566
  }
87456
- async getJwk(id) {
87457
- return (await this.get(`jwks/${id}`)).data;
87567
+ async getJwk(id, realmId) {
87568
+ const path = `jwks/${encodeURIComponent(id)}`;
87569
+ return (await this.get(realmId ? `realms/${encodeURIComponent(realmId)}/${path}` : path)).data;
87458
87570
  }
87459
87571
  async getWellKnownOpenIDConfiguration() {
87460
87572
  return (await this.get("/.well-known/openid-configuration")).data;
@@ -89896,6 +90008,11 @@ function installStore(app, options = {}) {
89896
90008
  };
89897
90009
  else cookieUnset = useCookies().remove;
89898
90010
  const cookiePath = options.cookiePath || "/";
90011
+ const cookieOptions = {
90012
+ path: cookiePath,
90013
+ sameSite: "lax",
90014
+ ...options.cookieSecure ?? (typeof window !== "undefined" && window.location?.protocol === "https:") ? { secure: true } : {}
90015
+ };
89899
90016
  /**
89900
90017
  * Drop the copies written before the path was pinned.
89901
90018
  *
@@ -89997,7 +90114,7 @@ function installStore(app, options = {}) {
89997
90114
  storeDispatcher.on(StoreDispatcherEventName.ACCESS_TOKEN_EXPIRE_DATE_UPDATED, (input) => {
89998
90115
  if (input) cookieSet(CookieName.ACCESS_TOKEN_EXPIRE_DATE, input, {
89999
90116
  maxAge: maxAgeFn(),
90000
- path: cookiePath
90117
+ ...cookieOptions
90001
90118
  });
90002
90119
  else cookieUnset(CookieName.ACCESS_TOKEN_EXPIRE_DATE, { path: cookiePath });
90003
90120
  });
@@ -90006,21 +90123,21 @@ function installStore(app, options = {}) {
90006
90123
  const maxAge = maxAgeFn();
90007
90124
  cookieSet(CookieName.ACCESS_TOKEN, input, {
90008
90125
  maxAge,
90009
- path: cookiePath
90126
+ ...cookieOptions
90010
90127
  });
90011
90128
  } else cookieUnset(CookieName.ACCESS_TOKEN, { path: cookiePath });
90012
90129
  });
90013
90130
  storeDispatcher.on(StoreDispatcherEventName.REFRESH_TOKEN_UPDATED, (input) => {
90014
- if (input) cookieSet(CookieName.REFRESH_TOKEN, input, { path: cookiePath });
90131
+ if (input) cookieSet(CookieName.REFRESH_TOKEN, input, cookieOptions);
90015
90132
  else cookieUnset(CookieName.REFRESH_TOKEN, { path: cookiePath });
90016
90133
  });
90017
90134
  storeDispatcher.on(StoreDispatcherEventName.ID_TOKEN_UPDATED, (input) => {
90018
- if (input) cookieSet(CookieName.ID_TOKEN, input, { path: cookiePath });
90135
+ if (input) cookieSet(CookieName.ID_TOKEN, input, cookieOptions);
90019
90136
  else cookieUnset(CookieName.ID_TOKEN, { path: cookiePath });
90020
90137
  });
90021
90138
  }
90022
90139
  storeDispatcher.on(StoreDispatcherEventName.REALM_MANAGEMENT_UPDATED, (input) => {
90023
- if (input) cookieSet(CookieName.REALM_MANAGEMENT, input, { path: cookiePath });
90140
+ if (input) cookieSet(CookieName.REALM_MANAGEMENT, input, cookieOptions);
90024
90141
  else cookieUnset(CookieName.REALM_MANAGEMENT, { path: cookiePath });
90025
90142
  });
90026
90143
  dropShadowingCookies();
@@ -142624,6 +142741,7 @@ function install(app, options) {
142624
142741
  cookieGet: options.cookieGet,
142625
142742
  cookieUnset: options.cookieUnset,
142626
142743
  cookiePath: options.cookiePath,
142744
+ cookieSecure: options.cookieSecure,
142627
142745
  cookieSession: options.cookieSession,
142628
142746
  preferences: options.preferences
142629
142747
  });
@@ -144126,7 +144244,8 @@ var Authorize_vue_vue_type_script_lang_default = (0, vue_exports.defineComponent
144126
144244
  return;
144127
144245
  }
144128
144246
  reauthRequired.value = true;
144129
- store.logout();
144247
+ accountConfirmedLocal.value = false;
144248
+ mfaSatisfiedLocal.value = false;
144130
144249
  };
144131
144250
  const accountConfirmedLocal = (0, vue_exports.ref)(false);
144132
144251
  const mfaSatisfiedLocal = (0, vue_exports.ref)(false);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@authup/client-auth-console",
3
- "version": "1.0.0-beta.68",
3
+ "version": "1.0.0-beta.69",
4
4
  "type": "module",
5
5
  "license": "AGPL-3.0-only",
6
6
  "description": "Authup's auth console: the SSR auth workflow UI (authorize, register, activate, password recovery, logout) rendered by server-core on the IdP origin.",
@@ -25,27 +25,27 @@
25
25
  "node": "^22.13.0 || ^23.5.0 || >=24.0.0"
26
26
  },
27
27
  "dependencies": {
28
- "@authup/core-http-kit": "^1.0.0-beta.68"
28
+ "@authup/core-http-kit": "^1.0.0-beta.69"
29
29
  },
30
30
  "devDependencies": {
31
- "@authup/client-web-kit": "^1.0.0-beta.68",
32
- "@authup/client-web-kit-theme": "^1.0.0-beta.68",
33
- "@authup/client-web-theme": "^1.0.0-beta.68",
34
- "@authup/core-kit": "^1.0.0-beta.68",
35
- "@authup/i18n": "^1.0.0-beta.68",
36
- "@authup/kit": "^1.0.0-beta.68",
31
+ "@authup/client-web-kit": "^1.0.0-beta.69",
32
+ "@authup/client-web-kit-theme": "^1.0.0-beta.69",
33
+ "@authup/client-web-theme": "^1.0.0-beta.69",
34
+ "@authup/core-kit": "^1.0.0-beta.69",
35
+ "@authup/i18n": "^1.0.0-beta.69",
36
+ "@authup/kit": "^1.0.0-beta.69",
37
37
  "@fontsource/asap": "^5.3.0",
38
38
  "@fontsource/nunito": "^5.3.0",
39
39
  "@iconify-json/fa6-brands": "^1.2.0",
40
40
  "@iconify-json/fa6-solid": "^1.2.0",
41
- "@iconify/vue": "^5.0.2",
41
+ "@iconify/vue": "^5.0.3",
42
42
  "@ilingo/validup": "^1.2.0",
43
43
  "@ilingo/validup-vue": "^1.2.0",
44
44
  "@ilingo/vue": "^6.1.0",
45
45
  "@nuxt/icon": "^2.5.1",
46
46
  "@tailwindcss/vite": "^4.3.3",
47
47
  "@validup/vue": "^2.0.1",
48
- "@vitejs/plugin-vue": "^6.0.9",
48
+ "@vitejs/plugin-vue": "^6.0.10",
49
49
  "@vue/test-utils": "^2.5.1",
50
50
  "@vuecs/button": "^1.4.2",
51
51
  "@vuecs/core": "^3.6.0",
@@ -66,14 +66,14 @@
66
66
  "@vuecs/theme-tailwind": "^6.5.0",
67
67
  "@vuecs/timeago": "^2.2.1",
68
68
  "cross-env": "^10.1.0",
69
- "happy-dom": "^20.14.5",
69
+ "happy-dom": "^20.14.6",
70
70
  "pinia": "^4.0.3",
71
71
  "tailwindcss": "^4.3.1",
72
- "vite": "^8.3.0",
73
- "vitest": "^4.0.14",
72
+ "vite": "^8.3.4",
73
+ "vitest": "^5.0.3",
74
74
  "vue": "^3.5.43",
75
- "vue-router": "^5.3.1",
76
- "vue-tsc": "^3.3.11"
75
+ "vue-router": "^5.4.0",
76
+ "vue-tsc": "^3.3.13"
77
77
  },
78
78
  "publishConfig": {
79
79
  "access": "public"