zova-module-a-ssrserver 5.1.24 → 5.1.25

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/dist/index.js CHANGED
@@ -61,13 +61,9 @@ var ServiceSsrHandler = (_dec$1 = Service(), _dec2$1 = BeanInfo({ module: "a-ssr
61
61
  const route = await this.$$sysRouter.resolveRoute(pagePathFull, true, false);
62
62
  if (!route) return;
63
63
  const ssrProfile = resolveSsrProfile(route.meta.ssrProfile, this.sys.env.SSR_PROFILE);
64
- const ssrProfileOptions = resolveSsrProfileOptions(ssrProfile, this.sys.config.ssr.profiles, route.meta.ssrProfileOptions);
64
+ const ssrProfileOptions = resolveSsrProfileOptions(ssrProfile, this.sys.config.ssr.profiles, route.meta.ssrProfileOptions, route.meta.locale);
65
65
  if (ssrProfile === "session") options.res.setHeader("cache-control", "private, no-store");
66
- const state = {
67
- ...options.state,
68
- ssrProfile,
69
- ssrProfileOptions
70
- };
66
+ const state = { ...options.state };
71
67
  const { serverEntry, renderToString, renderTemplate } = this._handlerInstance;
72
68
  const onRenderedList = [];
73
69
  const ssrContext = {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/service/ssrHandler.ts","../src/monkeySys.ts","../src/.metadata/index.ts"],"sourcesContent":["var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { catchError } from '@cabloy/utils';\nimport fse from 'fs-extra';\nimport ms from 'ms';\nimport path, { basename } from 'node:path';\nimport { pathToFileURL } from 'node:url';\nimport { BeanBase, cast, Use } from 'zova';\nimport { Service } from 'zova-module-a-bean';\nimport { resolveSsrProfile, resolveSsrProfileOptions } from 'zova-module-a-ssr';\nconst jsRE = /\\.js$/;\nconst cssRE = /\\.css$/;\nconst woffRE = /\\.woff$/;\nconst woff2RE = /\\.woff2$/;\nconst gifRE = /\\.gif$/;\nconst jpgRE = /\\.jpe?g$/;\nconst pngRE = /\\.png$/;\nexport let ServiceSsrHandler = (_dec = Service(), _dec2 = __z_BeanInfo({\n module: \"a-ssrserver\"\n}), _dec3 = Use(\"a-router.sys.router\"), _dec4 = Reflect.metadata(\"design:type\", typeof SysRouter === \"undefined\" ? Object : SysRouter), _dec(_class = _dec2(_class = (_class2 = class ServiceSsrHandler extends BeanBase {\n constructor(...args) {\n super(...args);\n this._siteAssetDir = void 0;\n this._handlerPromise = void 0;\n this._handlerInstance = void 0;\n this._clientManifest = void 0;\n this._ssrModulesZovaCache = {};\n _initializerDefineProperty(this, \"$$sysRouter\", _descriptor, this);\n }\n __init__(siteAssetDir) {\n this._siteAssetDir = siteAssetDir;\n }\n __dispose__() {\n this.dispose();\n }\n dispose() {\n this.sys.close();\n this._handlerInstance = undefined;\n }\n async resolvePath(filename) {\n if (filename === '') filename = 'index.html';\n // assets\n const fileAsset = path.join(this._siteAssetDir, 'client', filename);\n if (await fse.exists(fileAsset)) return fileAsset;\n // not found\n return undefined;\n }\n async render(options) {\n // resolve route\n const pagePathFull = options.state?.pagePathFull ?? this.sys.util.getPagePathFromAbsoluteUrl(options.req.url);\n const route = await this.$$sysRouter.resolveRoute(pagePathFull, true, false);\n if (!route) return;\n const ssrProfile = resolveSsrProfile(route.meta.ssrProfile, this.sys.env.SSR_PROFILE);\n const ssrProfileOptions = resolveSsrProfileOptions(ssrProfile, this.sys.config.ssr.profiles, route.meta.ssrProfileOptions);\n if (ssrProfile === 'session') {\n options.res.setHeader('cache-control', 'private, no-store');\n }\n const state = {\n ...options.state,\n ssrProfile,\n ssrProfileOptions\n };\n // handler\n const {\n serverEntry,\n renderToString,\n renderTemplate\n } = this._handlerInstance;\n // ssrContext\n const onRenderedList = [];\n const ssrContext = {\n ...options,\n state,\n _meta: {},\n onRendered: fn => {\n onRenderedList.push(fn);\n }\n };\n let renderFn;\n let runtimePageContent = '';\n let renderedError;\n let onRenderedFlushed = false;\n let renderedFinalized = false;\n try {\n // render\n renderFn = await serverEntry(ssrContext);\n const [runtimePageContentInner, err] = await catchError(() => {\n return renderToString(renderFn, ssrContext);\n });\n if (runtimePageContentInner) {\n runtimePageContent = runtimePageContentInner;\n }\n const error = ssrContext._meta.renderError ?? err;\n renderedError = error;\n onRenderedList.forEach(fn => {\n fn(error);\n });\n onRenderedFlushed = true;\n cast(ssrContext).rendered(error);\n renderedFinalized = true;\n if (error) {\n if (error instanceof Error) throw error;\n return error;\n }\n ssrContext._meta.runtimePageContent = runtimePageContent;\n\n // @vitejs/plugin-vue injects code into a component's setup() that registers\n // itself on ctx.modules. After the render, ctx.modules would contain all the\n // components that have been instantiated during this render call.\n const modules = cast(ssrContext).modules;\n if (modules) {\n ssrContext._meta.endingHeadTags += this._renderModulesPreload_zova(modules, {\n ssrContext\n });\n ssrContext._meta.endingHeadTags += this._renderModulesPreload(modules, {\n ssrContext\n });\n }\n const html = renderTemplate(ssrContext);\n\n // responseCache\n if (ssrProfile === 'public') {\n await this._renderPublicResponseCache(options, ssrProfileOptions);\n }\n\n // todo: ssg\n\n return html;\n } finally {\n const context = cast(ssrContext);\n if (!onRenderedFlushed) {\n onRenderedList.forEach(fn => {\n fn(renderedError);\n });\n }\n if (!renderedFinalized && typeof context.rendered === 'function') {\n context.rendered(renderedError);\n }\n onRenderedList.length = 0;\n this._clearSsrContext(context);\n renderFn = undefined;\n }\n }\n _clearSsrContext(context) {\n context.modules?.clear?.();\n if (context.__qMetaList?.length) {\n context.__qMetaList.length = 0;\n }\n context.state = undefined;\n context.stateDefer = undefined;\n context.performAction = undefined;\n context.rendered = undefined;\n context._meta = undefined;\n }\n async ensureReady(handlerNonce) {\n if (!this._handlerInstance) {\n if (!this._handlerPromise) {\n this._handlerPromise = this._prepareHandler(handlerNonce);\n }\n this._handlerInstance = await this._handlerPromise;\n }\n return this._handlerInstance;\n }\n async _prepareHandler(handlerNonce) {\n // handler\n const fileHandler = path.join(this._siteAssetDir, 'handler.js');\n const fileUrl = `${pathToHref(fileHandler)}?${handlerNonce}`;\n const handlerInstance = await import(/* @vite-ignore */fileUrl);\n // clientManifest\n const fileManifest = path.join(this._siteAssetDir, 'quasar.manifest.json');\n const contentManifest = await fse.readFile(fileManifest, {\n encoding: 'utf-8'\n });\n this._clientManifest = JSON.parse(contentManifest);\n // ok\n return handlerInstance;\n }\n _renderModulesPreload(modules, opts) {\n let links = '';\n const seen = new Set();\n modules.forEach(id => {\n const files = this._clientManifest[id];\n if (files === void 0) return;\n files.forEach(file => {\n if (seen.has(file) === true) return;\n seen.add(file);\n const filename = basename(file);\n if (this._clientManifest[filename] !== void 0) {\n for (const depFile of this._clientManifest[filename]) {\n if (seen.has(depFile) === false) {\n links += this._renderPreloadTag(depFile, opts);\n seen.add(depFile);\n }\n }\n }\n links += this._renderPreloadTag(file, opts);\n });\n });\n return links;\n }\n _renderModulesPreload_zova(modules2, opts) {\n let links = '';\n const seen = /* @__PURE__ */new Set();\n modules2.forEach(id => {\n if (!id.startsWith('@@')) return;\n if (seen.has(id) === true) return;\n let cache = this._ssrModulesZovaCache[id];\n if (!cache) {\n for (const key in this._clientManifest) {\n const prefix = `${id.substring(2)}-`;\n const postfix = '.js';\n if (key.startsWith(prefix) && key.endsWith(postfix)) {\n cache = this._resolveUrlPath(`/assets/${key}`);\n break;\n }\n }\n this._ssrModulesZovaCache[id] = cache;\n }\n links += this._renderPreloadTag(cache, opts);\n seen.add(id);\n });\n return links;\n }\n _resolveUrlPath(url) {\n let publicPath = this.sys.env.APP_PUBLIC_PATH;\n if (publicPath) publicPath = `/${publicPath}`;\n return publicPath + url;\n }\n _renderPreloadTag(file, _opts) {\n file = this.sys.util.getAbsoluteUrlFromPagePath(file, false, true);\n if (jsRE.test(file) === true) {\n return `<link rel=\"modulepreload\" href=\"${file}\" crossorigin>`;\n }\n if (cssRE.test(file) === true) {\n return `<link rel=\"stylesheet\" href=\"${file}\" crossorigin>`;\n }\n if (woffRE.test(file) === true) {\n return `<link rel=\"preload\" href=\"${file}\" as=\"font\" type=\"font/woff\" crossorigin>`;\n }\n if (woff2RE.test(file) === true) {\n return `<link rel=\"preload\" href=\"${file}\" as=\"font\" type=\"font/woff2\" crossorigin>`;\n }\n if (gifRE.test(file) === true) {\n return `<link rel=\"preload\" href=\"${file}\" as=\"image\" type=\"image/gif\" crossorigin>`;\n }\n if (jpgRE.test(file) === true) {\n return `<link rel=\"preload\" href=\"${file}\" as=\"image\" type=\"image/jpeg\" crossorigin>`;\n }\n if (pngRE.test(file) === true) {\n return `<link rel=\"preload\" href=\"${file}\" as=\"image\" type=\"image/png\" crossorigin>`;\n }\n return '';\n }\n async _renderPublicResponseCache(options, ssrProfileOptions) {\n const {\n res\n } = options;\n const responseCache = ssrProfileOptions.responseCache;\n if (responseCache === false) return;\n // expires\n const responseCacheExpires = responseCache.expires ?? 0;\n const expires = typeof responseCacheExpires === 'string' ? ms(responseCacheExpires) / 1000 : responseCacheExpires;\n if (expires === 0) {\n res.setHeader('cache-control', 'no-cache, no-store, must-revalidate');\n } else {\n res.setHeader('cache-control', `public, max-age=${expires}`);\n }\n }\n}, _descriptor = _applyDecoratedDescriptor(_class2.prototype, \"$$sysRouter\", [_dec3, _dec4], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _class2)) || _class) || _class);\nexport function pathToHref(fileName) {\n return pathToFileURL(fileName).href;\n // return Path.sep === '\\\\' ? pathToFileURL(fileName).href : fileName;\n}","import { BeanSimple } from 'zova';\nimport { ServiceSsrHandler } from './service/ssrHandler.js';\nexport class MonkeySys extends BeanSimple {\n async sysInitialize() {\n this.sys.meta.$getSsrHandler = async siteAssetDir => {\n return await this.sys.bean._getBean(ServiceSsrHandler, false, siteAssetDir);\n };\n }\n}","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** service: begin */\nexport * from '../service/ssrHandler.js';\nimport 'zova-module-a-bean';\n/** service: end */\n/** service: begin */\nimport { ServiceSsrHandler } from '../service/ssrHandler.js';\nimport 'zova';\n/** service: end */\n/** monkeySys: begin */\nexport * from '../monkeySys.js';\n/** monkeySys: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleASsrserver = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-ssrserver\"\n}), _dec(_class = _dec2(_class = class ScopeModuleASsrserver extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/service/ssrHandler.ts","../src/monkeySys.ts","../src/.metadata/index.ts"],"sourcesContent":["var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { catchError } from '@cabloy/utils';\nimport fse from 'fs-extra';\nimport ms from 'ms';\nimport path, { basename } from 'node:path';\nimport { pathToFileURL } from 'node:url';\nimport { BeanBase, cast, Use } from 'zova';\nimport { Service } from 'zova-module-a-bean';\nimport { resolveSsrProfile, resolveSsrProfileOptions } from 'zova-module-a-ssr';\nconst jsRE = /\\.js$/;\nconst cssRE = /\\.css$/;\nconst woffRE = /\\.woff$/;\nconst woff2RE = /\\.woff2$/;\nconst gifRE = /\\.gif$/;\nconst jpgRE = /\\.jpe?g$/;\nconst pngRE = /\\.png$/;\nexport let ServiceSsrHandler = (_dec = Service(), _dec2 = __z_BeanInfo({\n module: \"a-ssrserver\"\n}), _dec3 = Use(\"a-router.sys.router\"), _dec4 = Reflect.metadata(\"design:type\", typeof SysRouter === \"undefined\" ? Object : SysRouter), _dec(_class = _dec2(_class = (_class2 = class ServiceSsrHandler extends BeanBase {\n constructor(...args) {\n super(...args);\n this._siteAssetDir = void 0;\n this._handlerPromise = void 0;\n this._handlerInstance = void 0;\n this._clientManifest = void 0;\n this._ssrModulesZovaCache = {};\n _initializerDefineProperty(this, \"$$sysRouter\", _descriptor, this);\n }\n __init__(siteAssetDir) {\n this._siteAssetDir = siteAssetDir;\n }\n __dispose__() {\n this.dispose();\n }\n dispose() {\n this.sys.close();\n this._handlerInstance = undefined;\n }\n async resolvePath(filename) {\n if (filename === '') filename = 'index.html';\n // assets\n const fileAsset = path.join(this._siteAssetDir, 'client', filename);\n if (await fse.exists(fileAsset)) return fileAsset;\n // not found\n return undefined;\n }\n async render(options) {\n // resolve route\n const pagePathFull = options.state?.pagePathFull ?? this.sys.util.getPagePathFromAbsoluteUrl(options.req.url);\n const route = await this.$$sysRouter.resolveRoute(pagePathFull, true, false);\n if (!route) return;\n const ssrProfile = resolveSsrProfile(route.meta.ssrProfile, this.sys.env.SSR_PROFILE);\n const ssrProfileOptions = resolveSsrProfileOptions(ssrProfile, this.sys.config.ssr.profiles, route.meta.ssrProfileOptions, route.meta.locale);\n if (ssrProfile === 'session') {\n options.res.setHeader('cache-control', 'private, no-store');\n }\n const state = {\n ...options.state\n };\n // handler\n const {\n serverEntry,\n renderToString,\n renderTemplate\n } = this._handlerInstance;\n // ssrContext\n const onRenderedList = [];\n const ssrContext = {\n ...options,\n state,\n _meta: {},\n onRendered: fn => {\n onRenderedList.push(fn);\n }\n };\n let renderFn;\n let runtimePageContent = '';\n let renderedError;\n let onRenderedFlushed = false;\n let renderedFinalized = false;\n try {\n // render\n renderFn = await serverEntry(ssrContext);\n const [runtimePageContentInner, err] = await catchError(() => {\n return renderToString(renderFn, ssrContext);\n });\n if (runtimePageContentInner) {\n runtimePageContent = runtimePageContentInner;\n }\n const error = ssrContext._meta.renderError ?? err;\n renderedError = error;\n onRenderedList.forEach(fn => {\n fn(error);\n });\n onRenderedFlushed = true;\n cast(ssrContext).rendered(error);\n renderedFinalized = true;\n if (error) {\n if (error instanceof Error) throw error;\n return error;\n }\n ssrContext._meta.runtimePageContent = runtimePageContent;\n\n // @vitejs/plugin-vue injects code into a component's setup() that registers\n // itself on ctx.modules. After the render, ctx.modules would contain all the\n // components that have been instantiated during this render call.\n const modules = cast(ssrContext).modules;\n if (modules) {\n ssrContext._meta.endingHeadTags += this._renderModulesPreload_zova(modules, {\n ssrContext\n });\n ssrContext._meta.endingHeadTags += this._renderModulesPreload(modules, {\n ssrContext\n });\n }\n const html = renderTemplate(ssrContext);\n\n // responseCache\n if (ssrProfile === 'public') {\n await this._renderPublicResponseCache(options, ssrProfileOptions);\n }\n\n // todo: ssg\n\n return html;\n } finally {\n const context = cast(ssrContext);\n if (!onRenderedFlushed) {\n onRenderedList.forEach(fn => {\n fn(renderedError);\n });\n }\n if (!renderedFinalized && typeof context.rendered === 'function') {\n context.rendered(renderedError);\n }\n onRenderedList.length = 0;\n this._clearSsrContext(context);\n renderFn = undefined;\n }\n }\n _clearSsrContext(context) {\n context.modules?.clear?.();\n if (context.__qMetaList?.length) {\n context.__qMetaList.length = 0;\n }\n context.state = undefined;\n context.stateDefer = undefined;\n context.performAction = undefined;\n context.rendered = undefined;\n context._meta = undefined;\n }\n async ensureReady(handlerNonce) {\n if (!this._handlerInstance) {\n if (!this._handlerPromise) {\n this._handlerPromise = this._prepareHandler(handlerNonce);\n }\n this._handlerInstance = await this._handlerPromise;\n }\n return this._handlerInstance;\n }\n async _prepareHandler(handlerNonce) {\n // handler\n const fileHandler = path.join(this._siteAssetDir, 'handler.js');\n const fileUrl = `${pathToHref(fileHandler)}?${handlerNonce}`;\n const handlerInstance = await import(/* @vite-ignore */fileUrl);\n // clientManifest\n const fileManifest = path.join(this._siteAssetDir, 'quasar.manifest.json');\n const contentManifest = await fse.readFile(fileManifest, {\n encoding: 'utf-8'\n });\n this._clientManifest = JSON.parse(contentManifest);\n // ok\n return handlerInstance;\n }\n _renderModulesPreload(modules, opts) {\n let links = '';\n const seen = new Set();\n modules.forEach(id => {\n const files = this._clientManifest[id];\n if (files === void 0) return;\n files.forEach(file => {\n if (seen.has(file) === true) return;\n seen.add(file);\n const filename = basename(file);\n if (this._clientManifest[filename] !== void 0) {\n for (const depFile of this._clientManifest[filename]) {\n if (seen.has(depFile) === false) {\n links += this._renderPreloadTag(depFile, opts);\n seen.add(depFile);\n }\n }\n }\n links += this._renderPreloadTag(file, opts);\n });\n });\n return links;\n }\n _renderModulesPreload_zova(modules2, opts) {\n let links = '';\n const seen = /* @__PURE__ */new Set();\n modules2.forEach(id => {\n if (!id.startsWith('@@')) return;\n if (seen.has(id) === true) return;\n let cache = this._ssrModulesZovaCache[id];\n if (!cache) {\n for (const key in this._clientManifest) {\n const prefix = `${id.substring(2)}-`;\n const postfix = '.js';\n if (key.startsWith(prefix) && key.endsWith(postfix)) {\n cache = this._resolveUrlPath(`/assets/${key}`);\n break;\n }\n }\n this._ssrModulesZovaCache[id] = cache;\n }\n links += this._renderPreloadTag(cache, opts);\n seen.add(id);\n });\n return links;\n }\n _resolveUrlPath(url) {\n let publicPath = this.sys.env.APP_PUBLIC_PATH;\n if (publicPath) publicPath = `/${publicPath}`;\n return publicPath + url;\n }\n _renderPreloadTag(file, _opts) {\n file = this.sys.util.getAbsoluteUrlFromPagePath(file, false, true);\n if (jsRE.test(file) === true) {\n return `<link rel=\"modulepreload\" href=\"${file}\" crossorigin>`;\n }\n if (cssRE.test(file) === true) {\n return `<link rel=\"stylesheet\" href=\"${file}\" crossorigin>`;\n }\n if (woffRE.test(file) === true) {\n return `<link rel=\"preload\" href=\"${file}\" as=\"font\" type=\"font/woff\" crossorigin>`;\n }\n if (woff2RE.test(file) === true) {\n return `<link rel=\"preload\" href=\"${file}\" as=\"font\" type=\"font/woff2\" crossorigin>`;\n }\n if (gifRE.test(file) === true) {\n return `<link rel=\"preload\" href=\"${file}\" as=\"image\" type=\"image/gif\" crossorigin>`;\n }\n if (jpgRE.test(file) === true) {\n return `<link rel=\"preload\" href=\"${file}\" as=\"image\" type=\"image/jpeg\" crossorigin>`;\n }\n if (pngRE.test(file) === true) {\n return `<link rel=\"preload\" href=\"${file}\" as=\"image\" type=\"image/png\" crossorigin>`;\n }\n return '';\n }\n async _renderPublicResponseCache(options, ssrProfileOptions) {\n const {\n res\n } = options;\n const responseCache = ssrProfileOptions.responseCache;\n if (responseCache === false) return;\n // expires\n const responseCacheExpires = responseCache.expires ?? 0;\n const expires = typeof responseCacheExpires === 'string' ? ms(responseCacheExpires) / 1000 : responseCacheExpires;\n if (expires === 0) {\n res.setHeader('cache-control', 'no-cache, no-store, must-revalidate');\n } else {\n res.setHeader('cache-control', `public, max-age=${expires}`);\n }\n }\n}, _descriptor = _applyDecoratedDescriptor(_class2.prototype, \"$$sysRouter\", [_dec3, _dec4], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _class2)) || _class) || _class);\nexport function pathToHref(fileName) {\n return pathToFileURL(fileName).href;\n // return Path.sep === '\\\\' ? pathToFileURL(fileName).href : fileName;\n}","import { BeanSimple } from 'zova';\nimport { ServiceSsrHandler } from './service/ssrHandler.js';\nexport class MonkeySys extends BeanSimple {\n async sysInitialize() {\n this.sys.meta.$getSsrHandler = async siteAssetDir => {\n return await this.sys.bean._getBean(ServiceSsrHandler, false, siteAssetDir);\n };\n }\n}","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** service: begin */\nexport * from '../service/ssrHandler.js';\nimport 'zova-module-a-bean';\n/** service: end */\n/** service: begin */\nimport { ServiceSsrHandler } from '../service/ssrHandler.js';\nimport 'zova';\n/** service: end */\n/** monkeySys: begin */\nexport * from '../monkeySys.js';\n/** monkeySys: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleASsrserver = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-ssrserver\"\n}), _dec(_class = _dec2(_class = class ScopeModuleASsrserver extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ssrHandler.d.ts","sourceRoot":"","sources":["../../src/service/ssrHandler.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAa,MAAM,MAAM,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAU5F,qBACa,iBAAkB,SAAQ,QAAQ;IAC7C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,oBAAoB,CAAW;IAGvC,WAAW,EAAE,SAAS,CAAC;IAEvB,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM;IAIvC,SAAS,CAAC,WAAW;IAId,OAAO;IAKR,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAS3D,MAAM,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAqG/F,OAAO,CAAC,gBAAgB;IAYX,WAAW,CAAC,YAAY,EAAE,MAAM;YAU/B,eAAe;IAa7B,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,0BAA0B;IAwBlC,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;YAiCX,0BAA0B;CAmBzC;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGnD"}
1
+ {"version":3,"file":"ssrHandler.d.ts","sourceRoot":"","sources":["../../src/service/ssrHandler.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAa,MAAM,MAAM,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAU5F,qBACa,iBAAkB,SAAQ,QAAQ;IAC7C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,oBAAoB,CAAW;IAGvC,WAAW,EAAE,SAAS,CAAC;IAEvB,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM;IAIvC,SAAS,CAAC,WAAW;IAId,OAAO;IAKR,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAS3D,MAAM,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAoG/F,OAAO,CAAC,gBAAgB;IAYX,WAAW,CAAC,YAAY,EAAE,MAAM;YAU/B,eAAe;IAa7B,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,0BAA0B;IAwBlC,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;YAiCX,0BAA0B;CAmBzC;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGnD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zova-module-a-ssrserver",
3
- "version": "5.1.24",
4
- "gitHead": "f56eaba77347037643b625c8e6c5af408ff2d495",
3
+ "version": "5.1.25",
4
+ "gitHead": "eb85d771ef75776a439e56df3af8be6a3a36c1c2",
5
5
  "description": "",
6
6
  "keywords": [
7
7
  "Zova Module"
@@ -4,15 +4,15 @@ export * from '../service/ssrHandler.js';
4
4
 
5
5
  import 'zova-module-a-bean';
6
6
  declare module 'zova-module-a-bean' {
7
-
7
+
8
8
  export interface IServiceRecord {
9
9
  'a-ssrserver:ssrHandler': never;
10
10
  }
11
11
 
12
-
12
+
13
13
  }
14
14
  declare module 'zova-module-a-ssrserver' {
15
-
15
+
16
16
  export interface ServiceSsrHandler {
17
17
  /** @internal */
18
18
  get scope(): ScopeModuleASsrserver;
@@ -21,8 +21,8 @@ declare module 'zova-module-a-ssrserver' {
21
21
  export interface ServiceSsrHandler {
22
22
  get $beanFullName(): 'a-ssrserver.service.ssrHandler';
23
23
  get $onionName(): 'a-ssrserver:ssrHandler';
24
-
25
- }
24
+
25
+ }
26
26
  }
27
27
  /** service: end */
28
28
  /** service: begin */
@@ -53,12 +53,12 @@ declare module 'zova' {
53
53
  export interface IBeanScopeRecord {
54
54
  'a-ssrserver': ScopeModuleASsrserver;
55
55
  }
56
-
57
-
58
56
 
59
-
60
57
 
61
-
58
+
59
+
60
+
61
+
62
62
  }
63
-
63
+
64
64
  /** scope: end */
@@ -64,14 +64,13 @@ export class ServiceSsrHandler extends BeanBase {
64
64
  ssrProfile,
65
65
  this.sys.config.ssr.profiles,
66
66
  route.meta.ssrProfileOptions,
67
+ route.meta.locale,
67
68
  );
68
69
  if (ssrProfile === 'session') {
69
70
  options.res.setHeader('cache-control', 'private, no-store');
70
71
  }
71
72
  const state = {
72
73
  ...options.state,
73
- ssrProfile,
74
- ssrProfileOptions,
75
74
  };
76
75
  // handler
77
76
  const { serverEntry, renderToString, renderTemplate } = this._handlerInstance;