@absolutejs/absolute 0.19.0-beta.986 → 0.19.0-beta.988

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -11060,6 +11060,10 @@ var init_updateAssetPaths = __esm(() => {
11060
11060
  });
11061
11061
 
11062
11062
  // src/dev/buildHMRClient.ts
11063
+ var exports_buildHMRClient = {};
11064
+ __export(exports_buildHMRClient, {
11065
+ buildHMRClient: () => buildHMRClient
11066
+ });
11063
11067
  import { existsSync as existsSync17 } from "fs";
11064
11068
  import { resolve as resolve15 } from "path";
11065
11069
  var {build: bunBuild } = globalThis.Bun;
@@ -11859,11 +11863,15 @@ var validateSafePath = (targetPath, baseDirectory) => {
11859
11863
  };
11860
11864
  var init_validateSafePath = () => {};
11861
11865
 
11862
- // src/build/scanAngularHandlerCalls.ts
11866
+ // src/build/scanVueSsrOnlyPages.ts
11867
+ var exports_scanVueSsrOnlyPages = {};
11868
+ __export(exports_scanVueSsrOnlyPages, {
11869
+ scanVueSsrOnlyPages: () => scanVueSsrOnlyPages
11870
+ });
11863
11871
  import { readdirSync as readdirSync2, readFileSync as readFileSync14 } from "fs";
11864
11872
  import { join as join23 } from "path";
11865
11873
  import ts6 from "typescript";
