@base44-preview/cli 0.0.33-pr.338.c6ab1f7 → 0.0.33-pr.383.4cb51a6

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/cli/index.js CHANGED
@@ -8933,10 +8933,10 @@ var require_ejs = __commonJS((exports) => {
8933
8933
  exports.localsName = _DEFAULT_LOCALS_NAME;
8934
8934
  exports.promiseImpl = new Function("return this;")().Promise;
8935
8935
  exports.resolveInclude = function(name2, filename, isDir) {
8936
- var dirname6 = path11.dirname;
8936
+ var dirname7 = path11.dirname;
8937
8937
  var extname = path11.extname;
8938
8938
  var resolve = path11.resolve;
8939
- var includePath = resolve(isDir ? filename : dirname6(filename), name2);
8939
+ var includePath = resolve(isDir ? filename : dirname7(filename), name2);
8940
8940
  var ext = extname(name2);
8941
8941
  if (!ext) {
8942
8942
  includePath += ".ejs";
@@ -116858,15 +116858,15 @@ var init_prettier = __esm(() => {
116858
116858
  exports.removeDuplicateSlashes = removeDuplicateSlashes;
116859
116859
  function partitionAbsoluteAndRelative(patterns) {
116860
116860
  const absolute = [];
116861
- const relative2 = [];
116861
+ const relative22 = [];
116862
116862
  for (const pattern of patterns) {
116863
116863
  if (isAbsolute2(pattern)) {
116864
116864
  absolute.push(pattern);
116865
116865
  } else {
116866
- relative2.push(pattern);
116866
+ relative22.push(pattern);
116867
116867
  }
116868
116868
  }
116869
- return [absolute, relative2];
116869
+ return [absolute, relative22];
116870
116870
  }
116871
116871
  exports.partitionAbsoluteAndRelative = partitionAbsoluteAndRelative;
116872
116872
  function isAbsolute2(pattern) {
@@ -131821,7 +131821,7 @@ var require_url = __commonJS((exports) => {
131821
131821
  exports.fromFileSystemPath = fromFileSystemPath;
131822
131822
  exports.toFileSystemPath = toFileSystemPath;
131823
131823
  exports.safePointerToPath = safePointerToPath;
131824
- exports.relative = relative2;
131824
+ exports.relative = relative4;
131825
131825
  var convert_path_to_posix_1 = __importDefault(require_convert_path_to_posix());
131826
131826
  var path_1 = __importStar(__require("path"));
131827
131827
  var forwardSlashPattern = /\//g;
@@ -131971,7 +131971,7 @@ var require_url = __commonJS((exports) => {
131971
131971
  return decodeURIComponent(value).replace(jsonPointerSlash, "/").replace(jsonPointerTilde, "~");
131972
131972
  });
131973
131973
  }
131974
- function relative2(from, to5) {
131974
+ function relative4(from, to5) {
131975
131975
  if (!isFileSystemPath(from) || !isFileSystemPath(to5)) {
131976
131976
  return resolve5(from, to5);
131977
131977
  }
@@ -138038,7 +138038,7 @@ var require_depd = __commonJS((exports, module) => {
138038
138038
  * Copyright(c) 2014-2018 Douglas Christopher Wilson
138039
138039
  * MIT Licensed
138040
138040
  */
138041
- var relative2 = __require("path").relative;
138041
+ var relative4 = __require("path").relative;
138042
138042
  module.exports = depd;
138043
138043
  var basePath = process.cwd();
138044
138044
  function containsNamespace(str, namespace) {
@@ -138234,7 +138234,7 @@ var require_depd = __commonJS((exports, module) => {
138234
138234
  return formatted;
138235
138235
  }
138236
138236
  function formatLocation(callSite) {
138237
- return relative2(basePath, callSite[0]) + ":" + callSite[1] + ":" + callSite[2];
138237
+ return relative4(basePath, callSite[0]) + ":" + callSite[1] + ":" + callSite[2];
138238
138238
  }
138239
138239
  function getStack() {
138240
138240
  var limit = Error.stackTraceLimit;
@@ -155696,7 +155696,7 @@ var require_view = __commonJS((exports, module) => {
155696
155696
  var debug = require_src4()("express:view");
155697
155697
  var path18 = __require("node:path");
155698
155698
  var fs28 = __require("node:fs");
155699
- var dirname11 = path18.dirname;
155699
+ var dirname12 = path18.dirname;
155700
155700
  var basename4 = path18.basename;
155701
155701
  var extname2 = path18.extname;
155702
155702
  var join15 = path18.join;
@@ -155735,7 +155735,7 @@ var require_view = __commonJS((exports, module) => {
155735
155735
  for (var i5 = 0;i5 < roots.length && !path19; i5++) {
155736
155736
  var root2 = roots[i5];
155737
155737
  var loc = resolve5(root2, name2);
155738
- var dir = dirname11(loc);
155738
+ var dir = dirname12(loc);
155739
155739
  var file2 = basename4(loc);
155740
155740
  path19 = this.resolve(dir, file2);
155741
155741
  }
@@ -161382,8 +161382,8 @@ var require_follow_redirects = __commonJS((exports, module) => {
161382
161382
  }
161383
161383
  return parsed;
161384
161384
  }
161385
- function resolveUrl(relative2, base) {
161386
- return useNativeURL ? new URL2(relative2, base) : parseUrl(url3.resolve(base, relative2));
161385
+ function resolveUrl(relative4, base) {
161386
+ return useNativeURL ? new URL2(relative4, base) : parseUrl(url3.resolve(base, relative4));
161387
161387
  }
161388
161388
  function validateUrl(input) {
161389
161389
  if (/^\[/.test(input.hostname) && !/^\[[:0-9a-f]+\]$/i.test(input.hostname)) {
@@ -162852,7 +162852,7 @@ var {
162852
162852
  } = import__.default;
162853
162853
 
162854
162854
  // src/cli/commands/agents/pull.ts
162855
- import { dirname as dirname7, join as join9 } from "node:path";
162855
+ import { dirname as dirname8, join as join9 } from "node:path";
162856
162856
 
162857
162857
  // node_modules/@clack/core/dist/index.mjs
162858
162858
  var import_picocolors = __toESM(require_picocolors(), 1);
@@ -178322,7 +178322,9 @@ import { fileURLToPath } from "node:url";
178322
178322
  var PROJECT_SUBDIR = "base44";
178323
178323
  var CONFIG_FILE_EXTENSION = "jsonc";
178324
178324
  var CONFIG_FILE_EXTENSION_GLOB = "{json,jsonc}";
178325
- var FUNCTION_CONFIG_FILE = `function.${CONFIG_FILE_EXTENSION_GLOB}`;
178325
+ var FUNCTION_CONFIG_GLOB = `**/function.${CONFIG_FILE_EXTENSION_GLOB}`;
178326
+ var ENTRY_FILE_GLOB = "**/entry.{js,ts}";
178327
+ var ENTRY_IGNORE_DOT_PATHS = ["**/*.*/**"];
178326
178328
  var APP_CONFIG_PATTERN = `**/.app.${CONFIG_FILE_EXTENSION_GLOB}`;
178327
178329
  var PROJECT_CONFIG_PATTERNS = [
178328
178330
  `${PROJECT_SUBDIR}/config.${CONFIG_FILE_EXTENSION_GLOB}`,
@@ -185327,7 +185329,7 @@ var generateGlobTasks = normalizeArguments(generateTasks);
185327
185329
  var generateGlobTasksSync = normalizeArgumentsSync(generateTasksSync);
185328
185330
 
185329
185331
  // src/core/project/config.ts
185330
- import { dirname as dirname5, join as join6 } from "node:path";
185332
+ import { dirname as dirname6, join as join6 } from "node:path";
185331
185333
 
185332
185334
  // src/core/resources/agent/schema.ts
185333
185335
  var EntityOperationSchema = exports_external.enum(["create", "update", "delete", "read"]);
@@ -186025,8 +186027,7 @@ var BackendFunctionSchema = FunctionConfigSchema.extend({
186025
186027
  filePaths: exports_external.array(exports_external.string()).min(1, "Function must have at least one file")
186026
186028
  });
186027
186029
  var DeploySingleFunctionResponseSchema = exports_external.object({
186028
- status: exports_external.enum(["deployed", "unchanged"]),
186029
- duration_ms: exports_external.number().optional().nullable()
186030
+ status: exports_external.enum(["deployed", "unchanged"])
186030
186031
  });
186031
186032
  var FunctionAutomationInfoSchema = exports_external.object({
186032
186033
  name: exports_external.string(),
@@ -186082,7 +186083,7 @@ async function listDeployedFunctions() {
186082
186083
  return result.data;
186083
186084
  }
186084
186085
  // src/core/resources/function/config.ts
186085
- import { dirname as dirname4, join as join5 } from "node:path";
186086
+ import { basename as basename2, dirname as dirname4, join as join5, relative } from "node:path";
186086
186087
  async function readFunctionConfig(configPath) {
186087
186088
  const parsed = await readJsonFile(configPath);
186088
186089
  const result = FunctionConfigSchema.safeParse(parsed);
@@ -186096,9 +186097,11 @@ async function readFunction(configPath) {
186096
186097
  const functionDir = dirname4(configPath);
186097
186098
  const entryPath = join5(functionDir, config5.entry);
186098
186099
  if (!await pathExists(entryPath)) {
186099
- throw new FileNotFoundError(`Function entry file not found: ${entryPath} (referenced in ${configPath})`);
186100
+ throw new InvalidInputError(`Function entry file not found: ${entryPath} (referenced in ${configPath})`, {
186101
+ hints: [{ message: "Check the 'entry' field in your function config" }]
186102
+ });
186100
186103
  }
186101
- const filePaths = await globby("*.{js,ts,json}", {
186104
+ const filePaths = await globby("**/*.{js,ts,json}", {
186102
186105
  cwd: functionDir,
186103
186106
  absolute: true
186104
186107
  });
@@ -186109,30 +186112,66 @@ async function readAllFunctions(functionsDir) {
186109
186112
  if (!await pathExists(functionsDir)) {
186110
186113
  return [];
186111
186114
  }
186112
- const configFiles = await globby(`*/${FUNCTION_CONFIG_FILE}`, {
186115
+ const configFiles = await globby(FUNCTION_CONFIG_GLOB, {
186113
186116
  cwd: functionsDir,
186114
186117
  absolute: true
186115
186118
  });
186116
- const functions = await Promise.all(configFiles.map((configPath) => readFunction(configPath)));
186119
+ const entryFiles = await globby(ENTRY_FILE_GLOB, {
186120
+ cwd: functionsDir,
186121
+ absolute: true,
186122
+ ignore: ENTRY_IGNORE_DOT_PATHS
186123
+ });
186124
+ const configFilesDirs = new Set(configFiles.map((f) => dirname4(f)));
186125
+ const entryFilesWithoutConfig = entryFiles.filter((entryFile) => !configFilesDirs.has(dirname4(entryFile)));
186126
+ const functionsFromConfig = await Promise.all(configFiles.map((configPath) => readFunction(configPath)));
186127
+ const functionsWithoutConfig = await Promise.all(entryFilesWithoutConfig.map(async (entryFile) => {
186128
+ const functionDir = dirname4(entryFile);
186129
+ const filePaths = await globby("**/*.{js,ts,json}", {
186130
+ cwd: functionDir,
186131
+ absolute: true
186132
+ });
186133
+ const name2 = relative(functionsDir, functionDir).split(/[/\\]/).join("/");
186134
+ if (!name2) {
186135
+ throw new InvalidInputError("entry.ts found directly in the functions directory — it must be inside a named subfolder", {
186136
+ hints: [
186137
+ {
186138
+ message: `Move ${entryFile} into a subfolder (e.g. functions/myFunc/entry.ts)`
186139
+ }
186140
+ ]
186141
+ });
186142
+ }
186143
+ const entry = basename2(entryFile);
186144
+ return { name: name2, entry, entryPath: entryFile, filePaths };
186145
+ }));
186146
+ const functions = [...functionsFromConfig, ...functionsWithoutConfig];
186117
186147
  const names = new Set;
186118
186148
  for (const fn of functions) {
186119
186149
  if (names.has(fn.name)) {
186120
- throw new Error(`Duplicate function name "${fn.name}"`);
186150
+ throw new InvalidInputError(`Duplicate function name "${fn.name}"`, {
186151
+ hints: [
186152
+ {
186153
+ message: "Ensure each function has a unique name (or path for zero-config functions)."
186154
+ }
186155
+ ]
186156
+ });
186121
186157
  }
186122
186158
  names.add(fn.name);
186123
186159
  }
186124
186160
  return functions;
186125
186161
  }
186126
186162
  // src/core/resources/function/deploy.ts
186127
- import { basename as basename2 } from "node:path";
186163
+ import { dirname as dirname5, relative as relative2 } from "node:path";
186128
186164
  async function loadFunctionCode(fn) {
186165
+ const functionDir = dirname5(fn.entryPath);
186129
186166
  const resolvedFiles = await Promise.all(fn.filePaths.map(async (filePath) => {
186130
186167
  const content = await readTextFile(filePath);
186131
- return { path: basename2(filePath), content };
186168
+ const path11 = relative2(functionDir, filePath).split(/[/\\]/).join("/");
186169
+ return { path: path11, content };
186132
186170
  }));
186133
186171
  return { ...fn, files: resolvedFiles };
186134
186172
  }
186135
186173
  async function deployOne(fn) {
186174
+ const start = Date.now();
186136
186175
  try {
186137
186176
  const functionWithCode = await loadFunctionCode(fn);
186138
186177
  const response = await deploySingleFunction(functionWithCode.name, {
@@ -186143,7 +186182,7 @@ async function deployOne(fn) {
186143
186182
  return {
186144
186183
  name: functionWithCode.name,
186145
186184
  status: response.status,
186146
- durationMs: response.duration_ms
186185
+ durationMs: Date.now() - start
186147
186186
  };
186148
186187
  } catch (error48) {
186149
186188
  return {
@@ -186199,12 +186238,12 @@ async function findConfigInDir(dir) {
186199
186238
  }
186200
186239
  async function findProjectRoot(startPath) {
186201
186240
  let current = startPath || process.cwd();
186202
- while (current !== dirname5(current)) {
186241
+ while (current !== dirname6(current)) {
186203
186242
  const configPath = await findConfigInDir(current);
186204
186243
  if (configPath) {
186205
186244
  return { root: current, configPath };
186206
186245
  }
186207
- current = dirname5(current);
186246
+ current = dirname6(current);
186208
186247
  }
186209
186248
  return null;
186210
186249
  }
@@ -186226,7 +186265,7 @@ async function readProjectConfig(projectRoot) {
186226
186265
  throw new SchemaValidationError("Invalid project configuration", result.error, configPath);
186227
186266
  }
186228
186267
  const project = result.data;
186229
- const configDir = dirname5(configPath);
186268
+ const configDir = dirname6(configPath);
186230
186269
  const [entities, functions, agents, connectors] = await Promise.all([
186231
186270
  entityResource.readAll(join6(configDir, project.entitiesDir)),
186232
186271
  functionResource.readAll(join6(configDir, project.functionsDir)),
@@ -186328,7 +186367,7 @@ async function readAppConfig(projectRoot) {
186328
186367
  // src/core/project/template.ts
186329
186368
  var import_ejs = __toESM(require_ejs(), 1);
186330
186369
  var import_front_matter = __toESM(require_front_matter(), 1);
186331
- import { dirname as dirname6, join as join7 } from "node:path";
186370
+ import { dirname as dirname7, join as join7 } from "node:path";
186332
186371
  async function listTemplates() {
186333
186372
  const parsed = await readJsonFile(getTemplatesIndexPath());
186334
186373
  const result = TemplatesConfigSchema.safeParse(parsed);
@@ -186350,7 +186389,7 @@ async function renderTemplate(template, destPath, data) {
186350
186389
  if (file2.endsWith(".ejs")) {
186351
186390
  const rendered = await import_ejs.default.renderFile(srcPath, data);
186352
186391
  const { attributes, body } = import_front_matter.default(rendered);
186353
- const destFile = attributes.outputFileName ? join7(dirname6(file2), attributes.outputFileName) : file2.replace(/\.ejs$/, "");
186392
+ const destFile = attributes.outputFileName ? join7(dirname7(file2), attributes.outputFileName) : file2.replace(/\.ejs$/, "");
186354
186393
  const destFilePath = join7(destPath, destFile);
186355
186394
  await writeFile(destFilePath, body);
186356
186395
  } else {
@@ -186499,13 +186538,10 @@ function hasResourcesToDeploy(projectData) {
186499
186538
  const hasConnectors = connectors.length > 0;
186500
186539
  return hasEntities || hasFunctions || hasAgents || hasConnectors || hasSite;
186501
186540
  }
186502
- async function deployAll(projectData, options) {
186541
+ async function deployAll(projectData) {
186503
186542
  const { project, entities, functions, agents, connectors } = projectData;
186504
186543
  await entityResource.push(entities);
186505
- await deployFunctionsSequentially(functions, {
186506
- onStart: options?.onFunctionStart,
186507
- onResult: options?.onFunctionResult
186508
- });
186544
+ await functionResource.push(functions);
186509
186545
  await agentResource.push(agents);
186510
186546
  const { results: connectorResults } = await pushConnectors(connectors);
186511
186547
  if (project.site?.outputDirectory) {
@@ -194157,7 +194193,7 @@ function getDashboardUrl(projectId) {
194157
194193
  // src/cli/commands/agents/pull.ts
194158
194194
  async function pullAgentsAction() {
194159
194195
  const { project: project2 } = await readProjectConfig();
194160
- const configDir = dirname7(project2.configPath);
194196
+ const configDir = dirname8(project2.configPath);
194161
194197
  const agentsDir = join9(configDir, project2.agentsDir);
194162
194198
  const remoteAgents = await runTask("Fetching agents from Base44", async () => {
194163
194199
  return await fetchAgents();
@@ -194252,10 +194288,10 @@ function getWhoamiCommand(context) {
194252
194288
  }
194253
194289
 
194254
194290
  // src/cli/commands/connectors/pull.ts
194255
- import { dirname as dirname8, join as join10 } from "node:path";
194291
+ import { dirname as dirname9, join as join10 } from "node:path";
194256
194292
  async function pullConnectorsAction() {
194257
194293
  const { project: project2 } = await readProjectConfig();
194258
- const configDir = dirname8(project2.configPath);
194294
+ const configDir = dirname9(project2.configPath);
194259
194295
  const connectorsDir = join10(configDir, project2.connectorsDir);
194260
194296
  const remoteConnectors = await runTask("Fetching connectors from Base44", async () => {
194261
194297
  return await listConnectors();
@@ -195104,59 +195140,6 @@ function getEntitiesPushCommand(context) {
195104
195140
  }));
195105
195141
  }
195106
195142
 
195107
- // src/cli/utils/parseNames.ts
195108
- function parseNames(args) {
195109
- return args.flatMap((arg) => arg.split(",")).map((n2) => n2.trim()).filter(Boolean);
195110
- }
195111
-
195112
- // src/cli/commands/functions/delete.ts
195113
- async function deleteFunctionsAction(names) {
195114
- let deleted = 0;
195115
- let notFound = 0;
195116
- let errors4 = 0;
195117
- for (const name2 of names) {
195118
- try {
195119
- await deleteSingleFunction(name2);
195120
- R2.success(`${name2} deleted`);
195121
- deleted++;
195122
- } catch (error48) {
195123
- if (error48 instanceof ApiError && error48.statusCode === 404) {
195124
- R2.warn(`Function "${name2}" not found on remote`);
195125
- notFound++;
195126
- } else {
195127
- R2.error(`${name2} error: ${error48 instanceof Error ? error48.message : String(error48)}`);
195128
- errors4++;
195129
- }
195130
- }
195131
- }
195132
- if (names.length === 1) {
195133
- if (deleted)
195134
- return { outroMessage: `Function "${names[0]}" deleted` };
195135
- if (notFound)
195136
- return { outroMessage: `Function "${names[0]}" not found` };
195137
- return { outroMessage: `Failed to delete "${names[0]}"` };
195138
- }
195139
- const parts = [];
195140
- if (deleted > 0)
195141
- parts.push(`${deleted} deleted`);
195142
- if (notFound > 0)
195143
- parts.push(`${notFound} not found`);
195144
- if (errors4 > 0)
195145
- parts.push(`${errors4} error${errors4 !== 1 ? "s" : ""}`);
195146
- return { outroMessage: parts.join(", ") };
195147
- }
195148
- function getDeleteCommand(context) {
195149
- return new Command("delete").description("Delete deployed functions").argument("<names...>", "Function names to delete").action(async (rawNames) => {
195150
- await runCommand(() => {
195151
- const names = parseNames(rawNames);
195152
- if (names.length === 0) {
195153
- throw new InvalidInputError("At least one function name is required");
195154
- }
195155
- return deleteFunctionsAction(names);
195156
- }, { requireAuth: true }, context);
195157
- });
195158
- }
195159
-
195160
195143
  // src/cli/utils/formatDeployResult.ts
195161
195144
  function formatDuration(ms) {
195162
195145
  return `${(ms / 1000).toFixed(1)}s`;
@@ -195173,6 +195156,11 @@ function formatDeployResult(result) {
195173
195156
  }
195174
195157
  }
195175
195158
 
195159
+ // src/cli/utils/parseNames.ts
195160
+ function parseNames(args) {
195161
+ return args.flatMap((arg) => arg.split(",")).map((n2) => n2.trim()).filter(Boolean);
195162
+ }
195163
+
195176
195164
  // src/cli/commands/functions/deploy.ts
195177
195165
  function resolveFunctionsToDeploy(names, allFunctions) {
195178
195166
  if (names.length === 0)
@@ -195197,11 +195185,11 @@ function formatPruneResults(pruneResults) {
195197
195185
  }
195198
195186
  }
195199
195187
  function buildDeploySummary(results) {
195200
- const succeeded = results.filter((r) => r.status !== "error").length;
195188
+ const deployed = results.filter((r) => r.status !== "error").length;
195201
195189
  const failed = results.filter((r) => r.status === "error").length;
195202
195190
  const parts = [];
195203
- if (succeeded > 0)
195204
- parts.push(`${succeeded}/${results.length} succeeded`);
195191
+ if (deployed > 0)
195192
+ parts.push(`${deployed}/${results.length} deployed`);
195205
195193
  if (failed > 0)
195206
195194
  parts.push(`${failed} error${failed !== 1 ? "s" : ""}`);
195207
195195
  return parts.join(", ") || "No functions deployed";
@@ -195270,7 +195258,7 @@ function getListCommand(context) {
195270
195258
 
195271
195259
  // src/cli/commands/functions/index.ts
195272
195260
  function getFunctionsCommand(context) {
195273
- return new Command("functions").description("Manage backend functions").addCommand(getDeployCommand(context)).addCommand(getListCommand(context)).addCommand(getDeleteCommand(context));
195261
+ return new Command("functions").description("Manage backend functions").addCommand(getDeployCommand(context)).addCommand(getListCommand(context));
195274
195262
  }
195275
195263
 
195276
195264
  // src/cli/commands/project/create.ts
@@ -195490,17 +195478,11 @@ ${summaryLines.join(`
195490
195478
  ${summaryLines.join(`
195491
195479
  `)}`);
195492
195480
  }
195493
- let functionCompleted = 0;
195494
- const functionTotal = functions.length;
195495
- const result = await deployAll(projectData, {
195496
- onFunctionStart: (names) => {
195497
- const label = names.length === 1 ? names[0] : `${names.length} functions`;
195498
- R2.step(theme.styles.dim(`[${functionCompleted + 1}/${functionTotal}] Deploying ${label}...`));
195499
- },
195500
- onFunctionResult: (r) => {
195501
- functionCompleted++;
195502
- formatDeployResult(r);
195503
- }
195481
+ const result = await runTask("Deploying your app...", async () => {
195482
+ return await deployAll(projectData);
195483
+ }, {
195484
+ successMessage: theme.colors.base44Orange("Deployment completed"),
195485
+ errorMessage: "Deployment failed"
195504
195486
  });
195505
195487
  const needsOAuth = filterPendingOAuth(result.connectorResults ?? []);
195506
195488
  if (needsOAuth.length > 0) {
@@ -195863,7 +195845,7 @@ function getTypesCommand(context) {
195863
195845
  }
195864
195846
 
195865
195847
  // src/cli/commands/dev.ts
195866
- import { dirname as dirname12, join as join16 } from "node:path";
195848
+ import { dirname as dirname13, join as join16 } from "node:path";
195867
195849
 
195868
195850
  // src/cli/dev/dev-server/main.ts
195869
195851
  var import_cors = __toESM(require_lib4(), 1);
@@ -196011,9 +195993,9 @@ function createDevLogger() {
196011
195993
 
196012
195994
  // src/cli/dev/dev-server/function-manager.ts
196013
195995
  import { spawn as spawn2, spawnSync as spawnSync2 } from "node:child_process";
196014
- import { dirname as dirname11, join as join15 } from "node:path";
195996
+ import { dirname as dirname12, join as join15 } from "node:path";
196015
195997
  import { fileURLToPath as fileURLToPath7 } from "node:url";
196016
- var __dirname5 = dirname11(fileURLToPath7(import.meta.url));
195998
+ var __dirname5 = dirname12(fileURLToPath7(import.meta.url));
196017
195999
  var WRAPPER_PATH = join15(__dirname5, "../deno-runtime/main.js");
196018
196000
  var READY_TIMEOUT = 30000;
196019
196001
 
@@ -196266,7 +196248,7 @@ async function devAction(options8) {
196266
196248
  port,
196267
196249
  loadResources: async () => {
196268
196250
  const { project: project2 } = await readProjectConfig();
196269
- const configDir = dirname12(project2.configPath);
196251
+ const configDir = dirname13(project2.configPath);
196270
196252
  const functions = await functionResource.readAll(join16(configDir, project2.functionsDir));
196271
196253
  return { functions };
196272
196254
  }
@@ -196432,7 +196414,7 @@ function nanoid3(size = 21) {
196432
196414
  }
196433
196415
 
196434
196416
  // node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
196435
- import { dirname as dirname13, posix, sep } from "path";
196417
+ import { dirname as dirname14, posix, sep } from "path";
196436
196418
  function createModulerModifier() {
196437
196419
  const getModuleFromFileName = createGetModuleFromFilename();
196438
196420
  return async (frames) => {
@@ -196441,7 +196423,7 @@ function createModulerModifier() {
196441
196423
  return frames;
196442
196424
  };
196443
196425
  }
196444
- function createGetModuleFromFilename(basePath = process.argv[1] ? dirname13(process.argv[1]) : process.cwd(), isWindows4 = sep === "\\") {
196426
+ function createGetModuleFromFilename(basePath = process.argv[1] ? dirname14(process.argv[1]) : process.cwd(), isWindows4 = sep === "\\") {
196445
196427
  const normalizedBase = isWindows4 ? normalizeWindowsPath2(basePath) : basePath;
196446
196428
  return (filename) => {
196447
196429
  if (!filename)
@@ -200658,4 +200640,4 @@ export {
200658
200640
  CLIExitError
200659
200641
  };
200660
200642
 
200661
- //# debugId=848A655CD4CA165764756E2164756E21
200643
+ //# debugId=B3EC239F04F3A3D564756E2164756E21