@atlasauth/nextjs 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/matcher.d.ts +15 -0
- package/dist/matcher.js +24 -0
- package/dist/matcher.js.map +1 -1
- package/package.json +2 -2
package/dist/matcher.d.ts
CHANGED
|
@@ -21,6 +21,21 @@
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function matchesPattern(pathname: string, pattern: string): boolean;
|
|
23
23
|
export declare function matchesAny(pathname: string, patterns: readonly string[]): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* §10.1 Clerk-parity `createRouteMatcher(patterns)` — the idiom integrators write
|
|
26
|
+
* at the top of `middleware.ts` (`const isProtected = createRouteMatcher(['/dashboard(.*)'])`).
|
|
27
|
+
* Returns a predicate over anything carrying a pathname: a Next `NextRequest`
|
|
28
|
+
* (`req.nextUrl.pathname`), a plain `{ nextUrl }` / `{ url }`, or a bare path
|
|
29
|
+
* string. Uses the SAME `(.*)`-only pattern engine as the middleware, so a
|
|
30
|
+
* matcher written here and the middleware's own routing agree exactly (no second
|
|
31
|
+
* dialect, no customer regex in the auth path).
|
|
32
|
+
*/
|
|
33
|
+
export declare function createRouteMatcher(patterns: readonly string[]): (input: string | {
|
|
34
|
+
nextUrl?: {
|
|
35
|
+
pathname?: string;
|
|
36
|
+
};
|
|
37
|
+
url?: string;
|
|
38
|
+
}) => boolean;
|
|
24
39
|
export declare function isStaticAsset(pathname: string): boolean;
|
|
25
40
|
export interface MiddlewareConfig {
|
|
26
41
|
/** Routes reachable without a session. Everything else requires one. */
|
package/dist/matcher.js
CHANGED
|
@@ -16,6 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
exports.DEFAULT_SIGN_IN_URL = void 0;
|
|
17
17
|
exports.matchesPattern = matchesPattern;
|
|
18
18
|
exports.matchesAny = matchesAny;
|
|
19
|
+
exports.createRouteMatcher = createRouteMatcher;
|
|
19
20
|
exports.isStaticAsset = isStaticAsset;
|
|
20
21
|
exports.decideRoute = decideRoute;
|
|
21
22
|
exports.safeRedirect = safeRedirect;
|
|
@@ -40,6 +41,29 @@ function matchesPattern(pathname, pattern) {
|
|
|
40
41
|
function matchesAny(pathname, patterns) {
|
|
41
42
|
return patterns.some((pattern) => matchesPattern(pathname, pattern));
|
|
42
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* §10.1 Clerk-parity `createRouteMatcher(patterns)` — the idiom integrators write
|
|
46
|
+
* at the top of `middleware.ts` (`const isProtected = createRouteMatcher(['/dashboard(.*)'])`).
|
|
47
|
+
* Returns a predicate over anything carrying a pathname: a Next `NextRequest`
|
|
48
|
+
* (`req.nextUrl.pathname`), a plain `{ nextUrl }` / `{ url }`, or a bare path
|
|
49
|
+
* string. Uses the SAME `(.*)`-only pattern engine as the middleware, so a
|
|
50
|
+
* matcher written here and the middleware's own routing agree exactly (no second
|
|
51
|
+
* dialect, no customer regex in the auth path).
|
|
52
|
+
*/
|
|
53
|
+
function createRouteMatcher(patterns) {
|
|
54
|
+
return (input) => {
|
|
55
|
+
let pathname;
|
|
56
|
+
if (typeof input === 'string') {
|
|
57
|
+
// Accept a full URL or a bare path.
|
|
58
|
+
pathname = input.startsWith('http') ? new URL(input).pathname : input;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
pathname =
|
|
62
|
+
input.nextUrl?.pathname ?? (input.url ? new URL(input.url, 'http://x').pathname : '');
|
|
63
|
+
}
|
|
64
|
+
return matchesAny(pathname, patterns);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
43
67
|
/**
|
|
44
68
|
* Paths that are never auth decisions.
|
|
45
69
|
*
|
package/dist/matcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matcher.js","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAUH,wCASC;AAED,gCAEC;AAWD,sCAKC;AA4BD,kCA4BC;AASD,oCAiBC;
|
|
1
|
+
{"version":3,"file":"matcher.js","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlasauth/nextjs",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@atlasauth/backend": "0.1.
|
|
7
|
+
"@atlasauth/backend": "0.1.2"
|
|
8
8
|
},
|
|
9
9
|
"devDependencies": {
|
|
10
10
|
"typescript": "^5.6.3",
|