nestjs-slightly-better-auth 1.0.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 (77) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +57 -0
  3. package/dist/admin.cjs +88 -0
  4. package/dist/admin.cjs.map +1 -0
  5. package/dist/admin.d.cts +14 -0
  6. package/dist/admin.d.cts.map +1 -0
  7. package/dist/admin.d.mts +14 -0
  8. package/dist/admin.d.mts.map +1 -0
  9. package/dist/admin.mjs +85 -0
  10. package/dist/admin.mjs.map +1 -0
  11. package/dist/api-key.cjs +163 -0
  12. package/dist/api-key.cjs.map +1 -0
  13. package/dist/api-key.d.cts +42 -0
  14. package/dist/api-key.d.cts.map +1 -0
  15. package/dist/api-key.d.mts +42 -0
  16. package/dist/api-key.d.mts.map +1 -0
  17. package/dist/api-key.mjs +159 -0
  18. package/dist/api-key.mjs.map +1 -0
  19. package/dist/auth-contracts-BBA1C1gj.d.cts +1635 -0
  20. package/dist/auth-contracts-BBA1C1gj.d.cts.map +1 -0
  21. package/dist/auth-contracts-tqsfBZ8B.d.mts +1635 -0
  22. package/dist/auth-contracts-tqsfBZ8B.d.mts.map +1 -0
  23. package/dist/auth-decorators-CwW5JY4y.cjs +1274 -0
  24. package/dist/auth-decorators-CwW5JY4y.cjs.map +1 -0
  25. package/dist/auth-decorators-DfAJbHar.mjs +849 -0
  26. package/dist/auth-decorators-DfAJbHar.mjs.map +1 -0
  27. package/dist/auth-errors-CQjfgjaO.mjs +283 -0
  28. package/dist/auth-errors-CQjfgjaO.mjs.map +1 -0
  29. package/dist/auth-errors-CsERBNWI.cjs +348 -0
  30. package/dist/auth-errors-CsERBNWI.cjs.map +1 -0
  31. package/dist/express.cjs +247 -0
  32. package/dist/express.cjs.map +1 -0
  33. package/dist/express.d.cts +37 -0
  34. package/dist/express.d.cts.map +1 -0
  35. package/dist/express.d.mts +37 -0
  36. package/dist/express.d.mts.map +1 -0
  37. package/dist/express.mjs +245 -0
  38. package/dist/express.mjs.map +1 -0
  39. package/dist/fastify.cjs +215 -0
  40. package/dist/fastify.cjs.map +1 -0
  41. package/dist/fastify.d.cts +28 -0
  42. package/dist/fastify.d.cts.map +1 -0
  43. package/dist/fastify.d.mts +28 -0
  44. package/dist/fastify.d.mts.map +1 -0
  45. package/dist/fastify.mjs +213 -0
  46. package/dist/fastify.mjs.map +1 -0
  47. package/dist/index.cjs +2634 -0
  48. package/dist/index.cjs.map +1 -0
  49. package/dist/index.d.cts +2 -0
  50. package/dist/index.d.mts +2 -0
  51. package/dist/index.mjs +2556 -0
  52. package/dist/index.mjs.map +1 -0
  53. package/dist/organization.cjs +191 -0
  54. package/dist/organization.cjs.map +1 -0
  55. package/dist/organization.d.cts +40 -0
  56. package/dist/organization.d.cts.map +1 -0
  57. package/dist/organization.d.mts +40 -0
  58. package/dist/organization.d.mts.map +1 -0
  59. package/dist/organization.mjs +177 -0
  60. package/dist/organization.mjs.map +1 -0
  61. package/dist/platform.cjs +393 -0
  62. package/dist/platform.cjs.map +1 -0
  63. package/dist/platform.d.cts +43 -0
  64. package/dist/platform.d.cts.map +1 -0
  65. package/dist/platform.d.mts +43 -0
  66. package/dist/platform.d.mts.map +1 -0
  67. package/dist/platform.mjs +385 -0
  68. package/dist/platform.mjs.map +1 -0
  69. package/dist/plugin.cjs +312 -0
  70. package/dist/plugin.cjs.map +1 -0
  71. package/dist/plugin.d.cts +26 -0
  72. package/dist/plugin.d.cts.map +1 -0
  73. package/dist/plugin.d.mts +26 -0
  74. package/dist/plugin.d.mts.map +1 -0
  75. package/dist/plugin.mjs +310 -0
  76. package/dist/plugin.mjs.map +1 -0
  77. package/package.json +186 -0
