@ruvyxa/adapter-firebase 1.1.4 → 1.1.5

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.
@@ -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;AAgBzF,0DAA0D;AAC1D,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AAElE,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAwKtE;eAmHc,QAAQ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgD,MAAM,cAAc,CAAA;AAiBzF,0DAA0D;AAC1D,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AAElE,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAwKtE;eA0Fc,QAAQ"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { CLIENT_BUNDLE_PREFIX, clientBuildOutput, documentCacheOptionsSource, isrTemporaryCacheSource, DEFAULT_SECURITY_HEADERS, IMMUTABLE_CACHE_CONTROL, nonPublishableStrategies, projectRelativeOutDir, PUBLIC_ASSET_CACHE_CONTROL, publicAssetGlobs, runtimeBuildPolicy, validateBuildContext, } from '@ruvyxa/core';
1
+ import { CLIENT_BUNDLE_PREFIX, clientBuildOutput, documentCacheOptionsSource, isrTemporaryCacheSource, platformDocumentStoreSource, DEFAULT_SECURITY_HEADERS, IMMUTABLE_CACHE_CONTROL, nonPublishableStrategies, projectRelativeOutDir, 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 firebase(options = {}) {
4
4
  const functionName = options.functionName ?? 'ruvyxaServer';
@@ -145,7 +145,7 @@ export function firebase(options = {}) {
145
145
  function firebaseHandlerSource(functionName, region, runtimePolicy, buildId) {
146
146
  return `import { onRequest } from 'firebase-functions/v2/https';
147
147
  import { createHandler, prerenderRelativePath } from './serverless-handler.mjs';
148
- import { applyPluginHttp, documentCacheHandler, loadActionModule, loadRouteModule } from './route-modules.mjs';
148
+ import { projectProxy, documentCacheHandler, loadActionModule, loadRouteModule } from './route-modules.mjs';
149
149
  import manifest from './manifest.mjs';
150
150
  import { createHash } from 'node:crypto';
151
151
  import { readFileSync, writeFileSync, mkdirSync, statSync } from 'node:fs';
@@ -159,44 +159,19 @@ const runtimePolicy = ${JSON.stringify(runtimePolicy ?? {})};
159
159
  const prerenderDir = path.join(import.meta.dirname, 'prerender');
160
160
  ${isrTemporaryCacheSource(buildId)}
161
161
 
162
- const readEntry = (htmlPath, revalidate) => {
163
- const html = readFileSync(htmlPath, 'utf8');
164
- const stale = Date.now() - statSync(htmlPath).mtimeMs >= revalidate * 1000;
165
- return { html, stale };
166
- };
167
-
168
- // Named rather than passed inline, so a project that declares \`cache.handler\`
169
- // can stand its own store in front of these. See \`documentCacheOptionsSource\`
170
- // in \`@ruvyxa/core\`; the registry supplies \`documentCacheHandler\`.
171
- const platformReadPrerendered = (pathname, revalidate = 60) => {
172
- const relative = prerenderRelativePath(pathname);
173
- if (relative === null) return null;
174
- for (const directory of [isrCacheDir, prerenderDir]) {
175
- try {
176
- return readEntry(path.join(directory, relative), revalidate);
177
- } catch {
178
- // try the deploy-time prerender output after the runtime cache
179
- }
180
- }
181
- return null;
182
- };
183
-
184
- const platformWritePrerendered = (pathname, html) => {
185
- const relative = prerenderRelativePath(pathname);
186
- if (relative === null) return;
187
- const htmlPath = path.join(isrCacheDir, relative);
188
- mkdirSync(path.dirname(htmlPath), { recursive: true });
189
- writeFileSync(htmlPath, html, 'utf8');
190
- };
162
+ ${platformDocumentStoreSource()}
191
163
 
192
164
  const handler = createHandler({
193
165
  routes: manifest.routes,
194
166
  middleware: runtimePolicy.middleware,
167
+ headers: runtimePolicy.headers,
168
+ redirects: runtimePolicy.redirects,
169
+ rewrites: runtimePolicy.rewrites,
195
170
  i18n: manifest.i18n,
196
171
  importPage: loadRouteModule,
197
172
  importApi: loadRouteModule,
198
173
  importAction: loadActionModule,
199
- pluginHttp: applyPluginHttp,
174
+ proxy: projectProxy,
200
175
  security: runtimePolicy.security,
201
176
  ${documentCacheOptionsSource('platformReadPrerendered', 'platformWritePrerendered')}
202
177
  // The project's own not-found page, pre-rendered by the build and carried
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.1.4",
3
+ "version": "1.1.5",
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",
@@ -60,7 +60,7 @@
60
60
  }
61
61
  },
62
62
  "dependencies": {
63
- "@ruvyxa/core": "^1.1.4"
63
+ "@ruvyxa/core": "^1.1.5"
64
64
  },
65
65
  "scripts": {
66
66
  "build": "tsc -p tsconfig.json",
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ import {
4
4
  clientBuildOutput,
5
5
  documentCacheOptionsSource,
6
6
  isrTemporaryCacheSource,
7
+ platformDocumentStoreSource,
7
8
  DEFAULT_SECURITY_HEADERS,
8
9
  IMMUTABLE_CACHE_CONTROL,
9
10
  nonPublishableStrategies,
@@ -217,7 +218,7 @@ function firebaseHandlerSource(
217
218
  ): string {
218
219
  return `import { onRequest } from 'firebase-functions/v2/https';
219
220
  import { createHandler, prerenderRelativePath } from './serverless-handler.mjs';
220
- import { applyPluginHttp, documentCacheHandler, loadActionModule, loadRouteModule } from './route-modules.mjs';
221
+ import { projectProxy, documentCacheHandler, loadActionModule, loadRouteModule } from './route-modules.mjs';
221
222
  import manifest from './manifest.mjs';
222
223
  import { createHash } from 'node:crypto';
223
224
  import { readFileSync, writeFileSync, mkdirSync, statSync } from 'node:fs';
@@ -231,44 +232,19 @@ const runtimePolicy = ${JSON.stringify(runtimePolicy ?? {})};
231
232
  const prerenderDir = path.join(import.meta.dirname, 'prerender');
232
233
  ${isrTemporaryCacheSource(buildId)}
233
234
 
234
- const readEntry = (htmlPath, revalidate) => {
235
- const html = readFileSync(htmlPath, 'utf8');
236
- const stale = Date.now() - statSync(htmlPath).mtimeMs >= revalidate * 1000;
237
- return { html, stale };
238
- };
239
-
240
- // Named rather than passed inline, so a project that declares \`cache.handler\`
241
- // can stand its own store in front of these. See \`documentCacheOptionsSource\`
242
- // in \`@ruvyxa/core\`; the registry supplies \`documentCacheHandler\`.
243
- const platformReadPrerendered = (pathname, revalidate = 60) => {
244
- const relative = prerenderRelativePath(pathname);
245
- if (relative === null) return null;
246
- for (const directory of [isrCacheDir, prerenderDir]) {
247
- try {
248
- return readEntry(path.join(directory, relative), revalidate);
249
- } catch {
250
- // try the deploy-time prerender output after the runtime cache
251
- }
252
- }
253
- return null;
254
- };
255
-
256
- const platformWritePrerendered = (pathname, html) => {
257
- const relative = prerenderRelativePath(pathname);
258
- if (relative === null) return;
259
- const htmlPath = path.join(isrCacheDir, relative);
260
- mkdirSync(path.dirname(htmlPath), { recursive: true });
261
- writeFileSync(htmlPath, html, 'utf8');
262
- };
235
+ ${platformDocumentStoreSource()}
263
236
 
264
237
  const handler = createHandler({
265
238
  routes: manifest.routes,
266
239
  middleware: runtimePolicy.middleware,
240
+ headers: runtimePolicy.headers,
241
+ redirects: runtimePolicy.redirects,
242
+ rewrites: runtimePolicy.rewrites,
267
243
  i18n: manifest.i18n,
268
244
  importPage: loadRouteModule,
269
245
  importApi: loadRouteModule,
270
246
  importAction: loadActionModule,
271
- pluginHttp: applyPluginHttp,
247
+ proxy: projectProxy,
272
248
  security: runtimePolicy.security,
273
249
  ${documentCacheOptionsSource('platformReadPrerendered', 'platformWritePrerendered')}
274
250
  // The project's own not-found page, pre-rendered by the build and carried