@base44-preview/cli 0.0.41-pr.380.73b00fc → 0.0.41-pr.382.359de3c
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 +155 -71
- package/dist/cli/index.js.map +7 -6
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -18040,7 +18040,7 @@ var require_lodash = __commonJS((exports, module) => {
|
|
|
18040
18040
|
}
|
|
18041
18041
|
return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : [];
|
|
18042
18042
|
});
|
|
18043
|
-
function
|
|
18043
|
+
function join15(array2, separator) {
|
|
18044
18044
|
return array2 == null ? "" : nativeJoin.call(array2, separator);
|
|
18045
18045
|
}
|
|
18046
18046
|
function last(array2) {
|
|
@@ -18062,7 +18062,7 @@ var require_lodash = __commonJS((exports, module) => {
|
|
|
18062
18062
|
function nth(array2, n2) {
|
|
18063
18063
|
return array2 && array2.length ? baseNth(array2, toInteger(n2)) : undefined2;
|
|
18064
18064
|
}
|
|
18065
|
-
var
|
|
18065
|
+
var pull2 = baseRest(pullAll);
|
|
18066
18066
|
function pullAll(array2, values2) {
|
|
18067
18067
|
return array2 && array2.length && values2 && values2.length ? basePullAll(array2, values2) : array2;
|
|
18068
18068
|
}
|
|
@@ -19827,7 +19827,7 @@ __p += '`;
|
|
|
19827
19827
|
lodash.pickBy = pickBy;
|
|
19828
19828
|
lodash.property = property;
|
|
19829
19829
|
lodash.propertyOf = propertyOf;
|
|
19830
|
-
lodash.pull =
|
|
19830
|
+
lodash.pull = pull2;
|
|
19831
19831
|
lodash.pullAll = pullAll;
|
|
19832
19832
|
lodash.pullAllBy = pullAllBy;
|
|
19833
19833
|
lodash.pullAllWith = pullAllWith;
|
|
@@ -19972,7 +19972,7 @@ __p += '`;
|
|
|
19972
19972
|
lodash.isUndefined = isUndefined;
|
|
19973
19973
|
lodash.isWeakMap = isWeakMap;
|
|
19974
19974
|
lodash.isWeakSet = isWeakSet;
|
|
19975
|
-
lodash.join =
|
|
19975
|
+
lodash.join = join15;
|
|
19976
19976
|
lodash.kebabCase = kebabCase2;
|
|
19977
19977
|
lodash.last = last;
|
|
19978
19978
|
lodash.lastIndexOf = lastIndexOf;
|
|
@@ -20601,7 +20601,7 @@ function cleanDoc(doc2) {
|
|
|
20601
20601
|
return mapDoc(doc2, (currentDoc) => cleanDocFn(currentDoc));
|
|
20602
20602
|
}
|
|
20603
20603
|
function replaceEndOfLine(doc2, replacement = literalline) {
|
|
20604
|
-
return mapDoc(doc2, (currentDoc) => typeof currentDoc === "string" ?
|
|
20604
|
+
return mapDoc(doc2, (currentDoc) => typeof currentDoc === "string" ? join15(replacement, currentDoc.split(`
|
|
20605
20605
|
`)) : currentDoc);
|
|
20606
20606
|
}
|
|
20607
20607
|
function canBreakFn(doc2) {
|
|
@@ -20681,7 +20681,7 @@ function indentIfBreak(contents, options) {
|
|
|
20681
20681
|
negate: options.negate
|
|
20682
20682
|
};
|
|
20683
20683
|
}
|
|
20684
|
-
function
|
|
20684
|
+
function join15(separator, docs) {
|
|
20685
20685
|
assertDoc(separator);
|
|
20686
20686
|
assertDocArray(docs);
|
|
20687
20687
|
const parts = [];
|
|
@@ -21392,7 +21392,7 @@ var init_doc = __esm(() => {
|
|
|
21392
21392
|
MODE_FLAT = Symbol("MODE_FLAT");
|
|
21393
21393
|
DOC_FILL_PRINTED_LENGTH = Symbol("DOC_FILL_PRINTED_LENGTH");
|
|
21394
21394
|
builders = {
|
|
21395
|
-
join:
|
|
21395
|
+
join: join15,
|
|
21396
21396
|
line,
|
|
21397
21397
|
softline,
|
|
21398
21398
|
hardline,
|
|
@@ -126306,7 +126306,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
126306
126306
|
return mapDoc2(doc2, (currentDoc) => cleanDocFn2(currentDoc));
|
|
126307
126307
|
}
|
|
126308
126308
|
function replaceEndOfLine2(doc2, replacement = literalline2) {
|
|
126309
|
-
return mapDoc2(doc2, (currentDoc) => typeof currentDoc === "string" ?
|
|
126309
|
+
return mapDoc2(doc2, (currentDoc) => typeof currentDoc === "string" ? join17(replacement, currentDoc.split(`
|
|
126310
126310
|
`)) : currentDoc);
|
|
126311
126311
|
}
|
|
126312
126312
|
function canBreakFn2(doc2) {
|
|
@@ -126392,7 +126392,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
126392
126392
|
negate: options8.negate
|
|
126393
126393
|
};
|
|
126394
126394
|
}
|
|
126395
|
-
function
|
|
126395
|
+
function join17(separator, docs) {
|
|
126396
126396
|
assertDoc2(separator);
|
|
126397
126397
|
assertDocArray2(docs);
|
|
126398
126398
|
const parts = [];
|
|
@@ -127057,7 +127057,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
127057
127057
|
}
|
|
127058
127058
|
}
|
|
127059
127059
|
var builders2 = {
|
|
127060
|
-
join:
|
|
127060
|
+
join: join17,
|
|
127061
127061
|
line: line3,
|
|
127062
127062
|
softline: softline2,
|
|
127063
127063
|
hardline: hardline4,
|
|
@@ -153497,10 +153497,10 @@ var require_view = __commonJS((exports, module) => {
|
|
|
153497
153497
|
var debug = require_src4()("express:view");
|
|
153498
153498
|
var path18 = __require("node:path");
|
|
153499
153499
|
var fs28 = __require("node:fs");
|
|
153500
|
-
var
|
|
153500
|
+
var dirname12 = path18.dirname;
|
|
153501
153501
|
var basename4 = path18.basename;
|
|
153502
153502
|
var extname2 = path18.extname;
|
|
153503
|
-
var
|
|
153503
|
+
var join18 = path18.join;
|
|
153504
153504
|
var resolve6 = path18.resolve;
|
|
153505
153505
|
module.exports = View;
|
|
153506
153506
|
function View(name2, options8) {
|
|
@@ -153536,7 +153536,7 @@ var require_view = __commonJS((exports, module) => {
|
|
|
153536
153536
|
for (var i5 = 0;i5 < roots.length && !path19; i5++) {
|
|
153537
153537
|
var root2 = roots[i5];
|
|
153538
153538
|
var loc = resolve6(root2, name2);
|
|
153539
|
-
var dir =
|
|
153539
|
+
var dir = dirname12(loc);
|
|
153540
153540
|
var file2 = basename4(loc);
|
|
153541
153541
|
path19 = this.resolve(dir, file2);
|
|
153542
153542
|
}
|
|
@@ -153562,12 +153562,12 @@ var require_view = __commonJS((exports, module) => {
|
|
|
153562
153562
|
};
|
|
153563
153563
|
View.prototype.resolve = function resolve7(dir, file2) {
|
|
153564
153564
|
var ext = this.ext;
|
|
153565
|
-
var path19 =
|
|
153565
|
+
var path19 = join18(dir, file2);
|
|
153566
153566
|
var stat2 = tryStat(path19);
|
|
153567
153567
|
if (stat2 && stat2.isFile()) {
|
|
153568
153568
|
return path19;
|
|
153569
153569
|
}
|
|
153570
|
-
path19 =
|
|
153570
|
+
path19 = join18(dir, basename4(file2, ext), "index" + ext);
|
|
153571
153571
|
stat2 = tryStat(path19);
|
|
153572
153572
|
if (stat2 && stat2.isFile()) {
|
|
153573
153573
|
return path19;
|
|
@@ -157262,7 +157262,7 @@ var require_send = __commonJS((exports, module) => {
|
|
|
157262
157262
|
var Stream2 = __require("stream");
|
|
157263
157263
|
var util2 = __require("util");
|
|
157264
157264
|
var extname2 = path18.extname;
|
|
157265
|
-
var
|
|
157265
|
+
var join18 = path18.join;
|
|
157266
157266
|
var normalize = path18.normalize;
|
|
157267
157267
|
var resolve6 = path18.resolve;
|
|
157268
157268
|
var sep = path18.sep;
|
|
@@ -157434,7 +157434,7 @@ var require_send = __commonJS((exports, module) => {
|
|
|
157434
157434
|
return res;
|
|
157435
157435
|
}
|
|
157436
157436
|
parts = path19.split(sep);
|
|
157437
|
-
path19 = normalize(
|
|
157437
|
+
path19 = normalize(join18(root2, path19));
|
|
157438
157438
|
} else {
|
|
157439
157439
|
if (UP_PATH_REGEXP.test(path19)) {
|
|
157440
157440
|
debug('malicious path "%s"', path19);
|
|
@@ -157574,7 +157574,7 @@ var require_send = __commonJS((exports, module) => {
|
|
|
157574
157574
|
return self2.onStatError(err);
|
|
157575
157575
|
return self2.error(404);
|
|
157576
157576
|
}
|
|
157577
|
-
var p4 =
|
|
157577
|
+
var p4 = join18(path19, self2._index[i5]);
|
|
157578
157578
|
debug('stat "%s"', p4);
|
|
157579
157579
|
fs28.stat(p4, function(err2, stat2) {
|
|
157580
157580
|
if (err2)
|
|
@@ -204169,7 +204169,7 @@ var require_buffer_list = __commonJS((exports, module) => {
|
|
|
204169
204169
|
}
|
|
204170
204170
|
}, {
|
|
204171
204171
|
key: "join",
|
|
204172
|
-
value: function
|
|
204172
|
+
value: function join18(s5) {
|
|
204173
204173
|
if (this.length === 0)
|
|
204174
204174
|
return "";
|
|
204175
204175
|
var p4 = this.head;
|
|
@@ -207880,7 +207880,7 @@ var require_dist5 = __commonJS((exports, module) => {
|
|
|
207880
207880
|
});
|
|
207881
207881
|
|
|
207882
207882
|
// src/cli/index.ts
|
|
207883
|
-
import { dirname as
|
|
207883
|
+
import { dirname as dirname16, join as join21 } from "node:path";
|
|
207884
207884
|
import { fileURLToPath as fileURLToPath6 } from "node:url";
|
|
207885
207885
|
|
|
207886
207886
|
// ../../node_modules/commander/esm.mjs
|
|
@@ -207900,7 +207900,7 @@ var {
|
|
|
207900
207900
|
} = import__.default;
|
|
207901
207901
|
|
|
207902
207902
|
// src/cli/commands/agents/pull.ts
|
|
207903
|
-
import { dirname as dirname7, join as
|
|
207903
|
+
import { dirname as dirname7, join as join11 } from "node:path";
|
|
207904
207904
|
|
|
207905
207905
|
// ../../node_modules/@clack/core/dist/index.mjs
|
|
207906
207906
|
var import_picocolors = __toESM(require_picocolors(), 1);
|
|
@@ -230396,7 +230396,7 @@ var generateGlobTasks = normalizeArguments(generateTasks);
|
|
|
230396
230396
|
var generateGlobTasksSync = normalizeArgumentsSync(generateTasksSync);
|
|
230397
230397
|
|
|
230398
230398
|
// src/core/project/config.ts
|
|
230399
|
-
import { dirname as dirname5, join as
|
|
230399
|
+
import { dirname as dirname5, join as join7 } from "node:path";
|
|
230400
230400
|
|
|
230401
230401
|
// src/core/resources/agent/schema.ts
|
|
230402
230402
|
var EntityOperationSchema = exports_external.enum(["create", "update", "delete", "read"]);
|
|
@@ -231329,6 +231329,67 @@ async function pushFunctions(functions) {
|
|
|
231329
231329
|
const functionsWithCode = await Promise.all(functions.map(loadFunctionCode));
|
|
231330
231330
|
return deployFunctions(functionsWithCode);
|
|
231331
231331
|
}
|
|
231332
|
+
// src/core/resources/function/pull.ts
|
|
231333
|
+
import { join as join6 } from "node:path";
|
|
231334
|
+
async function writeFunctions(functionsDir, functions) {
|
|
231335
|
+
const written = [];
|
|
231336
|
+
const skipped = [];
|
|
231337
|
+
for (const fn of functions) {
|
|
231338
|
+
const functionDir = join6(functionsDir, fn.name);
|
|
231339
|
+
const configPath = join6(functionDir, "function.jsonc");
|
|
231340
|
+
if (await isFunctionUnchanged(functionDir, fn)) {
|
|
231341
|
+
skipped.push(fn.name);
|
|
231342
|
+
continue;
|
|
231343
|
+
}
|
|
231344
|
+
const config5 = {
|
|
231345
|
+
name: fn.name,
|
|
231346
|
+
entry: fn.entry
|
|
231347
|
+
};
|
|
231348
|
+
if (fn.automations.length > 0) {
|
|
231349
|
+
config5.automations = fn.automations;
|
|
231350
|
+
}
|
|
231351
|
+
await writeJsonFile(configPath, config5);
|
|
231352
|
+
for (const file2 of fn.files) {
|
|
231353
|
+
await writeFile(join6(functionDir, file2.path), file2.content);
|
|
231354
|
+
}
|
|
231355
|
+
written.push(fn.name);
|
|
231356
|
+
}
|
|
231357
|
+
return { written, skipped };
|
|
231358
|
+
}
|
|
231359
|
+
async function isFunctionUnchanged(functionDir, fn) {
|
|
231360
|
+
if (!await pathExists(functionDir)) {
|
|
231361
|
+
return false;
|
|
231362
|
+
}
|
|
231363
|
+
const configPath = join6(functionDir, "function.jsonc");
|
|
231364
|
+
try {
|
|
231365
|
+
const localConfig = await readJsonFile(configPath);
|
|
231366
|
+
if (localConfig.entry !== fn.entry) {
|
|
231367
|
+
return false;
|
|
231368
|
+
}
|
|
231369
|
+
const localAuto = JSON.stringify(localConfig.automations ?? []);
|
|
231370
|
+
const remoteAuto = JSON.stringify(fn.automations);
|
|
231371
|
+
if (localAuto !== remoteAuto) {
|
|
231372
|
+
return false;
|
|
231373
|
+
}
|
|
231374
|
+
} catch {
|
|
231375
|
+
return false;
|
|
231376
|
+
}
|
|
231377
|
+
for (const file2 of fn.files) {
|
|
231378
|
+
const filePath = join6(functionDir, file2.path);
|
|
231379
|
+
if (!await pathExists(filePath)) {
|
|
231380
|
+
return false;
|
|
231381
|
+
}
|
|
231382
|
+
try {
|
|
231383
|
+
const localContent = await readTextFile(filePath);
|
|
231384
|
+
if (localContent !== file2.content) {
|
|
231385
|
+
return false;
|
|
231386
|
+
}
|
|
231387
|
+
} catch {
|
|
231388
|
+
return false;
|
|
231389
|
+
}
|
|
231390
|
+
}
|
|
231391
|
+
return true;
|
|
231392
|
+
}
|
|
231332
231393
|
// src/core/resources/function/resource.ts
|
|
231333
231394
|
var functionResource = {
|
|
231334
231395
|
readAll: readAllFunctions,
|
|
@@ -231373,10 +231434,10 @@ async function readProjectConfig(projectRoot) {
|
|
|
231373
231434
|
const project = result.data;
|
|
231374
231435
|
const configDir = dirname5(configPath);
|
|
231375
231436
|
const [entities, functions, agents, connectors] = await Promise.all([
|
|
231376
|
-
entityResource.readAll(
|
|
231377
|
-
functionResource.readAll(
|
|
231378
|
-
agentResource.readAll(
|
|
231379
|
-
connectorResource.readAll(
|
|
231437
|
+
entityResource.readAll(join7(configDir, project.entitiesDir)),
|
|
231438
|
+
functionResource.readAll(join7(configDir, project.functionsDir)),
|
|
231439
|
+
agentResource.readAll(join7(configDir, project.agentsDir)),
|
|
231440
|
+
connectorResource.readAll(join7(configDir, project.connectorsDir))
|
|
231380
231441
|
]);
|
|
231381
231442
|
return {
|
|
231382
231443
|
project: { ...project, root, configPath },
|
|
@@ -231473,12 +231534,12 @@ async function readAppConfig(projectRoot) {
|
|
|
231473
231534
|
// src/core/project/template.ts
|
|
231474
231535
|
var import_ejs = __toESM(require_ejs(), 1);
|
|
231475
231536
|
var import_front_matter = __toESM(require_front_matter(), 1);
|
|
231476
|
-
import { dirname as dirname6, join as
|
|
231537
|
+
import { dirname as dirname6, join as join9 } from "node:path";
|
|
231477
231538
|
|
|
231478
231539
|
// src/core/assets.ts
|
|
231479
231540
|
import { cpSync, existsSync } from "node:fs";
|
|
231480
231541
|
import { homedir as homedir2 } from "node:os";
|
|
231481
|
-
import { join as
|
|
231542
|
+
import { join as join8 } from "node:path";
|
|
231482
231543
|
// package.json
|
|
231483
231544
|
var package_default = {
|
|
231484
231545
|
name: "base44",
|
|
@@ -231570,15 +231631,15 @@ var package_default = {
|
|
|
231570
231631
|
};
|
|
231571
231632
|
|
|
231572
231633
|
// src/core/assets.ts
|
|
231573
|
-
var ASSETS_DIR =
|
|
231634
|
+
var ASSETS_DIR = join8(homedir2(), ".base44", "assets", package_default.version);
|
|
231574
231635
|
function getTemplatesDir() {
|
|
231575
|
-
return
|
|
231636
|
+
return join8(ASSETS_DIR, "templates");
|
|
231576
231637
|
}
|
|
231577
231638
|
function getTemplatesIndexPath() {
|
|
231578
|
-
return
|
|
231639
|
+
return join8(ASSETS_DIR, "templates", "templates.json");
|
|
231579
231640
|
}
|
|
231580
231641
|
function getDenoWrapperPath() {
|
|
231581
|
-
return
|
|
231642
|
+
return join8(ASSETS_DIR, "deno-runtime", "main.js");
|
|
231582
231643
|
}
|
|
231583
231644
|
function ensureNpmAssets(sourceDir) {
|
|
231584
231645
|
if (existsSync(ASSETS_DIR))
|
|
@@ -231599,23 +231660,23 @@ async function listTemplates() {
|
|
|
231599
231660
|
return result.data.templates;
|
|
231600
231661
|
}
|
|
231601
231662
|
async function renderTemplate(template, destPath, data) {
|
|
231602
|
-
const templateDir =
|
|
231663
|
+
const templateDir = join9(getTemplatesDir(), template.path);
|
|
231603
231664
|
const files = await globby("**/*", {
|
|
231604
231665
|
cwd: templateDir,
|
|
231605
231666
|
dot: true,
|
|
231606
231667
|
onlyFiles: true
|
|
231607
231668
|
});
|
|
231608
231669
|
for (const file2 of files) {
|
|
231609
|
-
const srcPath =
|
|
231670
|
+
const srcPath = join9(templateDir, file2);
|
|
231610
231671
|
try {
|
|
231611
231672
|
if (file2.endsWith(".ejs")) {
|
|
231612
231673
|
const rendered = await import_ejs.default.renderFile(srcPath, data);
|
|
231613
231674
|
const { attributes, body } = import_front_matter.default(rendered);
|
|
231614
|
-
const destFile = attributes.outputFileName ?
|
|
231615
|
-
const destFilePath =
|
|
231675
|
+
const destFile = attributes.outputFileName ? join9(dirname6(file2), attributes.outputFileName) : file2.replace(/\.ejs$/, "");
|
|
231676
|
+
const destFilePath = join9(destPath, destFile);
|
|
231616
231677
|
await writeFile(destFilePath, body);
|
|
231617
231678
|
} else {
|
|
231618
|
-
const destFilePath =
|
|
231679
|
+
const destFilePath = join9(destPath, file2);
|
|
231619
231680
|
await copyFile(srcPath, destFilePath);
|
|
231620
231681
|
}
|
|
231621
231682
|
} catch (error48) {
|
|
@@ -231714,7 +231775,7 @@ async function getSiteFilePaths(outputDir) {
|
|
|
231714
231775
|
// src/core/site/deploy.ts
|
|
231715
231776
|
import { randomUUID } from "node:crypto";
|
|
231716
231777
|
import { tmpdir } from "node:os";
|
|
231717
|
-
import { join as
|
|
231778
|
+
import { join as join10 } from "node:path";
|
|
231718
231779
|
async function deploySite(siteOutputDir) {
|
|
231719
231780
|
if (!await pathExists(siteOutputDir)) {
|
|
231720
231781
|
throw new InvalidInputError(`Output directory does not exist: ${siteOutputDir}. Make sure to build your project first.`, {
|
|
@@ -231731,7 +231792,7 @@ async function deploySite(siteOutputDir) {
|
|
|
231731
231792
|
]
|
|
231732
231793
|
});
|
|
231733
231794
|
}
|
|
231734
|
-
const archivePath =
|
|
231795
|
+
const archivePath = join10(tmpdir(), `base44-site-${randomUUID()}.tar.gz`);
|
|
231735
231796
|
try {
|
|
231736
231797
|
await createArchive(siteOutputDir, archivePath);
|
|
231737
231798
|
return await uploadSite(archivePath);
|
|
@@ -239420,7 +239481,7 @@ function getDashboardUrl(projectId) {
|
|
|
239420
239481
|
async function pullAgentsAction() {
|
|
239421
239482
|
const { project: project2 } = await readProjectConfig();
|
|
239422
239483
|
const configDir = dirname7(project2.configPath);
|
|
239423
|
-
const agentsDir =
|
|
239484
|
+
const agentsDir = join11(configDir, project2.agentsDir);
|
|
239424
239485
|
const remoteAgents = await runTask("Fetching agents from Base44", async () => {
|
|
239425
239486
|
return await fetchAgents();
|
|
239426
239487
|
}, {
|
|
@@ -239514,11 +239575,11 @@ function getWhoamiCommand(context) {
|
|
|
239514
239575
|
}
|
|
239515
239576
|
|
|
239516
239577
|
// src/cli/commands/connectors/pull.ts
|
|
239517
|
-
import { dirname as dirname8, join as
|
|
239578
|
+
import { dirname as dirname8, join as join12 } from "node:path";
|
|
239518
239579
|
async function pullConnectorsAction() {
|
|
239519
239580
|
const { project: project2 } = await readProjectConfig();
|
|
239520
239581
|
const configDir = dirname8(project2.configPath);
|
|
239521
|
-
const connectorsDir =
|
|
239582
|
+
const connectorsDir = join12(configDir, project2.connectorsDir);
|
|
239522
239583
|
const remoteConnectors = await runTask("Fetching connectors from Base44", async () => {
|
|
239523
239584
|
return await listConnectors();
|
|
239524
239585
|
}, {
|
|
@@ -240404,34 +240465,57 @@ function getDeployCommand(context) {
|
|
|
240404
240465
|
});
|
|
240405
240466
|
}
|
|
240406
240467
|
|
|
240407
|
-
// src/cli/commands/functions/
|
|
240408
|
-
|
|
240409
|
-
|
|
240410
|
-
|
|
240411
|
-
|
|
240468
|
+
// src/cli/commands/functions/pull.ts
|
|
240469
|
+
import { dirname as dirname9, join as join13 } from "node:path";
|
|
240470
|
+
async function pullFunctionsAction(name2) {
|
|
240471
|
+
const { project: project2 } = await readProjectConfig();
|
|
240472
|
+
const configDir = dirname9(project2.configPath);
|
|
240473
|
+
const functionsDir = join13(configDir, project2.functionsDir);
|
|
240474
|
+
const remoteFunctions = await runTask("Fetching functions from Base44", async () => {
|
|
240475
|
+
const { functions } = await listDeployedFunctions();
|
|
240476
|
+
return functions;
|
|
240477
|
+
}, {
|
|
240478
|
+
successMessage: "Functions fetched successfully",
|
|
240479
|
+
errorMessage: "Failed to fetch functions"
|
|
240480
|
+
});
|
|
240481
|
+
const toPull = name2 ? remoteFunctions.filter((f) => f.name === name2) : remoteFunctions;
|
|
240482
|
+
if (name2 && toPull.length === 0) {
|
|
240483
|
+
return {
|
|
240484
|
+
outroMessage: `Function "${name2}" not found on remote`
|
|
240485
|
+
};
|
|
240412
240486
|
}
|
|
240413
|
-
|
|
240414
|
-
|
|
240415
|
-
|
|
240416
|
-
|
|
240487
|
+
if (toPull.length === 0) {
|
|
240488
|
+
return { outroMessage: "No functions found on remote" };
|
|
240489
|
+
}
|
|
240490
|
+
const { written, skipped } = await runTask("Writing function files", async () => {
|
|
240491
|
+
return await writeFunctions(functionsDir, toPull);
|
|
240492
|
+
}, {
|
|
240493
|
+
successMessage: "Function files written successfully",
|
|
240494
|
+
errorMessage: "Failed to write function files"
|
|
240495
|
+
});
|
|
240496
|
+
for (const name3 of written) {
|
|
240497
|
+
R2.success(`${name3.padEnd(25)} written`);
|
|
240498
|
+
}
|
|
240499
|
+
for (const name3 of skipped) {
|
|
240500
|
+
R2.info(`${name3.padEnd(25)} unchanged`);
|
|
240417
240501
|
}
|
|
240418
240502
|
return {
|
|
240419
|
-
outroMessage:
|
|
240503
|
+
outroMessage: `Pulled ${toPull.length} function${toPull.length !== 1 ? "s" : ""} to ${functionsDir}`
|
|
240420
240504
|
};
|
|
240421
240505
|
}
|
|
240422
|
-
function
|
|
240423
|
-
return new Command("
|
|
240424
|
-
await runCommand(
|
|
240506
|
+
function getPullCommand(context) {
|
|
240507
|
+
return new Command("pull").description("Pull deployed functions from Base44").argument("[name]", "Pull a single function by name").action(async (name2) => {
|
|
240508
|
+
await runCommand(() => pullFunctionsAction(name2), { requireAuth: true }, context);
|
|
240425
240509
|
});
|
|
240426
240510
|
}
|
|
240427
240511
|
|
|
240428
240512
|
// src/cli/commands/functions/index.ts
|
|
240429
240513
|
function getFunctionsCommand(context) {
|
|
240430
|
-
return new Command("functions").description("Manage backend functions").addCommand(getDeployCommand(context)).addCommand(
|
|
240514
|
+
return new Command("functions").description("Manage backend functions").addCommand(getDeployCommand(context)).addCommand(getPullCommand(context));
|
|
240431
240515
|
}
|
|
240432
240516
|
|
|
240433
240517
|
// src/cli/commands/project/create.ts
|
|
240434
|
-
import { basename as basename3, join as
|
|
240518
|
+
import { basename as basename3, join as join14, resolve as resolve2 } from "node:path";
|
|
240435
240519
|
var import_kebabCase = __toESM(require_kebabCase(), 1);
|
|
240436
240520
|
var DEFAULT_TEMPLATE_ID = "backend-only";
|
|
240437
240521
|
async function getTemplateById(templateId) {
|
|
@@ -240567,7 +240651,7 @@ async function executeCreate({
|
|
|
240567
240651
|
updateMessage("Building project...");
|
|
240568
240652
|
await execa({ cwd: resolvedPath, shell: true })`${buildCommand}`;
|
|
240569
240653
|
updateMessage("Deploying site...");
|
|
240570
|
-
return await deploySite(
|
|
240654
|
+
return await deploySite(join14(resolvedPath, outputDirectory));
|
|
240571
240655
|
}, {
|
|
240572
240656
|
successMessage: theme.colors.base44Orange("Site deployed successfully"),
|
|
240573
240657
|
errorMessage: "Failed to deploy site"
|
|
@@ -241193,10 +241277,10 @@ function toPascalCase(name2) {
|
|
|
241193
241277
|
return name2.split(/[-_\s]+/).map((w8) => w8.charAt(0).toUpperCase() + w8.slice(1)).join("");
|
|
241194
241278
|
}
|
|
241195
241279
|
// src/core/types/update-project.ts
|
|
241196
|
-
import { join as
|
|
241280
|
+
import { join as join17 } from "node:path";
|
|
241197
241281
|
var TYPES_INCLUDE_PATH = `${PROJECT_SUBDIR}/${TYPES_OUTPUT_SUBDIR}/*.d.ts`;
|
|
241198
241282
|
async function updateProjectConfig(projectRoot) {
|
|
241199
|
-
const tsconfigPath =
|
|
241283
|
+
const tsconfigPath = join17(projectRoot, "tsconfig.json");
|
|
241200
241284
|
if (!await pathExists(tsconfigPath)) {
|
|
241201
241285
|
return false;
|
|
241202
241286
|
}
|
|
@@ -241239,7 +241323,7 @@ function getTypesCommand(context) {
|
|
|
241239
241323
|
}
|
|
241240
241324
|
|
|
241241
241325
|
// src/cli/dev/dev-server/main.ts
|
|
241242
|
-
import { dirname as
|
|
241326
|
+
import { dirname as dirname14, join as join20 } from "node:path";
|
|
241243
241327
|
var import_cors = __toESM(require_lib4(), 1);
|
|
241244
241328
|
var import_express4 = __toESM(require_express(), 1);
|
|
241245
241329
|
|
|
@@ -242703,9 +242787,9 @@ class NodeFsHandler {
|
|
|
242703
242787
|
if (this.fsw.closed) {
|
|
242704
242788
|
return;
|
|
242705
242789
|
}
|
|
242706
|
-
const
|
|
242790
|
+
const dirname13 = sp2.dirname(file2);
|
|
242707
242791
|
const basename5 = sp2.basename(file2);
|
|
242708
|
-
const parent = this.fsw._getWatchedDir(
|
|
242792
|
+
const parent = this.fsw._getWatchedDir(dirname13);
|
|
242709
242793
|
let prevStats = stats;
|
|
242710
242794
|
if (parent.has(basename5))
|
|
242711
242795
|
return;
|
|
@@ -242732,7 +242816,7 @@ class NodeFsHandler {
|
|
|
242732
242816
|
prevStats = newStats2;
|
|
242733
242817
|
}
|
|
242734
242818
|
} catch (error48) {
|
|
242735
|
-
this.fsw._remove(
|
|
242819
|
+
this.fsw._remove(dirname13, basename5);
|
|
242736
242820
|
}
|
|
242737
242821
|
} else if (parent.has(basename5)) {
|
|
242738
242822
|
const at13 = newStats.atimeMs;
|
|
@@ -243735,8 +243819,8 @@ async function createDevServer(options8) {
|
|
|
243735
243819
|
broadcastEntityEvent(io6, appId, entityName, event);
|
|
243736
243820
|
};
|
|
243737
243821
|
const base44ConfigWatcher = new WatchBase44({
|
|
243738
|
-
functions:
|
|
243739
|
-
entities:
|
|
243822
|
+
functions: join20(dirname14(project2.configPath), project2.functionsDir),
|
|
243823
|
+
entities: join20(dirname14(project2.configPath), project2.entitiesDir)
|
|
243740
243824
|
}, devLogger);
|
|
243741
243825
|
base44ConfigWatcher.on("change", async (name2) => {
|
|
243742
243826
|
try {
|
|
@@ -243926,7 +244010,7 @@ var import_detect_agent = __toESM(require_dist5(), 1);
|
|
|
243926
244010
|
import { release, type } from "node:os";
|
|
243927
244011
|
|
|
243928
244012
|
// ../../node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
|
|
243929
|
-
import { dirname as
|
|
244013
|
+
import { dirname as dirname15, posix, sep } from "path";
|
|
243930
244014
|
function createModulerModifier() {
|
|
243931
244015
|
const getModuleFromFileName = createGetModuleFromFilename();
|
|
243932
244016
|
return async (frames) => {
|
|
@@ -243935,7 +244019,7 @@ function createModulerModifier() {
|
|
|
243935
244019
|
return frames;
|
|
243936
244020
|
};
|
|
243937
244021
|
}
|
|
243938
|
-
function createGetModuleFromFilename(basePath = process.argv[1] ?
|
|
244022
|
+
function createGetModuleFromFilename(basePath = process.argv[1] ? dirname15(process.argv[1]) : process.cwd(), isWindows5 = sep === "\\") {
|
|
243939
244023
|
const normalizedBase = isWindows5 ? normalizeWindowsPath2(basePath) : basePath;
|
|
243940
244024
|
return (filename) => {
|
|
243941
244025
|
if (!filename)
|
|
@@ -248124,9 +248208,9 @@ function addCommandInfoToErrorReporter(program2, errorReporter) {
|
|
|
248124
248208
|
});
|
|
248125
248209
|
}
|
|
248126
248210
|
// src/cli/index.ts
|
|
248127
|
-
var __dirname4 =
|
|
248211
|
+
var __dirname4 = dirname16(fileURLToPath6(import.meta.url));
|
|
248128
248212
|
async function runCLI() {
|
|
248129
|
-
ensureNpmAssets(
|
|
248213
|
+
ensureNpmAssets(join21(__dirname4, "../assets"));
|
|
248130
248214
|
const errorReporter = new ErrorReporter;
|
|
248131
248215
|
errorReporter.registerProcessErrorHandlers();
|
|
248132
248216
|
const isNonInteractive = !process.stdin.isTTY || !process.stdout.isTTY;
|
|
@@ -248158,4 +248242,4 @@ export {
|
|
|
248158
248242
|
CLIExitError
|
|
248159
248243
|
};
|
|
248160
248244
|
|
|
248161
|
-
//# debugId=
|
|
248245
|
+
//# debugId=38B21C5048857CD664756E2164756E21
|