@base44-preview/cli 0.1.32-pr.661.1ab377a → 0.1.32-pr.662.66693f8
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/README.md +0 -1
- package/dist/cli/index.js +183 -100
- package/dist/cli/index.js.map +7 -9
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -31177,7 +31177,7 @@ function cleanDoc(doc) {
|
|
|
31177
31177
|
return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));
|
|
31178
31178
|
}
|
|
31179
31179
|
function replaceEndOfLine(doc, replacement = literalline) {
|
|
31180
|
-
return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" ?
|
|
31180
|
+
return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" ? join30(replacement, currentDoc.split(`
|
|
31181
31181
|
`)) : currentDoc);
|
|
31182
31182
|
}
|
|
31183
31183
|
function canBreakFn(doc) {
|
|
@@ -31257,7 +31257,7 @@ function indentIfBreak(contents, options) {
|
|
|
31257
31257
|
negate: options.negate
|
|
31258
31258
|
};
|
|
31259
31259
|
}
|
|
31260
|
-
function
|
|
31260
|
+
function join30(separator, docs) {
|
|
31261
31261
|
assertDoc(separator);
|
|
31262
31262
|
assertDocArray(docs);
|
|
31263
31263
|
const parts = [];
|
|
@@ -31968,7 +31968,7 @@ var init_doc = __esm(() => {
|
|
|
31968
31968
|
MODE_FLAT = Symbol("MODE_FLAT");
|
|
31969
31969
|
DOC_FILL_PRINTED_LENGTH = Symbol("DOC_FILL_PRINTED_LENGTH");
|
|
31970
31970
|
builders = {
|
|
31971
|
-
join:
|
|
31971
|
+
join: join30,
|
|
31972
31972
|
line,
|
|
31973
31973
|
softline,
|
|
31974
31974
|
hardline,
|
|
@@ -124807,7 +124807,7 @@ var require2, __filename2, __dirname3, __create2, __defProp3, __getOwnPropDesc2,
|
|
|
124807
124807
|
}
|
|
124808
124808
|
}
|
|
124809
124809
|
}, ast_path_default, is_object_default, skipWhitespace, skipSpaces, skipToLineEnd, skipEverythingButNewLine, isNewlineCharacter = (character) => character === `
|
|
124810
|
-
` || character === "\r" || character === "\u2028" || character === "\u2029", skip_newline_default, has_newline_default, is_non_empty_array_default, get_sorted_child_nodes_default, childNodesCache, returnFalse = () => false, isAllEmptyAndNoLineBreak = (text) => !/[\S\n\u2028\u2029]/u.test(text), is_previous_line_empty_default, breakParent2, hardline2, indent2,
|
|
124810
|
+
` || character === "\r" || character === "\u2028" || character === "\u2029", skip_newline_default, has_newline_default, is_non_empty_array_default, get_sorted_child_nodes_default, childNodesCache, returnFalse = () => false, isAllEmptyAndNoLineBreak = (text) => !/[\S\n\u2028\u2029]/u.test(text), is_previous_line_empty_default, breakParent2, hardline2, indent2, join32, line22, lineSuffix2, create_print_pre_check_function_default = () => noop_default2, core_options_evaluate_default, arrayToReversed, toReversed, method_to_reversed_default, import_n_readlines, get_interpreter_default, getFileBasename = (file) => {
|
|
124811
124811
|
try {
|
|
124812
124812
|
return path112.basename(toPath3(file));
|
|
124813
124813
|
} catch {
|
|
@@ -134836,7 +134836,7 @@ ${codeblock}`, options8);
|
|
|
134836
134836
|
breakParent: breakParent2,
|
|
134837
134837
|
hardline: hardline2,
|
|
134838
134838
|
indent: indent2,
|
|
134839
|
-
join:
|
|
134839
|
+
join: join32,
|
|
134840
134840
|
line: line22,
|
|
134841
134841
|
lineSuffix: lineSuffix2
|
|
134842
134842
|
} = builders);
|
|
@@ -228838,7 +228838,7 @@ function normalizeBase44Env() {
|
|
|
228838
228838
|
loadProjectEnvFiles();
|
|
228839
228839
|
|
|
228840
228840
|
// src/cli/index.ts
|
|
228841
|
-
import { dirname as dirname29, join as
|
|
228841
|
+
import { dirname as dirname29, join as join40 } from "node:path";
|
|
228842
228842
|
import { fileURLToPath as fileURLToPath7 } from "node:url";
|
|
228843
228843
|
|
|
228844
228844
|
// ../../node_modules/@clack/core/dist/index.mjs
|
|
@@ -240339,21 +240339,6 @@ function buildAssetsConfig(assetsConfig, progress) {
|
|
|
240339
240339
|
run_worker_first: runWorkerFirst
|
|
240340
240340
|
};
|
|
240341
240341
|
}
|
|
240342
|
-
// src/core/site/drop.ts
|
|
240343
|
-
import { basename as basename6, join as join19 } from "node:path";
|
|
240344
|
-
async function requireIndexHtml(siteDir) {
|
|
240345
|
-
if (!await pathExists(join19(siteDir, "index.html"))) {
|
|
240346
|
-
throw new InvalidInputError(`No index.html found in "${siteDir}" — a static site needs one at the folder root.`);
|
|
240347
|
-
}
|
|
240348
|
-
}
|
|
240349
|
-
async function dropSite(siteDir) {
|
|
240350
|
-
await requireIndexHtml(siteDir);
|
|
240351
|
-
const name = basename6(siteDir);
|
|
240352
|
-
const { projectId } = await createProject(name, `Static site '${name}'`);
|
|
240353
|
-
setAppContext({ id: projectId });
|
|
240354
|
-
const { appUrl } = await deploySite(siteDir);
|
|
240355
|
-
return { appId: projectId, appUrl };
|
|
240356
|
-
}
|
|
240357
240342
|
// ../../node_modules/is-plain-obj/index.js
|
|
240358
240343
|
function isPlainObject3(value) {
|
|
240359
240344
|
if (typeof value !== "object" || value === null) {
|
|
@@ -246966,14 +246951,14 @@ async function deployAll(projectData, options) {
|
|
|
246966
246951
|
return { connectorResults };
|
|
246967
246952
|
}
|
|
246968
246953
|
// src/core/project/target.ts
|
|
246969
|
-
import { dirname as dirname13, join as
|
|
246954
|
+
import { dirname as dirname13, join as join19, resolve as resolve6 } from "node:path";
|
|
246970
246955
|
async function resolveBuildTarget(projectRoot, overrides = {}) {
|
|
246971
246956
|
const project = await readSettingsIfPresent(projectRoot);
|
|
246972
246957
|
const root = project?.root ?? projectRoot ?? process.cwd();
|
|
246973
246958
|
const site = project ? siteOrDefault(project) : DEFAULT_SITE;
|
|
246974
246959
|
return {
|
|
246975
246960
|
root,
|
|
246976
|
-
configDir: project ? dirname13(project.configPath) :
|
|
246961
|
+
configDir: project ? dirname13(project.configPath) : join19(root, PROJECT_SUBDIR),
|
|
246977
246962
|
buildCommand: site.buildCommand,
|
|
246978
246963
|
outputDir: resolve6(root, overrides.outputDir ?? site.outputDirectory ?? DEFAULT_SITE.outputDirectory),
|
|
246979
246964
|
entitiesDir: project?.entitiesDir ?? "entities",
|
|
@@ -247835,7 +247820,7 @@ function getActorsCommand() {
|
|
|
247835
247820
|
}
|
|
247836
247821
|
|
|
247837
247822
|
// src/cli/commands/agent-skills/pull.ts
|
|
247838
|
-
import { dirname as dirname14, join as
|
|
247823
|
+
import { dirname as dirname14, join as join20 } from "node:path";
|
|
247839
247824
|
// src/core/utils/dependencies.ts
|
|
247840
247825
|
import { spawnSync as spawnSync2 } from "node:child_process";
|
|
247841
247826
|
function verifyDenoInstalled(context) {
|
|
@@ -247924,7 +247909,7 @@ async function pullAction({
|
|
|
247924
247909
|
runTask
|
|
247925
247910
|
}) {
|
|
247926
247911
|
const { project } = await readProjectConfig();
|
|
247927
|
-
const dir =
|
|
247912
|
+
const dir = join20(dirname14(project.configPath), project.agentSkillsDir);
|
|
247928
247913
|
const remote = await runTask("Fetching agent skills from Base44", () => fetchAgentSkills(), {
|
|
247929
247914
|
successMessage: "Agent skills fetched successfully",
|
|
247930
247915
|
errorMessage: "Failed to fetch agent skills"
|
|
@@ -247980,14 +247965,14 @@ function getAgentSkillsCommand() {
|
|
|
247980
247965
|
}
|
|
247981
247966
|
|
|
247982
247967
|
// src/cli/commands/agents/pull.ts
|
|
247983
|
-
import { dirname as dirname15, join as
|
|
247968
|
+
import { dirname as dirname15, join as join21 } from "node:path";
|
|
247984
247969
|
async function pullAgentsAction({
|
|
247985
247970
|
log,
|
|
247986
247971
|
runTask
|
|
247987
247972
|
}) {
|
|
247988
247973
|
const { project } = await readProjectConfig();
|
|
247989
247974
|
const configDir = dirname15(project.configPath);
|
|
247990
|
-
const agentsDir =
|
|
247975
|
+
const agentsDir = join21(configDir, project.agentsDir);
|
|
247991
247976
|
const remoteAgents = await runTask("Fetching agents from Base44", async () => {
|
|
247992
247977
|
return await fetchAgents();
|
|
247993
247978
|
}, {
|
|
@@ -248057,12 +248042,12 @@ function getAgentsCommand() {
|
|
|
248057
248042
|
}
|
|
248058
248043
|
|
|
248059
248044
|
// src/cli/commands/auth/password-login.ts
|
|
248060
|
-
import { dirname as dirname16, join as
|
|
248045
|
+
import { dirname as dirname16, join as join22 } from "node:path";
|
|
248061
248046
|
async function passwordLoginAction({ log, runTask }, action) {
|
|
248062
248047
|
const shouldEnable = action === "enable";
|
|
248063
248048
|
const { project } = await readProjectConfig();
|
|
248064
248049
|
const configDir = dirname16(project.configPath);
|
|
248065
|
-
const authDir =
|
|
248050
|
+
const authDir = join22(configDir, project.authDir);
|
|
248066
248051
|
const updated = await runTask("Updating local auth config", async () => {
|
|
248067
248052
|
const current = await readAuthConfig(authDir) ?? DEFAULT_AUTH_CONFIG;
|
|
248068
248053
|
const merged = { ...current, enableUsernamePassword: shouldEnable };
|
|
@@ -248082,14 +248067,14 @@ function getPasswordLoginCommand() {
|
|
|
248082
248067
|
}
|
|
248083
248068
|
|
|
248084
248069
|
// src/cli/commands/auth/pull.ts
|
|
248085
|
-
import { dirname as dirname17, join as
|
|
248070
|
+
import { dirname as dirname17, join as join23 } from "node:path";
|
|
248086
248071
|
async function pullAuthAction({
|
|
248087
248072
|
log,
|
|
248088
248073
|
runTask
|
|
248089
248074
|
}) {
|
|
248090
248075
|
const { project } = await readProjectConfig();
|
|
248091
248076
|
const configDir = dirname17(project.configPath);
|
|
248092
|
-
const authDir =
|
|
248077
|
+
const authDir = join23(configDir, project.authDir);
|
|
248093
248078
|
const remoteConfig = await runTask("Fetching auth config from Base44", async () => {
|
|
248094
248079
|
return await pullAuthConfig();
|
|
248095
248080
|
}, {
|
|
@@ -248153,7 +248138,7 @@ function getAuthPushCommand() {
|
|
|
248153
248138
|
}
|
|
248154
248139
|
|
|
248155
248140
|
// src/cli/commands/auth/social-login.ts
|
|
248156
|
-
import { dirname as dirname18, join as
|
|
248141
|
+
import { dirname as dirname18, join as join24, resolve as resolve7 } from "node:path";
|
|
248157
248142
|
var PROVIDER_LABELS = {
|
|
248158
248143
|
google: "Google",
|
|
248159
248144
|
microsoft: "Microsoft",
|
|
@@ -248224,7 +248209,7 @@ async function socialLoginAction({ log, isNonInteractive, runTask }, provider, a
|
|
|
248224
248209
|
}
|
|
248225
248210
|
const { project } = await readProjectConfig();
|
|
248226
248211
|
const configDir = dirname18(project.configPath);
|
|
248227
|
-
const authDir =
|
|
248212
|
+
const authDir = join24(configDir, project.authDir);
|
|
248228
248213
|
const { config: updated } = await runTask("Updating local auth config", async () => updateSocialLoginConfig(authDir, provider, shouldEnable, useCustomOAuth && options.clientId ? { clientId: options.clientId } : undefined));
|
|
248229
248214
|
if (clientSecret) {
|
|
248230
248215
|
await runTask("Saving client secret", async () => pushCustomOAuthSecret(provider, clientSecret));
|
|
@@ -248249,7 +248234,7 @@ function getSocialLoginCommand() {
|
|
|
248249
248234
|
}
|
|
248250
248235
|
|
|
248251
248236
|
// src/cli/commands/auth/sso.ts
|
|
248252
|
-
import { dirname as dirname19, join as
|
|
248237
|
+
import { dirname as dirname19, join as join25, resolve as resolve8 } from "node:path";
|
|
248253
248238
|
var SSOConfigFileSchema = object({
|
|
248254
248239
|
provider: _enum(Object.values(KNOWN_SSO_PROVIDERS)),
|
|
248255
248240
|
clientId: string2(),
|
|
@@ -248413,7 +248398,7 @@ async function ssoEnableAction({ isNonInteractive, runTask }, options) {
|
|
|
248413
248398
|
}
|
|
248414
248399
|
const { project } = await readProjectConfig();
|
|
248415
248400
|
const configDir = dirname19(project.configPath);
|
|
248416
|
-
const authDir =
|
|
248401
|
+
const authDir = join25(configDir, project.authDir);
|
|
248417
248402
|
await runTask("Updating local auth config", async () => updateSSOConfig(authDir, provider, true));
|
|
248418
248403
|
await runTask("Saving SSO credentials", async () => pushSSOSecrets(secrets));
|
|
248419
248404
|
return {
|
|
@@ -248429,7 +248414,7 @@ async function ssoDisableAction({ log, runTask }, options) {
|
|
|
248429
248414
|
}
|
|
248430
248415
|
const { project } = await readProjectConfig();
|
|
248431
248416
|
const configDir = dirname19(project.configPath);
|
|
248432
|
-
const authDir =
|
|
248417
|
+
const authDir = join25(configDir, project.authDir);
|
|
248433
248418
|
const updated = await runTask("Updating local auth config", async () => updateSSOConfig(authDir, null, false));
|
|
248434
248419
|
await runTask("Removing SSO credentials", async () => deleteSSOSecrets());
|
|
248435
248420
|
if (!hasAnyLoginMethod(updated)) {
|
|
@@ -249311,13 +249296,13 @@ function getConnectorsListAvailableCommand() {
|
|
|
249311
249296
|
}
|
|
249312
249297
|
|
|
249313
249298
|
// src/cli/commands/connectors/pull.ts
|
|
249314
|
-
import { dirname as dirname20, join as
|
|
249299
|
+
import { dirname as dirname20, join as join26, resolve as resolve9 } from "node:path";
|
|
249315
249300
|
async function resolveConnectorsDir(options) {
|
|
249316
249301
|
if (!getAppContext().projectRoot) {
|
|
249317
249302
|
return resolve9(options.dir ?? "connectors");
|
|
249318
249303
|
}
|
|
249319
249304
|
const { project } = await readProjectConfig();
|
|
249320
|
-
return
|
|
249305
|
+
return join26(dirname20(project.configPath), project.connectorsDir);
|
|
249321
249306
|
}
|
|
249322
249307
|
async function pullConnectorsAction({ log, runTask, jsonMode }, options) {
|
|
249323
249308
|
const connectorsDir = await resolveConnectorsDir(options);
|
|
@@ -249497,23 +249482,6 @@ function getDashboardCommand() {
|
|
|
249497
249482
|
return new Command2("dashboard").description("Manage app dashboard").addCommand(getDashboardOpenCommand());
|
|
249498
249483
|
}
|
|
249499
249484
|
|
|
249500
|
-
// src/cli/commands/drop.ts
|
|
249501
|
-
import { resolve as resolve11 } from "node:path";
|
|
249502
|
-
async function dropAction({ runTask, jsonMode }, dir) {
|
|
249503
|
-
const { appId, appUrl } = await runTask("Creating app and deploying site...", async () => await dropSite(resolve11(dir)), {
|
|
249504
|
-
successMessage: theme.colors.base44Orange("Site deployed successfully"),
|
|
249505
|
-
errorMessage: "Drop failed"
|
|
249506
|
-
});
|
|
249507
|
-
return {
|
|
249508
|
-
outroMessage: `Visit your site at: ${theme.colors.links(appUrl)}`,
|
|
249509
|
-
stdout: jsonMode ? `${JSON.stringify({ appId, appUrl }, null, 2)}
|
|
249510
|
-
` : undefined
|
|
249511
|
-
};
|
|
249512
|
-
}
|
|
249513
|
-
function getDropCommand() {
|
|
249514
|
-
return new Base44Command("drop", { requireAppContext: false }).description("Host a folder of static files (index.html at its root) on Base44 as a new app").argument("[dir]", "Folder to deploy", ".").action(dropAction);
|
|
249515
|
-
}
|
|
249516
|
-
|
|
249517
249485
|
// src/cli/commands/entities/push.ts
|
|
249518
249486
|
async function pushEntitiesAction({ isNonInteractive, log, runTask }, options) {
|
|
249519
249487
|
const { entities } = await readProjectConfig();
|
|
@@ -249721,11 +249689,11 @@ function getListCommand() {
|
|
|
249721
249689
|
}
|
|
249722
249690
|
|
|
249723
249691
|
// src/cli/commands/functions/pull.ts
|
|
249724
|
-
import { dirname as dirname21, join as
|
|
249692
|
+
import { dirname as dirname21, join as join27 } from "node:path";
|
|
249725
249693
|
async function pullFunctionsAction({ log, runTask }, name) {
|
|
249726
249694
|
const { project, functions } = await readProjectConfig();
|
|
249727
249695
|
const configDir = dirname21(project.configPath);
|
|
249728
|
-
const functionsDir =
|
|
249696
|
+
const functionsDir = join27(configDir, project.functionsDir);
|
|
249729
249697
|
const pluginFunctionNames = new Set(functions.filter((fn) => fn.source.type === "plugin").map((fn) => fn.name));
|
|
249730
249698
|
const remoteFunctions = await runTask("Fetching functions from Base44", async () => {
|
|
249731
249699
|
const { functions } = await listDeployedFunctions();
|
|
@@ -249835,11 +249803,11 @@ function getBuildCommand() {
|
|
|
249835
249803
|
}
|
|
249836
249804
|
|
|
249837
249805
|
// src/cli/commands/project/create.ts
|
|
249838
|
-
import { basename as
|
|
249806
|
+
import { basename as basename6, resolve as resolve11 } from "node:path";
|
|
249839
249807
|
var import_kebabCase = __toESM(require_kebabCase(), 1);
|
|
249840
249808
|
|
|
249841
249809
|
// src/cli/commands/project/scaffold-shared.ts
|
|
249842
|
-
import { join as
|
|
249810
|
+
import { join as join28 } from "node:path";
|
|
249843
249811
|
var DEFAULT_TEMPLATE_ID = "backend-only";
|
|
249844
249812
|
async function getTemplateById(templateId) {
|
|
249845
249813
|
const templates = await listTemplates();
|
|
@@ -249902,7 +249870,7 @@ async function completeProjectSetup({
|
|
|
249902
249870
|
env: { VITE_BASE44_APP_ID: projectId }
|
|
249903
249871
|
})`${buildCommand}`;
|
|
249904
249872
|
updateMessage("Deploying site...");
|
|
249905
|
-
return await deploySite(
|
|
249873
|
+
return await deploySite(join28(resolvedPath, outputDirectory));
|
|
249906
249874
|
}, {
|
|
249907
249875
|
successMessage: theme.colors.base44Orange("Site deployed successfully"),
|
|
249908
249876
|
errorMessage: "Failed to deploy site"
|
|
@@ -250000,8 +249968,8 @@ async function createInteractive(options, ctx) {
|
|
|
250000
249968
|
name: () => {
|
|
250001
249969
|
return options.name ? Promise.resolve(options.name) : Ze({
|
|
250002
249970
|
message: "What is the name of your project?",
|
|
250003
|
-
placeholder:
|
|
250004
|
-
initialValue:
|
|
249971
|
+
placeholder: basename6(process.cwd()),
|
|
249972
|
+
initialValue: basename6(process.cwd()),
|
|
250005
249973
|
validate: (value) => {
|
|
250006
249974
|
if (!value || value.trim().length === 0) {
|
|
250007
249975
|
return "Every project deserves a name";
|
|
@@ -250031,7 +249999,7 @@ async function createInteractive(options, ctx) {
|
|
|
250031
249999
|
}, ctx);
|
|
250032
250000
|
}
|
|
250033
250001
|
async function createNonInteractive(options, ctx) {
|
|
250034
|
-
ctx.log.info(`Creating a new project at ${
|
|
250002
|
+
ctx.log.info(`Creating a new project at ${resolve11(options.path)}`);
|
|
250035
250003
|
const template = await getTemplateById(options.template ?? DEFAULT_TEMPLATE_ID);
|
|
250036
250004
|
return await executeCreate({
|
|
250037
250005
|
template,
|
|
@@ -250055,7 +250023,7 @@ async function executeCreate({
|
|
|
250055
250023
|
}, ctx) {
|
|
250056
250024
|
const { log, runTask } = ctx;
|
|
250057
250025
|
const name = rawName.trim();
|
|
250058
|
-
const resolvedPath =
|
|
250026
|
+
const resolvedPath = resolve11(projectPath);
|
|
250059
250027
|
const organizationId = await resolveWorkspaceId(ctx, flagWorkspaceId, isInteractive);
|
|
250060
250028
|
const { projectId } = await runTask("Setting up your project...", async () => {
|
|
250061
250029
|
return await createProjectFiles({
|
|
@@ -250696,7 +250664,7 @@ function getLogsCommand() {
|
|
|
250696
250664
|
}
|
|
250697
250665
|
|
|
250698
250666
|
// src/cli/commands/project/scaffold.ts
|
|
250699
|
-
import { basename as
|
|
250667
|
+
import { basename as basename7, resolve as resolve12 } from "node:path";
|
|
250700
250668
|
function resolveAppId(options) {
|
|
250701
250669
|
const appId = options.appId;
|
|
250702
250670
|
if (!appId) {
|
|
@@ -250712,8 +250680,8 @@ function resolveAppId(options) {
|
|
|
250712
250680
|
async function scaffoldAction(ctx, name, options, command) {
|
|
250713
250681
|
const { log, runTask } = ctx;
|
|
250714
250682
|
const appId = resolveAppId(command.optsWithGlobals());
|
|
250715
|
-
const resolvedPath =
|
|
250716
|
-
const projectName = (name ??
|
|
250683
|
+
const resolvedPath = resolve12("./");
|
|
250684
|
+
const projectName = (name ?? basename7(resolvedPath)).trim();
|
|
250717
250685
|
const template = await getTemplateById("backend-only");
|
|
250718
250686
|
log.info(`Scaffolding project at ${resolvedPath}`);
|
|
250719
250687
|
const { projectId } = await runTask("Setting up your project...", async () => {
|
|
@@ -250918,7 +250886,7 @@ async function setEnvironmentVersion(environment, versionId, options = {}) {
|
|
|
250918
250886
|
}
|
|
250919
250887
|
// src/core/version/artifacts.ts
|
|
250920
250888
|
import { createHash as createHash3 } from "node:crypto";
|
|
250921
|
-
import { join as
|
|
250889
|
+
import { join as join29, resolve as resolve13 } from "node:path";
|
|
250922
250890
|
|
|
250923
250891
|
// src/core/version/functions.ts
|
|
250924
250892
|
import { createHash as createHash2 } from "node:crypto";
|
|
@@ -253193,6 +253161,10 @@ var STATIC_EGRESS_ENABLED_ENV = "BASE44_STATIC_EGRESS_ENABLED";
|
|
|
253193
253161
|
var STATIC_EGRESS_DIAGNOSTIC_LIMIT = 5;
|
|
253194
253162
|
var staticEgressFetchInstalled = false;
|
|
253195
253163
|
var staticEgressDiagnosticCount = 0;
|
|
253164
|
+
var dedicatedEgressResponses = /* @__PURE__ */ new WeakSet();
|
|
253165
|
+
function isDedicatedEgressResponse(response) {
|
|
253166
|
+
return dedicatedEgressResponses.has(response);
|
|
253167
|
+
}
|
|
253196
253168
|
function inputKind(input) {
|
|
253197
253169
|
if (typeof input === "string") return "string";
|
|
253198
253170
|
return input instanceof URL ? "url" : "request";
|
|
@@ -253294,7 +253266,10 @@ function createRequestScopedStaticEgressFetch(originalFetch, readEnvironment) {
|
|
|
253294
253266
|
return originalFetch(input, init);
|
|
253295
253267
|
}
|
|
253296
253268
|
logStaticEgressDecision("dedicated", input, binding, enableSecret);
|
|
253297
|
-
return binding.fetch(input, init)
|
|
253269
|
+
return binding.fetch(input, init).then((response) => {
|
|
253270
|
+
dedicatedEgressResponses.add(response);
|
|
253271
|
+
return response;
|
|
253272
|
+
});
|
|
253298
253273
|
};
|
|
253299
253274
|
}
|
|
253300
253275
|
function installStaticEgressFetch() {
|
|
@@ -253306,6 +253281,111 @@ function installStaticEgressFetch() {
|
|
|
253306
253281
|
staticEgressFetchInstalled = true;
|
|
253307
253282
|
}
|
|
253308
253283
|
|
|
253284
|
+
// src/edge-errors.ts
|
|
253285
|
+
var EDGE_ERRORS_HEADER = "X-B44-Edge-Errors";
|
|
253286
|
+
var MAX_EDGE_ERRORS = 5;
|
|
253287
|
+
var MAX_INSPECTED_BODY_BYTES = 8192;
|
|
253288
|
+
var BODY_READ_TIMEOUT_MS = 500;
|
|
253289
|
+
var PLAIN_TEXT_EDGE_ERROR = /^error code: (\\d{3,4})\\s*$/;
|
|
253290
|
+
var SAFE_VALUE = /^[\\x20-\\x7e]{1,253}$/;
|
|
253291
|
+
function safe(value) {
|
|
253292
|
+
return typeof value === "string" && SAFE_VALUE.test(value) ? value : void 0;
|
|
253293
|
+
}
|
|
253294
|
+
function parseEdgeErrorBody(body) {
|
|
253295
|
+
const plain = PLAIN_TEXT_EDGE_ERROR.exec(body);
|
|
253296
|
+
if (plain) return { code: Number(plain[1]) };
|
|
253297
|
+
try {
|
|
253298
|
+
const json = JSON.parse(body);
|
|
253299
|
+
if (json === null || typeof json !== "object") return null;
|
|
253300
|
+
const fields = json;
|
|
253301
|
+
if (fields.cloudflare_error !== true || !Number.isInteger(fields.error_code)) return null;
|
|
253302
|
+
return {
|
|
253303
|
+
code: fields.error_code,
|
|
253304
|
+
name: safe(fields.error_name),
|
|
253305
|
+
category: safe(fields.error_category),
|
|
253306
|
+
zone: safe(fields.zone)
|
|
253307
|
+
};
|
|
253308
|
+
} catch {
|
|
253309
|
+
return null;
|
|
253310
|
+
}
|
|
253311
|
+
}
|
|
253312
|
+
async function readEdgeError(response) {
|
|
253313
|
+
if (response.status < 400) return null;
|
|
253314
|
+
const length = Number(response.headers.get("content-length"));
|
|
253315
|
+
if (!response.headers.get("cf-ray") || !(length > 0 && length <= MAX_INSPECTED_BODY_BYTES)) {
|
|
253316
|
+
return null;
|
|
253317
|
+
}
|
|
253318
|
+
let timer;
|
|
253319
|
+
try {
|
|
253320
|
+
const body = await Promise.race([
|
|
253321
|
+
response.clone().text(),
|
|
253322
|
+
new Promise((resolve2) => {
|
|
253323
|
+
timer = setTimeout(() => resolve2(null), BODY_READ_TIMEOUT_MS);
|
|
253324
|
+
})
|
|
253325
|
+
]);
|
|
253326
|
+
return body === null ? null : parseEdgeErrorBody(body);
|
|
253327
|
+
} finally {
|
|
253328
|
+
clearTimeout(timer);
|
|
253329
|
+
}
|
|
253330
|
+
}
|
|
253331
|
+
function targetOrigin(input) {
|
|
253332
|
+
try {
|
|
253333
|
+
const raw = input instanceof URL ? input.href : typeof input === "string" ? input : input.url;
|
|
253334
|
+
return new URL(raw).origin;
|
|
253335
|
+
} catch {
|
|
253336
|
+
return null;
|
|
253337
|
+
}
|
|
253338
|
+
}
|
|
253339
|
+
async function recordEdgeError(input, response, startedAt) {
|
|
253340
|
+
const store = currentWorkerRuntimeContext();
|
|
253341
|
+
if (!store) return;
|
|
253342
|
+
const body = await readEdgeError(response);
|
|
253343
|
+
const target = targetOrigin(input);
|
|
253344
|
+
if (!body || !target) return;
|
|
253345
|
+
const record = store.edgeErrors ??= { errors: [], dropped: 0 };
|
|
253346
|
+
if (record.errors.length >= MAX_EDGE_ERRORS) {
|
|
253347
|
+
record.dropped += 1;
|
|
253348
|
+
return;
|
|
253349
|
+
}
|
|
253350
|
+
record.errors.push({
|
|
253351
|
+
...body,
|
|
253352
|
+
target,
|
|
253353
|
+
status: response.status,
|
|
253354
|
+
ray: safe(response.headers.get("cf-ray")) ?? "",
|
|
253355
|
+
egress: isDedicatedEgressResponse(response) ? "dedicated" : "shared",
|
|
253356
|
+
elapsed_ms: Date.now() - startedAt
|
|
253357
|
+
});
|
|
253358
|
+
}
|
|
253359
|
+
function createEdgeErrorFetch(innerFetch) {
|
|
253360
|
+
return async (input, init) => {
|
|
253361
|
+
const startedAt = Date.now();
|
|
253362
|
+
const response = await innerFetch(input, init);
|
|
253363
|
+
try {
|
|
253364
|
+
await recordEdgeError(input, response, startedAt);
|
|
253365
|
+
} catch {
|
|
253366
|
+
}
|
|
253367
|
+
return response;
|
|
253368
|
+
};
|
|
253369
|
+
}
|
|
253370
|
+
var edgeErrorFetchInstalled = false;
|
|
253371
|
+
function installEdgeErrorFetch() {
|
|
253372
|
+
if (edgeErrorFetchInstalled) return;
|
|
253373
|
+
globalThis.fetch = createEdgeErrorFetch(globalThis.fetch.bind(globalThis));
|
|
253374
|
+
edgeErrorFetchInstalled = true;
|
|
253375
|
+
}
|
|
253376
|
+
function attachEdgeErrors(response) {
|
|
253377
|
+
const record = currentWorkerRuntimeContext()?.edgeErrors;
|
|
253378
|
+
if (!record || !(response instanceof Response)) return response;
|
|
253379
|
+
if (response.status === 101 || response.webSocket) return response;
|
|
253380
|
+
try {
|
|
253381
|
+
const wrapped = new Response(response.body, response);
|
|
253382
|
+
wrapped.headers.set(EDGE_ERRORS_HEADER, JSON.stringify(record));
|
|
253383
|
+
return wrapped;
|
|
253384
|
+
} catch {
|
|
253385
|
+
return response;
|
|
253386
|
+
}
|
|
253387
|
+
}
|
|
253388
|
+
|
|
253309
253389
|
// src/static-egress-tcp-core.mjs
|
|
253310
253390
|
function normalizeHost(host) {
|
|
253311
253391
|
return host.toLowerCase().replace(/^\\[(.*)\\]$/, "$1").replace(/\\.$/, "");
|
|
@@ -253459,7 +253539,9 @@ function resolveHandler(functionName) {
|
|
|
253459
253539
|
return handler;
|
|
253460
253540
|
}
|
|
253461
253541
|
export {
|
|
253542
|
+
attachEdgeErrors,
|
|
253462
253543
|
getRegisteredHandler,
|
|
253544
|
+
installEdgeErrorFetch,
|
|
253463
253545
|
installStaticEgressFetch,
|
|
253464
253546
|
registerLazy,
|
|
253465
253547
|
resolveHandler
|
|
@@ -256399,7 +256481,7 @@ var TELEMETRY_PATCH = [
|
|
|
256399
256481
|
var TELEMETRY_STORE_FIELDS = "reqId: crypto.randomUUID(), respondedAt: null, inflight: new Map(), inflightTotal: 0, hadRejection: false, hadNonOk: false, logBudget: 5";
|
|
256400
256482
|
|
|
256401
256483
|
// ../functions-compiler/src/version.ts
|
|
256402
|
-
var COMPILER_VERSION = "0.1.
|
|
256484
|
+
var COMPILER_VERSION = "0.1.7";
|
|
256403
256485
|
|
|
256404
256486
|
// ../functions-compiler/src/worker-entry.ts
|
|
256405
256487
|
function denoShimSource() {
|
|
@@ -256504,20 +256586,22 @@ registerLazy(${JSON.stringify(functionName)}, () => import(${JSON.stringify(user
|
|
|
256504
256586
|
function buildAppEntrySource(functionModules, telemetry, runtimeSecrets = false) {
|
|
256505
256587
|
const moduleImports = functionModules.map((file) => `import "./${file}";`).join(`
|
|
256506
256588
|
`);
|
|
256507
|
-
const handlerExpr = `_b44AttachInvocationLogs(${telemetry ? "_b44AttachTelemetry(await handler(request, info))" : "await handler(request, info)"})`;
|
|
256589
|
+
const handlerExpr = `_b44AttachInvocationLogs(_b44AttachEdgeErrors(${telemetry ? "_b44AttachTelemetry(await handler(request, info))" : "await handler(request, info)"}))`;
|
|
256508
256590
|
const guard = activationGuard(runtimeSecrets);
|
|
256509
256591
|
const returnExpr = guard(handlerExpr);
|
|
256510
256592
|
return `// Auto-generated by the base44 bundler. Do not edit.
|
|
256511
256593
|
|
|
256512
256594
|
import { currentWorkerRuntimeContext as _b44Context, runWithWorkerEnvironment as _b44Run } from ${JSON.stringify(RUNTIME_CONTEXT_SPECIFIER)};
|
|
256513
|
-
import { installStaticEgressFetch, resolveHandler } from "./${SHIM_FILENAME}";${activationImport(runtimeSecrets)}
|
|
256595
|
+
import { attachEdgeErrors as _b44AttachEdgeErrors, installEdgeErrorFetch, installStaticEgressFetch, resolveHandler } from "./${SHIM_FILENAME}";${activationImport(runtimeSecrets)}
|
|
256514
256596
|
${moduleImports}
|
|
256515
256597
|
|
|
256516
256598
|
${consolePatch(runtimeSecrets)}
|
|
256517
256599
|
${INVOCATION_LOGS_PATCH}
|
|
256518
|
-
// Static egress reads workerEnv from the active request store. Install it
|
|
256519
|
-
// before telemetry so telemetry remains the outermost
|
|
256600
|
+
// Static egress reads workerEnv from the active request store. Install it and
|
|
256601
|
+
// the edge-error recorder before telemetry so telemetry remains the outermost
|
|
256602
|
+
// fetch wrapper.
|
|
256520
256603
|
installStaticEgressFetch();
|
|
256604
|
+
installEdgeErrorFetch();
|
|
256521
256605
|
${telemetry ? TELEMETRY_PATCH : ""}
|
|
256522
256606
|
|
|
256523
256607
|
export default {
|
|
@@ -261639,7 +261723,7 @@ async function collectBuildOutput(outputDir, options = {}) {
|
|
|
261639
261723
|
}
|
|
261640
261724
|
async function describeSiteWorker(built) {
|
|
261641
261725
|
const { config, modules } = built;
|
|
261642
|
-
const entry =
|
|
261726
|
+
const entry = resolve13(config.configDir, config.main);
|
|
261643
261727
|
const main = modules.find((m) => m.absolutePath === entry)?.name;
|
|
261644
261728
|
if (!main) {
|
|
261645
261729
|
throw new InvalidInputError(`The Worker's entry module ${config.main} is not among the ${modules.length} modules collected from ${config.configDir}.`);
|
|
@@ -261670,14 +261754,14 @@ async function readRawResources(dir) {
|
|
|
261670
261754
|
const payloads = {};
|
|
261671
261755
|
for (const relativePath of files.sort()) {
|
|
261672
261756
|
const name = relativePath.replace(/\.jsonc?$/, "");
|
|
261673
|
-
payloads[name] = await readJsonFile(
|
|
261757
|
+
payloads[name] = await readJsonFile(join29(dir, ...relativePath.split("/")));
|
|
261674
261758
|
}
|
|
261675
261759
|
return payloads;
|
|
261676
261760
|
}
|
|
261677
261761
|
async function collectResources(configDir, dirs) {
|
|
261678
261762
|
const [entities, agents] = await Promise.all([
|
|
261679
|
-
readRawResources(
|
|
261680
|
-
readRawResources(
|
|
261763
|
+
readRawResources(join29(configDir, dirs.entitiesDir)),
|
|
261764
|
+
readRawResources(join29(configDir, dirs.agentsDir))
|
|
261681
261765
|
]);
|
|
261682
261766
|
return { entities, agents };
|
|
261683
261767
|
}
|
|
@@ -261689,7 +261773,7 @@ async function collectArtifacts(target) {
|
|
|
261689
261773
|
entryFile: ENTRY2
|
|
261690
261774
|
}),
|
|
261691
261775
|
...siteWorker ? { siteWorker } : {},
|
|
261692
|
-
backendBundles: await tagStep2("build", () => compileBackendBundles(target.root,
|
|
261776
|
+
backendBundles: await tagStep2("build", () => compileBackendBundles(target.root, join29(target.configDir, target.functionsDir))),
|
|
261693
261777
|
...await collectResources(target.configDir, target)
|
|
261694
261778
|
};
|
|
261695
261779
|
}
|
|
@@ -262147,7 +262231,7 @@ function getSecretsListCommand() {
|
|
|
262147
262231
|
}
|
|
262148
262232
|
|
|
262149
262233
|
// src/cli/commands/secrets/set.ts
|
|
262150
|
-
import { resolve as
|
|
262234
|
+
import { resolve as resolve14 } from "node:path";
|
|
262151
262235
|
function parseEntries(entries) {
|
|
262152
262236
|
const secrets = {};
|
|
262153
262237
|
for (const entry of entries) {
|
|
@@ -262178,7 +262262,7 @@ async function setSecretsAction({ log, runTask }, entries, options) {
|
|
|
262178
262262
|
validateInput(entries, options);
|
|
262179
262263
|
let secrets;
|
|
262180
262264
|
if (options.envFile) {
|
|
262181
|
-
secrets = await parseEnvFile(
|
|
262265
|
+
secrets = await parseEnvFile(resolve14(options.envFile));
|
|
262182
262266
|
if (Object.keys(secrets).length === 0) {
|
|
262183
262267
|
throw new InvalidInputError("The env file contains no valid KEY=VALUE entries.");
|
|
262184
262268
|
}
|
|
@@ -262207,7 +262291,7 @@ function getSecretsCommand() {
|
|
|
262207
262291
|
}
|
|
262208
262292
|
|
|
262209
262293
|
// src/cli/commands/site/deploy.ts
|
|
262210
|
-
import { resolve as
|
|
262294
|
+
import { resolve as resolve15 } from "node:path";
|
|
262211
262295
|
async function deployAction2(ctx, options) {
|
|
262212
262296
|
const { isNonInteractive } = ctx;
|
|
262213
262297
|
if (isNonInteractive && !options.yes) {
|
|
@@ -262276,7 +262360,7 @@ async function deployTarball({ runTask }, project) {
|
|
|
262276
262360
|
}
|
|
262277
262361
|
function siteOutputDir(project) {
|
|
262278
262362
|
const { outputDirectory = DEFAULT_SITE.outputDirectory } = siteOrDefault(project);
|
|
262279
|
-
return
|
|
262363
|
+
return resolve15(project.root, outputDirectory);
|
|
262280
262364
|
}
|
|
262281
262365
|
function getSiteDeployCommand() {
|
|
262282
262366
|
const command = new Base44Command("deploy").description("Deploy built site files to Base44 hosting").option("-y, --yes", "Skip confirmation prompt").option("--build", "Build the site before deploying (skips the prompt)").option("--no-build", "Deploy without building (skips the prompt)");
|
|
@@ -262620,10 +262704,10 @@ function toPascalCase(name) {
|
|
|
262620
262704
|
return name.split(/[-_\s]+/).map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join("");
|
|
262621
262705
|
}
|
|
262622
262706
|
// src/core/types/update-project.ts
|
|
262623
|
-
import { join as
|
|
262707
|
+
import { join as join33 } from "node:path";
|
|
262624
262708
|
var TYPES_INCLUDE_PATH = `${PROJECT_SUBDIR}/${TYPES_OUTPUT_SUBDIR}/*.d.ts`;
|
|
262625
262709
|
async function updateProjectConfig(projectRoot) {
|
|
262626
|
-
const tsconfigPath =
|
|
262710
|
+
const tsconfigPath = join33(projectRoot, "tsconfig.json");
|
|
262627
262711
|
if (!await pathExists(tsconfigPath)) {
|
|
262628
262712
|
return false;
|
|
262629
262713
|
}
|
|
@@ -263104,7 +263188,7 @@ function getWorkspaceCommand() {
|
|
|
263104
263188
|
// src/cli/dev/dev-server/main.ts
|
|
263105
263189
|
var import_cors = __toESM(require_lib4(), 1);
|
|
263106
263190
|
var import_express6 = __toESM(require_express(), 1);
|
|
263107
|
-
import { dirname as dirname27, join as
|
|
263191
|
+
import { dirname as dirname27, join as join38 } from "node:path";
|
|
263108
263192
|
|
|
263109
263193
|
// ../../node_modules/get-port/index.js
|
|
263110
263194
|
import net from "node:net";
|
|
@@ -263234,7 +263318,7 @@ var $tmpName = promisify12(tmp.tmpName);
|
|
|
263234
263318
|
|
|
263235
263319
|
// src/cli/dev/dev-server/function-manager.ts
|
|
263236
263320
|
import { spawn as spawn3 } from "node:child_process";
|
|
263237
|
-
import { dirname as dirname24, join as
|
|
263321
|
+
import { dirname as dirname24, join as join34 } from "node:path";
|
|
263238
263322
|
import { pathToFileURL as pathToFileURL6 } from "node:url";
|
|
263239
263323
|
|
|
263240
263324
|
// src/cli/dev/dev-server/base-function-manager.ts
|
|
@@ -263339,7 +263423,7 @@ class FunctionManager extends BaseFunctionManager {
|
|
|
263339
263423
|
}
|
|
263340
263424
|
spawnFunction(func, port) {
|
|
263341
263425
|
this.logger.log(`Spawning function "${func.name}" on port ${port}`);
|
|
263342
|
-
const importMapPath =
|
|
263426
|
+
const importMapPath = join34(dirname24(this.wrapperPath), "import-map.json");
|
|
263343
263427
|
const process2 = spawn3("deno", ["run", "--allow-all", "--import-map", importMapPath, this.wrapperPath], {
|
|
263344
263428
|
env: {
|
|
263345
263429
|
...globalThis.process.env,
|
|
@@ -263413,7 +263497,7 @@ class FunctionManager extends BaseFunctionManager {
|
|
|
263413
263497
|
import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync2 } from "node:fs";
|
|
263414
263498
|
import { isBuiltin as isBuiltin3 } from "node:module";
|
|
263415
263499
|
import { homedir as homedir4 } from "node:os";
|
|
263416
|
-
import { join as
|
|
263500
|
+
import { join as join35 } from "node:path";
|
|
263417
263501
|
import { pathToFileURL as pathToFileURL7 } from "node:url";
|
|
263418
263502
|
var depsPromise;
|
|
263419
263503
|
function loadDeps() {
|
|
@@ -263534,9 +263618,9 @@ export default {
|
|
|
263534
263618
|
};
|
|
263535
263619
|
`;
|
|
263536
263620
|
function ensureBundlerConfig() {
|
|
263537
|
-
const dir =
|
|
263621
|
+
const dir = join35(homedir4(), ".base44", "function-bundler");
|
|
263538
263622
|
mkdirSync2(dir, { recursive: true });
|
|
263539
|
-
const configPath =
|
|
263623
|
+
const configPath = join35(dir, "deno.json");
|
|
263540
263624
|
writeFileSync2(configPath, `${JSON.stringify({ nodeModulesDir: "auto" }, null, 2)}
|
|
263541
263625
|
`);
|
|
263542
263626
|
return configPath;
|
|
@@ -266865,8 +266949,8 @@ async function createDevServer(options) {
|
|
|
266865
266949
|
broadcastEntityEvent(io, appId, entityName, event);
|
|
266866
266950
|
};
|
|
266867
266951
|
const base44ConfigWatcher = new WatchBase44({
|
|
266868
|
-
functions:
|
|
266869
|
-
entities:
|
|
266952
|
+
functions: join38(dirname27(project.configPath), project.functionsDir),
|
|
266953
|
+
entities: join38(dirname27(project.configPath), project.entitiesDir)
|
|
266870
266954
|
}, devLogger);
|
|
266871
266955
|
base44ConfigWatcher.on("change", async (name) => {
|
|
266872
266956
|
try {
|
|
@@ -267069,7 +267153,7 @@ function readExecEnvTarget(env = process.env) {
|
|
|
267069
267153
|
// src/core/exec/run-script.ts
|
|
267070
267154
|
import { spawn as spawn4 } from "node:child_process";
|
|
267071
267155
|
import { readFileSync as readFileSync4, writeFileSync as writeFileSync3 } from "node:fs";
|
|
267072
|
-
import { join as
|
|
267156
|
+
import { join as join39 } from "node:path";
|
|
267073
267157
|
var SDK_SPECIFIER = '"npm:@base44/sdk"';
|
|
267074
267158
|
function wrapperSource(sdkVersion) {
|
|
267075
267159
|
const source = readFileSync4(getExecWrapperPath(), "utf-8");
|
|
@@ -267105,7 +267189,7 @@ async function runScript(options) {
|
|
|
267105
267189
|
writeFileSync3(tempWrapper.path, wrapperSource(sdkVersion), "utf-8");
|
|
267106
267190
|
const configDir = await $dir({ unsafeCleanup: true });
|
|
267107
267191
|
cleanupFns.push(configDir.cleanup);
|
|
267108
|
-
const configPath =
|
|
267192
|
+
const configPath = join39(configDir.path, "deno.json");
|
|
267109
267193
|
writeFileSync3(configPath, JSON.stringify(DENO_CONFIG), "utf-8");
|
|
267110
267194
|
try {
|
|
267111
267195
|
const exitCode = await new Promise((resolvePromise) => {
|
|
@@ -267226,7 +267310,7 @@ Examples:
|
|
|
267226
267310
|
}
|
|
267227
267311
|
|
|
267228
267312
|
// src/cli/commands/project/eject.ts
|
|
267229
|
-
import { resolve as
|
|
267313
|
+
import { resolve as resolve19 } from "node:path";
|
|
267230
267314
|
var import_kebabCase2 = __toESM(require_kebabCase(), 1);
|
|
267231
267315
|
async function eject(ctx, options, command) {
|
|
267232
267316
|
const { log, runTask, isNonInteractive } = ctx;
|
|
@@ -267290,7 +267374,7 @@ async function eject(ctx, options, command) {
|
|
|
267290
267374
|
Ne("Operation cancelled.");
|
|
267291
267375
|
throw new CLIExitError(0);
|
|
267292
267376
|
}
|
|
267293
|
-
const resolvedPath =
|
|
267377
|
+
const resolvedPath = resolve19(selectedPath);
|
|
267294
267378
|
await runTask("Downloading your project's code...", async (updateMessage) => {
|
|
267295
267379
|
await createProjectFilesForExistingProject({
|
|
267296
267380
|
projectId,
|
|
@@ -267363,7 +267447,6 @@ function createProgram(context) {
|
|
|
267363
267447
|
program.addCommand(getDashboardCommand());
|
|
267364
267448
|
program.addCommand(getBuildCommand());
|
|
267365
267449
|
program.addCommand(getDeployCommand3());
|
|
267366
|
-
program.addCommand(getDropCommand());
|
|
267367
267450
|
program.addCommand(getVisibilityCommand());
|
|
267368
267451
|
program.addCommand(getLinkCommand());
|
|
267369
267452
|
program.addCommand(getEjectCommand());
|
|
@@ -271396,7 +271479,7 @@ function addCommandInfoToErrorReporter(program, errorReporter) {
|
|
|
271396
271479
|
// src/cli/index.ts
|
|
271397
271480
|
var __dirname4 = dirname29(fileURLToPath7(import.meta.url));
|
|
271398
271481
|
async function runCLI(options) {
|
|
271399
|
-
ensureNpmAssets(
|
|
271482
|
+
ensureNpmAssets(join40(__dirname4, "../assets"));
|
|
271400
271483
|
const errorReporter = new ErrorReporter;
|
|
271401
271484
|
errorReporter.registerProcessErrorHandlers();
|
|
271402
271485
|
const jsonMode = process.argv.includes("--json");
|
|
@@ -271435,4 +271518,4 @@ export {
|
|
|
271435
271518
|
runCLI
|
|
271436
271519
|
};
|
|
271437
271520
|
|
|
271438
|
-
//# debugId=
|
|
271521
|
+
//# debugId=63471D49344D62A464756E2164756E21
|