ras-stack 0.39.1 → 0.39.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/dist/tanstack/middleware.d.ts +3 -0
- package/dist/tanstack/middleware.js +12 -0
- package/dist/tanstack/middleware.js.map +1 -0
- package/dist/tanstack/server.d.ts +2 -4
- package/dist/tanstack/server.js +2 -11
- package/dist/tanstack/server.js.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -76,16 +76,16 @@ pnpm add postgres drizzle-orm
|
|
|
76
76
|
|
|
77
77
|
Start with the narrowest public entrypoint that owns the repeated mechanic:
|
|
78
78
|
|
|
79
|
-
| Need | Entrypoint or command
|
|
80
|
-
| --------------------------------------------------------- |
|
|
81
|
-
| Authentication defaults and browser action state | `ras-stack/auth`, `ras-stack/auth/client`, `ras-stack/auth/react`
|
|
82
|
-
| RPC, mutation-origin, health, and canonical-host handling | `ras-stack/server`, `ras-stack/tanstack/server`
|
|
83
|
-
| SQLite or PostgreSQL lifecycle | `ras-stack/database/*`
|
|
84
|
-
| Realtime publication and browser lifecycle | `ras-stack/realtime/*`
|
|
85
|
-
| Email, uploads, and production assets | `ras-stack/email`, `ras-stack/uploads`, `ras assets`
|
|
86
|
-
| Production or development realtime runtime | `ras-stack/runtime`, `ras realtime`
|
|
87
|
-
| Compiler, lint, CI, release, and preview mechanics | `ras-stack/config/*`, `actions/*`, `.github/workflows/*`, `ras-stack/preview/*`
|
|
88
|
-
| Generated repository policy files | `ras policy`
|
|
79
|
+
| Need | Entrypoint or command | The application still owns |
|
|
80
|
+
| --------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------- |
|
|
81
|
+
| Authentication defaults and browser action state | `ras-stack/auth`, `ras-stack/auth/client`, `ras-stack/auth/react` | Better Auth configuration, forms, policy, and navigation |
|
|
82
|
+
| RPC, mutation-origin, health, and canonical-host handling | `ras-stack/server`, `ras-stack/tanstack/server`, `ras-stack/tanstack/middleware` | Routes, authorization, logging, and health work |
|
|
83
|
+
| SQLite or PostgreSQL lifecycle | `ras-stack/database/*` | Schemas, migrations, repositories, and transactions |
|
|
84
|
+
| Realtime publication and browser lifecycle | `ras-stack/realtime/*` | Channels, tickets, payloads, presence models, and invalidation |
|
|
85
|
+
| Email, uploads, and production assets | `ras-stack/email`, `ras-stack/uploads`, `ras assets` | Templates, metadata, quotas, storage, and asset contents |
|
|
86
|
+
| Production or development realtime runtime | `ras-stack/runtime`, `ras realtime` | Images, ports, secrets, volumes, and distributed policy |
|
|
87
|
+
| Compiler, lint, CI, release, and preview mechanics | `ras-stack/config/*`, `actions/*`, `.github/workflows/*`, `ras-stack/preview/*` | Triggers, permissions, services, deployment, and verification |
|
|
88
|
+
| Generated repository policy files | `ras policy` | Which policies apply and every declared override |
|
|
89
89
|
|
|
90
90
|
## Dokploy previews 🚀
|
|
91
91
|
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type CanonicalRedirectOptions } from '../server/canonical-host.js';
|
|
2
|
+
export declare function canonicalHostRequest<T>(request: Request, next: () => T, options: CanonicalRedirectOptions): Response | T;
|
|
3
|
+
export declare function canonicalHostMiddleware(resolveOptions: () => CanonicalRedirectOptions): import("@tanstack/react-start").RequestMiddlewareAfterServer<{}, undefined, undefined>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createMiddleware } from '@tanstack/react-start';
|
|
2
|
+
import { canonicalRedirect } from '../server/canonical-host.js';
|
|
3
|
+
export function canonicalHostRequest(request, next, options) {
|
|
4
|
+
const redirect = canonicalRedirect(request.url, options);
|
|
5
|
+
return redirect ? Response.redirect(redirect, 301) : next();
|
|
6
|
+
}
|
|
7
|
+
export function canonicalHostMiddleware(resolveOptions) {
|
|
8
|
+
return createMiddleware({ type: 'request' }).server(({ request, next }) => {
|
|
9
|
+
return canonicalHostRequest(request, next, resolveOptions());
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/tanstack/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAiC,MAAM,6BAA6B,CAAA;AAE9F,MAAM,UAAU,oBAAoB,CAAI,OAAgB,EAAE,IAAa,EAAE,OAAiC;IACxG,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACxD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,cAA8C;IACpF,OAAO,gBAAgB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACxE,OAAO,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { createMiddleware } from '@tanstack/react-start'\nimport { canonicalRedirect, type CanonicalRedirectOptions } from '../server/canonical-host.js'\n\nexport function canonicalHostRequest<T>(request: Request, next: () => T, options: CanonicalRedirectOptions): Response | T {\n const redirect = canonicalRedirect(request.url, options)\n return redirect ? Response.redirect(redirect, 301) : next()\n}\n\nexport function canonicalHostMiddleware(resolveOptions: () => CanonicalRedirectOptions) {\n return createMiddleware({ type: 'request' }).server(({ request, next }) => {\n return canonicalHostRequest(request, next, resolveOptions())\n })\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type OriginOptions } from '../auth/origins.js';
|
|
2
|
-
import { type
|
|
2
|
+
import { type HealthResponseOptions, type RpcOptions } from '../server/index.js';
|
|
3
|
+
export { canonicalHostMiddleware, canonicalHostRequest } from './middleware.js';
|
|
3
4
|
export type TanStackRpcOptions = Omit<RpcOptions, 'getRequest'> & Pick<RpcOptions, 'getRequest'>;
|
|
4
5
|
export declare function createTanStackRpc(options?: TanStackRpcOptions): {
|
|
5
6
|
rpc: <T>(work: () => Promise<T> | T) => Promise<T>;
|
|
@@ -16,6 +17,3 @@ export declare function betterAuthHandlers(resolveAuth: () => {
|
|
|
16
17
|
POST: ({ request }: RequestContext) => Promise<Response> | Response;
|
|
17
18
|
};
|
|
18
19
|
export declare function tanStackHealthHandler(check: () => void | Promise<void>, options?: HealthResponseOptions): () => Promise<Response>;
|
|
19
|
-
export declare function canonicalHostRequest<T>(request: Request, next: () => T, options: CanonicalRedirectOptions): Response | T;
|
|
20
|
-
export declare function canonicalHostMiddleware(resolveOptions: () => CanonicalRedirectOptions): import("@tanstack/react-start").RequestMiddlewareAfterServer<{}, undefined, undefined>;
|
|
21
|
-
export {};
|
package/dist/tanstack/server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getRequest } from '@tanstack/react-start/server';
|
|
2
|
-
import { createMiddleware } from '@tanstack/react-start';
|
|
3
2
|
import { requireSameOrigin } from '../auth/origins.js';
|
|
4
|
-
import {
|
|
3
|
+
import { createRpc, healthResponse } from '../server/index.js';
|
|
4
|
+
export { canonicalHostMiddleware, canonicalHostRequest } from './middleware.js';
|
|
5
5
|
export function createTanStackRpc(options = {}) {
|
|
6
6
|
return createRpc({ ...options, getRequest: options.getRequest ?? getRequest });
|
|
7
7
|
}
|
|
@@ -15,13 +15,4 @@ export function betterAuthHandlers(resolveAuth) {
|
|
|
15
15
|
export function tanStackHealthHandler(check, options = {}) {
|
|
16
16
|
return () => healthResponse(check, options);
|
|
17
17
|
}
|
|
18
|
-
export function canonicalHostRequest(request, next, options) {
|
|
19
|
-
const redirect = canonicalRedirect(request.url, options);
|
|
20
|
-
return redirect ? Response.redirect(redirect, 301) : next();
|
|
21
|
-
}
|
|
22
|
-
export function canonicalHostMiddleware(resolveOptions) {
|
|
23
|
-
return createMiddleware({ type: 'request' }).server(({ request, next }) => {
|
|
24
|
-
return canonicalHostRequest(request, next, resolveOptions());
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
18
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/tanstack/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/tanstack/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAsB,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,cAAc,EAA+C,MAAM,oBAAoB,CAAA;AAC3G,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAI/E,MAAM,UAAU,iBAAiB,CAAC,OAAO,GAAuB,EAAE;IAChE,OAAO,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,UAAU,EAAE,CAAC,CAAA;AAChF,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAO,GAAkB,EAAE,EAAE,OAAO,GAAG,UAAU,EAAE;IAC/F,OAAO,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAC5C,CAAC;AAID,MAAM,UAAU,kBAAkB,CAAC,WAA8E;IAC/G,MAAM,MAAM,GAAG,CAAC,EAAE,OAAO,EAAkB,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9E,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAiC,EAAE,OAAO,GAA0B,EAAE;IAC1G,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAC7C,CAAC","sourcesContent":["import { getRequest } from '@tanstack/react-start/server'\nimport { requireSameOrigin, type OriginOptions } from '../auth/origins.js'\nimport { createRpc, healthResponse, type HealthResponseOptions, type RpcOptions } from '../server/index.js'\nexport { canonicalHostMiddleware, canonicalHostRequest } from './middleware.js'\n\nexport type TanStackRpcOptions = Omit<RpcOptions, 'getRequest'> & Pick<RpcOptions, 'getRequest'>\n\nexport function createTanStackRpc(options: TanStackRpcOptions = {}) {\n return createRpc({ ...options, getRequest: options.getRequest ?? getRequest })\n}\n\nexport function requireTanStackMutationOrigin(options: OriginOptions = {}, request = getRequest()) {\n return requireSameOrigin(request, options)\n}\n\ntype RequestContext = { request: Request }\n\nexport function betterAuthHandlers(resolveAuth: () => { handler(request: Request): Response | Promise<Response> }) {\n const handle = ({ request }: RequestContext) => resolveAuth().handler(request)\n return { GET: handle, POST: handle }\n}\n\nexport function tanStackHealthHandler(check: () => void | Promise<void>, options: HealthResponseOptions = {}) {\n return () => healthResponse(check, options)\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ras-stack",
|
|
3
|
-
"version": "0.39.
|
|
3
|
+
"version": "0.39.2",
|
|
4
4
|
"description": "Composable full-stack primitives shared across Richard Solomou's applications.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"authentication",
|
|
@@ -118,6 +118,10 @@
|
|
|
118
118
|
"types": "./dist/tanstack/query.d.ts",
|
|
119
119
|
"default": "./dist/tanstack/query.js"
|
|
120
120
|
},
|
|
121
|
+
"./tanstack/middleware": {
|
|
122
|
+
"types": "./dist/tanstack/middleware.d.ts",
|
|
123
|
+
"default": "./dist/tanstack/middleware.js"
|
|
124
|
+
},
|
|
121
125
|
"./tanstack/server": {
|
|
122
126
|
"types": "./dist/tanstack/server.d.ts",
|
|
123
127
|
"default": "./dist/tanstack/server.js"
|