@absolutejs/absolute 0.12.4 → 0.12.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/index.d.ts +0 -1
- package/dist/core/pageHandlers.d.ts +0 -7
- package/dist/index.js +109 -908
- package/dist/index.js.map +6 -8
- package/package.json +3 -19
- package/dist/build/compileAngular.d.ts +0 -5
- package/dist/core/angularPatch.d.ts +0 -3
package/dist/index.js.map
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/constants.ts", "../src/core/
|
|
3
|
+
"sources": ["../src/constants.ts", "../src/core/build.ts", "../src/build/compileSvelte.ts", "../src/build/compileVue.ts", "../src/utils/stringModifiers.ts", "../src/build/generateManifest.ts", "../src/build/generateReactIndexes.ts", "../src/build/outputLogs.ts", "../src/build/scanEntryPoints.ts", "../src/build/updateAssetPaths.ts", "../src/utils/cleanup.ts", "../src/utils/commonAncestor.ts", "../src/utils/getDurationString.ts", "../src/utils/validateSafePath.ts", "../src/core/pageHandlers.ts", "../src/svelte/renderToReadableStream.ts", "../src/utils/escapeScriptContent.ts", "../src/svelte/renderToString.ts", "../src/core/lookup.ts", "../src/plugins/networking.ts", "../src/utils/networking.ts", "../src/plugins/pageRouter.ts", "../src/utils/generateHeadElement.ts", "../src/utils/getEnv.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"export const UNFOUND_INDEX = -1;\nexport const SECONDS_IN_A_MINUTE = 60;\nexport const MILLISECONDS_IN_A_SECOND = 1000;\nexport const MILLISECONDS_IN_A_MINUTE =\n\tMILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;\nexport const MINUTES_IN_AN_HOUR = 60;\nexport const HOURS_IN_DAY = 24;\nexport const MILLISECONDS_IN_A_DAY =\n\tMILLISECONDS_IN_A_SECOND *\n\tSECONDS_IN_A_MINUTE *\n\tMINUTES_IN_AN_HOUR *\n\tHOURS_IN_DAY;\nexport const TIME_PRECISION = 2;\nexport const TWO_THIRDS = 2 / 3;\nexport const DEFAULT_PORT = 3000;\nexport const DEFAULT_CHUNK_SIZE = 16_384;\nexport const BUN_BUILD_WARNING_SUPPRESSION =\n\t'wildcard sideEffects are not supported yet';\nexport const ANGULAR_BUILD_WARNING_SUPPRESSION = '@angular/common/package.json';\n",
|
|
6
|
-
"// CRITICAL: This module patches Angular SSR at module resolution time\n// It uses top-level await to ensure patches are applied BEFORE any Angular SSR code executes\n// This module MUST be imported before any Angular SSR modules are used\n\n// Helper function to capture stack trace\nfunction getStackTrace(): string {\n\tconst stack = new Error().stack;\n\treturn stack\n\t\t? stack.split('\\n').slice(2, 10).join('\\n')\n\t\t: 'No stack trace available';\n}\n\n// CRITICAL: Proxy-based patching at JavaScript engine level\n// This intercepts property access on Document objects to handle null head.children\nexport function createDocumentProxy(doc: any): any {\n\tif (!doc || typeof doc !== 'object') return doc;\n\n\t// Check if already proxied\n\tif (doc.__absolutejs_proxied) return doc;\n\n\tconsole.log('🔍 [ANGULAR PATCH] Creating document proxy:', {\n\t\thasHead: !!doc.head,\n\t\theadIsNull: doc.head === null,\n\t\theadType: typeof doc.head,\n\t\tstack: getStackTrace()\n\t});\n\n\t// AGGRESSIVE PATCH: Ensure head property always exists and has children\n\t// This prevents \"null is not an object\" errors at the property definition level\n\tif (doc.head === null || doc.head === undefined) {\n\t\t// Create a fake head object with children property\n\t\tconst fakeHead: any = {\n\t\t\tchildren: []\n\t\t};\n\t\tfakeHead.children.length = 0;\n\t\tObject.defineProperty(fakeHead, 'item', {\n\t\t\tvalue: () => null,\n\t\t\twritable: false,\n\t\t\tenumerable: false,\n\t\t\tconfigurable: false\n\t\t});\n\n\t\t// Replace null head with fake head\n\t\ttry {\n\t\t\tObject.defineProperty(doc, 'head', {\n\t\t\t\tvalue: fakeHead,\n\t\t\t\twritable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t} catch (error) {\n\t\t\t// If we can't define property, the Proxy will handle it\n\t\t}\n\t} else if (doc.head && typeof doc.head === 'object') {\n\t\t// Ensure existing head has children property\n\t\tif (\n\t\t\t!doc.head.children ||\n\t\t\ttypeof doc.head.children.length === 'undefined'\n\t\t) {\n\t\t\tconst elementNodes = Array.from(doc.head.childNodes || []).filter(\n\t\t\t\t(node: any) => node.nodeType === 1\n\t\t\t);\n\t\t\tconst childrenArray: any[] = [];\n\t\t\telementNodes.forEach((node, index) => {\n\t\t\t\tchildrenArray[index] = node;\n\t\t\t});\n\t\t\tchildrenArray.length = elementNodes.length;\n\t\t\ttry {\n\t\t\t\tObject.defineProperty(doc.head, 'children', {\n\t\t\t\t\tvalue: childrenArray,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\t// If we can't define property, the Proxy will handle it\n\t\t\t}\n\t\t}\n\t\t// Ensure head has querySelectorAll if it doesn't\n\t\tif (doc.head && typeof doc.head.querySelectorAll !== 'function') {\n\t\t\ttry {\n\t\t\t\tObject.defineProperty(doc.head, 'querySelectorAll', {\n\t\t\t\t\tvalue: function (selector: string) {\n\t\t\t\t\t\t// Use the document's querySelectorAll and filter to head\n\t\t\t\t\t\tif (doc.querySelectorAll) {\n\t\t\t\t\t\t\tconst all = doc.querySelectorAll(selector);\n\t\t\t\t\t\t\treturn Array.from(all).filter(\n\t\t\t\t\t\t\t\t(el: any) =>\n\t\t\t\t\t\t\t\t\tel.parentElement === doc.head ||\n\t\t\t\t\t\t\t\t\tdoc.head.contains(el)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t},\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: true\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\t// If we can't define property, the Proxy will handle it\n\t\t\t}\n\t\t}\n\t\t// Ensure head has querySelector if it doesn't\n\t\tif (doc.head && typeof doc.head.querySelector !== 'function') {\n\t\t\ttry {\n\t\t\t\tObject.defineProperty(doc.head, 'querySelector', {\n\t\t\t\t\tvalue: function (selector: string) {\n\t\t\t\t\t\t// Use the document's querySelector and check if it's in head\n\t\t\t\t\t\tif (doc.querySelector) {\n\t\t\t\t\t\t\tconst el = doc.querySelector(selector);\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tel &&\n\t\t\t\t\t\t\t\t(el.parentElement === doc.head ||\n\t\t\t\t\t\t\t\t\tdoc.head.contains(el))\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn el;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t},\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: true\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\t// If we can't define property, the Proxy will handle it\n\t\t\t}\n\t\t}\n\t}\n\n\t// Create a Proxy that intercepts property access\n\tconst proxy = new Proxy(doc, {\n\t\tget(target: any, prop: string | symbol) {\n\t\t\t// Handle the specific case: doc.head.children when head is null\n\t\t\t// This is the exact error: \"null is not an object (evaluating 'doc.head.children')\"\n\t\t\tif (prop === 'head') {\n\t\t\t\tconsole.log(\n\t\t\t\t\t'🔍 [ANGULAR PATCH] Proxy: head property accessed:',\n\t\t\t\t\t{\n\t\t\t\t\t\thasHead: !!target.head,\n\t\t\t\t\t\theadIsNull: target.head === null,\n\t\t\t\t\t\theadType: typeof target.head,\n\t\t\t\t\t\tstack: getStackTrace()\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tconst head = target.head;\n\t\t\t\tif (!head || head === null) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'⚠️ [ANGULAR PATCH] Proxy: head is null, returning fake head proxy'\n\t\t\t\t\t);\n\t\t\t\t\t// Return a proxy for head that safely handles ALL property access\n\t\t\t\t\t// This prevents \"null is not an object\" errors when accessing head.children\n\t\t\t\t\treturn new Proxy(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tget(_target: any, headProp: string | symbol) {\n\t\t\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t\t\t'🔍 [ANGULAR PATCH] Fake head proxy: property accessed:',\n\t\t\t\t\t\t\t\t\theadProp,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tstack: getStackTrace()\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif (headProp === 'children') {\n\t\t\t\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t\t\t\t'✅ [ANGULAR PATCH] Fake head proxy: returning empty children array'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t// Return an empty array-like object with length property\n\t\t\t\t\t\t\t\t\tconst emptyChildren: any[] = [];\n\t\t\t\t\t\t\t\t\temptyChildren.length = 0;\n\t\t\t\t\t\t\t\t\t// Make it look like an HTMLCollection\n\t\t\t\t\t\t\t\t\tObject.defineProperty(\n\t\t\t\t\t\t\t\t\t\temptyChildren,\n\t\t\t\t\t\t\t\t\t\t'item',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tvalue: () => null,\n\t\t\t\t\t\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\t\t\t\t\t\tconfigurable: false\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn emptyChildren;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (headProp === 'querySelectorAll') {\n\t\t\t\t\t\t\t\t\t// Return a function that returns an empty NodeList-like object\n\t\t\t\t\t\t\t\t\treturn function (selector: string) {\n\t\t\t\t\t\t\t\t\t\tconst emptyNodeList: any[] = [];\n\t\t\t\t\t\t\t\t\t\temptyNodeList.length = 0;\n\t\t\t\t\t\t\t\t\t\treturn emptyNodeList;\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (headProp === 'querySelector') {\n\t\t\t\t\t\t\t\t\t// Return a function that returns null\n\t\t\t\t\t\t\t\t\treturn function (selector: string) {\n\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// For any other property access on null head, return undefined\n\t\t\t\t\t\t\t\t// This prevents errors when Angular SSR checks head properties\n\t\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\thas() {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\townKeys() {\n\t\t\t\t\t\t\t\treturn ['children'];\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetOwnPropertyDescriptor() {\n\t\t\t\t\t\t\t\t// Return descriptor for children to make it enumerable\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\t\t\t\tvalue: []\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// If head exists, proxy it too to handle children access\n\t\t\t\tif (head && typeof head === 'object') {\n\t\t\t\t\treturn createHeadProxy(head);\n\t\t\t\t}\n\t\t\t\treturn head;\n\t\t\t}\n\n\t\t\t// For all other properties, return normally\n\t\t\tconst value = target[prop];\n\n\t\t\t// If the value is a function, bind it to the original target\n\t\t\tif (typeof value === 'function') {\n\t\t\t\treturn value.bind(target);\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\t\tset(target: any, prop: string | symbol, value: any) {\n\t\t\ttarget[prop] = value;\n\t\t\treturn true;\n\t\t},\n\t\thas(target: any, prop: string | symbol) {\n\t\t\treturn prop in target;\n\t\t},\n\t\townKeys(target: any) {\n\t\t\treturn Reflect.ownKeys(target);\n\t\t}\n\t});\n\n\t// Mark as proxied to avoid infinite recursion\n\tObject.defineProperty(doc, '__absolutejs_proxied', {\n\t\tvalue: true,\n\t\twritable: false,\n\t\tconfigurable: false,\n\t\tenumerable: false\n\t});\n\n\treturn proxy;\n}\n\n// Proxy for head element to safely handle children access\nfunction createHeadProxy(head: any): any {\n\t// Ensure head has querySelectorAll and querySelector before proxying\n\tif (head && typeof head === 'object') {\n\t\tif (typeof head.querySelectorAll !== 'function') {\n\t\t\ttry {\n\t\t\t\tObject.defineProperty(head, 'querySelectorAll', {\n\t\t\t\t\tvalue: function (selector: string) {\n\t\t\t\t\t\t// Use document's querySelectorAll if available\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\thead.ownerDocument &&\n\t\t\t\t\t\t\thead.ownerDocument.querySelectorAll\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst all =\n\t\t\t\t\t\t\t\thead.ownerDocument.querySelectorAll(selector);\n\t\t\t\t\t\t\treturn Array.from(all).filter(\n\t\t\t\t\t\t\t\t(el: any) =>\n\t\t\t\t\t\t\t\t\tel.parentElement === head ||\n\t\t\t\t\t\t\t\t\thead.contains(el)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t},\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: true\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\t// Property might be read-only, continue\n\t\t\t}\n\t\t}\n\t\tif (typeof head.querySelector !== 'function') {\n\t\t\ttry {\n\t\t\t\tObject.defineProperty(head, 'querySelector', {\n\t\t\t\t\tvalue: function (selector: string) {\n\t\t\t\t\t\t// Use document's querySelector if available\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\thead.ownerDocument &&\n\t\t\t\t\t\t\thead.ownerDocument.querySelector\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst el =\n\t\t\t\t\t\t\t\thead.ownerDocument.querySelector(selector);\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tel &&\n\t\t\t\t\t\t\t\t(el.parentElement === head || head.contains(el))\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn el;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t},\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: true\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\t// Property might be read-only, continue\n\t\t\t}\n\t\t}\n\t}\n\tif (!head || typeof head !== 'object') return head;\n\tif (head.__absolutejs_head_proxied) return head;\n\n\tconst proxy = new Proxy(head, {\n\t\tget(target: any, prop: string | symbol) {\n\t\t\tif (prop === 'children') {\n\t\t\t\tconst children = target.children;\n\t\t\t\tif (!children || typeof children.length === 'undefined') {\n\t\t\t\t\t// Return a safe array-like object\n\t\t\t\t\tconst elementNodes = Array.from(\n\t\t\t\t\t\ttarget.childNodes || []\n\t\t\t\t\t).filter((node: any) => node.nodeType === 1);\n\t\t\t\t\tconst childrenArray: any[] = [];\n\t\t\t\t\telementNodes.forEach((node, index) => {\n\t\t\t\t\t\tchildrenArray[index] = node;\n\t\t\t\t\t});\n\t\t\t\t\tchildrenArray.length = elementNodes.length;\n\t\t\t\t\treturn childrenArray;\n\t\t\t\t}\n\t\t\t\treturn children;\n\t\t\t}\n\t\t\t// Ensure querySelectorAll and querySelector exist\n\t\t\tif (\n\t\t\t\tprop === 'querySelectorAll' &&\n\t\t\t\ttypeof target.querySelectorAll !== 'function'\n\t\t\t) {\n\t\t\t\treturn function (selector: string) {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttarget.ownerDocument &&\n\t\t\t\t\t\ttarget.ownerDocument.querySelectorAll\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst all =\n\t\t\t\t\t\t\ttarget.ownerDocument.querySelectorAll(selector);\n\t\t\t\t\t\treturn Array.from(all).filter(\n\t\t\t\t\t\t\t(el: any) =>\n\t\t\t\t\t\t\t\tel.parentElement === target ||\n\t\t\t\t\t\t\t\ttarget.contains(el)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn [];\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (\n\t\t\t\tprop === 'querySelector' &&\n\t\t\t\ttypeof target.querySelector !== 'function'\n\t\t\t) {\n\t\t\t\treturn function (selector: string) {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttarget.ownerDocument &&\n\t\t\t\t\t\ttarget.ownerDocument.querySelector\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst el = target.ownerDocument.querySelector(selector);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tel &&\n\t\t\t\t\t\t\t(el.parentElement === target || target.contains(el))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn el;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst value = target[prop];\n\t\t\tif (typeof value === 'function') {\n\t\t\t\treturn value.bind(target);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t});\n\n\tObject.defineProperty(head, '__absolutejs_head_proxied', {\n\t\tvalue: true,\n\t\twritable: false,\n\t\tconfigurable: false,\n\t\tenumerable: false\n\t});\n\n\treturn proxy;\n}\n\n// Use top-level await to ensure patches are applied synchronously during module resolution\nconst patchesApplied = (async () => {\n\ttry {\n\t\t// Add global error handler to catch the specific error\n\t\ttry {\n\t\t\tconst originalErrorHandler = globalThis.onerror;\n\t\t\tglobalThis.onerror = function (\n\t\t\t\tmessage,\n\t\t\t\tsource,\n\t\t\t\tlineno,\n\t\t\t\tcolno,\n\t\t\t\terror\n\t\t\t) {\n\t\t\t\tif (\n\t\t\t\t\ttypeof message === 'string' &&\n\t\t\t\t\tmessage.includes('doc.head.children')\n\t\t\t\t) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'🚨 [ANGULAR PATCH] Caught doc.head.children error:',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\tsource,\n\t\t\t\t\t\t\tlineno,\n\t\t\t\t\t\t\tcolno,\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\tstack: error?.stack || 'No stack trace'\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (originalErrorHandler) {\n\t\t\t\t\treturn originalErrorHandler.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t\tsource,\n\t\t\t\t\t\tlineno,\n\t\t\t\t\t\tcolno,\n\t\t\t\t\t\terror\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconsole.warn(\n\t\t\t\t'⚠️ [ANGULAR PATCH] Failed to set global error handler:',\n\t\t\t\terror\n\t\t\t);\n\t\t}\n\n\t\t// Also catch unhandled promise rejections\n\t\ttry {\n\t\t\tconst originalUnhandledRejection = globalThis.onunhandledrejection;\n\t\t\tglobalThis.onunhandledrejection = function (event) {\n\t\t\t\tif (\n\t\t\t\t\tevent.reason &&\n\t\t\t\t\ttypeof event.reason === 'object' &&\n\t\t\t\t\tevent.reason.message &&\n\t\t\t\t\tevent.reason.message.includes('doc.head.children')\n\t\t\t\t) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'🚨 [ANGULAR PATCH] Unhandled rejection with doc.head.children error:',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treason: event.reason,\n\t\t\t\t\t\t\tstack: event.reason?.stack || 'No stack trace'\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (originalUnhandledRejection) {\n\t\t\t\t\treturn originalUnhandledRejection.call(this, event);\n\t\t\t\t}\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconsole.warn(\n\t\t\t\t'⚠️ [ANGULAR PATCH] Failed to set unhandled rejection handler:',\n\t\t\t\terror\n\t\t\t);\n\t\t}\n\n\t\t// Import Angular modules to patch them\n\t\tconst [common, platformServer] = await Promise.all([\n\t\t\timport('@angular/common'),\n\t\t\timport('@angular/platform-server')\n\t\t]);\n\n\t\tconsole.log(\n\t\t\t'✅ [ANGULAR PATCH] Angular modules imported, starting patches...'\n\t\t);\n\n\t\t// Patch _getDOM to intercept all DOM adapter access\n\t\tconst _getDOM = (common as any).ɵgetDOM;\n\t\tif (_getDOM) {\n\t\t\tconst originalGetDOM = _getDOM;\n\t\t\ttry {\n\t\t\t\t// Try to override using defineProperty first (handles readonly properties)\n\t\t\t\tObject.defineProperty(common, 'ɵgetDOM', {\n\t\t\t\t\tvalue: function () {\n\t\t\t\t\t\tconst domAdapter = originalGetDOM();\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdomAdapter &&\n\t\t\t\t\t\t\ttypeof domAdapter.getBaseHref === 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Store original if not already stored\n\t\t\t\t\t\t\tconst adapter = domAdapter as any;\n\t\t\t\t\t\t\tif (!adapter.__absolutejs_originalGetBaseHref) {\n\t\t\t\t\t\t\t\tadapter.__absolutejs_originalGetBaseHref =\n\t\t\t\t\t\t\t\t\tdomAdapter.getBaseHref.bind(domAdapter);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Use defineProperty to make the patch non-overwritable\n\t\t\t\t\t\t\tObject.defineProperty(domAdapter, 'getBaseHref', {\n\t\t\t\t\t\t\t\tvalue: function (doc: any) {\n\t\t\t\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t\t\t\t'🔍 [ANGULAR PATCH] getBaseHref called via _getDOM():',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\thasDoc: !!doc,\n\t\t\t\t\t\t\t\t\t\t\thasHead: !!doc?.head,\n\t\t\t\t\t\t\t\t\t\t\theadIsNull: doc?.head === null,\n\t\t\t\t\t\t\t\t\t\t\theadType: typeof doc?.head,\n\t\t\t\t\t\t\t\t\t\t\thasChildren: !!doc?.head?.children,\n\t\t\t\t\t\t\t\t\t\t\tchildrenType:\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof doc?.head?.children,\n\t\t\t\t\t\t\t\t\t\t\tstack: getStackTrace()\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t// Bun compatibility: handle case where doc.head is null/undefined\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t!doc ||\n\t\t\t\t\t\t\t\t\t\t!doc.head ||\n\t\t\t\t\t\t\t\t\t\ttypeof doc.head.children === 'undefined'\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\t\t\t\t'⚠️ [ANGULAR PATCH] getBaseHref (_getDOM): Returning empty string due to null/undefined head or children'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Call original function if doc.head exists\n\t\t\t\t\t\t\t\t\tconst result =\n\t\t\t\t\t\t\t\t\t\tadapter.__absolutejs_originalGetBaseHref.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tdoc\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t\t\t\t'✅ [ANGULAR PATCH] getBaseHref (_getDOM) result:',\n\t\t\t\t\t\t\t\t\t\tresult\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\t\t\tenumerable: true\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn domAdapter;\n\t\t\t\t\t},\n\t\t\t\t\twritable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\tenumerable: true\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\t// If defineProperty fails (property is not configurable), try direct assignment\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'⚠️ [ANGULAR PATCH] Failed to patch _getDOM via defineProperty, trying direct assignment:',\n\t\t\t\t\terror\n\t\t\t\t);\n\t\t\t\ttry {\n\t\t\t\t\t(common as any).ɵgetDOM = function () {\n\t\t\t\t\t\tconst domAdapter = originalGetDOM();\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdomAdapter &&\n\t\t\t\t\t\t\ttypeof domAdapter.getBaseHref === 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst adapter = domAdapter as any;\n\t\t\t\t\t\t\tif (!adapter.__absolutejs_originalGetBaseHref) {\n\t\t\t\t\t\t\t\tadapter.__absolutejs_originalGetBaseHref =\n\t\t\t\t\t\t\t\t\tdomAdapter.getBaseHref.bind(domAdapter);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tObject.defineProperty(domAdapter, 'getBaseHref', {\n\t\t\t\t\t\t\t\tvalue: function (doc: any) {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t!doc ||\n\t\t\t\t\t\t\t\t\t\t!doc.head ||\n\t\t\t\t\t\t\t\t\t\ttypeof doc.head.children === 'undefined'\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn adapter.__absolutejs_originalGetBaseHref.call(\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tdoc\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\t\t\tenumerable: true\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn domAdapter;\n\t\t\t\t\t};\n\t\t\t\t} catch (assignError) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'⚠️ [ANGULAR PATCH] Failed to patch _getDOM via direct assignment:',\n\t\t\t\t\t\tassignError\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Patch DominoAdapter class directly\n\t\t// @ts-expect-error - DominoAdapter exists at runtime\n\t\tconst DominoAdapter = platformServer.DominoAdapter;\n\t\tif (DominoAdapter && DominoAdapter.prototype) {\n\t\t\tconst prototype = DominoAdapter.prototype;\n\n\t\t\t// Patch getBaseHref to handle null doc.head\n\t\t\tif (\n\t\t\t\tprototype.getBaseHref &&\n\t\t\t\t!prototype.__absolutejs_originalGetBaseHref\n\t\t\t) {\n\t\t\t\tprototype.__absolutejs_originalGetBaseHref =\n\t\t\t\t\tprototype.getBaseHref;\n\t\t\t\tprototype.getBaseHref = function (doc: any) {\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t'🔍 [ANGULAR PATCH] getBaseHref called on DominoAdapter.prototype:',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\thasDoc: !!doc,\n\t\t\t\t\t\t\thasHead: !!doc?.head,\n\t\t\t\t\t\t\theadIsNull: doc?.head === null,\n\t\t\t\t\t\t\theadType: typeof doc?.head,\n\t\t\t\t\t\t\thasChildren: !!doc?.head?.children,\n\t\t\t\t\t\t\tchildrenType: typeof doc?.head?.children,\n\t\t\t\t\t\t\tstack: getStackTrace()\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t!doc ||\n\t\t\t\t\t\t!doc.head ||\n\t\t\t\t\t\ttypeof doc.head.children === 'undefined'\n\t\t\t\t\t) {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t'⚠️ [ANGULAR PATCH] getBaseHref: Returning empty string due to null/undefined head or children'\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t\tconst result =\n\t\t\t\t\t\tprototype.__absolutejs_originalGetBaseHref.call(\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\tdoc\n\t\t\t\t\t\t);\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t'✅ [ANGULAR PATCH] getBaseHref result:',\n\t\t\t\t\t\tresult\n\t\t\t\t\t);\n\t\t\t\t\treturn result;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Patch createHtmlDocument to ensure default documents have proper head structure\n\t\t\t// AND wrap them in a Proxy to intercept property access\n\t\t\tif (\n\t\t\t\tprototype.createHtmlDocument &&\n\t\t\t\t!prototype.__absolutejs_originalCreateHtmlDocument\n\t\t\t) {\n\t\t\t\tprototype.__absolutejs_originalCreateHtmlDocument =\n\t\t\t\t\tprototype.createHtmlDocument;\n\t\t\t\tprototype.createHtmlDocument = function () {\n\t\t\t\t\tconsole.log('🔍 [ANGULAR PATCH] createHtmlDocument called');\n\t\t\t\t\tconst doc =\n\t\t\t\t\t\tprototype.__absolutejs_originalCreateHtmlDocument.call(\n\t\t\t\t\t\t\tthis\n\t\t\t\t\t\t);\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t'🔍 [ANGULAR PATCH] createHtmlDocument result:',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\thasDoc: !!doc,\n\t\t\t\t\t\t\thasHead: !!doc?.head,\n\t\t\t\t\t\t\theadIsNull: doc?.head === null,\n\t\t\t\t\t\t\tstack: getStackTrace()\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\t// Wrap in Proxy to intercept property access at engine level\n\t\t\t\t\treturn createDocumentProxy(doc);\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Patch getDefaultDocument to return proxied document\n\t\t\tif (\n\t\t\t\tprototype.getDefaultDocument &&\n\t\t\t\t!prototype.__absolutejs_originalGetDefaultDocument\n\t\t\t) {\n\t\t\t\tprototype.__absolutejs_originalGetDefaultDocument =\n\t\t\t\t\tprototype.getDefaultDocument;\n\t\t\t\tprototype.getDefaultDocument = function () {\n\t\t\t\t\tconst doc =\n\t\t\t\t\t\tprototype.__absolutejs_originalGetDefaultDocument.call(\n\t\t\t\t\t\t\tthis\n\t\t\t\t\t\t);\n\t\t\t\t\treturn createDocumentProxy(doc);\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// Patch domino's createWindow/createDocument if available\n\t\t// This intercepts document creation at the source\n\t\ttry {\n\t\t\t// @ts-expect-error - domino may not be installed in absolutejs, but should be in user's project\n\t\t\tconst domino = await import('domino').catch(() => null);\n\t\t\tif (domino) {\n\t\t\t\t// Patch createWindow\n\t\t\t\tif (\n\t\t\t\t\tdomino.createWindow &&\n\t\t\t\t\t!(domino as any).__absolutejs_originalCreateWindow\n\t\t\t\t) {\n\t\t\t\t\t(domino as any).__absolutejs_originalCreateWindow =\n\t\t\t\t\t\tdomino.createWindow;\n\t\t\t\t\tdomino.createWindow = function (html: string, url: string) {\n\t\t\t\t\t\tconst window = (\n\t\t\t\t\t\t\tdomino as any\n\t\t\t\t\t\t).__absolutejs_originalCreateWindow(html, url);\n\t\t\t\t\t\tif (window && window.document) {\n\t\t\t\t\t\t\twindow.document = createDocumentProxy(\n\t\t\t\t\t\t\t\twindow.document\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn window;\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Patch createDocument\n\t\t\t\tif (\n\t\t\t\t\tdomino.createDocument &&\n\t\t\t\t\t!(domino as any).__absolutejs_originalCreateDocument\n\t\t\t\t) {\n\t\t\t\t\t(domino as any).__absolutejs_originalCreateDocument =\n\t\t\t\t\t\tdomino.createDocument;\n\t\t\t\t\tdomino.createDocument = function (html?: string) {\n\t\t\t\t\t\tconst doc = (\n\t\t\t\t\t\t\tdomino as any\n\t\t\t\t\t\t).__absolutejs_originalCreateDocument(html);\n\t\t\t\t\t\treturn createDocumentProxy(doc);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// domino might not be available, that's okay\n\t\t}\n\n\t\t// Patch Angular SSR's _document function to return proxied documents\n\t\t// This is the function that creates/returns the document used by Angular SSR\n\t\ttry {\n\t\t\t// Access the internal _document function from platform-server\n\t\t\tconst serverModule = platformServer as any;\n\t\t\t// The _document function is typically in the server-hHJ05Ji8.mjs file\n\t\t\t// We'll patch it through the module exports if accessible\n\t\t\tif (serverModule._document || (platformServer as any).ɵ_document) {\n\t\t\t\tconst originalDocument =\n\t\t\t\t\tserverModule._document ||\n\t\t\t\t\t(platformServer as any).ɵ_document;\n\t\t\t\tif (typeof originalDocument === 'function') {\n\t\t\t\t\t(platformServer as any)._document = function (\n\t\t\t\t\t\tinjector: any\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst doc = originalDocument(injector);\n\t\t\t\t\t\treturn createDocumentProxy(doc);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// _document might not be accessible, that's okay\n\t\t}\n\n\t\tconsole.log('✅ Angular SSR patches applied at module resolution time');\n\t\treturn true;\n\t} catch (error) {\n\t\tconsole.warn(\n\t\t\t'⚠️ Failed to apply Angular SSR patches at module resolution time:',\n\t\t\terror\n\t\t);\n\t\treturn false;\n\t}\n})();\n\n// Export a promise that resolves when patches are applied\n// This ensures the module is \"loaded\" (patches applied) before any code that imports this module continues\nexport default patchesApplied;\n",
|
|
7
|
-
"import { copyFileSync, cpSync, mkdirSync } from 'node:fs';\nimport { rm } from 'node:fs/promises';\nimport { basename, join } from 'node:path';\nimport { cwd, env, exit } from 'node:process';\nimport { $, build as bunBuild, BuildArtifact, Glob } from 'bun';\nimport { compileAngular } from '../build/compileAngular';\nimport { compileSvelte } from '../build/compileSvelte';\nimport { compileVue } from '../build/compileVue';\nimport { generateManifest } from '../build/generateManifest';\nimport { generateReactIndexFiles } from '../build/generateReactIndexes';\nimport { outputLogs } from '../build/outputLogs';\nimport { scanEntryPoints } from '../build/scanEntryPoints';\nimport { updateAssetPaths } from '../build/updateAssetPaths';\nimport { BuildConfig } from '../types';\nimport { cleanup } from '../utils/cleanup';\nimport { commonAncestor } from '../utils/commonAncestor';\nimport { getDurationString } from '../utils/getDurationString';\nimport { validateSafePath } from '../utils/validateSafePath';\n\nconst isDev = env.NODE_ENV === 'development';\n\nconst vueFeatureFlags: Record<string, string> = {\n\t__VUE_OPTIONS_API__: 'true',\n\t__VUE_PROD_DEVTOOLS__: isDev ? 'true' : 'false',\n\t__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: isDev ? 'true' : 'false'\n};\n\nexport const build = async ({\n\tbuildDirectory = 'build',\n\tassetsDirectory = 'assets',\n\treactDirectory,\n\thtmlDirectory,\n\thtmxDirectory,\n\tangularDirectory,\n\tsvelteDirectory,\n\tvueDirectory,\n\ttailwind,\n\toptions\n}: BuildConfig) => {\n\tconst buildStart = performance.now();\n\tconst projectRoot = cwd();\n\n\tconst buildPath = validateSafePath(buildDirectory, projectRoot);\n\tconst assetsPath =\n\t\tassetsDirectory && validateSafePath(assetsDirectory, projectRoot);\n\tconst reactDir =\n\t\treactDirectory && validateSafePath(reactDirectory, projectRoot);\n\tconst htmlDir =\n\t\thtmlDirectory && validateSafePath(htmlDirectory, projectRoot);\n\tconst htmxDir =\n\t\thtmxDirectory && validateSafePath(htmxDirectory, projectRoot);\n\tconst svelteDir =\n\t\tsvelteDirectory && validateSafePath(svelteDirectory, projectRoot);\n\tconst vueDir = vueDirectory && validateSafePath(vueDirectory, projectRoot);\n\tconst angularDir =\n\t\tangularDirectory && validateSafePath(angularDirectory, projectRoot);\n\n\tconst reactIndexesPath = reactDir && join(reactDir, 'indexes');\n\tconst reactPagesPath = reactDir && join(reactDir, 'pages');\n\tconst htmlPagesPath = htmlDir && join(htmlDir, 'pages');\n\tconst htmlScriptsPath = htmlDir && join(htmlDir, 'scripts');\n\tconst sveltePagesPath = svelteDir && join(svelteDir, 'pages');\n\tconst vuePagesPath = vueDir && join(vueDir, 'pages');\n\tconst htmxPagesPath = htmxDir && join(htmxDir, 'pages');\n\tconst angularPagesPath = angularDir && join(angularDir, 'pages');\n\n\tconst frontends = [\n\t\treactDir,\n\t\thtmlDir,\n\t\thtmxDir,\n\t\tsvelteDir,\n\t\tvueDir,\n\t\tangularDir\n\t].filter(Boolean);\n\tconst isSingle = frontends.length === 1;\n\n\tlet serverOutDir;\n\tif (svelteDir) serverOutDir = join(buildPath, basename(svelteDir), 'pages');\n\telse if (vueDir) serverOutDir = join(buildPath, basename(vueDir), 'pages');\n\n\tlet serverRoot;\n\tif (sveltePagesPath) serverRoot = sveltePagesPath;\n\telse if (vuePagesPath) serverRoot = vuePagesPath;\n\n\tawait rm(buildPath, { force: true, recursive: true });\n\tmkdirSync(buildPath);\n\n\tif (reactIndexesPath && reactPagesPath)\n\t\tawait generateReactIndexFiles(reactPagesPath, reactIndexesPath);\n\n\tif (assetsPath)\n\t\tcpSync(assetsPath, join(buildPath, 'assets'), {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\n\tif (tailwind)\n\t\tawait $`bunx @tailwindcss/cli -i ${tailwind.input} -o ${join(buildPath, tailwind.output)}`;\n\n\tconst reactEntries = reactIndexesPath\n\t\t? await scanEntryPoints(reactIndexesPath, '*.tsx')\n\t\t: [];\n\tconst htmlEntries = htmlScriptsPath\n\t\t? await scanEntryPoints(htmlScriptsPath, '*.{js,ts}')\n\t\t: [];\n\tconst svelteEntries = sveltePagesPath\n\t\t? await scanEntryPoints(sveltePagesPath, '*.svelte')\n\t\t: [];\n\tconst vueEntries = vuePagesPath\n\t\t? await scanEntryPoints(vuePagesPath, '*.vue')\n\t\t: [];\n\tconst angularEntries = angularPagesPath\n\t\t? await scanEntryPoints(angularPagesPath, '*.ts')\n\t\t: [];\n\n\tconst htmlCssEntries = htmlDir\n\t\t? await scanEntryPoints(join(htmlDir, 'styles'), '*.css')\n\t\t: [];\n\tconst htmxCssEntries = htmxDir\n\t\t? await scanEntryPoints(join(htmxDir, 'styles'), '*.css')\n\t\t: [];\n\tconst reactCssEntries = reactDir\n\t\t? await scanEntryPoints(join(reactDir, 'styles'), '*.css')\n\t\t: [];\n\tconst svelteCssEntries = svelteDir\n\t\t? await scanEntryPoints(join(svelteDir, 'styles'), '*.css')\n\t\t: [];\n\tconst angularCssEntries = angularDir\n\t\t? await scanEntryPoints(join(angularDir, 'styles'), '*.css')\n\t\t: [];\n\n\tconst { svelteServerPaths, svelteClientPaths } = svelteDir\n\t\t? await compileSvelte(svelteEntries, svelteDir)\n\t\t: { svelteClientPaths: [], svelteServerPaths: [] };\n\n\tconst { vueServerPaths, vueIndexPaths, vueCssPaths } = vueDir\n\t\t? await compileVue(vueEntries, vueDir)\n\t\t: { vueCssPaths: [], vueIndexPaths: [], vueServerPaths: [] };\n\n\tconst { serverPaths: angularServerPaths, clientPaths: angularClientPaths } =\n\t\tangularDir\n\t\t\t? await compileAngular(angularEntries, angularDir)\n\t\t\t: { clientPaths: [], serverPaths: [] };\n\n\tconst serverEntryPoints = [\n\t\t...svelteServerPaths,\n\t\t...vueServerPaths,\n\t\t...angularServerPaths\n\t];\n\tconst clientEntryPoints = [\n\t\t...reactEntries,\n\t\t...svelteClientPaths,\n\t\t...htmlEntries,\n\t\t...vueIndexPaths,\n\t\t...angularClientPaths\n\t];\n\tconst cssEntryPoints = [\n\t\t...vueCssPaths,\n\t\t...reactCssEntries,\n\t\t...svelteCssEntries,\n\t\t...htmlCssEntries,\n\t\t...htmxCssEntries,\n\t\t...angularCssEntries\n\t];\n\n\tif (\n\t\tserverEntryPoints.length === 0 &&\n\t\tclientEntryPoints.length === 0 &&\n\t\thtmxDir === undefined\n\t) {\n\t\tconsole.warn('No entry points found, manifest will be empty.');\n\n\t\treturn {};\n\t}\n\n\tlet serverLogs: (BuildMessage | ResolveMessage)[] = [];\n\tlet serverOutputs: BuildArtifact[] = [];\n\n\tif (serverEntryPoints.length > 0) {\n\t\tconst { logs, outputs } = await bunBuild({\n\t\t\tentrypoints: serverEntryPoints,\n\t\t\tformat: 'esm',\n\t\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\t\toutdir: serverOutDir,\n\t\t\troot: serverRoot,\n\t\t\ttarget: 'bun'\n\t\t}).catch((err) => {\n\t\t\tconsole.error('Server build failed:', err);\n\t\t\texit(1);\n\t\t});\n\t\tserverLogs = logs;\n\t\tserverOutputs = outputs;\n\t}\n\n\tlet clientLogs: (BuildMessage | ResolveMessage)[] = [];\n\tlet clientOutputs: BuildArtifact[] = [];\n\n\tif (clientEntryPoints.length > 0) {\n\t\tconst roots: string[] = [\n\t\t\treactDir,\n\t\t\tsvelteDir,\n\t\t\thtmlDir,\n\t\t\tvueDir,\n\t\t\tangularDir\n\t\t].filter((dir): dir is string => Boolean(dir));\n\t\tconst clientRoot = isSingle\n\t\t\t? (roots[0] ?? projectRoot)\n\t\t\t: commonAncestor(roots, projectRoot);\n\t\tconst { logs, outputs } = await bunBuild({\n\t\t\tdefine: vueDirectory ? vueFeatureFlags : undefined,\n\t\t\tentrypoints: clientEntryPoints,\n\t\t\tformat: 'esm',\n\t\t\tminify: true,\n\t\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\t\toutdir: buildPath,\n\t\t\troot: clientRoot,\n\t\t\ttarget: 'browser'\n\t\t}).catch((err) => {\n\t\t\tconsole.error('Client build failed:', err);\n\t\t\texit(1);\n\t\t});\n\t\tclientLogs = logs;\n\t\tclientOutputs = outputs;\n\t}\n\n\tlet cssLogs: (BuildMessage | ResolveMessage)[] = [];\n\tlet cssOutputs: BuildArtifact[] = [];\n\n\tif (cssEntryPoints.length > 0) {\n\t\tconst { logs, outputs } = await bunBuild({\n\t\t\tentrypoints: cssEntryPoints,\n\t\t\tnaming: `[name].[hash].[ext]`,\n\t\t\toutdir: join(buildPath, basename(assetsPath), 'css'),\n\t\t\ttarget: 'browser'\n\t\t}).catch((err) => {\n\t\t\tconsole.error('CSS build failed:', err);\n\t\t\texit(1);\n\t\t});\n\t\tcssLogs = logs;\n\t\tcssOutputs = outputs;\n\t}\n\n\tconst allLogs = [...serverLogs, ...clientLogs, ...cssLogs];\n\toutputLogs(allLogs);\n\n\tconst manifest = generateManifest(\n\t\t[...serverOutputs, ...clientOutputs, ...cssOutputs],\n\t\tbuildPath\n\t);\n\n\tif (htmlDir && htmlPagesPath) {\n\t\tconst outputHtmlPages = isSingle\n\t\t\t? join(buildPath, 'pages')\n\t\t\t: join(buildPath, basename(htmlDir), 'pages');\n\t\tmkdirSync(outputHtmlPages, { recursive: true });\n\t\tcpSync(htmlPagesPath, outputHtmlPages, {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t\tawait updateAssetPaths(manifest, outputHtmlPages);\n\t}\n\n\tif (htmxDir && htmxPagesPath) {\n\t\tconst outputHtmxPages = isSingle\n\t\t\t? join(buildPath, 'pages')\n\t\t\t: join(buildPath, basename(htmxDir), 'pages');\n\n\t\tmkdirSync(outputHtmxPages, { recursive: true });\n\t\tcpSync(htmxPagesPath, outputHtmxPages, {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\n\t\tconst htmxDestDir = isSingle\n\t\t\t? buildPath\n\t\t\t: join(buildPath, basename(htmxDir));\n\n\t\tmkdirSync(htmxDestDir, { recursive: true });\n\n\t\tconst glob = new Glob('htmx*.min.js');\n\t\tfor (const relativePath of glob.scanSync({ cwd: htmxDir })) {\n\t\t\tconst src = join(htmxDir, relativePath);\n\t\t\tconst dest = join(htmxDestDir, 'htmx.min.js');\n\t\t\tcopyFileSync(src, dest);\n\t\t\tbreak;\n\t\t}\n\t\tawait updateAssetPaths(manifest, outputHtmxPages);\n\t}\n\n\tif (!options?.preserveIntermediateFiles)\n\t\tawait cleanup({\n\t\t\treactIndexesPath,\n\t\t\tsvelteDir,\n\t\t\tvueDir\n\t\t});\n\n\tconsole.log(\n\t\t`Build completed in ${getDurationString(performance.now() - buildStart)}`\n\t);\n\n\treturn manifest;\n};\n",
|
|
8
|
-
"import { promises as fs } from 'fs';\nimport { join, basename, sep, dirname, resolve, relative } from 'path';\nimport {\n\treadConfiguration,\n\tperformCompilation,\n\tEmitFlags\n} from '@angular/compiler-cli';\nimport type { CompilerOptions } from '@angular/compiler-cli';\nimport ts from 'typescript';\nimport { toPascal } from '../utils/stringModifiers';\n\nexport const compileAngularFile = async (inputPath: string, outDir: string) => {\n\t// Resolve TypeScript lib directory dynamically (prevents hardcoded paths)\n\tconst tsPath = require.resolve('typescript');\n\tconst tsRootDir = dirname(tsPath);\n\tconst tsLibDir = tsRootDir.endsWith('lib')\n\t\t? tsRootDir\n\t\t: resolve(tsRootDir, 'lib');\n\n\t// Read configuration from tsconfig.json to get angularCompilerOptions\n\tconst config = readConfiguration('./tsconfig.json');\n\n\t// Build options object with newLine FIRST, then spread config\n\t// IMPORTANT: target MUST be ES2022 (not ESNext) to avoid hardcoded lib.esnext.full.d.ts path\n\tconst options: CompilerOptions = {\n\t\tnewLine: ts.NewLineKind.LineFeed, // Set FIRST - critical for createCompilerHost\n\t\ttarget: ts.ScriptTarget.ES2022, // Use ES2022 instead of ESNext to avoid hardcoded lib paths\n\t\tmodule: ts.ModuleKind.ESNext,\n\t\toutDir,\n\t\texperimentalDecorators: false,\n\t\temitDecoratorMetadata: false,\n\t\tmoduleResolution: ts.ModuleResolutionKind.Bundler,\n\t\tesModuleInterop: true,\n\t\tskipLibCheck: true,\n\t\tnoLib: false,\n\t\t...config.options // Spread AFTER to add Angular options\n\t};\n\n\t// CRITICAL: Force target to ES2022 AFTER spread to ensure it's not overwritten\n\t// ESNext target causes hardcoded lib.esnext.full.d.ts path issues\n\toptions.target = ts.ScriptTarget.ES2022;\n\n\t// Force newLine again after spread to ensure it's not overwritten\n\toptions.newLine = ts.NewLineKind.LineFeed;\n\n\t// Use TypeScript's createCompilerHost directly\n\tconst host = ts.createCompilerHost(options);\n\n\t// Override lib resolution to use dynamic paths\n\tconst originalGetDefaultLibLocation = host.getDefaultLibLocation;\n\thost.getDefaultLibLocation = () => {\n\t\treturn (\n\t\t\ttsLibDir ||\n\t\t\t(originalGetDefaultLibLocation\n\t\t\t\t? originalGetDefaultLibLocation()\n\t\t\t\t: '')\n\t\t);\n\t};\n\n\tconst originalGetDefaultLibFileName = host.getDefaultLibFileName;\n\thost.getDefaultLibFileName = (opts: ts.CompilerOptions) => {\n\t\tconst fileName = originalGetDefaultLibFileName\n\t\t\t? originalGetDefaultLibFileName(opts)\n\t\t\t: 'lib.d.ts';\n\t\treturn basename(fileName);\n\t};\n\n\tconst originalGetSourceFile = host.getSourceFile;\n\thost.getSourceFile = (\n\t\tfileName: string,\n\t\tlanguageVersion: ts.ScriptTarget,\n\t\tonError?: (message: string) => void\n\t) => {\n\t\tif (\n\t\t\tfileName.startsWith('lib.') &&\n\t\t\tfileName.endsWith('.d.ts') &&\n\t\t\ttsLibDir\n\t\t) {\n\t\t\tconst resolvedPath = join(tsLibDir, fileName);\n\t\t\treturn originalGetSourceFile?.call(\n\t\t\t\thost,\n\t\t\t\tresolvedPath,\n\t\t\t\tlanguageVersion,\n\t\t\t\tonError\n\t\t\t);\n\t\t}\n\t\treturn originalGetSourceFile?.call(\n\t\t\thost,\n\t\t\tfileName,\n\t\t\tlanguageVersion,\n\t\t\tonError\n\t\t);\n\t};\n\n\tconst emitted: Record<string, string> = {};\n\thost.writeFile = (fileName, text) => {\n\t\tconst relativePath = fileName.startsWith(outDir)\n\t\t\t? fileName.substring(outDir.length + 1)\n\t\t\t: fileName;\n\t\temitted[relativePath] = text;\n\t};\n\n\tconst { diagnostics } = performCompilation({\n\t\temitFlags: EmitFlags.Default,\n\t\thost,\n\t\toptions,\n\t\trootNames: [inputPath]\n\t});\n\n\tif (diagnostics?.length) {\n\t\tconst errors = diagnostics.filter(\n\t\t\t(d) => d.category === ts.DiagnosticCategory.Error\n\t\t);\n\t\tif (errors.length) {\n\t\t\tthrow new Error(\n\t\t\t\terrors\n\t\t\t\t\t.map((diagnostic) =>\n\t\t\t\t\t\tts.flattenDiagnosticMessageText(\n\t\t\t\t\t\t\tdiagnostic.messageText,\n\t\t\t\t\t\t\t'\\n'\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t.join('\\n')\n\t\t\t);\n\t\t}\n\t}\n\n\tconst entries = Object.entries(emitted)\n\t\t.filter(([fileName]) => fileName.endsWith('.js'))\n\t\t.map(([fileName, content]) => {\n\t\t\tconst target = join(outDir, fileName);\n\n\t\t\t// Post-process the compiled output:\n\t\t\t// 1. Add .js extensions to imports\n\t\t\tlet processedContent = content.replace(\n\t\t\t\t/from\\s+(['\"])(\\.\\.?\\/[^'\"]+)(\\1)/g,\n\t\t\t\t(match, quote, path) => {\n\t\t\t\t\tif (!path.match(/\\.(js|ts|mjs|cjs)$/)) {\n\t\t\t\t\t\treturn `from ${quote}${path}.js${quote}`;\n\t\t\t\t\t}\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// 2. Fix Angular ɵɵdom* functions to standard ɵɵ* functions\n\t\t\tprocessedContent = processedContent\n\t\t\t\t.replace(/ɵɵdomElementStart/g, 'ɵɵelementStart')\n\t\t\t\t.replace(/ɵɵdomElementEnd/g, 'ɵɵelementEnd')\n\t\t\t\t.replace(/ɵɵdomElement\\(/g, 'ɵɵelement(')\n\t\t\t\t.replace(/ɵɵdomProperty/g, 'ɵɵproperty')\n\t\t\t\t.replace(/ɵɵdomListener/g, 'ɵɵlistener');\n\n\t\t\t// 3. Fix InjectFlags -> InternalInjectFlags (Angular 21+ compatibility)\n\t\t\t// Replace in import statements\n\t\t\tprocessedContent = processedContent.replace(\n\t\t\t\t/import\\s*{\\s*([^}]*)\\bInjectFlags\\b([^}]*)\\s*}\\s*from\\s*['\"]@angular\\/core['\"]/g,\n\t\t\t\t(match, before, after) => {\n\t\t\t\t\tconst cleaned = (before + after)\n\t\t\t\t\t\t.replace(/,\\s*,/g, ',')\n\t\t\t\t\t\t.replace(/^\\s*,\\s*/, '')\n\t\t\t\t\t\t.replace(/,\\s*$/, '');\n\t\t\t\t\treturn cleaned\n\t\t\t\t\t\t? `import { ${cleaned}, InternalInjectFlags } from '@angular/core'`\n\t\t\t\t\t\t: `import { InternalInjectFlags } from '@angular/core'`;\n\t\t\t\t}\n\t\t\t);\n\t\t\t// Replace usage of InjectFlags\n\t\t\tprocessedContent = processedContent.replace(\n\t\t\t\t/\\bInjectFlags\\b/g,\n\t\t\t\t'InternalInjectFlags'\n\t\t\t);\n\n\t\t\treturn { content: processedContent, target };\n\t\t});\n\n\tawait Promise.all(\n\t\tentries.map(({ target }) =>\n\t\t\tfs.mkdir(dirname(target), { recursive: true })\n\t\t)\n\t);\n\tawait Promise.all(\n\t\tentries.map(({ target, content }) =>\n\t\t\tfs.writeFile(target, content, 'utf-8')\n\t\t)\n\t);\n\n\treturn entries.map(({ target }) => target);\n};\n\nexport const compileAngular = async (\n\tentryPoints: string[],\n\toutRoot: string\n) => {\n\tconst compiledRoot = join(outRoot, 'compiled');\n\tconst indexesDir = join(compiledRoot, 'indexes');\n\n\tawait fs.rm(compiledRoot, { force: true, recursive: true });\n\tawait fs.mkdir(indexesDir, { recursive: true });\n\n\tconst compileTasks = entryPoints.map(async (entry) => {\n\t\tconst outputs = await compileAngularFile(entry, compiledRoot);\n\t\tconst fileBase = basename(entry).replace(/\\.[tj]s$/, '');\n\t\tconst jsName = `${fileBase}.js`;\n\n\t\t// Try to find the file in pages/ subdirectory first, then at root\n\t\tlet rawServerFile = outputs.find((f) =>\n\t\t\tf.endsWith(`${sep}pages${sep}${jsName}`)\n\t\t);\n\n\t\t// If not found in pages/, try root level\n\t\tif (!rawServerFile) {\n\t\t\trawServerFile = outputs.find((f) => f.endsWith(`${sep}${jsName}`));\n\t\t}\n\n\t\tif (!rawServerFile) {\n\t\t\tthrow new Error(\n\t\t\t\t`Compiled output not found for ${entry}. Looking for: ${jsName}. Available: ${outputs.join(', ')}`\n\t\t\t);\n\t\t}\n\n\t\tconst original = await fs.readFile(rawServerFile, 'utf-8');\n\t\tconst componentClassName = `${toPascal(fileBase)}Component`;\n\n\t\t// Replace templateUrl if it exists\n\t\tlet rewritten = original.replace(\n\t\t\tnew RegExp(`templateUrl:\\\\s*['\"]\\\\.\\\\/${fileBase}\\\\.html['\"]`),\n\t\t\t`templateUrl: '../../pages/${fileBase}.html'`\n\t\t);\n\n\t\t// Only add default export if one doesn't already exist\n\t\tif (!rewritten.includes('export default')) {\n\t\t\trewritten += `\\nexport default ${componentClassName};\\n`;\n\t\t}\n\n\t\tawait fs.writeFile(rawServerFile, rewritten, 'utf-8');\n\n\t\t// Calculate relative path from indexes directory to the server file\n\t\t// This handles deeply nested paths that Angular compiler may create\n\t\tconst relativePath = relative(indexesDir, rawServerFile).replace(\n\t\t\t/\\\\/g,\n\t\t\t'/'\n\t\t);\n\t\t// Ensure it starts with ./ or ../ for relative imports\n\t\tconst normalizedImportPath = relativePath.startsWith('.')\n\t\t\t? relativePath\n\t\t\t: './' + relativePath;\n\n\t\tconst clientFile = join(indexesDir, jsName);\n\t\tconst hydration = `\nimport { bootstrapApplication } from '@angular/platform-browser';\nimport { provideClientHydration } from '@angular/platform-browser';\nimport ${componentClassName} from '${normalizedImportPath}';\n\nbootstrapApplication(${componentClassName}, { providers: [provideClientHydration()] });\n`.trim();\n\t\tawait fs.writeFile(clientFile, hydration, 'utf-8');\n\n\t\treturn { clientPath: clientFile, serverPath: rawServerFile };\n\t});\n\n\tconst results = await Promise.all(compileTasks);\n\tconst serverPaths = results.map((r) => r.serverPath);\n\tconst clientPaths = results.map((r) => r.clientPath);\n\n\treturn { clientPaths, serverPaths };\n};\n",
|
|
9
|
-
"const normalizeSlug = (str: string) =>\n\tstr\n\t\t.trim()\n\t\t.replace(/\\s+/g, '-')\n\t\t.replace(/[^A-Za-z0-9\\-_]+/g, '')\n\t\t.replace(/[-_]{2,}/g, '-');\n\nexport const toPascal = (str: string) => {\n\tif (!str.includes('-') && !str.includes('_')) {\n\t\treturn str.charAt(0).toUpperCase() + str.slice(1);\n\t}\n\n\treturn normalizeSlug(str)\n\t\t.split(/[-_]/)\n\t\t.filter(Boolean)\n\t\t.map(\n\t\t\t(segment) =>\n\t\t\t\tsegment.charAt(0).toUpperCase() + segment.slice(1).toLowerCase()\n\t\t)\n\t\t.join('');\n};\n\nexport const toKebab = (str: string) =>\n\tnormalizeSlug(str)\n\t\t.replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n\t\t.toLowerCase();\n",
|
|
6
|
+
"import { copyFileSync, cpSync, mkdirSync } from 'node:fs';\nimport { rm } from 'node:fs/promises';\nimport { basename, join } from 'node:path';\nimport { cwd, env, exit } from 'node:process';\nimport { $, build as bunBuild, BuildArtifact, Glob } from 'bun';\nimport { compileSvelte } from '../build/compileSvelte';\nimport { compileVue } from '../build/compileVue';\nimport { generateManifest } from '../build/generateManifest';\nimport { generateReactIndexFiles } from '../build/generateReactIndexes';\nimport { outputLogs } from '../build/outputLogs';\nimport { scanEntryPoints } from '../build/scanEntryPoints';\nimport { updateAssetPaths } from '../build/updateAssetPaths';\nimport { BuildConfig } from '../types';\nimport { cleanup } from '../utils/cleanup';\nimport { commonAncestor } from '../utils/commonAncestor';\nimport { getDurationString } from '../utils/getDurationString';\nimport { validateSafePath } from '../utils/validateSafePath';\n\nconst isDev = env.NODE_ENV === 'development';\n\nconst vueFeatureFlags: Record<string, string> = {\n\t__VUE_OPTIONS_API__: 'true',\n\t__VUE_PROD_DEVTOOLS__: isDev ? 'true' : 'false',\n\t__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: isDev ? 'true' : 'false'\n};\n\nexport const build = async ({\n\tbuildDirectory = 'build',\n\tassetsDirectory = 'assets',\n\treactDirectory,\n\thtmlDirectory,\n\thtmxDirectory,\n\tangularDirectory,\n\tsvelteDirectory,\n\tvueDirectory,\n\ttailwind,\n\toptions\n}: BuildConfig) => {\n\tconst buildStart = performance.now();\n\tconst projectRoot = cwd();\n\n\tconst buildPath = validateSafePath(buildDirectory, projectRoot);\n\tconst assetsPath =\n\t\tassetsDirectory && validateSafePath(assetsDirectory, projectRoot);\n\tconst reactDir =\n\t\treactDirectory && validateSafePath(reactDirectory, projectRoot);\n\tconst htmlDir =\n\t\thtmlDirectory && validateSafePath(htmlDirectory, projectRoot);\n\tconst htmxDir =\n\t\thtmxDirectory && validateSafePath(htmxDirectory, projectRoot);\n\tconst svelteDir =\n\t\tsvelteDirectory && validateSafePath(svelteDirectory, projectRoot);\n\tconst vueDir = vueDirectory && validateSafePath(vueDirectory, projectRoot);\n\tconst angularDir =\n\t\tangularDirectory && validateSafePath(angularDirectory, projectRoot);\n\n\tconst reactIndexesPath = reactDir && join(reactDir, 'indexes');\n\tconst reactPagesPath = reactDir && join(reactDir, 'pages');\n\tconst htmlPagesPath = htmlDir && join(htmlDir, 'pages');\n\tconst htmlScriptsPath = htmlDir && join(htmlDir, 'scripts');\n\tconst sveltePagesPath = svelteDir && join(svelteDir, 'pages');\n\tconst vuePagesPath = vueDir && join(vueDir, 'pages');\n\tconst htmxPagesPath = htmxDir && join(htmxDir, 'pages');\n\tconst angularPagesPath = angularDir && join(angularDir, 'pages');\n\n\tconst frontends = [\n\t\treactDir,\n\t\thtmlDir,\n\t\thtmxDir,\n\t\tsvelteDir,\n\t\tvueDir,\n\t\tangularDir\n\t].filter(Boolean);\n\tconst isSingle = frontends.length === 1;\n\n\tlet serverOutDir;\n\tif (svelteDir) serverOutDir = join(buildPath, basename(svelteDir), 'pages');\n\telse if (vueDir) serverOutDir = join(buildPath, basename(vueDir), 'pages');\n\n\tlet serverRoot;\n\tif (sveltePagesPath) serverRoot = sveltePagesPath;\n\telse if (vuePagesPath) serverRoot = vuePagesPath;\n\n\tawait rm(buildPath, { force: true, recursive: true });\n\tmkdirSync(buildPath);\n\n\tif (reactIndexesPath && reactPagesPath)\n\t\tawait generateReactIndexFiles(reactPagesPath, reactIndexesPath);\n\n\tif (assetsPath)\n\t\tcpSync(assetsPath, join(buildPath, 'assets'), {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\n\tif (tailwind)\n\t\tawait $`bunx @tailwindcss/cli -i ${tailwind.input} -o ${join(buildPath, tailwind.output)}`;\n\n\tconst reactEntries = reactIndexesPath\n\t\t? await scanEntryPoints(reactIndexesPath, '*.tsx')\n\t\t: [];\n\tconst htmlEntries = htmlScriptsPath\n\t\t? await scanEntryPoints(htmlScriptsPath, '*.{js,ts}')\n\t\t: [];\n\tconst svelteEntries = sveltePagesPath\n\t\t? await scanEntryPoints(sveltePagesPath, '*.svelte')\n\t\t: [];\n\tconst vueEntries = vuePagesPath\n\t\t? await scanEntryPoints(vuePagesPath, '*.vue')\n\t\t: [];\n\tconst angularEntries = angularPagesPath\n\t\t? await scanEntryPoints(angularPagesPath, '*.ts')\n\t\t: [];\n\n\tconst htmlCssEntries = htmlDir\n\t\t? await scanEntryPoints(join(htmlDir, 'styles'), '*.css')\n\t\t: [];\n\tconst htmxCssEntries = htmxDir\n\t\t? await scanEntryPoints(join(htmxDir, 'styles'), '*.css')\n\t\t: [];\n\tconst reactCssEntries = reactDir\n\t\t? await scanEntryPoints(join(reactDir, 'styles'), '*.css')\n\t\t: [];\n\tconst svelteCssEntries = svelteDir\n\t\t? await scanEntryPoints(join(svelteDir, 'styles'), '*.css')\n\t\t: [];\n\tconst angularCssEntries = angularDir\n\t\t? await scanEntryPoints(join(angularDir, 'styles'), '*.css')\n\t\t: [];\n\n\tconst { svelteServerPaths, svelteClientPaths } = svelteDir\n\t\t? await compileSvelte(svelteEntries, svelteDir)\n\t\t: { svelteClientPaths: [], svelteServerPaths: [] };\n\n\tconst { vueServerPaths, vueIndexPaths, vueCssPaths } = vueDir\n\t\t? await compileVue(vueEntries, vueDir)\n\t\t: { vueCssPaths: [], vueIndexPaths: [], vueServerPaths: [] };\n\n\tconst serverEntryPoints = [...svelteServerPaths, ...vueServerPaths];\n\tconst clientEntryPoints = [\n\t\t...reactEntries,\n\t\t...svelteClientPaths,\n\t\t...htmlEntries,\n\t\t...vueIndexPaths\n\t];\n\tconst cssEntryPoints = [\n\t\t...vueCssPaths,\n\t\t...reactCssEntries,\n\t\t...svelteCssEntries,\n\t\t...htmlCssEntries,\n\t\t...htmxCssEntries,\n\t\t...angularCssEntries\n\t];\n\n\tif (\n\t\tserverEntryPoints.length === 0 &&\n\t\tclientEntryPoints.length === 0 &&\n\t\thtmxDir === undefined\n\t) {\n\t\tconsole.warn('No entry points found, manifest will be empty.');\n\n\t\treturn {};\n\t}\n\n\tlet serverLogs: (BuildMessage | ResolveMessage)[] = [];\n\tlet serverOutputs: BuildArtifact[] = [];\n\n\tif (serverEntryPoints.length > 0) {\n\t\tconst { logs, outputs } = await bunBuild({\n\t\t\tentrypoints: serverEntryPoints,\n\t\t\tformat: 'esm',\n\t\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\t\toutdir: serverOutDir,\n\t\t\troot: serverRoot,\n\t\t\ttarget: 'bun'\n\t\t}).catch((err) => {\n\t\t\tconsole.error('Server build failed:', err);\n\t\t\texit(1);\n\t\t});\n\t\tserverLogs = logs;\n\t\tserverOutputs = outputs;\n\t}\n\n\tlet clientLogs: (BuildMessage | ResolveMessage)[] = [];\n\tlet clientOutputs: BuildArtifact[] = [];\n\n\tif (clientEntryPoints.length > 0) {\n\t\tconst roots: string[] = [\n\t\t\treactDir,\n\t\t\tsvelteDir,\n\t\t\thtmlDir,\n\t\t\tvueDir,\n\t\t\tangularDir\n\t\t].filter((dir): dir is string => Boolean(dir));\n\t\tconst clientRoot = isSingle\n\t\t\t? (roots[0] ?? projectRoot)\n\t\t\t: commonAncestor(roots, projectRoot);\n\t\tconst { logs, outputs } = await bunBuild({\n\t\t\tdefine: vueDirectory ? vueFeatureFlags : undefined,\n\t\t\tentrypoints: clientEntryPoints,\n\t\t\tformat: 'esm',\n\t\t\tminify: true,\n\t\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\t\toutdir: buildPath,\n\t\t\troot: clientRoot,\n\t\t\ttarget: 'browser'\n\t\t}).catch((err) => {\n\t\t\tconsole.error('Client build failed:', err);\n\t\t\texit(1);\n\t\t});\n\t\tclientLogs = logs;\n\t\tclientOutputs = outputs;\n\t}\n\n\tlet cssLogs: (BuildMessage | ResolveMessage)[] = [];\n\tlet cssOutputs: BuildArtifact[] = [];\n\n\tif (cssEntryPoints.length > 0) {\n\t\tconst { logs, outputs } = await bunBuild({\n\t\t\tentrypoints: cssEntryPoints,\n\t\t\tnaming: `[name].[hash].[ext]`,\n\t\t\toutdir: join(buildPath, basename(assetsPath), 'css'),\n\t\t\ttarget: 'browser'\n\t\t}).catch((err) => {\n\t\t\tconsole.error('CSS build failed:', err);\n\t\t\texit(1);\n\t\t});\n\t\tcssLogs = logs;\n\t\tcssOutputs = outputs;\n\t}\n\n\tconst allLogs = [...serverLogs, ...clientLogs, ...cssLogs];\n\toutputLogs(allLogs);\n\n\tconst manifest = generateManifest(\n\t\t[...serverOutputs, ...clientOutputs, ...cssOutputs],\n\t\tbuildPath\n\t);\n\n\tif (htmlDir && htmlPagesPath) {\n\t\tconst outputHtmlPages = isSingle\n\t\t\t? join(buildPath, 'pages')\n\t\t\t: join(buildPath, basename(htmlDir), 'pages');\n\t\tmkdirSync(outputHtmlPages, { recursive: true });\n\t\tcpSync(htmlPagesPath, outputHtmlPages, {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t\tawait updateAssetPaths(manifest, outputHtmlPages);\n\t}\n\n\tif (htmxDir && htmxPagesPath) {\n\t\tconst outputHtmxPages = isSingle\n\t\t\t? join(buildPath, 'pages')\n\t\t\t: join(buildPath, basename(htmxDir), 'pages');\n\n\t\tmkdirSync(outputHtmxPages, { recursive: true });\n\t\tcpSync(htmxPagesPath, outputHtmxPages, {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\n\t\tconst htmxDestDir = isSingle\n\t\t\t? buildPath\n\t\t\t: join(buildPath, basename(htmxDir));\n\n\t\tmkdirSync(htmxDestDir, { recursive: true });\n\n\t\tconst glob = new Glob('htmx*.min.js');\n\t\tfor (const relativePath of glob.scanSync({ cwd: htmxDir })) {\n\t\t\tconst src = join(htmxDir, relativePath);\n\t\t\tconst dest = join(htmxDestDir, 'htmx.min.js');\n\t\t\tcopyFileSync(src, dest);\n\t\t\tbreak;\n\t\t}\n\t\tawait updateAssetPaths(manifest, outputHtmxPages);\n\t}\n\n\tif (!options?.preserveIntermediateFiles)\n\t\tawait cleanup({\n\t\t\treactIndexesPath,\n\t\t\tsvelteDir,\n\t\t\tvueDir\n\t\t});\n\n\tconsole.log(\n\t\t`Build completed in ${getDurationString(performance.now() - buildStart)}`\n\t);\n\n\treturn manifest;\n};\n",
|
|
10
7
|
"import { mkdir, stat } from 'node:fs/promises';\nimport {\n\tdirname,\n\tjoin,\n\tbasename,\n\textname,\n\tresolve,\n\trelative,\n\tsep\n} from 'node:path';\nimport { env } from 'node:process';\nimport { write, file, Transpiler } from 'bun';\nimport { compile, compileModule, preprocess } from 'svelte/compiler';\n\ntype Built = { ssr: string; client: string };\ntype Cache = Map<string, Built>;\n\nconst transpiler = new Transpiler({ loader: 'ts', target: 'browser' });\n\nconst exists = async (path: string) => {\n\ttry {\n\t\tawait stat(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst resolveSvelte = async (spec: string, from: string) => {\n\tconst basePath = resolve(dirname(from), spec);\n\tconst explicit = /\\.(svelte|svelte\\.(?:ts|js))$/.test(basePath);\n\n\tif (!explicit) {\n\t\tconst extensions = ['.svelte', '.svelte.ts', '.svelte.js'];\n\t\tconst paths = extensions.map((ext) => `${basePath}${ext}`);\n\t\tconst checks = await Promise.all(paths.map(exists));\n\t\tconst match = paths.find((_, index) => checks[index]);\n\n\t\treturn match ?? null;\n\t}\n\n\tif (await exists(basePath)) return basePath;\n\tif (!basePath.endsWith('.svelte')) return null;\n\n\tconst tsPath = `${basePath}.ts`;\n\tif (await exists(tsPath)) return tsPath;\n\n\tconst jsPath = `${basePath}.js`;\n\tif (await exists(jsPath)) return jsPath;\n\n\treturn null;\n};\n\nexport const compileSvelte = async (\n\tentryPoints: string[],\n\tsvelteRoot: string,\n\tcache: Cache = new Map()\n) => {\n\tconst compiledRoot = join(svelteRoot, 'compiled');\n\tconst clientDir = join(compiledRoot, 'client');\n\tconst indexDir = join(compiledRoot, 'indexes');\n\tconst pagesDir = join(compiledRoot, 'pages');\n\n\tawait Promise.all(\n\t\t[clientDir, indexDir, pagesDir].map((dir) =>\n\t\t\tmkdir(dir, { recursive: true })\n\t\t)\n\t);\n\n\tconst dev = env.NODE_ENV === 'development';\n\n\tconst build = async (src: string) => {\n\t\tconst memoized = cache.get(src);\n\t\tif (memoized) return memoized;\n\n\t\tconst raw = await file(src).text();\n\t\tconst isModule =\n\t\t\tsrc.endsWith('.svelte.ts') || src.endsWith('.svelte.js');\n\t\tconst preprocessed = isModule ? raw : (await preprocess(raw, {})).code;\n\t\tconst transpiled =\n\t\t\tsrc.endsWith('.ts') || src.endsWith('.svelte.ts')\n\t\t\t\t? transpiler.transformSync(preprocessed)\n\t\t\t\t: preprocessed;\n\n\t\tconst relDir = dirname(relative(svelteRoot, src)).replace(/\\\\/g, '/');\n\t\tconst baseName = basename(src).replace(/\\.svelte(\\.(ts|js))?$/, '');\n\n\t\tconst importPaths = Array.from(\n\t\t\ttranspiled.matchAll(/from\\s+['\"]([^'\"]+)['\"]/g)\n\t\t)\n\t\t\t.map((match) => match[1])\n\t\t\t.filter((path): path is string => path !== undefined);\n\n\t\tconst resolvedImports = await Promise.all(\n\t\t\timportPaths.map((importPath) => resolveSvelte(importPath, src))\n\t\t);\n\t\tconst childSources = resolvedImports.filter(\n\t\t\t(path): path is string => path !== null\n\t\t);\n\t\tawait Promise.all(childSources.map((child) => build(child)));\n\n\t\tconst generate = (mode: 'server' | 'client') =>\n\t\t\t(isModule\n\t\t\t\t? compileModule(transpiled, { dev, filename: src }).js.code\n\t\t\t\t: compile(transpiled, {\n\t\t\t\t\t\tcss: 'injected',\n\t\t\t\t\t\tdev,\n\t\t\t\t\t\tfilename: src,\n\t\t\t\t\t\tgenerate: mode\n\t\t\t\t\t}).js.code\n\t\t\t).replace(/\\.svelte(?:\\.(?:ts|js))?(['\"])/g, '.js$1');\n\n\t\tconst ssrPath = join(pagesDir, relDir, `${baseName}.js`);\n\t\tconst clientPath = join(clientDir, relDir, `${baseName}.js`);\n\n\t\tawait Promise.all([\n\t\t\tmkdir(dirname(ssrPath), { recursive: true }),\n\t\t\tmkdir(dirname(clientPath), { recursive: true })\n\t\t]);\n\n\t\tif (isModule) {\n\t\t\tconst bundle = generate('client');\n\t\t\tawait Promise.all([\n\t\t\t\twrite(ssrPath, bundle),\n\t\t\t\twrite(clientPath, bundle)\n\t\t\t]);\n\t\t} else {\n\t\t\tconst serverBundle = generate('server');\n\t\t\tconst clientBundle = generate('client');\n\t\t\tawait Promise.all([\n\t\t\t\twrite(ssrPath, serverBundle),\n\t\t\t\twrite(clientPath, clientBundle)\n\t\t\t]);\n\t\t}\n\n\t\tconst built: Built = { client: clientPath, ssr: ssrPath };\n\t\tcache.set(src, built);\n\n\t\treturn built;\n\t};\n\n\tconst roots = await Promise.all(entryPoints.map(build));\n\n\tawait Promise.all(\n\t\troots.map(async ({ client }) => {\n\t\t\tconst relClientDir = dirname(relative(clientDir, client));\n\t\t\tconst name = basename(client, extname(client));\n\t\t\tconst indexPath = join(indexDir, relClientDir, `${name}.js`);\n\t\t\tconst importRaw = relative(dirname(indexPath), client)\n\t\t\t\t.split(sep)\n\t\t\t\t.join('/');\n\t\t\tconst importPath =\n\t\t\t\timportRaw.startsWith('.') || importRaw.startsWith('/')\n\t\t\t\t\t? importRaw\n\t\t\t\t\t: `./${importRaw}`;\n\t\t\tconst bootstrap = `import C from \"${importPath}\";\nimport { hydrate } from \"svelte\";\nhydrate(C,{target:document.body,props:window.__INITIAL_PROPS__??{}});`;\n\n\t\t\tawait mkdir(dirname(indexPath), { recursive: true });\n\n\t\t\treturn write(indexPath, bootstrap);\n\t\t})\n\t);\n\n\treturn {\n\t\tsvelteClientPaths: roots.map(({ client }) => {\n\t\t\tconst rel = dirname(relative(clientDir, client));\n\n\t\t\treturn join(indexDir, rel, basename(client));\n\t\t}),\n\t\tsvelteServerPaths: roots.map(({ ssr }) => ssr)\n\t};\n};\n",
|
|
11
8
|
"import { mkdir } from 'node:fs/promises';\nimport { basename, dirname, join, relative, resolve } from 'node:path';\nimport {\n\tparse,\n\tcompileScript,\n\tcompileTemplate,\n\tcompileStyle\n} from '@vue/compiler-sfc';\nimport { file, write, Transpiler } from 'bun';\nimport { toKebab } from '../utils/stringModifiers';\n\nconst transpiler = new Transpiler({ loader: 'ts', target: 'browser' });\n\ntype BuildResult = {\n\tclientPath: string;\n\tserverPath: string;\n\tcssPaths: string[];\n\tcssCodes: string[];\n\ttsHelperPaths: string[];\n};\n\nconst extractImports = (sourceCode: string) =>\n\tArray.from(sourceCode.matchAll(/import\\s+[\\s\\S]+?['\"]([^'\"]+)['\"]/g))\n\t\t.map((match) => match[1])\n\t\t.filter((importPath): importPath is string => importPath !== undefined);\n\nconst toJs = (filePath: string) => {\n\tif (filePath.endsWith('.vue')) return filePath.replace(/\\.vue$/, '.js');\n\tif (filePath.endsWith('.ts')) return filePath.replace(/\\.ts$/, '.js');\n\n\treturn `${filePath}.js`;\n};\n\nconst stripExports = (code: string) =>\n\tcode\n\t\t.replace(/export\\s+default/, 'const script =')\n\t\t.replace(/^export\\s+/gm, '');\n\nconst mergeVueImports = (code: string) => {\n\tconst lines = code.split('\\n');\n\tconst specifierSet = new Set<string>();\n\tconst vueImportRegex = /^import\\s+{([^}]+)}\\s+from\\s+['\"]vue['\"];?$/;\n\n\tlines.forEach((line) => {\n\t\tconst match = line.match(vueImportRegex);\n\t\tif (match?.[1])\n\t\t\tmatch[1]\n\t\t\t\t.split(',')\n\t\t\t\t.forEach((importSpecifier) =>\n\t\t\t\t\tspecifierSet.add(importSpecifier.trim())\n\t\t\t\t);\n\t});\n\n\tconst nonVueLines = lines.filter((line) => !vueImportRegex.test(line));\n\n\treturn specifierSet.size\n\t\t? [\n\t\t\t\t`import { ${[...specifierSet].join(', ')} } from \"vue\";`,\n\t\t\t\t...nonVueLines\n\t\t\t].join('\\n')\n\t\t: nonVueLines.join('\\n');\n};\n\nconst compileVueFile = async (\n\tsourceFilePath: string,\n\toutputDirs: { client: string; server: string; css: string },\n\tcacheMap: Map<string, BuildResult>,\n\tisEntryPoint: boolean,\n\tvueRootDir: string\n) => {\n\tconst cachedResult = cacheMap.get(sourceFilePath);\n\tif (cachedResult) return cachedResult;\n\n\tconst relativeFilePath = relative(vueRootDir, sourceFilePath).replace(\n\t\t/\\\\/g,\n\t\t'/'\n\t);\n\tconst relativeWithoutExtension = relativeFilePath.replace(/\\.vue$/, '');\n\tconst fileBaseName = basename(sourceFilePath, '.vue');\n\tconst componentId = toKebab(fileBaseName);\n\n\tconst sourceContent = await file(sourceFilePath).text();\n\tconst { descriptor } = parse(sourceContent, { filename: sourceFilePath });\n\tconst scriptSource =\n\t\tdescriptor.scriptSetup?.content ?? descriptor.script?.content ?? '';\n\n\tconst importPaths = extractImports(scriptSource);\n\tconst childComponentPaths = importPaths.filter(\n\t\t(path) => path.startsWith('.') && path.endsWith('.vue')\n\t);\n\tconst helperModulePaths = importPaths.filter(\n\t\t(path) => path.startsWith('.') && !path.endsWith('.vue')\n\t);\n\n\tconst childBuildResults: BuildResult[] = await Promise.all(\n\t\tchildComponentPaths.map((relativeChildPath) =>\n\t\t\tcompileVueFile(\n\t\t\t\tresolve(dirname(sourceFilePath), relativeChildPath),\n\t\t\t\toutputDirs,\n\t\t\t\tcacheMap,\n\t\t\t\tfalse,\n\t\t\t\tvueRootDir\n\t\t\t)\n\t\t)\n\t);\n\n\tconst compiledScript = compileScript(descriptor, {\n\t\tid: componentId,\n\t\tinlineTemplate: false\n\t});\n\tconst strippedScript = stripExports(compiledScript.content);\n\tconst transpiledScript = transpiler\n\t\t.transformSync(strippedScript)\n\t\t.replace(\n\t\t\t/(['\"])(\\.{1,2}\\/[^'\"]+)(['\"])/g,\n\t\t\t(_, quoteStart, relativeImport, quoteEnd) =>\n\t\t\t\t`${quoteStart}${toJs(relativeImport)}${quoteEnd}`\n\t\t);\n\n\tconst generateRenderFunction = (ssr: boolean) =>\n\t\tcompileTemplate({\n\t\t\tcompilerOptions: {\n\t\t\t\tbindingMetadata: compiledScript.bindings,\n\t\t\t\tprefixIdentifiers: true\n\t\t\t},\n\t\t\tfilename: sourceFilePath,\n\t\t\tid: componentId,\n\t\t\tscoped: descriptor.styles.some((styleBlock) => styleBlock.scoped),\n\t\t\tsource: descriptor.template?.content ?? '',\n\t\t\tssr,\n\t\t\tssrCssVars: descriptor.cssVars\n\t\t}).code.replace(\n\t\t\t/(['\"])(\\.{1,2}\\/[^'\"]+)(['\"])/g,\n\t\t\t(_, quoteStart, relativeImport, quoteEnd) =>\n\t\t\t\t`${quoteStart}${toJs(relativeImport)}${quoteEnd}`\n\t\t);\n\n\tconst localCss = descriptor.styles.map(\n\t\t(styleBlock) =>\n\t\t\tcompileStyle({\n\t\t\t\tfilename: sourceFilePath,\n\t\t\t\tid: componentId,\n\t\t\t\tscoped: styleBlock.scoped,\n\t\t\t\tsource: styleBlock.content,\n\t\t\t\ttrim: true\n\t\t\t}).code\n\t);\n\tconst allCss = [\n\t\t...localCss,\n\t\t...childBuildResults.flatMap((result) => result.cssCodes)\n\t];\n\n\tlet cssOutputPaths: string[] = [];\n\tif (isEntryPoint && allCss.length) {\n\t\tconst cssOutputFile = join(\n\t\t\toutputDirs.css,\n\t\t\t`${toKebab(fileBaseName)}.css`\n\t\t);\n\t\tawait mkdir(dirname(cssOutputFile), { recursive: true });\n\t\tawait write(cssOutputFile, allCss.join('\\n'));\n\t\tcssOutputPaths = [cssOutputFile];\n\t}\n\n\tconst assembleModule = (\n\t\trenderCode: string,\n\t\trenderFnName: 'render' | 'ssrRender'\n\t) =>\n\t\tmergeVueImports(\n\t\t\t[\n\t\t\t\ttranspiledScript,\n\t\t\t\trenderCode,\n\t\t\t\t`script.${renderFnName} = ${renderFnName};`,\n\t\t\t\t'export default script;'\n\t\t\t].join('\\n')\n\t\t);\n\n\tconst clientCode = assembleModule(generateRenderFunction(false), 'render');\n\tconst serverCode = assembleModule(\n\t\tgenerateRenderFunction(true),\n\t\t'ssrRender'\n\t);\n\n\tconst clientOutputPath = join(\n\t\toutputDirs.client,\n\t\t`${relativeWithoutExtension}.js`\n\t);\n\tconst serverOutputPath = join(\n\t\toutputDirs.server,\n\t\t`${relativeWithoutExtension}.js`\n\t);\n\n\tawait mkdir(dirname(clientOutputPath), { recursive: true });\n\tawait mkdir(dirname(serverOutputPath), { recursive: true });\n\tawait write(clientOutputPath, clientCode);\n\tawait write(serverOutputPath, serverCode);\n\n\tconst result: BuildResult = {\n\t\tclientPath: clientOutputPath,\n\t\tcssCodes: allCss,\n\t\tcssPaths: cssOutputPaths,\n\t\tserverPath: serverOutputPath,\n\t\ttsHelperPaths: [\n\t\t\t...helperModulePaths.map((helper) =>\n\t\t\t\tresolve(\n\t\t\t\t\tdirname(sourceFilePath),\n\t\t\t\t\thelper.endsWith('.ts') ? helper : `${helper}.ts`\n\t\t\t\t)\n\t\t\t),\n\t\t\t...childBuildResults.flatMap((child) => child.tsHelperPaths)\n\t\t]\n\t};\n\n\tcacheMap.set(sourceFilePath, result);\n\n\treturn result;\n};\n\nexport const compileVue = async (entryPoints: string[], vueRootDir: string) => {\n\tconst compiledOutputRoot = join(vueRootDir, 'compiled');\n\tconst clientOutputDir = join(compiledOutputRoot, 'client');\n\tconst indexOutputDir = join(compiledOutputRoot, 'indexes');\n\tconst serverOutputDir = join(compiledOutputRoot, 'pages');\n\tconst cssOutputDir = join(compiledOutputRoot, 'styles');\n\n\tawait Promise.all([\n\t\tmkdir(clientOutputDir, { recursive: true }),\n\t\tmkdir(indexOutputDir, { recursive: true }),\n\t\tmkdir(serverOutputDir, { recursive: true }),\n\t\tmkdir(cssOutputDir, { recursive: true })\n\t]);\n\n\tconst buildCache = new Map<string, BuildResult>();\n\tconst allTsHelperPaths = new Set<string>();\n\n\tconst compiledPages = await Promise.all(\n\t\tentryPoints.map(async (entryPath) => {\n\t\t\tconst result = await compileVueFile(\n\t\t\t\tresolve(entryPath),\n\t\t\t\t{\n\t\t\t\t\tclient: clientOutputDir,\n\t\t\t\t\tcss: cssOutputDir,\n\t\t\t\t\tserver: serverOutputDir\n\t\t\t\t},\n\t\t\t\tbuildCache,\n\t\t\t\ttrue,\n\t\t\t\tvueRootDir\n\t\t\t);\n\n\t\t\tresult.tsHelperPaths.forEach((path) => allTsHelperPaths.add(path));\n\n\t\t\tconst entryBaseName = basename(entryPath, '.vue');\n\t\t\tconst indexOutputFile = join(indexOutputDir, `${entryBaseName}.js`);\n\t\t\tconst clientOutputFile = join(\n\t\t\t\tclientOutputDir,\n\t\t\t\trelative(vueRootDir, entryPath)\n\t\t\t\t\t.replace(/\\\\/g, '/')\n\t\t\t\t\t.replace(/\\.vue$/, '.js')\n\t\t\t);\n\n\t\t\tawait mkdir(dirname(indexOutputFile), { recursive: true });\n\t\t\tawait write(\n\t\t\t\tindexOutputFile,\n\t\t\t\t[\n\t\t\t\t\t`import Comp from \"${relative(dirname(indexOutputFile), clientOutputFile)}\";`,\n\t\t\t\t\t'import { createSSRApp } from \"vue\";',\n\t\t\t\t\t'const props = window.__INITIAL_PROPS__ ?? {};',\n\t\t\t\t\t'createSSRApp(Comp, props).mount(\"#root\");'\n\t\t\t\t].join('\\n')\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcssPaths: result.cssPaths,\n\t\t\t\tindexPath: indexOutputFile,\n\t\t\t\tserverPath: result.serverPath\n\t\t\t};\n\t\t})\n\t);\n\n\tawait Promise.all(\n\t\tArray.from(allTsHelperPaths).map(async (tsPath) => {\n\t\t\tconst sourceCode = await file(tsPath).text();\n\t\t\tconst transpiledCode = transpiler.transformSync(sourceCode);\n\t\t\tconst relativeJsPath = relative(vueRootDir, tsPath).replace(\n\t\t\t\t/\\.ts$/,\n\t\t\t\t'.js'\n\t\t\t);\n\t\t\tconst outClientPath = join(clientOutputDir, relativeJsPath);\n\t\t\tconst outServerPath = join(serverOutputDir, relativeJsPath);\n\t\t\tawait mkdir(dirname(outClientPath), { recursive: true });\n\t\t\tawait mkdir(dirname(outServerPath), { recursive: true });\n\t\t\tawait write(outClientPath, transpiledCode);\n\t\t\tawait write(outServerPath, transpiledCode);\n\t\t})\n\t);\n\n\treturn {\n\t\tvueCssPaths: compiledPages.flatMap((result) => result.cssPaths),\n\t\tvueIndexPaths: compiledPages.map((result) => result.indexPath),\n\t\tvueServerPaths: compiledPages.map((result) => result.serverPath)\n\t};\n};\n",
|
|
9
|
+
"const normalizeSlug = (str: string) =>\n\tstr\n\t\t.trim()\n\t\t.replace(/\\s+/g, '-')\n\t\t.replace(/[^A-Za-z0-9\\-_]+/g, '')\n\t\t.replace(/[-_]{2,}/g, '-');\n\nexport const toPascal = (str: string) => {\n\tif (!str.includes('-') && !str.includes('_')) {\n\t\treturn str.charAt(0).toUpperCase() + str.slice(1);\n\t}\n\n\treturn normalizeSlug(str)\n\t\t.split(/[-_]/)\n\t\t.filter(Boolean)\n\t\t.map(\n\t\t\t(segment) =>\n\t\t\t\tsegment.charAt(0).toUpperCase() + segment.slice(1).toLowerCase()\n\t\t)\n\t\t.join('');\n};\n\nexport const toKebab = (str: string) =>\n\tnormalizeSlug(str)\n\t\t.replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n\t\t.toLowerCase();\n",
|
|
12
10
|
"import { extname } from 'node:path';\nimport { BuildArtifact } from 'bun';\nimport { UNFOUND_INDEX } from '../constants';\nimport { toPascal } from '../utils/stringModifiers';\n\nexport const generateManifest = (outputs: BuildArtifact[], buildPath: string) =>\n\toutputs.reduce<Record<string, string>>((manifest, artifact) => {\n\t\tlet relative = artifact.path.startsWith(buildPath)\n\t\t\t? artifact.path.slice(buildPath.length)\n\t\t\t: artifact.path;\n\t\trelative = relative.replace(/^\\/+/, '');\n\n\t\tconst segments = relative.split('/');\n\t\tconst fileWithHash = segments.pop();\n\t\tif (!fileWithHash) return manifest;\n\n\t\tconst [baseName] = fileWithHash.split(`.${artifact.hash}.`);\n\t\tif (!baseName) return manifest;\n\n\t\tconst pascalName = toPascal(baseName);\n\t\tconst ext = extname(fileWithHash);\n\n\t\tif (ext === '.css') {\n\t\t\tmanifest[`${pascalName}CSS`] = `/${relative}`;\n\n\t\t\treturn manifest;\n\t\t}\n\n\t\tconst idx = segments.findIndex(\n\t\t\t(seg) => seg === 'indexes' || seg === 'pages'\n\t\t);\n\t\tconst folder = idx > UNFOUND_INDEX ? segments[idx] : segments[0];\n\n\t\tif (folder === 'indexes') {\n\t\t\tmanifest[`${pascalName}Index`] = `/${relative}`;\n\t\t} else if (folder === 'pages') {\n\t\t\tmanifest[pascalName] = artifact.path;\n\t\t} else {\n\t\t\tmanifest[pascalName] = `/${relative}`;\n\t\t}\n\n\t\treturn manifest;\n\t}, {});\n",
|
|
13
11
|
"import { mkdir, rm, writeFile } from 'fs/promises';\nimport { basename, join } from 'path';\nimport { Glob } from 'bun';\n\nexport const generateReactIndexFiles = async (\n\treactPagesDirectory: string,\n\treactIndexesDirectory: string\n) => {\n\tawait rm(reactIndexesDirectory, { force: true, recursive: true });\n\tawait mkdir(reactIndexesDirectory);\n\n\tconst pagesGlob = new Glob('*.*');\n\tconst files: string[] = [];\n\tfor await (const file of pagesGlob.scan({ cwd: reactPagesDirectory })) {\n\t\tfiles.push(file);\n\t}\n\tconst promises = files.map(async (file) => {\n\t\tconst fileName = basename(file);\n\t\tconst [componentName] = fileName.split('.');\n\t\tconst content = [\n\t\t\t`import { hydrateRoot } from 'react-dom/client';`,\n\t\t\t`import type { ComponentType } from 'react'`,\n\t\t\t`import { ${componentName} } from '../pages/${componentName}';\\n`,\n\t\t\t`type PropsOf<C> = C extends ComponentType<infer P> ? P : never;\\n`,\n\t\t\t`declare global {`,\n\t\t\t`\\tinterface Window {`,\n\t\t\t`\\t\\t__INITIAL_PROPS__: PropsOf<typeof ${componentName}>`,\n\t\t\t`\\t}`,\n\t\t\t`}\\n`,\n\t\t\t`hydrateRoot(document, <${componentName} {...window.__INITIAL_PROPS__} />);`\n\t\t].join('\\n');\n\n\t\treturn writeFile(\n\t\t\tjoin(reactIndexesDirectory, `${componentName}.tsx`),\n\t\t\tcontent\n\t\t);\n\t});\n\tawait Promise.all(promises);\n};\n",
|
|
14
12
|
"import {\n\tANGULAR_BUILD_WARNING_SUPPRESSION,\n\tBUN_BUILD_WARNING_SUPPRESSION\n} from '../constants';\n\nexport const outputLogs = (logs: (BuildMessage | ResolveMessage)[]) => {\n\tfor (const log of logs) {\n\t\tif (\n\t\t\t// TODO: When bun supports wildcard sideEffects, remove this suppression\n\t\t\tlog.message.includes(BUN_BUILD_WARNING_SUPPRESSION) &&\n\t\t\tlog.position?.file?.includes(ANGULAR_BUILD_WARNING_SUPPRESSION)\n\t\t)\n\t\t\tcontinue;\n\n\t\tif (log.level === 'error') console.error(log);\n\t\telse if (log.level === 'warning') console.warn(log);\n\t\telse console.info(log);\n\t}\n};\n",
|
|
@@ -18,7 +16,7 @@
|
|
|
18
16
|
"import { sep } from 'node:path';\n\nexport const commonAncestor = (paths: string[], fallback?: string) => {\n\tif (paths.length === 0) return fallback;\n\tconst segmentsList = paths.map((p) => p.split(sep));\n\tconst [first] = segmentsList;\n\tif (!first) return fallback;\n\tconst commonSegments = first.filter((segment, index) =>\n\t\tsegmentsList.every((pathSegs) => pathSegs[index] === segment)\n\t);\n\n\treturn commonSegments.length ? commonSegments.join(sep) : fallback;\n};\n",
|
|
19
17
|
"import {\n\tMILLISECONDS_IN_A_SECOND,\n\tTIME_PRECISION,\n\tMILLISECONDS_IN_A_MINUTE\n} from '../constants';\n\nexport const getDurationString = (duration: number) => {\n\tlet durationString;\n\n\tif (duration < MILLISECONDS_IN_A_SECOND) {\n\t\tdurationString = `${duration.toFixed(TIME_PRECISION)}ms`;\n\t} else if (duration < MILLISECONDS_IN_A_MINUTE) {\n\t\tdurationString = `${(duration / MILLISECONDS_IN_A_SECOND).toFixed(TIME_PRECISION)}s`;\n\t} else {\n\t\tdurationString = `${(duration / MILLISECONDS_IN_A_MINUTE).toFixed(TIME_PRECISION)}m`;\n\t}\n\n\treturn durationString;\n};\n",
|
|
20
18
|
"import { resolve, relative, sep } from 'node:path';\n\nexport const validateSafePath = (targetPath: string, baseDirectory: string) => {\n\tconst absoluteBase = resolve(baseDirectory);\n\tconst absoluteTarget = resolve(baseDirectory, targetPath);\n\tif (relative(absoluteBase, absoluteTarget).startsWith(`..${sep}`)) {\n\t\tthrow new Error(`Unsafe path: ${targetPath}`);\n\t}\n\n\treturn absoluteTarget;\n};\n",
|
|
21
|
-
"// CRITICAL: Import patch module FIRST to apply patches at module resolution time\n// This ensures patches are applied before Angular SSR modules are loaded\nimport patchPromise, { createDocumentProxy } from './angularPatch';\n\n// Store original async implementations before zone.js patches them\n// This allows us to restore them for Svelte rendering\nconst originalPromise = Promise;\nconst originalAsyncFunction = (async () => {}).constructor;\n\n// Import Angular modules (patches are already being applied by angularPatch.ts)\nimport { bootstrapApplication } from '@angular/platform-browser';\nimport {\n\trenderApplication,\n\tprovideServerRendering,\n\tINITIAL_CONFIG\n} from '@angular/platform-server';\nimport { APP_BASE_HREF } from '@angular/common';\nimport { InjectionToken } from '@angular/core';\n\n// BootstrapContext exists in Angular 19 but TypeScript definitions may vary\ninterface BootstrapContext {\n\tplatformRef: any;\n}\nimport { file } from 'bun';\nimport { ComponentType as ReactComponent, createElement } from 'react';\nimport { renderToReadableStream as renderReactToReadableStream } from 'react-dom/server';\nimport { Component as SvelteComponent } from 'svelte';\nimport { Component as VueComponent, createSSRApp, h } from 'vue';\nimport { renderToWebStream as renderVueToWebStream } from 'vue/server-renderer';\nimport { renderToReadableStream as renderSvelteToReadableStream } from '../svelte/renderToReadableStream';\nimport { renderToString as renderSvelteToString } from '../svelte/renderToString';\nimport { PropsArgs } from '../types';\n\nexport const handleReactPageRequest = async <\n\tProps extends Record<string, unknown> = Record<never, never>\n>(\n\tpageComponent: ReactComponent<Props>,\n\tindex: string,\n\t...props: keyof Props extends never ? [] : [props: Props]\n) => {\n\tconst [maybeProps] = props;\n\tconst element =\n\t\tmaybeProps !== undefined\n\t\t\t? createElement(pageComponent, maybeProps)\n\t\t\t: createElement(pageComponent);\n\n\tconst stream = await renderReactToReadableStream(element, {\n\t\tbootstrapModules: [index],\n\t\tbootstrapScriptContent: maybeProps\n\t\t\t? `window.__INITIAL_PROPS__=${JSON.stringify(maybeProps)}`\n\t\t\t: undefined\n\t});\n\n\treturn new Response(stream, {\n\t\theaders: { 'Content-Type': 'text/html' }\n\t});\n};\n\n// Declare overloads matching Svelte’s own component API to preserve correct type inference\ntype HandleSveltePageRequest = {\n\t(\n\t\tPageComponent: SvelteComponent<Record<string, never>>,\n\t\tpagePath: string,\n\t\tindexPath: string\n\t): Promise<Response>;\n\t<P extends Record<string, unknown>>(\n\t\tPageComponent: SvelteComponent<P>,\n\t\tpagePath: string,\n\t\tindexPath: string,\n\t\tprops: P\n\t): Promise<Response>;\n};\n\nexport const handleSveltePageRequest: HandleSveltePageRequest = async <\n\tP extends Record<string, unknown>\n>(\n\t_PageComponent: SvelteComponent<P>,\n\tpagePath: string,\n\tindexPath: string,\n\tprops?: P\n) => {\n\t// CRITICAL: Run Svelte rendering outside of zone.js context\n\t// zone.js (loaded for Angular) patches async operations globally and breaks Svelte streams\n\t// We need to run Svelte in a context that bypasses zone.js patches\n\t// @ts-expect-error - Zone may not exist if Angular hasn't been used\n\tconst Zone = globalThis.Zone;\n\n\t// If zone.js is active, we need to completely bypass it for Svelte\n\t// zone.js patches Promise, async/await, and streams globally at module load time\n\t// The solution: Use renderToString instead of renderToReadableStream when zone.js is active\n\t// This avoids ReadableStream which zone.js patches, causing failures\n\tif (Zone && Zone.current) {\n\t\t// When zone.js is active, use string rendering instead of streaming\n\t\t// This completely bypasses zone.js's ReadableStream patches\n\t\tconst { default: ImportedPageComponent } = await import(pagePath);\n\n\t\tconst html = renderSvelteToString(ImportedPageComponent, props, {\n\t\t\tbootstrapModules: indexPath ? [indexPath] : [],\n\t\t\tbootstrapScriptContent: `window.__INITIAL_PROPS__=${JSON.stringify(\n\t\t\t\tprops\n\t\t\t)}`\n\t\t});\n\n\t\treturn new Response(html, {\n\t\t\theaders: { 'Content-Type': 'text/html' }\n\t\t});\n\t}\n\n\t// If no zone.js, render normally\n\tconst { default: ImportedPageComponent } = await import(pagePath);\n\n\tconst stream = await renderSvelteToReadableStream(\n\t\tImportedPageComponent,\n\t\tprops,\n\t\t{\n\t\t\tbootstrapModules: indexPath ? [indexPath] : [],\n\t\t\tbootstrapScriptContent: `window.__INITIAL_PROPS__=${JSON.stringify(\n\t\t\t\tprops\n\t\t\t)}`\n\t\t}\n\t);\n\n\treturn new Response(stream, {\n\t\theaders: { 'Content-Type': 'text/html' }\n\t});\n};\n\nexport const handleVuePageRequest = async <\n\tProps extends Record<string, unknown> = Record<never, never>\n>(\n\t_PageComponent: VueComponent<Props>,\n\tpagePath: string,\n\tindexPath: string,\n\theadTag: `<head>${string}</head>` = '<head></head>',\n\t...props: keyof Props extends never ? [] : [props: Props]\n) => {\n\tconst [maybeProps] = props;\n\n\tconst { default: ImportedPageComponent } = await import(pagePath);\n\n\tconst app = createSSRApp({\n\t\trender: () => h(ImportedPageComponent, maybeProps ?? {})\n\t});\n\n\tconst bodyStream = renderVueToWebStream(app);\n\n\tconst head = `<!DOCTYPE html><html>${headTag}<body><div id=\"root\">`;\n\tconst tail = `</div><script>window.__INITIAL_PROPS__=${JSON.stringify(\n\t\tmaybeProps ?? {}\n\t)}</script><script type=\"module\" src=\"${indexPath}\"></script></body></html>`;\n\n\tconst stream = new ReadableStream({\n\t\tstart(controller) {\n\t\t\tcontroller.enqueue(head);\n\t\t\tconst reader = bodyStream.getReader();\n\t\t\tconst pumpLoop = () => {\n\t\t\t\treader\n\t\t\t\t\t.read()\n\t\t\t\t\t.then(({ done, value }) =>\n\t\t\t\t\t\tdone\n\t\t\t\t\t\t\t? (controller.enqueue(tail), controller.close())\n\t\t\t\t\t\t\t: (controller.enqueue(value), pumpLoop())\n\t\t\t\t\t)\n\t\t\t\t\t.catch((err) => controller.error(err));\n\t\t\t};\n\t\t\tpumpLoop();\n\t\t}\n\t});\n\n\treturn new Response(stream, {\n\t\theaders: { 'Content-Type': 'text/html' }\n\t});\n};\n\nexport const handleAngularPageRequest = async (\n\tPageComponent: any,\n\tindexPath: string,\n\tprops?: { initialCount?: number; cssPath?: string },\n\ttemplate?: string | Document,\n\ttokens?: { CSS_PATH?: any; INITIAL_COUNT?: any }\n) => {\n\t// Ensure patches are applied before proceeding\n\tawait patchPromise;\n\n\t// Get injection tokens - either passed in or try to get from component\n\tconst CSS_PATH_TOKEN = tokens?.CSS_PATH;\n\tconst INITIAL_COUNT_TOKEN = tokens?.INITIAL_COUNT;\n\n\t// @ts-expect-error - zone.js doesn't have proper type definitions\n\tif (!('Zone' in globalThis)) await import('zone.js/node');\n\n\t// Initialize Domino adapter - patches are already applied at module load time\n\t// This ensures Angular SSR's DOM types are available globally\n\ttry {\n\t\tconst platformServer = await import('@angular/platform-server');\n\t\t// @ts-expect-error - DominoAdapter exists at runtime\n\t\tconst DominoAdapter = platformServer.DominoAdapter;\n\t\tif (DominoAdapter?.makeCurrent) {\n\t\t\tDominoAdapter.makeCurrent();\n\t\t\tconsole.log(\n\t\t\t\t'✅ DominoAdapter initialized (patches already applied at module load)'\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.warn('⚠️ DominoAdapter.makeCurrent not available');\n\t\t}\n\t} catch (error) {\n\t\tconsole.warn('Failed to initialize DominoAdapter:', error);\n\t}\n\n\t// Use a minimal template that Angular will replace\n\t// For components with selector 'html', we need a complete HTML structure\n\t// Angular SSR requires a properly formed HTML document with head and body\n\t// The component will replace the entire <html> element and its contents\n\t// Angular SSR's getBaseHref() accesses doc.head.children during initialization\n\t// We need to ensure the HTML is in a format that Angular SSR can parse correctly\n\t// Using a very simple, minimal HTML structure that's guaranteed to parse\n\tconst htmlString =\n\t\ttemplate || '<!DOCTYPE html><html><head></head><body></body></html>';\n\n\t// WORKAROUND: Parse the document ourselves and pass Document object instead of string\n\t// This ensures doc.head exists when Angular SSR's getBaseHref() accesses it during initialization\n\t// Angular SSR's getBaseHref() is called before the document string is parsed, causing the error\n\tlet document: string | Document = htmlString;\n\tif (typeof htmlString === 'string') {\n\t\ttry {\n\t\t\t// @ts-expect-error - domino may not be installed in absolutejs, but should be in user's project\n\t\t\tconst domino = await import('domino').catch(() => null);\n\t\t\tif (domino?.createWindow) {\n\t\t\t\t// Parse the HTML string into a Document object\n\t\t\t\t// This ensures doc.head exists immediately when Angular SSR accesses it\n\t\t\t\tconst window = domino.createWindow(htmlString, '/');\n\t\t\t\tconst doc = window.document;\n\n\t\t\t\t// Ensure the document has a proper structure with head\n\t\t\t\t// This is critical - getBaseHref() accesses doc.head.children\n\t\t\t\tif (!doc.head) {\n\t\t\t\t\tconst head = doc.createElement('head');\n\t\t\t\t\tif (doc.documentElement) {\n\t\t\t\t\t\tdoc.documentElement.insertBefore(\n\t\t\t\t\t\t\thead,\n\t\t\t\t\t\t\tdoc.documentElement.firstChild\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Ensure head has querySelectorAll and querySelector BEFORE anything else\n\t\t\t\t// Angular SSR uses these immediately\n\t\t\t\tif (\n\t\t\t\t\tdoc.head &&\n\t\t\t\t\ttypeof doc.head.querySelectorAll !== 'function'\n\t\t\t\t) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tObject.defineProperty(doc.head, 'querySelectorAll', {\n\t\t\t\t\t\t\tvalue: function (selector: string) {\n\t\t\t\t\t\t\t\tif (doc.querySelectorAll) {\n\t\t\t\t\t\t\t\t\tconst all = doc.querySelectorAll(selector);\n\t\t\t\t\t\t\t\t\treturn Array.from(all).filter(\n\t\t\t\t\t\t\t\t\t\t(el: any) =>\n\t\t\t\t\t\t\t\t\t\t\tel.parentElement === doc.head ||\n\t\t\t\t\t\t\t\t\t\t\tdoc.head.contains(el)\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [];\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t'Failed to add querySelectorAll to head:',\n\t\t\t\t\t\t\te\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (doc.head && typeof doc.head.querySelector !== 'function') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tObject.defineProperty(doc.head, 'querySelector', {\n\t\t\t\t\t\t\tvalue: function (selector: string) {\n\t\t\t\t\t\t\t\tif (doc.querySelector) {\n\t\t\t\t\t\t\t\t\tconst el = doc.querySelector(selector);\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tel &&\n\t\t\t\t\t\t\t\t\t\t(el.parentElement === doc.head ||\n\t\t\t\t\t\t\t\t\t\t\tdoc.head.contains(el))\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\treturn el;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tconsole.warn('Failed to add querySelector to head:', e);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Ensure head has children property that works with Angular SSR's getBaseHref()\n\t\t\t\t// getBaseHref() does: const length = doc.head.children.length;\n\t\t\t\t// Then iterates: for (let i = 0; i < length; i++) { const child = doc.head.children[i]; }\n\t\t\t\t// So children needs to be array-like with length and numeric indices\n\t\t\t\tif (!doc.head.children) {\n\t\t\t\t\t// Create a proper HTMLCollection-like object\n\t\t\t\t\tconst elementNodes = Array.from(doc.head.childNodes).filter(\n\t\t\t\t\t\t(node: any) => node.nodeType === 1\n\t\t\t\t\t);\n\t\t\t\t\tconst childrenArray: any[] = [];\n\t\t\t\t\telementNodes.forEach((node, index) => {\n\t\t\t\t\t\tchildrenArray[index] = node;\n\t\t\t\t\t});\n\t\t\t\t\tchildrenArray.length = elementNodes.length;\n\t\t\t\t\tObject.defineProperty(doc.head, 'children', {\n\t\t\t\t\t\tvalue: childrenArray,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: false\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Ensure children has proper array-like structure\n\t\t\t\t\t// Domino's children might not be directly indexable\n\t\t\t\t\tconst children = doc.head.children;\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof children.length === 'undefined' ||\n\t\t\t\t\t\t(children[0] === undefined && children.length > 0)\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Rebuild as proper array\n\t\t\t\t\t\tconst elementNodes = Array.from(\n\t\t\t\t\t\t\tdoc.head.childNodes\n\t\t\t\t\t\t).filter((node: any) => node.nodeType === 1);\n\t\t\t\t\t\tconst childrenArray: any[] = [];\n\t\t\t\t\t\telementNodes.forEach((node, index) => {\n\t\t\t\t\t\t\tchildrenArray[index] = node;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tchildrenArray.length = elementNodes.length;\n\t\t\t\t\t\tObject.defineProperty(doc.head, 'children', {\n\t\t\t\t\t\t\tvalue: childrenArray,\n\t\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\t\tconfigurable: false\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// CRITICAL: Wrap Document in Proxy to intercept property access at engine level\n\t\t\t\t// This catches doc.head.children access before Angular SSR's getBaseHref() throws\n\t\t\t\t// The Proxy will safely handle null head or undefined children\n\t\t\t\tdocument = createDocumentProxy(doc);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// If domino parsing fails, fall back to string\n\t\t\t// Angular SSR will parse it internally (but may still have the head issue)\n\t\t\tconsole.warn(\n\t\t\t\t'Failed to parse document with domino, using string:',\n\t\t\t\terror\n\t\t\t);\n\t\t\tdocument = htmlString;\n\t\t}\n\t}\n\n\t// Build providers array\n\tconst providers: any[] = [\n\t\tprovideServerRendering(), // Essential SSR providers\n\t\t{ provide: APP_BASE_HREF, useValue: '/' } // Base href for routing\n\t];\n\n\t// Add prop providers if props and tokens are provided\n\tif (props) {\n\t\t// Debug: Log props being passed\n\t\tconsole.log('🔍 [DEBUG] handleAngularPageRequest props:', props);\n\n\t\tif (props.cssPath !== undefined && CSS_PATH_TOKEN) {\n\t\t\tproviders.push({\n\t\t\t\tprovide: CSS_PATH_TOKEN,\n\t\t\t\tuseValue: props.cssPath\n\t\t\t});\n\t\t\tconsole.log(\n\t\t\t\t'🔍 [DEBUG] Providing cssPath via DI token:',\n\t\t\t\tprops.cssPath,\n\t\t\t\t'Token:',\n\t\t\t\tCSS_PATH_TOKEN\n\t\t\t);\n\t\t} else if (props.cssPath !== undefined) {\n\t\t\tconsole.warn(\n\t\t\t\t'⚠️ [DEBUG] cssPath provided but CSS_PATH_TOKEN not available'\n\t\t\t);\n\t\t}\n\n\t\tif (props.initialCount !== undefined && INITIAL_COUNT_TOKEN) {\n\t\t\tproviders.push({\n\t\t\t\tprovide: INITIAL_COUNT_TOKEN,\n\t\t\t\tuseValue: props.initialCount\n\t\t\t});\n\t\t}\n\t}\n\n\t// Angular 19 SSR pattern: Bootstrap function receives BootstrapContext\n\t// BootstrapContext is available in Angular 19 and 20.3+\n\tconst bootstrap = (context: BootstrapContext) => {\n\t\t// Type assertions needed because TypeScript definitions vary by Angular version\n\t\treturn (bootstrapApplication as any)(\n\t\t\tPageComponent,\n\t\t\t{\n\t\t\t\tproviders: providers\n\t\t\t},\n\t\t\tcontext\n\t\t); // Pass the context as third argument\n\t};\n\n\ttry {\n\t\t// Convert Document object back to string if needed, but ensure it has proper structure\n\t\tlet finalDocument: string | Document = document;\n\t\tif (typeof document !== 'string' && document) {\n\t\t\t// Wrap Document object in Proxy to intercept property access at engine level\n\t\t\t// This catches doc.head.children access before it throws\n\t\t\tfinalDocument = createDocumentProxy(document);\n\t\t}\n\n\t\tconst html = await renderApplication(bootstrap as any, {\n\t\t\tdocument: finalDocument,\n\t\t\turl: '/',\n\t\t\tplatformProviders: [] // Per-request platform-level providers\n\t\t});\n\n\t\treturn new Response(html, {\n\t\t\theaders: { 'Content-Type': 'text/html' }\n\t\t});\n\t} catch (error: any) {\n\t\t// If there's an error with doc.head, it means Angular SSR's DOM parsing failed\n\t\t// This is likely a compatibility issue with Bun's environment\n\t\tconsole.error(\n\t\t\t'🚨 [ANGULAR SSR] Error caught in handleAngularPageRequest:',\n\t\t\t{\n\t\t\t\tmessage: error.message,\n\t\t\t\tstack: error.stack,\n\t\t\t\tname: error.name,\n\t\t\t\terror: error\n\t\t\t}\n\t\t);\n\n\t\t// If the error is about doc.head.children, include detailed information\n\t\tif (error.message && error.message.includes('doc.head.children')) {\n\t\t\tconsole.error(\n\t\t\t\t'🚨 [ANGULAR SSR] doc.head.children error detected!',\n\t\t\t\t{\n\t\t\t\t\tfullError: error,\n\t\t\t\t\tstack: error.stack,\n\t\t\t\t\tmessage: error.message\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tthrow error;\n\t}\n};\n\nexport const handleHTMLPageRequest = (html: string) => file(html);\nexport const handleHTMXPageRequest = (htmx: string) => file(htmx);\n\nexport const handlePageRequest = <Component>(\n\tPageComponent: Component,\n\t...props: PropsArgs<Component>\n) => {\n\tconsole.log('handlePageRequest coming soon.', PageComponent, props);\n};\n",
|
|
19
|
+
"import { file } from 'bun';\nimport { ComponentType as ReactComponent, createElement } from 'react';\nimport { renderToReadableStream as renderReactToReadableStream } from 'react-dom/server';\nimport { Component as SvelteComponent } from 'svelte';\nimport { Component as VueComponent, createSSRApp, h } from 'vue';\nimport { renderToWebStream as renderVueToWebStream } from 'vue/server-renderer';\nimport { renderToReadableStream as renderSvelteToReadableStream } from '../svelte/renderToReadableStream';\nimport { renderToString as renderSvelteToString } from '../svelte/renderToString';\nimport { PropsArgs } from '../types';\n\nexport const handleReactPageRequest = async <\n\tProps extends Record<string, unknown> = Record<never, never>\n>(\n\tpageComponent: ReactComponent<Props>,\n\tindex: string,\n\t...props: keyof Props extends never ? [] : [props: Props]\n) => {\n\tconst [maybeProps] = props;\n\tconst element =\n\t\tmaybeProps !== undefined\n\t\t\t? createElement(pageComponent, maybeProps)\n\t\t\t: createElement(pageComponent);\n\n\tconst stream = await renderReactToReadableStream(element, {\n\t\tbootstrapModules: [index],\n\t\tbootstrapScriptContent: maybeProps\n\t\t\t? `window.__INITIAL_PROPS__=${JSON.stringify(maybeProps)}`\n\t\t\t: undefined\n\t});\n\n\treturn new Response(stream, {\n\t\theaders: { 'Content-Type': 'text/html' }\n\t});\n};\n\n// Declare overloads matching Svelte’s own component API to preserve correct type inference\ntype HandleSveltePageRequest = {\n\t(\n\t\tPageComponent: SvelteComponent<Record<string, never>>,\n\t\tpagePath: string,\n\t\tindexPath: string\n\t): Promise<Response>;\n\t<P extends Record<string, unknown>>(\n\t\tPageComponent: SvelteComponent<P>,\n\t\tpagePath: string,\n\t\tindexPath: string,\n\t\tprops: P\n\t): Promise<Response>;\n};\n\nexport const handleSveltePageRequest: HandleSveltePageRequest = async <\n\tP extends Record<string, unknown>\n>(\n\t_PageComponent: SvelteComponent<P>,\n\tpagePath: string,\n\tindexPath: string,\n\tprops?: P\n) => {\n\t// CRITICAL: Run Svelte rendering outside of zone.js context\n\t// zone.js (loaded for Angular) patches async operations globally and breaks Svelte streams\n\t// We need to run Svelte in a context that bypasses zone.js patches\n\t// @ts-expect-error - Zone may not exist if Angular hasn't been used\n\tconst Zone = globalThis.Zone;\n\n\t// If zone.js is active, we need to completely bypass it for Svelte\n\t// zone.js patches Promise, async/await, and streams globally at module load time\n\t// The solution: Use renderToString instead of renderToReadableStream when zone.js is active\n\t// This avoids ReadableStream which zone.js patches, causing failures\n\tif (Zone && Zone.current) {\n\t\t// When zone.js is active, use string rendering instead of streaming\n\t\t// This completely bypasses zone.js's ReadableStream patches\n\t\tconst { default: ImportedPageComponent } = await import(pagePath);\n\n\t\tconst html = renderSvelteToString(ImportedPageComponent, props, {\n\t\t\tbootstrapModules: indexPath ? [indexPath] : [],\n\t\t\tbootstrapScriptContent: `window.__INITIAL_PROPS__=${JSON.stringify(\n\t\t\t\tprops\n\t\t\t)}`\n\t\t});\n\n\t\treturn new Response(html, {\n\t\t\theaders: { 'Content-Type': 'text/html' }\n\t\t});\n\t}\n\n\t// If no zone.js, render normally\n\tconst { default: ImportedPageComponent } = await import(pagePath);\n\n\tconst stream = await renderSvelteToReadableStream(\n\t\tImportedPageComponent,\n\t\tprops,\n\t\t{\n\t\t\tbootstrapModules: indexPath ? [indexPath] : [],\n\t\t\tbootstrapScriptContent: `window.__INITIAL_PROPS__=${JSON.stringify(\n\t\t\t\tprops\n\t\t\t)}`\n\t\t}\n\t);\n\n\treturn new Response(stream, {\n\t\theaders: { 'Content-Type': 'text/html' }\n\t});\n};\n\nexport const handleVuePageRequest = async <\n\tProps extends Record<string, unknown> = Record<never, never>\n>(\n\t_PageComponent: VueComponent<Props>,\n\tpagePath: string,\n\tindexPath: string,\n\theadTag: `<head>${string}</head>` = '<head></head>',\n\t...props: keyof Props extends never ? [] : [props: Props]\n) => {\n\tconst [maybeProps] = props;\n\n\tconst { default: ImportedPageComponent } = await import(pagePath);\n\n\tconst app = createSSRApp({\n\t\trender: () => h(ImportedPageComponent, maybeProps ?? {})\n\t});\n\n\tconst bodyStream = renderVueToWebStream(app);\n\n\tconst head = `<!DOCTYPE html><html>${headTag}<body><div id=\"root\">`;\n\tconst tail = `</div><script>window.__INITIAL_PROPS__=${JSON.stringify(\n\t\tmaybeProps ?? {}\n\t)}</script><script type=\"module\" src=\"${indexPath}\"></script></body></html>`;\n\n\tconst stream = new ReadableStream({\n\t\tstart(controller) {\n\t\t\tcontroller.enqueue(head);\n\t\t\tconst reader = bodyStream.getReader();\n\t\t\tconst pumpLoop = () => {\n\t\t\t\treader\n\t\t\t\t\t.read()\n\t\t\t\t\t.then(({ done, value }) =>\n\t\t\t\t\t\tdone\n\t\t\t\t\t\t\t? (controller.enqueue(tail), controller.close())\n\t\t\t\t\t\t\t: (controller.enqueue(value), pumpLoop())\n\t\t\t\t\t)\n\t\t\t\t\t.catch((err) => controller.error(err));\n\t\t\t};\n\t\t\tpumpLoop();\n\t\t}\n\t});\n\n\treturn new Response(stream, {\n\t\theaders: { 'Content-Type': 'text/html' }\n\t});\n};\n\nexport const handleHTMLPageRequest = (html: string) => file(html);\nexport const handleHTMXPageRequest = (htmx: string) => file(htmx);\n\nexport const handlePageRequest = <Component>(\n\tPageComponent: Component,\n\t...props: PropsArgs<Component>\n) => {\n\tconsole.log('handlePageRequest coming soon.', PageComponent, props);\n};\n",
|
|
22
20
|
"import type { Component } from 'svelte';\nimport { render } from 'svelte/server';\nimport { DEFAULT_CHUNK_SIZE } from '../constants';\nimport { escapeScriptContent } from '../utils/escapeScriptContent';\n\nexport type RenderStreamOptions = {\n\tbootstrapScriptContent?: string;\n\tbootstrapScripts?: string[];\n\tbootstrapModules?: string[];\n\tnonce?: string;\n\tonError?: (error: unknown) => void;\n\tprogressiveChunkSize?: number;\n\tsignal?: AbortSignal;\n};\n\nexport const renderToReadableStream = async <\n\tProps extends Record<string, unknown> = Record<string, never>\n>(\n\tcomponent: Component<Props>,\n\tprops?: Props,\n\t{\n\t\tbootstrapScriptContent,\n\t\tbootstrapScripts = [],\n\t\tbootstrapModules = [],\n\t\tnonce,\n\t\tonError = console.error,\n\t\tprogressiveChunkSize = DEFAULT_CHUNK_SIZE,\n\t\tsignal\n\t}: RenderStreamOptions = {}\n) => {\n\ttry {\n\t\tconst { head, body } =\n\t\t\ttypeof props === 'undefined'\n\t\t\t\t? // @ts-expect-error Svelte's render function can't determine which overload to choose when the component is generic\n\t\t\t\t\trender(component)\n\t\t\t\t: render(component, { props });\n\t\tconst nonceAttr = nonce ? ` nonce=\"${nonce}\"` : '';\n\t\tconst scripts =\n\t\t\t(bootstrapScriptContent\n\t\t\t\t? `<script${nonceAttr}>${escapeScriptContent(bootstrapScriptContent)}</script>`\n\t\t\t\t: '') +\n\t\t\tbootstrapScripts\n\t\t\t\t.map((src) => `<script${nonceAttr} src=\"${src}\"></script>`)\n\t\t\t\t.join('') +\n\t\t\tbootstrapModules\n\t\t\t\t.map(\n\t\t\t\t\t(src) =>\n\t\t\t\t\t\t`<script${nonceAttr} type=\"module\" src=\"${src}\"></script>`\n\t\t\t\t)\n\t\t\t\t.join('');\n\t\tconst encoder = new TextEncoder();\n\t\t// Warning: this encodes the entire document into memory in one buffer\n\t\tconst full = encoder.encode(\n\t\t\t`<!DOCTYPE html><html lang=\"en\"><head>${head}</head><body>${body}${scripts}</body></html>`\n\t\t);\n\n\t\tlet offset = 0;\n\n\t\treturn new ReadableStream<Uint8Array>({\n\t\t\ttype: 'bytes',\n\t\t\tcancel(reason) {\n\t\t\t\tonError?.(reason);\n\t\t\t},\n\t\t\tpull(controller) {\n\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (offset >= full.length) {\n\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst end = Math.min(\n\t\t\t\t\toffset + progressiveChunkSize,\n\t\t\t\t\tfull.length\n\t\t\t\t);\n\t\t\t\tcontroller.enqueue(full.subarray(offset, end));\n\t\t\t\toffset = end;\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tonError?.(error);\n\t\tthrow error;\n\t}\n};\n",
|
|
23
21
|
"const ESCAPE_LOOKUP: Record<string, string> = {\n\t'\\u2028': '\\\\u2028',\n\t'\\u2029': '\\\\u2029',\n\t'&': '\\\\u0026',\n\t'<': '\\\\u003C',\n\t'>': '\\\\u003E'\n};\n\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\n\nexport const escapeScriptContent = (content: string) =>\n\tcontent.replace(ESCAPE_REGEX, (char) => {\n\t\tconst escaped = ESCAPE_LOOKUP[char];\n\n\t\treturn escaped !== undefined ? escaped : char;\n\t});\n",
|
|
24
22
|
"import type { Component } from 'svelte';\nimport { render } from 'svelte/server';\nimport { escapeScriptContent } from '../utils/escapeScriptContent';\n\nexport type RenderStringOptions = {\n\tbootstrapScriptContent?: string;\n\tbootstrapScripts?: string[];\n\tbootstrapModules?: string[];\n\tnonce?: string;\n\tonError?: (error: unknown) => void;\n};\n\nexport const renderToString = <\n\tProps extends Record<string, unknown> = Record<string, never>\n>(\n\tcomponent: Component<Props>,\n\tprops?: Props,\n\t{\n\t\tbootstrapScriptContent,\n\t\tbootstrapScripts = [],\n\t\tbootstrapModules = [],\n\t\tnonce,\n\t\tonError = console.error\n\t}: RenderStringOptions = {}\n) => {\n\ttry {\n\t\tconst { head, body } =\n\t\t\ttypeof props === 'undefined'\n\t\t\t\t? // @ts-expect-error Svelte's render function can't determine which overload to choose when the component is generic\n\t\t\t\t\trender(component)\n\t\t\t\t: render(component, { props });\n\t\tconst nonceAttr = nonce ? ` nonce=\"${nonce}\"` : '';\n\t\tconst scripts = [\n\t\t\tbootstrapScriptContent &&\n\t\t\t\t`<script${nonceAttr}>${escapeScriptContent(bootstrapScriptContent)}</script>`,\n\t\t\t...bootstrapScripts.map(\n\t\t\t\t(src) => `<script${nonceAttr} src=\"${src}\"></script>`\n\t\t\t),\n\t\t\t...bootstrapModules.map(\n\t\t\t\t(src) =>\n\t\t\t\t\t`<script${nonceAttr} type=\"module\" src=\"${src}\"></script>`\n\t\t\t)\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join('');\n\n\t\treturn `<!DOCTYPE html><html lang=\"en\"><head>${head}</head><body>${body}${scripts}</body></html>`;\n\t} catch (error) {\n\t\tonError(error);\n\t\tthrow error;\n\t}\n};\n",
|
|
@@ -29,7 +27,7 @@
|
|
|
29
27
|
"type GenerateHeadElementProps = {\n\tcssPath?: string;\n\ttitle?: string;\n\ticon?: string;\n\tdescription?: string;\n\tfont?: string;\n};\n\nexport const generateHeadElement = ({\n\tcssPath,\n\ttitle = 'AbsoluteJS',\n\tdescription = 'A page created using AbsoluteJS',\n\tfont,\n\ticon = '/assets/ico/favicon.ico'\n}: GenerateHeadElementProps = {}) =>\n\t`<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>${title}</title>\n <meta name=\"description\" content=\"${description}\">\n <link rel=\"icon\" href=\"${icon}\" type=\"image/x-icon\">\n ${\n\t\tfont\n\t\t\t? `<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link href=\"https://fonts.googleapis.com/css2?family=${font}:wght@100..900&display=swap\" rel=\"stylesheet\">`\n\t\t\t: ''\n }\n ${cssPath ? `<link rel=\"stylesheet\" href=\"${cssPath}\" type=\"text/css\">` : ''}\n</head>` as const;\n",
|
|
30
28
|
"import { env } from 'bun';\n\nexport const getEnv = (key: string) => {\n\tconst environmentVariable = env[key];\n\tif (\n\t\ttypeof environmentVariable !== 'string' ||\n\t\tenvironmentVariable.length === 0\n\t) {\n\t\tthrow new Error(`Missing environment variable ${key}`);\n\t}\n\n\treturn environmentVariable;\n};\n"
|
|
31
29
|
],
|
|
32
|
-
"mappings": "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",
|
|
33
|
-
"debugId": "
|
|
30
|
+
"mappings": "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",
|
|
31
|
+
"debugId": "898E0366299327F164756E2164756E21",
|
|
34
32
|
"names": []
|
|
35
33
|
}
|
package/package.json
CHANGED
|
@@ -2,11 +2,6 @@
|
|
|
2
2
|
"author": "Alex Kahn",
|
|
3
3
|
"description": "A fullstack meta-framework for building web applications with TypeScript",
|
|
4
4
|
"devDependencies": {
|
|
5
|
-
"@angular/compiler-cli": "20.1.0",
|
|
6
|
-
"@angular/core": "20.1.0",
|
|
7
|
-
"@angular/platform-browser": "20.1.0",
|
|
8
|
-
"@angular/platform-server": "20.1.0",
|
|
9
|
-
"@angular/ssr": "20.1.0",
|
|
10
5
|
"@elysiajs/static": "1.3.0",
|
|
11
6
|
"@stylistic/eslint-plugin-ts": "4.2.0",
|
|
12
7
|
"@tailwindcss/cli": "4.1.7",
|
|
@@ -29,25 +24,17 @@
|
|
|
29
24
|
"tailwindcss": "4.1.7",
|
|
30
25
|
"typescript": "5.8.3",
|
|
31
26
|
"typescript-eslint": "8.32.0",
|
|
32
|
-
"vue": "3.5.17"
|
|
33
|
-
"zone.js": "0.15.1"
|
|
27
|
+
"vue": "3.5.17"
|
|
34
28
|
},
|
|
35
29
|
"license": "CC BY-NC 4.0",
|
|
36
30
|
"main": "./dist/index.js",
|
|
37
31
|
"name": "@absolutejs/absolute",
|
|
38
32
|
"peerDependencies": {
|
|
39
|
-
"@angular/common": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
40
|
-
"@angular/compiler-cli": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
41
|
-
"@angular/core": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
42
|
-
"@angular/platform-browser": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
43
|
-
"@angular/platform-server": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
44
|
-
"@angular/ssr": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
45
33
|
"elysia": "^1.3.0",
|
|
46
34
|
"react": "^18.0.0 || ^19.1.0",
|
|
47
35
|
"react-dom": "^18.0.0 || ^19.1.0",
|
|
48
36
|
"svelte": "^5.35.2",
|
|
49
|
-
"vue": "^3.5.17"
|
|
50
|
-
"zone.js": "^0.15.0"
|
|
37
|
+
"vue": "^3.5.17"
|
|
51
38
|
},
|
|
52
39
|
"repository": {
|
|
53
40
|
"type": "git",
|
|
@@ -65,8 +52,5 @@
|
|
|
65
52
|
"typecheck": "bun run tsc --noEmit"
|
|
66
53
|
},
|
|
67
54
|
"types": "./dist/index.d.ts",
|
|
68
|
-
"version": "0.12.
|
|
69
|
-
"dependencies": {
|
|
70
|
-
"@angular/compiler": "20.1.0"
|
|
71
|
-
}
|
|
55
|
+
"version": "0.12.5"
|
|
72
56
|
}
|