@nexus_js/server 0.9.28 → 0.9.29

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 (80) hide show
  1. package/dist/actions.d.ts +11 -71
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +51 -442
  4. package/dist/actions.js.map +1 -1
  5. package/dist/context.d.ts +4 -38
  6. package/dist/context.d.ts.map +1 -1
  7. package/dist/context.js +3 -13
  8. package/dist/context.js.map +1 -1
  9. package/dist/csrf.d.ts +2 -16
  10. package/dist/csrf.d.ts.map +1 -1
  11. package/dist/csrf.js +30 -68
  12. package/dist/csrf.js.map +1 -1
  13. package/dist/dev-assets.d.ts +0 -31
  14. package/dist/dev-assets.d.ts.map +1 -1
  15. package/dist/dev-assets.js +38 -372
  16. package/dist/dev-assets.js.map +1 -1
  17. package/dist/dev-error-html.d.ts.map +1 -1
  18. package/dist/dev-error-html.js +0 -24
  19. package/dist/dev-error-html.js.map +1 -1
  20. package/dist/devradar.d.ts +1 -1
  21. package/dist/devradar.d.ts.map +1 -1
  22. package/dist/devradar.js.map +1 -1
  23. package/dist/index.d.ts +2 -97
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +47 -442
  26. package/dist/index.js.map +1 -1
  27. package/dist/load-module.d.ts +0 -6
  28. package/dist/load-module.d.ts.map +1 -1
  29. package/dist/load-module.js +53 -40
  30. package/dist/load-module.js.map +1 -1
  31. package/dist/navigate.d.ts +5 -0
  32. package/dist/navigate.d.ts.map +1 -1
  33. package/dist/navigate.js +1 -0
  34. package/dist/navigate.js.map +1 -1
  35. package/dist/rate-limit.d.ts.map +1 -1
  36. package/dist/rate-limit.js +14 -27
  37. package/dist/rate-limit.js.map +1 -1
  38. package/dist/renderer.d.ts +7 -27
  39. package/dist/renderer.d.ts.map +1 -1
  40. package/dist/renderer.js +25 -152
  41. package/dist/renderer.js.map +1 -1
  42. package/dist/streaming.d.ts +3 -3
  43. package/dist/streaming.d.ts.map +1 -1
  44. package/dist/streaming.js +13 -33
  45. package/dist/streaming.js.map +1 -1
  46. package/package.json +8 -26
  47. package/dist/build-id.d.ts +0 -14
  48. package/dist/build-id.d.ts.map +0 -1
  49. package/dist/build-id.js +0 -40
  50. package/dist/build-id.js.map +0 -1
  51. package/dist/dev-assets.test.d.ts +0 -2
  52. package/dist/dev-assets.test.d.ts.map +0 -1
  53. package/dist/head-renderer.test.d.ts +0 -2
  54. package/dist/head-renderer.test.d.ts.map +0 -1
  55. package/dist/head-renderer.test.js +0 -78
  56. package/dist/head-renderer.test.js.map +0 -1
  57. package/dist/legacy-wrapper.d.ts +0 -88
  58. package/dist/legacy-wrapper.d.ts.map +0 -1
  59. package/dist/legacy-wrapper.js +0 -104
  60. package/dist/legacy-wrapper.js.map +0 -1
  61. package/dist/lib-assets.d.ts +0 -5
  62. package/dist/lib-assets.d.ts.map +0 -1
  63. package/dist/lib-assets.js +0 -95
  64. package/dist/lib-assets.js.map +0 -1
  65. package/dist/metadata.d.ts +0 -95
  66. package/dist/metadata.d.ts.map +0 -1
  67. package/dist/metadata.js +0 -132
  68. package/dist/metadata.js.map +0 -1
  69. package/dist/renderer.test.d.ts +0 -2
  70. package/dist/renderer.test.d.ts.map +0 -1
  71. package/dist/renderer.test.js +0 -251
  72. package/dist/renderer.test.js.map +0 -1
  73. package/dist/tenancy.d.ts +0 -17
  74. package/dist/tenancy.d.ts.map +0 -1
  75. package/dist/tenancy.js +0 -132
  76. package/dist/tenancy.js.map +0 -1
  77. package/dist/tenancy.test.d.ts +0 -2
  78. package/dist/tenancy.test.d.ts.map +0 -1
  79. package/dist/tenancy.test.js +0 -38
  80. package/dist/tenancy.test.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -2,25 +2,15 @@
