@ruvyxa/adapter-firebase 1.0.25 → 1.0.27

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 CHANGED
@@ -4,7 +4,7 @@ Full-stack Firebase Hosting adapter for Ruvyxa. It publishes static assets to Fi
4
4
  rewrites dynamic requests to a generated second-generation HTTPS function.
5
5
 
6
6
  ```bash
7
- ruvyxa build --adapter firebase
7
+ npm run build -- --adapter firebase
8
8
  firebase deploy --only hosting,functions
9
9
  ```
10
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgD,MAAM,cAAc,CAAA;AAUzF,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAgI7E;eAqFc,eAAe"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgD,MAAM,cAAc,CAAA;AAWzF,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAgI7E;eA6Fc,eAAe"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { CLIENT_BUNDLE_PREFIX, clientBuildOutput, IMMUTABLE_CACHE_CONTROL, PUBLIC_ASSET_CACHE_CONTROL, publicAssetGlobs, validateBuildContext, } from '@ruvyxa/core';
1
+ import { CLIENT_BUNDLE_PREFIX, clientBuildOutput, IMMUTABLE_CACHE_CONTROL, PUBLIC_ASSET_CACHE_CONTROL, publicAssetGlobs, runtimeBuildPolicy, validateBuildContext, } from '@ruvyxa/core';
2
2
  /** Create a Firebase Hosting adapter backed by a second-generation HTTPS function. */
3
3
  export function firebaseAdapter(options = {}) {
4
4
  const functionName = options.functionName ?? 'ruvyxaServer';
@@ -76,7 +76,7 @@ export function firebaseAdapter(options = {}) {
76
76
  {
77
77
  kind: 'function',
78
78
  path: 'deploy/firebase/functions',
79
- handlerSource: firebaseHandlerSource(functionName, region),
79
+ handlerSource: firebaseHandlerSource(functionName, region, runtimeBuildPolicy(ctx)),
80
80
  },
81
81
  {
82
82
  kind: 'file',
@@ -112,7 +112,7 @@ export function firebaseAdapter(options = {}) {
112
112
  };
113
113
  }
114
114
  /** Firebase Functions v2 wrapper around the shared Ruvyxa serverless handler. */
115
- function firebaseHandlerSource(functionName, region) {
115
+ function firebaseHandlerSource(functionName, region, runtimePolicy) {
116
116
  return `import { onRequest } from 'firebase-functions/v2/https';
117
117
  import { createHandler, prerenderRelativePath } from './serverless-handler.mjs';
118
118
  import { loadRouteModule } from './route-modules.mjs';
@@ -121,6 +121,8 @@ import { readFileSync, writeFileSync, mkdirSync, statSync } from 'node:fs';
121
121
  import os from 'node:os';
122
122
  import path from 'node:path';
123
123
 
124
+ const runtimePolicy = ${JSON.stringify(runtimePolicy ?? {})};
125
+
124
126
  const prerenderDir = path.join(import.meta.dirname, 'prerender');
125
127
  const isrCacheDir = path.join(os.tmpdir(), 'ruvyxa-isr-cache');
126
128
 
@@ -132,6 +134,8 @@ const readEntry = (htmlPath, revalidate) => {
132
134
 
133
135
  const handler = createHandler({
134
136
  routes: manifest.routes,
137
+ middleware: runtimePolicy.middleware,
138
+ i18n: manifest.i18n,
135
139
  importPage: loadRouteModule,
136
140
  importApi: loadRouteModule,
137
141
  readPrerendered: (pathname, revalidate = 60) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ruvyxa/adapter-firebase",
3
- "version": "1.0.25",
3
+ "version": "1.0.27",
4
4
  "description": "Deploy full-stack Ruvyxa applications to Firebase Hosting with CDN assets and a generated Cloud Functions v2 backend.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -40,7 +40,7 @@
40
40
  }
41
41
  },
42
42
  "dependencies": {
43
- "@ruvyxa/core": "^1.0.25"
43
+ "@ruvyxa/core": "^1.0.27"
44
44
  },
45
45
  "scripts": {
46
46
  "build": "tsc -p tsconfig.json",
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@ import {
5
5
  IMMUTABLE_CACHE_CONTROL,
6
6
  PUBLIC_ASSET_CACHE_CONTROL,
7
7
  publicAssetGlobs,
8
+ runtimeBuildPolicy,
8
9
  validateBuildContext,
9
10
  } from '@ruvyxa/core'
10
11
 
@@ -115,7 +116,7 @@ export function firebaseAdapter(options: FirebaseAdapterOptions = {}): Adapter {
115
116
  {
116
117
  kind: 'function',
117
118
  path: 'deploy/firebase/functions',
118
- handlerSource: firebaseHandlerSource(functionName, region),
119
+ handlerSource: firebaseHandlerSource(functionName, region, runtimeBuildPolicy(ctx)),
119
120
  },
120
121
  {
121
122
  kind: 'file',
@@ -153,7 +154,11 @@ export function firebaseAdapter(options: FirebaseAdapterOptions = {}): Adapter {
153
154
  }
154
155
 
155
156
  /** Firebase Functions v2 wrapper around the shared Ruvyxa serverless handler. */
156
- function firebaseHandlerSource(functionName: string, region: string): string {
157
+ function firebaseHandlerSource(
158
+ functionName: string,
159
+ region: string,
160
+ runtimePolicy: unknown,
161
+ ): string {
157
162
  return `import { onRequest } from 'firebase-functions/v2/https';
158
163
  import { createHandler, prerenderRelativePath } from './serverless-handler.mjs';
159
164
  import { loadRouteModule } from './route-modules.mjs';
@@ -162,6 +167,8 @@ import { readFileSync, writeFileSync, mkdirSync, statSync } from 'node:fs';
162
167
  import os from 'node:os';
163
168
  import path from 'node:path';
164
169
 
170
+ const runtimePolicy = ${JSON.stringify(runtimePolicy ?? {})};
171
+
165
172
  const prerenderDir = path.join(import.meta.dirname, 'prerender');
166
173
  const isrCacheDir = path.join(os.tmpdir(), 'ruvyxa-isr-cache');
167
174
 
@@ -173,6 +180,8 @@ const readEntry = (htmlPath, revalidate) => {
173
180
 
174
181
  const handler = createHandler({
175
182
  routes: manifest.routes,
183
+ middleware: runtimePolicy.middleware,
184
+ i18n: manifest.i18n,
176
185
  importPage: loadRouteModule,
177
186
  importApi: loadRouteModule,
178
187
  readPrerendered: (pathname, revalidate = 60) => {