@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 +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +11 -2
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
|
-
|
|
7
|
+
npm run build -- --adapter firebase
|
|
8
8
|
firebase deploy --only hosting,functions
|
|
9
9
|
```
|
|
10
10
|
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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.
|
|
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.
|
|
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(
|
|
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) => {
|