2
2
  * Nexus Server — Node.js HTTP server adapter.
3
3
  * Handles SSR, static assets, Server Actions and dev HMR.
4
4
  */
5
- import { type TenancyConfig } from './tenancy.js';
6
5
  export { STUDIO_DEFAULT_PORT } from './constants.js';
7
- export { createAction, registerAction, ActionError, getRegisteredActionNames, isInternalUrl, isSafeUrl, } from './actions.js';
8
- export { loadAndCacheNexusBuildId, getExpectedNexusBuildId } from './build-id.js';
6
+ export { createAction, registerAction, ActionError, getRegisteredActionNames } from './actions.js';
9
7
  export { createContext } from './context.js';
10
8
  export { nexusVault } from '@nexus_js/security';
11
- export { resolveTenant } from './tenancy.js';
12
- export type { NexusContext, NexusLocals, CookieOptions } from './context.js';
13
- export type { TenancyConfig, TenantResolution } from './tenancy.js';
9
+ export type { NexusContext, CookieOptions } from './context.js';
14
10
  export type { RenderResult, RenderOptions } from './renderer.js';
15
11
  export { mergeRoutePretext } from './renderer.js';
16
- export { defineMetadata, escapeHtml } from './metadata.js';
17
- export type { MetadataInput, MetadataResult } from './metadata.js';
18
- export { defineHead, useHead, flushHead, renderHeadToString } from '@nexus_js/head';
19
- export type { HeadMeta, HeadContext } from '@nexus_js/head';
20
12
  export { registerDevRadarSink, emitDevRadar, sanitizeTelemetryValue, newTraceId } from './devradar.js';
21
13
  export type { DevRadarEvent, ActionCallPayload, ActionResultPayload, ActionErrorPayload, PretextProfilePayload, SecurityAuditPayload, SecurityReportPayload, SecurityReportCheck, RuneTelemetryPayload, } from './devradar.js';
