@_linked/server 2.14.0 → 2.14.2

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 (33) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/lib/esm/backend.js.map +1 -1
  3. package/lib/esm/index.js.map +1 -1
  4. package/lib/esm/ontologies/lincd-server.js.map +1 -1
  5. package/lib/esm/ontologies/lincd-server.register.js.map +1 -1
  6. package/lib/esm/package.js.map +1 -1
  7. package/lib/esm/shapes/LincdAPI.js +4 -1
  8. package/lib/esm/shapes/LincdAPI.js.map +1 -1
  9. package/lib/esm/shapes/LincdWebApp.js +4 -1
  10. package/lib/esm/shapes/LincdWebApp.js.map +1 -1
  11. package/lib/esm/shapes/LinkedServer.d.ts +22 -1
  12. package/lib/esm/shapes/LinkedServer.js +159 -79
  13. package/lib/esm/shapes/LinkedServer.js.map +1 -1
  14. package/lib/esm/shapes/filestores/LocalFileStore.js.map +1 -1
  15. package/lib/esm/shapes/quadstores/BackendAPIStore.js.map +1 -1
  16. package/lib/esm/types/RouteConfig.js.map +1 -1
  17. package/lib/esm/types.js.map +1 -1
  18. package/lib/esm/utils/NodeQuadStore.js.map +1 -1
  19. package/lib/esm/utils/Shapes.js.map +1 -1
  20. package/lib/esm/utils/accessUrl.js.map +1 -1
  21. package/lib/esm/utils/bootstrapEntry.d.ts +30 -2
  22. package/lib/esm/utils/bootstrapEntry.js +32 -2
  23. package/lib/esm/utils/bootstrapEntry.js.map +1 -1
  24. package/lib/esm/utils/releaseManifest.js.map +1 -1
  25. package/lib/esm/utils/resizeSource.js.map +1 -1
  26. package/lib/esm/utils/resizedImagesPurpose.js.map +1 -1
  27. package/lib/esm/utils/routeAssets.js.map +1 -1
  28. package/lib/esm/utils/spaFallback.js.map +1 -1
  29. package/lib/esm/utils/ssrCss.d.ts +55 -0
  30. package/lib/esm/utils/ssrCss.js +153 -0
  31. package/lib/esm/utils/ssrCss.js.map +1 -0
  32. package/lib/esm/utils/syncShapes.js.map +1 -1
  33. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LinkedServer.js","sourceRoot":"","sources":["../../../src/shapes/LinkedServer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LinkedServer.js","sourceRoot":"","sources":["../../../src/shapes/LinkedServer.tsx"],"names":[],"mappings":"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","sourcesContent":["'use strict';\nimport chalk from 'chalk';\nimport { timingSafeEqual } from 'crypto';\nimport events from 'events';\nimport express, { Express as ExpressServer } from 'express';\nimport fetchCookie from 'fetch-cookie';\nimport * as fsNative from 'fs';\nimport * as fs from 'fs/promises';\nimport { Server as HttpServer } from 'http';\n// Plan-011: imports from @_linked/cli now go through ./lifecycle (a\n// dynamic-import-free file) so Vite's SSR module graph doesn't pull\n// in the legacy webpack flow and emit dozens of unanalyzable-import\n// warnings on every boot.\nimport { getLincdPackages } from '@_linked/cli/lifecycle';\nimport { getPackageJSON } from '@_linked/cli/utils';\nimport type { LinkedConfig } from '@_linked/cli/interfaces';\nimport { AppContextProvider } from '@_linked/server-utils/components/AppContext';\nimport { BackendProvider } from '@_linked/server-utils/utils/BackendProvider';\nimport { JSONParser } from '@_linked/server-utils/utils/JSONParser';\nimport { JSONWriter } from '@_linked/server-utils/utils/JSONWriter';\nimport { Server } from '@_linked/server-utils/utils/Server';\nimport { ServerCallError } from '@_linked/server-utils/utils/ServerCallError';\nimport { ShapeProvider } from '@_linked/server-utils/utils/ShapeProvider';\nimport { Shape } from '@_linked/core/shapes/Shape';\nimport { LinkedErrorLogging } from '@_linked/core/utils/LinkedErrorLogging';\nimport {\n FileStorePurposes,\n LinkedFileStorage,\n} from '@_linked/core/utils/LinkedFileStorage';\nimport type { IFileStore } from '@_linked/core/interfaces/IFileStore';\nimport { getResizedImagesStore } from '../utils/resizedImagesPurpose.js';\nimport { LinkedStorage } from '@_linked/core/utils/LinkedStorage';\nimport { autoLoadOntologyData } from '@_linked/core/utils/Package';\nimport {\n getShapeClass,\n getSuperShapesClasses,\n} from '@_linked/core/utils/ShapeClass';\nimport path from 'path';\nimport {pathToFileURL} from 'node:url';\nimport process from 'process';\nimport * as React from 'react';\nimport { renderToPipeableStream, renderToStaticMarkup } from 'react-dom/server';\nimport { StaticRouter } from 'react-router-dom/server.js';\nimport { rimraf } from 'rimraf';\nimport sharp from 'sharp';\nimport {\n findStoredKey,\n resolveResizeSource,\n} from '../utils/resizeSource.js';\nimport { Transform } from 'stream';\nimport { CookieJar } from 'tough-cookie';\nimport { lincdServer } from '../ontologies/lincd-server.js';\nimport { linkedShape } from '../package.js';\nimport {\n resolveStaticAccessURL,\n staticAssetURL,\n} from '../utils/releaseManifest.js';\nimport {\n resolveBootstrapEntry,\n resolveViteMainEntry,\n resolveViteServingMode,\n} from '../utils/bootstrapEntry.js';\nimport { resolveRouteAssets } from '../utils/routeAssets.js';\nimport {\n resolveRouteComponent,\n ssrCssInlineUrls,\n ssrCssScope,\n} from '../utils/ssrCss.js';\nimport { indexShapesIntoMemory } from '../utils/Shapes.js';\nimport {\n installSpaFallback,\n repinSpaFallback,\n} from '../utils/spaFallback.js';\nimport { LincdAPI } from './LincdAPI.js';\nimport type { RoutesConfig, RouteConfig } from '../types/RouteConfig.js';\n\n//prevent errors in node.js when (s)css files are imported in js\nconst isProduction = process.env.NODE_ENV === 'production';\nconst isDevelopment = process.env.NODE_ENV === 'development';\n\ndeclare var globalThis: any;\n// Install a global fetch that persists cookies across redirects using a CookieJar.\n// This ensures server-side requests behave more like browsers when handling Set-Cookie + redirects.\nconst __lincdCookieJar = new CookieJar();\n// Wrap native fetch with fetch-cookie so it reads/writes cookies in the jar.\nconst __lincdFetchWithCookies = fetchCookie(fetch, __lincdCookieJar);\n\n// Expose (optionally) for debugging/tests; not required by app logic.\n(globalThis as any).__lincdCookieJar = __lincdCookieJar;\n\n// Set the global fetch used throughout the server code path\n(globalThis as any).fetch = __lincdFetchWithCookies;\n\nprocess.on('uncaughtException', (err) => {\n console.warn(chalk.red('Asynchronous error caught.'));\n console.error(err);\n\n // error logging\n LinkedErrorLogging.log(err);\n});\nprocess.on('unhandledRejection', (err) => {\n console.warn(chalk.red('Unhandled rejection caught.'));\n console.error(err);\n\n // error logging\n LinkedErrorLogging.log(err as Error);\n});\n\nprocess.on('warning', (e) => console.warn(e.stack));\n\n//allow more listeners for when we have many concurrent users\nevents.EventEmitter.prototype.setMaxListeners(500);\n\n// const jsdom = require(\"jsdom\");\n// const { JSDOM } = jsdom;\n// const { document } = (new JSDOM(`...`)).window;\n//\n// global['document'] = document;\nglobal['reactStaticRenderer'] = renderToStaticMarkup;\n\nautoLoadOntologyData(true);\n\n// Named explicitly: tsc emits `let X = class X`, and any later esbuild pass over that JS (Vite's\n// SSR `define` replacement runs one on every file mentioning a defined `process.env.*`) renames\n// the inner binding to `X2`, which would otherwise become this shape's IRI.\n@linkedShape({name: 'LinkedServer'})\nexport class LinkedServer extends Shape {\n /**\n * indicates that instances of this shape need to have this rdf.type\n */\n static targetClass = lincdServer.LincdServer;\n private config: LinkedConfig;\n private cachedPaths: Map<string, string> = new Map();\n private assets: { [key: string]: string } & {\n manifest?: Record<string, string>;\n };\n /**\n * Whether pages are served by the live Vite dev server rather than a\n * `vite build` on disk. Decided once in `start()` — see\n * utils/bootstrapEntry `resolveViteServingMode`.\n */\n private viteDevServer = false;\n /**\n * Base URL every asset this build produced is served from — resolved once in\n * `start()` and kept so per-request route chunks land on the same base as\n * the entry tags. Empty means origin-relative (development, and any app\n * serving its own bundles).\n */\n private staticAccessURL: string = '';\n /**\n * Whether `assets['main.js']` came from a Vite build. Vite always emits the\n * entry as an ES module, so it has to be bootstrapped with\n * `bootstrapModules`; a legacy webpack bundle is a classic script and must\n * keep `bootstrapScripts`.\n */\n private mainEntryIsModule = false;\n protected server: ExpressServer;\n protected httpServer: HttpServer;\n private package: any;\n private cacheWebpack: boolean;\n private cssMode = 'scss-modules';\n private analyse: boolean = false;\n private shapeProviders: Map<string, ShapeProvider[]> = new Map();\n private genericProviders: Map<string, BackendProvider> = new Map();\n //from resizedFileName to full resized path (CDN or similar)\n private resizePathsMap: Map<string, string> = new Map();\n private api: LincdAPI;\n\n /**\n * yarn linked start sends the contents of linked.config.js as an object to this constructor\n * @param n\n */\n constructor(config?: LinkedConfig | string | { id?: string }) {\n super(\n typeof config === 'string' || (config && 'id' in config)\n ? config\n : undefined\n );\n if (config && typeof config !== 'string' && !('id' in config)) {\n // The absence of `id` is the runtime discriminator for a LinkedConfig;\n // the widened `{id?: string}` member of the union keeps TS from narrowing\n // to it on that check alone.\n this.config = config as LinkedConfig;\n }\n\n this.api = new LincdAPI({ id: process.env.SITE_ROOT + '/api' });\n\n //Ensure the Server utility (for Server.call()) directly accesses\n // this server on the backend instead of going through a network call\n Server.setLocalServer(this);\n }\n\n /*async getLincdDependencies(): Promise<string[]> {\n\t\tlet lincdDependencies = [];\n\t\tlet dependencies = this.package.dependencies;\n\n\t\tawait Promise.all(\n\t\t\tObject.keys(dependencies).map((dependencyPkgName) => {\n\t\t\t\tlet modulePackageJson = getModulePackageJSON(dependencyPkgName);\n\t\t\t\tif (modulePackageJson['lincd']) {\n\t\t\t\t\tlincdDependencies.push(modulePackageJson.name);\n\t\t\t\t}\n\t\t\t\t// //TODO: also iteratively look into dependencies of this dependency\n\n\t\t\t\t// let packagePath;\n\t\t\t\t// try {\n\t\t\t\t// packagePath = require.resolve(`${dependencyPkgName}`);\n\t\t\t\t// } catch (err) {\n\t\t\t\t// console.warn('Could not find package ' + dependencyPkgName+'. Error: '+err.toString());\n\t\t\t\t// return;\n\t\t\t\t// }\n\t\t\t\t// packagePath = path.dirname(packagePath) + '/package.json'\n\t\t\t\t// return fs\n\t\t\t\t// .readFile(packagePath, 'utf-8')\n\t\t\t\t// .then((res) => {\n\t\t\t\t// let pkg = JSON.parse(res);\n\t\t\t\t// if (pkg['lincd']) {\n\t\t\t\t// lincdDependencies.push(pkg.name);\n\t\t\t\t// }\n\t\t\t\t\t// //TODO: also iteratively look into dependencies of this dependency\n\t\t\t\t\t// })\n\t\t\t\t\t// .catch((err) => {\n\t\t\t\t\t// console.log('Could not read package.json file: '+err);\n\t\t\t\t\t// });\n\t\t\t}),\n\t\t);\n\t\treturn lincdDependencies;\n\t}*/\n get app() {\n return this.server;\n }\n\n initPackage() {\n this.package = JSON.parse(\n fsNative.readFileSync(\n path.resolve(process.cwd(), 'package.json'),\n 'utf-8'\n )\n );\n }\n async initOnly() {\n await this.initOntologies();\n await this.initStores();\n\n this.initPackage();\n\n this.server = express();\n\n await this.initBackendProviders();\n\n await indexShapesIntoMemory();\n await this.materializeShapesIntoStore();\n return this;\n }\n\n /**\n * Materialize this server's registered shapes into the RDF store as SHACL\n * (core `syncShapes` → pure `sh:NodeShape` + property shapes), so a running\n * app's app-data holds the shapes its instances validate/query against\n * (plan-010 T1e.2). This is the canonical, uniform reuse+create mechanism:\n * whatever shapes the app package registers (published re-exports + generated)\n * get materialized on boot (and re-run on shape-file HMR).\n *\n * Gated to servers whose DEFAULT dataset is a **concrete** materializable store\n * (detected via `rawQuery`) — i.e. an app pointing at its app-data FusekiStore.\n * CN's default is the context-routing `AppDataRouter` (no `rawQuery`; a bare\n * `syncShapes` orphan-read would throw with no active project), so CN is skipped\n * here — it materializes its own pinned native shapes in its storage config.\n */\n private async materializeShapesIntoStore(): Promise<void> {\n // Opt-out via `linked.config` `syncShapesOnBoot` (default true); env\n // LINKED_SYNC_SHAPES_ON_BOOT overrides for deployment. CN sets\n // `syncShapesOnBoot: false` in its own linked.config — its default dataset is\n // a context-router that can't materialize context-free, and it syncs its own\n // pinned shapes separately (linked.backend.storage.js).\n const configFlag = (this.config as any)?.syncShapesOnBoot;\n const envFlag = process.env.LINKED_SYNC_SHAPES_ON_BOOT;\n if (configFlag === false || envFlag === 'false') {\n return;\n }\n const appData = LinkedStorage.getDefaultDataset();\n if (!appData) return;\n try {\n const {syncShapes} = await import('@_linked/core');\n // Explicit target: materialize EVERY registered shape into the app's own\n // data store regardless of per-shape routing/pins — syncShapes(ds) threads\n // ds through the orphan-read + every delete→recreate. (No reliance on\n // \"whatever the default resolves to per shape\".)\n const thunks = await syncShapes(appData as any);\n // Batched (not all-at-once) so we don't overwhelm Fuseki — the API hands\n // back unexecuted thunks precisely so the caller paces them.\n for (let i = 0; i < thunks.length; i += 8) {\n await Promise.all(thunks.slice(i, i + 8).map((run) => run()));\n }\n console.log(\n `[LinkedServer] materialized ${thunks.length} shape(s) into app-data`,\n );\n } catch (err) {\n console.warn('[LinkedServer] shape materialization failed (non-fatal):', err);\n }\n }\n\n // async serveData(req,res) {\n // let nodeURI = `${req.protocol}://${req.get('host')}${req.originalUrl}`;\n //\n // let store = LinkedStorage.getDatasets().find(store => {\n // return nodeURI.includes(store.namedNode.uri)\n // })\n // }\n\n async start() {\n this.initPackage();\n // Static assets should come from the static store URL (versioned path),\n // not the upload store URL. An explicit STATIC_ACCESS_URL still wins;\n // otherwise the release manifest `linked build-app` wrote next to the\n // bundle says which published release this build is, so a deployment no\n // longer has to repeat that URL by hand. See utils/releaseManifest.\n // In development we deliberately use a relative path so bundle URLs work\n // regardless of which PORT the dev server bound to (browsers resolve\n // relative URLs against window.location.origin). Hardcoding SITE_ROOT\n // baked :4000 into every SSR'd HTML page.\n const isDevAssets = process.env.NODE_ENV === 'development';\n const staticAccessURL = resolveStaticAccessURL({\n isDevAssets,\n appRoot: process.cwd(),\n fileStoreAccessURL: LinkedFileStorage.accessURL,\n });\n this.staticAccessURL = staticAccessURL;\n const staticAsset = (assetPath: string) =>\n staticAssetURL(staticAccessURL, assetPath);\n\n // Bundle/manifest read (plan-011: Vite is the only supported build).\n // Vite manifest lives at public/bundles/.vite/manifest.json.\n this.assets = {\n 'main.js':\n staticAsset('/bundles/main.bundle.js') + '?v=' + this.package.version,\n 'main.css': staticAsset('/bundles/main.css'),\n };\n // Dev or built, decided once and reused by the render path — see\n // utils/bootstrapEntry. In development the build manifest is not read:\n // one left on disk by an earlier `vite build` would otherwise swap in\n // stale built CSS while Vite serves the live styles.\n const servingMode = resolveViteServingMode({\n viteConfig: (this.config.server as any)?.vite,\n nodeEnv: process.env.NODE_ENV,\n readManifest: () => {\n try {\n const viteManifestPath = path.resolve(\n process.cwd(),\n 'public/bundles/.vite/manifest.json'\n );\n if (!fsNative.existsSync(viteManifestPath)) return null;\n return JSON.parse(fsNative.readFileSync(viteManifestPath, 'utf-8'));\n } catch (err) {\n console.warn('Could not load bundle manifest:', err);\n return null;\n }\n },\n });\n this.viteDevServer = servingMode.viteDevServer;\n if (servingMode.manifest) {\n const viteManifest = servingMode.manifest as Record<string, any>;\n this.assets.manifest = viteManifest;\n // Resolve main entry per Vite manifest shape:\n // { \"src/index.tsx\": { file: \"assets/main-<hash>.js\", css: [...] } }\n const mainEntry = resolveViteMainEntry(viteManifest);\n if (mainEntry?.file) {\n this.assets['main.js'] = staticAsset(`/bundles/${mainEntry.file}`);\n this.mainEntryIsModule = true;\n }\n if (mainEntry?.css?.[0]) {\n this.assets['main.css'] = staticAsset(`/bundles/${mainEntry.css[0]}`);\n }\n }\n // Vite dev marker: the HTML renderer skips pre-built CSS/JS link tags,\n // because Vite handles asset injection itself.\n if (this.viteDevServer) {\n this.assets['__viteDev'] = '1';\n }\n\n const isProduction = process.env.NODE_ENV === 'production';\n if (!isProduction && this.config.cssMode === 'tailwind') {\n this.assets['tailwind-cdn'] = 'https://cdn.tailwindcss.com';\n }\n\n //for multicore we use PM2, and each instance needs to listen to port 0.\n // whilst the main thread will listen to env.PORT automatically\n // const PORT = this.config.multiCore ? 0 : process.env.PORT || 3000;\n // const publicPort = process.env.PORT || 3000;\n //update: back to original setup. multicore handles itself inside @semantu/multicore\n const PORT = parseInt(process.env.PORT) || 4000;\n this.server = express();\n\n const dirName = path.resolve(process.cwd(), 'frontend');\n\n await this.initOntologies();\n //TODO: when we do not keep all data in memory (and thus do not need to rely on in memory data for page requests), we can possibly remove await here, since all stores handle their own initialisation before executing commands\n await this.initStores();\n\n this.initGarbageCollection();\n // this.app.use((req, res, next) => {\n // console.log('start request');\n // next();\n // });\n // before controllers\n await this.initBackendProviders();\n\n await indexShapesIntoMemory();\n await this.materializeShapesIntoStore();\n\n //START OF EXPRESS ROUTES AND MIDDLEWARE\n\n //use cors\n // var corsOptions = {\n // origin: ['http://localhost:4001', 'https://www.mynd.site'],\n // optionsSuccessStatus: 200, // some legacy browsers (IE11, various SmartTVs) choke on 204\n // };\n // //accept JSON bodies\n // this.server.use(bodyParser.json({limit: '50mb'}));\n this.server.use(express.json({ limit: '50mb' }));\n\n // this.server.use(cors(corsOptions));\n //\n // //compress server output with gzip,\n //UPDATE ive set level to 2 (low compression fast speed) because responses were taking too long (98% of server time was used by compress)\n // this.server.use(compress({level: 2}));\n\n await this.callGenericBackendProvidersMethod('setupBeforeControllers');\n\n // Vite middleware (plan 010): when the user app starts via Vite\n // (`linked start --vite`), the orchestrator passes the Vite handle\n // through config.server.viteMiddleware. We mount it and skip the\n // entire webpack-dev-middleware setup below.\n const viteMiddleware = (this.config.server as any)?.viteMiddleware;\n if (viteMiddleware) {\n this.server.use(viteMiddleware);\n }\n\n // Plan-011: legacy webpack-dev-middleware branch removed. Under Vite\n // (the only supported dev path now) `viteMiddleware` is set, which\n // previously forced `skipBuild = true` and made this whole block\n // dead. Removing it ends the static dependency on @_linked/cli/\n // config-webpack-app (full of dynamic imports Vite couldn't analyze)\n // and shrinks LinkedServer's import surface considerably.\n\n // //map URL routes to file paths\n const oneYear = 1000 * 60 * 60 * 24 * 365; // in milliseconds\n const oneMonth = 1000 * 60 * 60 * 24 * 30; // in milliseconds\n this.server.use(\n '/public',\n express.static('./public', {\n maxAge: oneYear, // Tell browser to cache for 1 year\n immutable: true, // Suggest that the content won't change\n })\n );\n\n this.server.use(\n '/uploads',\n express.static('./data/uploads', {\n maxAge: oneYear, // Tell browser to cache for 1 year\n immutable: true, // Suggest that the content won't change\n })\n );\n this.server.use('/', express.static('./public/root'));\n this.server.use(\n '/favicon.ico',\n express.static('./public/favicon.ico', {\n maxAge: oneMonth, // Tell browser to cache for 1 year\n immutable: true, // Suggest that the content won't change\n })\n );\n this.server.use('/.well-known', express.static('./public/.well-known'));\n\n // this.server.post('/data',this.handleErrorsJson(async (req,res) => this.serveData(req, res)));\n this.server.get('/resized/*', async (req, res) => {\n this.resizeImage(req, res);\n });\n\n // Scoped-package variants (@scope/pkg). Register BEFORE the unscoped\n // routes — Express `:pkg` won't consume slashes, so a call to\n // `/call/@_linked/auth/signinDev` would otherwise fall through to the\n // 3-segment `:pkg/:shape/:method` route and be misinterpreted as a\n // shape-method call (pkg=`@_linked`, shape=`auth`). These handlers\n // recognise the `@scope/pkg` prefix and rebuild the full package name\n // before dispatching to the same handler used for unscoped packages.\n this.server.post(\n '/call/@:scope/:pkg/:method',\n this.handleErrorsJson(async (req, res) => {\n req.params.pkg = `@${req.params.scope}/${req.params.pkg}`;\n return this.processBackendMethodCall(req, res);\n })\n );\n this.server.post(\n '/call/@:scope/:pkg/:shape/:method',\n this.handleErrorsJson(async (req, res) => {\n req.params.pkg = `@${req.params.scope}/${req.params.pkg}`;\n return this.processShapeMethodCall(req, res);\n })\n );\n this.server.post(\n '/call/:pkg/:method',\n this.handleErrorsJson(async (req, res) =>\n this.processBackendMethodCall(req, res)\n )\n );\n this.server.post(\n '/call/:pkg/:shape/:method',\n this.handleErrorsJson(async (req, res) =>\n this.processShapeMethodCall(req, res)\n )\n );\n this.server.post(\n '/api/:method/:action?',\n this.handleErrorsJson(async (req, res) =>\n this.processAPICall(req, res, 'post')\n )\n );\n this.server.get(\n '/api/:method/:action?',\n this.handleErrorsJson(async (req, res) =>\n this.processAPICall(req, res, 'get')\n )\n );\n // this.server.post(\n // '/api/query/:method',\n // this.handleErrorsJson(async (req, res) => this.processQuery(req, res)),\n // );\n\n // now that all the middleware is defined, we initialise the providers, before we define a catch-all route\n // before catch all\n // await this.initBackendProviders();\n await this.callGenericBackendProvidersMethod(\n 'setupBeforeCatchAllControllers'\n );\n\n // HEAD catch-all for maintenance/health check (client fetches SITE_ROOT with method: HEAD)\n this.server.head('__health', (_req, res) => {\n res.sendStatus(200);\n });\n\n // CN control channel (plan-010 T1b.3). Present only when CN spawned this\n // process with a shared secret (CN_APP_ADMIN_SECRET); a standalone app run\n // without the secret leaves the channel closed (404). Auth is the\n // x-cn-admin-secret header matching that env value.\n const adminSecret = process.env.CN_APP_ADMIN_SECRET;\n // Constant-time compare so the secret can't be recovered by timing the 401\n // response. timingSafeEqual requires equal-length buffers, so guard length.\n const secretMatches = (provided: string | undefined): boolean => {\n if (!adminSecret || !provided) return false;\n const a = Buffer.from(provided);\n const b = Buffer.from(adminSecret);\n return a.length === b.length && timingSafeEqual(a, b);\n };\n const requireAdmin = (req: express.Request, res: express.Response): boolean => {\n if (!adminSecret) {\n res.sendStatus(404); // no control channel in this mode\n return false;\n }\n if (!secretMatches(req.get('x-cn-admin-secret'))) {\n res.sendStatus(401);\n return false;\n }\n return true;\n };\n this.server.get('/admin/health', (req, res) => {\n if (!requireAdmin(req, res)) return;\n res.status(200).json({ status: 'ok' });\n });\n this.server.post('/admin/restart', (req, res) => {\n if (!requireAdmin(req, res)) return;\n res.sendStatus(202);\n // CN's provisioner respawns on exit (see ChildProcessProvisioner).\n setTimeout(() => process.exit(0), 50);\n });\n\n // after controller\n await this.callGenericBackendProvidersMethod('setupAfterControllers');\n\n // The SPA catch-all goes on LAST. `setupAfterControllers` is a documented\n // hook for providers to register their own routes, so installing the\n // catch-all before it would shadow every GET route registered there —\n // answering them with the client shell at status 200.\n // An API-only backend (`linked start --api-only`) has no app to render:\n // without the catch-all, page requests get express's plain 404.\n if (!(this.config.server as any)?.apiOnly) {\n this.installSpaFallback();\n }\n\n //remove http(s):// and remove port :[port]\n const HOST = process.env.SITE_ROOT.replace(/https?:\\/\\//, '').replace(\n /:\\d+$/,\n ''\n );\n\n //backlog of 1024 means maximum of 1024 connections in the queue (higher than default)\n this.httpServer = this.server.listen({ port: PORT, backlog: 1024 }, () => {\n console.log(`Up and running at http://localhost:${PORT}`);\n // open(`http://localhost:${PORT}`)\n });\n // Ensure all inactive connections are terminated by the ALB, by setting this a few seconds higher than the ALB idle timeout\n this.httpServer.keepAliveTimeout = 60_000;\n // Ensure the headersTimeout is set higher than the keepAliveTimeout due to this nodejs regression bug: https://github.com/nodejs/node/issues/27363\n this.httpServer.headersTimeout = 61_000;\n\n this.httpServer.on('error', function (error) {\n if (error['syscall'] !== 'listen') {\n throw error;\n }\n const isPipe = (portOrPipe) => Number.isNaN(portOrPipe);\n const bind = isPipe(PORT) ? 'Pipe ' + PORT : 'Port ' + PORT;\n switch (error['code']) {\n case 'EACCES':\n console.error(bind + ' requires elevated privileges');\n process.exit(1);\n case 'EADDRINUSE':\n console.error(bind + ' is already in use');\n process.exit(1);\n default:\n throw error;\n }\n });\n return this;\n }\n\n async initOntologies() {}\n\n /**\n *\n * @returns\n * @todo Check if default file store is set, if not, set it\n */\n async initStores() {\n return Promise.all(\n LinkedStorage.getDatasets().map((store) => {\n return store.init ? store.init() : Promise.resolve();\n })\n );\n }\n\n // get generic backend providers for handle controller methods\n async callGenericBackendProvidersMethod(method: string, ...args: any[]) {\n for (let genericProvider of this.genericProviders.values()) {\n if (!genericProvider || !genericProvider[method]) {\n continue;\n }\n if (typeof genericProvider[method] == 'function') {\n await Promise.resolve(genericProvider[method](...args));\n }\n }\n }\n\n /**\n * Removes temporary nodes from memory if they've been seen twice\n * Current interval is once per hour.\n * So after 2 hours temporary nodes are removed.\n */\n initGarbageCollection() {\n // let seenLastTime:NodeSet<NamedNode> = null;\n // setInterval(() => {\n //\n // let tempNodes = new NodeSet<NamedNode>();\n // NamedNode.getAllNamedNodes().forEach(n => {\n // if(n.isTemporaryNode) {\n // if(seenLastTime && seenLastTime.has(n))\n // {\n // n.remove();\n // } else {\n // tempNodes.add(n);\n // }\n // }\n // })\n // seenLastTime = tempNodes;\n // }, 1000 * 10); //every 10 sec\n // // }, 1000 * 60 * 60); //every hour\n }\n async initBackendProviders() {\n //get all local workspace lincd packages, then filter to only those\n //in this app's dependency tree. This avoids loading npm-installed\n //legacy packages that may use an old version of the core.\n const allLocalPackages = getLincdPackages();\n const localPackageMap = new Map<\n string,\n { packageName: string; path: string }\n >(allLocalPackages.map((pkg) => [pkg.packageName, pkg]));\n const relevantPackages = this.filterPackagesByDependencyTree(\n localPackageMap,\n this.package\n );\n for (let [pkgName, pkg] of relevantPackages) {\n await this.indexPackageBackendProviders(pkgName);\n await this.indexLincdPackage(pkgName);\n }\n\n try {\n await fs\n .readFile(path.join(process.cwd(), 'package.json'), 'utf-8')\n .then(async (contents) => {\n let pkg = JSON.parse(contents);\n // Route through default ${pkg}/backend resolution. The app's\n // package.json `exports`./backend field handles dev vs prod:\n // \"exports\": {\n // \"./backend\": {\n // \"development\": \"./src/backend.ts\",\n // \"default\": \"./lib/esm/backend.js\"\n // }\n // }\n // Removed plan-010 D10: the source-direct\n // path.join(cwd, 'src', 'backend.ts') override that forced TS\n // runtime loading. Vite SSR's ssrLoadModule handles the\n // transform; production runs from lib/esm/.\n await this.indexPackageBackendProviders(pkg.name, false);\n });\n } catch (err) {\n console.warn(err);\n }\n }\n\n /**\n * Filters local workspace packages to only those reachable from the app's\n * dependency tree. Mirrors the logic used by `buildAll` in lincd-cli.\n */\n private filterPackagesByDependencyTree(\n allPackages: Map<string, { packageName: string; path: string }>,\n appPackageJson: any\n ): Map<string, { packageName: string; path: string }> {\n const relevantPackages = new Map<\n string,\n { packageName: string; path: string }\n >();\n const packagesToCheck = new Set<string>();\n const processedPackages = new Set<string>();\n\n // Start with direct dependencies from the app\n if (appPackageJson.dependencies) {\n for (const dep of Object.keys(appPackageJson.dependencies)) {\n if (allPackages.has(dep)) {\n packagesToCheck.add(dep);\n }\n }\n }\n\n // Recursively follow each package's dependencies\n while (packagesToCheck.size > 0) {\n const packageName = packagesToCheck.values().next().value;\n packagesToCheck.delete(packageName);\n if (processedPackages.has(packageName)) {\n continue;\n }\n processedPackages.add(packageName);\n const packageDetails = allPackages.get(packageName);\n if (packageDetails) {\n relevantPackages.set(packageName, packageDetails);\n const pkg = getPackageJSON(packageDetails.path);\n if (pkg?.dependencies) {\n for (const dep of Object.keys(pkg.dependencies)) {\n if (allPackages.has(dep) && !processedPackages.has(dep)) {\n packagesToCheck.add(dep);\n }\n }\n }\n }\n }\n\n return relevantPackages;\n }\n\n async resizeImage(req, res) {\n //check if the w or h query parameters are set\n let width = req.query.w;\n let height = req.query.h;\n //if not\n if (!width && !height) {\n //redirect to the original image\n res.redirect(req.originalUrl.replace('/resized', '/uploads'));\n return;\n }\n\n let imageFileName = req.query.src; // example: https://cdnurl.com/uploads/1710814765388-935b511c9_cropped.jpeg\n const accessURL = LinkedFileStorage.accessURL;\n\n if (imageFileName) {\n // `src` may only name an image this app already stores. Before this check\n // the value went straight to fetch(), which made the route an open proxy\n // into its own network -- cloud metadata, localhost, private ranges -- and\n // the response was then written into the PUBLIC file store and the caller\n // redirected to it, so anything reachable was persisted, not just leaked.\n //\n // resolveResizeSource compares parsed origins (a startsWith check is\n // defeated by https://cdn.example.com.evil.com) and hands back the key,\n // which must also exist in the store before anything is requested.\n const source = resolveResizeSource(imageFileName, accessURL);\n\n if (!source.allowed) {\n res.status(400).send({ error: 'Unsupported image source' });\n return;\n }\n\n // Two candidates, because the stores disagree on whether the public URL\n // includes the upload mount -- see resolveResizeSource. Fail-closed: if\n // neither shape is held, nothing is fetched.\n const storedKey = await findStoredKey(source.keys, (key) =>\n LinkedFileStorage.fileExists(key)\n );\n\n if (!storedKey) {\n res.status(404).send({ error: 'Could not fetch image from URL' });\n return;\n }\n\n // extract the base name and extension from the key the store actually\n // holds, not from the URL path.\n //\n // These differ: LocalFileStore serves `accessURL + /uploads/ + key`, so\n // deriving the destination from the URL gave it an extra `uploads/`\n // segment and resized files landed in data/uploads/uploads/resized/.\n // S3FileStore serves the key directly, so for it the two are the same --\n // which is why this went unnoticed. Deriving from the key is correct for\n // both.\n const { name, ext } = path.parse(storedKey);\n\n // Sharp READS svg but cannot WRITE it, so an SVG source is rasterized to\n // PNG below. The cache key has to say so: storing PNG bytes under a `.svg`\n // key would also mean serving them as `image/svg+xml`, since the cache-hit\n // branch types the response from this extension.\n const outputExt = ext.toLowerCase() === '.svg' ? '.png' : ext;\n\n // append the width and height parameters to the base name\n // example: 935b511c9_cropped_w190.jpeg or 935b511c9_cropped_w190h190.jpeg\n //\n // The underscore is emitted once, before either dimension, rather than as\n // part of the width segment. With it inside the width, a height-only\n // request produced `logoh30.jpeg` here while the local branch below --\n // which has always written the separator unconditionally -- produced\n // `logo_h30.jpeg` for the same request. The two halves of one route\n // disagreed on the cache key.\n const newName = `${name}_${width ? 'w' + width : ''}${\n height ? 'h' + height : ''\n }`;\n\n // the destination key, alongside the original\n // example: uploads/935b511c9_cropped.jpeg -> uploads/resized/935b511c9_cropped_w190.jpeg\n // and for a LocalFileStore key: photo.jpg -> resized/photo_w190.jpg\n const keyDir = path.dirname(storedKey);\n const newPathname = path.join(\n keyDir === '.' ? '' : keyDir,\n 'resized',\n `${newName}${outputExt}`\n );\n\n const resizedImageFileName = newPathname.startsWith('/')\n ? newPathname.slice(1)\n : newPathname;\n\n if (this.resizePathsMap.has(resizedImageFileName)) {\n res.redirect(this.resizePathsMap.get(resizedImageFileName));\n return;\n }\n\n // check if the resized image already exists in the CDN\n const imageExists: boolean = await LinkedFileStorage.fileExists(\n resizedImageFileName\n );\n\n // if exists, redirect to the resized image\n if (imageExists) {\n const resizedPathOnCdn: string = accessURL + '/' + resizedImageFileName;\n //save to cache\n this.resizePathsMap.set(resizedImageFileName, resizedPathOnCdn);\n //redirect this request to the resized image\n res.redirect(resizedPathOnCdn);\n return;\n } else {\n console.log(\n `${process.pid} - ${\n process.env.PORT\n }: Resizing image: ${imageFileName} to ${width} x ${height || ''}`\n );\n //in multicore development, we need to access the site from 127.0.0.1, and so all requests need to go there\n // // if (process.env.NODE_ENV === 'development' && process.env.NUM_WORKER_PROCESSES) {\n // // imageFileName = imageFileName.replace('localhost', '127.0.0.1');\n // // }\n\n // Read the bytes out of the store rather than fetching its public URL.\n //\n // Once `src` has to name an image the store already holds, fetching is\n // a round-trip to ask a web server for a file this process can open --\n // over the loopback interface, for a LocalFileStore. Reading directly\n // is faster, and it means the route makes no outbound request at all:\n // there is no origin to re-check after a redirect, no timeout to tune\n // and no response size to cap, because there is no response.\n const image = await LinkedFileStorage.getFile(storedKey);\n\n // if image is null or empty, return 404\n if (!image?.length) {\n res.status(404).send({ error: 'Could not fetch image from URL' });\n return;\n }\n\n // get the format of the image\n let format;\n try {\n format = await sharp(image)\n .metadata()\n .then((meta) => meta.format);\n } catch (err) {\n console.warn('Unsupported image format: ' + err);\n res.status(400).send({ error: 'Unsupported image format' });\n return;\n }\n\n // Sharp reads SVG but has no SVG encoder, so `.toFormat('svg')` throws\n // and every resize of an SVG failed. Rasterize to PNG instead — lossless,\n // and it matches the `.png` cache key chosen above.\n const outputFormat = format === 'svg' ? 'png' : format;\n\n // set the output options based on the format for quality and compression\n let outputOptions;\n switch (outputFormat) {\n case 'jpeg':\n outputOptions = { quality: 90 };\n break;\n case 'png':\n outputOptions = { compressionLevel: 9 };\n break;\n case 'webp':\n outputOptions = { quality: 90 };\n break;\n // add more formats here\n default:\n outputOptions = {};\n }\n\n // resize the image\n const resizedImage: Buffer = await sharp(image)\n .resize(\n width ? parseInt(width) : null,\n height ? parseInt(height) : null\n )\n .toFormat(outputFormat, outputOptions)\n .toBuffer()\n .catch((err) => {\n console.warn('Could not resize image: ' + err);\n return null;\n });\n\n // if resizedImage is null, return 500\n if (!resizedImage) {\n res.status(500).send({ error: 'Could not resize image' });\n return;\n }\n\n // upload the resized image to the CDN\n const resizedPathOnCdn = await LinkedFileStorage.saveFile(\n newPathname,\n resizedImage\n );\n\n //save to cache\n this.resizePathsMap.set(resizedImageFileName, resizedPathOnCdn);\n //redirect this request to the resized image\n res.redirect(resizedPathOnCdn);\n return;\n }\n } else {\n imageFileName = req.originalUrl.split('/resized/')[1]?.split('?')[0];\n }\n\n // Both halves of this route now read and write through LinkedFileStorage.\n //\n // This branch used to hardcode <cwd>/data/uploads for both, which meant it\n // could only ever work for a LocalFileStore: an app configured with S3 kept\n // its uploads in the bucket, so every request here looked on a local disk\n // that had nothing on it and 404'd. Going through the store also removes the\n // need to create the cache directory by hand -- LocalFileStore.saveFile\n // makes its own parent folders, which is why the mkdirSync that used to sit\n // here (commented out, so it silently did nothing) is gone rather than\n // restored.\n const [trueFileName, ...extensions] = imageFileName.split('.');\n const sourceExtension = extensions.join('.');\n\n // Same rasterization as the branch above: sharp reads SVG but cannot write\n // it. `extension` is what the cached derivative actually IS, and is what\n // `sendStoredFile` types the response with, so it has to be the OUTPUT\n // format rather than the source's.\n const extension =\n sourceExtension.toLowerCase() === 'svg' ? 'png' : sourceExtension;\n\n const resizedKey = path.join(\n path.dirname(imageFileName) === '.' ? '' : path.dirname(imageFileName),\n 'resized',\n `${path.basename(trueFileName)}_${width ? 'w' + width : ''}${\n height ? 'h' + height : ''\n }.${extension}`\n );\n\n // The resize cache is its own purpose, so an app can keep derivatives on a\n // local disk while its uploads live in S3, or share one store for both.\n // Unconfigured, it falls back to the default store, which is the previous\n // behaviour for anyone who never thinks about it.\n const cacheStore = getResizedImagesStore();\n const sendStoredFile = async (store: IFileStore, key: string) => {\n const bytes = await store.getFile(key);\n if (!bytes) {\n return false;\n }\n res.type(extension || 'bin').send(bytes);\n return true;\n };\n\n if (await cacheStore.fileExists(resizedKey)) {\n if (await sendStoredFile(cacheStore, resizedKey)) {\n return;\n }\n }\n\n const uploadsStore = LinkedFileStorage.getStore(FileStorePurposes.uploads);\n const original = await uploadsStore.getFile(imageFileName);\n\n if (!original) {\n console.warn('Could not find original image at ' + imageFileName);\n res.status(404).send({ error: 'Could not find original image' });\n return;\n }\n\n let resized: Buffer;\n try {\n const pipeline = sharp(original).resize(\n width ? parseInt(width) : null,\n height ? parseInt(height) : null\n );\n // Without this, sharp writes in the INPUT format, which for an SVG source\n // means asking for an encoder it does not have.\n resized = await (sourceExtension.toLowerCase() === 'svg'\n ? pipeline.png({ compressionLevel: 9 })\n : pipeline\n ).toBuffer();\n } catch (err) {\n console.warn('Could not resize image: ' + err);\n res.status(500).send({ error: 'Could not resize image' });\n return;\n }\n\n // preventDuplicates: false because this is a cache keyed by name. Letting\n // the store pick a fresh name on collision would write a second copy for\n // every request and never hit the cache.\n //\n // A failure here is logged, not fatal: the resize succeeded, so the caller\n // still gets its image and only the caching is lost. It used to be\n // swallowed and then followed by sendFile on a file that was never written,\n // which turned a cache miss into a 404 with nothing in the response to say\n // why -- and, on the error path, into a second send after the 500.\n try {\n await cacheStore.saveFile(resizedKey, resized, {\n preventDuplicates: false,\n });\n } catch (err) {\n console.warn('Could not cache resized image at ' + resizedKey + ': ' + err);\n }\n\n res.type(extension || 'bin').send(resized);\n }\n\n async indexLincdPackage(pkg: string, warnIfNotFound: boolean = false) {\n if (pkg === this.package.name) {\n return;\n }\n try {\n // console.log(`🔍 Loading package: ${pkg}`);\n // console.log(\n // `🔍 Module resolution for ${pkg}:`,\n //@ts-ignore\n // await import.meta.resolve(pkg)\n // );\n // plan-011 §P6 — prefer Vite's SSR loader so workspace packages register\n // on the SINGLE @_linked/core instance the rest of the SSR graph uses.\n // The bare Node `import()` fallback resolves `default`→lib, evaluating a\n // SECOND core copy (benign post-§P1, but a needless second instance).\n // Node import stays as the fallback when Vite isn't active (production /\n // Node-only CLI commands). Mirrors indexPackageBackendProviders.\n const vite: any = (this.config.server as any)?.vite;\n if (vite && typeof vite.ssrLoadModule === 'function') {\n await vite.ssrLoadModule(pkg);\n } else {\n // @vite-ignore — dynamic specifier is intentional: this checks\n // whether `pkg` is resolvable at runtime, then catches the error.\n // eslint-disable-next-line no-unsanitized/method\n await import(/* @vite-ignore */ pkg);\n }\n // console.log(`✅ Successfully loaded: ${pkg}`);\n } catch (e) {\n let providerNotFound =\n e.code === 'MODULE_NOT_FOUND' &&\n e.message.indexOf(`Cannot find package '${pkg}'`) !== -1;\n if (providerNotFound) {\n // console.warn('Error loading ' + providerPath + ': ' + e.stack);\n if (warnIfNotFound) {\n console.warn(\n chalk.magenta(\n `Could not load package ${pkg}`,\n typeof module !== 'undefined' && typeof exports !== 'undefined'\n ? //@ts-ignore\n ' at ' + (await import.meta.resolve(pkg))\n : ''\n )\n );\n }\n } else {\n console.warn(\n chalk.red(\n `Error loading '${pkg}' ${\n typeof module !== 'undefined' && typeof exports !== 'undefined'\n ? //@ts-ignore\n ' at ' + (await import.meta.resolve(pkg))\n : ''\n }: ${e.message}\\n`\n ),\n e.stack\n );\n }\n }\n }\n async indexPackageBackendProviders(\n pkg: string,\n warnIfNotFound: boolean = false,\n backendIndexFilePath?: string\n ) {\n if (!backendIndexFilePath) {\n backendIndexFilePath = `${pkg}/backend`;\n }\n let backendProviderExports;\n let genericBackendProvider;\n let shapeProviders = [];\n // Plan-010 phase 4/5: when Vite SSR is active, route module loading\n // through vite.ssrLoadModule. This handles the case where the user app\n // is the consuming workspace itself (self-reference like\n // @semantu/create-now/backend), which Node's ESM resolver can't resolve\n // from inside an installed package like @_linked/server.\n const vite: any = (this.config.server as any)?.vite;\n const loadModule = async (specifier: string) => {\n if (vite && typeof vite.ssrLoadModule === 'function') {\n // For the user app's own backend, resolve to ./src/backend.ts directly.\n // Vite reads the app's package.json exports.development condition.\n if (specifier === `${this.package.name}/backend`) {\n return await vite.ssrLoadModule('/src/backend.ts');\n }\n // Plan-011: ssr.external is now an npm-only allowlist. Workspace\n // packages MUST go through Vite's SSR loader so they share the\n // same module instance as everything else in the SSR call graph\n // (otherwise we get duplicate React contexts, duplicate Linked\n // package registrations, etc).\n //\n // Pre-check whether the specifier actually resolves before\n // calling ssrLoadModule — many packages have no `/backend`\n // export, and ssrLoadModule logs a \"Failed to load url\" error\n // INTERNALLY before throwing, which spams stdout even when the\n // surrounding catch handles it. pluginContainer.resolveId is\n // quiet: it returns null when no plugin can resolve the id.\n try {\n const resolved = await vite.pluginContainer?.resolveId?.(specifier);\n if (!resolved) {\n // Synthesise the same error shape the catch expects so the\n // \"no backend export, that's fine\" branch fires.\n const err: any = new Error(\n `Failed to load url ${specifier} (resolved id: ${specifier}). Does the file exist?`,\n );\n throw err;\n }\n } catch (e: any) {\n // If the pre-check itself errored (e.g. plugin threw on a\n // pkg name it doesn't know), let the call below surface the\n // real error path.\n if (!e?.message?.includes('Failed to load url')) {\n // fall through to ssrLoadModule which will throw + log\n } else {\n throw e;\n }\n }\n return await vite.ssrLoadModule(specifier);\n }\n // No-vite path (e.g. production runtime).\n //\n // The app's own backend cannot be imported by name here. A self-reference\n // resolves only from inside the package that declares it, and this code\n // lives in node_modules/@_linked/server — so Node reports\n // `Cannot find package '<app>'` and every one of the app's Providers\n // silently fails to register. The Vite branch above already works around\n // this; the compiled runtime needs the same treatment, by path.\n if (specifier === `${this.package.name}/backend`) {\n const compiled = path.join(process.cwd(), 'lib', 'backend.js');\n const source = path.join(process.cwd(), 'src', 'backend.ts');\n const target = fsNative.existsSync(compiled) ? compiled : source;\n return await import(/* @vite-ignore */ pathToFileURL(target).href);\n }\n // Fall back to Node's resolver. The dynamic specifier is intentional.\n return await import(/* @vite-ignore */ specifier);\n };\n await loadModule(backendIndexFilePath)\n .then((backendProviderExports) => {\n //instantiate the exported provider classes and add them to the right place\n Object.keys(backendProviderExports).forEach((key) => {\n let providerClass = backendProviderExports[key];\n //always send an instance of the express server\n //TODO: do not create an instance, just save the class and instantiate it when needed\n let provider = new providerClass(this.server, this);\n if (provider instanceof ShapeProvider) {\n shapeProviders.push(provider);\n if (!Object.getOwnPropertyNames(provider).includes('shape')) {\n console.warn(\n chalk.red(`${\n Object.getPrototypeOf(provider).constructor.name\n } in package ${pkg}\n is not properly linked to a shape. Use public shape = SomeShape.`)\n );\n }\n } else {\n if (genericBackendProvider) {\n console.warn(\n `Package ${pkg} exports two generic backend providers. Only one will work`\n );\n } else {\n genericBackendProvider = provider;\n }\n }\n });\n })\n .catch((e) => {\n // Recognize \"no /backend export\" failures across two loader\n // shapes:\n // Node's import() → ERR_MODULE_NOT_FOUND + \"Cannot find module 'X/backend'\"\n // Vite's ssrLoadModule() → \"Failed to load url X/backend\"\n // package `exports` without a ./backend entry (Node + Vite)\n // → 'Missing \"./backend\" specifier in \"X\" package'\n // In either case, missing /backend on a package that doesn't\n // ship a backend is expected; loud-error only on REAL load\n // failures (syntax error inside an existing backend.ts, etc).\n const nodeMatch = e.message.match(/module \\'([^\\']+)'/);\n const viteMatch = e.message.match(/Failed to load url ([^\\s]+)/);\n const matchedSpec = nodeMatch?.[1] ?? viteMatch?.[1];\n const notExported = /Missing \"\\.\\/backend\" specifier in \"[^\"]+\" package/.test(\n e.message\n );\n let providerNotFound =\n notExported ||\n (!!matchedSpec &&\n matchedSpec.includes('/backend') &&\n ((e.code === 'ERR_MODULE_NOT_FOUND' &&\n e.message.indexOf(`Cannot find module`) !== -1) ||\n e.message.indexOf('Failed to load url') !== -1));\n if (providerNotFound) {\n // console.warn('Error loading ' + providerPath + ': ' + e.stack);\n if (warnIfNotFound) {\n console.warn(\n chalk.magenta(`Could not find backend file of package ${pkg}. \n Check:\\n\n - Make sure backend.ts exists and is included in tsconfig.json\\n\n - Make sure the package name in src/package.ts matches the package name in package.json`)\n );\n }\n } else {\n console.warn(\n chalk.red(\n `Could not load backend file of module '${pkg}' from ${process.cwd()}:\\n`\n ),\n e.stack\n );\n }\n genericBackendProvider = null;\n });\n this.genericProviders.set(pkg, genericBackendProvider);\n this.shapeProviders.set(pkg, shapeProviders);\n return { backendProviderExports, shapeProviders };\n }\n\n /**\n * Plan-011 phase 2 — HMR re-index entry point.\n *\n * Called by the CLI orchestrator's Vite watcher whenever a `.ts`/`.tsx`\n * file inside a workspace package changes. Disposes the package's\n * existing providers (so routes, listeners, timers don't accumulate),\n * drops them from the registry, and re-runs indexPackageBackendProviders\n * to pick up the freshly-imported module.\n *\n * Dispose calls have a 5 s soft timeout. A hanging dispose logs a\n * warning and is abandoned so HMR doesn't stall the whole dev loop.\n */\n /**\n * Install the client-shell catch-all as the last ordinary layer on the\n * router stack. See utils/spaFallback.ts for why ordering has to be\n * re-asserted rather than assumed.\n */\n private installSpaFallback(): void {\n installSpaFallback(\n this.server,\n this.handleErrors(async (req, res) => {\n //make sure the frontend bundle has finished building\n // await this.waitForWebpack();\n this.render(req, res);\n })\n );\n }\n\n async onSourceChange(pkg: string): Promise<void> {\n const disposeWithTimeout = async (p: any, label: string) => {\n if (!p?.dispose) return;\n try {\n await Promise.race([\n Promise.resolve().then(() => p.dispose()),\n new Promise((_, reject) =>\n setTimeout(\n () => reject(new Error(`dispose timeout after 5s`)),\n 5000\n )\n ),\n ]);\n } catch (err: any) {\n console.warn(\n chalk.yellow(`[linked] ${label} dispose failed: ${err.message}`)\n );\n }\n };\n\n const generic = this.genericProviders.get(pkg);\n if (generic) {\n await disposeWithTimeout(generic, `${pkg} generic provider`);\n this.genericProviders.delete(pkg);\n }\n\n const shapeProvs = this.shapeProviders.get(pkg) ?? [];\n for (const p of shapeProvs) {\n await disposeWithTimeout(\n p,\n `${pkg} ${Object.getPrototypeOf(p)?.constructor?.name ?? 'shape provider'}`\n );\n }\n this.shapeProviders.delete(pkg);\n\n await this.indexPackageBackendProviders(pkg, true);\n\n // Run the boot lifecycle on the FRESHLY-loaded provider so it\n // re-registers its Express routes/middleware after dispose. Without\n // this, dispose() tears the old routes off and the new instance is\n // constructed but never gets a chance to register the replacements.\n const fresh = this.genericProviders.get(pkg);\n if (fresh?.setupBeforeControllers) {\n try {\n await fresh.setupBeforeControllers();\n } catch (err: any) {\n console.warn(\n chalk.yellow(\n `[linked] ${pkg} setupBeforeControllers after reload failed: ${err.message}`\n )\n );\n }\n }\n const freshShapes = this.shapeProviders.get(pkg) ?? [];\n for (const p of freshShapes) {\n if (p?.setupBeforeControllers) {\n try {\n await p.setupBeforeControllers();\n } catch (err: any) {\n console.warn(\n chalk.yellow(\n `[linked] ${pkg} shape-provider setupBeforeControllers after reload failed: ${err.message}`\n )\n );\n }\n }\n }\n\n // Providers just re-registered their routes, which express can only APPEND\n // — i.e. behind the catch-all installed at boot. Put it back at the end so\n // those routes stay reachable. Safe here: every registration above has\n // completed, so no provider is mid-capture of its own layer indices.\n repinSpaFallback(this.server);\n }\n\n async processBackendMethodCall(request, response) {\n this.noCache(response);\n await this.initRequest(request, response);\n let { pkg, method } = request.params;\n let { args } = JSONParser.parseObject<{ args }>(request.body);\n\n return this.callBackendMethod(pkg, method, args, request, response).then(\n (result) => {\n //some methods of backend providers may choose to work with request/response directly and will not return anything\n //so only if a result is returned\n if (typeof result !== 'undefined') {\n //do we convert it to JSON and send it to the frontend\n this.sendJson(response, result);\n } else {\n //in other cases, we still need to close the request and send an empty response\n if (!response.headersSent) {\n this.sendJson(response, null);\n }\n }\n }\n );\n }\n\n noCache(response) {\n response.setHeader('Surrogate-Control', 'no-store');\n response.setHeader(\n 'Cache-Control',\n 'no-store, no-cache, must-revalidate, proxy-revalidate'\n );\n response.setHeader('Expires', '0');\n }\n async processAPICall(\n request,\n response,\n method: 'get' | 'post' | 'put' | 'delete'\n ) {\n this.noCache(response);\n const result = await this.api.process(request, response, method);\n }\n // async processQuery(request, response) {\n //\n // this.api.process(request, response);\n // }\n async processShapeMethodCall(request, response) {\n this.noCache(response);\n // console.log('process shape call');\n // response.on('finish', function() {\n // console.log('shape method call request finish');\n // });\n //\n // response.on('close', function() {\n // console.log('close');\n // });\n //\n // response.on('end', function() {\n // console.log('end');\n // });\n //\n // response.on('header', function() {\n // console.log('header');\n // console.log(response.statusCode);\n // });\n\n await this.initRequest(request, response);\n let { pkg, shape, method } = request.params;\n let { shapeURI, instanceNode, args } = JSONParser.parseObject<{\n shapeURI: string;\n instanceNode: { id: string } | null;\n args: any[];\n }>(request.body);\n\n if (!shapeURI) {\n if (request.query?.shapeURI) {\n shapeURI = request.query?.shapeURI;\n } else {\n response.status(500).send({\n error: 'Invalid server call request: ' + request.originalUrl,\n });\n console.warn(\n chalk.red('Invalid server call request: ' + request.originalUrl)\n );\n return;\n }\n }\n return this.callShapeMethod(\n pkg,\n method,\n shapeURI,\n instanceNode,\n args,\n request,\n response\n ).then((result) => {\n //we return json if something was returned or, if nothing was returned, we still close the request if the method has not accessed response itself already to send things over\n if (typeof result !== 'undefined' || !response.headersSent) {\n this.sendJson(response, result);\n }\n });\n }\n\n async callShapeMethod(\n pkg: string,\n method: string,\n shapeURI: string,\n instanceNode: { id: string } | null,\n args: any[],\n request,\n response\n ) {\n //- index module providers if not done yet\n if (!this.shapeProviders.has(pkg)) {\n await this.indexPackageBackendProviders(pkg, true);\n }\n\n let packageShapeProviders = this.shapeProviders.get(pkg);\n\n let findProviderForShape = (nodeShapeId: string) => {\n return packageShapeProviders.find((provider) => {\n //access the static shape (which is a linkedShape() / Shape class)\n //then access the SHACL NodeShape of that shape class, and its id\n return (\n provider instanceof ShapeProvider &&\n provider.shape?.shape?.id === nodeShapeId\n );\n });\n };\n\n let providerMethodFailed = false;\n try {\n //- find matching provider\n let shapeClass = getShapeClass(shapeURI);\n let shapeProvider: ShapeProvider = shapeClass?.shape\n ? findProviderForShape(shapeClass.shape.id)\n : undefined;\n if (!shapeProvider && shapeClass) {\n let superShapeClasses = getSuperShapesClasses(\n shapeClass as unknown as typeof Shape\n );\n for (let superShapeClass of superShapeClasses) {\n let superShapeProvider = findProviderForShape(\n superShapeClass.shape?.id\n );\n if (superShapeProvider) {\n shapeProvider = superShapeProvider;\n break;\n }\n }\n }\n // No provider for this shape (e.g. it isn't registered on this side).\n // Framework packages are kept single-instance by the cli vite-config's\n // `optimizeDeps.exclude`, so a mismatch here signals a real\n // misconfiguration. Answer 501 (via handleErrorsJson) rather than an empty\n // 200; direct backend callers get a rejected ServerCallError.\n if (!shapeProvider) {\n console.warn(\n `[LinkedServer] callShapeMethod: no provider for '${shapeURI}' ` +\n `(pkg '${pkg}', method '${method}').`\n );\n throw new ServerCallError(501, `No provider for ${pkg}/${method}`);\n }\n\n if (shapeProvider) {\n //NOTE: if this is a direct call from backend to backend, we won't know the request & response here because those don't get passed to the Server utility\n //if this is an issue, we need to see how we can get those back\n if (request && response) {\n //give the provider a chance to prepare for this request\n //wrap the call in a promise and wait for it, because providers MAY return a promise\n await Promise.resolve(shapeProvider.initRequest(request, response));\n }\n\n //see if the shapeProvider implements the called method\n if (shapeProvider[method]) {\n //prepare the first argument\n //we want to convert the instance node into an instance of the shape that this shapeProvider provides for\n //let's find the shape class\n if (shapeProvider.shape) {\n //instance nodes are not always sent. A shape can also call a shape provider from a static method without a shape instance.\n if (instanceNode) {\n let providerShapeClass = shapeProvider.shape;\n let instance = new (providerShapeClass as any)({\n id: instanceNode.id,\n });\n\n //always send instanceNode as first argument to static provider methods\n args.unshift(instance);\n }\n\n try {\n //call the method with the given arguments\n let result = await Promise.resolve(\n shapeProvider[method].apply(shapeProvider, args)\n );\n return result;\n } catch (e) {\n console.warn(\n `Error whilst calling ${\n Object.getPrototypeOf(shapeProvider).constructor.name\n }.${method}(): `,\n e\n );\n // Rethrow so the HTTP route answers with an error status (via\n // handleErrorsJson) instead of `200 null`, and direct backend\n // callers get a rejected promise.\n providerMethodFailed = true;\n throw e;\n }\n } else {\n console.warn(\n `${\n Object.getPrototypeOf(shapeProvider).constructor.name\n } does not define its own 'static shape' property. Please connect the provider to a shape.`\n );\n }\n } else {\n console.warn(\n `${\n Object.getPrototypeOf(shapeProvider).constructor.name\n } does not have a method called ${method}`\n );\n throw new ServerCallError(501, `No provider for ${pkg}/${method}`);\n }\n }\n } catch (err) {\n if (!providerMethodFailed && !ServerCallError.is(err)) {\n console.warn(`Error whilst trying to access provider of ${pkg}: `, err);\n }\n throw err;\n }\n return null;\n }\n\n handleErrors(fn) {\n return async function (req, res, next) {\n try {\n return await fn(req, res);\n } catch (x) {\n console.log(x);\n next(x);\n }\n };\n }\n\n handleErrorsJson(fn) {\n return async (req, res, next) => {\n try {\n return await fn(req, res);\n } catch (err) {\n // A ServerCallError (e.g. 501 for a call no provider handles) carries\n // its own status and a message that is safe to send to the client.\n if (ServerCallError.is(err)) {\n return this.sendError(res, err.status, err.message);\n }\n this.sendError(\n res,\n 500,\n 'internal server error' + (isDevelopment ? ': ' + err?.stack : ''),\n 'internal server error: ' + err?.stack\n );\n }\n };\n }\n\n sendError(res, statusCode = 500, message, logMessage?: string) {\n res?.status(statusCode);\n if (message) {\n res?.send({ error: message });\n console.warn(chalk.red(logMessage || message));\n }\n }\n\n /**\n * The stylesheets a dev (Vite) page render needs, inlined into\n * `<style id=\"ssr-css\">` so the first paint is styled before Vite's client\n * injects the same CSS.\n *\n * Scoped to what the app module and the matched routes' pages import\n * statically (see utils/ssrCss `ssrCssScope`). The dev server preloads every\n * page into the module graph, so the whole graph is every page's CSS —\n * megabytes per request in a large app. When the scope cannot be\n * established (no routes config, a route rendered through a function, a\n * module not found) it falls back to the whole graph.\n *\n * Ids are kept in the combined graph's order, so the cascade order of what\n * remains is unchanged.\n */\n private async collectViteSsrCss(\n vite: any,\n App: unknown,\n matchedRoutes: RouteConfig[] | null,\n ): Promise<string> {\n if (!vite?.moduleGraph?.idToModuleMap) return '';\n // Note: Tailwind v4 `@theme` directives in app theme CSS files are\n // NOT processed at SSR collection time — the @tailwindcss/vite\n // plugin expands them at production build only. In dev mode, the\n // theme variables (—color-primary-*, etc.) are injected by Vite's\n // runtime AFTER client hydration, which causes a brief flash of\n // unthemed content (logos render black until ~hydration+200ms).\n // Production (vite build) is unaffected — the static main.css\n // contains expanded :root variables.\n let scope: Set<string> | null = null;\n const ssrGraph = vite.environments?.ssr?.moduleGraph;\n if (ssrGraph?.idToModuleMap && App && matchedRoutes) {\n const pages: unknown[] = [];\n let known = true;\n for (const route of matchedRoutes) {\n const component = await resolveRouteComponent(route);\n if (component === undefined) {\n known = false;\n break;\n }\n if (component !== null) pages.push(component);\n }\n if (known) {\n scope = ssrCssScope(ssrGraph.idToModuleMap.values(), {\n app: App,\n pages,\n });\n }\n }\n // Read only now: resolving a lazy route above can load its page, and the\n // combined graph's id map is a view built when it is read.\n const graphIds = [\n ...(vite.moduleGraph.idToModuleMap as Map<string, unknown>).keys(),\n ];\n const ids = scope ? graphIds.filter((id) => scope!.has(id)) : graphIds;\n // Only real stylesheets, once per file — see utils/ssrCss.\n const inlineUrls = ssrCssInlineUrls(ids, {\n publicDir: vite.config?.publicDir,\n });\n const cssChunks: string[] = [];\n for (const inlineUrl of inlineUrls) {\n try {\n const cssModule = await vite.ssrLoadModule(inlineUrl);\n if (typeof cssModule?.default === 'string') {\n cssChunks.push(cssModule.default);\n }\n } catch {/* skip */}\n }\n return cssChunks.join('\\n');\n }\n\n async render(req, res) {\n res.socket.on('error', (error) => {\n console.error('Fatal socket error', error);\n });\n\n //when render() is called, the request is always an 'initial page request', and the server which will return HTML (so this is a SSR request)\n //in that case we send data back to the frontend in a <script> tag.\n //We initiate that object here\n if (req['frontendData'] == null) {\n req['frontendData'] = {};\n }\n\n //if we are caching this page\n if (\n this.config.server?.cachePaths &&\n this.config.server.cachePaths.includes(req.url)\n ) {\n //if there is a cach for this path, send it\n if (this.cachedPaths.has(req.url)) {\n // console.log(req.url + ': Returning cached path');\n const html = this.cachedPaths.get(req.url);\n // res.setHeader('Content-Type', 'text/html; charset=utf-8');\n // res.setHeader('Content-Length', Buffer.byteLength(html, 'utf8').toString());\n // res.status(200).end(html);\n res.send(html);\n return;\n }\n }\n\n let didError = false;\n\n let App = this.config.server?.loadAppComponent\n ? await this.config.server.loadAppComponent()\n : null;\n\n // Vite dev CSS collection (plan-010 iteration 1 — gap A):\n // 1. Preload the matched route's module via ssrLoadModule so all\n // page-level dependencies (SigninLayout, CreateAccount, etc.)\n // enter Vite's moduleGraph BEFORE we collect CSS. Without this,\n // only App's eager imports are in the graph and lazy routes'\n // CSS would be missing — page renders unstyled until hydration.\n // 2. Once the route is matched, collect the CSS the app and that route's\n // page import (collectViteSsrCss), each loaded via `?inline` (Vite\n // returns the processed CSS as the default export).\n // 3. Inject as inline <style> in HTML head (Html.tsx).\n const vite: any = (this.config.server as any)?.vite;\n // Vite SSR module preload (plan-010 iter1 gap A):\n // Pages are loaded lazily via React.lazy — their modules only enter\n // Vite's moduleGraph after the lazy resolves. For SSR CSS collection\n // we need the page modules in the graph BEFORE the first render of\n // each route. The orchestrator passes a preloadPagesFn that lists\n // all page files (typically via `import.meta.glob`); we call\n // ssrLoadModule on each path once. After the first render of a\n // session everything is cached.\n const preloadPagesFn: any = (this.config.server as any)?.viteSsrPreload;\n if (vite?.ssrLoadModule && preloadPagesFn && !(this as any)._viteSsrPreloaded) {\n try {\n const pagePaths: string[] = await preloadPagesFn();\n for (const p of pagePaths) {\n try {\n await vite.ssrLoadModule(p);\n } catch {/* skip — page may not exist or have ssr errors */}\n }\n } catch {/* ignore */}\n (this as any)._viteSsrPreloaded = true;\n }\n\n await this.initRequest(req, res);\n let { requestLD, requestObject } = await this.getRequestData(req, res);\n\n //on the backend we need to inform the hook of the request-data value\n //on the frontend it will be read from the HTML\n // setRequestData(requestObject);\n // Abandon and switch to client rendering if enough time passes.\n // Try lowering this to see the client recover.\n // Abandon and switch to client rendering if enough time passes.\n // Try lowering this to see the client recover.\n let stream;\n let timeout: ReturnType<typeof setTimeout> | undefined;\n let timedout = false;\n // const timeout = setTimeout(() => {\n // stream.abort(`${req.url}: ⏱ SSR stream took too long — force abort`);\n // if (!res.headersSent) {\n // res.statusCode = 500;\n // res.end('SSR timed out');\n // }\n // timedout = true;\n // }, 8_000);\n\n let manifest = this.assets.manifest || {};\n let preloadScripts: string[] = [];\n let preloadStyles: string[] = [];\n let matchedRouteKey: string | null = null;\n // Null until the routes config has loaded: without it, what renders is unknown.\n let matchedRoutes: RouteConfig[] | null = null;\n // Plan-010 Vite dev mode: skip preload resolution entirely. Vite\n // handles dynamic import() at runtime — there are no pre-built\n // chunks to preload, and the webpack-shape fallback would pick up\n // stale bundles on disk (public/bundles/*.bundle.js from a prior\n // webpack build) and link them, breaking hydration.\n // The same decision start() made for the `__viteDev` marker. This used\n // to be re-derived from `latestManifest`, which nothing ever set, so it\n // answered \"dev\" whenever Vite was attached — even when start() had\n // chosen the build — and the page mixed built CSS with the dev preamble.\n const usingViteDev = this.viteDevServer;\n\n // Load routes config if available and extract preload chunks for the current route\n if (this.config.server?.loadRoutes) {\n try {\n const routesModule = await this.config.server.loadRoutes();\n const ROUTES: RoutesConfig =\n routesModule.ROUTES ||\n routesModule.default?.ROUTES ||\n (routesModule as RoutesConfig);\n\n // Match the current request path to a route\n let matchedRoute: RouteConfig | null = null;\n const allMatches: RouteConfig[] = [];\n for (const [key, route] of Object.entries(ROUTES)) {\n if (!route?.path) continue;\n const pathPattern = route.path\n .replace(/:\\w+\\??/g, '([^/]+)')\n .replace(/\\*/g, '.*');\n const regex = new RegExp('^' + pathPattern + '$');\n if (regex.test(req.path)) {\n // Every match, not only the first: React Router may pick a more\n // specific route than this first-match loop, and the dev CSS\n // scope must cover whichever page actually renders.\n allMatches.push(route);\n if (!matchedRoute) {\n matchedRoute = route;\n matchedRouteKey = key;\n }\n }\n }\n matchedRoutes = allMatches;\n\n // If we found a matching route with preloadChunks, resolve them to URLs (both JS and CSS).\n // Manifest format detection: Vite manifest entries are objects with .file/.css; webpack\n // manifest entries are bare strings. Try Vite shape first, fall back to webpack.\n // Skip entirely in Vite dev mode — no pre-built chunks exist; Vite handles dynamic\n // imports at runtime.\n if (\n !usingViteDev &&\n matchedRoute?.preloadChunks &&\n Array.isArray(matchedRoute.preloadChunks)\n ) {\n // Both lists are built on the base the entry tags use, so a release\n // served from a CDN preloads its route chunks from that release\n // rather than from this app server. See utils/routeAssets.\n const routeAssets = resolveRouteAssets(\n manifest,\n matchedRoute.preloadChunks,\n this.staticAccessURL,\n );\n preloadScripts = routeAssets.scripts;\n preloadStyles = routeAssets.styles;\n }\n } catch (err) {\n console.warn('Failed to resolve preload chunks:', err);\n }\n }\n\n // Add matched route key to request object for Html component\n req['matchedRouteKey'] = matchedRouteKey;\n\n const ssrCss = await this.collectViteSsrCss(vite, App, matchedRoutes);\n // Per request, and not enumerable: Html reads `assets.__viteSsrCss` for\n // the inline <style>, but also serialises the whole assets object into\n // `assetManifest` for the client, which never uses it. Enumerable, the\n // collected CSS — megabytes in a large app — went into every page twice.\n // A per-request copy also keeps one render's CSS out of another's.\n const assets = { ...this.assets };\n if (ssrCss) {\n Object.defineProperty(assets, '__viteSsrCss', {\n value: ssrCss,\n enumerable: false,\n });\n }\n\n stream = renderToPipeableStream(\n <React.StrictMode>\n <StaticRouter location={req.url}>\n <AppContextProvider\n assets={assets}\n requestLD={requestLD}\n requestObject={requestObject}\n preloadScripts={preloadScripts}\n preloadStyles={preloadStyles}\n expressRequest={req}\n expressResponse={res}\n >\n <App />\n </AppContextProvider>\n </StaticRouter>\n </React.StrictMode>,\n {\n // How the client entry boots — dev preamble, ES module, or classic\n // script. See utils/bootstrapEntry.\n ...resolveBootstrapEntry({\n viteDevServer: usingViteDev,\n mainEntryIsModule: this.mainEntryIsModule,\n mainEntry: this.assets['main.js'],\n }),\n onShellReady: function () {\n res.statusCode = didError ? 500 : 200;\n res.setHeader('Content-type', 'text/html');\n\n // Create a caching transform stream à la mxstbr.com/thoughts/streaming-ssr\n if (\n this.config.server?.cachePaths &&\n this.config.server.cachePaths.includes(req.url)\n ) {\n const bufferedChunks: Buffer[] = [];\n\n const cacheStream = new Transform({\n transform(chunk, _enc, cb) {\n bufferedChunks.push(chunk); // keep a copy\n cb(null, chunk); // forward unchanged\n },\n flush: (cb) => {\n const html = Buffer.concat(bufferedChunks).toString('utf8');\n this.cachedPaths.set(req.url, html);\n if (this.config.server.cacheTimeout) {\n setTimeout(\n () => this.cachedPaths.delete(req.url),\n this.config.server.cacheTimeout\n );\n }\n clearTimeout(timeout); // rendering finished → stop timer\n cb();\n },\n });\n\n // Pipe the caching stream into the real response\n cacheStream.pipe(res);\n\n // React may **only be piped once**, so pipe it to the cacheStream\n stream.pipe(cacheStream);\n } else {\n stream.pipe(res);\n }\n }.bind(this),\n onShellError(x) {\n didError = true;\n console.error(x);\n // Respond NOW. Without this the socket stays open until the 10s\n // watchdog below fires, turning every render-time crash into an\n // opaque \"SSR timed out\" with the real error buried in the log.\n clearTimeout(timeout);\n if (res.headersSent) {\n res.end();\n return;\n }\n res.statusCode = 500;\n res.setHeader('Content-type', 'text/plain');\n res.end(\n 'SSR render failed before the shell was ready:\\n\\n' +\n ((x as any)?.stack ?? (x as any)?.message ?? String(x))\n );\n },\n }\n );\n\n // Abandon and switch to client rendering if enough time passes.\n // Try lowering this to see the client recover.\n timeout = setTimeout(() => {\n stream.abort('⏱ SSR stream took too long — force abort');\n if (!res.headersSent) {\n res.statusCode = 500;\n res.end('SSR timed out');\n }\n }, 10_000);\n\n res.on('close', () => {\n clearTimeout(timeout); // if you're using a safety timeout\n });\n }\n\n //If we ever need to use multiple webpack entry-points and different bundle names, then uncomment this\n /*getWebpackAssets()\n\t{\n\t\t// const { devMiddleware } = res.locals.webpack;\n\t\t// const outputFileSystem = devMiddleware.outputFileSystem;\n\t\t// const jsonWebpackStats = devMiddleware.stats.toJson();\n\t\t// const { assetsByChunkName, outputPath } = jsonWebpackStats;\n\t\t//\n\t\t// let normalizedAssets = normalizeAssets(assetsByChunkName.main);\n\t\t// let cssAssets = normalizedAssets\n\t\t// .filter((path) => path.endsWith(\".css\"))\n\t\t// .map((filePath) => outputFileSystem.readFileSync(path.join(outputPath, filePath)))\n\t\t// .join(\"\\n\");\n\t\t//\n\t\t// let jsAssets = normalizeAssets(assetsByChunkName.main)\n\t\t// .filter((path) => path.endsWith(\".js\"))\n\t\t// .map((path) => `<script src=\"${path}\"></script>`)\n\t\t// .join(\"\\n\")}\n\t}*/\n\n sendJson(res, obj) {\n let jsonObject = JSONWriter.toJsObject(obj);\n res.json(jsonObject);\n }\n\n async initRequest(request, response) {\n // initialise the request for all providers, do it synchroniously, one after the other\n let p = Promise.resolve();\n [...this.genericProviders.values()]\n .filter(Boolean)\n .forEach((backendProvider) => {\n p = p\n .then(() => {\n return backendProvider.initRequest(request, response);\n })\n .catch((err) => {\n console.warn(\n `Error during initRequest for provider ${\n Object.getPrototypeOf(backendProvider).constructor.name\n }: `,\n err\n );\n });\n });\n\n return p;\n }\n\n async getRequestData(\n request,\n response\n ): Promise<{ requestLD: string; requestObject: string }> {\n // Phase 1: providers return plain JSON data via supplyDataForRequest.\n // requestLD is kept as empty string for now — SSR data seeding will be\n // reworked in Phase 2/3 to inject query results instead of graph data.\n let requestData: Record<string, any> = {};\n await Promise.all(\n [...this.genericProviders.values()].map((backendProvider) => {\n if (backendProvider) {\n return Promise.resolve(\n backendProvider.supplyDataForRequest(request, response, requestData)\n ).catch((err) => {\n console.warn(\n `Error requesting page-request data from ${\n Object.getPrototypeOf(backendProvider).constructor.name\n }: `,\n err\n );\n });\n }\n })\n );\n\n let requestLD = '';\n let requestObject = JSONWriter.stringify(request['frontendData']);\n return { requestLD, requestObject };\n }\n\n async callBackendMethod(\n pkg: string,\n method: string,\n args: any[],\n request,\n response\n ) {\n if (!this.genericProviders.has(pkg)) {\n await this.indexPackageBackendProviders(pkg, true);\n }\n\n //retrieve the indexed provider class and create a new instance for this request\n let genericBackendProvider = this.genericProviders.get(pkg);\n\n let result;\n if (!genericBackendProvider) {\n console.warn(\n `${chalk.magenta(\n pkg\n )} does not have a generic backend provider. If you can edit this package, make sure 'backend.ts' is included in 'tsconfig.json' and that it exports a provider.`\n );\n throw new ServerCallError(501, `No provider for ${pkg}/${method}`);\n }\n //test if there is a matching method in the backend provider\n if (!genericBackendProvider[method]) {\n console.warn(\n `Generic provider '${\n Object.getPrototypeOf(genericBackendProvider).constructor.name\n }' of ${pkg} does not have a method called ${method}`\n );\n throw new ServerCallError(501, `No provider for ${pkg}/${method}`);\n }\n\n try {\n //TODO: remove init request.\n //TODO: refactor this.request and this.response to a request parameter\n //NOTE: if this is a direct call from backend to backend, we won't know the request & response here because those don't get passed to the Server utility\n //if this is an issue, we need to see how we can get those back\n if (request && response) {\n //initialise the request for this specific provider\n //wrap the call in a promise and wait for it, because providers MAY return a promise\n await Promise.resolve(\n genericBackendProvider.initRequest(request, response)\n );\n }\n // args.push(request);\n // args.push(response);\n\n //call the method with the given arguments and return the result as json\n result = await Promise.resolve(\n genericBackendProvider[method].apply(genericBackendProvider, args)\n );\n } catch (e) {\n console.warn(\n `Error whilst calling ${method}() in provider ${\n Object.getPrototypeOf(genericBackendProvider).constructor.name\n } of package ${pkg}:\\n`,\n e\n );\n\n // error logging\n LinkedErrorLogging.log(e);\n // Rethrow so the HTTP route answers with an error status instead of `200 null`.\n throw e;\n }\n return result;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LocalFileStore.js","sourceRoot":"","sources":["../../../../src/shapes/filestores/LocalFileStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocalFileStore.js","sourceRoot":"","sources":["../../../../src/shapes/filestores/LocalFileStore.ts"],"names":[],"mappings":"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","sourcesContent":["import { relativeFileSystemUploadPath } from '@_linked/server-utils/utils/Upload';\nimport { publicUploadPath } from '@_linked/server-utils/utils/ServerPaths';\nimport {\n FileStat,\n IFileStore,\n SaveFileOptions,\n normalizeSaveFileOptions,\n} from '@_linked/core/interfaces/IFileStore';\nimport { createHash } from 'node:crypto';\nimport * as fsSync from 'node:fs';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\n\n/**\n * What `saveFile` stored, and where.\n *\n * `storedPath` is the key as it ended up in the store: it is exactly what\n * `getFile`, `fileExists`, `deleteFile` and `statFile` expect, so a caller that\n * wants to verify what it just uploaded never has to guess a name back out of a\n * URL.\n */\nexport interface SavedFileLocation {\n /** The key the file is stored under, relative to the store's base folder. */\n storedPath: string;\n /** The public URL, the same string `saveFile` returns. */\n publicURL: string;\n}\n\n/**\n * A file store is not a Shape.\n *\n * This class used to `extends Shape`, but used nothing from it: no `this.id`, no\n * `this.uri`, no `nodeShape`, no Shape statics, no property decorators, and no\n * caller that treated it as a Shape. The only inherited behaviour was `super({id})`\n * writing an id that nothing ever read.\n *\n * Datasets and stores stopped being Shapes deliberately (core `0e8c86e`,\n * \"datasets are not shapes\"), and `Shape`'s instantiation guard is currently\n * DEFERRED naming this very class as the reason. Dropping the inheritance removes\n * one of the last obstacles to re-enabling it.\n */\nexport class LocalFileStore implements IFileStore {\n private readonly basePath: string;\n\n public readonly accessURL: string;\n\n /**\n * `n` names the store. It was previously also accepted as `{id}` because that is\n * `Shape`'s constructor signature; both forms are still taken so existing callers\n * keep working, but neither is stored as a node id any more.\n */\n constructor(\n n: string | { id: string },\n basePath: string = relativeFileSystemUploadPath\n ) {\n this.accessURL = process.env.SITE_ROOT;\n this.basePath = basePath;\n }\n\n /**\n * Delete a file from the local filesystem\n * @param filePath The path to the file to delete, relative to the base upload folder\n * @returns A promise that resolves when the file is deleted\n */\n deleteFile(filePath: string): Promise<void> {\n const fileToDelete = path.join(this.basePath, filePath);\n\n return fs.rm(fileToDelete);\n }\n\n /**\n * Check if a file exists on the local filesystem\n * @param filePath The path to the file to check, relative to the base upload folder\n * @returns A promise that resolves to true if the file exists, false otherwise\n */\n fileExists(filePath: string): Promise<boolean> {\n const fileToCheck = path.join(this.basePath, filePath);\n\n return fs\n .access(fileToCheck)\n .then(() => true)\n .catch(() => false);\n }\n\n /**\n * Get a file from the local filesystem\n * @param filePath The path to the file to get, relative to the base upload folder\n * @returns A promise that resolves to the file contents as a buffer, or null if the file does not exist\n */\n getFile(filePath: string): Promise<Buffer | null> {\n const fileToGet = path.join(this.basePath, filePath);\n\n return fs.readFile(fileToGet).catch(() => null);\n }\n\n /**\n * List every file in the store, recursively.\n *\n * @param prefix Only return keys starting with this string. Matched against\n * the returned (relative) key, so `listFiles('images/')` selects the\n * `images` folder and `listFiles('main-')` selects by file name.\n * @returns Keys relative to the base folder, exactly as `getFile`,\n * `fileExists`, `deleteFile` and `statFile` expect them.\n *\n * The keys are relative on purpose: every other method on this store resolves\n * its argument *against* `basePath`, so returning `data/uploads/x.txt` here\n * meant a caller who fed the result straight back into `getFile` looked for\n * `data/uploads/data/uploads/x.txt`. It also matches `S3FileStore`, which\n * strips the bucket prefix before returning.\n */\n async listFiles(prefix?: string): Promise<string[]> {\n const walk = async (relativeDir: string): Promise<string[]> => {\n const absoluteDir = path.join(this.basePath, relativeDir);\n\n let entries: fsSync.Dirent[];\n try {\n entries = await fs.readdir(absoluteDir, { withFileTypes: true });\n } catch (err) {\n console.warn('Error during listFiles', err);\n return [];\n }\n\n const nested = await Promise.all(\n entries.map((entry) => {\n // path.join('', 'x') === 'x', so the top level stays unprefixed\n const key = path.join(relativeDir, entry.name);\n // recurse into the subdirectory itself. This used to call\n // listFiles(prefix), which re-read basePath and so found the same\n // directory again -- unbounded recursion as soon as the store held\n // one folder.\n return entry.isDirectory() ? walk(key) : Promise.resolve([key]);\n })\n );\n\n return nested.flat();\n };\n\n const keys = await walk('');\n\n return prefix ? keys.filter((key) => key.startsWith(prefix)) : keys;\n }\n\n /**\n * Work out the key a save will use, and the URL that key is served under.\n *\n * This used to be `getUploadTarget` from `@_linked/server-utils`, which could\n * not be used here for two reasons:\n *\n * - it lowercases the name. That is HTTP-upload hygiene (browsers hand over\n * whatever the user's filesystem had, and `getUploadTarget` is still the\n * right place for it — `uploadSingleFileFromFormData` calls it before it\n * ever reaches a store), but it corrupts a key a program chose on purpose,\n * such as a Vite content hash: `main-hwqwrAvA.css`.\n * - it always resolves against `relativeFileSystemUploadPath`, ignoring this\n * store's `basePath`, so a store with a custom base folder wrote where it\n * could not read back.\n *\n * Characters that are not safe in a file name are still replaced, exactly as\n * `getUploadTarget` does it — only the case is left alone.\n */\n private async resolveTarget(\n filePath: string,\n mimeType: string | undefined,\n suffixDuplicates: boolean\n ): Promise<SavedFileLocation> {\n // alphanumerics, dot, underscore, dash and the path separator survive; a\n // run of anything else becomes one dash. Case is deliberately preserved.\n //\n // The dash has to be in that set. Without it a run of dashes collapsed to\n // one, so a Vite base64 content hash that happens to start with a dash —\n // `shapeCodeGenerator--2JmNvrO.js` — came back as\n // `shapeCodeGenerator-2JmNvrO.js`, a different key from the one the caller\n // asked for and from the one baked into the bundle.\n let sanitisedName = filePath.replace(/[^A-Za-z0-9\\._\\/-]+/g, '-');\n\n if (sanitisedName.indexOf('.') === -1) {\n //auto add an extension if none is present, based on the mimetype\n if (!mimeType) {\n throw new Error(\n 'This file does not have an extension and no mimetype was provided'\n );\n }\n sanitisedName = sanitisedName + '.' + mimeType.split('/')[1];\n }\n\n const ext = sanitisedName.split('.').pop();\n const withoutExt = sanitisedName.substring(\n 0,\n sanitisedName.length - (ext.length + 1)\n );\n\n // A 6 character random string avoids clobbering an existing file,\n // e.g. report.pdf -> report_312acb.pdf.\n //\n // It is only applied when the name is actually taken. This used to be\n // unconditional, which did prevent duplicates but also meant a caller never\n // got back the key it asked for: a content-hashed bundle handed over as\n // `main-hwqwrAvA.css` landed as `main-hwqwrAvA_x9k2ml.css`, so the name\n // baked into the HTML no longer resolved. Checking first keeps the\n // never-clobber guarantee -- a taken name still gets a suffix, and the\n // suffixed name is itself re-checked -- while leaving free names alone.\n // `S3FileStore` has always worked this way, so the two implementations of\n // IFileStore now read the flag the same.\n let storedPath = withoutExt + '.' + ext;\n\n if (suffixDuplicates) {\n // 36^6 is ~2 billion, so a second collision is already vanishingly\n // unlikely; the cap turns a pathological case into a clear error rather\n // than a spin.\n const maxAttempts = 10;\n let attempt = 0;\n\n while (await this.fileExists(storedPath)) {\n if (attempt++ >= maxAttempts) {\n throw new Error(\n `Could not find a free name for '${filePath}' after ${maxAttempts} attempts`\n );\n }\n\n storedPath =\n withoutExt + '_' + Math.random().toString(36).substring(2, 8) + '.' + ext;\n }\n }\n\n return {\n storedPath,\n publicURL: this.accessURL + publicUploadPath + '/' + storedPath,\n };\n }\n\n /**\n * Save a file to the local filesystem\n * @param filePath The path to save the file to, relative to the base folder\n * @param fileContent The contents of the file as a buffer\n * @param options Save options, or a string read as the old positional mimeType.\n * A local file has no headers to attach, so only `mimeType` (used to add a\n * missing extension) and `preventDuplicates` mean anything here;\n * `cacheControl` and `metadata` are accepted and ignored.\n * @param preventDuplicates Only honoured when `options` is a string\n * @returns A promise that resolves to the public URL of the file. Use\n * {@link saveFileWithPath} when you also need the key it was stored under.\n */\n async saveFile(\n filePath: string,\n fileContent: Buffer,\n options?: SaveFileOptions | string,\n preventDuplicates?: boolean\n ): Promise<string> {\n const { publicURL } = await this.saveFileWithPath(\n filePath,\n fileContent,\n options,\n preventDuplicates\n );\n\n return publicURL;\n }\n\n /**\n * Save a file and report both the key it was stored under and its URL.\n *\n * `saveFile` can only return one string, and `IFileStore` says that string is\n * a URL — but a caller that wants to verify what it just wrote needs the\n * *key*, which is what `statFile`, `getFile`, `fileExists` and `deleteFile`\n * take. That is what `storedPath` is: hand it straight back to any of them.\n *\n * The key equals the `filePath` given verbatim — case included — as long as\n * the name needs no sanitising and already has an extension. With\n * `preventDuplicates` left unspecified (this store's default, kept for upload\n * callers) that still holds for a name nothing else occupies; only a name\n * already taken gains a random suffix, and `storedPath` is the only place\n * that name is reported.\n */\n async saveFileWithPath(\n filePath: string,\n fileContent: Buffer,\n options?: SaveFileOptions | string,\n preventDuplicates?: boolean\n ): Promise<SavedFileLocation> {\n const normalized = normalizeSaveFileOptions(options, preventDuplicates);\n // Core reports an unspecified preventDuplicates as undefined, leaving the\n // default to each store. This one protects an existing file, so only an\n // explicit `false` allows an overwrite.\n const suffixDuplicates = normalized.preventDuplicates ?? true;\n\n const target = await this.resolveTarget(\n filePath,\n normalized.mimeType,\n suffixDuplicates\n );\n\n // resolved against basePath, exactly like every read method does, so what\n // is written here can be read back by the same key\n const targetFilePath = path.join(this.basePath, target.storedPath);\n\n //make sure the target folder exists\n if (!fsSync.existsSync(path.dirname(targetFilePath))) {\n fsSync.mkdirSync(path.dirname(targetFilePath), { recursive: true });\n }\n await fs.writeFile(targetFilePath, fileContent);\n\n return target;\n }\n\n /**\n * Read back the metadata of a stored file, for verify-after-upload.\n *\n * The path is resolved exactly like saveFile/getFile/fileExists/deleteFile\n * do, against this store's base folder, so the `storedPath` that\n * saveFileWithPath reports can be handed straight back here.\n *\n * The sha256 is computed on demand from the bytes: statFile is only called\n * during publish verification, not on every upload.\n *\n * @param filePath The path to the file, relative to the base upload folder\n * @returns The size and sha256 of the file, or null if it does not exist\n */\n async statFile(filePath: string): Promise<FileStat | null> {\n const fileToStat = path.join(this.basePath, filePath);\n\n let stat: fsSync.Stats;\n try {\n stat = await fs.stat(fileToStat);\n } catch (err) {\n return null;\n }\n if (!stat.isFile()) {\n return null;\n }\n\n const contents = await fs.readFile(fileToStat);\n const sha256 = createHash('sha256').update(contents).digest('hex');\n\n return { size: stat.size, sha256 };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BackendAPIStore.js","sourceRoot":"","sources":["../../../../src/shapes/quadstores/BackendAPIStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AA4B5D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,eAAe;IAQ1B,YAAY,MAAyD;QACnE,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,sBAAsB,MAAM,EAAE,CAAC;YACjE,OAAO;QACT,CAAC;QACD,IAAK,MAAgC,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,EAAE,GAAI,MAAgC,CAAC,EAAG,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAK,MAAgC,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAI,MAAgC,CAAC,IAAK,CAAC;YACrD,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,sBAAsB,IAAI,EAAE,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,+DAA+D;IACjE,CAAC;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,2EAA2E;IAC3E,WAAW,CAAC,KAAkB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ,CAAC,KAAe;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,WAAW,CAAC,KAAkB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,WAAW,CAAC,KAAkB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,WAAW,CAAC,KAAkB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAI,MAAc,EAAE,IAAa;QAClD,oDAAoD;QACpD,+EAA+E;QAC/E,0EAA0E;QAC1E,yDAAyD;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;CACF"}