11866
- var ELYSIA_ROUTE_METHODS2, SKIP_DIRS2, SOURCE_EXTENSIONS2, getScriptKind2 = (filePath) => {
11874
+ var SKIP_DIRS2, SOURCE_EXTENSIONS2, getScriptKind2 = (filePath) => {
11867
11875
  if (filePath.endsWith(".tsx"))
11868
11876
  return ts6.ScriptKind.TSX;
11869
11877
  return ts6.ScriptKind.TS;
@@ -11901,26 +11909,173 @@ var ELYSIA_ROUTE_METHODS2, SKIP_DIRS2, SOURCE_EXTENSIONS2, getScriptKind2 = (fil
11901
11909
  }
11902
11910
  }
11903
11911
  return out;
11912
+ }, fileMayContainVueHandler = (source) => source.includes("handleVuePageRequest"), isHandleVuePageRequestCallee = (expression) => {
11913
+ if (ts6.isIdentifier(expression)) {
11914
+ return expression.text === "handleVuePageRequest";
11915
+ }
11916
+ if (ts6.isPropertyAccessExpression(expression) && ts6.isIdentifier(expression.name)) {
11917
+ return expression.name.text === "handleVuePageRequest";
11918
+ }
11919
+ return false;
11920
+ }, getPropertyName = (name) => {
11921
+ if (ts6.isIdentifier(name) || ts6.isStringLiteral(name)) {
11922
+ return name.text;
11923
+ }
11924
+ return null;
11925
+ }, readStringLiteralValue = (node) => {
11926
+ if (ts6.isStringLiteral(node) || ts6.isNoSubstitutionTemplateLiteral(node)) {
11927
+ return node.text;
11928
+ }
11929
+ return null;
11930
+ }, isAssetCall = (node) => {
11931
+ if (!ts6.isCallExpression(node))
11932
+ return false;
11933
+ if (!ts6.isIdentifier(node.expression))
11934
+ return false;
11935
+ return node.expression.text === "asset";
11936
+ }, extractAssetLiteralKey = (call) => {
11937
+ if (call.arguments.length < 2)
11938
+ return null;
11939
+ const keyArg = call.arguments[1];
11940
+ if (!keyArg)
11941
+ return null;
11942
+ return readStringLiteralValue(keyArg);
11943
+ }, extractPagePathAssetKey = (initializer) => {
11944
+ if (!isAssetCall(initializer))
11945
+ return null;
11946
+ if (!ts6.isCallExpression(initializer))
11947
+ return null;
11948
+ return extractAssetLiteralKey(initializer);
11949
+ }, extractSsrOnlyPageName = (objectLiteral) => {
11950
+ let hasClientNone = false;
11951
+ let pageAssetKey = null;
11952
+ for (const property of objectLiteral.properties) {
11953
+ if (!ts6.isPropertyAssignment(property))
11954
+ continue;
11955
+ const name = getPropertyName(property.name);
11956
+ if (!name)
11957
+ continue;
11958
+ if (name === "client") {
11959
+ const value = readStringLiteralValue(property.initializer);
11960
+ if (value === "none")
11961
+ hasClientNone = true;
11962
+ continue;
11963
+ }
11964
+ if (name === "pagePath") {
11965
+ pageAssetKey = extractPagePathAssetKey(property.initializer);
11966
+ }
11967
+ }
11968
+ if (!hasClientNone)
11969
+ return null;
11970
+ return pageAssetKey;
11971
+ }, extractFromFile = (filePath, out) => {
11972
+ let source;
11973
+ try {
11974
+ source = readFileSync14(filePath, "utf-8");
11975
+ } catch {
11976
+ return;
11977
+ }
11978
+ if (!fileMayContainVueHandler(source))
11979
+ return;
11980
+ const sourceFile = ts6.createSourceFile(filePath, source, ts6.ScriptTarget.Latest, true, getScriptKind2(filePath));
11981
+ const visit = (node) => {
11982
+ if (ts6.isCallExpression(node) && isHandleVuePageRequestCallee(node.expression)) {
11983
+ const firstArg = node.arguments[0];
11984
+ if (firstArg && ts6.isObjectLiteralExpression(firstArg)) {
11985
+ const pageName = extractSsrOnlyPageName(firstArg);
11986
+ if (pageName)
11987
+ out.add(pageName);
11988
+ }
11989
+ }
11990
+ ts6.forEachChild(node, visit);
11991
+ };
11992
+ ts6.forEachChild(sourceFile, visit);
11993
+ }, scanVueSsrOnlyPages = (projectRoot) => {
11994
+ const files = collectSourceFiles2(projectRoot);
11995
+ const ssrOnlyPageNames = new Set;
11996
+ for (const file2 of files) {
11997
+ extractFromFile(file2, ssrOnlyPageNames);
11998
+ }
11999
+ return ssrOnlyPageNames;
12000
+ };
12001
+ var init_scanVueSsrOnlyPages = __esm(() => {
12002
+ SKIP_DIRS2 = new Set([
12003
+ ".absolutejs",
12004
+ ".generated",
12005
+ ".git",
12006
+ ".next",
12007
+ ".svelte-kit",
12008
+ ".vercel",
12009
+ "build",
12010
+ "compiled",
12011
+ "dist",
12012
+ "node_modules"
12013
+ ]);
12014
+ SOURCE_EXTENSIONS2 = new Set([".ts", ".tsx", ".mts", ".cts"]);
12015
+ });
12016
+
12017
+ // src/build/scanAngularHandlerCalls.ts
12018
+ import { readdirSync as readdirSync3, readFileSync as readFileSync15 } from "fs";
12019
+ import { join as join24 } from "path";
12020
+ import ts7 from "typescript";
12021
+ var ELYSIA_ROUTE_METHODS2, SKIP_DIRS3, SOURCE_EXTENSIONS3, getScriptKind3 = (filePath) => {
12022
+ if (filePath.endsWith(".tsx"))
12023
+ return ts7.ScriptKind.TSX;
12024
+ return ts7.ScriptKind.TS;
12025
+ }, hasSourceExtension3 = (filePath) => {
12026
+ const idx = filePath.lastIndexOf(".");
12027
+ if (idx === -1)
12028
+ return false;
12029
+ return SOURCE_EXTENSIONS3.has(filePath.slice(idx));
12030
+ }, collectSourceFiles3 = (root) => {
12031
+ const out = [];
12032
+ const stack = [root];
12033
+ while (stack.length > 0) {
12034
+ const dir = stack.pop();
12035
+ if (!dir)
12036
+ continue;
12037
+ let entries;
12038
+ try {
12039
+ entries = readdirSync3(dir, {
12040
+ encoding: "utf-8",
12041
+ withFileTypes: true
12042
+ });
12043
+ } catch {
12044
+ continue;
12045
+ }
12046
+ for (const entry of entries) {
12047
+ if (entry.isDirectory()) {
12048
+ if (SKIP_DIRS3.has(entry.name))
12049
+ continue;
12050
+ if (entry.name.startsWith("."))
12051
+ continue;
12052
+ stack.push(join24(dir, entry.name));
12053
+ } else if (entry.isFile() && hasSourceExtension3(entry.name)) {
12054
+ out.push(join24(dir, entry.name));
12055
+ }
12056
+ }
12057
+ }
12058
+ return out;
11904
12059
  }, fileMayContainAngularHandler = (source) => source.includes("handleAngularPageRequest"), extractManifestKey = (pagePathValue) => {
11905
- if (!ts6.isCallExpression(pagePathValue))
12060
+ if (!ts7.isCallExpression(pagePathValue))
11906
12061
  return null;
11907
12062
  const callee = pagePathValue.expression;
11908
- if (!ts6.isIdentifier(callee) || callee.text !== "asset")
12063
+ if (!ts7.isIdentifier(callee) || callee.text !== "asset")
11909
12064
  return null;
11910
12065
  const [, second] = pagePathValue.arguments;
11911
12066
  if (!second)
11912
12067
  return null;
11913
- if (!ts6.isStringLiteral(second))
12068
+ if (!ts7.isStringLiteral(second))
11914
12069
  return null;
11915
12070
  return second.text;
11916
12071
  }, findEnclosingMountPath = (node) => {
11917
12072
  let cursor = node.parent;
11918
12073
  while (cursor) {
11919
- if (ts6.isCallExpression(cursor)) {
12074
+ if (ts7.isCallExpression(cursor)) {
11920
12075
  const callee = cursor.expression;
11921
- if (ts6.isPropertyAccessExpression(callee) && ts6.isIdentifier(callee.name) && ELYSIA_ROUTE_METHODS2.has(callee.name.text)) {
12076
+ if (ts7.isPropertyAccessExpression(callee) && ts7.isIdentifier(callee.name) && ELYSIA_ROUTE_METHODS2.has(callee.name.text)) {
11922
12077
  const firstArg = cursor.arguments[0];
11923
- if (firstArg && ts6.isStringLiteral(firstArg) && firstArg.text.startsWith("/")) {
12078
+ if (firstArg && ts7.isStringLiteral(firstArg) && firstArg.text.startsWith("/")) {
11924
12079
  return firstArg.text;
11925
12080
  }
11926
12081
  }
@@ -11931,33 +12086,33 @@ var ELYSIA_ROUTE_METHODS2, SKIP_DIRS2, SOURCE_EXTENSIONS2, getScriptKind2 = (fil
11931
12086
  }, extractCallsFromFile = (filePath, out) => {
11932
12087
  let source;
11933
12088
  try {
11934
- source = readFileSync14(filePath, "utf-8");
12089
+ source = readFileSync15(filePath, "utf-8");
11935
12090
  } catch {
11936
12091
  return;
11937
12092
  }
11938
12093
  if (!fileMayContainAngularHandler(source))
11939
12094
  return;
11940
- const sf = ts6.createSourceFile(filePath, source, ts6.ScriptTarget.Latest, true, getScriptKind2(filePath));
12095
+ const sf = ts7.createSourceFile(filePath, source, ts7.ScriptTarget.Latest, true, getScriptKind3(filePath));
11941
12096
  const visit = (node) => {
11942
- if (ts6.isCallExpression(node) && ts6.isIdentifier(node.expression) && node.expression.text === "handleAngularPageRequest") {
12097
+ if (ts7.isCallExpression(node) && ts7.isIdentifier(node.expression) && node.expression.text === "handleAngularPageRequest") {
11943
12098
  const [arg] = node.arguments;
11944
- if (arg && ts6.isObjectLiteralExpression(arg)) {
12099
+ if (arg && ts7.isObjectLiteralExpression(arg)) {
11945
12100
  let manifestKey = null;
11946
12101
  for (const prop of arg.properties) {
11947
- if (ts6.isPropertyAssignment(prop)) {
12102
+ if (ts7.isPropertyAssignment(prop)) {
11948
12103
  if (!prop.name)
11949
12104
  continue;
11950
- const name = ts6.isIdentifier(prop.name) ? prop.name.text : ts6.isStringLiteral(prop.name) ? prop.name.text : null;
12105
+ const name = ts7.isIdentifier(prop.name) ? prop.name.text : ts7.isStringLiteral(prop.name) ? prop.name.text : null;
11951
12106
  if (name === "pagePath") {
11952
12107
  manifestKey = extractManifestKey(prop.initializer);
11953
12108
  }
11954
- } else if (ts6.isSpreadAssignment(prop)) {
12109
+ } else if (ts7.isSpreadAssignment(prop)) {
11955
12110
  if (manifestKey)
11956
12111
  continue;
11957
12112
  const spreadExpr = prop.expression;
11958
- if (ts6.isCallExpression(spreadExpr) && spreadExpr.arguments.length > 0) {
12113
+ if (ts7.isCallExpression(spreadExpr) && spreadExpr.arguments.length > 0) {
11959
12114
  const [firstArg] = spreadExpr.arguments;
11960
- if (firstArg && ts6.isStringLiteral(firstArg)) {
12115
+ if (firstArg && ts7.isStringLiteral(firstArg)) {
11961
12116
  manifestKey = firstArg.text;
11962
12117
  }
11963
12118
  }
@@ -11972,11 +12127,11 @@ var ELYSIA_ROUTE_METHODS2, SKIP_DIRS2, SOURCE_EXTENSIONS2, getScriptKind2 = (fil
11972
12127
  }
11973
12128
  }
11974
12129
  }
11975
- ts6.forEachChild(node, visit);
12130
+ ts7.forEachChild(node, visit);
11976
12131
  };
11977
- ts6.forEachChild(sf, visit);
12132
+ ts7.forEachChild(sf, visit);
11978
12133
  }, scanAngularHandlerCalls = (projectRoot) => {
11979
- const files = collectSourceFiles2(projectRoot);
12134
+ const files = collectSourceFiles3(projectRoot);
11980
12135
  const collected = [];
11981
12136
  for (const file2 of files) {
11982
12137
  extractCallsFromFile(file2, collected);
@@ -11994,7 +12149,7 @@ var init_scanAngularHandlerCalls = __esm(() => {
11994
12149
  "post",
11995
12150
  "put"
11996
12151
  ]);
11997
- SKIP_DIRS2 = new Set([
12152
+ SKIP_DIRS3 = new Set([
11998
12153
  ".absolutejs",
11999
12154
  ".generated",
12000
12155
  ".git",
@@ -12006,20 +12161,20 @@ var init_scanAngularHandlerCalls = __esm(() => {
12006
12161
  "dist",
12007
12162
  "node_modules"
12008
12163
  ]);
12009
- SOURCE_EXTENSIONS2 = new Set([".ts", ".tsx", ".mts", ".cts"]);
12164
+ SOURCE_EXTENSIONS3 = new Set([".ts", ".tsx", ".mts", ".cts"]);
12010
12165
  });
12011
12166
 
12012
12167
  // src/build/scanAngularPageRoutes.ts
12013
- import { readdirSync as readdirSync3, readFileSync as readFileSync15 } from "fs";
12014
- import { basename as basename6, join as join24 } from "path";
12015
- import ts7 from "typescript";
12016
- var SOURCE_EXTENSIONS3, SKIP_DIRS3, hasSourceExtension3 = (filePath) => {
12168
+ import { readdirSync as readdirSync4, readFileSync as readFileSync16 } from "fs";
12169
+ import { basename as basename6, join as join25 } from "path";
12170
+ import ts8 from "typescript";
12171
+ var SOURCE_EXTENSIONS4, SKIP_DIRS4, hasSourceExtension4 = (filePath) => {
12017
12172
  const idx = filePath.lastIndexOf(".");
12018
12173
  if (idx === -1)
12019
12174
  return false;
12020
- return SOURCE_EXTENSIONS3.has(filePath.slice(idx));
12175
+ return SOURCE_EXTENSIONS4.has(filePath.slice(idx));
12021
12176
  }, isPageFile = (filePath) => {
12022
- if (!hasSourceExtension3(filePath))
12177
+ if (!hasSourceExtension4(filePath))
12023
12178
  return false;
12024
12179
  const base = basename6(filePath);
12025
12180
  if (base.endsWith(".d.ts"))
@@ -12038,7 +12193,7 @@ var SOURCE_EXTENSIONS3, SKIP_DIRS3, hasSourceExtension3 = (filePath) => {
12038
12193
  continue;
12039
12194
  let entries;
12040
12195
  try {
12041
- entries = readdirSync3(dir, {
12196
+ entries = readdirSync4(dir, {
12042
12197
  encoding: "utf-8",
12043
12198
  withFileTypes: true
12044
12199
  });
@@ -12047,13 +12202,13 @@ var SOURCE_EXTENSIONS3, SKIP_DIRS3, hasSourceExtension3 = (filePath) => {
12047
12202
  }
12048
12203
  for (const entry of entries) {
12049
12204
  if (entry.isDirectory()) {
12050
- if (SKIP_DIRS3.has(entry.name))
12205
+ if (SKIP_DIRS4.has(entry.name))
12051
12206
  continue;
12052
12207
  if (entry.name.startsWith("."))
12053
12208
  continue;
12054
- stack.push(join24(dir, entry.name));
12209
+ stack.push(join25(dir, entry.name));
12055
12210
  } else if (entry.isFile() && isPageFile(entry.name)) {
12056
- out.push(join24(dir, entry.name));
12211
+ out.push(join25(dir, entry.name));
12057
12212
  }
12058
12213
  }
12059
12214
  }
@@ -12061,15 +12216,15 @@ var SOURCE_EXTENSIONS3, SKIP_DIRS3, hasSourceExtension3 = (filePath) => {
12061
12216
  }, hasTopLevelRoutesExport = (source, filePath) => {
12062
12217
  if (!source.includes("routes"))
12063
12218
  return false;
12064
- const sf = ts7.createSourceFile(filePath, source, ts7.ScriptTarget.Latest, true, ts7.ScriptKind.TS);
12219
+ const sf = ts8.createSourceFile(filePath, source, ts8.ScriptTarget.Latest, true, ts8.ScriptKind.TS);
12065
12220
  for (const statement of sf.statements) {
12066
- if (!ts7.isVariableStatement(statement))
12221
+ if (!ts8.isVariableStatement(statement))
12067
12222
  continue;
12068
- const isExported = statement.modifiers?.some((modifier) => modifier.kind === ts7.SyntaxKind.ExportKeyword);
12223
+ const isExported = statement.modifiers?.some((modifier) => modifier.kind === ts8.SyntaxKind.ExportKeyword);
12069
12224
  if (!isExported)
12070
12225
  continue;
12071
12226
  for (const declaration of statement.declarationList.declarations) {
12072
- if (!ts7.isIdentifier(declaration.name))
12227
+ if (!ts8.isIdentifier(declaration.name))
12073
12228
  continue;
12074
12229
  if (declaration.name.text === "routes")
12075
12230
  return true;
@@ -12082,7 +12237,7 @@ var SOURCE_EXTENSIONS3, SKIP_DIRS3, hasSourceExtension3 = (filePath) => {
12082
12237
  for (const file2 of files) {
12083
12238
  let source;
12084
12239
  try {
12085
- source = readFileSync15(file2, "utf-8");
12240
+ source = readFileSync16(file2, "utf-8");
12086
12241
  } catch {
12087
12242
  continue;
12088
12243
  }
@@ -12098,8 +12253,8 @@ var SOURCE_EXTENSIONS3, SKIP_DIRS3, hasSourceExtension3 = (filePath) => {
12098
12253
  return out;
12099
12254
  };
12100
12255
  var init_scanAngularPageRoutes = __esm(() => {
12101
- SOURCE_EXTENSIONS3 = new Set([".ts", ".tsx", ".mts", ".cts"]);
12102
- SKIP_DIRS3 = new Set([
12256
+ SOURCE_EXTENSIONS4 = new Set([".ts", ".tsx", ".mts", ".cts"]);
12257
+ SKIP_DIRS4 = new Set([
12103
12258
  ".absolutejs",
12104
12259
  ".generated",
12105
12260
  ".git",
@@ -12129,46 +12284,46 @@ var exports_parseAngularConfigImports = {};
12129
12284
  __export(exports_parseAngularConfigImports, {
12130
12285
  parseAngularProvidersImport: () => parseAngularProvidersImport
12131
12286
  });
12132
- import { existsSync as existsSync20, readFileSync as readFileSync16 } from "fs";
12133
- import { dirname as dirname13, isAbsolute as isAbsolute3, join as join25 } from "path";
12134
- import ts8 from "typescript";
12287
+ import { existsSync as existsSync20, readFileSync as readFileSync17 } from "fs";
12288
+ import { dirname as dirname13, isAbsolute as isAbsolute3, join as join26 } from "path";
12289
+ import ts9 from "typescript";
12135
12290
  var findDefineConfigCall = (sf) => {
12136
12291
  let result = null;
12137
12292
  const visit = (node) => {
12138
12293
  if (result)
12139
12294
  return;
12140
- if (ts8.isCallExpression(node) && ts8.isIdentifier(node.expression) && node.expression.text === "defineConfig") {
12295
+ if (ts9.isCallExpression(node) && ts9.isIdentifier(node.expression) && node.expression.text === "defineConfig") {
12141
12296
  const [arg] = node.arguments;
12142
- if (arg && ts8.isObjectLiteralExpression(arg)) {
12297
+ if (arg && ts9.isObjectLiteralExpression(arg)) {
12143
12298
  result = arg;
12144
12299
  return;
12145
12300
  }
12146
12301
  }
12147
- ts8.forEachChild(node, visit);
12302
+ ts9.forEachChild(node, visit);
12148
12303
  };
12149
- ts8.forEachChild(sf, visit);
12304
+ ts9.forEachChild(sf, visit);
12150
12305
  return result;
12151
12306
  }, findPropertyInitializer = (object, name) => {
12152
12307
  for (const prop of object.properties) {
12153
- if (!ts8.isPropertyAssignment(prop))
12308
+ if (!ts9.isPropertyAssignment(prop))
12154
12309
  continue;
12155
12310
  if (!prop.name)
12156
12311
  continue;
12157
- const key = ts8.isIdentifier(prop.name) ? prop.name.text : ts8.isStringLiteral(prop.name) ? prop.name.text : null;
12312
+ const key = ts9.isIdentifier(prop.name) ? prop.name.text : ts9.isStringLiteral(prop.name) ? prop.name.text : null;
12158
12313
  if (key === name)
12159
12314
  return prop.initializer;
12160
12315
  }
12161
12316
  return null;
12162
12317
  }, findImportForBinding = (sf, binding) => {
12163
12318
  for (const statement of sf.statements) {
12164
- if (!ts8.isImportDeclaration(statement))
12319
+ if (!ts9.isImportDeclaration(statement))
12165
12320
  continue;
12166
- if (!ts8.isStringLiteral(statement.moduleSpecifier))
12321
+ if (!ts9.isStringLiteral(statement.moduleSpecifier))
12167
12322
  continue;
12168
12323
  if (statement.importClause?.isTypeOnly)
12169
12324
  continue;
12170
12325
  const named = statement.importClause?.namedBindings;
12171
- if (!named || !ts8.isNamedImports(named))
12326
+ if (!named || !ts9.isNamedImports(named))
12172
12327
  continue;
12173
12328
  for (const element of named.elements) {
12174
12329
  if (element.isTypeOnly)
@@ -12185,15 +12340,15 @@ var findDefineConfigCall = (sf) => {
12185
12340
  }, resolveConfigPath = (projectRoot) => {
12186
12341
  const envOverride = process.env.ABSOLUTE_CONFIG;
12187
12342
  if (envOverride) {
12188
- const resolved = isAbsolute3(envOverride) ? envOverride : join25(projectRoot, envOverride);
12343
+ const resolved = isAbsolute3(envOverride) ? envOverride : join26(projectRoot, envOverride);
12189
12344
  if (existsSync20(resolved))
12190
12345
  return resolved;
12191
12346
  }
12192
12347
  const candidates = [
12193
- join25(projectRoot, "absolute.config.ts"),
12194
- join25(projectRoot, "absolute.config.mts"),
12195
- join25(projectRoot, "absolute.config.js"),
12196
- join25(projectRoot, "absolute.config.mjs")
12348
+ join26(projectRoot, "absolute.config.ts"),
12349
+ join26(projectRoot, "absolute.config.mts"),
12350
+ join26(projectRoot, "absolute.config.js"),
12351
+ join26(projectRoot, "absolute.config.mjs")
12197
12352
  ];
12198
12353
  for (const candidate of candidates) {
12199
12354
  if (existsSync20(candidate))
@@ -12204,29 +12359,29 @@ var findDefineConfigCall = (sf) => {
12204
12359
  const configPath2 = resolveConfigPath(projectRoot);
12205
12360
  if (!configPath2)
12206
12361
  return null;
12207
- const source = readFileSync16(configPath2, "utf-8");
12362
+ const source = readFileSync17(configPath2, "utf-8");
12208
12363
  if (!source.includes("angular"))
12209
12364
  return null;
12210
12365
  if (!source.includes("providers"))
12211
12366
  return null;
12212
- const sf = ts8.createSourceFile(configPath2, source, ts8.ScriptTarget.Latest, true, ts8.ScriptKind.TS);
12367
+ const sf = ts9.createSourceFile(configPath2, source, ts9.ScriptTarget.Latest, true, ts9.ScriptKind.TS);
12213
12368
  const configObject = findDefineConfigCall(sf);
12214
12369
  if (!configObject)
12215
12370
  return null;
12216
12371
  const angularField = findPropertyInitializer(configObject, "angular");
12217
- if (!angularField || !ts8.isObjectLiteralExpression(angularField))
12372
+ if (!angularField || !ts9.isObjectLiteralExpression(angularField))
12218
12373
  return null;
12219
12374
  const providersField = findPropertyInitializer(angularField, "providers");
12220
12375
  if (!providersField)
12221
12376
  return null;
12222
- if (!ts8.isIdentifier(providersField))
12377
+ if (!ts9.isIdentifier(providersField))
12223
12378
  return null;
12224
12379
  const binding = providersField.text;
12225
12380
  const importInfo = findImportForBinding(sf, binding);
12226
12381
  if (!importInfo)
12227
12382
  return null;
12228
12383
  const configDir2 = dirname13(configPath2);
12229
- const absolutePath = importInfo.source.startsWith(".") ? join25(configDir2, importInfo.source).replace(/\.[cm]?[tj]sx?$/, "") : isAbsolute3(importInfo.source) ? importInfo.source.replace(/\.[cm]?[tj]sx?$/, "") : importInfo.source;
12384
+ const absolutePath = importInfo.source.startsWith(".") ? join26(configDir2, importInfo.source).replace(/\.[cm]?[tj]sx?$/, "") : isAbsolute3(importInfo.source) ? importInfo.source.replace(/\.[cm]?[tj]sx?$/, "") : importInfo.source;
12230
12385
  return {
12231
12386
  absolutePath,
12232
12387
  bindingName: binding,
@@ -12301,7 +12456,7 @@ import { existsSync as existsSync21 } from "fs";
12301
12456
  import { mkdir as mkdir4, stat as stat2 } from "fs/promises";
12302
12457
  import {
12303
12458
  dirname as dirname14,
12304
- join as join26,
12459
+ join as join27,
12305
12460
  basename as basename7,
12306
12461
  extname as extname5,
12307
12462
  resolve as resolve22,
@@ -12360,14 +12515,14 @@ var resolveDevClientDir2 = () => {
12360
12515
  `${basePath}.svelte`,
12361
12516
  `${basePath}.svelte.ts`,
12362
12517
  `${basePath}.svelte.js`,
12363
- join26(basePath, "index.ts"),
12364
- join26(basePath, "index.js"),
12365
- join26(basePath, "index.mjs"),
12366
- join26(basePath, "index.cjs"),
12367
- join26(basePath, "index.json"),
12368
- join26(basePath, "index.svelte"),
12369
- join26(basePath, "index.svelte.ts"),
12370
- join26(basePath, "index.svelte.js")
12518
+ join27(basePath, "index.ts"),
12519
+ join27(basePath, "index.js"),
12520
+ join27(basePath, "index.mjs"),
12521
+ join27(basePath, "index.cjs"),
12522
+ join27(basePath, "index.json"),
12523
+ join27(basePath, "index.svelte"),
12524
+ join27(basePath, "index.svelte.ts"),
12525
+ join27(basePath, "index.svelte.js")
12371
12526
  ];
12372
12527
  const checks = await Promise.all(candidates.map(exists));
12373
12528
  return candidates.find((_2, index) => checks[index]) ?? null;
@@ -12406,9 +12561,9 @@ var resolveDevClientDir2 = () => {
12406
12561
  }, compileSvelte = async (entryPoints, svelteRoot, cache = new Map, isDev2 = false, stylePreprocessors) => {
12407
12562
  const { compile, compileModule, preprocess } = await import("svelte/compiler");
12408
12563
  const generatedDir = getFrameworkGeneratedDir("svelte");
12409
- const clientDir = join26(generatedDir, "client");
12410
- const indexDir = join26(generatedDir, "indexes");
12411
- const serverDir = join26(generatedDir, "server");
12564
+ const clientDir = join27(generatedDir, "client");
12565
+ const indexDir = join27(generatedDir, "indexes");
12566
+ const serverDir = join27(generatedDir, "server");
12412
12567
  await Promise.all([clientDir, indexDir, serverDir].map((dir) => mkdir4(dir, { recursive: true })));
12413
12568
  const dev = env2.NODE_ENV !== "production";
12414
12569
  const build2 = async (src) => {
@@ -12446,8 +12601,8 @@ var resolveDevClientDir2 = () => {
12446
12601
  const childBuilt = await Promise.all(childSources.map((child) => build2(child)));
12447
12602
  const hasAwaitSlotFromChildren = childBuilt.some((child) => child.hasAwaitSlot);
12448
12603
  const externalRewrites = new Map;
12449
- const ssrOutputDir = dirname14(join26(serverDir, relDir, `${baseName}.js`));
12450
- const clientOutputDir = dirname14(join26(clientDir, relDir, `${baseName}.js`));
12604
+ const ssrOutputDir = dirname14(join27(serverDir, relDir, `${baseName}.js`));
12605
+ const clientOutputDir = dirname14(join27(clientDir, relDir, `${baseName}.js`));
12451
12606
  for (let idx = 0;idx < importPaths.length; idx++) {
12452
12607
  const rawSpec = importPaths[idx];
12453
12608
  if (!rawSpec)
@@ -12512,8 +12667,8 @@ var resolveDevClientDir2 = () => {
12512
12667
  code += islandMetadataExports;
12513
12668
  return { code, map: compiledJs.map };
12514
12669
  };
12515
- const ssrPath = join26(serverDir, relDir, `${baseName}.js`);
12516
- const clientPath = join26(clientDir, relDir, `${baseName}.js`);
12670
+ const ssrPath = join27(serverDir, relDir, `${baseName}.js`);
12671
+ const clientPath = join27(clientDir, relDir, `${baseName}.js`);
12517
12672
  await Promise.all([
12518
12673
  mkdir4(dirname14(ssrPath), { recursive: true }),
12519
12674
  mkdir4(dirname14(clientPath), { recursive: true })
@@ -12551,7 +12706,7 @@ var resolveDevClientDir2 = () => {
12551
12706
  await Promise.all(roots.map(async ({ client: client2, hasAwaitSlot }) => {
12552
12707
  const relClientDir = dirname14(relative9(clientDir, client2));
12553
12708
  const name = basename7(client2, extname5(client2));
12554
- const indexPath = join26(indexDir, relClientDir, `${name}.js`);
12709
+ const indexPath = join27(indexDir, relClientDir, `${name}.js`);
12555
12710
  const importRaw = relative9(dirname14(indexPath), client2).split(sep2).join("/");
12556
12711
  const importPath = importRaw.startsWith(".") || importRaw.startsWith("/") ? importRaw : `./${importRaw}`;
12557
12712
  const hmrImports = isDev2 ? `window.__HMR_FRAMEWORK__ = "svelte";
@@ -12630,7 +12785,7 @@ if (typeof window !== "undefined") {
12630
12785
  svelteClientPaths: roots.map(({ client: client2 }) => client2),
12631
12786
  svelteIndexPaths: roots.map(({ client: client2 }) => {
12632
12787
  const rel = dirname14(relative9(clientDir, client2));
12633
- return join26(indexDir, rel, basename7(client2));
12788
+ return join27(indexDir, rel, basename7(client2));
12634
12789
  }),
12635
12790
  svelteServerPaths: roots.map(({ ssr }) => ssr)
12636
12791
  };
@@ -12645,7 +12800,7 @@ var init_compileSvelte = __esm(() => {
12645
12800
  init_lowerAwaitSlotSyntax();
12646
12801
  init_renderToReadableStream();
12647
12802
  devClientDir2 = resolveDevClientDir2();
12648
- hmrClientPath3 = join26(devClientDir2, "hmrClient.ts").replace(/\\/g, "/");
12803
+ hmrClientPath3 = join27(devClientDir2, "hmrClient.ts").replace(/\\/g, "/");
12649
12804
  persistentCache = new Map;
12650
12805
  sourceHashCache = new Map;
12651
12806
  transpiler3 = new Transpiler2({ loader: "ts", target: "browser" });
@@ -12660,7 +12815,7 @@ __export(exports_chainInlineSourcemaps, {
12660
12815
  chainBundleInlineSourcemap: () => chainBundleInlineSourcemap,
12661
12816
  buildLineRemap: () => buildLineRemap
12662
12817
  });
12663
- import { readFileSync as readFileSync17, writeFileSync as writeFileSync8 } from "fs";
12818
+ import { readFileSync as readFileSync18, writeFileSync as writeFileSync8 } from "fs";
12664
12819
  var BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", BASE64_TO_INT, decodeVlq = (str, startPos) => {
12665
12820
  let result = 0;
12666
12821
  let shift = 0;
@@ -12951,7 +13106,7 @@ var BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567
12951
13106
  version: 3
12952
13107
  };
12953
13108
  }, chainBundleInlineSourcemap = (bundleFilePath) => {
12954
- const text = readFileSync17(bundleFilePath, "utf-8");
13109
+ const text = readFileSync18(bundleFilePath, "utf-8");
12955
13110
  const outerMap = extractInlineMap(text);
12956
13111
  if (!outerMap)
12957
13112
  return;
@@ -13043,7 +13198,7 @@ import {
13043
13198
  basename as basename8,
13044
13199
  dirname as dirname15,
13045
13200
  isAbsolute as isAbsolute4,
13046
- join as join27,
13201
+ join as join28,
13047
13202
  relative as relative10,
13048
13203
  resolve as resolve23
13049
13204
  } from "path";
@@ -13221,7 +13376,7 @@ var resolveDevClientDir3 = () => {
13221
13376
  ];
13222
13377
  let cssOutputPaths = [];
13223
13378
  if (isEntryPoint && allCss.length) {
13224
- const cssOutputFile = join27(outputDirs.css, `${toKebab(fileBaseName)}-compiled.css`);
13379
+ const cssOutputFile = join28(outputDirs.css, `${toKebab(fileBaseName)}-compiled.css`);
13225
13380
  await mkdir5(dirname15(cssOutputFile), { recursive: true });
13226
13381
  await write3(cssOutputFile, allCss.join(`
13227
13382
  `));
@@ -13252,8 +13407,8 @@ if (typeof __VUE_HMR_RUNTIME__ !== 'undefined') {
13252
13407
  };
13253
13408
  const clientCode = assembleModule(generateRenderFunction(false), "render", true) + islandMetadataExports;
13254
13409
  const serverCode = assembleModule(generateRenderFunction(true), "ssrRender", false) + islandMetadataExports;
13255
- const clientOutputPath = join27(outputDirs.client, `${relativeWithoutExtension}.js`);
13256
- const serverOutputPath = join27(outputDirs.server, `${relativeWithoutExtension}.js`);
13410
+ const clientOutputPath = join28(outputDirs.client, `${relativeWithoutExtension}.js`);
13411
+ const serverOutputPath = join28(outputDirs.server, `${relativeWithoutExtension}.js`);
13257
13412
  const relDir = dirname15(relativeFilePath);
13258
13413
  const relDepth = relDir === "." ? 0 : relDir.split("/").length;
13259
13414
  const adjustImports = (code) => code.replace(/(from\s+['"])(\.\.\/(?:\.\.\/)*)/g, (_2, prefix, dots) => {
@@ -13303,13 +13458,13 @@ if (typeof __VUE_HMR_RUNTIME__ !== 'undefined') {
13303
13458
  cacheMap.set(sourceFilePath, result);
13304
13459
  persistentBuildCache.set(sourceFilePath, result);
13305
13460
  return result;
13306
- }, compileVue = async (entryPoints, vueRootDir, isDev2 = false, stylePreprocessors) => {
13461
+ }, compileVue = async (entryPoints, vueRootDir, isDev2 = false, stylePreprocessors, ssrOnlyEntries) => {
13307
13462
  const compiler = await import("@vue/compiler-sfc");
13308
13463
  const generatedDir = getFrameworkGeneratedDir("vue");
13309
- const clientOutputDir = join27(generatedDir, "client");
13310
- const indexOutputDir = join27(generatedDir, "indexes");
13311
- const serverOutputDir = join27(generatedDir, "server");
13312
- const cssOutputDir = join27(generatedDir, "compiled");
13464
+ const clientOutputDir = join28(generatedDir, "client");
13465
+ const indexOutputDir = join28(generatedDir, "indexes");
13466
+ const serverOutputDir = join28(generatedDir, "server");
13467
+ const cssOutputDir = join28(generatedDir, "compiled");
13313
13468
  await Promise.all([
13314
13469
  mkdir5(clientOutputDir, { recursive: true }),
13315
13470
  mkdir5(indexOutputDir, { recursive: true }),
@@ -13319,15 +13474,24 @@ if (typeof __VUE_HMR_RUNTIME__ !== 'undefined') {
13319
13474
  const buildCache = new Map;
13320
13475
  const allTsHelperPaths = new Set;
13321
13476
  const compiledPages = await Promise.all(entryPoints.map(async (entryPath) => {
13322
- const result = await compileVueFile(resolve23(entryPath), {
13477
+ const resolvedEntryPath = resolve23(entryPath);
13478
+ const result = await compileVueFile(resolvedEntryPath, {
13323
13479
  client: clientOutputDir,
13324
13480
  css: cssOutputDir,
13325
13481
  server: serverOutputDir
13326
13482
  }, buildCache, true, vueRootDir, compiler, stylePreprocessors);
13327
13483
  result.tsHelperPaths.forEach((path) => allTsHelperPaths.add(path));
13484
+ if (ssrOnlyEntries?.has(resolvedEntryPath)) {
13485
+ return {
13486
+ clientPath: null,
13487
+ cssPaths: result.cssPaths,
13488
+ indexPath: null,
13489
+ serverPath: result.serverPath
13490
+ };
13491
+ }
13328
13492
  const entryBaseName = basename8(entryPath, ".vue");
13329
- const indexOutputFile = join27(indexOutputDir, `${entryBaseName}.js`);
13330
- const clientOutputFile = join27(clientOutputDir, relative10(vueRootDir, entryPath).replace(/\\/g, "/").replace(/\.vue$/, ".js"));
13493
+ const indexOutputFile = join28(indexOutputDir, `${entryBaseName}.js`);
13494
+ const clientOutputFile = join28(clientOutputDir, relative10(vueRootDir, entryPath).replace(/\\/g, "/").replace(/\.vue$/, ".js"));
13331
13495
  await mkdir5(dirname15(indexOutputFile), { recursive: true });
13332
13496
  const vueHmrImports = isDev2 ? [
13333
13497
  `window.__HMR_FRAMEWORK__ = "vue";`,
@@ -13480,18 +13644,19 @@ if (typeof __VUE_HMR_RUNTIME__ !== 'undefined') {
13480
13644
  const sourceCode = await file3(tsPath).text();
13481
13645
  const transpiledCode = transpiler4.transformSync(sourceCode);
13482
13646
  const relativeJsPath = relative10(vueRootDir, tsPath).replace(/\.ts$/, ".js");
13483
- const outClientPath = join27(clientOutputDir, relativeJsPath);
13484
- const outServerPath = join27(serverOutputDir, relativeJsPath);
13647
+ const outClientPath = join28(clientOutputDir, relativeJsPath);
13648
+ const outServerPath = join28(serverOutputDir, relativeJsPath);
13485
13649
  await mkdir5(dirname15(outClientPath), { recursive: true });
13486
13650
  await mkdir5(dirname15(outServerPath), { recursive: true });
13487
13651
  await write3(outClientPath, transpiledCode);
13488
13652
  await write3(outServerPath, transpiledCode);
13489
13653
  }));
13654
+ const isString = (value) => value !== null;
13490
13655
  return {
13491
13656
  hmrMetadata: new Map(vueHmrMetadata),
13492
- vueClientPaths: compiledPages.map((result) => result.clientPath),
13657
+ vueClientPaths: compiledPages.map((p2) => p2.clientPath).filter(isString),
13493
13658
  vueCssPaths: compiledPages.flatMap((result) => result.cssPaths),
13494
- vueIndexPaths: compiledPages.map((result) => result.indexPath),
13659
+ vueIndexPaths: compiledPages.map((p2) => p2.indexPath).filter(isString),
13495
13660
  vueServerPaths: compiledPages.map((result) => result.serverPath)
13496
13661
  };
13497
13662
  };
@@ -13504,7 +13669,7 @@ var init_compileVue = __esm(() => {
13504
13669
  init_vueAutoRouterTransform();
13505
13670
  init_stylePreprocessor();
13506
13671
  devClientDir3 = resolveDevClientDir3();
13507
- hmrClientPath4 = join27(devClientDir3, "hmrClient.ts").replace(/\\/g, "/");
13672
+ hmrClientPath4 = join28(devClientDir3, "hmrClient.ts").replace(/\\/g, "/");
13508
13673
  transpiler4 = new Transpiler3({ loader: "ts", target: "browser" });
13509
13674
  scriptCache = new Map;
13510
13675
  scriptSetupCache = new Map;
@@ -13985,17 +14150,17 @@ __export(exports_compileAngular, {
13985
14150
  compileAngularFile: () => compileAngularFile,
13986
14151
  compileAngular: () => compileAngular
13987
14152
  });
13988
- import { existsSync as existsSync23, readFileSync as readFileSync18, promises as fs5 } from "fs";
13989
- import { join as join28, basename as basename9, sep as sep3, dirname as dirname16, resolve as resolve24, relative as relative11 } from "path";
14153
+ import { existsSync as existsSync23, readFileSync as readFileSync19, promises as fs5 } from "fs";
14154
+ import { join as join29, basename as basename9, sep as sep3, dirname as dirname16, resolve as resolve24, relative as relative11 } from "path";
13990
14155
  var {Glob: Glob6 } = globalThis.Bun;
13991
- import ts9 from "typescript";
14156
+ import ts10 from "typescript";
13992
14157
  var traceAngularPhase = async (name, fn2, metadata2) => {
13993
14158
  const tracePhase = globalThis.__absoluteBuildTracePhase;
13994
14159
  return tracePhase ? tracePhase(`compile/angular/${name}`, fn2, metadata2) : await fn2();
13995
14160
  }, readTsconfigPathAliases = () => {
13996
14161
  try {
13997
14162
  const configPath2 = resolve24(process.cwd(), "tsconfig.json");
13998
- const config = ts9.readConfigFile(configPath2, ts9.sys.readFile).config;
14163
+ const config = ts10.readConfigFile(configPath2, ts10.sys.readFile).config;
13999
14164
  const compilerOptions = config?.compilerOptions ?? {};
14000
14165
  const baseUrl = resolve24(process.cwd(), compilerOptions.baseUrl ?? ".");
14001
14166
  const aliases = Object.entries(compilerOptions.paths ?? {}).map(([pattern, replacements]) => ({ pattern, replacements }));
@@ -14029,10 +14194,10 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14029
14194
  `${candidate}.tsx`,
14030
14195
  `${candidate}.js`,
14031
14196
  `${candidate}.jsx`,
14032
- join28(candidate, "index.ts"),
14033
- join28(candidate, "index.tsx"),
14034
- join28(candidate, "index.js"),
14035
- join28(candidate, "index.jsx")
14197
+ join29(candidate, "index.ts"),
14198
+ join29(candidate, "index.tsx"),
14199
+ join29(candidate, "index.js"),
14200
+ join29(candidate, "index.jsx")
14036
14201
  ];
14037
14202
  return candidates.find((file4) => existsSync23(file4));
14038
14203
  }, createLegacyAngularAnimationUsageResolver = (rootDir) => {
@@ -14124,7 +14289,7 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14124
14289
  return resolve24(import.meta.dir, "./dev/client");
14125
14290
  }, devClientDir4, hmrClientPath5, formatDiagnosticMessage = (diagnostic) => {
14126
14291
  try {
14127
- return ts9.flattenDiagnosticMessageText(diagnostic.messageText, `
14292
+ return ts10.flattenDiagnosticMessageText(diagnostic.messageText, `
14128
14293
  `);
14129
14294
  } catch {
14130
14295
  return String(diagnostic.messageText || "Unknown error");
@@ -14132,7 +14297,7 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14132
14297
  }, throwOnCompilationErrors = (diagnostics) => {
14133
14298
  if (!diagnostics?.length)
14134
14299
  return;
14135
- const errors = diagnostics.filter((diag) => diag.category === ts9.DiagnosticCategory.Error);
14300
+ const errors = diagnostics.filter((diag) => diag.category === ts10.DiagnosticCategory.Error);
14136
14301
  if (!errors.length)
14137
14302
  return;
14138
14303
  const fullMessage = errors.map(formatDiagnosticMessage).join(`
@@ -14174,22 +14339,22 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14174
14339
  }
14175
14340
  return `${path}.js${query}`;
14176
14341
  }, isRelativeModuleSpecifier = (specifier) => specifier.startsWith("./") || specifier.startsWith("../"), extractLocalImportSpecifiers = (source, fileName) => {
14177
- const sourceFile = ts9.createSourceFile(fileName, source, ts9.ScriptTarget.Latest, true, ts9.ScriptKind.TS);
14342
+ const sourceFile = ts10.createSourceFile(fileName, source, ts10.ScriptTarget.Latest, true, ts10.ScriptKind.TS);
14178
14343
  const specifiers = [];
14179
14344
  const addSpecifier = (node) => {
14180
- if (!node || !ts9.isStringLiteralLike(node))
14345
+ if (!node || !ts10.isStringLiteralLike(node))
14181
14346
  return;
14182
14347
  const specifier = node.text;
14183
14348
  if (isRelativeModuleSpecifier(specifier))
14184
14349
  specifiers.push(specifier);
14185
14350
  };
14186
14351
  const visit = (node) => {
14187
- if (ts9.isImportDeclaration(node) || ts9.isExportDeclaration(node)) {
14352
+ if (ts10.isImportDeclaration(node) || ts10.isExportDeclaration(node)) {
14188
14353
  addSpecifier(node.moduleSpecifier);
14189
- } else if (ts9.isCallExpression(node) && node.expression.kind === ts9.SyntaxKind.ImportKeyword) {
14354
+ } else if (ts10.isCallExpression(node) && node.expression.kind === ts10.SyntaxKind.ImportKeyword) {
14190
14355
  addSpecifier(node.arguments[0]);
14191
14356
  }
14192
- ts9.forEachChild(node, visit);
14357
+ ts10.forEachChild(node, visit);
14193
14358
  };
14194
14359
  visit(sourceFile);
14195
14360
  return specifiers;
@@ -14202,10 +14367,10 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14202
14367
  `${basePath}.tsx`,
14203
14368
  `${basePath}.mts`,
14204
14369
  `${basePath}.cts`,
14205
- join28(basePath, "index.ts"),
14206
- join28(basePath, "index.tsx"),
14207
- join28(basePath, "index.mts"),
14208
- join28(basePath, "index.cts")
14370
+ join29(basePath, "index.ts"),
14371
+ join29(basePath, "index.tsx"),
14372
+ join29(basePath, "index.mts"),
14373
+ join29(basePath, "index.cts")
14209
14374
  ];
14210
14375
  return candidates.map((candidate) => resolve24(candidate)).find((candidate) => existsSync23(candidate) && !candidate.endsWith(".d.ts")) ?? null;
14211
14376
  }, readFileForAotTransform = async (fileName, readFile6) => {
@@ -14231,15 +14396,15 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14231
14396
  const paths = [];
14232
14397
  const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
14233
14398
  if (templateUrlMatch?.[1])
14234
- paths.push(join28(fileDir, templateUrlMatch[1]));
14399
+ paths.push(join29(fileDir, templateUrlMatch[1]));
14235
14400
  const styleUrlMatch = findUncommentedMatch(source, /styleUrl\s*:\s*['"]([^'"]+)['"]/);
14236
14401
  if (styleUrlMatch?.[1])
14237
- paths.push(join28(fileDir, styleUrlMatch[1]));
14402
+ paths.push(join29(fileDir, styleUrlMatch[1]));
14238
14403
  const styleUrlsMatch = findUncommentedMatch(source, /styleUrls\s*:\s*\[([^\]]+)\]/);
14239
14404
  const urlMatches = styleUrlsMatch?.[1]?.match(/['"]([^'"]+)['"]/g);
14240
14405
  if (urlMatches) {
14241
14406
  for (const urlMatch of urlMatches) {
14242
- paths.push(join28(fileDir, urlMatch.replace(/['"]/g, "")));
14407
+ paths.push(join29(fileDir, urlMatch.replace(/['"]/g, "")));
14243
14408
  }
14244
14409
  }
14245
14410
  return paths.map((path) => resolve24(path));
@@ -14273,7 +14438,7 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14273
14438
  safeStableStringify(stylePreprocessors ?? null)
14274
14439
  ].join("\x00");
14275
14440
  const cacheKey2 = Bun.hash(cacheInput).toString(BASE_36_RADIX);
14276
- return join28(process.cwd(), ".absolutejs", "cache", "angular-resources", `${cacheKey2}.json`);
14441
+ return join29(process.cwd(), ".absolutejs", "cache", "angular-resources", `${cacheKey2}.json`);
14277
14442
  }, precomputeAotResourceTransforms = async (inputPaths, readFile6, stylePreprocessors) => {
14278
14443
  const transformedSources = new Map;
14279
14444
  const visited = new Set;
@@ -14319,10 +14484,10 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14319
14484
  return { stats, transformedSources };
14320
14485
  }, compileAngularFiles = async (inputPaths, outDir, stylePreprocessors) => {
14321
14486
  const islandMetadataByOutputPath = await traceAngularPhase("aot/island-metadata", () => new Map(inputPaths.map((inputPath) => {
14322
- const outputPath = resolve24(join28(outDir, relative11(process.cwd(), resolve24(inputPath)).replace(/\.[cm]?[tj]sx?$/, ".js")));
14487
+ const outputPath = resolve24(join29(outDir, relative11(process.cwd(), resolve24(inputPath)).replace(/\.[cm]?[tj]sx?$/, ".js")));
14323
14488
  return [
14324
14489
  outputPath,
14325
- buildIslandMetadataExports(readFileSync18(inputPath, "utf-8"))
14490
+ buildIslandMetadataExports(readFileSync19(inputPath, "utf-8"))
14326
14491
  ];
14327
14492
  })), { entries: inputPaths.length });
14328
14493
  await traceAngularPhase("aot/preload-compiler", () => import("@angular/compiler"));
@@ -14337,25 +14502,25 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14337
14502
  emitDecoratorMetadata: true,
14338
14503
  esModuleInterop: true,
14339
14504
  experimentalDecorators: true,
14340
- module: ts9.ModuleKind.ESNext,
14341
- moduleResolution: ts9.ModuleResolutionKind.Bundler,
14342
- newLine: ts9.NewLineKind.LineFeed,
14505
+ module: ts10.ModuleKind.ESNext,
14506
+ moduleResolution: ts10.ModuleResolutionKind.Bundler,
14507
+ newLine: ts10.NewLineKind.LineFeed,
14343
14508
  noLib: false,
14344
14509
  outDir,
14345
14510
  skipLibCheck: true,
14346
- target: ts9.ScriptTarget.ES2022,
14511
+ target: ts10.ScriptTarget.ES2022,
14347
14512
  ...config.options
14348
14513
  };
14349
- options.target = ts9.ScriptTarget.ES2022;
14514
+ options.target = ts10.ScriptTarget.ES2022;
14350
14515
  options.experimentalDecorators = true;
14351
14516
  options.emitDecoratorMetadata = true;
14352
- options.newLine = ts9.NewLineKind.LineFeed;
14517
+ options.newLine = ts10.NewLineKind.LineFeed;
14353
14518
  options.outDir = outDir;
14354
14519
  options.noEmit = false;
14355
14520
  options.incremental = false;
14356
14521
  options.tsBuildInfoFile = undefined;
14357
14522
  options.rootDir = process.cwd();
14358
- const host = await traceAngularPhase("aot/create-compiler-host", () => ts9.createCompilerHost(options));
14523
+ const host = await traceAngularPhase("aot/create-compiler-host", () => ts10.createCompilerHost(options));
14359
14524
  const originalGetDefaultLibLocation = host.getDefaultLibLocation;
14360
14525
  host.getDefaultLibLocation = () => tsLibDir || (originalGetDefaultLibLocation ? originalGetDefaultLibLocation() : "");
14361
14526
  const originalGetDefaultLibFileName = host.getDefaultLibFileName;
@@ -14366,7 +14531,7 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14366
14531
  const originalGetSourceFile = host.getSourceFile;
14367
14532
  host.getSourceFile = (fileName, languageVersion, onError) => {
14368
14533
  if (fileName.startsWith("lib.") && fileName.endsWith(".d.ts") && tsLibDir) {
14369
- const resolvedPath = join28(tsLibDir, fileName);
14534
+ const resolvedPath = join29(tsLibDir, fileName);
14370
14535
  return originalGetSourceFile?.call(host, resolvedPath, languageVersion, onError);
14371
14536
  }
14372
14537
  return originalGetSourceFile?.call(host, fileName, languageVersion, onError);
@@ -14401,7 +14566,7 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14401
14566
  host.getSourceFile = (fileName, languageVersion, onError) => {
14402
14567
  const source = transformedSources.get(resolve24(fileName));
14403
14568
  if (source) {
14404
- return ts9.createSourceFile(fileName, source, languageVersion, true);
14569
+ return ts10.createSourceFile(fileName, source, languageVersion, true);
14405
14570
  }
14406
14571
  return originalGetSourceFileForCompile?.call(host, fileName, languageVersion, onError);
14407
14572
  };
@@ -14421,7 +14586,7 @@ var traceAngularPhase = async (name, fn2, metadata2) => {
14421
14586
  const entries = await traceAngularPhase("aot/postprocess-emitted-js", () => {
14422
14587
  const rawEntries = Object.entries(emitted).filter(([fileName]) => fileName.endsWith(".js")).map(([fileName, content]) => ({
14423
14588
  content,
14424
- target: join28(outDir, fileName)
14589
+ target: join29(outDir, fileName)
14425
14590
  }));
14426
14591
  const outputFiles = new Set(rawEntries.map(({ target }) => resolve24(target)));
14427
14592
  return rawEntries.map(({ content, target }) => {
@@ -14598,7 +14763,7 @@ ${fields}
14598
14763
  }, inlineTemplateAndLowerDefer = async (source, fileDir) => {
14599
14764
  const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
14600
14765
  if (templateUrlMatch?.[1]) {
14601
- const templatePath = join28(fileDir, templateUrlMatch[1]);
14766
+ const templatePath = join29(fileDir, templateUrlMatch[1]);
14602
14767
  if (!existsSync23(templatePath)) {
14603
14768
  throw new Error(`Unable to inline Angular templateUrl "${templateUrlMatch[1]}": file not found at ${templatePath}`);
14604
14769
  }
@@ -14629,11 +14794,11 @@ ${fields}
14629
14794
  }, inlineTemplateAndLowerDeferSync = (source, fileDir) => {
14630
14795
  const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
14631
14796
  if (templateUrlMatch?.[1]) {
14632
- const templatePath = join28(fileDir, templateUrlMatch[1]);
14797
+ const templatePath = join29(fileDir, templateUrlMatch[1]);
14633
14798
  if (!existsSync23(templatePath)) {
14634
14799
  throw new Error(`Unable to inline Angular templateUrl "${templateUrlMatch[1]}": file not found at ${templatePath}`);
14635
14800
  }
14636
- const templateRaw2 = readFileSync18(templatePath, "utf-8");
14801
+ const templateRaw2 = readFileSync19(templatePath, "utf-8");
14637
14802
  const lowered2 = lowerAngularDeferSyntax(templateRaw2);
14638
14803
  const escaped2 = escapeTemplateContent(lowered2.template);
14639
14804
  const replacedSource2 = source.slice(0, templateUrlMatch.index) + `template: \`${escaped2}\`` + source.slice(templateUrlMatch.index + templateUrlMatch[0].length);
@@ -14666,7 +14831,7 @@ ${fields}
14666
14831
  return source;
14667
14832
  const stylePromises = urlMatches.map((urlMatch) => {
14668
14833
  const styleUrl = urlMatch.replace(/['"]/g, "");
14669
- return readAndEscapeFile(join28(fileDir, styleUrl), stylePreprocessors);
14834
+ return readAndEscapeFile(join29(fileDir, styleUrl), stylePreprocessors);
14670
14835
  });
14671
14836
  const results = await Promise.all(stylePromises);
14672
14837
  const inlinedStyles = results.filter(Boolean).map((escaped) => `\`${escaped}\``);
@@ -14677,7 +14842,7 @@ ${fields}
14677
14842
  const styleUrlMatch = findUncommentedMatch(source, /styleUrl\s*:\s*['"]([^'"]+)['"]/);
14678
14843
  if (!styleUrlMatch?.[1])
14679
14844
  return source;
14680
- const escaped = await readAndEscapeFile(join28(fileDir, styleUrlMatch[1]), stylePreprocessors);
14845
+ const escaped = await readAndEscapeFile(join29(fileDir, styleUrlMatch[1]), stylePreprocessors);
14681
14846
  if (!escaped)
14682
14847
  return source;
14683
14848
  return source.slice(0, styleUrlMatch.index) + `styles: [\`${escaped}\`]` + source.slice(styleUrlMatch.index + styleUrlMatch[0].length);
@@ -14713,10 +14878,10 @@ ${fields}
14713
14878
  `${candidate}.js`,
14714
14879
  `${candidate}.jsx`,
14715
14880
  `${candidate}.json`,
14716
- join28(candidate, "index.ts"),
14717
- join28(candidate, "index.tsx"),
14718
- join28(candidate, "index.js"),
14719
- join28(candidate, "index.jsx")
14881
+ join29(candidate, "index.ts"),
14882
+ join29(candidate, "index.tsx"),
14883
+ join29(candidate, "index.js"),
14884
+ join29(candidate, "index.jsx")
14720
14885
  ];
14721
14886
  return candidates.find((file4) => existsSync23(file4));
14722
14887
  };
@@ -14743,10 +14908,10 @@ ${fields}
14743
14908
  const inputDir = dirname16(sourcePath);
14744
14909
  const fileBase = basename9(sourcePath).replace(/\.[cm]?[tj]sx?$/, ".js");
14745
14910
  if (inputDir === outDir || inputDir.startsWith(`${outDir}${sep3}`)) {
14746
- return join28(inputDir, fileBase);
14911
+ return join29(inputDir, fileBase);
14747
14912
  }
14748
14913
  const relativeDir = inputDir.startsWith(baseDir) ? inputDir.substring(baseDir.length + 1) : inputDir;
14749
- return join28(outDir, relativeDir, fileBase);
14914
+ return join29(outDir, relativeDir, fileBase);
14750
14915
  };
14751
14916
  const withCacheBuster = (specifier) => {
14752
14917
  if (!cacheBuster)
@@ -14796,8 +14961,8 @@ ${fields}
14796
14961
  if (resolved.endsWith(".json") && existsSync23(resolved)) {
14797
14962
  const inputDir2 = dirname16(resolved);
14798
14963
  const relativeDir2 = inputDir2.startsWith(baseDir) ? inputDir2.substring(baseDir.length + 1) : inputDir2;
14799
- const targetDir2 = join28(outDir, relativeDir2);
14800
- const targetPath2 = join28(targetDir2, basename9(resolved));
14964
+ const targetDir2 = join29(outDir, relativeDir2);
14965
+ const targetPath2 = join29(targetDir2, basename9(resolved));
14801
14966
  await fs5.mkdir(targetDir2, { recursive: true });
14802
14967
  await fs5.copyFile(resolved, targetPath2);
14803
14968
  allOutputs.push(targetPath2);
@@ -14875,7 +15040,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
14875
15040
  return { clientPaths: [...emptyPaths], serverPaths: [...emptyPaths] };
14876
15041
  }
14877
15042
  const compiledRoot = compiledParent;
14878
- const indexesDir = join28(compiledParent, "indexes");
15043
+ const indexesDir = join29(compiledParent, "indexes");
14879
15044
  await traceAngularPhase("setup/create-indexes-dir", () => fs5.mkdir(indexesDir, { recursive: true }));
14880
15045
  const aotOutputs = hmr ? [] : await traceAngularPhase("aot/compile-files", () => compileAngularFiles(entryPoints.map((entry) => resolve24(entry)), compiledRoot, stylePreprocessors), { entries: entryPoints.length });
14881
15046
  if (!hmr) {
@@ -14889,9 +15054,9 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
14889
15054
  absolute: false,
14890
15055
  cwd: angularSrcDir
14891
15056
  })) {
14892
- const sourcePath = join28(angularSrcDir, rel);
15057
+ const sourcePath = join29(angularSrcDir, rel);
14893
15058
  const cwdRel = relative11(cwd, sourcePath);
14894
- const targetPath = join28(compiledRoot, cwdRel);
15059
+ const targetPath = join29(compiledRoot, cwdRel);
14895
15060
  await fs5.mkdir(dirname16(targetPath), { recursive: true });
14896
15061
  await fs5.copyFile(sourcePath, targetPath);
14897
15062
  }
@@ -14908,9 +15073,9 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
14908
15073
  const fileBase = basename9(resolvedEntry).replace(/\.[tj]s$/, "");
14909
15074
  const jsName = `${fileBase}.js`;
14910
15075
  const compiledFallbackPaths = [
14911
- join28(compiledRoot, relativeEntry),
14912
- join28(compiledRoot, "pages", jsName),
14913
- join28(compiledRoot, jsName)
15076
+ join29(compiledRoot, relativeEntry),
15077
+ join29(compiledRoot, "pages", jsName),
15078
+ join29(compiledRoot, jsName)
14914
15079
  ].map((file4) => resolve24(file4));
14915
15080
  const resolveRawServerFile = (candidatePaths) => {
14916
15081
  const normalizedCandidates = [
@@ -14960,7 +15125,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
14960
15125
  const providersHashInput = providersInjection ? (() => {
14961
15126
  let providersSourceContent = "";
14962
15127
  try {
14963
- providersSourceContent = readFileSync18(providersInjection.appProvidersSource, "utf-8");
15128
+ providersSourceContent = readFileSync19(providersInjection.appProvidersSource, "utf-8");
14964
15129
  } catch {}
14965
15130
  return JSON.stringify({
14966
15131
  basePath: pageInjectionForHash?.basePath ?? null,
@@ -14970,7 +15135,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
14970
15135
  })() : "no-providers";
14971
15136
  const serverContentHash = `${Bun.hash(original).toString(BASE_36_RADIX)}.${Bun.hash(providersHashInput).toString(BASE_36_RADIX)}`;
14972
15137
  const cachedWrapper = wrapperOutputCache.get(resolvedEntry);
14973
- const clientFile = join28(indexesDir, jsName);
15138
+ const clientFile = join29(indexesDir, jsName);
14974
15139
  if (hmr && cachedWrapper && cachedWrapper.serverHash === serverContentHash && existsSync23(clientFile) && (usesLegacyAnimations || !original.includes("__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__")) && (!usesLegacyAnimations || original.includes("__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__"))) {
14975
15140
  return {
14976
15141
  clientPath: clientFile,
@@ -15002,7 +15167,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
15002
15167
  const angularDirAbs = resolve24(outRoot);
15003
15168
  const appSourceAbs = resolve24(providersInjection.appProvidersSource);
15004
15169
  const rel = relative11(angularDirAbs, appSourceAbs).replace(/\\/g, "/");
15005
- return join28(compiledParent, rel).replace(/\.[cm]?[tj]sx?$/, ".js");
15170
+ return join29(compiledParent, rel).replace(/\.[cm]?[tj]sx?$/, ".js");
15006
15171
  })();
15007
15172
  const appProvidersSpec = (() => {
15008
15173
  const rel = relative11(dirname16(rawServerFile), compiledAppProvidersPath).replace(/\\/g, "/");
@@ -15225,24 +15390,24 @@ var init_compileAngular = __esm(() => {
15225
15390
  init_stylePreprocessor();
15226
15391
  init_generatedDir();
15227
15392
  devClientDir4 = resolveDevClientDir4();
15228
- hmrClientPath5 = join28(devClientDir4, "hmrClient.ts").replace(/\\/g, "/");
15393
+ hmrClientPath5 = join29(devClientDir4, "hmrClient.ts").replace(/\\/g, "/");
15229
15394
  jitContentCache = new Map;
15230
15395
  wrapperOutputCache = new Map;
15231
15396
  });
15232
15397
 
15233
15398
  // src/dev/angular/hmrImportGenerator.ts
15234
- import ts10 from "typescript";
15399
+ import ts11 from "typescript";
15235
15400
  var createHmrImportGenerator = (namespaceMap) => ({
15236
15401
  addImport(request) {
15237
15402
  const ns = namespaceMap.get(request.exportModuleSpecifier);
15238
15403
  if (!ns) {
15239
15404
  throw new Error(`HMR import generator has no namespace mapping for ${request.exportModuleSpecifier}. ` + `Add it to namespaceDependencies before calling compileHmrUpdateCallback.`);
15240
15405
  }
15241
- const namespaceId = ts10.factory.createIdentifier(ns);
15406
+ const namespaceId = ts11.factory.createIdentifier(ns);
15242
15407
  if (request.exportSymbolName === null) {
15243
15408
  return namespaceId;
15244
15409
  }
15245
- return ts10.factory.createPropertyAccessExpression(namespaceId, ts10.factory.createIdentifier(request.exportSymbolName));
15410
+ return ts11.factory.createPropertyAccessExpression(namespaceId, ts11.factory.createIdentifier(request.exportSymbolName));
15246
15411
  }
15247
15412
  });
15248
15413
  var init_hmrImportGenerator = () => {};
@@ -15615,13 +15780,13 @@ var init_translator = __esm(() => {
15615
15780
  });
15616
15781
 
15617
15782
  // src/dev/angular/vendor/translator/ts_util.ts
15618
- import ts11 from "typescript";
15783
+ import ts12 from "typescript";
15619
15784
  function tsNumericExpression(value) {
15620
15785
  if (value < 0) {
15621
- const operand = ts11.factory.createNumericLiteral(Math.abs(value));
15622
- return ts11.factory.createPrefixUnaryExpression(ts11.SyntaxKind.MinusToken, operand);
15786
+ const operand = ts12.factory.createNumericLiteral(Math.abs(value));
15787
+ return ts12.factory.createPrefixUnaryExpression(ts12.SyntaxKind.MinusToken, operand);
15623
15788
  }
15624
- return ts11.factory.createNumericLiteral(value);
15789
+ return ts12.factory.createNumericLiteral(value);
15625
15790
  }
15626
15791
  var init_ts_util = __esm(() => {
15627
15792
  /*!
@@ -15634,142 +15799,142 @@ var init_ts_util = __esm(() => {
15634
15799
  });
15635
15800
 
15636
15801
  // src/dev/angular/vendor/translator/typescript_ast_factory.ts
15637
- import ts12 from "typescript";
15802
+ import ts13 from "typescript";
15638
15803
 
15639
15804
  class TypeScriptAstFactory {
15640
15805
  annotateForClosureCompiler;
15641
15806
  externalSourceFiles = new Map;
15642
15807
  UNARY_OPERATORS = /* @__PURE__ */ (() => ({
15643
- "+": ts12.SyntaxKind.PlusToken,
15644
- "-": ts12.SyntaxKind.MinusToken,
15645
- "!": ts12.SyntaxKind.ExclamationToken
15808
+ "+": ts13.SyntaxKind.PlusToken,
15809
+ "-": ts13.SyntaxKind.MinusToken,
15810
+ "!": ts13.SyntaxKind.ExclamationToken
15646
15811
  }))();
15647
15812
  BINARY_OPERATORS = /* @__PURE__ */ (() => ({
15648
- "&&": ts12.SyntaxKind.AmpersandAmpersandToken,
15649
- ">": ts12.SyntaxKind.GreaterThanToken,
15650
- ">=": ts12.SyntaxKind.GreaterThanEqualsToken,
15651
- "&": ts12.SyntaxKind.AmpersandToken,
15652
- "|": ts12.SyntaxKind.BarToken,
15653
- "/": ts12.SyntaxKind.SlashToken,
15654
- "==": ts12.SyntaxKind.EqualsEqualsToken,
15655
- "===": ts12.SyntaxKind.EqualsEqualsEqualsToken,
15656
- "<": ts12.SyntaxKind.LessThanToken,
15657
- "<=": ts12.SyntaxKind.LessThanEqualsToken,
15658
- "-": ts12.SyntaxKind.MinusToken,
15659
- "%": ts12.SyntaxKind.PercentToken,
15660
- "*": ts12.SyntaxKind.AsteriskToken,
15661
- "**": ts12.SyntaxKind.AsteriskAsteriskToken,
15662
- "!=": ts12.SyntaxKind.ExclamationEqualsToken,
15663
- "!==": ts12.SyntaxKind.ExclamationEqualsEqualsToken,
15664
- "||": ts12.SyntaxKind.BarBarToken,
15665
- "+": ts12.SyntaxKind.PlusToken,
15666
- "??": ts12.SyntaxKind.QuestionQuestionToken,
15667
- "=": ts12.SyntaxKind.EqualsToken,
15668
- "+=": ts12.SyntaxKind.PlusEqualsToken,
15669
- "-=": ts12.SyntaxKind.MinusEqualsToken,
15670
- "*=": ts12.SyntaxKind.AsteriskEqualsToken,
15671
- "/=": ts12.SyntaxKind.SlashEqualsToken,
15672
- "%=": ts12.SyntaxKind.PercentEqualsToken,
15673
- "**=": ts12.SyntaxKind.AsteriskAsteriskEqualsToken,
15674
- "&&=": ts12.SyntaxKind.AmpersandAmpersandEqualsToken,
15675
- "||=": ts12.SyntaxKind.BarBarEqualsToken,
15676
- "??=": ts12.SyntaxKind.QuestionQuestionEqualsToken,
15677
- in: ts12.SyntaxKind.InKeyword,
15678
- instanceof: ts12.SyntaxKind.InstanceOfKeyword
15813
+ "&&": ts13.SyntaxKind.AmpersandAmpersandToken,
15814
+ ">": ts13.SyntaxKind.GreaterThanToken,
15815
+ ">=": ts13.SyntaxKind.GreaterThanEqualsToken,
15816
+ "&": ts13.SyntaxKind.AmpersandToken,
15817
+ "|": ts13.SyntaxKind.BarToken,
15818
+ "/": ts13.SyntaxKind.SlashToken,
15819
+ "==": ts13.SyntaxKind.EqualsEqualsToken,
15820
+ "===": ts13.SyntaxKind.EqualsEqualsEqualsToken,
15821
+ "<": ts13.SyntaxKind.LessThanToken,
15822
+ "<=": ts13.SyntaxKind.LessThanEqualsToken,
15823
+ "-": ts13.SyntaxKind.MinusToken,
15824
+ "%": ts13.SyntaxKind.PercentToken,
15825
+ "*": ts13.SyntaxKind.AsteriskToken,
15826
+ "**": ts13.SyntaxKind.AsteriskAsteriskToken,
15827
+ "!=": ts13.SyntaxKind.ExclamationEqualsToken,
15828
+ "!==": ts13.SyntaxKind.ExclamationEqualsEqualsToken,
15829
+ "||": ts13.SyntaxKind.BarBarToken,
15830
+ "+": ts13.SyntaxKind.PlusToken,
15831
+ "??": ts13.SyntaxKind.QuestionQuestionToken,
15832
+ "=": ts13.SyntaxKind.EqualsToken,
15833
+ "+=": ts13.SyntaxKind.PlusEqualsToken,
15834
+ "-=": ts13.SyntaxKind.MinusEqualsToken,
15835
+ "*=": ts13.SyntaxKind.AsteriskEqualsToken,
15836
+ "/=": ts13.SyntaxKind.SlashEqualsToken,
15837
+ "%=": ts13.SyntaxKind.PercentEqualsToken,
15838
+ "**=": ts13.SyntaxKind.AsteriskAsteriskEqualsToken,
15839
+ "&&=": ts13.SyntaxKind.AmpersandAmpersandEqualsToken,
15840
+ "||=": ts13.SyntaxKind.BarBarEqualsToken,
15841
+ "??=": ts13.SyntaxKind.QuestionQuestionEqualsToken,
15842
+ in: ts13.SyntaxKind.InKeyword,
15843
+ instanceof: ts13.SyntaxKind.InstanceOfKeyword
15679
15844
  }))();
15680
15845
  VAR_TYPES = /* @__PURE__ */ (() => ({
15681
- const: ts12.NodeFlags.Const,
15682
- let: ts12.NodeFlags.Let,
15683
- var: ts12.NodeFlags.None
15846
+ const: ts13.NodeFlags.Const,
15847
+ let: ts13.NodeFlags.Let,
15848
+ var: ts13.NodeFlags.None
15684
15849
  }))();
15685
15850
  constructor(annotateForClosureCompiler) {
15686
15851
  this.annotateForClosureCompiler = annotateForClosureCompiler;
15687
15852
  }
15688
15853
  attachComments = attachComments;
15689
- createArrayLiteral = ts12.factory.createArrayLiteralExpression;
15854
+ createArrayLiteral = ts13.factory.createArrayLiteralExpression;
15690
15855
  createAssignment(target, operator, value) {
15691
- return ts12.factory.createBinaryExpression(target, this.BINARY_OPERATORS[operator], value);
15856
+ return ts13.factory.createBinaryExpression(target, this.BINARY_OPERATORS[operator], value);
15692
15857
  }
15693
15858
  createBinaryExpression(leftOperand, operator, rightOperand) {
15694
- return ts12.factory.createBinaryExpression(leftOperand, this.BINARY_OPERATORS[operator], rightOperand);
15859
+ return ts13.factory.createBinaryExpression(leftOperand, this.BINARY_OPERATORS[operator], rightOperand);
15695
15860
  }
15696
15861
  createBlock(body) {
15697
- return ts12.factory.createBlock(body);
15862
+ return ts13.factory.createBlock(body);
15698
15863
  }
15699
15864
  createCallExpression(callee, args, pure) {
15700
- const call = ts12.factory.createCallExpression(callee, undefined, args);
15865
+ const call = ts13.factory.createCallExpression(callee, undefined, args);
15701
15866
  if (pure) {
15702
- ts12.addSyntheticLeadingComment(call, ts12.SyntaxKind.MultiLineCommentTrivia, this.annotateForClosureCompiler ? "* @pureOrBreakMyCode " /* CLOSURE */ : "@__PURE__" /* TERSER */, false);
15867
+ ts13.addSyntheticLeadingComment(call, ts13.SyntaxKind.MultiLineCommentTrivia, this.annotateForClosureCompiler ? "* @pureOrBreakMyCode " /* CLOSURE */ : "@__PURE__" /* TERSER */, false);
15703
15868
  }
15704
15869
  return call;
15705
15870
  }
15706
15871
  createConditional(condition, whenTrue, whenFalse) {
15707
- return ts12.factory.createConditionalExpression(condition, undefined, whenTrue, undefined, whenFalse);
15872
+ return ts13.factory.createConditionalExpression(condition, undefined, whenTrue, undefined, whenFalse);
15708
15873
  }
15709
- createElementAccess = ts12.factory.createElementAccessExpression;
15710
- createExpressionStatement = ts12.factory.createExpressionStatement;
15874
+ createElementAccess = ts13.factory.createElementAccessExpression;
15875
+ createExpressionStatement = ts13.factory.createExpressionStatement;
15711
15876
  createDynamicImport(url) {
15712
- return ts12.factory.createCallExpression(ts12.factory.createToken(ts12.SyntaxKind.ImportKeyword), undefined, [
15713
- typeof url === "string" ? ts12.factory.createStringLiteral(url) : url
15877
+ return ts13.factory.createCallExpression(ts13.factory.createToken(ts13.SyntaxKind.ImportKeyword), undefined, [
15878
+ typeof url === "string" ? ts13.factory.createStringLiteral(url) : url
15714
15879
  ]);
15715
15880
  }
15716
15881
  createFunctionDeclaration(functionName, parameters, body) {
15717
- if (!ts12.isBlock(body)) {
15718
- throw new Error(`Invalid syntax, expected a block, but got ${ts12.SyntaxKind[body.kind]}.`);
15882
+ if (!ts13.isBlock(body)) {
15883
+ throw new Error(`Invalid syntax, expected a block, but got ${ts13.SyntaxKind[body.kind]}.`);
15719
15884
  }
15720
- return ts12.factory.createFunctionDeclaration(undefined, undefined, functionName, undefined, parameters.map((param) => this.createParameter(param)), undefined, body);
15885
+ return ts13.factory.createFunctionDeclaration(undefined, undefined, functionName, undefined, parameters.map((param) => this.createParameter(param)), undefined, body);
15721
15886
  }
15722
15887
  createFunctionExpression(functionName, parameters, body) {
15723
- if (!ts12.isBlock(body)) {
15724
- throw new Error(`Invalid syntax, expected a block, but got ${ts12.SyntaxKind[body.kind]}.`);
15888
+ if (!ts13.isBlock(body)) {
15889
+ throw new Error(`Invalid syntax, expected a block, but got ${ts13.SyntaxKind[body.kind]}.`);
15725
15890
  }
15726
- return ts12.factory.createFunctionExpression(undefined, undefined, functionName ?? undefined, undefined, parameters.map((param) => this.createParameter(param)), undefined, body);
15891
+ return ts13.factory.createFunctionExpression(undefined, undefined, functionName ?? undefined, undefined, parameters.map((param) => this.createParameter(param)), undefined, body);
15727
15892
  }
15728
15893
  createArrowFunctionExpression(parameters, body) {
15729
- if (ts12.isStatement(body) && !ts12.isBlock(body)) {
15730
- throw new Error(`Invalid syntax, expected a block, but got ${ts12.SyntaxKind[body.kind]}.`);
15894
+ if (ts13.isStatement(body) && !ts13.isBlock(body)) {
15895
+ throw new Error(`Invalid syntax, expected a block, but got ${ts13.SyntaxKind[body.kind]}.`);
15731
15896
  }
15732
- return ts12.factory.createArrowFunction(undefined, undefined, parameters.map((param) => this.createParameter(param)), undefined, undefined, body);
15897
+ return ts13.factory.createArrowFunction(undefined, undefined, parameters.map((param) => this.createParameter(param)), undefined, undefined, body);
15733
15898
  }
15734
15899
  createParameter(param) {
15735
- return ts12.factory.createParameterDeclaration(undefined, undefined, param.name, undefined, param.type ?? undefined);
15900
+ return ts13.factory.createParameterDeclaration(undefined, undefined, param.name, undefined, param.type ?? undefined);
15736
15901
  }
15737
- createIdentifier = ts12.factory.createIdentifier;
15902
+ createIdentifier = ts13.factory.createIdentifier;
15738
15903
  createIfStatement(condition, thenStatement, elseStatement) {
15739
- return ts12.factory.createIfStatement(condition, thenStatement, elseStatement ?? undefined);
15904
+ return ts13.factory.createIfStatement(condition, thenStatement, elseStatement ?? undefined);
15740
15905
  }
15741
15906
  createLiteral(value) {
15742
15907
  if (value === undefined) {
15743
- return ts12.factory.createIdentifier("undefined");
15908
+ return ts13.factory.createIdentifier("undefined");
15744
15909
  } else if (value === null) {
15745
- return ts12.factory.createNull();
15910
+ return ts13.factory.createNull();
15746
15911
  } else if (typeof value === "boolean") {
15747
- return value ? ts12.factory.createTrue() : ts12.factory.createFalse();
15912
+ return value ? ts13.factory.createTrue() : ts13.factory.createFalse();
15748
15913
  } else if (typeof value === "number") {
15749
15914
  return tsNumericExpression(value);
15750
15915
  } else {
15751
- return ts12.factory.createStringLiteral(value);
15916
+ return ts13.factory.createStringLiteral(value);
15752
15917
  }
15753
15918
  }
15754
15919
  createNewExpression(expression, args) {
15755
- return ts12.factory.createNewExpression(expression, undefined, args);
15920
+ return ts13.factory.createNewExpression(expression, undefined, args);
15756
15921
  }
15757
15922
  createObjectLiteral(properties) {
15758
- return ts12.factory.createObjectLiteralExpression(properties.map((prop) => {
15923
+ return ts13.factory.createObjectLiteralExpression(properties.map((prop) => {
15759
15924
  if (prop.kind === "spread") {
15760
- return ts12.factory.createSpreadAssignment(prop.expression);
15925
+ return ts13.factory.createSpreadAssignment(prop.expression);
15761
15926
  }
15762
- return ts12.factory.createPropertyAssignment(prop.quoted ? ts12.factory.createStringLiteral(prop.propertyName) : ts12.factory.createIdentifier(prop.propertyName), prop.value);
15927
+ return ts13.factory.createPropertyAssignment(prop.quoted ? ts13.factory.createStringLiteral(prop.propertyName) : ts13.factory.createIdentifier(prop.propertyName), prop.value);
15763
15928
  }));
15764
15929
  }
15765
- createParenthesizedExpression = ts12.factory.createParenthesizedExpression;
15766
- createPropertyAccess = ts12.factory.createPropertyAccessExpression;
15767
- createSpreadElement = ts12.factory.createSpreadElement;
15930
+ createParenthesizedExpression = ts13.factory.createParenthesizedExpression;
15931
+ createPropertyAccess = ts13.factory.createPropertyAccessExpression;
15932
+ createSpreadElement = ts13.factory.createSpreadElement;
15768
15933
  createReturnStatement(expression) {
15769
- return ts12.factory.createReturnStatement(expression ?? undefined);
15934
+ return ts13.factory.createReturnStatement(expression ?? undefined);
15770
15935
  }
15771
15936
  createTaggedTemplate(tag, template) {
15772
- return ts12.factory.createTaggedTemplateExpression(tag, undefined, this.createTemplateLiteral(template));
15937
+ return ts13.factory.createTaggedTemplateExpression(tag, undefined, this.createTemplateLiteral(template));
15773
15938
  }
15774
15939
  createTemplateLiteral(template) {
15775
15940
  let templateLiteral;
@@ -15779,7 +15944,7 @@ class TypeScriptAstFactory {
15779
15944
  throw new Error("createTemplateLiteral: template has no elements");
15780
15945
  }
15781
15946
  if (length === 1) {
15782
- templateLiteral = ts12.factory.createNoSubstitutionTemplateLiteral(head.cooked, head.raw);
15947
+ templateLiteral = ts13.factory.createNoSubstitutionTemplateLiteral(head.cooked, head.raw);
15783
15948
  } else {
15784
15949
  const spans = [];
15785
15950
  for (let i = 1;i < length - 1; i++) {
@@ -15793,7 +15958,7 @@ class TypeScriptAstFactory {
15793
15958
  if (range !== null) {
15794
15959
  this.setSourceMapRange(middle, range);
15795
15960
  }
15796
- spans.push(ts12.factory.createTemplateSpan(expression, middle));
15961
+ spans.push(ts13.factory.createTemplateSpan(expression, middle));
15797
15962
  }
15798
15963
  const resolvedExpression = template.expressions[length - 2];
15799
15964
  const templatePart = template.elements[length - 1];
@@ -15804,27 +15969,27 @@ class TypeScriptAstFactory {
15804
15969
  if (templatePart.range !== null) {
15805
15970
  this.setSourceMapRange(templateTail, templatePart.range);
15806
15971
  }
15807
- spans.push(ts12.factory.createTemplateSpan(resolvedExpression, templateTail));
15808
- templateLiteral = ts12.factory.createTemplateExpression(ts12.factory.createTemplateHead(head.cooked, head.raw), spans);
15972
+ spans.push(ts13.factory.createTemplateSpan(resolvedExpression, templateTail));
15973
+ templateLiteral = ts13.factory.createTemplateExpression(ts13.factory.createTemplateHead(head.cooked, head.raw), spans);
15809
15974
  }
15810
15975
  if (head.range !== null) {
15811
15976
  this.setSourceMapRange(templateLiteral, head.range);
15812
15977
  }
15813
15978
  return templateLiteral;
15814
15979
  }
15815
- createThrowStatement = ts12.factory.createThrowStatement;
15816
- createTypeOfExpression = ts12.factory.createTypeOfExpression;
15817
- createVoidExpression = ts12.factory.createVoidExpression;
15980
+ createThrowStatement = ts13.factory.createThrowStatement;
15981
+ createTypeOfExpression = ts13.factory.createTypeOfExpression;
15982
+ createVoidExpression = ts13.factory.createVoidExpression;
15818
15983
  createUnaryExpression(operator, operand) {
15819
- return ts12.factory.createPrefixUnaryExpression(this.UNARY_OPERATORS[operator], operand);
15984
+ return ts13.factory.createPrefixUnaryExpression(this.UNARY_OPERATORS[operator], operand);
15820
15985
  }
15821
15986
  createVariableDeclaration(variableName, initializer, variableType, type) {
15822
- return ts12.factory.createVariableStatement(undefined, ts12.factory.createVariableDeclarationList([
15823
- ts12.factory.createVariableDeclaration(variableName, undefined, type ?? undefined, initializer ?? undefined)
15987
+ return ts13.factory.createVariableStatement(undefined, ts13.factory.createVariableDeclarationList([
15988
+ ts13.factory.createVariableDeclaration(variableName, undefined, type ?? undefined, initializer ?? undefined)
15824
15989
  ], this.VAR_TYPES[variableType]));
15825
15990
  }
15826
15991
  createRegularExpressionLiteral(body, flags) {
15827
- return ts12.factory.createRegularExpressionLiteral(`/${body}/${flags ?? ""}`);
15992
+ return ts13.factory.createRegularExpressionLiteral(`/${body}/${flags ?? ""}`);
15828
15993
  }
15829
15994
  setSourceMapRange(node, sourceMapRange) {
15830
15995
  if (sourceMapRange === null) {
@@ -15832,10 +15997,10 @@ class TypeScriptAstFactory {
15832
15997
  }
15833
15998
  const url = sourceMapRange.url;
15834
15999
  if (!this.externalSourceFiles.has(url)) {
15835
- this.externalSourceFiles.set(url, ts12.createSourceMapSource(url, sourceMapRange.content, (pos) => pos));
16000
+ this.externalSourceFiles.set(url, ts13.createSourceMapSource(url, sourceMapRange.content, (pos) => pos));
15836
16001
  }
15837
16002
  const source = this.externalSourceFiles.get(url);
15838
- ts12.setSourceMapRange(node, {
16003
+ ts13.setSourceMapRange(node, {
15839
16004
  pos: sourceMapRange.start.offset,
15840
16005
  end: sourceMapRange.end.offset,
15841
16006
  source
@@ -15845,77 +16010,77 @@ class TypeScriptAstFactory {
15845
16010
  createBuiltInType(type) {
15846
16011
  switch (type) {
15847
16012
  case "any":
15848
- return ts12.factory.createKeywordTypeNode(ts12.SyntaxKind.AnyKeyword);
16013
+ return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.AnyKeyword);
15849
16014
  case "boolean":
15850
- return ts12.factory.createKeywordTypeNode(ts12.SyntaxKind.BooleanKeyword);
16015
+ return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.BooleanKeyword);
15851
16016
  case "number":
15852
- return ts12.factory.createKeywordTypeNode(ts12.SyntaxKind.NumberKeyword);
16017
+ return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.NumberKeyword);
15853
16018
  case "string":
15854
- return ts12.factory.createKeywordTypeNode(ts12.SyntaxKind.StringKeyword);
16019
+ return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.StringKeyword);
15855
16020
  case "function":
15856
- return ts12.factory.createTypeReferenceNode(ts12.factory.createIdentifier("Function"));
16021
+ return ts13.factory.createTypeReferenceNode(ts13.factory.createIdentifier("Function"));
15857
16022
  case "never":
15858
- return ts12.factory.createKeywordTypeNode(ts12.SyntaxKind.NeverKeyword);
16023
+ return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.NeverKeyword);
15859
16024
  case "unknown":
15860
- return ts12.factory.createKeywordTypeNode(ts12.SyntaxKind.UnknownKeyword);
16025
+ return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.UnknownKeyword);
15861
16026
  }
15862
16027
  }
15863
16028
  createExpressionType(expression, typeParams) {
15864
16029
  const typeName = getEntityTypeFromExpression(expression);
15865
- return ts12.factory.createTypeReferenceNode(typeName, typeParams ?? undefined);
16030
+ return ts13.factory.createTypeReferenceNode(typeName, typeParams ?? undefined);
15866
16031
  }
15867
16032
  createArrayType(elementType) {
15868
- return ts12.factory.createArrayTypeNode(elementType);
16033
+ return ts13.factory.createArrayTypeNode(elementType);
15869
16034
  }
15870
16035
  createMapType(valueType) {
15871
- return ts12.factory.createTypeLiteralNode([
15872
- ts12.factory.createIndexSignature(undefined, [
15873
- ts12.factory.createParameterDeclaration(undefined, undefined, "key", undefined, ts12.factory.createKeywordTypeNode(ts12.SyntaxKind.StringKeyword))
16036
+ return ts13.factory.createTypeLiteralNode([
16037
+ ts13.factory.createIndexSignature(undefined, [
16038
+ ts13.factory.createParameterDeclaration(undefined, undefined, "key", undefined, ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.StringKeyword))
15874
16039
  ], valueType)
15875
16040
  ]);
15876
16041
  }
15877
16042
  transplantType(type) {
15878
- if (typeof type.kind === "number" && typeof type.getSourceFile === "function" && ts12.isTypeNode(type)) {
16043
+ if (typeof type.kind === "number" && typeof type.getSourceFile === "function" && ts13.isTypeNode(type)) {
15879
16044
  return type;
15880
16045
  }
15881
16046
  throw new Error("Attempting to transplant a type node from a non-TypeScript AST: " + type);
15882
16047
  }
15883
16048
  }
15884
16049
  function createTemplateMiddle(cooked, raw) {
15885
- const node = ts12.factory.createTemplateHead(cooked, raw);
15886
- node.kind = ts12.SyntaxKind.TemplateMiddle;
16050
+ const node = ts13.factory.createTemplateHead(cooked, raw);
16051
+ node.kind = ts13.SyntaxKind.TemplateMiddle;
15887
16052
  return node;
15888
16053
  }
15889
16054
  function createTemplateTail(cooked, raw) {
15890
- const node = ts12.factory.createTemplateHead(cooked, raw);
15891
- node.kind = ts12.SyntaxKind.TemplateTail;
16055
+ const node = ts13.factory.createTemplateHead(cooked, raw);
16056
+ node.kind = ts13.SyntaxKind.TemplateTail;
15892
16057
  return node;
15893
16058
  }
15894
16059
  function attachComments(statement, leadingComments) {
15895
16060
  for (const comment of leadingComments) {
15896
- const commentKind = comment.multiline ? ts12.SyntaxKind.MultiLineCommentTrivia : ts12.SyntaxKind.SingleLineCommentTrivia;
16061
+ const commentKind = comment.multiline ? ts13.SyntaxKind.MultiLineCommentTrivia : ts13.SyntaxKind.SingleLineCommentTrivia;
15897
16062
  if (comment.multiline) {
15898
- ts12.addSyntheticLeadingComment(statement, commentKind, comment.toString(), comment.trailingNewline);
16063
+ ts13.addSyntheticLeadingComment(statement, commentKind, comment.toString(), comment.trailingNewline);
15899
16064
  } else {
15900
16065
  for (const line of comment.toString().split(`
15901
16066
  `)) {
15902
- ts12.addSyntheticLeadingComment(statement, commentKind, line, comment.trailingNewline);
16067
+ ts13.addSyntheticLeadingComment(statement, commentKind, line, comment.trailingNewline);
15903
16068
  }
15904
16069
  }
15905
16070
  }
15906
16071
  }
15907
16072
  function getEntityTypeFromExpression(expression) {
15908
- if (ts12.isIdentifier(expression)) {
16073
+ if (ts13.isIdentifier(expression)) {
15909
16074
  return expression;
15910
16075
  }
15911
- if (ts12.isPropertyAccessExpression(expression)) {
16076
+ if (ts13.isPropertyAccessExpression(expression)) {
15912
16077
  const left = getEntityTypeFromExpression(expression.expression);
15913
- if (!ts12.isIdentifier(expression.name)) {
16078
+ if (!ts13.isIdentifier(expression.name)) {
15914
16079
  throw new Error(`Unsupported property access for type reference: ${expression.name.text}`);
15915
16080
  }
15916
- return ts12.factory.createQualifiedName(left, expression.name);
16081
+ return ts13.factory.createQualifiedName(left, expression.name);
15917
16082
  }
15918
- throw new Error(`Unsupported expression for type reference: ${ts12.SyntaxKind[expression.kind]}`);
16083
+ throw new Error(`Unsupported expression for type reference: ${ts13.SyntaxKind[expression.kind]}`);
15919
16084
  }
15920
16085
  var init_typescript_ast_factory = __esm(() => {
15921
16086
  init_ts_util();
@@ -15948,9 +16113,9 @@ __export(exports_fastHmrCompiler, {
15948
16113
  primeComponentFingerprint: () => primeComponentFingerprint,
15949
16114
  invalidateFingerprintCache: () => invalidateFingerprintCache
15950
16115
  });
15951
- import { existsSync as existsSync24, readFileSync as readFileSync19, statSync as statSync2 } from "fs";
16116
+ import { existsSync as existsSync24, readFileSync as readFileSync20, statSync as statSync2 } from "fs";
15952
16117
  import { dirname as dirname17, extname as extname6, relative as relative12, resolve as resolve25 } from "path";
15953
- import ts13 from "typescript";
16118
+ import ts14 from "typescript";
15954
16119
  var fail = (reason, detail, location) => ({
15955
16120
  ok: false,
15956
16121
  reason,
@@ -16034,23 +16199,23 @@ var fail = (reason, detail, location) => ({
16034
16199
  }
16035
16200
  let sourceFile;
16036
16201
  try {
16037
- sourceFile = ts13.createSourceFile(componentFilePath, source, ts13.ScriptTarget.Latest, true, ts13.ScriptKind.TS);
16202
+ sourceFile = ts14.createSourceFile(componentFilePath, source, ts14.ScriptTarget.Latest, true, ts14.ScriptKind.TS);
16038
16203
  } catch {
16039
16204
  return;
16040
16205
  }
16041
16206
  for (const stmt of sourceFile.statements) {
16042
- if (!ts13.isClassDeclaration(stmt))
16207
+ if (!ts14.isClassDeclaration(stmt))
16043
16208
  continue;
16044
16209
  const className = stmt.name?.text;
16045
16210
  if (!className)
16046
16211
  continue;
16047
- const decorators = ts13.getDecorators(stmt) ?? [];
16212
+ const decorators = ts14.getDecorators(stmt) ?? [];
16048
16213
  const decoratorName = (() => {
16049
16214
  for (const d2 of decorators) {
16050
- if (!ts13.isCallExpression(d2.expression))
16215
+ if (!ts14.isCallExpression(d2.expression))
16051
16216
  continue;
16052
16217
  const expr = d2.expression.expression;
16053
- if (!ts13.isIdentifier(expr))
16218
+ if (!ts14.isIdentifier(expr))
16054
16219
  continue;
16055
16220
  if (expr.text === "Component" || expr.text === "Directive" || expr.text === "Pipe" || expr.text === "Injectable") {
16056
16221
  return expr.text;
@@ -16064,16 +16229,16 @@ var fail = (reason, detail, location) => ({
16064
16229
  const id = encodeURIComponent(`${projectRel}@${className}`);
16065
16230
  if (decoratorName === "Component") {
16066
16231
  const componentDecorator = decorators.find((d2) => {
16067
- if (!ts13.isCallExpression(d2.expression))
16232
+ if (!ts14.isCallExpression(d2.expression))
16068
16233
  return false;
16069
16234
  const expr = d2.expression.expression;
16070
- return ts13.isIdentifier(expr) && expr.text === "Component";
16235
+ return ts14.isIdentifier(expr) && expr.text === "Component";
16071
16236
  });
16072
16237
  if (!componentDecorator)
16073
16238
  continue;
16074
16239
  const decoratorCall = componentDecorator.expression;
16075
16240
  const args = decoratorCall.arguments[0];
16076
- if (!args || !ts13.isObjectLiteralExpression(args))
16241
+ if (!args || !ts14.isObjectLiteralExpression(args))
16077
16242
  continue;
16078
16243
  const decoratorMeta = readDecoratorMeta(args);
16079
16244
  const { inputs, outputs } = extractInputsAndOutputs(stmt, null);
@@ -16107,11 +16272,11 @@ var fail = (reason, detail, location) => ({
16107
16272
  return false;
16108
16273
  return true;
16109
16274
  }, ENTITY_DECORATOR_NAMES, findEntityDecorator = (cls) => {
16110
- for (const dec of ts13.getDecorators(cls) ?? []) {
16275
+ for (const dec of ts14.getDecorators(cls) ?? []) {
16111
16276
  const expr = dec.expression;
16112
- if (!ts13.isCallExpression(expr))
16277
+ if (!ts14.isCallExpression(expr))
16113
16278
  continue;
16114
- if (!ts13.isIdentifier(expr.expression))
16279
+ if (!ts14.isIdentifier(expr.expression))
16115
16280
  continue;
16116
16281
  if (ENTITY_DECORATOR_NAMES.has(expr.expression.text))
16117
16282
  return dec;
@@ -16129,18 +16294,18 @@ var fail = (reason, detail, location) => ({
16129
16294
  }
16130
16295
  const ctorParamTypes = [];
16131
16296
  for (const member of cls.members) {
16132
- if (!ts13.isConstructorDeclaration(member))
16297
+ if (!ts14.isConstructorDeclaration(member))
16133
16298
  continue;
16134
16299
  for (const param of member.parameters) {
16135
16300
  const typeText = param.type ? param.type.getText() : "";
16136
- const decorators = ts13.getDecorators(param) ?? [];
16301
+ const decorators = ts14.getDecorators(param) ?? [];
16137
16302
  const decoratorSig = decorators.length === 0 ? "" : decorators.map((d2) => {
16138
16303
  const e = d2.expression;
16139
- if (ts13.isCallExpression(e) && ts13.isIdentifier(e.expression)) {
16304
+ if (ts14.isCallExpression(e) && ts14.isIdentifier(e.expression)) {
16140
16305
  const args = e.arguments.map((a) => a.getText()).join(",");
16141
16306
  return `@${e.expression.text}(${args})`;
16142
16307
  }
16143
- if (ts13.isIdentifier(e))
16308
+ if (ts14.isIdentifier(e))
16144
16309
  return `@${e.text}`;
16145
16310
  return "@<unknown>";
16146
16311
  }).join("");
@@ -16162,23 +16327,23 @@ var fail = (reason, detail, location) => ({
16162
16327
  const walk = (node) => {
16163
16328
  if (found)
16164
16329
  return;
16165
- if (ts13.isClassDeclaration(node) && node.name?.text === className) {
16330
+ if (ts14.isClassDeclaration(node) && node.name?.text === className) {
16166
16331
  found = node;
16167
16332
  return;
16168
16333
  }
16169
- ts13.forEachChild(node, walk);
16334
+ ts14.forEachChild(node, walk);
16170
16335
  };
16171
16336
  walk(sourceFile);
16172
16337
  return found;
16173
16338
  }, getClassDecorators = (cls) => {
16174
- const modifiers = ts13.getDecorators(cls) ?? [];
16339
+ const modifiers = ts14.getDecorators(cls) ?? [];
16175
16340
  return [...modifiers];
16176
16341
  }, findComponentDecorator = (cls) => {
16177
16342
  for (const decorator of getClassDecorators(cls)) {
16178
16343
  const expr = decorator.expression;
16179
- if (ts13.isCallExpression(expr)) {
16344
+ if (ts14.isCallExpression(expr)) {
16180
16345
  const fn2 = expr.expression;
16181
- if (ts13.isIdentifier(fn2) && fn2.text === "Component") {
16346
+ if (ts14.isIdentifier(fn2) && fn2.text === "Component") {
16182
16347
  return decorator;
16183
16348
  }
16184
16349
  }
@@ -16186,15 +16351,15 @@ var fail = (reason, detail, location) => ({
16186
16351
  return null;
16187
16352
  }, getDecoratorArgsObject = (decorator) => {
16188
16353
  const call = decorator.expression;
16189
- if (!ts13.isCallExpression(call))
16354
+ if (!ts14.isCallExpression(call))
16190
16355
  return null;
16191
16356
  const arg = call.arguments[0];
16192
- if (!arg || !ts13.isObjectLiteralExpression(arg))
16357
+ if (!arg || !ts14.isObjectLiteralExpression(arg))
16193
16358
  return null;
16194
16359
  return arg;
16195
16360
  }, getProperty = (obj, name) => {
16196
16361
  for (const prop of obj.properties) {
16197
- if (ts13.isPropertyAssignment(prop) && (ts13.isIdentifier(prop.name) && prop.name.text === name || ts13.isStringLiteral(prop.name) && prop.name.text === name)) {
16362
+ if (ts14.isPropertyAssignment(prop) && (ts14.isIdentifier(prop.name) && prop.name.text === name || ts14.isStringLiteral(prop.name) && prop.name.text === name)) {
16198
16363
  return prop.initializer;
16199
16364
  }
16200
16365
  }
@@ -16203,7 +16368,7 @@ var fail = (reason, detail, location) => ({
16203
16368
  const expr = getProperty(obj, name);
16204
16369
  if (!expr)
16205
16370
  return null;
16206
- if (ts13.isStringLiteral(expr) || ts13.isNoSubstitutionTemplateLiteral(expr)) {
16371
+ if (ts14.isStringLiteral(expr) || ts14.isNoSubstitutionTemplateLiteral(expr)) {
16207
16372
  return expr.text;
16208
16373
  }
16209
16374
  return null;
@@ -16211,22 +16376,22 @@ var fail = (reason, detail, location) => ({
16211
16376
  const expr = getProperty(obj, name);
16212
16377
  if (!expr)
16213
16378
  return null;
16214
- if (expr.kind === ts13.SyntaxKind.TrueKeyword)
16379
+ if (expr.kind === ts14.SyntaxKind.TrueKeyword)
16215
16380
  return true;
16216
- if (expr.kind === ts13.SyntaxKind.FalseKeyword)
16381
+ if (expr.kind === ts14.SyntaxKind.FalseKeyword)
16217
16382
  return false;
16218
16383
  return null;
16219
16384
  }, isAngularDecoratorIdentifier = (name) => name === "Component" || name === "Directive" || name === "Pipe" || name === "Injectable", classHasAngularDecorator = (cls) => {
16220
- for (const dec of ts13.getDecorators(cls) ?? []) {
16385
+ for (const dec of ts14.getDecorators(cls) ?? []) {
16221
16386
  const expr = dec.expression;
16222
- if (ts13.isCallExpression(expr) && ts13.isIdentifier(expr.expression) && isAngularDecoratorIdentifier(expr.expression.text)) {
16387
+ if (ts14.isCallExpression(expr) && ts14.isIdentifier(expr.expression) && isAngularDecoratorIdentifier(expr.expression.text)) {
16223
16388
  return true;
16224
16389
  }
16225
16390
  }
16226
16391
  return false;
16227
16392
  }, findClassInSourceFile = (sf, className) => {
16228
16393
  for (const stmt of sf.statements) {
16229
- if (ts13.isClassDeclaration(stmt) && stmt.name?.text === className) {
16394
+ if (ts14.isClassDeclaration(stmt) && stmt.name?.text === className) {
16230
16395
  return stmt;
16231
16396
  }
16232
16397
  }
@@ -16236,15 +16401,15 @@ var fail = (reason, detail, location) => ({
16236
16401
  if (sameFile)
16237
16402
  return classHasAngularDecorator(sameFile);
16238
16403
  for (const stmt of sourceFile.statements) {
16239
- if (!ts13.isImportDeclaration(stmt))
16404
+ if (!ts14.isImportDeclaration(stmt))
16240
16405
  continue;
16241
- if (!ts13.isStringLiteral(stmt.moduleSpecifier))
16406
+ if (!ts14.isStringLiteral(stmt.moduleSpecifier))
16242
16407
  continue;
16243
16408
  const clause = stmt.importClause;
16244
16409
  if (!clause || clause.isTypeOnly)
16245
16410
  continue;
16246
16411
  const named = clause.namedBindings;
16247
- if (!named || !ts13.isNamedImports(named))
16412
+ if (!named || !ts14.isNamedImports(named))
16248
16413
  continue;
16249
16414
  const found = named.elements.find((el) => el.name.text === parentClassName);
16250
16415
  if (!found)
@@ -16265,11 +16430,11 @@ var fail = (reason, detail, location) => ({
16265
16430
  continue;
16266
16431
  let content;
16267
16432
  try {
16268
- content = readFileSync19(candidate, "utf-8");
16433
+ content = readFileSync20(candidate, "utf-8");
16269
16434
  } catch {
16270
16435
  continue;
16271
16436
  }
16272
- const parentSf = ts13.createSourceFile(candidate, content, ts13.ScriptTarget.Latest, true);
16437
+ const parentSf = ts14.createSourceFile(candidate, content, ts14.ScriptTarget.Latest, true);
16273
16438
  const parentCls = findClassInSourceFile(parentSf, parentClassName);
16274
16439
  if (!parentCls)
16275
16440
  continue;
@@ -16281,11 +16446,11 @@ var fail = (reason, detail, location) => ({
16281
16446
  }, inheritsDecoratedClass = (cls, sourceFile, componentDir, projectRoot) => {
16282
16447
  const heritage = cls.heritageClauses ?? [];
16283
16448
  for (const clause of heritage) {
16284
- if (clause.token !== ts13.SyntaxKind.ExtendsKeyword)
16449
+ if (clause.token !== ts14.SyntaxKind.ExtendsKeyword)
16285
16450
  continue;
16286
16451
  for (const typeNode of clause.types) {
16287
16452
  const expr = typeNode.expression;
16288
- if (!ts13.isIdentifier(expr)) {
16453
+ if (!ts14.isIdentifier(expr)) {
16289
16454
  return true;
16290
16455
  }
16291
16456
  if (parentHasAngularDecoratorAcrossFiles(expr.text, sourceFile, componentDir, projectRoot)) {
@@ -16296,18 +16461,18 @@ var fail = (reason, detail, location) => ({
16296
16461
  return false;
16297
16462
  }, CONTROL_CREATE_METHOD_NAME = "\u0275ngControlCreate", extractControlCreate = (cls) => {
16298
16463
  for (const member of cls.members) {
16299
- if (!ts13.isMethodDeclaration(member))
16464
+ if (!ts14.isMethodDeclaration(member))
16300
16465
  continue;
16301
- if (member.modifiers?.some((m) => m.kind === ts13.SyntaxKind.StaticKeyword))
16466
+ if (member.modifiers?.some((m) => m.kind === ts14.SyntaxKind.StaticKeyword))
16302
16467
  continue;
16303
16468
  const name = member.name;
16304
16469
  if (name === undefined)
16305
16470
  continue;
16306
- const nameText = ts13.isIdentifier(name) ? name.text : name.getText();
16471
+ const nameText = ts14.isIdentifier(name) ? name.text : name.getText();
16307
16472
  if (nameText !== CONTROL_CREATE_METHOD_NAME)
16308
16473
  continue;
16309
16474
  const firstParam = member.parameters[0];
16310
- if (firstParam === undefined || firstParam.type === undefined || !ts13.isTypeReferenceNode(firstParam.type)) {
16475
+ if (firstParam === undefined || firstParam.type === undefined || !ts14.isTypeReferenceNode(firstParam.type)) {
16311
16476
  return { passThroughInput: null };
16312
16477
  }
16313
16478
  const typeArgs = firstParam.type.typeArguments;
@@ -16315,16 +16480,16 @@ var fail = (reason, detail, location) => ({
16315
16480
  return { passThroughInput: null };
16316
16481
  }
16317
16482
  const arg = typeArgs[0];
16318
- if (arg === undefined || !ts13.isLiteralTypeNode(arg) || !ts13.isStringLiteral(arg.literal)) {
16483
+ if (arg === undefined || !ts14.isLiteralTypeNode(arg) || !ts14.isStringLiteral(arg.literal)) {
16319
16484
  return { passThroughInput: null };
16320
16485
  }
16321
16486
  return { passThroughInput: arg.literal.text };
16322
16487
  }
16323
16488
  return null;
16324
16489
  }, resolveEnumPropertyAccess = (expr, enumName, values) => {
16325
- if (!ts13.isPropertyAccessExpression(expr))
16490
+ if (!ts14.isPropertyAccessExpression(expr))
16326
16491
  return null;
16327
- if (!ts13.isIdentifier(expr.expression))
16492
+ if (!ts14.isIdentifier(expr.expression))
16328
16493
  return null;
16329
16494
  if (expr.expression.text !== enumName)
16330
16495
  return null;
@@ -16343,21 +16508,21 @@ var fail = (reason, detail, location) => ({
16343
16508
  const hostExpr = getProperty(args, "host");
16344
16509
  const schemasExpr = getProperty(args, "schemas");
16345
16510
  const styleUrls = [];
16346
- if (styleUrlsExpr && ts13.isArrayLiteralExpression(styleUrlsExpr)) {
16511
+ if (styleUrlsExpr && ts14.isArrayLiteralExpression(styleUrlsExpr)) {
16347
16512
  for (const el of styleUrlsExpr.elements) {
16348
- if (ts13.isStringLiteral(el))
16513
+ if (ts14.isStringLiteral(el))
16349
16514
  styleUrls.push(el.text);
16350
16515
  }
16351
16516
  }
16352
16517
  const styles = [];
16353
16518
  if (stylesExpr) {
16354
- if (ts13.isArrayLiteralExpression(stylesExpr)) {
16519
+ if (ts14.isArrayLiteralExpression(stylesExpr)) {
16355
16520
  for (const el of stylesExpr.elements) {
16356
- if (ts13.isStringLiteral(el) || ts13.isNoSubstitutionTemplateLiteral(el)) {
16521
+ if (ts14.isStringLiteral(el) || ts14.isNoSubstitutionTemplateLiteral(el)) {
16357
16522
  styles.push(el.text);
16358
16523
  }
16359
16524
  }
16360
- } else if (ts13.isStringLiteral(stylesExpr) || ts13.isNoSubstitutionTemplateLiteral(stylesExpr)) {
16525
+ } else if (ts14.isStringLiteral(stylesExpr) || ts14.isNoSubstitutionTemplateLiteral(stylesExpr)) {
16361
16526
  styles.push(stylesExpr.text);
16362
16527
  }
16363
16528
  }
@@ -16370,15 +16535,15 @@ var fail = (reason, detail, location) => ({
16370
16535
  encapsulation,
16371
16536
  hasProviders: getProperty(args, "providers") !== null,
16372
16537
  hasViewProviders: getProperty(args, "viewProviders") !== null,
16373
- importsExpr: importsExpr && ts13.isArrayLiteralExpression(importsExpr) ? importsExpr : null,
16374
- hostDirectivesExpr: hostDirectivesExpr && ts13.isArrayLiteralExpression(hostDirectivesExpr) ? hostDirectivesExpr : null,
16375
- animationsExpr: animationsExpr && ts13.isArrayLiteralExpression(animationsExpr) ? animationsExpr : null,
16376
- providersExpr: providersExpr && ts13.isArrayLiteralExpression(providersExpr) ? providersExpr : null,
16377
- viewProvidersExpr: viewProvidersExpr && ts13.isArrayLiteralExpression(viewProvidersExpr) ? viewProvidersExpr : null,
16378
- inputsArrayExpr: inputsArrayExpr && ts13.isArrayLiteralExpression(inputsArrayExpr) ? inputsArrayExpr : null,
16379
- outputsArrayExpr: outputsArrayExpr && ts13.isArrayLiteralExpression(outputsArrayExpr) ? outputsArrayExpr : null,
16380
- hostExpr: hostExpr && ts13.isObjectLiteralExpression(hostExpr) ? hostExpr : null,
16381
- schemasExpr: schemasExpr && ts13.isArrayLiteralExpression(schemasExpr) ? schemasExpr : null,
16538
+ importsExpr: importsExpr && ts14.isArrayLiteralExpression(importsExpr) ? importsExpr : null,
16539
+ hostDirectivesExpr: hostDirectivesExpr && ts14.isArrayLiteralExpression(hostDirectivesExpr) ? hostDirectivesExpr : null,
16540
+ animationsExpr: animationsExpr && ts14.isArrayLiteralExpression(animationsExpr) ? animationsExpr : null,
16541
+ providersExpr: providersExpr && ts14.isArrayLiteralExpression(providersExpr) ? providersExpr : null,
16542
+ viewProvidersExpr: viewProvidersExpr && ts14.isArrayLiteralExpression(viewProvidersExpr) ? viewProvidersExpr : null,
16543
+ inputsArrayExpr: inputsArrayExpr && ts14.isArrayLiteralExpression(inputsArrayExpr) ? inputsArrayExpr : null,
16544
+ outputsArrayExpr: outputsArrayExpr && ts14.isArrayLiteralExpression(outputsArrayExpr) ? outputsArrayExpr : null,
16545
+ hostExpr: hostExpr && ts14.isObjectLiteralExpression(hostExpr) ? hostExpr : null,
16546
+ schemasExpr: schemasExpr && ts14.isArrayLiteralExpression(schemasExpr) ? schemasExpr : null,
16382
16547
  preserveWhitespaces: getBooleanProperty(args, "preserveWhitespaces") ?? projectDefaults.preserveWhitespaces ?? false,
16383
16548
  selector: getStringProperty(args, "selector"),
16384
16549
  standalone: getBooleanProperty(args, "standalone") ?? true,
@@ -16389,13 +16554,13 @@ var fail = (reason, detail, location) => ({
16389
16554
  templateUrl: getStringProperty(args, "templateUrl")
16390
16555
  };
16391
16556
  }, extractDecoratorInput = (prop, compiler) => {
16392
- const decorators = ts13.getDecorators(prop) ?? [];
16557
+ const decorators = ts14.getDecorators(prop) ?? [];
16393
16558
  for (const decorator of decorators) {
16394
16559
  const expr = decorator.expression;
16395
- if (!ts13.isCallExpression(expr))
16560
+ if (!ts14.isCallExpression(expr))
16396
16561
  continue;
16397
16562
  const fn2 = expr.expression;
16398
- if (!ts13.isIdentifier(fn2) || fn2.text !== "Input")
16563
+ if (!ts14.isIdentifier(fn2) || fn2.text !== "Input")
16399
16564
  continue;
16400
16565
  const classPropertyName = prop.name.getText();
16401
16566
  let bindingPropertyName = classPropertyName;
@@ -16403,9 +16568,9 @@ var fail = (reason, detail, location) => ({
16403
16568
  let transformFunction = null;
16404
16569
  const arg = expr.arguments[0];
16405
16570
  if (arg) {
16406
- if (ts13.isStringLiteral(arg)) {
16571
+ if (ts14.isStringLiteral(arg)) {
16407
16572
  bindingPropertyName = arg.text;
16408
- } else if (ts13.isObjectLiteralExpression(arg)) {
16573
+ } else if (ts14.isObjectLiteralExpression(arg)) {
16409
16574
  const aliasNode = getStringProperty(arg, "alias");
16410
16575
  if (aliasNode !== null)
16411
16576
  bindingPropertyName = aliasNode;
@@ -16429,11 +16594,11 @@ var fail = (reason, detail, location) => ({
16429
16594
  }
16430
16595
  return null;
16431
16596
  }, isInputSignalCall = (init) => {
16432
- if (ts13.isCallExpression(init)) {
16597
+ if (ts14.isCallExpression(init)) {
16433
16598
  const fn2 = init.expression;
16434
- if (ts13.isIdentifier(fn2) && fn2.text === "input")
16599
+ if (ts14.isIdentifier(fn2) && fn2.text === "input")
16435
16600
  return true;
16436
- if (ts13.isPropertyAccessExpression(fn2) && ts13.isIdentifier(fn2.expression) && fn2.expression.text === "input") {
16601
+ if (ts14.isPropertyAccessExpression(fn2) && ts14.isIdentifier(fn2.expression) && fn2.expression.text === "input") {
16437
16602
  return true;
16438
16603
  }
16439
16604
  }
@@ -16444,13 +16609,13 @@ var fail = (reason, detail, location) => ({
16444
16609
  const classPropertyName = prop.name.getText();
16445
16610
  const call = prop.initializer;
16446
16611
  let required = false;
16447
- if (ts13.isPropertyAccessExpression(call.expression) && ts13.isIdentifier(call.expression.name) && call.expression.name.text === "required") {
16612
+ if (ts14.isPropertyAccessExpression(call.expression) && ts14.isIdentifier(call.expression.name) && call.expression.name.text === "required") {
16448
16613
  required = true;
16449
16614
  }
16450
16615
  let bindingPropertyName = classPropertyName;
16451
16616
  let transformFunction = null;
16452
16617
  const optsArg = call.arguments[required ? 0 : 1];
16453
- if (optsArg && ts13.isObjectLiteralExpression(optsArg)) {
16618
+ if (optsArg && ts14.isObjectLiteralExpression(optsArg)) {
16454
16619
  const aliasNode = getStringProperty(optsArg, "alias");
16455
16620
  if (aliasNode !== null)
16456
16621
  bindingPropertyName = aliasNode;
@@ -16470,28 +16635,28 @@ var fail = (reason, detail, location) => ({
16470
16635
  }
16471
16636
  };
16472
16637
  }, extractDecoratorOutput = (prop) => {
16473
- const decorators = ts13.getDecorators(prop) ?? [];
16638
+ const decorators = ts14.getDecorators(prop) ?? [];
16474
16639
  for (const decorator of decorators) {
16475
16640
  const expr = decorator.expression;
16476
- if (!ts13.isCallExpression(expr))
16641
+ if (!ts14.isCallExpression(expr))
16477
16642
  continue;
16478
16643
  const fn2 = expr.expression;
16479
- if (!ts13.isIdentifier(fn2) || fn2.text !== "Output")
16644
+ if (!ts14.isIdentifier(fn2) || fn2.text !== "Output")
16480
16645
  continue;
16481
16646
  const classPropertyName = prop.name.getText();
16482
16647
  let bindingName = classPropertyName;
16483
16648
  const arg = expr.arguments[0];
16484
- if (arg && ts13.isStringLiteral(arg))
16649
+ if (arg && ts14.isStringLiteral(arg))
16485
16650
  bindingName = arg.text;
16486
16651
  return { classPropertyName, bindingName };
16487
16652
  }
16488
16653
  return null;
16489
16654
  }, isOutputSignalCall = (init) => {
16490
- if (ts13.isCallExpression(init)) {
16655
+ if (ts14.isCallExpression(init)) {
16491
16656
  const fn2 = init.expression;
16492
- if (ts13.isIdentifier(fn2) && fn2.text === "output")
16657
+ if (ts14.isIdentifier(fn2) && fn2.text === "output")
16493
16658
  return true;
16494
- if (ts13.isPropertyAccessExpression(fn2) && ts13.isIdentifier(fn2.expression) && fn2.expression.text === "output") {
16659
+ if (ts14.isPropertyAccessExpression(fn2) && ts14.isIdentifier(fn2.expression) && fn2.expression.text === "output") {
16495
16660
  return true;
16496
16661
  }
16497
16662
  }
@@ -16503,7 +16668,7 @@ var fail = (reason, detail, location) => ({
16503
16668
  const call = prop.initializer;
16504
16669
  let bindingName = classPropertyName;
16505
16670
  const optsArg = call.arguments[0];
16506
- if (optsArg && ts13.isObjectLiteralExpression(optsArg)) {
16671
+ if (optsArg && ts14.isObjectLiteralExpression(optsArg)) {
16507
16672
  const aliasNode = getStringProperty(optsArg, "alias");
16508
16673
  if (aliasNode !== null)
16509
16674
  bindingName = aliasNode;
@@ -16515,7 +16680,7 @@ var fail = (reason, detail, location) => ({
16515
16680
  let hasDecoratorIO = false;
16516
16681
  let hasSignalIO = false;
16517
16682
  for (const member of cls.members) {
16518
- if (!ts13.isPropertyDeclaration(member))
16683
+ if (!ts14.isPropertyDeclaration(member))
16519
16684
  continue;
16520
16685
  const decoratorIn = extractDecoratorInput(member, compiler);
16521
16686
  if (decoratorIn) {
@@ -16549,21 +16714,21 @@ var fail = (reason, detail, location) => ({
16549
16714
  specialAttributes: {}
16550
16715
  }), parseHostObjectInto = (host, args, hostExprNode, compiler) => {
16551
16716
  const hostNode = getProperty(args, "host");
16552
- if (!hostNode || !ts13.isObjectLiteralExpression(hostNode)) {
16717
+ if (!hostNode || !ts14.isObjectLiteralExpression(hostNode)) {
16553
16718
  if (!hostExprNode)
16554
16719
  return;
16555
16720
  }
16556
- const obj = hostNode && ts13.isObjectLiteralExpression(hostNode) ? hostNode : hostExprNode;
16721
+ const obj = hostNode && ts14.isObjectLiteralExpression(hostNode) ? hostNode : hostExprNode;
16557
16722
  if (!obj)
16558
16723
  return;
16559
16724
  for (const prop of obj.properties) {
16560
- if (!ts13.isPropertyAssignment(prop))
16725
+ if (!ts14.isPropertyAssignment(prop))
16561
16726
  continue;
16562
16727
  const keyNode = prop.name;
16563
16728
  let key;
16564
- if (ts13.isStringLiteral(keyNode) || ts13.isNoSubstitutionTemplateLiteral(keyNode)) {
16729
+ if (ts14.isStringLiteral(keyNode) || ts14.isNoSubstitutionTemplateLiteral(keyNode)) {
16565
16730
  key = keyNode.text;
16566
- } else if (ts13.isIdentifier(keyNode)) {
16731
+ } else if (ts14.isIdentifier(keyNode)) {
16567
16732
  key = keyNode.text;
16568
16733
  } else {
16569
16734
  continue;
@@ -16580,36 +16745,36 @@ var fail = (reason, detail, location) => ({
16580
16745
  }
16581
16746
  }, mergeMemberHostDecorators = (host, cls) => {
16582
16747
  for (const member of cls.members) {
16583
- if (!ts13.canHaveDecorators(member))
16748
+ if (!ts14.canHaveDecorators(member))
16584
16749
  continue;
16585
- const decorators = ts13.getDecorators(member) ?? [];
16750
+ const decorators = ts14.getDecorators(member) ?? [];
16586
16751
  for (const dec of decorators) {
16587
16752
  const expr = dec.expression;
16588
- if (!ts13.isCallExpression(expr))
16753
+ if (!ts14.isCallExpression(expr))
16589
16754
  continue;
16590
16755
  const fn2 = expr.expression;
16591
- if (!ts13.isIdentifier(fn2))
16756
+ if (!ts14.isIdentifier(fn2))
16592
16757
  continue;
16593
16758
  if (fn2.text === "HostBinding") {
16594
- if (!ts13.isPropertyDeclaration(member) && !ts13.isGetAccessor(member))
16759
+ if (!ts14.isPropertyDeclaration(member) && !ts14.isGetAccessor(member))
16595
16760
  continue;
16596
16761
  const propertyName = member.name.text;
16597
16762
  const target = expr.arguments[0];
16598
- const key = target && ts13.isStringLiteral(target) ? target.text : propertyName;
16763
+ const key = target && ts14.isStringLiteral(target) ? target.text : propertyName;
16599
16764
  host.properties[key] = propertyName;
16600
16765
  } else if (fn2.text === "HostListener") {
16601
- if (!ts13.isMethodDeclaration(member))
16766
+ if (!ts14.isMethodDeclaration(member))
16602
16767
  continue;
16603
16768
  const methodName = member.name.text;
16604
16769
  const eventArg = expr.arguments[0];
16605
- if (!eventArg || !ts13.isStringLiteral(eventArg))
16770
+ if (!eventArg || !ts14.isStringLiteral(eventArg))
16606
16771
  continue;
16607
16772
  const event = eventArg.text;
16608
16773
  const argsArg = expr.arguments[1];
16609
16774
  let argsList = [];
16610
- if (argsArg && ts13.isArrayLiteralExpression(argsArg)) {
16775
+ if (argsArg && ts14.isArrayLiteralExpression(argsArg)) {
16611
16776
  for (const el of argsArg.elements) {
16612
- if (ts13.isStringLiteral(el))
16777
+ if (ts14.isStringLiteral(el))
16613
16778
  argsList.push(el.text);
16614
16779
  }
16615
16780
  }
@@ -16622,14 +16787,14 @@ var fail = (reason, detail, location) => ({
16622
16787
  let descendants = true;
16623
16788
  let emitDistinctChangesOnly = true;
16624
16789
  const opts = args[1];
16625
- if (opts && ts13.isObjectLiteralExpression(opts)) {
16790
+ if (opts && ts14.isObjectLiteralExpression(opts)) {
16626
16791
  static_ = getBooleanProperty(opts, "static") ?? false;
16627
16792
  descendants = getBooleanProperty(opts, "descendants") ?? true;
16628
16793
  emitDistinctChangesOnly = getBooleanProperty(opts, "emitDistinctChangesOnly") ?? true;
16629
16794
  }
16630
16795
  return { static_, descendants, emitDistinctChangesOnly };
16631
16796
  }, queryPredicateFromArg = (arg, compiler) => {
16632
- if (ts13.isStringLiteral(arg)) {
16797
+ if (ts14.isStringLiteral(arg)) {
16633
16798
  return arg.text.split(",").map((s2) => s2.trim()).filter(Boolean);
16634
16799
  }
16635
16800
  return {
@@ -16640,15 +16805,15 @@ var fail = (reason, detail, location) => ({
16640
16805
  const contentQueries = [];
16641
16806
  const viewQueries = [];
16642
16807
  for (const member of cls.members) {
16643
- if (!ts13.isPropertyDeclaration(member))
16808
+ if (!ts14.isPropertyDeclaration(member))
16644
16809
  continue;
16645
- const decorators = ts13.getDecorators(member) ?? [];
16810
+ const decorators = ts14.getDecorators(member) ?? [];
16646
16811
  for (const dec of decorators) {
16647
16812
  const expr = dec.expression;
16648
- if (!ts13.isCallExpression(expr))
16813
+ if (!ts14.isCallExpression(expr))
16649
16814
  continue;
16650
16815
  const fn2 = expr.expression;
16651
- if (!ts13.isIdentifier(fn2) || !QUERY_DECORATORS.has(fn2.text))
16816
+ if (!ts14.isIdentifier(fn2) || !QUERY_DECORATORS.has(fn2.text))
16652
16817
  continue;
16653
16818
  const propertyName = member.name.text;
16654
16819
  const tokenArg = expr.arguments[0];
@@ -16660,7 +16825,7 @@ var fail = (reason, detail, location) => ({
16660
16825
  const { static_, descendants, emitDistinctChangesOnly } = parseQueryDecoratorOptions(expr.arguments);
16661
16826
  const opts = expr.arguments[1];
16662
16827
  let read = null;
16663
- if (opts && ts13.isObjectLiteralExpression(opts)) {
16828
+ if (opts && ts14.isObjectLiteralExpression(opts)) {
16664
16829
  const readNode = getProperty(opts, "read");
16665
16830
  if (readNode) {
16666
16831
  read = new compiler.WrappedNodeExpr(readNode);
@@ -16688,15 +16853,15 @@ var fail = (reason, detail, location) => ({
16688
16853
  const contentQueries = [];
16689
16854
  const viewQueries = [];
16690
16855
  for (const member of cls.members) {
16691
- if (!ts13.isPropertyDeclaration(member) || !member.initializer)
16856
+ if (!ts14.isPropertyDeclaration(member) || !member.initializer)
16692
16857
  continue;
16693
16858
  let init = member.initializer;
16694
- if (!ts13.isCallExpression(init))
16859
+ if (!ts14.isCallExpression(init))
16695
16860
  continue;
16696
16861
  let queryName;
16697
- if (ts13.isIdentifier(init.expression)) {
16862
+ if (ts14.isIdentifier(init.expression)) {
16698
16863
  queryName = init.expression.text;
16699
- } else if (ts13.isPropertyAccessExpression(init.expression) && ts13.isIdentifier(init.expression.expression) && init.expression.name.text === "required") {
16864
+ } else if (ts14.isPropertyAccessExpression(init.expression) && ts14.isIdentifier(init.expression.expression) && init.expression.name.text === "required") {
16700
16865
  queryName = init.expression.expression.text;
16701
16866
  } else {
16702
16867
  continue;
@@ -16714,7 +16879,7 @@ var fail = (reason, detail, location) => ({
16714
16879
  let descendants = true;
16715
16880
  let read = null;
16716
16881
  const opts = init.arguments[1];
16717
- if (opts && ts13.isObjectLiteralExpression(opts)) {
16882
+ if (opts && ts14.isObjectLiteralExpression(opts)) {
16718
16883
  descendants = getBooleanProperty(opts, "descendants") ?? true;
16719
16884
  const readNode = getProperty(opts, "read");
16720
16885
  if (readNode)
@@ -16740,13 +16905,13 @@ var fail = (reason, detail, location) => ({
16740
16905
  const node = getProperty(args, "exportAs");
16741
16906
  if (!node)
16742
16907
  return null;
16743
- if (ts13.isStringLiteral(node)) {
16908
+ if (ts14.isStringLiteral(node)) {
16744
16909
  return node.text.split(",").map((s2) => s2.trim()).filter(Boolean);
16745
16910
  }
16746
- if (ts13.isArrayLiteralExpression(node)) {
16911
+ if (ts14.isArrayLiteralExpression(node)) {
16747
16912
  const out = [];
16748
16913
  for (const el of node.elements) {
16749
- if (ts13.isStringLiteral(el))
16914
+ if (ts14.isStringLiteral(el))
16750
16915
  out.push(el.text);
16751
16916
  }
16752
16917
  return out.length > 0 ? out : null;
@@ -16754,11 +16919,11 @@ var fail = (reason, detail, location) => ({
16754
16919
  return null;
16755
16920
  }, extractHostDirectives = (args, compiler) => {
16756
16921
  const node = getProperty(args, "hostDirectives");
16757
- if (!node || !ts13.isArrayLiteralExpression(node))
16922
+ if (!node || !ts14.isArrayLiteralExpression(node))
16758
16923
  return null;
16759
16924
  const out = [];
16760
16925
  for (const el of node.elements) {
16761
- if (ts13.isIdentifier(el)) {
16926
+ if (ts14.isIdentifier(el)) {
16762
16927
  out.push({
16763
16928
  directive: {
16764
16929
  value: new compiler.WrappedNodeExpr(el),
@@ -16770,7 +16935,7 @@ var fail = (reason, detail, location) => ({
16770
16935
  });
16771
16936
  continue;
16772
16937
  }
16773
- if (!ts13.isObjectLiteralExpression(el))
16938
+ if (!ts14.isObjectLiteralExpression(el))
16774
16939
  continue;
16775
16940
  const directiveNode = getProperty(el, "directive");
16776
16941
  if (!directiveNode)
@@ -16778,11 +16943,11 @@ var fail = (reason, detail, location) => ({
16778
16943
  const inputsNode = getProperty(el, "inputs");
16779
16944
  const outputsNode = getProperty(el, "outputs");
16780
16945
  const collectMap = (n) => {
16781
- if (!n || !ts13.isArrayLiteralExpression(n))
16946
+ if (!n || !ts14.isArrayLiteralExpression(n))
16782
16947
  return null;
16783
16948
  const map = {};
16784
16949
  for (const item of n.elements) {
16785
- if (!ts13.isStringLiteral(item))
16950
+ if (!ts14.isStringLiteral(item))
16786
16951
  continue;
16787
16952
  const [name, alias] = item.text.split(":").map((s2) => s2.trim());
16788
16953
  if (name)
@@ -16844,7 +17009,7 @@ var fail = (reason, detail, location) => ({
16844
17009
  return cached.info;
16845
17010
  let source;
16846
17011
  try {
16847
- source = readFileSync19(filePath, "utf-8");
17012
+ source = readFileSync20(filePath, "utf-8");
16848
17013
  } catch {
16849
17014
  childComponentInfoCache.set(cacheKey2, {
16850
17015
  info: null,
@@ -16852,10 +17017,10 @@ var fail = (reason, detail, location) => ({
16852
17017
  });
16853
17018
  return null;
16854
17019
  }
16855
- const sf = ts13.createSourceFile(filePath, source, ts13.ScriptTarget.Latest, true);
17020
+ const sf = ts14.createSourceFile(filePath, source, ts14.ScriptTarget.Latest, true);
16856
17021
  let info = null;
16857
17022
  for (const stmt of sf.statements) {
16858
- if (!ts13.isClassDeclaration(stmt))
17023
+ if (!ts14.isClassDeclaration(stmt))
16859
17024
  continue;
16860
17025
  if (!stmt.name || stmt.name.text !== className)
16861
17026
  continue;
@@ -16898,7 +17063,7 @@ var fail = (reason, detail, location) => ({
16898
17063
  return cached.info;
16899
17064
  let content;
16900
17065
  try {
16901
- content = readFileSync19(dtsPath, "utf-8");
17066
+ content = readFileSync20(dtsPath, "utf-8");
16902
17067
  } catch {
16903
17068
  childComponentInfoCache.set(cacheKey2, {
16904
17069
  info: null,
@@ -16990,9 +17155,9 @@ var fail = (reason, detail, location) => ({
16990
17155
  }, buildClassToSpecMap = (sourceFile) => {
16991
17156
  const result = new Map;
16992
17157
  for (const stmt of sourceFile.statements) {
16993
- if (!ts13.isImportDeclaration(stmt))
17158
+ if (!ts14.isImportDeclaration(stmt))
16994
17159
  continue;
16995
- if (!ts13.isStringLiteral(stmt.moduleSpecifier))
17160
+ if (!ts14.isStringLiteral(stmt.moduleSpecifier))
16996
17161
  continue;
16997
17162
  const spec = stmt.moduleSpecifier.text;
16998
17163
  const clause = stmt.importClause;
@@ -17001,7 +17166,7 @@ var fail = (reason, detail, location) => ({
17001
17166
  if (clause.name)
17002
17167
  result.set(clause.name.text, spec);
17003
17168
  const named = clause.namedBindings;
17004
- if (named && ts13.isNamedImports(named)) {
17169
+ if (named && ts14.isNamedImports(named)) {
17005
17170
  for (const el of named.elements) {
17006
17171
  if (el.isTypeOnly)
17007
17172
  continue;
@@ -17018,7 +17183,7 @@ var fail = (reason, detail, location) => ({
17018
17183
  return null;
17019
17184
  let content;
17020
17185
  try {
17021
- content = readFileSync19(startDtsPath, "utf-8");
17186
+ content = readFileSync20(startDtsPath, "utf-8");
17022
17187
  } catch {
17023
17188
  return null;
17024
17189
  }
@@ -17114,7 +17279,7 @@ var fail = (reason, detail, location) => ({
17114
17279
  return result;
17115
17280
  const classToSpec = buildClassToSpecMap(sourceFile);
17116
17281
  for (const el of importsExpr.elements) {
17117
- if (!ts13.isIdentifier(el))
17282
+ if (!ts14.isIdentifier(el))
17118
17283
  continue;
17119
17284
  const className = el.text;
17120
17285
  const spec = classToSpec.get(className);
@@ -17133,35 +17298,35 @@ var fail = (reason, detail, location) => ({
17133
17298
  }
17134
17299
  return (h2 >>> 0).toString(36);
17135
17300
  }, initializerShapeIsStructural = (node) => {
17136
- if (ts13.isArrowFunction(node) || ts13.isFunctionExpression(node) || ts13.isCallExpression(node) || ts13.isNewExpression(node)) {
17301
+ if (ts14.isArrowFunction(node) || ts14.isFunctionExpression(node) || ts14.isCallExpression(node) || ts14.isNewExpression(node)) {
17137
17302
  return true;
17138
17303
  }
17139
- if (ts13.isConditionalExpression(node)) {
17304
+ if (ts14.isConditionalExpression(node)) {
17140
17305
  return initializerShapeIsStructural(node.whenTrue) || initializerShapeIsStructural(node.whenFalse);
17141
17306
  }
17142
- if (ts13.isParenthesizedExpression(node)) {
17307
+ if (ts14.isParenthesizedExpression(node)) {
17143
17308
  return initializerShapeIsStructural(node.expression);
17144
17309
  }
17145
- if (ts13.isAsExpression(node) || ts13.isTypeAssertionExpression(node)) {
17310
+ if (ts14.isAsExpression(node) || ts14.isTypeAssertionExpression(node)) {
17146
17311
  return initializerShapeIsStructural(node.expression);
17147
17312
  }
17148
- if (ts13.isNonNullExpression(node)) {
17313
+ if (ts14.isNonNullExpression(node)) {
17149
17314
  return initializerShapeIsStructural(node.expression);
17150
17315
  }
17151
- if (ts13.isObjectLiteralExpression(node)) {
17316
+ if (ts14.isObjectLiteralExpression(node)) {
17152
17317
  for (const prop of node.properties) {
17153
- if (ts13.isPropertyAssignment(prop) && initializerShapeIsStructural(prop.initializer)) {
17318
+ if (ts14.isPropertyAssignment(prop) && initializerShapeIsStructural(prop.initializer)) {
17154
17319
  return true;
17155
17320
  }
17156
- if (ts13.isShorthandPropertyAssignment(prop))
17321
+ if (ts14.isShorthandPropertyAssignment(prop))
17157
17322
  continue;
17158
- if (ts13.isSpreadAssignment(prop) && initializerShapeIsStructural(prop.expression)) {
17323
+ if (ts14.isSpreadAssignment(prop) && initializerShapeIsStructural(prop.expression)) {
17159
17324
  return true;
17160
17325
  }
17161
17326
  }
17162
17327
  return false;
17163
17328
  }
17164
- if (ts13.isArrayLiteralExpression(node)) {
17329
+ if (ts14.isArrayLiteralExpression(node)) {
17165
17330
  for (const el of node.elements) {
17166
17331
  if (initializerShapeIsStructural(el))
17167
17332
  return true;
@@ -17172,7 +17337,7 @@ var fail = (reason, detail, location) => ({
17172
17337
  }, extractArrowFieldSig = (cls) => {
17173
17338
  const entries = [];
17174
17339
  for (const member of cls.members) {
17175
- if (!ts13.isPropertyDeclaration(member))
17340
+ if (!ts14.isPropertyDeclaration(member))
17176
17341
  continue;
17177
17342
  const init = member.initializer;
17178
17343
  if (!init)
@@ -17182,12 +17347,12 @@ var fail = (reason, detail, location) => ({
17182
17347
  const name = member.name.getText();
17183
17348
  let bodyText;
17184
17349
  try {
17185
- const printer = ts13.createPrinter({
17186
- newLine: ts13.NewLineKind.LineFeed,
17350
+ const printer = ts14.createPrinter({
17351
+ newLine: ts14.NewLineKind.LineFeed,
17187
17352
  omitTrailingSemicolon: true,
17188
17353
  removeComments: true
17189
17354
  });
17190
- bodyText = printer.printNode(ts13.EmitHint.Unspecified, init, cls.getSourceFile());
17355
+ bodyText = printer.printNode(ts14.EmitHint.Unspecified, init, cls.getSourceFile());
17191
17356
  } catch {
17192
17357
  bodyText = init.getText();
17193
17358
  }
@@ -17198,9 +17363,9 @@ var fail = (reason, detail, location) => ({
17198
17363
  }, INPUT_OUTPUT_DECORATORS, extractMemberDecoratorSig = (cls) => {
17199
17364
  const entries = [];
17200
17365
  for (const member of cls.members) {
17201
- if (!ts13.canHaveDecorators(member))
17366
+ if (!ts14.canHaveDecorators(member))
17202
17367
  continue;
17203
- const decorators = ts13.getDecorators(member) ?? [];
17368
+ const decorators = ts14.getDecorators(member) ?? [];
17204
17369
  if (decorators.length === 0)
17205
17370
  continue;
17206
17371
  const memberName = member.name?.getText() ?? "<anon>";
@@ -17208,14 +17373,14 @@ var fail = (reason, detail, location) => ({
17208
17373
  const expr = decorator.expression;
17209
17374
  let decName = "<unknown>";
17210
17375
  let argText = "";
17211
- if (ts13.isCallExpression(expr)) {
17212
- if (ts13.isIdentifier(expr.expression)) {
17376
+ if (ts14.isCallExpression(expr)) {
17377
+ if (ts14.isIdentifier(expr.expression)) {
17213
17378
  decName = expr.expression.text;
17214
17379
  }
17215
17380
  if (expr.arguments.length > 0) {
17216
17381
  argText = expr.arguments.map((a) => a.getText()).join(",");
17217
17382
  }
17218
- } else if (ts13.isIdentifier(expr)) {
17383
+ } else if (ts14.isIdentifier(expr)) {
17219
17384
  decName = expr.text;
17220
17385
  }
17221
17386
  if (INPUT_OUTPUT_DECORATORS.has(decName))
@@ -17236,22 +17401,22 @@ var fail = (reason, detail, location) => ({
17236
17401
  return cached.hasProviders;
17237
17402
  let source;
17238
17403
  try {
17239
- source = readFileSync19(filePath, "utf8");
17404
+ source = readFileSync20(filePath, "utf8");
17240
17405
  } catch {
17241
17406
  return true;
17242
17407
  }
17243
- const sf = ts13.createSourceFile(filePath, source, ts13.ScriptTarget.ES2022, true, ts13.ScriptKind.TS);
17408
+ const sf = ts14.createSourceFile(filePath, source, ts14.ScriptTarget.ES2022, true, ts14.ScriptKind.TS);
17244
17409
  let hasProviders = false;
17245
17410
  const visit = (node) => {
17246
17411
  if (hasProviders)
17247
17412
  return;
17248
- if (ts13.isClassDeclaration(node)) {
17249
- for (const decorator of ts13.getDecorators(node) ?? []) {
17413
+ if (ts14.isClassDeclaration(node)) {
17414
+ for (const decorator of ts14.getDecorators(node) ?? []) {
17250
17415
  const expr = decorator.expression;
17251
- if (!ts13.isCallExpression(expr))
17416
+ if (!ts14.isCallExpression(expr))
17252
17417
  continue;
17253
17418
  const arg = expr.arguments[0];
17254
- if (!arg || !ts13.isObjectLiteralExpression(arg))
17419
+ if (!arg || !ts14.isObjectLiteralExpression(arg))
17255
17420
  continue;
17256
17421
  if (getProperty(arg, "providers") !== null) {
17257
17422
  hasProviders = true;
@@ -17259,7 +17424,7 @@ var fail = (reason, detail, location) => ({
17259
17424
  }
17260
17425
  }
17261
17426
  }
17262
- ts13.forEachChild(node, visit);
17427
+ ts14.forEachChild(node, visit);
17263
17428
  };
17264
17429
  visit(sf);
17265
17430
  providerProbeCache.set(filePath, {
@@ -17269,10 +17434,10 @@ var fail = (reason, detail, location) => ({
17269
17434
  return hasProviders;
17270
17435
  }, TS_EXTENSIONS, resolveImportSource = (identifierName, sourceFile, componentDir) => {
17271
17436
  for (const stmt of sourceFile.statements) {
17272
- if (!ts13.isImportDeclaration(stmt))
17437
+ if (!ts14.isImportDeclaration(stmt))
17273
17438
  continue;
17274
17439
  const moduleSpec = stmt.moduleSpecifier;
17275
- if (!ts13.isStringLiteral(moduleSpec))
17440
+ if (!ts14.isStringLiteral(moduleSpec))
17276
17441
  continue;
17277
17442
  const spec = moduleSpec.text;
17278
17443
  if (!spec.startsWith(".") && !spec.startsWith("/"))
@@ -17286,7 +17451,7 @@ var fail = (reason, detail, location) => ({
17286
17451
  }
17287
17452
  if (importClause.namedBindings) {
17288
17453
  const nb = importClause.namedBindings;
17289
- if (ts13.isNamespaceImport(nb)) {
17454
+ if (ts14.isNamespaceImport(nb)) {
17290
17455
  if (nb.name.text === identifierName)
17291
17456
  matches = true;
17292
17457
  } else {
@@ -17316,7 +17481,7 @@ var fail = (reason, detail, location) => ({
17316
17481
  return [];
17317
17482
  const sig = [];
17318
17483
  for (const entry of importsExpr.elements) {
17319
- if (ts13.isIdentifier(entry)) {
17484
+ if (ts14.isIdentifier(entry)) {
17320
17485
  const importPath = resolveImportSource(entry.text, sourceFile, componentDir);
17321
17486
  if (importPath) {
17322
17487
  if (fileHasModuleProviders(importPath)) {
@@ -17335,13 +17500,13 @@ var fail = (reason, detail, location) => ({
17335
17500
  }, extractPropertyFieldNames = (cls) => {
17336
17501
  const names = [];
17337
17502
  for (const member of cls.members) {
17338
- if (!ts13.isPropertyDeclaration(member) && !ts13.isMethodDeclaration(member) && !ts13.isGetAccessorDeclaration(member) && !ts13.isSetAccessorDeclaration(member)) {
17503
+ if (!ts14.isPropertyDeclaration(member) && !ts14.isMethodDeclaration(member) && !ts14.isGetAccessorDeclaration(member) && !ts14.isSetAccessorDeclaration(member)) {
17339
17504
  continue;
17340
17505
  }
17341
17506
  const name = member.name;
17342
17507
  if (name === undefined)
17343
17508
  continue;
17344
- const text = ts13.isIdentifier(name) ? name.text : ts13.isStringLiteral(name) || ts13.isNoSubstitutionTemplateLiteral(name) ? name.text : name.getText();
17509
+ const text = ts14.isIdentifier(name) ? name.text : ts14.isStringLiteral(name) || ts14.isNoSubstitutionTemplateLiteral(name) ? name.text : name.getText();
17345
17510
  if (text.length > 0)
17346
17511
  names.push(text);
17347
17512
  }
@@ -17349,7 +17514,7 @@ var fail = (reason, detail, location) => ({
17349
17514
  }, extractTopLevelImports = (sourceFile) => {
17350
17515
  const names = new Set;
17351
17516
  for (const stmt of sourceFile.statements) {
17352
- if (!ts13.isImportDeclaration(stmt))
17517
+ if (!ts14.isImportDeclaration(stmt))
17353
17518
  continue;
17354
17519
  const clause = stmt.importClause;
17355
17520
  if (!clause)
@@ -17361,9 +17526,9 @@ var fail = (reason, detail, location) => ({
17361
17526
  const bindings = clause.namedBindings;
17362
17527
  if (!bindings)
17363
17528
  continue;
17364
- if (ts13.isNamespaceImport(bindings)) {
17529
+ if (ts14.isNamespaceImport(bindings)) {
17365
17530
  names.add(bindings.name.text);
17366
- } else if (ts13.isNamedImports(bindings)) {
17531
+ } else if (ts14.isNamedImports(bindings)) {
17367
17532
  for (const el of bindings.elements) {
17368
17533
  if (el.isTypeOnly)
17369
17534
  continue;
@@ -17375,18 +17540,18 @@ var fail = (reason, detail, location) => ({
17375
17540
  }, extractFingerprint = (cls, className, decoratorMeta, inputs, outputs, sourceFile, componentDir) => {
17376
17541
  const ctorParamTypes = [];
17377
17542
  for (const member of cls.members) {
17378
- if (!ts13.isConstructorDeclaration(member))
17543
+ if (!ts14.isConstructorDeclaration(member))
17379
17544
  continue;
17380
17545
  for (const param of member.parameters) {
17381
17546
  const typeText = param.type ? param.type.getText() : "";
17382
- const decorators = ts13.getDecorators(param) ?? [];
17547
+ const decorators = ts14.getDecorators(param) ?? [];
17383
17548
  const decoratorSig = decorators.length === 0 ? "" : decorators.map((d2) => {
17384
17549
  const expr = d2.expression;
17385
- if (ts13.isCallExpression(expr) && ts13.isIdentifier(expr.expression)) {
17550
+ if (ts14.isCallExpression(expr) && ts14.isIdentifier(expr.expression)) {
17386
17551
  const args = expr.arguments.map((a) => a.getText()).join(",");
17387
17552
  return `@${expr.expression.text}(${args})`;
17388
17553
  }
17389
- if (ts13.isIdentifier(expr)) {
17554
+ if (ts14.isIdentifier(expr)) {
17390
17555
  return `@${expr.text}`;
17391
17556
  }
17392
17557
  return "@<unknown>";
@@ -17402,12 +17567,12 @@ var fail = (reason, detail, location) => ({
17402
17567
  const providerImportSig = extractProviderImportSig(decoratorMeta.importsExpr, sourceFile, componentDir);
17403
17568
  const topLevelImports = extractTopLevelImports(sourceFile);
17404
17569
  const propertyFieldNames = extractPropertyFieldNames(cls);
17405
- const printer = ts13.createPrinter({
17406
- newLine: ts13.NewLineKind.LineFeed,
17570
+ const printer = ts14.createPrinter({
17571
+ newLine: ts14.NewLineKind.LineFeed,
17407
17572
  omitTrailingSemicolon: true,
17408
17573
  removeComments: true
17409
17574
  });
17410
- const canonicalText = (node) => printer.printNode(ts13.EmitHint.Unspecified, node, sourceFile);
17575
+ const canonicalText = (node) => printer.printNode(ts14.EmitHint.Unspecified, node, sourceFile);
17411
17576
  const importsArraySig = decoratorMeta.importsExpr ? djb2Hash(canonicalText(decoratorMeta.importsExpr)) : "";
17412
17577
  const hostDirectivesSig = decoratorMeta.hostDirectivesExpr ? djb2Hash(canonicalText(decoratorMeta.hostDirectivesExpr)) : "";
17413
17578
  const animationsArraySig = decoratorMeta.animationsExpr ? djb2Hash(canonicalText(decoratorMeta.animationsExpr)) : "";
@@ -17420,13 +17585,13 @@ var fail = (reason, detail, location) => ({
17420
17585
  const PAGE_EXPORT_NAMES = new Set(["providers", "routes"]);
17421
17586
  const pageExportEntries = [];
17422
17587
  for (const stmt of sourceFile.statements) {
17423
- if (!ts13.isVariableStatement(stmt))
17588
+ if (!ts14.isVariableStatement(stmt))
17424
17589
  continue;
17425
- const isExported = stmt.modifiers?.some((m) => m.kind === ts13.SyntaxKind.ExportKeyword);
17590
+ const isExported = stmt.modifiers?.some((m) => m.kind === ts14.SyntaxKind.ExportKeyword);
17426
17591
  if (!isExported)
17427
17592
  continue;
17428
17593
  for (const decl of stmt.declarationList.declarations) {
17429
- if (!ts13.isIdentifier(decl.name))
17594
+ if (!ts14.isIdentifier(decl.name))
17430
17595
  continue;
17431
17596
  if (!PAGE_EXPORT_NAMES.has(decl.name.text))
17432
17597
  continue;
@@ -17467,35 +17632,35 @@ var fail = (reason, detail, location) => ({
17467
17632
  }, buildFreshClassMethodsBlock = (classNode, className) => {
17468
17633
  const memberSources = [];
17469
17634
  let hasStatic = false;
17470
- const printer = ts13.createPrinter({ removeComments: true });
17635
+ const printer = ts14.createPrinter({ removeComments: true });
17471
17636
  for (const member of classNode.members) {
17472
- if (ts13.isPropertyDeclaration(member)) {
17473
- const modifiers = (ts13.getModifiers(member) ?? []).filter((m) => m.kind !== ts13.SyntaxKind.PrivateKeyword && m.kind !== ts13.SyntaxKind.PublicKeyword && m.kind !== ts13.SyntaxKind.ProtectedKeyword && m.kind !== ts13.SyntaxKind.ReadonlyKeyword && m.kind !== ts13.SyntaxKind.OverrideKeyword);
17474
- const cleaned = ts13.factory.createPropertyDeclaration(modifiers, member.name, undefined, undefined, member.initializer);
17475
- memberSources.push(printer.printNode(ts13.EmitHint.Unspecified, cleaned, classNode.getSourceFile()));
17637
+ if (ts14.isPropertyDeclaration(member)) {
17638
+ const modifiers = (ts14.getModifiers(member) ?? []).filter((m) => m.kind !== ts14.SyntaxKind.PrivateKeyword && m.kind !== ts14.SyntaxKind.PublicKeyword && m.kind !== ts14.SyntaxKind.ProtectedKeyword && m.kind !== ts14.SyntaxKind.ReadonlyKeyword && m.kind !== ts14.SyntaxKind.OverrideKeyword);
17639
+ const cleaned = ts14.factory.createPropertyDeclaration(modifiers, member.name, undefined, undefined, member.initializer);
17640
+ memberSources.push(printer.printNode(ts14.EmitHint.Unspecified, cleaned, classNode.getSourceFile()));
17476
17641
  continue;
17477
17642
  }
17478
- if (ts13.isConstructorDeclaration(member)) {
17479
- const cleanedParams = member.parameters.map((param) => ts13.factory.updateParameterDeclaration(param, (ts13.getModifiers(param) ?? []).filter((m) => m.kind !== ts13.SyntaxKind.PrivateKeyword && m.kind !== ts13.SyntaxKind.PublicKeyword && m.kind !== ts13.SyntaxKind.ProtectedKeyword && m.kind !== ts13.SyntaxKind.ReadonlyKeyword && m.kind !== ts13.SyntaxKind.OverrideKeyword), param.dotDotDotToken, param.name, param.questionToken, param.type, param.initializer));
17480
- const cleaned = ts13.factory.createConstructorDeclaration([], cleanedParams, member.body);
17481
- memberSources.push(printer.printNode(ts13.EmitHint.Unspecified, cleaned, classNode.getSourceFile()));
17643
+ if (ts14.isConstructorDeclaration(member)) {
17644
+ const cleanedParams = member.parameters.map((param) => ts14.factory.updateParameterDeclaration(param, (ts14.getModifiers(param) ?? []).filter((m) => m.kind !== ts14.SyntaxKind.PrivateKeyword && m.kind !== ts14.SyntaxKind.PublicKeyword && m.kind !== ts14.SyntaxKind.ProtectedKeyword && m.kind !== ts14.SyntaxKind.ReadonlyKeyword && m.kind !== ts14.SyntaxKind.OverrideKeyword), param.dotDotDotToken, param.name, param.questionToken, param.type, param.initializer));
17645
+ const cleaned = ts14.factory.createConstructorDeclaration([], cleanedParams, member.body);
17646
+ memberSources.push(printer.printNode(ts14.EmitHint.Unspecified, cleaned, classNode.getSourceFile()));
17482
17647
  continue;
17483
17648
  }
17484
- if (ts13.isMethodDeclaration(member) || ts13.isGetAccessorDeclaration(member) || ts13.isSetAccessorDeclaration(member)) {
17485
- const modifiers = ts13.getModifiers(member) ?? [];
17486
- const isStatic = modifiers.some((m) => m.kind === ts13.SyntaxKind.StaticKeyword);
17649
+ if (ts14.isMethodDeclaration(member) || ts14.isGetAccessorDeclaration(member) || ts14.isSetAccessorDeclaration(member)) {
17650
+ const modifiers = ts14.getModifiers(member) ?? [];
17651
+ const isStatic = modifiers.some((m) => m.kind === ts14.SyntaxKind.StaticKeyword);
17487
17652
  if (isStatic)
17488
17653
  hasStatic = true;
17489
- const cleanedParams = member.parameters.map((param) => ts13.factory.updateParameterDeclaration(param, ts13.getModifiers(param) ?? [], param.dotDotDotToken, param.name, param.questionToken, param.type, param.initializer));
17654
+ const cleanedParams = member.parameters.map((param) => ts14.factory.updateParameterDeclaration(param, ts14.getModifiers(param) ?? [], param.dotDotDotToken, param.name, param.questionToken, param.type, param.initializer));
17490
17655
  let cleaned;
17491
- if (ts13.isMethodDeclaration(member)) {
17492
- cleaned = ts13.factory.createMethodDeclaration(modifiers, member.asteriskToken, member.name, member.questionToken, member.typeParameters, cleanedParams, member.type, member.body);
17493
- } else if (ts13.isGetAccessorDeclaration(member)) {
17494
- cleaned = ts13.factory.createGetAccessorDeclaration(modifiers, member.name, cleanedParams, member.type, member.body);
17656
+ if (ts14.isMethodDeclaration(member)) {
17657
+ cleaned = ts14.factory.createMethodDeclaration(modifiers, member.asteriskToken, member.name, member.questionToken, member.typeParameters, cleanedParams, member.type, member.body);
17658
+ } else if (ts14.isGetAccessorDeclaration(member)) {
17659
+ cleaned = ts14.factory.createGetAccessorDeclaration(modifiers, member.name, cleanedParams, member.type, member.body);
17495
17660
  } else {
17496
- cleaned = ts13.factory.createSetAccessorDeclaration(modifiers, member.name, cleanedParams, member.body);
17661
+ cleaned = ts14.factory.createSetAccessorDeclaration(modifiers, member.name, cleanedParams, member.body);
17497
17662
  }
17498
- const printed = printer.printNode(ts13.EmitHint.Unspecified, cleaned, classNode.getSourceFile());
17663
+ const printed = printer.printNode(ts14.EmitHint.Unspecified, cleaned, classNode.getSourceFile());
17499
17664
  memberSources.push(printed);
17500
17665
  }
17501
17666
  }
@@ -17507,10 +17672,10 @@ ${memberSources.join(`
17507
17672
  }`;
17508
17673
  let transpiled;
17509
17674
  try {
17510
- transpiled = ts13.transpileModule(wrappedSource, {
17675
+ transpiled = ts14.transpileModule(wrappedSource, {
17511
17676
  compilerOptions: {
17512
- module: ts13.ModuleKind.ES2022,
17513
- target: ts13.ScriptTarget.ES2022
17677
+ module: ts14.ModuleKind.ES2022,
17678
+ target: ts14.ScriptTarget.ES2022
17514
17679
  },
17515
17680
  reportDiagnostics: false
17516
17681
  }).outputText;
@@ -17544,7 +17709,7 @@ ${transpiled}
17544
17709
  return null;
17545
17710
  const ext = extname6(abs).toLowerCase();
17546
17711
  if (!STYLE_PREPROCESSED_EXT.has(ext) || ext === ".css") {
17547
- return readFileSync19(abs, "utf8");
17712
+ return readFileSync20(abs, "utf8");
17548
17713
  }
17549
17714
  try {
17550
17715
  const { compileStyleFileIfNeededSync: compileStyleFileIfNeededSync2 } = (init_stylePreprocessor(), __toCommonJS(exports_stylePreprocessor));
@@ -17583,8 +17748,8 @@ ${block}
17583
17748
  const opts = {};
17584
17749
  if (existsSync24(tsconfigPath)) {
17585
17750
  try {
17586
- const text = readFileSync19(tsconfigPath, "utf8");
17587
- const parsed = ts13.parseConfigFileTextToJson(tsconfigPath, text);
17751
+ const text = readFileSync20(tsconfigPath, "utf8");
17752
+ const parsed = ts14.parseConfigFileTextToJson(tsconfigPath, text);
17588
17753
  if (!parsed.error && parsed.config) {
17589
17754
  const cfg = parsed.config;
17590
17755
  const ang = cfg.angularCompilerOptions ?? {};
@@ -17617,8 +17782,8 @@ ${block}
17617
17782
  } catch (err) {
17618
17783
  return fail("unexpected-error", `import @angular/compiler: ${err}`);
17619
17784
  }
17620
- const tsSource = readFileSync19(componentFilePath, "utf8");
17621
- const sourceFile = ts13.createSourceFile(componentFilePath, tsSource, ts13.ScriptTarget.ES2022, true, ts13.ScriptKind.TS);
17785
+ const tsSource = readFileSync20(componentFilePath, "utf8");
17786
+ const sourceFile = ts14.createSourceFile(componentFilePath, tsSource, ts14.ScriptTarget.ES2022, true, ts14.ScriptKind.TS);
17622
17787
  const classNode = findClassDeclaration(sourceFile, className);
17623
17788
  if (!classNode) {
17624
17789
  return fail("class-not-found", `${className} in ${componentFilePath}`);
@@ -17667,7 +17832,7 @@ ${block}
17667
17832
  if (!existsSync24(tplAbs)) {
17668
17833
  return fail("template-resource-not-found", `Template file not found: ${tplAbs}`, { file: componentFilePath });
17669
17834
  }
17670
- templateText = readFileSync19(tplAbs, "utf8");
17835
+ templateText = readFileSync20(tplAbs, "utf8");
17671
17836
  templatePath = tplAbs;
17672
17837
  } else {
17673
17838
  return fail("unsupported-decorator-args", "missing template/templateUrl");
@@ -17738,7 +17903,7 @@ ${block}
17738
17903
  viewQueries: advancedMetadata.viewQueries,
17739
17904
  host: advancedMetadata.host,
17740
17905
  lifecycle: {
17741
- usesOnChanges: classNode.members.some((m) => ts13.isMethodDeclaration(m) && m.name !== undefined && ts13.isIdentifier(m.name) && m.name.text === "ngOnChanges")
17906
+ usesOnChanges: classNode.members.some((m) => ts14.isMethodDeclaration(m) && m.name !== undefined && ts14.isIdentifier(m.name) && m.name.text === "ngOnChanges")
17742
17907
  },
17743
17908
  inputs,
17744
17909
  outputs,
@@ -17794,15 +17959,15 @@ ${block}
17794
17959
  }
17795
17960
  const importGenerator = createHmrImportGenerator(namespaceMap);
17796
17961
  const tsFunctionDecl = translateStatement(sourceFile, callback, importGenerator);
17797
- const exportedDecl = ts13.factory.updateFunctionDeclaration(tsFunctionDecl, [
17798
- ts13.factory.createToken(ts13.SyntaxKind.ExportKeyword),
17799
- ts13.factory.createToken(ts13.SyntaxKind.DefaultKeyword)
17962
+ const exportedDecl = ts14.factory.updateFunctionDeclaration(tsFunctionDecl, [
17963
+ ts14.factory.createToken(ts14.SyntaxKind.ExportKeyword),
17964
+ ts14.factory.createToken(ts14.SyntaxKind.DefaultKeyword)
17800
17965
  ], tsFunctionDecl.asteriskToken, tsFunctionDecl.name, tsFunctionDecl.typeParameters, tsFunctionDecl.parameters, tsFunctionDecl.type, tsFunctionDecl.body);
17801
- const printer = ts13.createPrinter({
17802
- newLine: ts13.NewLineKind.LineFeed,
17966
+ const printer = ts14.createPrinter({
17967
+ newLine: ts14.NewLineKind.LineFeed,
17803
17968
  removeComments: false
17804
17969
  });
17805
- const fnText = printer.printNode(ts13.EmitHint.Unspecified, exportedDecl, sourceFile);
17970
+ const fnText = printer.printNode(ts14.EmitHint.Unspecified, exportedDecl, sourceFile);
17806
17971
  const provisionalMethodsBlock = buildFreshClassMethodsBlock(classNode, className) ?? "";
17807
17972
  const referencedNames = new Set;
17808
17973
  const identRe = /[A-Za-z_$][A-Za-z0-9_$]*/g;
@@ -17812,33 +17977,33 @@ ${block}
17812
17977
  }
17813
17978
  const sourceScopeNames = new Set;
17814
17979
  for (const stmt of sourceFile.statements) {
17815
- if (ts13.isImportDeclaration(stmt)) {
17816
- if (!ts13.isStringLiteral(stmt.moduleSpecifier))
17980
+ if (ts14.isImportDeclaration(stmt)) {
17981
+ if (!ts14.isStringLiteral(stmt.moduleSpecifier))
17817
17982
  continue;
17818
17983
  const clause = stmt.importClause;
17819
17984
  if (clause?.name)
17820
17985
  sourceScopeNames.add(clause.name.text);
17821
- if (clause?.namedBindings && ts13.isNamedImports(clause.namedBindings)) {
17986
+ if (clause?.namedBindings && ts14.isNamedImports(clause.namedBindings)) {
17822
17987
  for (const el of clause.namedBindings.elements) {
17823
17988
  if (el.isTypeOnly)
17824
17989
  continue;
17825
17990
  sourceScopeNames.add(el.name.text);
17826
17991
  }
17827
- } else if (clause?.namedBindings && ts13.isNamespaceImport(clause.namedBindings)) {
17992
+ } else if (clause?.namedBindings && ts14.isNamespaceImport(clause.namedBindings)) {
17828
17993
  sourceScopeNames.add(clause.namedBindings.name.text);
17829
17994
  }
17830
17995
  continue;
17831
17996
  }
17832
- if (ts13.isVariableStatement(stmt) || stmt.kind === ts13.SyntaxKind.VariableStatement) {
17997
+ if (ts14.isVariableStatement(stmt) || stmt.kind === ts14.SyntaxKind.VariableStatement) {
17833
17998
  const varStmt = stmt;
17834
17999
  for (const decl of varStmt.declarationList.declarations) {
17835
- if (ts13.isIdentifier(decl.name)) {
18000
+ if (ts14.isIdentifier(decl.name)) {
17836
18001
  sourceScopeNames.add(decl.name.text);
17837
18002
  }
17838
18003
  }
17839
18004
  continue;
17840
18005
  }
17841
- if (ts13.isFunctionDeclaration(stmt) || ts13.isClassDeclaration(stmt)) {
18006
+ if (ts14.isFunctionDeclaration(stmt) || ts14.isClassDeclaration(stmt)) {
17842
18007
  if (stmt.name)
17843
18008
  sourceScopeNames.add(stmt.name.text);
17844
18009
  }
@@ -17849,7 +18014,7 @@ ${block}
17849
18014
  }
17850
18015
  const allImportedNames = new Set;
17851
18016
  for (const stmt of sourceFile.statements) {
17852
- if (!ts13.isImportDeclaration(stmt))
18017
+ if (!ts14.isImportDeclaration(stmt))
17853
18018
  continue;
17854
18019
  const clause = stmt.importClause;
17855
18020
  if (!clause || clause.isTypeOnly)
@@ -17859,7 +18024,7 @@ ${block}
17859
18024
  const bindings = clause.namedBindings;
17860
18025
  if (!bindings)
17861
18026
  continue;
17862
- if (ts13.isNamespaceImport(bindings)) {
18027
+ if (ts14.isNamespaceImport(bindings)) {
17863
18028
  allImportedNames.add(bindings.name.text);
17864
18029
  } else {
17865
18030
  for (const el of bindings.elements) {
@@ -17871,10 +18036,10 @@ ${block}
17871
18036
  }
17872
18037
  const depsToDestructure = [...sourceScopeNames].filter((n) => referencedNames.has(n) || allImportedNames.has(n));
17873
18038
  const tsSourceText = fnText;
17874
- const transpiled = ts13.transpileModule(tsSourceText, {
18039
+ const transpiled = ts14.transpileModule(tsSourceText, {
17875
18040
  compilerOptions: {
17876
- module: ts13.ModuleKind.ES2022,
17877
- target: ts13.ScriptTarget.ES2022
18041
+ module: ts14.ModuleKind.ES2022,
18042
+ target: ts14.ScriptTarget.ES2022
17878
18043
  },
17879
18044
  fileName: componentFilePath,
17880
18045
  reportDiagnostics: false
@@ -18426,7 +18591,7 @@ __export(exports_compileEmber, {
18426
18591
  });
18427
18592
  import { existsSync as existsSync25 } from "fs";
18428
18593
  import { mkdir as mkdir6, rm as rm4 } from "fs/promises";
18429
- import { basename as basename10, dirname as dirname18, extname as extname7, join as join29, resolve as resolve26 } from "path";
18594
+ import { basename as basename10, dirname as dirname18, extname as extname7, join as join30, resolve as resolve26 } from "path";
18430
18595
  var {build: bunBuild2, Transpiler: Transpiler4, write: write4, file: file4 } = globalThis.Bun;
18431
18596
  var cachedPreprocessor = null, getPreprocessor = async () => {
18432
18597
  if (cachedPreprocessor)
@@ -18545,7 +18710,7 @@ export const importSync = (specifier) => {
18545
18710
  build2.onResolve({ filter: /^@(?:ember|glimmer|simple-dom)\// }, (args) => {
18546
18711
  if (standalonePackages.has(args.path))
18547
18712
  return;
18548
- const internal = join29(cwd, "node_modules/ember-source/dist/packages", args.path, "index.js");
18713
+ const internal = join30(cwd, "node_modules/ember-source/dist/packages", args.path, "index.js");
18549
18714
  if (existsSync25(internal))
18550
18715
  return { path: internal };
18551
18716
  return;
@@ -18593,16 +18758,16 @@ export default PageComponent;
18593
18758
  }
18594
18759
  const transpiled = transpiler5.transformSync(preprocessed);
18595
18760
  const baseName = basename10(resolvedEntry).replace(/\.(gjs|gts|ts|js)$/, "");
18596
- const tmpDir = join29(compiledRoot, "_tmp");
18597
- const serverDir = join29(compiledRoot, "server");
18598
- const clientDir = join29(compiledRoot, "client");
18761
+ const tmpDir = join30(compiledRoot, "_tmp");
18762
+ const serverDir = join30(compiledRoot, "server");
18763
+ const clientDir = join30(compiledRoot, "client");
18599
18764
  await Promise.all([
18600
18765
  mkdir6(tmpDir, { recursive: true }),
18601
18766
  mkdir6(serverDir, { recursive: true }),
18602
18767
  mkdir6(clientDir, { recursive: true })
18603
18768
  ]);
18604
- const tmpPagePath = resolve26(join29(tmpDir, `${baseName}.module.js`));
18605
- const tmpHarnessPath = resolve26(join29(tmpDir, `${baseName}.harness.js`));
18769
+ const tmpPagePath = resolve26(join30(tmpDir, `${baseName}.module.js`));
18770
+ const tmpHarnessPath = resolve26(join30(tmpDir, `${baseName}.harness.js`));
18606
18771
  await Promise.all([
18607
18772
  write4(tmpPagePath, transpiled),
18608
18773
  write4(tmpHarnessPath, generateServerHarness(tmpPagePath))
@@ -18610,7 +18775,7 @@ export default PageComponent;
18610
18775
  const stagedSourceMap = new Map([
18611
18776
  [tmpPagePath, resolvedEntry]
18612
18777
  ]);
18613
- const serverPath = join29(serverDir, `${baseName}.js`);
18778
+ const serverPath = join30(serverDir, `${baseName}.js`);
18614
18779
  const buildResult = await bunBuild2({
18615
18780
  entrypoints: [tmpHarnessPath],
18616
18781
  format: "esm",
@@ -18627,7 +18792,7 @@ export default PageComponent;
18627
18792
  console.warn(`\u26A0\uFE0F Ember server build for ${baseName} had errors:`, buildResult.logs);
18628
18793
  }
18629
18794
  await rm4(tmpDir, { force: true, recursive: true });
18630
- const clientPath = join29(clientDir, `${baseName}.js`);
18795
+ const clientPath = join30(clientDir, `${baseName}.js`);
18631
18796
  await write4(clientPath, transpiled);
18632
18797
  return { clientPath, serverPath };
18633
18798
  }, compileEmber = async (entries, emberDir, cwd = process.cwd(), _hmr = false) => {
@@ -18655,7 +18820,7 @@ export default PageComponent;
18655
18820
  preprocessed = rewriteTemplateEvalToScope(result.code);
18656
18821
  }
18657
18822
  return transpiler5.transformSync(preprocessed);
18658
- }, clearEmberCompilerCache = () => {}, getEmberCompiledRoot = (_emberDir) => getFrameworkGeneratedDir("ember"), getEmberServerCompiledDir = (emberDir) => join29(getEmberCompiledRoot(emberDir), "server"), getEmberClientCompiledDir = (emberDir) => join29(getEmberCompiledRoot(emberDir), "client");
18823
+ }, clearEmberCompilerCache = () => {}, getEmberCompiledRoot = (_emberDir) => getFrameworkGeneratedDir("ember"), getEmberServerCompiledDir = (emberDir) => join30(getEmberCompiledRoot(emberDir), "server"), getEmberClientCompiledDir = (emberDir) => join30(getEmberCompiledRoot(emberDir), "client");
18659
18824
  var init_compileEmber = __esm(() => {
18660
18825
  init_generatedDir();
18661
18826
  transpiler5 = new Transpiler4({
@@ -18677,7 +18842,7 @@ __export(exports_buildReactVendor, {
18677
18842
  buildReactVendor: () => buildReactVendor
18678
18843
  });
18679
18844
  import { existsSync as existsSync26, mkdirSync as mkdirSync8 } from "fs";
18680
- import { join as join30, resolve as resolve27 } from "path";
18845
+ import { join as join31, resolve as resolve27 } from "path";
18681
18846
  import { rm as rm5 } from "fs/promises";
18682
18847
  var {build: bunBuild3 } = globalThis.Bun;
18683
18848
  var resolveJsxDevRuntimeCompatPath = () => {
@@ -18731,14 +18896,14 @@ var resolveJsxDevRuntimeCompatPath = () => {
18731
18896
  `)}
18732
18897
  `;
18733
18898
  }, buildReactVendor = async (buildDir) => {
18734
- const vendorDir = join30(buildDir, "react", "vendor");
18899
+ const vendorDir = join31(buildDir, "react", "vendor");
18735
18900
  mkdirSync8(vendorDir, { recursive: true });
18736
- const tmpDir = join30(buildDir, "_vendor_tmp");
18901
+ const tmpDir = join31(buildDir, "_vendor_tmp");
18737
18902
  mkdirSync8(tmpDir, { recursive: true });
18738
18903
  const specifiers = resolveVendorSpecifiers();
18739
18904
  const entrypoints = await Promise.all(specifiers.map(async (specifier) => {
18740
18905
  const safeName = toSafeFileName(specifier);
18741
- const entryPath = join30(tmpDir, `${safeName}.ts`);
18906
+ const entryPath = join31(tmpDir, `${safeName}.ts`);
18742
18907
  const source = await generateEntrySource(specifier);
18743
18908
  await Bun.write(entryPath, source);
18744
18909
  return entryPath;
@@ -18803,7 +18968,7 @@ __export(exports_buildAngularVendor, {
18803
18968
  buildAngularServerVendor: () => buildAngularServerVendor
18804
18969
  });
18805
18970
  import { mkdirSync as mkdirSync9 } from "fs";
18806
- import { join as join31 } from "path";
18971
+ import { join as join32 } from "path";
18807
18972
  import { rm as rm6 } from "fs/promises";
18808
18973
  var {build: bunBuild4, Glob: Glob7 } = globalThis.Bun;
18809
18974
  var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => jitMode ? [...REQUIRED_ANGULAR_SPECIFIERS_BASE, "@angular/compiler"] : REQUIRED_ANGULAR_SPECIFIERS_BASE, SERVER_ONLY_ANGULAR_SPECIFIERS, BUILD_ONLY_ANGULAR_SPECIFIER_PREFIXES, isBuildOnlyAngularSpecifier = (spec) => BUILD_ONLY_ANGULAR_SPECIFIER_PREFIXES.some((prefix) => spec === prefix || spec.startsWith(`${prefix}/`)), SCAN_SKIP_DIRS, isResolvable2 = (specifier) => {
@@ -18840,7 +19005,7 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
18840
19005
  }
18841
19006
  return { angular, transitiveRoots };
18842
19007
  }, PARTIAL_DECL_MARKERS, containsPartialDeclarations = (source) => PARTIAL_DECL_MARKERS.some((marker) => source.includes(marker)), collectTransitiveAngularSpecs = async (roots, angularFound) => {
18843
- const { readFileSync: readFileSync20 } = await import("fs");
19008
+ const { readFileSync: readFileSync21 } = await import("fs");
18844
19009
  const transpiler6 = new Bun.Transpiler({ loader: "js" });
18845
19010
  const visited = new Set;
18846
19011
  const frontier = [];
@@ -18861,7 +19026,7 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
18861
19026
  }
18862
19027
  let content;
18863
19028
  try {
18864
- content = readFileSync20(resolved, "utf-8");
19029
+ content = readFileSync21(resolved, "utf-8");
18865
19030
  } catch {
18866
19031
  continue;
18867
19032
  }
@@ -18900,14 +19065,14 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
18900
19065
  await collectTransitiveAngularSpecs([...angular, ...transitiveRoots], angular);
18901
19066
  return Array.from(angular).filter(isResolvable2);
18902
19067
  }, buildAngularVendor = async (buildDir, directories = [], linkerJitMode = false, depVendorSpecifiers = []) => {
18903
- const vendorDir = join31(buildDir, "angular", "vendor");
19068
+ const vendorDir = join32(buildDir, "angular", "vendor");
18904
19069
  mkdirSync9(vendorDir, { recursive: true });
18905
- const tmpDir = join31(buildDir, "_angular_vendor_tmp");
19070
+ const tmpDir = join32(buildDir, "_angular_vendor_tmp");
18906
19071
  mkdirSync9(tmpDir, { recursive: true });
18907
19072
  const specifiers = await resolveAngularSpecifiers(directories, linkerJitMode);
18908
19073
  const entrypoints = await Promise.all(specifiers.map(async (specifier) => {
18909
19074
  const safeName = toSafeFileName2(specifier);
18910
- const entryPath = join31(tmpDir, `${safeName}.ts`);
19075
+ const entryPath = join32(tmpDir, `${safeName}.ts`);
18911
19076
  await Bun.write(entryPath, await generateVendorEntrySource(specifier));
18912
19077
  return entryPath;
18913
19078
  }));
@@ -18938,9 +19103,9 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
18938
19103
  const specifiers = await resolveAngularSpecifiers(directories, linkerJitMode);
18939
19104
  return computeAngularVendorPaths(specifiers);
18940
19105
  }, buildAngularServerVendor = async (buildDir, directories = [], linkerJitMode = false) => {
18941
- const vendorDir = join31(buildDir, "angular", "vendor", "server");
19106
+ const vendorDir = join32(buildDir, "angular", "vendor", "server");
18942
19107
  mkdirSync9(vendorDir, { recursive: true });
18943
- const tmpDir = join31(buildDir, "_angular_server_vendor_tmp");
19108
+ const tmpDir = join32(buildDir, "_angular_server_vendor_tmp");
18944
19109
  mkdirSync9(tmpDir, { recursive: true });
18945
19110
  const browserSpecs = await resolveAngularSpecifiers(directories, linkerJitMode);
18946
19111
  const allSpecs = new Set(browserSpecs);
@@ -18951,7 +19116,7 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
18951
19116
  const specifiers = Array.from(allSpecs);
18952
19117
  const entrypoints = await Promise.all(specifiers.map(async (specifier) => {
18953
19118
  const safeName = toSafeFileName2(specifier);
18954
- const entryPath = join31(tmpDir, `${safeName}.ts`);
19119
+ const entryPath = join32(tmpDir, `${safeName}.ts`);
18955
19120
  await Bun.write(entryPath, await generateVendorEntrySource(specifier));
18956
19121
  return entryPath;
18957
19122
  }));
@@ -18973,9 +19138,9 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
18973
19138
  return specifiers;
18974
19139
  }, computeAngularServerVendorPaths = (buildDir, specifiers) => {
18975
19140
  const paths = {};
18976
- const vendorDir = join31(buildDir, "angular", "vendor", "server");
19141
+ const vendorDir = join32(buildDir, "angular", "vendor", "server");
18977
19142
  for (const specifier of specifiers) {
18978
- paths[specifier] = join31(vendorDir, `${toSafeFileName2(specifier)}.js`);
19143
+ paths[specifier] = join32(vendorDir, `${toSafeFileName2(specifier)}.js`);
18979
19144
  }
18980
19145
  return paths;
18981
19146
  }, computeAngularServerVendorPathsAsync = async (buildDir, directories = [], linkerJitMode = true) => {
@@ -19031,17 +19196,17 @@ __export(exports_buildVueVendor, {
19031
19196
  buildVueVendor: () => buildVueVendor
19032
19197
  });
19033
19198
  import { mkdirSync as mkdirSync10 } from "fs";
19034
- import { join as join32 } from "path";
19199
+ import { join as join33 } from "path";
19035
19200
  import { rm as rm7 } from "fs/promises";
19036
19201
  var {build: bunBuild5 } = globalThis.Bun;
19037
19202
  var vueSpecifiers, toSafeFileName3 = (specifier) => specifier.replace(/\//g, "_"), buildVueVendor = async (buildDir) => {
19038
- const vendorDir = join32(buildDir, "vue", "vendor");
19203
+ const vendorDir = join33(buildDir, "vue", "vendor");
19039
19204
  mkdirSync10(vendorDir, { recursive: true });
19040
- const tmpDir = join32(buildDir, "_vue_vendor_tmp");
19205
+ const tmpDir = join33(buildDir, "_vue_vendor_tmp");
19041
19206
  mkdirSync10(tmpDir, { recursive: true });
19042
19207
  const entrypoints = await Promise.all(vueSpecifiers.map(async (specifier) => {
19043
19208
  const safeName = toSafeFileName3(specifier);
19044
- const entryPath = join32(tmpDir, `${safeName}.ts`);
19209
+ const entryPath = join33(tmpDir, `${safeName}.ts`);
19045
19210
  await Bun.write(entryPath, `export * from '${specifier}';
19046
19211
  `);
19047
19212
  return entryPath;
@@ -19066,11 +19231,11 @@ var vueSpecifiers, toSafeFileName3 = (specifier) => specifier.replace(/\//g, "_"
19066
19231
  console.warn("\u26A0\uFE0F Vue vendor build had errors:", result.logs);
19067
19232
  return;
19068
19233
  }
19069
- const { readFileSync: readFileSync20, writeFileSync: writeFileSync9, readdirSync: readdirSync4 } = await import("fs");
19070
- const files = readdirSync4(vendorDir).filter((f2) => f2.endsWith(".js"));
19234
+ const { readFileSync: readFileSync21, writeFileSync: writeFileSync9, readdirSync: readdirSync5 } = await import("fs");
19235
+ const files = readdirSync5(vendorDir).filter((f2) => f2.endsWith(".js"));
19071
19236
  for (const file5 of files) {
19072
- const filePath = join32(vendorDir, file5);
19073
- const content = readFileSync20(filePath, "utf-8");
19237
+ const filePath = join33(vendorDir, file5);
19238
+ const content = readFileSync21(filePath, "utf-8");
19074
19239
  if (!content.includes("__VUE_HMR_RUNTIME__"))
19075
19240
  continue;
19076
19241
  const patched = content.replace(/getGlobalThis\(\)\.__VUE_HMR_RUNTIME__\s*=\s*\{/, "getGlobalThis().__VUE_HMR_RUNTIME__ = getGlobalThis().__VUE_HMR_RUNTIME__ || {");
@@ -19096,7 +19261,7 @@ __export(exports_buildSvelteVendor, {
19096
19261
  buildSvelteVendor: () => buildSvelteVendor
19097
19262
  });
19098
19263
  import { mkdirSync as mkdirSync11 } from "fs";
19099
- import { join as join33 } from "path";
19264
+ import { join as join34 } from "path";
19100
19265
  import { rm as rm8 } from "fs/promises";
19101
19266
  var {build: bunBuild6 } = globalThis.Bun;
19102
19267
  var svelteSpecifiers, isResolvable3 = (specifier) => {
@@ -19110,13 +19275,13 @@ var svelteSpecifiers, isResolvable3 = (specifier) => {
19110
19275
  const specifiers = resolveVendorSpecifiers2();
19111
19276
  if (specifiers.length === 0)
19112
19277
  return;
19113
- const vendorDir = join33(buildDir, "svelte", "vendor");
19278
+ const vendorDir = join34(buildDir, "svelte", "vendor");
19114
19279
  mkdirSync11(vendorDir, { recursive: true });
19115
- const tmpDir = join33(buildDir, "_svelte_vendor_tmp");
19280
+ const tmpDir = join34(buildDir, "_svelte_vendor_tmp");
19116
19281
  mkdirSync11(tmpDir, { recursive: true });
19117
19282
  const entrypoints = await Promise.all(specifiers.map(async (specifier) => {
19118
19283
  const safeName = toSafeFileName4(specifier);
19119
- const entryPath = join33(tmpDir, `${safeName}.ts`);
19284
+ const entryPath = join34(tmpDir, `${safeName}.ts`);
19120
19285
  await Bun.write(entryPath, `export * from '${specifier}';
19121
19286
  `);
19122
19287
  return entryPath;
@@ -19166,7 +19331,7 @@ __export(exports_rewriteImportsPlugin, {
19166
19331
  buildWithImportRewrite: () => buildWithImportRewrite
19167
19332
  });
19168
19333
  import { readdir as readdir3 } from "fs/promises";
19169
- import { join as join34 } from "path";
19334
+ import { join as join35 } from "path";
19170
19335
  var escapeRegex2 = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), jsRewriteImports = (content, replacements) => {
19171
19336
  let result = content;
19172
19337
  for (const [specifier, webPath] of replacements) {
@@ -19295,7 +19460,7 @@ ${content}`;
19295
19460
  const entries = await readdir3(dir);
19296
19461
  for (const entry of entries) {
19297
19462
  if (entry.endsWith(".js"))
19298
- allFiles.push(join34(dir, entry));
19463
+ allFiles.push(join35(dir, entry));
19299
19464
  }
19300
19465
  } catch {}
19301
19466
  }
@@ -19339,12 +19504,12 @@ import {
19339
19504
  cpSync,
19340
19505
  existsSync as existsSync27,
19341
19506
  mkdirSync as mkdirSync12,
19342
- readFileSync as readFileSync20,
19507
+ readFileSync as readFileSync21,
19343
19508
  rmSync as rmSync2,
19344
19509
  statSync as statSync3,
19345
19510
  writeFileSync as writeFileSync9
19346
19511
  } from "fs";
19347
- import { basename as basename11, dirname as dirname19, extname as extname8, join as join35, relative as relative13, resolve as resolve28 } from "path";
19512
+ import { basename as basename11, dirname as dirname19, extname as extname8, join as join36, relative as relative13, resolve as resolve28 } from "path";
19348
19513
  import { cwd, env as env3, exit } from "process";
19349
19514
  var {build: bunBuild7, Glob: Glob8 } = globalThis.Bun;
19350
19515
  var isDev2, isBuildTraceEnabled = () => {
@@ -19422,8 +19587,8 @@ var isDev2, isBuildTraceEnabled = () => {
19422
19587
  mkdirSync12(htmxDestDir, { recursive: true });
19423
19588
  const glob = new Glob8("htmx*.min.js");
19424
19589
  for (const relPath of glob.scanSync({ cwd: htmxDir })) {
19425
- const src = join35(htmxDir, relPath);
19426
- const dest = join35(htmxDestDir, "htmx.min.js");
19590
+ const src = join36(htmxDir, relPath);
19591
+ const dest = join36(htmxDestDir, "htmx.min.js");
19427
19592
  copyFileSync2(src, dest);
19428
19593
  return;
19429
19594
  }
@@ -19451,7 +19616,7 @@ var isDev2, isBuildTraceEnabled = () => {
19451
19616
  globalThis.__absoluteVersion = pkg.version;
19452
19617
  };
19453
19618
  await resolveCandidate(candidates);
19454
- }, SKIP_DIRS4, addWorkerPathIfExists = (file5, relPath, workerPaths) => {
19619
+ }, SKIP_DIRS5, addWorkerPathIfExists = (file5, relPath, workerPaths) => {
19455
19620
  const absPath = resolve28(file5, "..", relPath);
19456
19621
  try {
19457
19622
  statSync3(absPath);
@@ -19467,7 +19632,7 @@ var isDev2, isBuildTraceEnabled = () => {
19467
19632
  addWorkerPathIfExists(file5, relPath, workerPaths);
19468
19633
  }
19469
19634
  }, collectWorkerPathsFromFile = (file5, patterns, workerPaths) => {
19470
- const content = readFileSync20(file5, "utf-8");
19635
+ const content = readFileSync21(file5, "utf-8");
19471
19636
  for (const pattern of patterns) {
19472
19637
  collectWorkerPathsFromContent(content, pattern, file5, workerPaths);
19473
19638
  }
@@ -19476,7 +19641,7 @@ var isDev2, isBuildTraceEnabled = () => {
19476
19641
  for await (const file5 of glob.scan({ absolute: true, cwd: dir })) {
19477
19642
  const relToDir = file5.slice(dir.length + 1);
19478
19643
  const [firstSegment] = relToDir.split("/");
19479
- if (firstSegment && SKIP_DIRS4.has(firstSegment))
19644
+ if (firstSegment && SKIP_DIRS5.has(firstSegment))
19480
19645
  continue;
19481
19646
  collectWorkerPathsFromFile(file5, patterns, workerPaths);
19482
19647
  }
@@ -19498,7 +19663,7 @@ var isDev2, isBuildTraceEnabled = () => {
19498
19663
  vuePagesPath
19499
19664
  }) => {
19500
19665
  const { readdirSync: readDir } = await import("fs");
19501
- const devIndexDir = join35(buildPath, "_src_indexes");
19666
+ const devIndexDir = join36(buildPath, "_src_indexes");
19502
19667
  mkdirSync12(devIndexDir, { recursive: true });
19503
19668
  if (reactIndexesPath && reactPagesPath) {
19504
19669
  copyReactDevIndexes(reactIndexesPath, reactPagesPath, devIndexDir, readDir);
@@ -19516,35 +19681,35 @@ var isDev2, isBuildTraceEnabled = () => {
19516
19681
  const indexFiles = readDir(reactIndexesPath).filter((file5) => file5.endsWith(".tsx"));
19517
19682
  const pagesRel = relative13(process.cwd(), resolve28(reactPagesPath)).replace(/\\/g, "/");
19518
19683
  for (const file5 of indexFiles) {
19519
- let content = readFileSync20(join35(reactIndexesPath, file5), "utf-8");
19684
+ let content = readFileSync21(join36(reactIndexesPath, file5), "utf-8");
19520
19685
  content = content.replace(/from\s*['"]([^'"]*\/pages\/([^'"]+))['"]/g, (_match, _fullPath, componentName) => `from '/@src/${pagesRel}/${componentName}'`);
19521
- writeFileSync9(join35(devIndexDir, file5), content);
19686
+ writeFileSync9(join36(devIndexDir, file5), content);
19522
19687
  }
19523
19688
  }, copySvelteDevIndexes = (svelteDir, sveltePagesPath, svelteEntries, devIndexDir) => {
19524
- const svelteIndexDir = join35(getFrameworkGeneratedDir("svelte"), "indexes");
19689
+ const svelteIndexDir = join36(getFrameworkGeneratedDir("svelte"), "indexes");
19525
19690
  const sveltePageEntries = svelteEntries.filter((file5) => resolve28(file5).startsWith(resolve28(sveltePagesPath)));
19526
19691
  for (const entry of sveltePageEntries) {
19527
19692
  const name = basename11(entry).replace(/\.svelte(\.(ts|js))?$/, "");
19528
- const indexFile = join35(svelteIndexDir, "pages", `${name}.js`);
19693
+ const indexFile = join36(svelteIndexDir, "pages", `${name}.js`);
19529
19694
  if (!existsSync27(indexFile))
19530
19695
  continue;
19531
- let content = readFileSync20(indexFile, "utf-8");
19696
+ let content = readFileSync21(indexFile, "utf-8");
19532
19697
  const srcRel = relative13(process.cwd(), resolve28(entry)).replace(/\\/g, "/");
19533
19698
  content = content.replace(/import\s+Component\s+from\s+['"]([^'"]+)['"]/, `import Component from "/@src/${srcRel}"`);
19534
- writeFileSync9(join35(devIndexDir, `${name}.svelte.js`), content);
19699
+ writeFileSync9(join36(devIndexDir, `${name}.svelte.js`), content);
19535
19700
  }
19536
19701
  }, copyVueDevIndexes = (vueDir, vuePagesPath, vueEntries, devIndexDir) => {
19537
- const vueIndexDir = join35(getFrameworkGeneratedDir("vue"), "indexes");
19702
+ const vueIndexDir = join36(getFrameworkGeneratedDir("vue"), "indexes");
19538
19703
  const vuePageEntries = vueEntries.filter((file5) => resolve28(file5).startsWith(resolve28(vuePagesPath)));
19539
19704
  for (const entry of vuePageEntries) {
19540
19705
  const name = basename11(entry, ".vue");
19541
- const indexFile = join35(vueIndexDir, `${name}.js`);
19706
+ const indexFile = join36(vueIndexDir, `${name}.js`);
19542
19707
  if (!existsSync27(indexFile))
19543
19708
  continue;
19544
- let content = readFileSync20(indexFile, "utf-8");
19709
+ let content = readFileSync21(indexFile, "utf-8");
19545
19710
  const srcRel = relative13(process.cwd(), resolve28(entry)).replace(/\\/g, "/");
19546
19711
  content = content.replace(/import\s+Comp(?:\s*,\s*\*\s+as\s+\w+)?\s+from\s+['"]([^'"]+)['"]/, (match) => match.replace(/from\s+['"][^'"]+['"]/, `from "/@src/${srcRel}"`));
19547
- writeFileSync9(join35(devIndexDir, `${name}.vue.js`), content);
19712
+ writeFileSync9(join36(devIndexDir, `${name}.vue.js`), content);
19548
19713
  }
19549
19714
  }, resolveVueRuntimeId = (content, firstUseName, outputPath, projectRoot) => {
19550
19715
  const varIdx = content.indexOf(`var ${firstUseName} =`);
@@ -19592,7 +19757,7 @@ var isDev2, isBuildTraceEnabled = () => {
19592
19757
  }
19593
19758
  return result;
19594
19759
  }, VUE_HMR_RUNTIME, injectVueComposableTracking = (outputPath, projectRoot) => {
19595
- let content = readFileSync20(outputPath, "utf-8");
19760
+ let content = readFileSync21(outputPath, "utf-8");
19596
19761
  const usePattern = /^var\s+(use[A-Z]\w*)\s*=/gm;
19597
19762
  const useNames = [];
19598
19763
  let match;
@@ -19642,7 +19807,7 @@ ${content.slice(firstUseIdx)}`;
19642
19807
  }, rewriteUrlReferences = (outputPaths, urlFileMap) => {
19643
19808
  const urlPattern = /new\s+URL\(\s*["'](\.\.?\/[^"']+)["']\s*,\s*import\.meta\.url\s*\)/g;
19644
19809
  for (const outputPath of outputPaths) {
19645
- let content = readFileSync20(outputPath, "utf-8");
19810
+ let content = readFileSync21(outputPath, "utf-8");
19646
19811
  let changed = false;
19647
19812
  content = content.replace(urlPattern, (_match, relPath) => {
19648
19813
  const targetName = basename11(relPath);
@@ -19767,10 +19932,10 @@ ${content.slice(firstUseIdx)}`;
19767
19932
  restoreTracePhase();
19768
19933
  return;
19769
19934
  }
19770
- const traceDir = join35(buildPath2, ".absolute-trace");
19935
+ const traceDir = join36(buildPath2, ".absolute-trace");
19771
19936
  const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
19772
19937
  mkdirSync12(traceDir, { recursive: true });
19773
- writeFileSync9(join35(traceDir, `build-trace-${timestamp}.json`), JSON.stringify({
19938
+ writeFileSync9(join36(traceDir, `build-trace-${timestamp}.json`), JSON.stringify({
19774
19939
  events: traceEvents,
19775
19940
  frameworks: traceFrameworkNames,
19776
19941
  generatedAt: new Date().toISOString(),
@@ -19801,15 +19966,15 @@ ${content.slice(firstUseIdx)}`;
19801
19966
  const stylesPath = typeof stylesConfig === "string" ? stylesConfig : stylesConfig?.path;
19802
19967
  const stylesIgnore = typeof stylesConfig === "object" ? stylesConfig.ignore : undefined;
19803
19968
  const stylesDir = stylesPath && validateSafePath(stylesPath, projectRoot);
19804
- const reactIndexesPath = reactDir && join35(getFrameworkGeneratedDir("react"), "indexes");
19805
- const reactPagesPath = reactDir && join35(reactDir, "pages");
19806
- const htmlPagesPath = htmlDir && join35(htmlDir, "pages");
19807
- const htmlScriptsPath = htmlDir && join35(htmlDir, "scripts");
19808
- const sveltePagesPath = svelteDir && join35(svelteDir, "pages");
19809
- const vuePagesPath = vueDir && join35(vueDir, "pages");
19810
- const htmxPagesPath = htmxDir && join35(htmxDir, "pages");
19811
- const angularPagesPath = angularDir && join35(angularDir, "pages");
19812
- const emberPagesPath = emberDir && join35(emberDir, "pages");
19969
+ const reactIndexesPath = reactDir && join36(getFrameworkGeneratedDir("react"), "indexes");
19970
+ const reactPagesPath = reactDir && join36(reactDir, "pages");
19971
+ const htmlPagesPath = htmlDir && join36(htmlDir, "pages");
19972
+ const htmlScriptsPath = htmlDir && join36(htmlDir, "scripts");
19973
+ const sveltePagesPath = svelteDir && join36(svelteDir, "pages");
19974
+ const vuePagesPath = vueDir && join36(vueDir, "pages");
19975
+ const htmxPagesPath = htmxDir && join36(htmxDir, "pages");
19976
+ const angularPagesPath = angularDir && join36(angularDir, "pages");
19977
+ const emberPagesPath = emberDir && join36(emberDir, "pages");
19813
19978
  const frontends = [
19814
19979
  reactDir,
19815
19980
  htmlDir,
@@ -19868,8 +20033,8 @@ ${content.slice(firstUseIdx)}`;
19868
20033
  const [firstEntry] = serverDirMap;
19869
20034
  if (!firstEntry)
19870
20035
  throw new Error("Expected at least one server directory entry");
19871
- serverRoot = join35(firstEntry.dir, firstEntry.subdir);
19872
- serverOutDir = join35(buildPath, basename11(firstEntry.dir));
20036
+ serverRoot = join36(firstEntry.dir, firstEntry.subdir);
20037
+ serverOutDir = join36(buildPath, basename11(firstEntry.dir));
19873
20038
  } else if (serverDirMap.length > 1) {
19874
20039
  serverRoot = commonAncestor(serverDirMap.map((entry) => entry.dir), projectRoot);
19875
20040
  serverOutDir = buildPath;
@@ -19897,7 +20062,7 @@ ${content.slice(firstUseIdx)}`;
19897
20062
  await tracePhase("react/index-generation", () => generateReactIndexFiles(reactPagesPath, reactIndexesPath, hmr));
19898
20063
  }
19899
20064
  if (assetsPath && (!isIncremental || normalizedIncrementalFiles?.some((f2) => f2.includes("/assets/")))) {
19900
- await tracePhase("assets/copy", () => cpSync(assetsPath, join35(buildPath, "assets"), {
20065
+ await tracePhase("assets/copy", () => cpSync(assetsPath, join36(buildPath, "assets"), {
19901
20066
  force: true,
19902
20067
  recursive: true
19903
20068
  }));
@@ -20007,11 +20172,11 @@ ${content.slice(firstUseIdx)}`;
20007
20172
  }
20008
20173
  }
20009
20174
  if (htmlDefaults.error || htmlDefaults.notFound || htmlDefaults.loading || Object.keys(htmlPages).length > 0) {
20010
- const htmlConventionsOutDir = join35(buildPath, "conventions", "html");
20175
+ const htmlConventionsOutDir = join36(buildPath, "conventions", "html");
20011
20176
  mkdirSync12(htmlConventionsOutDir, { recursive: true });
20012
20177
  const htmlPathRemap = new Map;
20013
20178
  for (const sourcePath of htmlConventionSources) {
20014
- const dest = join35(htmlConventionsOutDir, basename11(sourcePath));
20179
+ const dest = join36(htmlConventionsOutDir, basename11(sourcePath));
20015
20180
  cpSync(sourcePath, dest, { force: true });
20016
20181
  htmlPathRemap.set(sourcePath, dest);
20017
20182
  }
@@ -20054,7 +20219,7 @@ ${content.slice(firstUseIdx)}`;
20054
20219
  const reactEntries = isIncremental && reactIndexesPath && reactPagesPath ? filterToIncrementalEntries(allReactEntries, (entry) => {
20055
20220
  if (entry.startsWith(resolve28(reactIndexesPath))) {
20056
20221
  const pageName = basename11(entry, ".tsx");
20057
- return join35(reactPagesPath, `${pageName}.tsx`);
20222
+ return join36(reactPagesPath, `${pageName}.tsx`);
20058
20223
  }
20059
20224
  return null;
20060
20225
  }) : allReactEntries;
@@ -20077,6 +20242,20 @@ ${content.slice(firstUseIdx)}`;
20077
20242
  const shouldCompileSvelte = svelteDir && svelteEntries.length > 0;
20078
20243
  const shouldCompileVue = vueDir && vueEntries.length > 0;
20079
20244
  const shouldCompileAngular = angularDir && angularEntries.length > 0;
20245
+ const ssrOnlyVueEntries = shouldCompileVue ? await tracePhase("scan/vue-ssr-only", async () => {
20246
+ const { scanVueSsrOnlyPages: scanVueSsrOnlyPages2 } = await Promise.resolve().then(() => (init_scanVueSsrOnlyPages(), exports_scanVueSsrOnlyPages));
20247
+ const ssrOnlyPageNames = scanVueSsrOnlyPages2(projectRoot);
20248
+ if (ssrOnlyPageNames.size === 0)
20249
+ return new Set;
20250
+ const resolved = new Set;
20251
+ for (const entry of vueEntries) {
20252
+ const name = basename11(entry, ".vue");
20253
+ if (ssrOnlyPageNames.has(name)) {
20254
+ resolved.add(resolve28(entry));
20255
+ }
20256
+ }
20257
+ return resolved;
20258
+ }) : new Set;
20080
20259
  const shouldCompileEmber = emberDir && emberEntries.length > 0;
20081
20260
  const emptyStringArray = [];
20082
20261
  const islandBuildInfo = islandRegistryPath ? await tracePhase("islands/registry", () => loadIslandRegistryBuildInfo(islandRegistryPath)) : null;
@@ -20139,7 +20318,7 @@ ${content.slice(firstUseIdx)}`;
20139
20318
  svelteIndexPaths: [...emptyStringArray],
20140
20319
  svelteServerPaths: [...emptyStringArray]
20141
20320
  },
20142
- shouldCompileVue ? tracePhase("compile/vue", () => Promise.resolve().then(() => (init_compileVue(), exports_compileVue)).then((mod) => mod.compileVue(vueEntries, vueDir, hmr, styleTransformConfig))) : {
20321
+ shouldCompileVue ? tracePhase("compile/vue", () => Promise.resolve().then(() => (init_compileVue(), exports_compileVue)).then((mod) => mod.compileVue(vueEntries, vueDir, hmr, styleTransformConfig, ssrOnlyVueEntries))) : {
20143
20322
  vueClientPaths: [...emptyStringArray],
20144
20323
  vueCssPaths: [...emptyStringArray],
20145
20324
  vueIndexPaths: [...emptyStringArray],
@@ -20157,14 +20336,14 @@ ${content.slice(firstUseIdx)}`;
20157
20336
  try {
20158
20337
  const { primeComponentFingerprint: primeComponentFingerprint2 } = await Promise.resolve().then(() => (init_fastHmrCompiler(), exports_fastHmrCompiler));
20159
20338
  const { readdir: readdir4 } = await import("fs/promises");
20160
- const { join: join36 } = await import("path");
20339
+ const { join: join37 } = await import("path");
20161
20340
  const walk = async (dir) => {
20162
20341
  const entries = await readdir4(dir, {
20163
20342
  withFileTypes: true
20164
20343
  });
20165
20344
  const out = [];
20166
20345
  for (const entry of entries) {
20167
- const full = join36(dir, entry.name);
20346
+ const full = join37(dir, entry.name);
20168
20347
  if (entry.isDirectory()) {
20169
20348
  out.push(...await walk(full));
20170
20349
  } else if (entry.isFile() && entry.name.endsWith(".ts") && !entry.name.endsWith(".d.ts")) {
@@ -20229,7 +20408,7 @@ ${content.slice(firstUseIdx)}`;
20229
20408
  const compileReactConventions = async () => {
20230
20409
  if (reactConventionSources.length === 0)
20231
20410
  return emptyStringArray;
20232
- const destDir = join35(buildPath, "conventions", "react");
20411
+ const destDir = join36(buildPath, "conventions", "react");
20233
20412
  rmSync2(destDir, { force: true, recursive: true });
20234
20413
  mkdirSync12(destDir, { recursive: true });
20235
20414
  const destPaths = [];
@@ -20273,7 +20452,7 @@ ${content.slice(firstUseIdx)}`;
20273
20452
  angularConventionSources.length > 0 && angularDir ? tracePhase("compile/convention-angular", () => Promise.resolve().then(() => (init_compileAngular(), exports_compileAngular)).then((mod) => mod.compileAngular(angularConventionSources, angularDir, hmr, styleTransformConfig))) : { serverPaths: emptyStringArray }
20274
20453
  ]);
20275
20454
  const bundleConventionFiles = async (framework, compiledPaths) => {
20276
- const destDir = join35(buildPath, "conventions", framework);
20455
+ const destDir = join36(buildPath, "conventions", framework);
20277
20456
  rmSync2(destDir, { force: true, recursive: true });
20278
20457
  mkdirSync12(destDir, { recursive: true });
20279
20458
  const destPaths = [];
@@ -20347,7 +20526,7 @@ ${content.slice(firstUseIdx)}`;
20347
20526
  }
20348
20527
  })) : {
20349
20528
  entries: [],
20350
- generatedRoot: join35(buildPath, "_island_entries")
20529
+ generatedRoot: join36(buildPath, "_island_entries")
20351
20530
  };
20352
20531
  const islandClientEntryPoints = islandEntryResult.entries.map((entry) => entry.entryPath);
20353
20532
  if (serverEntryPoints.length === 0 && reactClientEntryPoints.length === 0 && nonReactClientEntryPoints.length === 0 && islandClientEntryPoints.length === 0 && htmxDir === undefined && htmlDir === undefined) {
@@ -20383,7 +20562,7 @@ ${content.slice(firstUseIdx)}`;
20383
20562
  return {};
20384
20563
  }
20385
20564
  if (hmr && reactIndexesPath && reactClientEntryPoints.length > 0) {
20386
- const refreshEntry = join35(reactIndexesPath, "_refresh.tsx");
20565
+ const refreshEntry = join36(reactIndexesPath, "_refresh.tsx");
20387
20566
  if (!reactClientEntryPoints.includes(refreshEntry))
20388
20567
  reactClientEntryPoints.push(refreshEntry);
20389
20568
  }
@@ -20485,19 +20664,19 @@ ${content.slice(firstUseIdx)}`;
20485
20664
  throw: false
20486
20665
  }, resolveBunBuildOverride(bunBuildConfig, "reactClient")) : undefined;
20487
20666
  if (reactDir && reactClientEntryPoints.length > 0) {
20488
- rmSync2(join35(buildPath, "react", "generated", "indexes"), {
20667
+ rmSync2(join36(buildPath, "react", "generated", "indexes"), {
20489
20668
  force: true,
20490
20669
  recursive: true
20491
20670
  });
20492
20671
  }
20493
20672
  if (angularDir && angularClientPaths.length > 0) {
20494
- rmSync2(join35(buildPath, "angular", "indexes"), {
20673
+ rmSync2(join36(buildPath, "angular", "indexes"), {
20495
20674
  force: true,
20496
20675
  recursive: true
20497
20676
  });
20498
20677
  }
20499
20678
  if (islandClientEntryPoints.length > 0) {
20500
- rmSync2(join35(buildPath, "islands"), {
20679
+ rmSync2(join36(buildPath, "islands"), {
20501
20680
  force: true,
20502
20681
  recursive: true
20503
20682
  });
@@ -20586,7 +20765,7 @@ ${content.slice(firstUseIdx)}`;
20586
20765
  globalCssEntries.length > 0 ? tracePhase("bun/global-css", () => bunBuild7(mergeBunBuildConfig({
20587
20766
  entrypoints: globalCssEntries,
20588
20767
  naming: `[dir]/[name].[hash].[ext]`,
20589
- outdir: stylesDir ? join35(buildPath, basename11(stylesDir)) : buildPath,
20768
+ outdir: stylesDir ? join36(buildPath, basename11(stylesDir)) : buildPath,
20590
20769
  plugins: [stylePreprocessorPlugin2],
20591
20770
  root: stylesDir || clientRoot,
20592
20771
  target: "browser",
@@ -20595,7 +20774,7 @@ ${content.slice(firstUseIdx)}`;
20595
20774
  vueCssPaths.length > 0 ? tracePhase("bun/vue-css", () => bunBuild7(mergeBunBuildConfig({
20596
20775
  entrypoints: vueCssPaths,
20597
20776
  naming: `[name].[hash].[ext]`,
20598
- outdir: join35(buildPath, assetsPath ? basename11(assetsPath) : "assets", "css"),
20777
+ outdir: join36(buildPath, assetsPath ? basename11(assetsPath) : "assets", "css"),
20599
20778
  target: "browser",
20600
20779
  throw: false
20601
20780
  }, resolveBunBuildOverride(bunBuildConfig, "vueCss")))) : undefined
@@ -20755,7 +20934,7 @@ ${content.slice(firstUseIdx)}`;
20755
20934
  const injectHMRIntoHTMLFile = (filePath, framework) => {
20756
20935
  if (!hmrClientBundle)
20757
20936
  return;
20758
- let html = readFileSync20(filePath, "utf-8");
20937
+ let html = readFileSync21(filePath, "utf-8");
20759
20938
  if (html.includes("data-hmr-client"))
20760
20939
  return;
20761
20940
  const tag = `<script>window.__HMR_FRAMEWORK__="${framework}";</script><script data-hmr-client>${hmrClientBundle}</script>`;
@@ -20766,7 +20945,7 @@ ${content.slice(firstUseIdx)}`;
20766
20945
  const processHtmlPages = async () => {
20767
20946
  if (!(htmlDir && htmlPagesPath))
20768
20947
  return;
20769
- const outputHtmlPages = isSingle ? join35(buildPath, "pages") : join35(buildPath, basename11(htmlDir), "pages");
20948
+ const outputHtmlPages = isSingle ? join36(buildPath, "pages") : join36(buildPath, basename11(htmlDir), "pages");
20770
20949
  mkdirSync12(outputHtmlPages, { recursive: true });
20771
20950
  cpSync(htmlPagesPath, outputHtmlPages, {
20772
20951
  force: true,
@@ -20791,14 +20970,14 @@ ${content.slice(firstUseIdx)}`;
20791
20970
  const processHtmxPages = async () => {
20792
20971
  if (!(htmxDir && htmxPagesPath))
20793
20972
  return;
20794
- const outputHtmxPages = isSingle ? join35(buildPath, "pages") : join35(buildPath, basename11(htmxDir), "pages");
20973
+ const outputHtmxPages = isSingle ? join36(buildPath, "pages") : join36(buildPath, basename11(htmxDir), "pages");
20795
20974
  mkdirSync12(outputHtmxPages, { recursive: true });
20796
20975
  cpSync(htmxPagesPath, outputHtmxPages, {
20797
20976
  force: true,
20798
20977
  recursive: true
20799
20978
  });
20800
20979
  if (shouldCopyHtmx) {
20801
- const htmxDestDir = isSingle ? buildPath : join35(buildPath, basename11(htmxDir));
20980
+ const htmxDestDir = isSingle ? buildPath : join36(buildPath, basename11(htmxDir));
20802
20981
  copyHtmxVendor(htmxDir, htmxDestDir);
20803
20982
  }
20804
20983
  if (shouldUpdateHtmxAssetPaths) {
@@ -20863,9 +21042,9 @@ ${content.slice(firstUseIdx)}`;
20863
21042
  writeBuildTrace(buildPath);
20864
21043
  return { conventions: conventionsMap, manifest };
20865
21044
  }
20866
- writeFileSync9(join35(buildPath, "manifest.json"), JSON.stringify(manifest, null, "\t"));
21045
+ writeFileSync9(join36(buildPath, "manifest.json"), JSON.stringify(manifest, null, "\t"));
20867
21046
  if (Object.keys(conventionsMap).length > 0) {
20868
- writeFileSync9(join35(buildPath, "conventions.json"), JSON.stringify(conventionsMap, null, "\t"));
21047
+ writeFileSync9(join36(buildPath, "conventions.json"), JSON.stringify(conventionsMap, null, "\t"));
20869
21048
  }
20870
21049
  writeBuildTrace(buildPath);
20871
21050
  if (mode === "production") {
@@ -20928,7 +21107,7 @@ var init_build = __esm(() => {
20928
21107
  init_logger();
20929
21108
  init_validateSafePath();
20930
21109
  isDev2 = env3.NODE_ENV === "development";
20931
- SKIP_DIRS4 = new Set([
21110
+ SKIP_DIRS5 = new Set([
20932
21111
  "build",
20933
21112
  "node_modules",
20934
21113
  ".absolutejs",
@@ -20987,7 +21166,7 @@ var init_build = __esm(() => {
20987
21166
 
20988
21167
  // src/build/buildEmberVendor.ts
20989
21168
  import { mkdirSync as mkdirSync13, existsSync as existsSync28 } from "fs";
20990
- import { join as join36 } from "path";
21169
+ import { join as join37 } from "path";
20991
21170
  import { rm as rm9 } from "fs/promises";
20992
21171
  var {build: bunBuild8 } = globalThis.Bun;
20993
21172
  var toSafeFileName5 = (specifier) => specifier.replace(/^@/, "").replace(/\//g, "_"), generateMacrosShim = () => `// Generated shim for @embroider/macros \u2014 provides minimal runtime
@@ -21039,7 +21218,7 @@ export const importSync = (specifier) => {
21039
21218
  if (standaloneSpecifiers.has(specifier)) {
21040
21219
  return { resolveTo: specifier, specifier };
21041
21220
  }
21042
- const emberInternalPath = join36(cwd2, "node_modules/ember-source/dist/packages", specifier, "index.js");
21221
+ const emberInternalPath = join37(cwd2, "node_modules/ember-source/dist/packages", specifier, "index.js");
21043
21222
  if (!existsSync28(emberInternalPath)) {
21044
21223
  throw new Error(`Ember vendor build: cannot find ${specifier} at ${emberInternalPath}. ` + `Is ember-source installed and at least 6.12?`);
21045
21224
  }
@@ -21071,7 +21250,7 @@ export const importSync = (specifier) => {
21071
21250
  if (standalonePackages.has(args.path)) {
21072
21251
  return;
21073
21252
  }
21074
- const internal = join36(cwd2, "node_modules/ember-source/dist/packages", args.path, "index.js");
21253
+ const internal = join37(cwd2, "node_modules/ember-source/dist/packages", args.path, "index.js");
21075
21254
  if (existsSync28(internal)) {
21076
21255
  return { path: internal };
21077
21256
  }
@@ -21079,16 +21258,16 @@ export const importSync = (specifier) => {
21079
21258
  });
21080
21259
  }
21081
21260
  }), buildEmberVendor = async (buildDir, cwd2 = process.cwd()) => {
21082
- const vendorDir = join36(buildDir, "ember", "vendor");
21261
+ const vendorDir = join37(buildDir, "ember", "vendor");
21083
21262
  mkdirSync13(vendorDir, { recursive: true });
21084
- const tmpDir = join36(buildDir, "_ember_vendor_tmp");
21263
+ const tmpDir = join37(buildDir, "_ember_vendor_tmp");
21085
21264
  mkdirSync13(tmpDir, { recursive: true });
21086
- const macrosShimPath = join36(tmpDir, "embroider_macros_shim.js");
21265
+ const macrosShimPath = join37(tmpDir, "embroider_macros_shim.js");
21087
21266
  await Bun.write(macrosShimPath, generateMacrosShim());
21088
21267
  const resolutions = REQUIRED_EMBER_SPECIFIERS.map((specifier) => resolveEmberSpecifier(specifier, cwd2));
21089
21268
  const entrypoints = await Promise.all(resolutions.map(async (resolution) => {
21090
21269
  const safeName = toSafeFileName5(resolution.specifier);
21091
- const entryPath = join36(tmpDir, `${safeName}.js`);
21270
+ const entryPath = join37(tmpDir, `${safeName}.js`);
21092
21271
  const source = resolution.specifier === "@embroider/macros" ? `export * from ${JSON.stringify(macrosShimPath)};
21093
21272
  ` : generateVendorEntrySource2(resolution);
21094
21273
  await Bun.write(entryPath, source);
@@ -21141,7 +21320,7 @@ __export(exports_dependencyGraph, {
21141
21320
  buildInitialDependencyGraph: () => buildInitialDependencyGraph,
21142
21321
  addFileToGraph: () => addFileToGraph
21143
21322
  });
21144
- import { existsSync as existsSync29, readFileSync as readFileSync21 } from "fs";
21323
+ import { existsSync as existsSync29, readFileSync as readFileSync22 } from "fs";
21145
21324
  var {Glob: Glob9 } = globalThis.Bun;
21146
21325
  import { resolve as resolve29 } from "path";
21147
21326
  var emptyDependencyGraph, tsTranspiler, jsTranspiler, loaderForFile = (filePath) => {
@@ -21312,15 +21491,15 @@ var emptyDependencyGraph, tsTranspiler, jsTranspiler, loaderForFile = (filePath)
21312
21491
  const lowerPath = filePath.toLowerCase();
21313
21492
  const isSvelteOrVue = lowerPath.endsWith(".svelte") || lowerPath.endsWith(".vue");
21314
21493
  if (loader === "html") {
21315
- const content = readFileSync21(filePath, "utf-8");
21494
+ const content = readFileSync22(filePath, "utf-8");
21316
21495
  return extractHtmlDependencies(filePath, content);
21317
21496
  }
21318
21497
  if (loader === "tsx" || loader === "js") {
21319
- const content = readFileSync21(filePath, "utf-8");
21498
+ const content = readFileSync22(filePath, "utf-8");
21320
21499
  return extractJsDependencies(filePath, content, loader);
21321
21500
  }
21322
21501
  if (isSvelteOrVue) {
21323
- const content = readFileSync21(filePath, "utf-8");
21502
+ const content = readFileSync22(filePath, "utf-8");
21324
21503
  return extractSvelteVueDependencies(filePath, content);
21325
21504
  }
21326
21505
  return [];
@@ -21463,7 +21642,7 @@ var init_clientManager = __esm(() => {
21463
21642
  });
21464
21643
 
21465
21644
  // src/dev/pathUtils.ts
21466
- import { existsSync as existsSync30, readdirSync as readdirSync4, readFileSync as readFileSync22 } from "fs";
21645
+ import { existsSync as existsSync30, readdirSync as readdirSync5, readFileSync as readFileSync23 } from "fs";
21467
21646
  import { dirname as dirname20, resolve as resolve31 } from "path";
21468
21647
  var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
21469
21648
  if (shouldIgnorePath(filePath, resolved)) {
@@ -21545,7 +21724,7 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
21545
21724
  const walk = (dir) => {
21546
21725
  let entries;
21547
21726
  try {
21548
- entries = readdirSync4(dir, { withFileTypes: true });
21727
+ entries = readdirSync5(dir, { withFileTypes: true });
21549
21728
  } catch {
21550
21729
  return;
21551
21730
  }
@@ -21563,7 +21742,7 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
21563
21742
  }
21564
21743
  let source;
21565
21744
  try {
21566
- source = readFileSync22(full, "utf8");
21745
+ source = readFileSync23(full, "utf8");
21567
21746
  } catch {
21568
21747
  continue;
21569
21748
  }
@@ -21641,8 +21820,8 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
21641
21820
  roots.push(abs);
21642
21821
  }
21643
21822
  try {
21644
- const { readdirSync: readdirSync5 } = __require("fs");
21645
- const entries = readdirSync5(cwd2, { withFileTypes: true });
21823
+ const { readdirSync: readdirSync6 } = __require("fs");
21824
+ const entries = readdirSync6(cwd2, { withFileTypes: true });
21646
21825
  for (const entry of entries) {
21647
21826
  if (!entry.isDirectory())
21648
21827
  continue;
@@ -21722,8 +21901,8 @@ var init_pathUtils = __esm(() => {
21722
21901
 
21723
21902
  // src/dev/fileWatcher.ts
21724
21903
  import { watch } from "fs";
21725
- import { existsSync as existsSync31, readdirSync as readdirSync5, statSync as statSync4 } from "fs";
21726
- import { dirname as dirname21, join as join37, resolve as resolve32 } from "path";
21904
+ import { existsSync as existsSync31, readdirSync as readdirSync6, statSync as statSync4 } from "fs";
21905
+ import { dirname as dirname21, join as join38, resolve as resolve32 } from "path";
21727
21906
  var safeRemoveFromGraph = (graph, fullPath) => {
21728
21907
  try {
21729
21908
  removeFileFromGraph(graph, fullPath);
@@ -21748,7 +21927,7 @@ var safeRemoveFromGraph = (graph, fullPath) => {
21748
21927
  const atomicRecoveryScan = (eventDir) => {
21749
21928
  let entries;
21750
21929
  try {
21751
- entries = readdirSync5(eventDir);
21930
+ entries = readdirSync6(eventDir);
21752
21931
  } catch {
21753
21932
  return;
21754
21933
  }
@@ -21756,7 +21935,7 @@ var safeRemoveFromGraph = (graph, fullPath) => {
21756
21935
  for (const name of entries) {
21757
21936
  if (shouldSkipFilename(name, isStylesDir))
21758
21937
  continue;
21759
- const child = join37(eventDir, name).replace(/\\/g, "/");
21938
+ const child = join38(eventDir, name).replace(/\\/g, "/");
21760
21939
  let st2;
21761
21940
  try {
21762
21941
  st2 = statSync4(child);
@@ -21781,12 +21960,12 @@ var safeRemoveFromGraph = (graph, fullPath) => {
21781
21960
  return;
21782
21961
  if (shouldSkipFilename(filename, isStylesDir)) {
21783
21962
  if (event === "rename") {
21784
- const eventDir = dirname21(join37(absolutePath, filename)).replace(/\\/g, "/");
21963
+ const eventDir = dirname21(join38(absolutePath, filename)).replace(/\\/g, "/");
21785
21964
  atomicRecoveryScan(eventDir);
21786
21965
  }
21787
21966
  return;
21788
21967
  }
21789
- const fullPath = join37(absolutePath, filename).replace(/\\/g, "/");
21968
+ const fullPath = join38(absolutePath, filename).replace(/\\/g, "/");
21790
21969
  if (shouldIgnorePath(fullPath, state.resolvedPaths)) {
21791
21970
  return;
21792
21971
  }
@@ -21938,10 +22117,10 @@ var init_assetStore = __esm(() => {
21938
22117
  });
21939
22118
 
21940
22119
  // src/dev/fileHashTracker.ts
21941
- import { readFileSync as readFileSync23 } from "fs";
22120
+ import { readFileSync as readFileSync24 } from "fs";
21942
22121
  var computeFileHash = (filePath) => {
21943
22122
  try {
21944
- const fileContent = readFileSync23(filePath);
22123
+ const fileContent = readFileSync24(filePath);
21945
22124
  return Number(Bun.hash(fileContent));
21946
22125
  } catch {
21947
22126
  return UNFOUND_INDEX;
@@ -22155,15 +22334,15 @@ __export(exports_resolveOwningComponents, {
22155
22334
  resolveDescendantsOfParent: () => resolveDescendantsOfParent,
22156
22335
  invalidateResourceIndex: () => invalidateResourceIndex
22157
22336
  });
22158
- import { readdirSync as readdirSync6, readFileSync as readFileSync24, statSync as statSync5 } from "fs";
22159
- import { dirname as dirname22, extname as extname9, join as join38, resolve as resolve36 } from "path";
22160
- import ts14 from "typescript";
22337
+ import { readdirSync as readdirSync7, readFileSync as readFileSync25, statSync as statSync5 } from "fs";
22338
+ import { dirname as dirname22, extname as extname9, join as join39, resolve as resolve36 } from "path";
22339
+ import ts15 from "typescript";
22161
22340
  var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") || file5.endsWith(".tsx"), walkAngularSourceFiles = (root) => {
22162
22341
  const out = [];
22163
22342
  const visit = (dir) => {
22164
22343
  let entries;
22165
22344
  try {
22166
- entries = readdirSync6(dir, { withFileTypes: true });
22345
+ entries = readdirSync7(dir, { withFileTypes: true });
22167
22346
  } catch {
22168
22347
  return;
22169
22348
  }
@@ -22171,7 +22350,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") ||
22171
22350
  if (entry.name.startsWith(".") || entry.name === "node_modules") {
22172
22351
  continue;
22173
22352
  }
22174
- const full = join38(dir, entry.name);
22353
+ const full = join39(dir, entry.name);
22175
22354
  if (entry.isDirectory()) {
22176
22355
  visit(full);
22177
22356
  } else if (entry.isFile() && isAngularSourceFile(entry.name)) {
@@ -22183,13 +22362,13 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") ||
22183
22362
  return out;
22184
22363
  }, getStringPropertyValue = (obj, name) => {
22185
22364
  for (const prop of obj.properties) {
22186
- if (!ts14.isPropertyAssignment(prop))
22365
+ if (!ts15.isPropertyAssignment(prop))
22187
22366
  continue;
22188
- const propName = ts14.isIdentifier(prop.name) ? prop.name.text : ts14.isStringLiteral(prop.name) ? prop.name.text : null;
22367
+ const propName = ts15.isIdentifier(prop.name) ? prop.name.text : ts15.isStringLiteral(prop.name) ? prop.name.text : null;
22189
22368
  if (propName !== name)
22190
22369
  continue;
22191
22370
  const init = prop.initializer;
22192
- if (ts14.isStringLiteral(init) || ts14.isNoSubstitutionTemplateLiteral(init)) {
22371
+ if (ts15.isStringLiteral(init) || ts15.isNoSubstitutionTemplateLiteral(init)) {
22193
22372
  return init.text;
22194
22373
  }
22195
22374
  }
@@ -22197,16 +22376,16 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") ||
22197
22376
  }, getStringArrayProperty = (obj, name) => {
22198
22377
  const out = [];
22199
22378
  for (const prop of obj.properties) {
22200
- if (!ts14.isPropertyAssignment(prop))
22379
+ if (!ts15.isPropertyAssignment(prop))
22201
22380
  continue;
22202
- const propName = ts14.isIdentifier(prop.name) ? prop.name.text : ts14.isStringLiteral(prop.name) ? prop.name.text : null;
22381
+ const propName = ts15.isIdentifier(prop.name) ? prop.name.text : ts15.isStringLiteral(prop.name) ? prop.name.text : null;
22203
22382
  if (propName !== name)
22204
22383
  continue;
22205
22384
  const init = prop.initializer;
22206
- if (!ts14.isArrayLiteralExpression(init))
22385
+ if (!ts15.isArrayLiteralExpression(init))
22207
22386
  continue;
22208
22387
  for (const element of init.elements) {
22209
- if (ts14.isStringLiteral(element) || ts14.isNoSubstitutionTemplateLiteral(element)) {
22388
+ if (ts15.isStringLiteral(element) || ts15.isNoSubstitutionTemplateLiteral(element)) {
22210
22389
  out.push(element.text);
22211
22390
  }
22212
22391
  }
@@ -22215,31 +22394,31 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") ||
22215
22394
  }, parseDecoratedClasses = (filePath) => {
22216
22395
  let source;
22217
22396
  try {
22218
- source = readFileSync24(filePath, "utf8");
22397
+ source = readFileSync25(filePath, "utf8");
22219
22398
  } catch {
22220
22399
  return [];
22221
22400
  }
22222
- const sourceFile = ts14.createSourceFile(filePath, source, ts14.ScriptTarget.ES2022, true, ts14.ScriptKind.TS);
22401
+ const sourceFile = ts15.createSourceFile(filePath, source, ts15.ScriptTarget.ES2022, true, ts15.ScriptKind.TS);
22223
22402
  const out = [];
22224
22403
  const visit = (node) => {
22225
- if (ts14.isClassDeclaration(node) && node.name) {
22226
- for (const decorator of ts14.getDecorators(node) ?? []) {
22404
+ if (ts15.isClassDeclaration(node) && node.name) {
22405
+ for (const decorator of ts15.getDecorators(node) ?? []) {
22227
22406
  const expr = decorator.expression;
22228
- if (!ts14.isCallExpression(expr))
22407
+ if (!ts15.isCallExpression(expr))
22229
22408
  continue;
22230
22409
  const fn2 = expr.expression;
22231
- if (!ts14.isIdentifier(fn2))
22410
+ if (!ts15.isIdentifier(fn2))
22232
22411
  continue;
22233
22412
  const kind = ENTITY_DECORATORS[fn2.text];
22234
22413
  if (!kind)
22235
22414
  continue;
22236
22415
  let extendsName = null;
22237
22416
  for (const heritage of node.heritageClauses ?? []) {
22238
- if (heritage.token !== ts14.SyntaxKind.ExtendsKeyword) {
22417
+ if (heritage.token !== ts15.SyntaxKind.ExtendsKeyword) {
22239
22418
  continue;
22240
22419
  }
22241
22420
  const first = heritage.types[0];
22242
- if (first && ts14.isIdentifier(first.expression)) {
22421
+ if (first && ts15.isIdentifier(first.expression)) {
22243
22422
  extendsName = first.expression.text;
22244
22423
  }
22245
22424
  break;
@@ -22252,7 +22431,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") ||
22252
22431
  extendsName
22253
22432
  };
22254
22433
  const arg = expr.arguments[0];
22255
- if (arg && ts14.isObjectLiteralExpression(arg) && kind === "component") {
22434
+ if (arg && ts15.isObjectLiteralExpression(arg) && kind === "component") {
22256
22435
  const tplUrl = getStringPropertyValue(arg, "templateUrl");
22257
22436
  if (tplUrl)
22258
22437
  entry.templateUrls.push(tplUrl);
@@ -22265,7 +22444,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") ||
22265
22444
  break;
22266
22445
  }
22267
22446
  }
22268
- ts14.forEachChild(node, visit);
22447
+ ts15.forEachChild(node, visit);
22269
22448
  };
22270
22449
  visit(sourceFile);
22271
22450
  return out;
@@ -22305,16 +22484,16 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") ||
22305
22484
  }, indexByRoot, resolveParentClassFile = (parentName, childFilePath, angularRoot) => {
22306
22485
  let source;
22307
22486
  try {
22308
- source = readFileSync24(childFilePath, "utf8");
22487
+ source = readFileSync25(childFilePath, "utf8");
22309
22488
  } catch {
22310
22489
  return null;
22311
22490
  }
22312
- const sf = ts14.createSourceFile(childFilePath, source, ts14.ScriptTarget.ES2022, true, ts14.ScriptKind.TS);
22491
+ const sf = ts15.createSourceFile(childFilePath, source, ts15.ScriptTarget.ES2022, true, ts15.ScriptKind.TS);
22313
22492
  const childDir = dirname22(childFilePath);
22314
22493
  for (const stmt of sf.statements) {
22315
- if (!ts14.isImportDeclaration(stmt))
22494
+ if (!ts15.isImportDeclaration(stmt))
22316
22495
  continue;
22317
- if (!ts14.isStringLiteral(stmt.moduleSpecifier))
22496
+ if (!ts15.isStringLiteral(stmt.moduleSpecifier))
22318
22497
  continue;
22319
22498
  const clause = stmt.importClause;
22320
22499
  if (!clause || clause.isTypeOnly)
@@ -22322,7 +22501,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") ||
22322
22501
  let matchesName = false;
22323
22502
  if (clause.name && clause.name.text === parentName)
22324
22503
  matchesName = true;
22325
- if (!matchesName && clause.namedBindings && ts14.isNamedImports(clause.namedBindings)) {
22504
+ if (!matchesName && clause.namedBindings && ts15.isNamedImports(clause.namedBindings)) {
22326
22505
  for (const el of clause.namedBindings.elements) {
22327
22506
  if (el.isTypeOnly)
22328
22507
  continue;
@@ -22543,8 +22722,8 @@ __export(exports_moduleServer, {
22543
22722
  createModuleServer: () => createModuleServer,
22544
22723
  SRC_URL_PREFIX: () => SRC_URL_PREFIX
22545
22724
  });
22546
- import { existsSync as existsSync32, readFileSync as readFileSync25, statSync as statSync6 } from "fs";
22547
- import { basename as basename13, dirname as dirname23, extname as extname10, join as join39, resolve as resolve37, relative as relative14 } from "path";
22725
+ import { existsSync as existsSync32, readFileSync as readFileSync26, statSync as statSync6 } from "fs";
22726
+ import { basename as basename13, dirname as dirname23, extname as extname10, join as join40, resolve as resolve37, relative as relative14 } from "path";
22548
22727
  var SRC_PREFIX = "/@src/", jsTranspiler2, tsTranspiler2, tsxTranspiler, TRANSPILABLE, ALL_EXPORTS_RE, STRING_CONTENTS_RE, preserveTypeExports = (originalSource, transpiled, valueExports) => {
22549
22728
  const codeOnly = originalSource.replace(STRING_CONTENTS_RE, '""');
22550
22729
  const allExports = [];
@@ -22616,9 +22795,9 @@ ${stubs}
22616
22795
  const subpath = isScoped ? parts.slice(2).join("/") : parts.slice(1).join("/");
22617
22796
  if (!subpath) {
22618
22797
  const pkgDir = resolve37(projectRoot, "node_modules", packageName ?? "");
22619
- const pkgJsonPath = join39(pkgDir, "package.json");
22798
+ const pkgJsonPath = join40(pkgDir, "package.json");
22620
22799
  if (existsSync32(pkgJsonPath)) {
22621
- const pkg = JSON.parse(readFileSync25(pkgJsonPath, "utf-8"));
22800
+ const pkg = JSON.parse(readFileSync26(pkgJsonPath, "utf-8"));
22622
22801
  const esmEntry = typeof pkg.module === "string" && pkg.module || typeof pkg.browser === "string" && pkg.browser;
22623
22802
  if (esmEntry) {
22624
22803
  const resolved = resolve37(pkgDir, esmEntry);
@@ -22719,7 +22898,7 @@ ${code}`;
22719
22898
  reactFastRefreshWarningEmitted = true;
22720
22899
  logWarn("React HMR is blocked: this Bun build ignores " + "`reactFastRefresh` on Bun.Transpiler, so component state " + "cannot be preserved across edits. Tracking " + "https://github.com/oven-sh/bun/pull/28312 \u2014 if it still has " + "not merged, leave a \uD83D\uDC4D on the PR so the Bun team knows it " + "is blocking you. Until then, React edits trigger a full " + "reload instead of a fast refresh.");
22721
22900
  }, transformReactFile = (filePath, projectRoot, rewriter) => {
22722
- const raw = readFileSync25(filePath, "utf-8");
22901
+ const raw = readFileSync26(filePath, "utf-8");
22723
22902
  const valueExports = tsxTranspiler.scan(raw).exports;
22724
22903
  let transpiled = reactTranspiler.transformSync(raw);
22725
22904
  transpiled = preserveTypeExports(raw, transpiled, valueExports);
@@ -22735,7 +22914,7 @@ ${transpiled}`;
22735
22914
  transpiled += buildIslandMetadataExports(raw);
22736
22915
  return rewriteImports(transpiled, filePath, projectRoot, rewriter);
22737
22916
  }, transformPlainFile = (filePath, projectRoot, rewriter, vueDir) => {
22738
- const raw = readFileSync25(filePath, "utf-8");
22917
+ const raw = readFileSync26(filePath, "utf-8");
22739
22918
  const ext = extname10(filePath);
22740
22919
  const isTS = ext === ".ts" || ext === ".tsx";
22741
22920
  const isTSX = ext === ".tsx" || ext === ".jsx";
@@ -22901,7 +23080,7 @@ ${code}`;
22901
23080
  ` + ` var __hmr_accept = function(cb) { window.__SVELTE_HMR_ACCEPT__[${JSON.stringify(moduleUrl)}] = cb; };`);
22902
23081
  return code.replace(/import\.meta\.hot\.accept\(/g, "__hmr_accept(");
22903
23082
  }, transformSvelteFile = async (filePath, projectRoot, rewriter, stylePreprocessors) => {
22904
- const raw = readFileSync25(filePath, "utf-8");
23083
+ const raw = readFileSync26(filePath, "utf-8");
22905
23084
  if (!svelteCompiler) {
22906
23085
  svelteCompiler = await import("svelte/compiler");
22907
23086
  }
@@ -22963,7 +23142,7 @@ export default __script__;`;
22963
23142
  return `${cssInjection}
22964
23143
  ${code}`;
22965
23144
  }, transformVueFile = async (filePath, projectRoot, rewriter, vueDir, stylePreprocessors) => {
22966
- const rawSource = readFileSync25(filePath, "utf-8");
23145
+ const rawSource = readFileSync26(filePath, "utf-8");
22967
23146
  const raw = addAutoRouterSetupApp(rawSource);
22968
23147
  if (!vueCompiler) {
22969
23148
  vueCompiler = await import("@vue/compiler-sfc");
@@ -23018,7 +23197,7 @@ ${code}`;
23018
23197
  }
23019
23198
  });
23020
23199
  }, handleCssRequest = (filePath) => {
23021
- const raw = readFileSync25(filePath, "utf-8");
23200
+ const raw = readFileSync26(filePath, "utf-8");
23022
23201
  const escaped = raw.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$/g, "\\$");
23023
23202
  return [
23024
23203
  `const style = document.createElement('style');`,
@@ -23677,7 +23856,7 @@ var init_simpleHTMXHMR = () => {};
23677
23856
 
23678
23857
  // src/dev/rebuildTrigger.ts
23679
23858
  import { existsSync as existsSync33, rmSync as rmSync3 } from "fs";
23680
- import { basename as basename14, dirname as dirname25, join as join40, relative as relative16, resolve as resolve41, sep as sep4 } from "path";
23859
+ import { basename as basename14, dirname as dirname25, join as join41, relative as relative16, resolve as resolve41, sep as sep4 } from "path";
23681
23860
  var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequentially = (items, action) => items.reduce((chain, item) => chain.then(() => action(item)), Promise.resolve()), getStyleTransformConfig = (config) => createStyleTransformConfig(config.stylePreprocessors, config.postcss), recompileTailwindForFastPath = async (state, config, files) => {
23682
23861
  if (!config.tailwind)
23683
23862
  return;
@@ -23794,8 +23973,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
23794
23973
  const relJs = `${rel.slice(0, -ext[0].length)}.js`;
23795
23974
  const generatedDir = getFrameworkGeneratedDir(framework, cwd2);
23796
23975
  for (const candidate of [
23797
- join40(generatedDir, relJs),
23798
- `${join40(generatedDir, relJs)}.map`
23976
+ join41(generatedDir, relJs),
23977
+ `${join41(generatedDir, relJs)}.map`
23799
23978
  ]) {
23800
23979
  try {
23801
23980
  rmSync3(candidate, { force: true });
@@ -24657,12 +24836,12 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
24657
24836
  try {
24658
24837
  const { primeComponentFingerprint: primeComponentFingerprint2 } = await Promise.resolve().then(() => (init_fastHmrCompiler(), exports_fastHmrCompiler));
24659
24838
  const { readdir: readdir5 } = await import("fs/promises");
24660
- const { join: join41 } = await import("path");
24839
+ const { join: join42 } = await import("path");
24661
24840
  const walk = async (dir) => {
24662
24841
  const entries = await readdir5(dir, { withFileTypes: true });
24663
24842
  const files = [];
24664
24843
  for (const entry of entries) {
24665
- const full = join41(dir, entry.name);
24844
+ const full = join42(dir, entry.name);
24666
24845
  if (entry.isDirectory()) {
24667
24846
  files.push(...await walk(full));
24668
24847
  } else if (entry.isFile() && entry.name.endsWith(".ts") && !entry.name.endsWith(".d.ts")) {
@@ -24715,9 +24894,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
24715
24894
  const editedProvidersChain = providersImport && angularFiles.some((file5) => resolve41(file5) === resolve41(providersImport.absolutePath) || resolve41(file5).startsWith(`${resolve41(angularDir)}/`));
24716
24895
  const pageEntries = editedProvidersChain && initialPageEntries.length === 0 ? (() => {
24717
24896
  const allPages = [];
24718
- const { readdirSync: readdirSync7 } = __require("fs");
24897
+ const { readdirSync: readdirSync8 } = __require("fs");
24719
24898
  const walk = (dir) => {
24720
- for (const entry of readdirSync7(dir, {
24899
+ for (const entry of readdirSync8(dir, {
24721
24900
  withFileTypes: true
24722
24901
  })) {
24723
24902
  const full = resolve41(dir, entry.name);
@@ -25128,7 +25307,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
25128
25307
  const { vueServerPaths, vueIndexPaths, vueClientPaths, vueCssPaths } = await compileVue2(vueFiles, vueDir, true, getStyleTransformConfig(state.config));
25129
25308
  const serverEntries = [...vueServerPaths];
25130
25309
  const clientEntries = [...vueIndexPaths, ...vueClientPaths];
25131
- const cssOutDir = join40(buildDir, state.resolvedPaths.assetsDir ? basename14(state.resolvedPaths.assetsDir) : "assets", "css");
25310
+ const cssOutDir = join41(buildDir, state.resolvedPaths.assetsDir ? basename14(state.resolvedPaths.assetsDir) : "assets", "css");
25132
25311
  const { serverRoot, serverOutDir } = await computeServerOutPaths(state.resolvedPaths, "vue");
25133
25312
  const [serverResult, clientResult, cssResult] = await Promise.all([
25134
25313
  serverEntries.length > 0 ? bunBuild9({
@@ -26123,7 +26302,7 @@ __export(exports_buildDepVendor, {
26123
26302
  buildDepVendor: () => buildDepVendor
26124
26303
  });
26125
26304
  import { mkdirSync as mkdirSync14 } from "fs";
26126
- import { join as join41 } from "path";
26305
+ import { join as join42 } from "path";
26127
26306
  import { rm as rm10 } from "fs/promises";
26128
26307
  var {build: bunBuild9, Glob: Glob10 } = globalThis.Bun;
26129
26308
  var toSafeFileName6 = (specifier) => {
@@ -26177,7 +26356,7 @@ var toSafeFileName6 = (specifier) => {
26177
26356
  framework: Array.from(framework).filter(isResolvable4)
26178
26357
  };
26179
26358
  }, collectTransitiveImports = async (specs, alreadyVendored, alreadyScanned) => {
26180
- const { readFileSync: readFileSync26 } = await import("fs");
26359
+ const { readFileSync: readFileSync27 } = await import("fs");
26181
26360
  const transpiler6 = new Bun.Transpiler({ loader: "js" });
26182
26361
  const newSpecs = new Set;
26183
26362
  for (const spec of specs) {
@@ -26192,7 +26371,7 @@ var toSafeFileName6 = (specifier) => {
26192
26371
  }
26193
26372
  let content;
26194
26373
  try {
26195
- content = readFileSync26(resolved, "utf-8");
26374
+ content = readFileSync27(resolved, "utf-8");
26196
26375
  } catch {
26197
26376
  continue;
26198
26377
  }
@@ -26234,7 +26413,7 @@ var toSafeFileName6 = (specifier) => {
26234
26413
  }), buildDepVendorPass = async (specifiers, vendorDir, tmpDir) => {
26235
26414
  const entries = await Promise.all(specifiers.map(async (specifier) => {
26236
26415
  const safeName = toSafeFileName6(specifier);
26237
- const entryPath = join41(tmpDir, `${safeName}.ts`);
26416
+ const entryPath = join42(tmpDir, `${safeName}.ts`);
26238
26417
  await Bun.write(entryPath, await generateVendorEntrySource(specifier));
26239
26418
  return { entryPath, specifier };
26240
26419
  }));
@@ -26295,9 +26474,9 @@ var toSafeFileName6 = (specifier) => {
26295
26474
  const { dep: initialSpecs, framework: frameworkRoots } = await scanBareImports(directories);
26296
26475
  if (initialSpecs.length === 0 && frameworkRoots.length === 0)
26297
26476
  return {};
26298
- const vendorDir = join41(buildDir, "vendor");
26477
+ const vendorDir = join42(buildDir, "vendor");
26299
26478
  mkdirSync14(vendorDir, { recursive: true });
26300
- const tmpDir = join41(buildDir, "_dep_vendor_tmp");
26479
+ const tmpDir = join42(buildDir, "_dep_vendor_tmp");
26301
26480
  mkdirSync14(tmpDir, { recursive: true });
26302
26481
  const allSpecs = new Set(initialSpecs);
26303
26482
  const alreadyScanned = new Set;
@@ -26998,17 +27177,17 @@ __export(exports_devtoolsJson, {
26998
27177
  normalizeDevtoolsWorkspaceRoot: () => normalizeDevtoolsWorkspaceRoot,
26999
27178
  devtoolsJson: () => devtoolsJson
27000
27179
  });
27001
- import { existsSync as existsSync34, mkdirSync as mkdirSync15, readFileSync as readFileSync26, writeFileSync as writeFileSync10 } from "fs";
27002
- import { dirname as dirname26, join as join42, resolve as resolve43 } from "path";
27180
+ import { existsSync as existsSync34, mkdirSync as mkdirSync15, readFileSync as readFileSync27, writeFileSync as writeFileSync10 } from "fs";
27181
+ import { dirname as dirname26, join as join43, resolve as resolve43 } from "path";
27003
27182
  import { Elysia as Elysia3 } from "elysia";
27004
27183
  var ENDPOINT = "/.well-known/appspecific/com.chrome.devtools.json", UUID_CACHE_KEY = "__absoluteDevtoolsWorkspaceUuid", getGlobalUuid = () => Reflect.get(globalThis, UUID_CACHE_KEY), setGlobalUuid = (uuid) => {
27005
27184
  Reflect.set(globalThis, UUID_CACHE_KEY, uuid);
27006
27185
  return uuid;
27007
- }, isUuidV4 = (value) => /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value), resolveDevtoolsUuidCachePath = (buildDir, uuidCachePath) => resolve43(uuidCachePath ?? join42(buildDir, ".absolute", "chrome-devtools-workspace-uuid")), readCachedUuid = (cachePath) => {
27186
+ }, isUuidV4 = (value) => /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value), resolveDevtoolsUuidCachePath = (buildDir, uuidCachePath) => resolve43(uuidCachePath ?? join43(buildDir, ".absolute", "chrome-devtools-workspace-uuid")), readCachedUuid = (cachePath) => {
27008
27187
  if (!existsSync34(cachePath))
27009
27188
  return null;
27010
27189
  try {
27011
- const value = readFileSync26(cachePath, "utf-8").trim();
27190
+ const value = readFileSync27(cachePath, "utf-8").trim();
27012
27191
  return isUuidV4(value) ? value : null;
27013
27192
  } catch {
27014
27193
  return null;
@@ -27043,11 +27222,11 @@ var ENDPOINT = "/.well-known/appspecific/com.chrome.devtools.json", UUID_CACHE_K
27043
27222
  if (process.env.WSL_DISTRO_NAME) {
27044
27223
  const distro = process.env.WSL_DISTRO_NAME;
27045
27224
  const withoutLeadingSlash = root.replace(/^\//, "");
27046
- return join42("\\\\wsl.localhost", distro, withoutLeadingSlash).replace(/\//g, "\\");
27225
+ return join43("\\\\wsl.localhost", distro, withoutLeadingSlash).replace(/\//g, "\\");
27047
27226
  }
27048
27227
  if (process.env.DOCKER_DESKTOP && !root.startsWith("\\\\")) {
27049
27228
  const withoutLeadingSlash = root.replace(/^\//, "");
27050
- return join42("\\\\wsl.localhost", "docker-desktop-data", withoutLeadingSlash).replace(/\//g, "\\");
27229
+ return join43("\\\\wsl.localhost", "docker-desktop-data", withoutLeadingSlash).replace(/\//g, "\\");
27051
27230
  }
27052
27231
  return root;
27053
27232
  };
@@ -27278,15 +27457,15 @@ __export(exports_prerender, {
27278
27457
  prerender: () => prerender,
27279
27458
  PRERENDER_BYPASS_HEADER: () => PRERENDER_BYPASS_HEADER
27280
27459
  });
27281
- import { mkdirSync as mkdirSync16, readFileSync as readFileSync27 } from "fs";
27282
- import { join as join43 } from "path";
27460
+ import { mkdirSync as mkdirSync16, readFileSync as readFileSync28 } from "fs";
27461
+ import { join as join44 } from "path";
27283
27462
  var SERVER_OUTPUT_LIMIT = 4000, STARTUP_POLL_INTERVAL_MS = 100, DEFAULT_STARTUP_TIMEOUT_MS = 30000, PRERENDER_BYPASS_HEADER = "X-Absolute-Prerender-Bypass", routeToFilename = (route) => route === "/" ? "index.html" : `${route.slice(1).replace(/\//g, "-")}.html`, writeTimestamp = async (htmlPath) => {
27284
27463
  const metaPath = htmlPath.replace(/\.html$/, ".meta");
27285
27464
  await Bun.write(metaPath, String(Date.now()));
27286
27465
  }, readTimestamp = (htmlPath) => {
27287
27466
  const metaPath = htmlPath.replace(/\.html$/, ".meta");
27288
27467
  try {
27289
- const content = readFileSync27(metaPath, "utf-8");
27468
+ const content = readFileSync28(metaPath, "utf-8");
27290
27469
  return Number(content) || 0;
27291
27470
  } catch {
27292
27471
  return 0;
@@ -27345,7 +27524,7 @@ var SERVER_OUTPUT_LIMIT = 4000, STARTUP_POLL_INTERVAL_MS = 100, DEFAULT_STARTUP_
27345
27524
  return false;
27346
27525
  const html = await res.text();
27347
27526
  const fileName = routeToFilename(route);
27348
- const filePath = join43(prerenderDir, fileName);
27527
+ const filePath = join44(prerenderDir, fileName);
27349
27528
  await Bun.write(filePath, html);
27350
27529
  await writeTimestamp(filePath);
27351
27530
  return true;
@@ -27371,13 +27550,13 @@ var SERVER_OUTPUT_LIMIT = 4000, STARTUP_POLL_INTERVAL_MS = 100, DEFAULT_STARTUP_
27371
27550
  }
27372
27551
  const html = await res.text();
27373
27552
  const fileName = routeToFilename(route);
27374
- const filePath = join43(prerenderDir, fileName);
27553
+ const filePath = join44(prerenderDir, fileName);
27375
27554
  await Bun.write(filePath, html);
27376
27555
  await writeTimestamp(filePath);
27377
27556
  result.routes.set(route, filePath);
27378
27557
  log2?.(` Pre-rendered ${route} \u2192 ${fileName} (${html.length} bytes)`);
27379
27558
  }, prerender = async (port, outDir, staticConfig, log2) => {
27380
- const prerenderDir = join43(outDir, "_prerendered");
27559
+ const prerenderDir = join44(outDir, "_prerendered");
27381
27560
  mkdirSync16(prerenderDir, { recursive: true });
27382
27561
  const baseUrl = `http://localhost:${port}`;
27383
27562
  let routes;
@@ -27479,7 +27658,7 @@ __export(exports_serverEntryWatcher, {
27479
27658
  });
27480
27659
  import { existsSync as existsSync38, statSync as statSync8, watch as watch2 } from "fs";
27481
27660
  import { createRequire as createRequire2 } from "module";
27482
- import { dirname as dirname27, join as join46, resolve as resolve46 } from "path";
27661
+ import { dirname as dirname27, join as join47, resolve as resolve46 } from "path";
27483
27662
  var ATOMIC_RECOVERY_WINDOW_MS = 1000, RELOAD_DEBOUNCE_MS = 80, ATOMIC_WRITE_TEMP_PATTERNS2, isAtomicWriteTemp = (filename) => filename.endsWith(".tmp") || filename.includes(".tmp.") || filename.endsWith("~") || filename.startsWith(".#") || ATOMIC_WRITE_TEMP_PATTERNS2.some((re2) => re2.test(filename)), startServerEntryWatcher = () => {
27484
27663
  if (globalThis.__absoluteEntryWatcherStarted)
27485
27664
  return;
@@ -27567,8 +27746,8 @@ var ATOMIC_RECOVERY_WINDOW_MS = 1000, RELOAD_DEBOUNCE_MS = 80, ATOMIC_WRITE_TEMP
27567
27746
  const recoveryScan = (dir) => {
27568
27747
  let entries;
27569
27748
  try {
27570
- const { readdirSync: readdirSync8 } = __require("fs");
27571
- entries = readdirSync8(dir, { withFileTypes: true });
27749
+ const { readdirSync: readdirSync9 } = __require("fs");
27750
+ entries = readdirSync9(dir, { withFileTypes: true });
27572
27751
  } catch {
27573
27752
  return;
27574
27753
  }
@@ -27582,7 +27761,7 @@ var ATOMIC_RECOVERY_WINDOW_MS = 1000, RELOAD_DEBOUNCE_MS = 80, ATOMIC_WRITE_TEMP
27582
27761
  continue;
27583
27762
  let st2;
27584
27763
  try {
27585
- st2 = statSync8(join46(dir, entry.name));
27764
+ st2 = statSync8(join47(dir, entry.name));
27586
27765
  } catch {
27587
27766
  continue;
27588
27767
  }
@@ -28137,8 +28316,8 @@ var handleHTMXPageRequest = async (pagePath) => {
28137
28316
  };
28138
28317
  // src/core/prepare.ts
28139
28318
  init_loadConfig();
28140
- import { existsSync as existsSync36, readdirSync as readdirSync7, readFileSync as readFileSync28 } from "fs";
28141
- import { basename as basename15, join as join44, relative as relative17, resolve as resolve45 } from "path";
28319
+ import { existsSync as existsSync36, readdirSync as readdirSync8, readFileSync as readFileSync29 } from "fs";
28320
+ import { basename as basename15, join as join45, relative as relative17, resolve as resolve45 } from "path";
28142
28321
  import { Elysia as Elysia5 } from "elysia";
28143
28322
 
28144
28323
  // src/core/loadIslandRegistry.ts
@@ -28649,7 +28828,7 @@ var loadPrerenderMap = (prerenderDir) => {
28649
28828
  return map;
28650
28829
  let entries;
28651
28830
  try {
28652
- entries = readdirSync7(prerenderDir);
28831
+ entries = readdirSync8(prerenderDir);
28653
28832
  } catch {
28654
28833
  return map;
28655
28834
  }
@@ -28658,7 +28837,7 @@ var loadPrerenderMap = (prerenderDir) => {
28658
28837
  continue;
28659
28838
  const name = basename15(entry, ".html");
28660
28839
  const route = name === "index" ? "/" : `/${name}`;
28661
- map.set(route, join44(prerenderDir, entry));
28840
+ map.set(route, join45(prerenderDir, entry));
28662
28841
  }
28663
28842
  return map;
28664
28843
  };
@@ -28710,7 +28889,7 @@ var prepare = async (configOrPath) => {
28710
28889
  return result;
28711
28890
  }
28712
28891
  stepStartedAt = performance.now();
28713
- const manifest = JSON.parse(readFileSync28(`${buildDir}/manifest.json`, "utf-8"));
28892
+ const manifest = JSON.parse(readFileSync29(`${buildDir}/manifest.json`, "utf-8"));
28714
28893
  setCurrentIslandManifest(manifest);
28715
28894
  if (config.islands?.registry) {
28716
28895
  setCurrentIslandRegistry(await loadIslandRegistry(config.islands.registry));
@@ -28718,9 +28897,9 @@ var prepare = async (configOrPath) => {
28718
28897
  setCurrentPageIslandMetadata(await loadPageIslandMetadata(config));
28719
28898
  recordStep("load production manifest and island metadata", stepStartedAt);
28720
28899
  stepStartedAt = performance.now();
28721
- const conventionsPath = join44(buildDir, "conventions.json");
28900
+ const conventionsPath = join45(buildDir, "conventions.json");
28722
28901
  if (existsSync36(conventionsPath)) {
28723
- const conventions2 = JSON.parse(readFileSync28(conventionsPath, "utf-8"));
28902
+ const conventions2 = JSON.parse(readFileSync29(conventionsPath, "utf-8"));
28724
28903
  setConventions(conventions2);
28725
28904
  }
28726
28905
  recordStep("load production conventions", stepStartedAt);
@@ -28734,7 +28913,7 @@ var prepare = async (configOrPath) => {
28734
28913
  });
28735
28914
  recordStep("create static plugin", stepStartedAt);
28736
28915
  stepStartedAt = performance.now();
28737
- const prerenderDir = join44(buildDir, "_prerendered");
28916
+ const prerenderDir = join45(buildDir, "_prerendered");
28738
28917
  const prerenderMap = loadPrerenderMap(prerenderDir);
28739
28918
  recordStep("load prerender map", stepStartedAt);
28740
28919
  if (prerenderMap.size > 0) {
@@ -28792,18 +28971,18 @@ import { argv } from "process";
28792
28971
  var {env: env4 } = globalThis.Bun;
28793
28972
 
28794
28973
  // src/dev/devCert.ts
28795
- import { existsSync as existsSync37, mkdirSync as mkdirSync17, readFileSync as readFileSync29, rmSync as rmSync4 } from "fs";
28796
- import { join as join45 } from "path";
28797
- var CERT_DIR = join45(process.cwd(), ".absolutejs");
28798
- var CERT_PATH = join45(CERT_DIR, "cert.pem");
28799
- var KEY_PATH = join45(CERT_DIR, "key.pem");
28974
+ import { existsSync as existsSync37, mkdirSync as mkdirSync17, readFileSync as readFileSync30, rmSync as rmSync4 } from "fs";
28975
+ import { join as join46 } from "path";
28976
+ var CERT_DIR = join46(process.cwd(), ".absolutejs");
28977
+ var CERT_PATH = join46(CERT_DIR, "cert.pem");
28978
+ var KEY_PATH = join46(CERT_DIR, "key.pem");
28800
28979
  var CERT_VALIDITY_DAYS = 365;
28801
28980
  var devLog = (msg) => console.log(`\x1B[2m${new Date().toLocaleTimeString()}\x1B[0m \x1B[36m[dev]\x1B[0m ${msg}`);
28802
28981
  var devWarn = (msg) => console.log(`\x1B[2m${new Date().toLocaleTimeString()}\x1B[0m \x1B[33m[dev]\x1B[0m \x1B[33m${msg}\x1B[0m`);
28803
28982
  var certFilesExist = () => existsSync37(CERT_PATH) && existsSync37(KEY_PATH);
28804
28983
  var isCertExpired = () => {
28805
28984
  try {
28806
- const certPem = readFileSync29(CERT_PATH, "utf-8");
28985
+ const certPem = readFileSync30(CERT_PATH, "utf-8");
28807
28986
  const proc = Bun.spawnSync(["openssl", "x509", "-enddate", "-noout"], {
28808
28987
  stdin: new TextEncoder().encode(certPem)
28809
28988
  });
@@ -28899,8 +29078,8 @@ var loadDevCert = () => {
28899
29078
  return null;
28900
29079
  try {
28901
29080
  return {
28902
- cert: readFileSync29(paths.cert, "utf-8"),
28903
- key: readFileSync29(paths.key, "utf-8")
29081
+ cert: readFileSync30(paths.cert, "utf-8"),
29082
+ key: readFileSync30(paths.key, "utf-8")
28904
29083
  };
28905
29084
  } catch {
28906
29085
  return null;
@@ -29175,7 +29354,7 @@ var generateHeadElement = ({
29175
29354
  };
29176
29355
  // src/utils/defineEnv.ts
29177
29356
  var {env: bunEnv } = globalThis.Bun;
29178
- import { existsSync as existsSync39, readFileSync as readFileSync30 } from "fs";
29357
+ import { existsSync as existsSync39, readFileSync as readFileSync31 } from "fs";
29179
29358
  import { resolve as resolve47 } from "path";
29180
29359
 
29181
29360
  // node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs
@@ -35217,13 +35396,13 @@ var checkEnvFileSecurity = (properties) => {
35217
35396
  const sensitiveKeys = Object.keys(properties).filter(isSensitive);
35218
35397
  if (sensitiveKeys.length === 0)
35219
35398
  return;
35220
- const envContent = readFileSync30(envPath, "utf-8");
35399
+ const envContent = readFileSync31(envPath, "utf-8");
35221
35400
  const presentKeys = sensitiveKeys.filter((key) => envContent.includes(`${key}=`));
35222
35401
  if (presentKeys.length === 0)
35223
35402
  return;
35224
35403
  const gitignorePath = resolve47(cwd2, ".gitignore");
35225
35404
  if (existsSync39(gitignorePath)) {
35226
- const gitignore = readFileSync30(gitignorePath, "utf-8");
35405
+ const gitignore = readFileSync31(gitignorePath, "utf-8");
35227
35406
  if (gitignore.split(`
35228
35407
  `).some((line) => line.trim() === ".env"))
35229
35408
  return;
@@ -35464,5 +35643,5 @@ export {
35464
35643
  ANGULAR_INIT_TIMEOUT_MS
35465
35644
  };
35466
35645
 
35467
- //# debugId=BC09861E4889D03064756E2164756E21
35646
+ //# debugId=C9D7EF143BA9D85D64756E2164756E21
35468
35647
  //# sourceMappingURL=index.js.map