@@ -0,0 +1,1274 @@
1
+ const require_auth_errors = require("./auth-errors-CsERBNWI.cjs");
2
+ let _nestjs_common = require("@nestjs/common");
3
+ let rxjs = require("rxjs");
4
+ let node_async_hooks = require("node:async_hooks");
5
+ let _nestjs_common_exceptions_intrinsic_exception_js = require("@nestjs/common/exceptions/intrinsic.exception.js");
6
+ //#region src/auth-tokens.ts
7
+ /** Stable Nest injection tokens shared by every package copy and module format. */
8
+ function instanceToken(base, alias) {
9
+ return alias === void 0 || alias === "" || alias === "default" ? base : `${base}_${alias}`;
10
+ }
11
+ function getBetterAuthInstanceToken(alias) {
12
+ return instanceToken("NESTJS_SLIGHTLY_BETTER_AUTH_INSTANCE", alias);
13
+ }
14
+ function getBetterAuthOptionsToken(alias) {
15
+ return instanceToken("NESTJS_SLIGHTLY_BETTER_AUTH_OPTIONS", alias);
16
+ }
17
+ function getBetterAuthServiceToken(alias) {
18
+ return instanceToken("NESTJS_SLIGHTLY_BETTER_AUTH_SERVICE", alias);
19
+ }
20
+ function getBetterAuthHandleToken(alias) {
21
+ return instanceToken("NESTJS_SLIGHTLY_BETTER_AUTH_HANDLE", alias);
22
+ }
23
+ const INSTANCE_REGISTRY = Symbol.for("nestjs-slightly-better-auth:instance-registry");
24
+ const REQUEST_SCOPE = Symbol.for("nestjs-slightly-better-auth:request-scope");
25
+ const PRINCIPAL_READINGS = Symbol.for("nestjs-slightly-better-auth:principal-readings");
26
+ const ROUTE_PLANNER = Symbol.for("nestjs-slightly-better-auth:route-planner");
27
+ const TRANSPORT_REGISTRY = Symbol.for("nestjs-slightly-better-auth:transport-registry");
28
+ const POLICY_RESOLVER = Symbol.for("nestjs-slightly-better-auth:policy-resolver");
29
+ const MOUNT_COORDINATOR = Symbol.for("nestjs-slightly-better-auth:mount-coordinator");
30
+ const GUARD_CORE = Symbol.for("nestjs-slightly-better-auth:guard-core");
31
+ const SCOPE_CORE = Symbol.for("nestjs-slightly-better-auth:scope-core");
32
+ const PRINCIPAL_RESOLVER = Symbol.for("nestjs-slightly-better-auth:principal-resolver");
33
+ const POLICY_INVOKER = Symbol.for("nestjs-slightly-better-auth:policy-invoker");
34
+ const PLATFORMS = Symbol.for("nestjs-slightly-better-auth:platforms");
35
+ const TRANSPORTS = Symbol.for("nestjs-slightly-better-auth:transports");
36
+ const ACCESS_METADATA = Symbol.for("nestjs-slightly-better-auth:access");
37
+ const ACCEPT_PRINCIPALS_METADATA = Symbol.for("nestjs-slightly-better-auth:accept-principals");
38
+ const REQUIREMENTS_METADATA = Symbol.for("nestjs-slightly-better-auth:requirements");
39
+ const SKIP_DEFAULT_REQUIREMENTS_METADATA = Symbol.for("nestjs-slightly-better-auth:skip-default-requirements");
40
+ const FRESHNESS_METADATA = Symbol.for("nestjs-slightly-better-auth:freshness");
41
+ const AUTH_INSTANCE_METADATA = Symbol.for("nestjs-slightly-better-auth:auth-instance");
42
+ const PRINCIPAL_PARAMS_METADATA = Symbol.for("nestjs-slightly-better-auth:principal-params");
43
+ const INVOCATION_PARAMS_METADATA = Symbol.for("nestjs-slightly-better-auth:invocation-params");
44
+ const FORWARD_COOKIES_METADATA = Symbol.for("nestjs-slightly-better-auth:forward-cookies");
45
+ const SKIP_ORIGIN_CHECK_METADATA = Symbol.for("nestjs-slightly-better-auth:skip-origin-check");
46
+ const USE_BETTER_AUTH_METADATA = Symbol.for("nestjs-slightly-better-auth:use-better-auth");
47
+ const HOOK_METADATA = Symbol.for("nestjs-slightly-better-auth:hook");
48
+ const DB_HOOK_METADATA = Symbol.for("nestjs-slightly-better-auth:db-hook");
49
+ const AUTH_ENHANCER = Symbol.for("nestjs-slightly-better-auth:enhancer");
50
+ function getPrincipalSourcesToken(instance) {
51
+ return Symbol.for(`nestjs-slightly-better-auth:principal-sources:${instance}`);
52
+ }
53
+ function getExtensionToken(point, instance, index) {
54
+ return Symbol.for(`nestjs-slightly-better-auth:ext:${point}:${instance}:${index}`);
55
+ }
56
+ const READER_CONTEXT = Symbol.for("nestjs-slightly-better-auth:reader-context");
57
+ const INVOCATION_VALUES = Symbol.for("nestjs-slightly-better-auth:invocation");
58
+ //#endregion
59
+ //#region src/principal-resolver.ts
60
+ const definePrincipalSource = (source) => source;
61
+ const authenticated = (principal) => ({
62
+ outcome: "authenticated",
63
+ principal
64
+ });
65
+ const absent = () => ({ outcome: "absent" });
66
+ const rejected = (failure) => ({
67
+ outcome: "rejected",
68
+ failure
69
+ });
70
+ var MemoKeys = class {
71
+ owners = /* @__PURE__ */ new WeakMap();
72
+ key(owner, namespace, value) {
73
+ if (typeof value === "string") return JSON.stringify([
74
+ namespace,
75
+ "string",
76
+ value
77
+ ]);
78
+ let identities = this.owners.get(owner);
79
+ if (!identities) {
80
+ identities = {
81
+ objects: /* @__PURE__ */ new WeakMap(),
82
+ symbols: /* @__PURE__ */ new Map(),
83
+ next: 0
84
+ };
85
+ this.owners.set(owner, identities);
86
+ }
87
+ let id = typeof value === "symbol" ? identities.symbols.get(value) : identities.objects.get(value);
88
+ if (id === void 0) {
89
+ id = ++identities.next;
90
+ if (typeof value === "symbol") identities.symbols.set(value, id);
91
+ else identities.objects.set(value, id);
92
+ }
93
+ return JSON.stringify([
94
+ namespace,
95
+ typeof value,
96
+ id
97
+ ]);
98
+ }
99
+ };
100
+ function requestHeaders(call, entry) {
101
+ const headers = new Headers(call.headers());
102
+ for (const name of [...headers.keys()]) if (name.startsWith(":") || name.startsWith("x-nsba-ip-") || name === entry.bridge.clientIpHeader) headers.delete(name);
103
+ if (entry.bridge.clientIpHeader && call.clientIp) headers.set(entry.bridge.clientIpHeader, call.clientIp);
104
+ return headers;
105
+ }
106
+ function normalizeForRequest(error, where, site, entry, headers) {
107
+ try {
108
+ return require_auth_errors.normalizeThrown(error, where, site, [], entry.options.errors);
109
+ } catch (normalized) {
110
+ if (require_auth_errors.isConfigurationError(normalized) || require_auth_errors.isInfrastructureError(error) && normalized === error) throw normalized;
111
+ throw require_auth_errors.createInfrastructureError(error, {
112
+ headers,
113
+ credentialHeaders: entry.credentialHeaders,
114
+ exposeRawCause: entry.options.errors?.exposeRawCause
115
+ });
116
+ }
117
+ }
118
+ var ChainPrincipalResolver = class {
119
+ instances;
120
+ scope;
121
+ transports;
122
+ keys = new MemoKeys();
123
+ constructor(instances, scope, transports) {
124
+ this.instances = instances;
125
+ this.scope = scope;
126
+ this.transports = transports;
127
+ }
128
+ resolve(call, request) {
129
+ const entry = this.instances.get(request.auth.name);
130
+ const compute = async () => {
131
+ const headers = requestHeaders(call, entry);
132
+ const sources = request.reclassify ? entry.sources.filter((source) => source.id === request.reclassify.sourceId && source.sessionBacked) : entry.sources.filter((source) => source.kinds.some((kind) => request.accepts.has(kind)));
133
+ return request.auth.run({
134
+ cookies: call.cookies,
135
+ forward: "same-credential",
136
+ inbound: () => headers,
137
+ internal: true
138
+ }, async () => {
139
+ for (const source of sources) {
140
+ const input = {
141
+ headers,
142
+ cookies: call.cookies,
143
+ transport: this.transports.idOf(call),
144
+ request: call.request,
145
+ freshness: request.freshness,
146
+ auth: request.auth,
147
+ memo: (key, fn) => this.scope.memoPolicyIo(call.key, entry.name, this.keys.key(call.key, `source:${source.id}`, key), fn, entry.options.limits?.maxAuthorizationCallsPerRequest)
148
+ };
149
+ try {
150
+ if (source.appliesTo && !source.appliesTo(input)) continue;
151
+ const result = await source.resolve(input);
152
+ if (result.outcome === "authenticated" && (!source.kinds.includes(result.principal.kind) || result.principal.source !== source.id || Boolean(result.principal.delegation) !== Boolean(source.delegates))) throw new Error(`Principal source ${source.id} violated its declared principal contract`);
153
+ if (result.outcome !== "absent") return result;
154
+ } catch (error) {
155
+ const failure = normalizeForRequest(error, "source", source.id, entry, headers);
156
+ if (require_auth_errors.isAuthFailure(failure)) return rejected(failure);
157
+ throw error;
158
+ }
159
+ }
160
+ return absent();
161
+ });
162
+ };
163
+ return request.reclassify ? compute() : this.scope.memoPrincipal(call, {
164
+ instance: entry.name,
165
+ freshness: request.freshness,
166
+ sourceSet: request.sourceSet
167
+ }, compute);
168
+ }
169
+ };
170
+ //#endregion
171
+ //#region \0@oxc-project+runtime@0.150.0/helpers/esm/decorateMetadata.js
172
+ function __decorateMetadata(k, v) {
173
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
174
+ }
175
+ //#endregion
176
+ //#region \0@oxc-project+runtime@0.150.0/helpers/esm/decorateParam.js
177
+ function __decorateParam(paramIndex, decorator) {
178
+ return function(target, key) {
179
+ decorator(target, key, paramIndex);
180
+ };
181
+ }
182
+ //#endregion
183
+ //#region \0@oxc-project+runtime@0.150.0/helpers/esm/decorate.js
184
+ function __decorate(decorators, target, key, desc) {
185
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
186
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
187
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
188
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
189
+ }
190
+ //#endregion
191
+ //#region src/auth-guard.ts
192
+ let BetterAuthGuard = class BetterAuthGuard {
193
+ core;
194
+ static [AUTH_ENHANCER] = "guard";
195
+ [AUTH_ENHANCER] = "guard";
196
+ constructor(core) {
197
+ this.core = core;
198
+ }
199
+ canActivate(context) {
200
+ return this.core.canActivate(context);
201
+ }
202
+ };
203
+ BetterAuthGuard = __decorate([
204
+ (0, _nestjs_common.Injectable)(),
205
+ __decorateParam(0, (0, _nestjs_common.Inject)(GUARD_CORE)),
206
+ __decorateMetadata("design:paramtypes", [typeof Pick === "undefined" ? Object : Pick])
207
+ ], BetterAuthGuard);
208
+ var GuardCore = class {
209
+ instances;
210
+ planner;
211
+ transports;
212
+ resolver;
213
+ evaluator;
214
+ scope;
215
+ readings;
216
+ constructor(instances, planner, transports, resolver, evaluator, scope, readings) {
217
+ this.instances = instances;
218
+ this.planner = planner;
219
+ this.transports = transports;
220
+ this.resolver = resolver;
221
+ this.evaluator = evaluator;
222
+ this.scope = scope;
223
+ this.readings = readings;
224
+ }
225
+ async canActivate(context) {
226
+ let transport;
227
+ let call;
228
+ let plan;
229
+ try {
230
+ plan = this.planner.forContext(context);
231
+ if (plan.access === "inherit") {
232
+ transport = this.transports.find(context);
233
+ const lineage = transport?.lineage?.(context);
234
+ if (lineage && !this.readings.enclosing(lineage, context.getArgs())) {
235
+ call = this.transports.describe(context, transport);
236
+ throw require_auth_errors.BetterAuthConfigurationError.atRequest("NO_ENCLOSING_DECISION", "An inherited invocation has no enclosing guard decision", { site: plan.site });
237
+ }
238
+ if (plan.originCheck !== "form") return true;
239
+ }
240
+ if (plan.access === "public" && plan.originCheck !== "form") {
241
+ const lineage = this.transports.find(context)?.lineage?.(context);
242
+ if (lineage && !plan.nested) this.readings.recordLineage(lineage, {
243
+ outcome: "no-identity",
244
+ instance: plan.instance
245
+ });
246
+ return true;
247
+ }
248
+ transport = this.transports.select(context);
249
+ call = this.transports.describe(context, transport);
250
+ const entry = this.instances.get(plan.instance);
251
+ if (plan.originCheck !== "off") {
252
+ const browser = call.browser;
253
+ if (browser) {
254
+ if (plan.originCheck === "form" || browser.enforce) {
255
+ const failure = await entry.origin.check(browser, plan.originCheck);
256
+ if (failure) throw failure;
257
+ } else await entry.origin.advisory(browser);
258
+ }
259
+ }
260
+ if (plan.access === "inherit") return true;
261
+ if (plan.access === "public") {
262
+ if (!plan.nested) this.readings.record(call, {
263
+ outcome: "no-identity",
264
+ instance: plan.instance
265
+ });
266
+ return true;
267
+ }
268
+ const result = await this.resolver.resolve(call, {
269
+ auth: entry.handle,
270
+ freshness: plan.freshness,
271
+ accepts: plan.accepts,
272
+ sourceSet: plan.sourceSet
273
+ });
274
+ this.readings.record(call, {
275
+ ...result,
276
+ instance: plan.instance
277
+ });
278
+ if (result.outcome === "rejected") throw result.failure;
279
+ if (result.outcome === "absent") {
280
+ if (plan.access === "optional") return true;
281
+ throw require_auth_errors.AuthFailures.unauthenticated();
282
+ }
283
+ if (!plan.accepts.has(result.principal.kind)) throw require_auth_errors.AuthFailures.forbidden("PRINCIPAL_NOT_SUPPORTED");
284
+ const decision = await this.evaluator.evaluate(plan, result.principal, call, entry, context, transport.id);
285
+ if (decision.effect === "deny") throw require_auth_errors.AuthFailures.rejected({
286
+ status: decision.status ?? 403,
287
+ reason: decision.reason,
288
+ message: decision.message,
289
+ challenge: decision.challenge
290
+ });
291
+ return true;
292
+ } catch (error) {
293
+ if (require_auth_errors.isAuthFailure(error) && transport) {
294
+ const mapping = plan && this.instances.get(plan.instance).options.errors?.map;
295
+ throw mapping ? mapping(error, context, transport.id) : transport.toException(error, context);
296
+ }
297
+ if ((require_auth_errors.isConfigurationError(error) || require_auth_errors.isInfrastructureError(error)) && transport) {
298
+ const repeated = call ? this.scope.surfaced(call.key, error, {
299
+ instance: plan?.instance ?? "default",
300
+ site: plan?.site ?? "guard",
301
+ lineage: call.lineage
302
+ }) : false;
303
+ throw transport.toInternalException?.(error, context, { repeated }) ?? error;
304
+ }
305
+ throw error;
306
+ }
307
+ }
308
+ };
309
+ //#endregion
310
+ //#region src/auth-scope-interceptor.ts
311
+ let BetterAuthScopeInterceptor = class BetterAuthScopeInterceptor {
312
+ core;
313
+ static [AUTH_ENHANCER] = "scope";
314
+ [AUTH_ENHANCER] = "scope";
315
+ constructor(core) {
316
+ this.core = core;
317
+ }
318
+ intercept(context, next) {
319
+ return this.core.intercept(context, next);
320
+ }
321
+ };
322
+ BetterAuthScopeInterceptor = __decorate([
323
+ (0, _nestjs_common.Injectable)(),
324
+ __decorateParam(0, (0, _nestjs_common.Inject)(SCOPE_CORE)),
325
+ __decorateMetadata("design:paramtypes", [typeof Pick === "undefined" ? Object : Pick])
326
+ ], BetterAuthScopeInterceptor);
327
+ var ScopeCore = class {
328
+ instances;
329
+ planner;
330
+ transports;
331
+ scope;
332
+ readings;
333
+ constructor(instances, planner, transports, scope, readings) {
334
+ this.instances = instances;
335
+ this.planner = planner;
336
+ this.transports = transports;
337
+ this.scope = scope;
338
+ this.readings = readings;
339
+ }
340
+ intercept(context, next) {
341
+ const plan = this.planner.forContext(context);
342
+ const entry = this.instances.get(plan.instance);
343
+ let described = false;
344
+ let call;
345
+ const getCall = () => {
346
+ if (!described) {
347
+ const transport = this.transports.find(context);
348
+ call = transport ? this.transports.describe(context, transport) : void 0;
349
+ described = true;
350
+ }
351
+ return call;
352
+ };
353
+ let reading;
354
+ const read = () => {
355
+ if (reading) return reading;
356
+ const lineage = this.transports.find(context)?.lineage?.(context);
357
+ reading = this.readings.read({
358
+ args: context.getArgs(),
359
+ plan,
360
+ lineage,
361
+ ...plan.access === "public" || plan.access === "inherit" ? {} : { call: getCall() }
362
+ });
363
+ return reading;
364
+ };
365
+ const instances = this.instances;
366
+ const state = {
367
+ view: {
368
+ get cookies() {
369
+ return getCall()?.cookies ?? null;
370
+ },
371
+ forward: plan.forwardDirectCalls ? "same-credential" : "none",
372
+ internal: false,
373
+ get inbound() {
374
+ return () => {
375
+ const call = getCall();
376
+ return call ? requestHeaders(call, entry) : new Headers();
377
+ };
378
+ },
379
+ get browserHeaders() {
380
+ const browser = getCall()?.browser;
381
+ return browser ? () => browser.headers() : void 0;
382
+ },
383
+ get checkCallerSession() {
384
+ if (plan.originCheck === "off") return;
385
+ const browser = getCall()?.browser;
386
+ return browser ? (path, instance) => instances.get(instance).origin.assertCallerSession(browser, path, instance) : void 0;
387
+ }
388
+ },
389
+ plan,
390
+ reading: read,
391
+ get call() {
392
+ return getCall();
393
+ }
394
+ };
395
+ const args = context.getArgs();
396
+ const bridge = {
397
+ args: [...args],
398
+ reading: read,
399
+ scope: this.scope,
400
+ readings: this.readings
401
+ };
402
+ for (const arg of [args, ...args]) if (arg && (typeof arg === "object" || typeof arg === "function") && Object.isExtensible(arg)) Object.defineProperty(arg, READER_CONTEXT, {
403
+ value: bridge,
404
+ configurable: true
405
+ });
406
+ return new rxjs.Observable((subscriber) => this.scope.run(state, () => {
407
+ const subscription = next.handle().subscribe({
408
+ next: (value) => this.scope.run(state, () => subscriber.next(value)),
409
+ error: (error) => this.scope.run(state, () => subscriber.error(error)),
410
+ complete: () => this.scope.run(state, () => subscriber.complete())
411
+ });
412
+ return () => this.scope.run(state, () => subscription.unsubscribe());
413
+ }));
414
+ }
415
+ };
416
+ //#endregion
417
+ //#region src/request-scope.ts
418
+ const SURFACED = Symbol.for("nestjs-slightly-better-auth:surfaced");
419
+ function memoKey(instance, ...inputs) {
420
+ return JSON.stringify([instance, ...inputs]);
421
+ }
422
+ /** Shared by guards and readers that have only the transport's structural lineage. */
423
+ function surfacedRecord(key, lineage) {
424
+ const carrier = lineage?.carrier ?? key;
425
+ const partition = lineage ? lineage.position.split(":", 1)[0] : "";
426
+ let records = Reflect.get(carrier, SURFACED);
427
+ if (!records) {
428
+ records = /* @__PURE__ */ new Map();
429
+ Object.defineProperty(carrier, SURFACED, { value: records });
430
+ }
431
+ let record = records.get(partition);
432
+ if (!record) {
433
+ record = /* @__PURE__ */ new Set();
434
+ records.set(partition, record);
435
+ }
436
+ return record;
437
+ }
438
+ var RequestScope = class {
439
+ #storage = new node_async_hooks.AsyncLocalStorage();
440
+ #states = /* @__PURE__ */ new WeakMap();
441
+ #valueKeys = /* @__PURE__ */ new Map();
442
+ #errorIds = /* @__PURE__ */ new WeakMap();
443
+ #nextError = 0;
444
+ run(state, fn) {
445
+ return this.#storage.run(state, fn);
446
+ }
447
+ exit(fn) {
448
+ return this.#storage.exit(fn);
449
+ }
450
+ current() {
451
+ return this.#storage.getStore();
452
+ }
453
+ stateFor(key) {
454
+ let state = this.#states.get(key);
455
+ if (!state) {
456
+ state = {
457
+ principal: /* @__PURE__ */ new Map(),
458
+ policyIo: /* @__PURE__ */ new Map(),
459
+ decisions: /* @__PURE__ */ new Map(),
460
+ values: /* @__PURE__ */ new Map(),
461
+ authorizationCalls: /* @__PURE__ */ new Set(),
462
+ origins: /* @__PURE__ */ new Map(),
463
+ surfaced: /* @__PURE__ */ new Set(),
464
+ connections: /* @__PURE__ */ new Map()
465
+ };
466
+ this.#states.set(key, state);
467
+ }
468
+ return state;
469
+ }
470
+ memoPrincipal(call, input, compute) {
471
+ const key = memoKey(input.instance, input.freshness, input.sourceSet);
472
+ const state = this.stateFor(call.key);
473
+ const existing = state.principal.get(key);
474
+ if (existing) return existing;
475
+ const connection = call.connection && input.freshness !== "authoritative" && (call.principalTtlMs ?? 0) > 0 ? this.stateFor(call.connection).connections : void 0;
476
+ const cached = connection?.get(key);
477
+ const promise = Promise.resolve().then(async () => {
478
+ if (cached && cached.expiresAt > Date.now()) return cached.value;
479
+ connection?.delete(key);
480
+ try {
481
+ const value = await compute();
482
+ if (value.outcome !== "rejected") connection?.set(key, {
483
+ value,
484
+ expiresAt: Date.now() + (call.principalTtlMs ?? 0)
485
+ });
486
+ return value;
487
+ } catch (error) {
488
+ connection?.delete(key);
489
+ throw error;
490
+ }
491
+ });
492
+ state.principal.set(key, promise);
493
+ return promise;
494
+ }
495
+ memoPolicyIo(request, instance, concreteKey, compute, limit = 100) {
496
+ const state = this.stateFor(request);
497
+ const key = memoKey(instance, concreteKey);
498
+ const existing = state.policyIo.get(key);
499
+ if (existing) return existing;
500
+ if (limit !== false && [...state.authorizationCalls].filter((entry) => JSON.parse(entry)[0] === instance).length >= limit) return Promise.reject(require_auth_errors.AuthFailures.rejected({
501
+ status: 429,
502
+ reason: "TOO_MANY_AUTHORIZATION_CHECKS"
503
+ }));
504
+ state.authorizationCalls.add(key);
505
+ const promise = Promise.resolve().then(compute);
506
+ state.policyIo.set(key, promise);
507
+ return promise;
508
+ }
509
+ memoDecision(invocation, instance, concreteKey, compute) {
510
+ const decisions = this.stateFor(invocation).decisions;
511
+ const key = memoKey(instance, concreteKey);
512
+ let promise = decisions.get(key);
513
+ if (!promise) {
514
+ promise = Promise.resolve().then(compute);
515
+ decisions.set(key, promise);
516
+ }
517
+ return promise;
518
+ }
519
+ valueKey(instance, key) {
520
+ let keys = this.#valueKeys.get(instance);
521
+ if (!keys) {
522
+ keys = /* @__PURE__ */ new Map();
523
+ this.#valueKeys.set(instance, keys);
524
+ }
525
+ let namespaced = keys.get(key);
526
+ if (!namespaced) {
527
+ namespaced = Symbol(key.description);
528
+ keys.set(key, namespaced);
529
+ }
530
+ return namespaced;
531
+ }
532
+ surfaced(key, error, context) {
533
+ let id = this.#errorIds.get(error);
534
+ if (!id) {
535
+ id = ++this.#nextError;
536
+ this.#errorIds.set(error, id);
537
+ }
538
+ const reason = require_auth_errors.isConfigurationError(error) ? memoKey(context.instance, error.code, context.site) : `error:${id}`;
539
+ const carrier = surfacedRecord(key, context.lineage);
540
+ const state = key === context.lineage?.carrier ? carrier : this.stateFor(key).surfaced;
541
+ const repeated = state.has(reason) || carrier.has(reason);
542
+ state.add(reason);
543
+ carrier.add(reason);
544
+ return repeated;
545
+ }
546
+ };
547
+ //#endregion
548
+ //#region src/principal-readings.ts
549
+ const RESOLUTION = Symbol.for("nestjs-slightly-better-auth:resolution");
550
+ const TEST_STAMP = Symbol.for("nestjs-slightly-better-auth:test-stamp");
551
+ function object(value) {
552
+ return value !== null && (typeof value === "object" || typeof value === "function");
553
+ }
554
+ function records(target, create = false) {
555
+ let value = Reflect.get(target, RESOLUTION);
556
+ if (!value && create) {
557
+ value = {
558
+ own: /* @__PURE__ */ new Map(),
559
+ positions: /* @__PURE__ */ new Map()
560
+ };
561
+ Object.defineProperty(target, RESOLUTION, { value });
562
+ }
563
+ return value;
564
+ }
565
+ function matchingStamp(args) {
566
+ for (const target of [args, ...args]) {
567
+ if (!object(target)) continue;
568
+ const stamp = Reflect.get(target, TEST_STAMP);
569
+ if (stamp && stamp.elements.length === args.length && stamp.elements.every((value, index) => value === args[index])) return stamp;
570
+ }
571
+ }
572
+ function lineageFromArgs(args) {
573
+ const targets = [args, ...args.filter(object)];
574
+ for (const target of targets) {
575
+ const own = records(target)?.invocationLineage;
576
+ if (own) return own;
577
+ }
578
+ for (const target of targets) {
579
+ const carrier = records(target)?.lineage;
580
+ if (!carrier) continue;
581
+ for (const position of carrier.enclosing(args)) return {
582
+ ...carrier,
583
+ position
584
+ };
585
+ }
586
+ }
587
+ /** The intrinsic twin suppresses Nest's repeated log, while retaining the safe wire shape. */
588
+ var RepeatedReaderError = class extends _nestjs_common_exceptions_intrinsic_exception_js.IntrinsicException {
589
+ constructor(error) {
590
+ super(error.message);
591
+ Object.defineProperties(this, Object.getOwnPropertyDescriptors(error));
592
+ }
593
+ };
594
+ var PrincipalReadings = class {
595
+ scope;
596
+ constructor(scope) {
597
+ this.scope = scope;
598
+ }
599
+ record(call, reading) {
600
+ const record = records(call.invocation, true);
601
+ record.own.set(reading.instance, reading);
602
+ if (call.lineage) {
603
+ record.invocationLineage = call.lineage;
604
+ this.recordLineage(call.lineage, reading);
605
+ }
606
+ }
607
+ recordLineage(lineage, reading) {
608
+ const value = records(lineage.carrier, true);
609
+ value.positions.set(lineage.position, reading);
610
+ value.lineage = lineage;
611
+ }
612
+ enclosing(lineage, args) {
613
+ const positions = records(lineage.carrier)?.positions;
614
+ for (const position of lineage.enclosing(args)) {
615
+ const reading = positions?.get(position);
616
+ if (reading) return reading;
617
+ }
618
+ }
619
+ read(input) {
620
+ const { plan, args, call } = input;
621
+ const lineage = input.lineage ?? call?.lineage;
622
+ let resolvedInstance = plan?.instance;
623
+ try {
624
+ if (plan?.access === "public") return {
625
+ outcome: "no-identity",
626
+ instance: plan.instance
627
+ };
628
+ let reading;
629
+ let validation = lineage ?? lineageFromArgs(args);
630
+ if (plan?.access === "inherit") reading = lineage && this.enclosing(lineage, args);
631
+ else {
632
+ const targets = call ? [call.invocation] : [args, ...args.filter(object)];
633
+ for (const target of targets) {
634
+ const own = records(target)?.own;
635
+ reading = plan ? own?.get(plan.instance) : own?.size === 1 ? own.values().next().value : void 0;
636
+ if (reading) break;
637
+ }
638
+ if (!reading && !plan) for (const target of [args, ...args.filter(object)]) {
639
+ const candidate = records(target)?.lineage;
640
+ if (!candidate) continue;
641
+ reading = this.enclosing(candidate, args);
642
+ if (reading) {
643
+ validation = candidate;
644
+ break;
645
+ }
646
+ }
647
+ }
648
+ if (!reading) {
649
+ const stamp = matchingStamp(args);
650
+ const instance = plan?.instance ?? "default";
651
+ const result = stamp?.results.get(instance);
652
+ if (result) reading = {
653
+ ...result,
654
+ instance
655
+ };
656
+ }
657
+ if (!reading) throw require_auth_errors.BetterAuthConfigurationError.atRequest(input.beforeGuard && plan?.access !== "inherit" ? "PRINCIPAL_READ_BEFORE_GUARD" : "NO_AUTH_RESULT", "No authentication result: BetterAuthGuard did not run for this invocation", {
658
+ site: plan?.site ?? input.site,
659
+ hint: "Run BetterAuthGuard before reading a principal; test replacements must stampPrincipal()."
660
+ });
661
+ resolvedInstance = reading.instance;
662
+ if (reading.outcome === "authenticated") validation?.assertReadable?.(args);
663
+ return reading;
664
+ } catch (error) {
665
+ if (require_auth_errors.isConfigurationError(error)) throw this.deliver(error, input, resolvedInstance);
666
+ throw error;
667
+ }
668
+ }
669
+ current() {
670
+ const state = this.scope.current();
671
+ if (!state?.reading) throw require_auth_errors.BetterAuthConfigurationError.atRequest("NO_AUTH_SCOPE", "Principal readers require a handler scope");
672
+ return state.reading();
673
+ }
674
+ project(reading, spec, input) {
675
+ if (reading.outcome === "no-identity" || reading.outcome === "absent") return null;
676
+ if (reading.outcome === "rejected") throw reading.failure;
677
+ if (spec.kind && reading.principal.kind !== spec.kind) {
678
+ const error = require_auth_errors.BetterAuthConfigurationError.atRequest(spec.reason ?? "PRINCIPAL_KIND_REQUIRED", `This reader requires principal kind ${spec.kind}`, {
679
+ site: spec.site,
680
+ hint: "Use @CurrentPrincipal() or getPrincipal() and narrow p.kind."
681
+ });
682
+ throw this.deliver(error, input, reading.instance);
683
+ }
684
+ return spec.project(reading.principal);
685
+ }
686
+ deliver(error, input, instance) {
687
+ const state = this.scope.current();
688
+ const call = state?.call ?? input?.call;
689
+ const lineage = call?.lineage ?? input?.lineage ?? (input && lineageFromArgs(input.args));
690
+ const key = call?.key ?? lineage?.carrier ?? input?.args;
691
+ if (!key) return error;
692
+ return this.scope.surfaced(key, error, {
693
+ instance: instance ?? state?.plan?.instance ?? input?.plan?.instance ?? "default",
694
+ site: error.site ?? input?.site ?? input?.plan?.site ?? "principal reader",
695
+ lineage
696
+ }) ? new RepeatedReaderError(error) : error;
697
+ }
698
+ stamp(args, instance, result) {
699
+ const stamp = matchingStamp(args) ?? {
700
+ elements: [...args],
701
+ results: /* @__PURE__ */ new Map()
702
+ };
703
+ stamp.results.set(instance, result);
704
+ for (const target of [args, ...args]) if (object(target) && Object.isExtensible(target)) Object.defineProperty(target, TEST_STAMP, {
705
+ value: stamp,
706
+ configurable: true
707
+ });
708
+ }
709
+ };
710
+ //#endregion
711
+ //#region src/auth-decorators.ts
712
+ function append(target, key, value) {
713
+ Reflect.defineMetadata(key, Object.freeze([...Reflect.getOwnMetadata(key, target) ?? [], value]), target);
714
+ }
715
+ const Public = () => (0, _nestjs_common.SetMetadata)(ACCESS_METADATA, "public");
716
+ const OptionalAuth = () => (0, _nestjs_common.SetMetadata)(ACCESS_METADATA, "optional");
717
+ const RequireAuth = (options) => (0, _nestjs_common.applyDecorators)((0, _nestjs_common.SetMetadata)(ACCESS_METADATA, "required"), (0, _nestjs_common.SetMetadata)(FRESHNESS_METADATA, options?.authoritative === true));
718
+ const UseAuthInstance = (name) => (0, _nestjs_common.SetMetadata)(AUTH_INSTANCE_METADATA, name);
719
+ const AcceptPrincipals = (...kinds) => (0, _nestjs_common.SetMetadata)(ACCEPT_PRINCIPALS_METADATA, Object.freeze([...kinds]));
720
+ const SkipDefaultRequirements = () => (0, _nestjs_common.SetMetadata)(SKIP_DEFAULT_REQUIREMENTS_METADATA, true);
721
+ const ForwardAuthCookies = (enabled = true) => (0, _nestjs_common.SetMetadata)(FORWARD_COOKIES_METADATA, enabled);
722
+ const SkipOriginCheck = () => (0, _nestjs_common.SetMetadata)(SKIP_ORIGIN_CHECK_METADATA, true);
723
+ const UseBetterAuth = () => (0, _nestjs_common.applyDecorators)((0, _nestjs_common.SetMetadata)(USE_BETTER_AUTH_METADATA, true), (0, _nestjs_common.UseGuards)(BetterAuthGuard), (0, _nestjs_common.UseInterceptors)(BetterAuthScopeInterceptor));
724
+ function Require(...requirements) {
725
+ return (target, _key, descriptor) => {
726
+ for (const expression of requirements) append(descriptor?.value ?? target, REQUIREMENTS_METADATA, expression);
727
+ };
728
+ }
729
+ const anyOf = (...requirements) => ({ anyOf: requirements });
730
+ const allOf = (...requirements) => ({ allOf: requirements });
731
+ const requirement = (policy, params, options) => ({
732
+ policy,
733
+ params,
734
+ ...options
735
+ });
736
+ function readerContext(context) {
737
+ const args = context.getArgs();
738
+ for (const arg of [args, ...args]) {
739
+ if ((typeof arg !== "object" || arg === null) && typeof arg !== "function") continue;
740
+ const bridge = Reflect.get(arg, READER_CONTEXT);
741
+ if (bridge && bridge.args.length === args.length && bridge.args.every((value, index) => value === args[index]) && bridge.reading !== void 0 && bridge.scope.current()?.reading === bridge.reading) return bridge;
742
+ }
743
+ const scope = new RequestScope();
744
+ return {
745
+ args,
746
+ scope,
747
+ readings: new PrincipalReadings(scope)
748
+ };
749
+ }
750
+ function principalParam(spec) {
751
+ const decorator = (0, _nestjs_common.createParamDecorator)((_data, context) => {
752
+ const bridge = readerContext(context);
753
+ const input = {
754
+ args: context.getArgs(),
755
+ site: `${context.getClass().name}.${context.getHandler().name}`
756
+ };
757
+ const reading = bridge.reading !== void 0 && bridge.scope.current()?.reading === bridge.reading ? bridge.readings.current() : bridge.readings.read(input);
758
+ return bridge.readings.project(reading, {
759
+ ...spec,
760
+ site: input.site,
761
+ project: spec?.project ?? ((p) => p)
762
+ }, input);
763
+ })();
764
+ return (target, propertyKey, index) => {
765
+ if (propertyKey === void 0) throw new require_auth_errors.BetterAuthConfigurationError("PRINCIPAL_PARAM_TARGET", "Principal parameters require a handler method");
766
+ append(Reflect.get(target, propertyKey), PRINCIPAL_PARAMS_METADATA, {
767
+ index,
768
+ ...spec ? {
769
+ kind: spec.kind,
770
+ reason: spec.reason
771
+ } : {}
772
+ });
773
+ decorator(target, propertyKey, index);
774
+ };
775
+ }
776
+ const CurrentPrincipal = () => principalParam();
777
+ function definePrincipalParam(spec) {
778
+ return () => principalParam(spec);
779
+ }
780
+ function defineInvocationParam(slot, spec) {
781
+ return () => {
782
+ const decorator = (0, _nestjs_common.createParamDecorator)((_data, context) => {
783
+ const bridge = readerContext(context);
784
+ const state = bridge.scope.current();
785
+ const input = {
786
+ args: context.getArgs(),
787
+ site: `${context.getClass().name}.${context.getHandler().name}`
788
+ };
789
+ const reading = state?.reading ? bridge.readings.current() : bridge.readings.read(input);
790
+ const candidates = state?.call ? [state.call.invocation] : [input.args, ...input.args];
791
+ for (const candidate of candidates) {
792
+ if (!candidate || typeof candidate !== "object" && typeof candidate !== "function") continue;
793
+ const values = Reflect.get(candidate, INVOCATION_VALUES);
794
+ if (values?.get(reading.instance)?.has(slot)) return values.get(reading.instance).get(slot);
795
+ }
796
+ throw bridge.readings.deliver(require_auth_errors.BetterAuthConfigurationError.atRequest("NO_INVOCATION_VALUE", spec.missing, { site: input.site }), input, reading.instance);
797
+ })();
798
+ return (target, key, index) => {
799
+ if (key === void 0) throw new require_auth_errors.BetterAuthConfigurationError("INVOCATION_PARAM_TARGET", "Invocation parameters require a handler method");
800
+ append(Reflect.get(target, key), INVOCATION_PARAMS_METADATA, {
801
+ index,
802
+ slot,
803
+ missing: spec.missing
804
+ });
805
+ decorator(target, key, index);
806
+ };
807
+ };
808
+ }
809
+ function readHookMetadata(handler) {
810
+ return {
811
+ hooks: Reflect.getOwnMetadata(HOOK_METADATA, handler) ?? [],
812
+ databaseHooks: Reflect.getOwnMetadata(DB_HOOK_METADATA, handler) ?? []
813
+ };
814
+ }
815
+ function hook(phase, match, options) {
816
+ return (_target, method, descriptor) => {
817
+ const handler = descriptor.value;
818
+ const records = readHookMetadata(handler).hooks;
819
+ append(handler, HOOK_METADATA, Object.freeze({
820
+ phase,
821
+ match: Array.isArray(match) ? Object.freeze([...match]) : match,
822
+ options: Object.freeze({ ...options }),
823
+ method,
824
+ handler,
825
+ declarationOrder: records.length
826
+ }));
827
+ };
828
+ }
829
+ const BeforeAuth = (match, options) => hook("before", match, options);
830
+ const AfterAuth = (match, options) => hook("after", match, options);
831
+ function databaseHook(phase, target, options) {
832
+ return (_prototype, method, descriptor) => {
833
+ const handler = descriptor.value;
834
+ append(handler, DB_HOOK_METADATA, Object.freeze({
835
+ phase,
836
+ target,
837
+ options: Object.freeze({ ...options }),
838
+ method,
839
+ handler,
840
+ declarationOrder: readHookMetadata(handler).databaseHooks.length
841
+ }));
842
+ };
843
+ }
844
+ const BeforeDatabase = (target, options) => databaseHook("before", target, options);
845
+ const AfterDatabase = (target, options) => databaseHook("after", target, options);
846
+ //#endregion
847
+ Object.defineProperty(exports, "ACCEPT_PRINCIPALS_METADATA", {
848
+ enumerable: true,
849
+ get: function() {
850
+ return ACCEPT_PRINCIPALS_METADATA;
851
+ }
852
+ });
853
+ Object.defineProperty(exports, "ACCESS_METADATA", {
854
+ enumerable: true,
855
+ get: function() {
856
+ return ACCESS_METADATA;
857
+ }
858
+ });
859
+ Object.defineProperty(exports, "AUTH_ENHANCER", {
860
+ enumerable: true,
861
+ get: function() {
862
+ return AUTH_ENHANCER;
863
+ }
864
+ });
865
+ Object.defineProperty(exports, "AUTH_INSTANCE_METADATA", {
866
+ enumerable: true,
867
+ get: function() {
868
+ return AUTH_INSTANCE_METADATA;
869
+ }
870
+ });
871
+ Object.defineProperty(exports, "AcceptPrincipals", {
872
+ enumerable: true,
873
+ get: function() {
874
+ return AcceptPrincipals;
875
+ }
876
+ });
877
+ Object.defineProperty(exports, "AfterAuth", {
878
+ enumerable: true,
879
+ get: function() {
880
+ return AfterAuth;
881
+ }
882
+ });
883
+ Object.defineProperty(exports, "AfterDatabase", {
884
+ enumerable: true,
885
+ get: function() {
886
+ return AfterDatabase;
887
+ }
888
+ });
889
+ Object.defineProperty(exports, "BeforeAuth", {
890
+ enumerable: true,
891
+ get: function() {
892
+ return BeforeAuth;
893
+ }
894
+ });
895
+ Object.defineProperty(exports, "BeforeDatabase", {
896
+ enumerable: true,
897
+ get: function() {
898
+ return BeforeDatabase;
899
+ }
900
+ });
901
+ Object.defineProperty(exports, "BetterAuthGuard", {
902
+ enumerable: true,
903
+ get: function() {
904
+ return BetterAuthGuard;
905
+ }
906
+ });
907
+ Object.defineProperty(exports, "BetterAuthScopeInterceptor", {
908
+ enumerable: true,
909
+ get: function() {
910
+ return BetterAuthScopeInterceptor;
911
+ }
912
+ });
913
+ Object.defineProperty(exports, "ChainPrincipalResolver", {
914
+ enumerable: true,
915
+ get: function() {
916
+ return ChainPrincipalResolver;
917
+ }
918
+ });
919
+ Object.defineProperty(exports, "CurrentPrincipal", {
920
+ enumerable: true,
921
+ get: function() {
922
+ return CurrentPrincipal;
923
+ }
924
+ });
925
+ Object.defineProperty(exports, "FORWARD_COOKIES_METADATA", {
926
+ enumerable: true,
927
+ get: function() {
928
+ return FORWARD_COOKIES_METADATA;
929
+ }
930
+ });
931
+ Object.defineProperty(exports, "FRESHNESS_METADATA", {
932
+ enumerable: true,
933
+ get: function() {
934
+ return FRESHNESS_METADATA;
935
+ }
936
+ });
937
+ Object.defineProperty(exports, "ForwardAuthCookies", {
938
+ enumerable: true,
939
+ get: function() {
940
+ return ForwardAuthCookies;
941
+ }
942
+ });
943
+ Object.defineProperty(exports, "GUARD_CORE", {
944
+ enumerable: true,
945
+ get: function() {
946
+ return GUARD_CORE;
947
+ }
948
+ });
949
+ Object.defineProperty(exports, "GuardCore", {
950
+ enumerable: true,
951
+ get: function() {
952
+ return GuardCore;
953
+ }
954
+ });
955
+ Object.defineProperty(exports, "INSTANCE_REGISTRY", {
956
+ enumerable: true,
957
+ get: function() {
958
+ return INSTANCE_REGISTRY;
959
+ }
960
+ });
961
+ Object.defineProperty(exports, "INVOCATION_PARAMS_METADATA", {
962
+ enumerable: true,
963
+ get: function() {
964
+ return INVOCATION_PARAMS_METADATA;
965
+ }
966
+ });
967
+ Object.defineProperty(exports, "INVOCATION_VALUES", {
968
+ enumerable: true,
969
+ get: function() {
970
+ return INVOCATION_VALUES;
971
+ }
972
+ });
973
+ Object.defineProperty(exports, "MOUNT_COORDINATOR", {
974
+ enumerable: true,
975
+ get: function() {
976
+ return MOUNT_COORDINATOR;
977
+ }
978
+ });
979
+ Object.defineProperty(exports, "MemoKeys", {
980
+ enumerable: true,
981
+ get: function() {
982
+ return MemoKeys;
983
+ }
984
+ });
985
+ Object.defineProperty(exports, "OptionalAuth", {
986
+ enumerable: true,
987
+ get: function() {
988
+ return OptionalAuth;
989
+ }
990
+ });
991
+ Object.defineProperty(exports, "PLATFORMS", {
992
+ enumerable: true,
993
+ get: function() {
994
+ return PLATFORMS;
995
+ }
996
+ });
997
+ Object.defineProperty(exports, "POLICY_INVOKER", {
998
+ enumerable: true,
999
+ get: function() {
1000
+ return POLICY_INVOKER;
1001
+ }
1002
+ });
1003
+ Object.defineProperty(exports, "POLICY_RESOLVER", {
1004
+ enumerable: true,
1005
+ get: function() {
1006
+ return POLICY_RESOLVER;
1007
+ }
1008
+ });
1009
+ Object.defineProperty(exports, "PRINCIPAL_PARAMS_METADATA", {
1010
+ enumerable: true,
1011
+ get: function() {
1012
+ return PRINCIPAL_PARAMS_METADATA;
1013
+ }
1014
+ });
1015
+ Object.defineProperty(exports, "PRINCIPAL_READINGS", {
1016
+ enumerable: true,
1017
+ get: function() {
1018
+ return PRINCIPAL_READINGS;
1019
+ }
1020
+ });
1021
+ Object.defineProperty(exports, "PRINCIPAL_RESOLVER", {
1022
+ enumerable: true,
1023
+ get: function() {
1024
+ return PRINCIPAL_RESOLVER;
1025
+ }
1026
+ });
1027
+ Object.defineProperty(exports, "PrincipalReadings", {
1028
+ enumerable: true,
1029
+ get: function() {
1030
+ return PrincipalReadings;
1031
+ }
1032
+ });
1033
+ Object.defineProperty(exports, "Public", {
1034
+ enumerable: true,
1035
+ get: function() {
1036
+ return Public;
1037
+ }
1038
+ });
1039
+ Object.defineProperty(exports, "REQUEST_SCOPE", {
1040
+ enumerable: true,
1041
+ get: function() {
1042
+ return REQUEST_SCOPE;
1043
+ }
1044
+ });
1045
+ Object.defineProperty(exports, "REQUIREMENTS_METADATA", {
1046
+ enumerable: true,
1047
+ get: function() {
1048
+ return REQUIREMENTS_METADATA;
1049
+ }
1050
+ });
1051
+ Object.defineProperty(exports, "ROUTE_PLANNER", {
1052
+ enumerable: true,
1053
+ get: function() {
1054
+ return ROUTE_PLANNER;
1055
+ }
1056
+ });
1057
+ Object.defineProperty(exports, "RequestScope", {
1058
+ enumerable: true,
1059
+ get: function() {
1060
+ return RequestScope;
1061
+ }
1062
+ });
1063
+ Object.defineProperty(exports, "Require", {
1064
+ enumerable: true,
1065
+ get: function() {
1066
+ return Require;
1067
+ }
1068
+ });
1069
+ Object.defineProperty(exports, "RequireAuth", {
1070
+ enumerable: true,
1071
+ get: function() {
1072
+ return RequireAuth;
1073
+ }
1074
+ });
1075
+ Object.defineProperty(exports, "SCOPE_CORE", {
1076
+ enumerable: true,
1077
+ get: function() {
1078
+ return SCOPE_CORE;
1079
+ }
1080
+ });
1081
+ Object.defineProperty(exports, "SKIP_DEFAULT_REQUIREMENTS_METADATA", {
1082
+ enumerable: true,
1083
+ get: function() {
1084
+ return SKIP_DEFAULT_REQUIREMENTS_METADATA;
1085
+ }
1086
+ });
1087
+ Object.defineProperty(exports, "SKIP_ORIGIN_CHECK_METADATA", {
1088
+ enumerable: true,
1089
+ get: function() {
1090
+ return SKIP_ORIGIN_CHECK_METADATA;
1091
+ }
1092
+ });
1093
+ Object.defineProperty(exports, "ScopeCore", {
1094
+ enumerable: true,
1095
+ get: function() {
1096
+ return ScopeCore;
1097
+ }
1098
+ });
1099
+ Object.defineProperty(exports, "SkipDefaultRequirements", {
1100
+ enumerable: true,
1101
+ get: function() {
1102
+ return SkipDefaultRequirements;
1103
+ }
1104
+ });
1105
+ Object.defineProperty(exports, "SkipOriginCheck", {
1106
+ enumerable: true,
1107
+ get: function() {
1108
+ return SkipOriginCheck;
1109
+ }
1110
+ });
1111
+ Object.defineProperty(exports, "TRANSPORTS", {
1112
+ enumerable: true,
1113
+ get: function() {
1114
+ return TRANSPORTS;
1115
+ }
1116
+ });
1117
+ Object.defineProperty(exports, "TRANSPORT_REGISTRY", {
1118
+ enumerable: true,
1119
+ get: function() {
1120
+ return TRANSPORT_REGISTRY;
1121
+ }
1122
+ });
1123
+ Object.defineProperty(exports, "USE_BETTER_AUTH_METADATA", {
1124
+ enumerable: true,
1125
+ get: function() {
1126
+ return USE_BETTER_AUTH_METADATA;
1127
+ }
1128
+ });
1129
+ Object.defineProperty(exports, "UseAuthInstance", {
1130
+ enumerable: true,
1131
+ get: function() {
1132
+ return UseAuthInstance;
1133
+ }
1134
+ });
1135
+ Object.defineProperty(exports, "UseBetterAuth", {
1136
+ enumerable: true,
1137
+ get: function() {
1138
+ return UseBetterAuth;
1139
+ }
1140
+ });
1141
+ Object.defineProperty(exports, "__decorate", {
1142
+ enumerable: true,
1143
+ get: function() {
1144
+ return __decorate;
1145
+ }
1146
+ });
1147
+ Object.defineProperty(exports, "__decorateMetadata", {
1148
+ enumerable: true,
1149
+ get: function() {
1150
+ return __decorateMetadata;
1151
+ }
1152
+ });
1153
+ Object.defineProperty(exports, "__decorateParam", {
1154
+ enumerable: true,
1155
+ get: function() {
1156
+ return __decorateParam;
1157
+ }
1158
+ });
1159
+ Object.defineProperty(exports, "absent", {
1160
+ enumerable: true,
1161
+ get: function() {
1162
+ return absent;
1163
+ }
1164
+ });
1165
+ Object.defineProperty(exports, "allOf", {
1166
+ enumerable: true,
1167
+ get: function() {
1168
+ return allOf;
1169
+ }
1170
+ });
1171
+ Object.defineProperty(exports, "anyOf", {
1172
+ enumerable: true,
1173
+ get: function() {
1174
+ return anyOf;
1175
+ }
1176
+ });
1177
+ Object.defineProperty(exports, "authenticated", {
1178
+ enumerable: true,
1179
+ get: function() {
1180
+ return authenticated;
1181
+ }
1182
+ });
1183
+ Object.defineProperty(exports, "defineInvocationParam", {
1184
+ enumerable: true,
1185
+ get: function() {
1186
+ return defineInvocationParam;
1187
+ }
1188
+ });
1189
+ Object.defineProperty(exports, "definePrincipalParam", {
1190
+ enumerable: true,
1191
+ get: function() {
1192
+ return definePrincipalParam;
1193
+ }
1194
+ });
1195
+ Object.defineProperty(exports, "definePrincipalSource", {
1196
+ enumerable: true,
1197
+ get: function() {
1198
+ return definePrincipalSource;
1199
+ }
1200
+ });
1201
+ Object.defineProperty(exports, "getBetterAuthHandleToken", {
1202
+ enumerable: true,
1203
+ get: function() {
1204
+ return getBetterAuthHandleToken;
1205
+ }
1206
+ });
1207
+ Object.defineProperty(exports, "getBetterAuthInstanceToken", {
1208
+ enumerable: true,
1209
+ get: function() {
1210
+ return getBetterAuthInstanceToken;
1211
+ }
1212
+ });
1213
+ Object.defineProperty(exports, "getBetterAuthOptionsToken", {
1214
+ enumerable: true,
1215
+ get: function() {
1216
+ return getBetterAuthOptionsToken;
1217
+ }
1218
+ });
1219
+ Object.defineProperty(exports, "getBetterAuthServiceToken", {
1220
+ enumerable: true,
1221
+ get: function() {
1222
+ return getBetterAuthServiceToken;
1223
+ }
1224
+ });
1225
+ Object.defineProperty(exports, "getExtensionToken", {
1226
+ enumerable: true,
1227
+ get: function() {
1228
+ return getExtensionToken;
1229
+ }
1230
+ });
1231
+ Object.defineProperty(exports, "getPrincipalSourcesToken", {
1232
+ enumerable: true,
1233
+ get: function() {
1234
+ return getPrincipalSourcesToken;
1235
+ }
1236
+ });
1237
+ Object.defineProperty(exports, "memoKey", {
1238
+ enumerable: true,
1239
+ get: function() {
1240
+ return memoKey;
1241
+ }
1242
+ });
1243
+ Object.defineProperty(exports, "normalizeForRequest", {
1244
+ enumerable: true,
1245
+ get: function() {
1246
+ return normalizeForRequest;
1247
+ }
1248
+ });
1249
+ Object.defineProperty(exports, "readHookMetadata", {
1250
+ enumerable: true,
1251
+ get: function() {
1252
+ return readHookMetadata;
1253
+ }
1254
+ });
1255
+ Object.defineProperty(exports, "rejected", {
1256
+ enumerable: true,
1257
+ get: function() {
1258
+ return rejected;
1259
+ }
1260
+ });
1261
+ Object.defineProperty(exports, "requestHeaders", {
1262
+ enumerable: true,
1263
+ get: function() {
1264
+ return requestHeaders;
1265
+ }
1266
+ });
1267
+ Object.defineProperty(exports, "requirement", {
1268
+ enumerable: true,
1269
+ get: function() {
1270
+ return requirement;
1271
+ }
1272
+ });
1273
+
1274
+ //# sourceMappingURL=auth-decorators-CwW5JY4y.cjs.map