1
+ {"version":3,"file":"BackendAPIStore.js","sourceRoot":"","sources":["../../../../src/shapes/quadstores/BackendAPIStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AA4B5D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,eAAe;IAQ1B,YAAY,MAAyD;QACnE,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,sBAAsB,MAAM,EAAE,CAAC;YACjE,OAAO;QACT,CAAC;QACD,IAAK,MAAgC,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,EAAE,GAAI,MAAgC,CAAC,EAAG,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAK,MAAgC,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAI,MAAgC,CAAC,IAAK,CAAC;YACrD,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,sBAAsB,IAAI,EAAE,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,+DAA+D;IACjE,CAAC;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,2EAA2E;IAC3E,WAAW,CAAC,KAAkB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ,CAAC,KAAe;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,WAAW,CAAC,KAAkB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,WAAW,CAAC,KAAkB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,WAAW,CAAC,KAAkB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAI,MAAc,EAAE,IAAa;QAClD,oDAAoD;QACpD,+EAA+E;QAC/E,0EAA0E;QAC1E,yDAAyD;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;CACF","sourcesContent":["import { packageName } from '../../package.js';\nimport { Server } from '@_linked/server-utils/utils/Server';\nimport type { IDataset } from '@_linked/core/interfaces/IDataset';\nimport type { SelectQuery } from '@_linked/core/queries/SelectQuery';\nimport type { AskQuery } from '@_linked/core/queries/AskQuery';\nimport type { UpdateQuery } from '@_linked/core/queries/UpdateQuery';\nimport type { CreateQuery } from '@_linked/core/queries/CreateQuery';\nimport type {\n DeleteQuery,\n DeleteResponse,\n} from '@_linked/core/queries/DeleteQuery';\nimport type {\n SelectResult,\n UpdateResult,\n CreateResult,\n} from '@_linked/core/queries/IntermediateRepresentation';\n\n/**\n * Constructor argument for `new BackendAPIStore(config)`. Per the\n * docs/backlog/016-ejection-export-flow.md spec — a single JSON object\n * passed verbatim from linked.{frontend,backend}.datasets.json's `config`.\n */\nexport interface BackendAPIStoreConfig {\n /** Stable name; becomes the suffix of the store URI: ${DATA_ROOT}/backend-api-store/<name>. */\n name?: string;\n /** Or pass a fully-qualified URI directly. */\n id?: string;\n}\n\n/**\n * Frontend-side store that routes all queries to the backend via `Server.call()`.\n * The backend's generic provider for this package executes them against the real store.\n *\n * A store is not a Shape. This class used to `extends Shape` and carry `@linkedShape`\n * with a `targetClass`, purely so that `Server.call(this, …)` could address it: the\n * transport derived the target from `shape instanceof Shape && shape.id` (the instance)\n * and `shapeClass.shape.id` (the class). Neither carried any meaning — the backend\n * provider never read the store it was handed, and query routing is decided by the\n * QUERY's shape, not the store's.\n *\n * It now uses `Server.call`'s package form instead, which addresses the backend by\n * package name and sends no shape fields at all. That removes the last reason for this\n * class to be a Shape, and with it the `new (providerShapeClass)({id})` the backend had\n * to perform to rebuild a store instance nobody used.\n */\nexport class BackendAPIStore implements IDataset {\n /**\n * Kept so the config form is still accepted and a store can be named, but it is no\n * longer an addressing mechanism — nothing transmits or resolves it. Retained because\n * `linked.{frontend,backend}.datasets.json` may still pass `name`/`id`.\n */\n readonly id?: string;\n\n constructor(config?: BackendAPIStoreConfig | string | { id?: string }) {\n if (!config) return;\n if (typeof config === 'string') {\n this.id = `${process.env.DATA_ROOT}/backend-api-store/${config}`;\n return;\n }\n if ((config as BackendAPIStoreConfig).id) {\n this.id = (config as BackendAPIStoreConfig).id!;\n return;\n }\n if ((config as BackendAPIStoreConfig).name) {\n const name = (config as BackendAPIStoreConfig).name!;\n this.id = `${process.env.DATA_ROOT}/backend-api-store/${name}`;\n }\n }\n\n async init(): Promise<void> {\n // No initialization needed — queries are routed to the backend\n }\n\n // Queries serialize to DSL-JSON for the wire (core 2.10.0 contract flip): the\n // live (closed) query can't cross Server.call as-is, so we ship `toJSON()` and\n // the BackendAPIStoreProvider rehydrates with `fromJSON()` on the backend.\n selectQuery(query: SelectQuery): Promise<SelectResult> {\n return this.callBackend('selectQuery', query.toJSON());\n }\n\n askQuery(query: AskQuery): Promise<boolean> {\n return this.callBackend('askQuery', query.toJSON());\n }\n\n updateQuery(query: UpdateQuery): Promise<UpdateResult> {\n return this.callBackend('updateQuery', query.toJSON());\n }\n\n createQuery(query: CreateQuery): Promise<CreateResult> {\n return this.callBackend('createQuery', query.toJSON());\n }\n\n deleteQuery(query: DeleteQuery): Promise<DeleteResponse> {\n return this.callBackend('deleteQuery', query.toJSON());\n }\n\n /**\n * Opts in to `rejectOnError`, so a failed call (HTTP error status, or no\n * provider on the backend) rejects with a `ServerCallError` carrying the\n * status and the server's message instead of reading as an empty result.\n * Whatever a successful call returns, `undefined` included, resolves as is.\n */\n private callBackend<T>(method: string, json: unknown): Promise<T> {\n // The PACKAGE form, not the shape form. It posts to\n // `/call/<packageName>/<method>` with a body of `{args}` only — no `shapeURI`,\n // no `instanceNode` — and the backend answers from this package's generic\n // provider without resolving or instantiating any Shape.\n return Server.call(packageName, { method, rejectOnError: true }, json);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RouteConfig.js","sourceRoot":"","sources":["../../../src/types/RouteConfig.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"RouteConfig.js","sourceRoot":"","sources":["../../../src/types/RouteConfig.ts"],"names":[],"mappings":"","sourcesContent":["import React from 'react';\n\n/**\n * Configuration for a single route in the application\n */\nexport interface RouteConfig {\n /**\n * The URL path pattern for this route (e.g. \"/signin\", \"/data/:id\")\n * Supports React Router path syntax including params (:id) and wildcards (*)\n */\n path: string;\n\n /**\n * Component for this route (can be lazy-loaded or eager)\n * For lazy loading, use React.lazy(() => import('./Component')) with webpackChunkName comment\n * For eager loading, import the component directly\n */\n component?:\n | React.LazyExoticComponent<() => React.JSX.Element>\n | React.ComponentType<any>;\n\n /**\n * Custom render function for the route (alternative to component)\n */\n render?: () => React.JSX.Element;\n\n /**\n * Whether this route requires authentication\n * @default false\n */\n requireAuth?: boolean;\n\n /**\n * Whether to exclude this route from navigation menus\n * @default false\n */\n excludeFromMenu?: boolean;\n\n /**\n * Display label for this route in navigation/menus\n */\n label?: string;\n\n /**\n * Webpack chunk names to preload for this route (for SSR optimization)\n * These should match the webpackChunkName comments in lazy imports\n * @example ['signin', 'common-components']\n */\n preloadChunks?: string[];\n}\n\n/**\n * Collection of all routes in the application\n * Key is the route identifier, value is the route configuration\n */\nexport type RoutesConfig = Record<string, RouteConfig>;\n\n/**\n * Module shape expected when loading routes dynamically\n * Routes can be exported as ROUTES or as default export\n */\nexport interface RoutesModule {\n ROUTES?: RoutesConfig;\n default?:\n | {\n ROUTES?: RoutesConfig;\n }\n | RoutesConfig;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["declare module '*.module.css' {\n const classes: { [key: string]: string };\n export default classes;\n}\n\ndeclare module '*.module.scss' {\n const classes: { [key: string]: string };\n export default classes;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NodeQuadStore.js","sourceRoot":"","sources":["../../../src/utils/NodeQuadStore.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAW,oBAAoB,CAAC;AAEzD,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC;QAC5D,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACnB,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;IAClB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IACnB,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,OAAO,CACrB,mBAAgD,EAChD,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS;IAE9B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,GAAG,GAAuB,EAAE,CAAC;IACjC,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,mBAAmB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;QAC/C,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG,UAAU,CAAC,gBAAgB,GAAG,GAAG,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC;QAC1E,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,GAAG,UAAU,CAAC,gBAAgB,GAAG,GAAG,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC;QACxE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"NodeQuadStore.js","sourceRoot":"","sources":["../../../src/utils/NodeQuadStore.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAW,oBAAoB,CAAC;AAEzD,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC;QAC5D,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACnB,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;IAClB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IACnB,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,OAAO,CACrB,mBAAgD,EAChD,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS;IAE9B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,GAAG,GAAuB,EAAE,CAAC;IACjC,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,mBAAmB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;QAC/C,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG,UAAU,CAAC,gBAAgB,GAAG,GAAG,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC;QAC1E,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,GAAG,UAAU,CAAC,gBAAgB,GAAG,GAAG,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC;QACxE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC","sourcesContent":["export const STORAGE_PATH: string = './data/filestores/';\n\nfunction hashString(str: string): string {\n let hash = 0;\n for (let charIndex = 0; charIndex < str.length; ++charIndex) {\n hash += str.charCodeAt(charIndex);\n hash += hash << 10;\n hash ^= hash >> 6;\n }\n hash += hash << 3;\n hash ^= hash >> 11;\n return (((hash + (hash << 15)) & 4294967295) >>> 0).toString(16);\n}\n\nconst newUris = new Set<string>();\n\n/**\n * @deprecated — URI generation for old quad stores. Will be removed.\n */\nexport function setURIs(\n nodeToCurrentUriMap: Map<{ id: string }, string>,\n prefix = process.env.DATA_ROOT\n): Promise<[string, string][]> {\n let counter = 0;\n let res: [string, string][] = [];\n let currentTimestamp = Date.now();\n nodeToCurrentUriMap.forEach((currentUri, node) => {\n let newUri = `${prefix}${hashString(currentTimestamp + '.' + counter++)}`;\n while (newUris.has(newUri)) {\n newUri = `${prefix}${hashString(currentTimestamp + '.' + counter++)}`;\n }\n newUris.add(newUri);\n res.push([currentUri, newUri]);\n });\n return Promise.resolve(res);\n}\n"]}