22
- export { wrapExpressMiddleware, wrapExpressHandler } from './legacy-wrapper.js';
23
- export type { ExpressMiddleware } from './legacy-wrapper.js';
24
14
  export interface RequestLogInfo {
25
15
  method: string;
26
16
  path: string;
@@ -32,32 +22,6 @@ export interface RequestLogInfo {
32
22
  /** True when the route was served from a Server Action */
33
23
  isAction?: boolean;
34
24
  }
35
- /**
36
- * Custom route mount — handler is called before static files and SSR.
37
- * Compatible with `@nexus_js/graphql` createGraphQLHandler() and any other
38
- * Web-standard (Request → Response) handler.
39
- *
40
- * @example
41
- * import { createGraphQLHandler } from '@nexus_js/graphql';
42
- * mounts: [{ path: '/graphql', handler: createGraphQLHandler({ schema }) }]
43
- */
44
- export interface NexusMountDef {
45
- /**
46
- * URL path prefix to match. The handler is invoked when
47
- * `request.url.pathname === path` or starts with `path + '/'`.
48
- */
49
- path: string;
50
- /**
51
- * HTTP methods to handle. Default: all methods including OPTIONS
52
- * (needed for GraphQL CORS preflight).
53
- */
54
- methods?: string[];
55
- /**
56
- * Web-standard handler.
57
- * `nexusCtx` gives access to `secrets`, `locals`, `getCookie`, etc.
58
- */
59
- handler: (request: Request, nexusCtx: import('./context.js').NexusContext) => Promise<Response>;
60
- }
61
25
  export interface NexusServerOptions {
62
26
  /** Root directory of the Nexus app */
63
27
  root: string;
@@ -67,70 +31,19 @@ export interface NexusServerOptions {
67
31
  dev?: boolean;
68
32
  /** Static assets directory */
69
33
  publicDir?: string;
70
- /** Custom global CSS entry path relative to app root (overrides auto-discovery) */
71
- cssEntry?: string;
72
34
  /**
73
35
  * Called after each HTTP request completes.
74
36
  * Use this to implement a custom request logger in the CLI or integrations.
75
37
  * The server itself does NOT print request logs — the host controls formatting.
76
38
  */
77
39
  onRequest?: (info: RequestLogInfo) => void;
78
- /**
79
- * Custom route handlers mounted before static files and SSR.
80
- * Evaluated in order; the first matching mount wins.
81
- * Use for GraphQL endpoints, webhooks, or any non-Nexus HTTP handler.
82
- */
83
- mounts?: NexusMountDef[];
84
- /**
85
- * HTTP proxy fallback for legacy backend integration.
86
- * If a request doesn't match any Nexus route, mount, or static file,
87
- * forward it to this URL instead of returning 404.
88
- *
89
- * Use this for gradual migration: Nexus sits in front of your old backend,
90
- * handling new routes while forwarding unknown paths to the legacy system.
91
- *
92
- * @example { fallbackProxy: 'http://localhost:8080' }
93
- */
94
- fallbackProxy?: string;
95
40
  /**
96
41
  * From `nexus.config.ts` `security` — when `hardened: true`, HTML and API responses get baseline security headers.
97
42
  * `shieldLite`: unknown server action names return 403 (manifest + registry allowlist) instead of 404.
98
- * `csp`: extend the generated Content-Security-Policy with additional allowed sources per directive.
99
43
  */
100
44
  security?: {
101
45
  hardened?: boolean;
102
46
  shieldLite?: boolean;
103
- csp?: {
104
- /**
105
- * Extra origins for `style-src` — e.g. `['https://fonts.googleapis.com']` for Google Fonts.
106
- * Nexus always includes `'self' 'unsafe-inline'`; these are appended after.
107
- */
108
- additionalStyleSrc?: string[];
109
- /**
110
- * Extra origins for `font-src` — e.g. `['https://fonts.gstatic.com']` for Google Fonts files.
111
- * Nexus always includes `'self'`; these are appended after.
112
- */
113
- additionalFontSrc?: string[];
114
- /**
115
- * Extra origins for `script-src` — e.g. `['https://cdn.example.com']` for external scripts.
116
- */
117
- additionalScriptSrc?: string[];
118
- /**
119
- * Extra origins for `connect-src` — e.g. `['https://api.example.com']` for fetch/XHR/WS.
120
- * Nexus always includes `'self'`; these are appended after.
121
- */
122
- additionalConnectSrc?: string[];
123
- /**
124
- * Extra origins for `img-src` — e.g. `['https://cdn.example.com']` for external images.
125
- * Nexus always includes `'self' data: blob:`; these are appended after.
126
- */
127
- additionalImgSrc?: string[];
128
- /**
129
- * Extra sources for `frame-src` (after baseline `'self' blob:`).
130
- * Use for embeds, e.g. `['https://www.youtube-nocookie.com']`.
131
- */
132
- additionalFrameSrc?: string[];
133
- };
134
47
  };
135
48
  /**
136
49
  * Flush the HTML shell (head + skeleton) before `nxPretext` resolves — improves TTFB when Pretext is slow.
@@ -139,14 +52,6 @@ export interface NexusServerOptions {
139
52
  streamingPretext?: boolean;
140
53
  /** Merged into document import map for island `import()` resolution (from `nexus.config` `browser.importMap`). */
141
54
  browserImportMap?: Record<string, string>;
142
- /** Nexus Connect (SSE) endpoint configuration. */
143
- connect?: {
144
- /** Which browser origins may subscribe to `/_nexus/connect/*`. Default: `'self'` in production, `'*'` in dev. */
145
- corsOrigins?: 'self' | '*' | string[];
146
- };
147
- tenancy?: TenancyConfig & {
148
- vaultIsolation?: 'strict' | 'fallback';
149
- };
150
55
  }
151
56
  export declare function createNexusServer(opts: NexusServerOptions): Promise<{
152
57
  /** Starts listening. Resolves when the server is bound to the port. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmCH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvG,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAqBvB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACxD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kHAAkH;IAClH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAyCD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB;IAiP5D,uEAAuE;cAC7D,OAAO,CAAC,IAAI,CAAC;IAevB,gEAAgE;cAChD,OAAO,CAAC,IAAI,CAAC;aAWpB,IAAI;;GAMhB"}