@fern-api/fern-api-dev 4.46.4-44-gf18d2ec698b → 4.46.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.cjs +61 -55
- package/package.json +1 -1
package/cli.cjs
CHANGED
|
@@ -365594,7 +365594,7 @@ var require_fernignore = __commonJS({
|
|
|
365594
365594
|
var fs_1 = require("fs");
|
|
365595
365595
|
var promises_1 = require("fs/promises");
|
|
365596
365596
|
var path_1 = require("path");
|
|
365597
|
-
exports2.REPLAY_FERNIGNORE_ENTRIES = [".fern/replay.lock"
|
|
365597
|
+
exports2.REPLAY_FERNIGNORE_ENTRIES = [".fern/replay.lock"];
|
|
365598
365598
|
async function ensureReplayFernignoreEntries(outputDir) {
|
|
365599
365599
|
const fernignorePath = (0, path_1.join)(outputDir, ".fernignore");
|
|
365600
365600
|
let content5 = "";
|
|
@@ -365950,7 +365950,6 @@ var require_replay_init = __commonJS({
|
|
|
365950
365950
|
exports2.formatBootstrapSummary = formatBootstrapSummary2;
|
|
365951
365951
|
var github_1 = (init_lib7(), __toCommonJS(lib_exports3));
|
|
365952
365952
|
var replay_1 = require_dist11();
|
|
365953
|
-
var rest_1 = (init_dist_src9(), __toCommonJS(dist_src_exports));
|
|
365954
365953
|
var fs_1 = require("fs");
|
|
365955
365954
|
var path_1 = require("path");
|
|
365956
365955
|
var tmp_promise_1 = __importDefault2(require_tmp_promise());
|
|
@@ -365959,12 +365958,11 @@ var require_replay_init = __commonJS({
|
|
|
365959
365958
|
const { githubRepo, token, dryRun } = params2;
|
|
365960
365959
|
const tmpDir = await tmp_promise_1.default.dir({ unsafeCleanup: true });
|
|
365961
365960
|
const repoPath = tmpDir.path;
|
|
365962
|
-
|
|
365961
|
+
await (0, github_1.cloneRepository)({
|
|
365963
365962
|
githubRepository: githubRepo,
|
|
365964
365963
|
installationToken: token,
|
|
365965
365964
|
targetDirectory: repoPath
|
|
365966
365965
|
});
|
|
365967
|
-
const defaultBranch = await repository.getDefaultBranch();
|
|
365968
365966
|
const bootstrapResult = await (0, replay_1.bootstrap)(repoPath, {
|
|
365969
365967
|
dryRun,
|
|
365970
365968
|
fernignoreAction: "skip",
|
|
@@ -365973,50 +365971,22 @@ var require_replay_init = __commonJS({
|
|
|
365973
365971
|
importHistory: params2.importHistory
|
|
365974
365972
|
});
|
|
365975
365973
|
if (!bootstrapResult.generationCommit) {
|
|
365976
|
-
return { bootstrap: bootstrapResult };
|
|
365974
|
+
return { bootstrap: bootstrapResult, fernignoreEntries: [] };
|
|
365977
365975
|
}
|
|
365978
365976
|
if (dryRun) {
|
|
365979
|
-
return { bootstrap: bootstrapResult };
|
|
365977
|
+
return { bootstrap: bootstrapResult, fernignoreEntries: [] };
|
|
365980
365978
|
}
|
|
365981
365979
|
(0, fernignore_1.ensureReplayFernignoreEntriesSync)(repoPath);
|
|
365982
|
-
const
|
|
365983
|
-
|
|
365984
|
-
|
|
365985
|
-
|
|
365986
|
-
const filesToAdd = [".fern/replay.lock", ".fern/replay.yml", ".fernignore"].filter((f10) => (0, fs_1.existsSync)((0, path_1.join)(repoPath, f10)));
|
|
365987
|
-
const branchName = `fern-replay/init-${Date.now()}`;
|
|
365988
|
-
await repository.checkoutOrCreateLocal(branchName);
|
|
365989
|
-
const git = new replay_1.GitClient(repoPath);
|
|
365990
|
-
await git.exec(["add", ...filesToAdd]);
|
|
365991
|
-
await git.exec([
|
|
365992
|
-
"-c",
|
|
365993
|
-
`user.name=${replay_1.FERN_BOT_NAME}`,
|
|
365994
|
-
"-c",
|
|
365995
|
-
`user.email=${replay_1.FERN_BOT_EMAIL}`,
|
|
365996
|
-
"-c",
|
|
365997
|
-
"commit.gpgsign=false",
|
|
365998
|
-
"commit",
|
|
365999
|
-
"--no-verify",
|
|
366000
|
-
"-m",
|
|
366001
|
-
commitMessage
|
|
366002
|
-
]);
|
|
366003
|
-
await repository.pushUpstream(branchName);
|
|
366004
|
-
const parsed = (0, github_1.parseRepository)(githubRepo);
|
|
366005
|
-
const octokit = new rest_1.Octokit({ auth: token });
|
|
366006
|
-
const prTitle = params2.prTitle ?? "[fern-replay] Initialize Replay for SDK customizations";
|
|
366007
|
-
const prBody = params2.prBody ?? buildPrBody(bootstrapResult);
|
|
366008
|
-
const { data: pr17 } = await octokit.pulls.create({
|
|
366009
|
-
owner: parsed.owner,
|
|
366010
|
-
repo: parsed.repo,
|
|
366011
|
-
head: branchName,
|
|
366012
|
-
base: defaultBranch,
|
|
366013
|
-
title: prTitle,
|
|
366014
|
-
body: prBody
|
|
366015
|
-
});
|
|
365980
|
+
const lockfilePath = (0, path_1.join)(repoPath, ".fern", "replay.lock");
|
|
365981
|
+
const lockfileContent = (0, fs_1.existsSync)(lockfilePath) ? (0, fs_1.readFileSync)(lockfilePath, "utf-8") : void 0;
|
|
365982
|
+
const replayYmlPath = (0, path_1.join)(repoPath, ".fern", "replay.yml");
|
|
365983
|
+
const replayYmlContent = (0, fs_1.existsSync)(replayYmlPath) ? (0, fs_1.readFileSync)(replayYmlPath, "utf-8") : void 0;
|
|
366016
365984
|
return {
|
|
366017
365985
|
bootstrap: bootstrapResult,
|
|
366018
|
-
|
|
366019
|
-
|
|
365986
|
+
lockfileContent,
|
|
365987
|
+
replayYmlContent,
|
|
365988
|
+
fernignoreEntries: fernignore_1.REPLAY_FERNIGNORE_ENTRIES,
|
|
365989
|
+
prBody: buildPrBody(bootstrapResult)
|
|
366020
365990
|
};
|
|
366021
365991
|
}
|
|
366022
365992
|
function formatBootstrapSummary2(result) {
|
|
@@ -366075,14 +366045,6 @@ Base generation: ${bootstrapResult.generationCommit.sha.slice(0, 7)}`;
|
|
|
366075
366045
|
entries21.push({ level: "warn", message: ` ${w20}` });
|
|
366076
366046
|
}
|
|
366077
366047
|
}
|
|
366078
|
-
if (result.prUrl) {
|
|
366079
|
-
entries21.push({ level: "info", message: `
|
|
366080
|
-
PR created: ${result.prUrl}` });
|
|
366081
|
-
entries21.push({ level: "info", message: "Merge the PR to enable Replay for this repository." });
|
|
366082
|
-
} else if (result.branch) {
|
|
366083
|
-
entries21.push({ level: "info", message: `
|
|
366084
|
-
Pushed to branch: ${result.branch}` });
|
|
366085
|
-
}
|
|
366086
366048
|
return entries21;
|
|
366087
366049
|
}
|
|
366088
366050
|
function buildPrBody(result) {
|
|
@@ -601990,7 +601952,7 @@ var AccessTokenPosthogManager = class {
|
|
|
601990
601952
|
properties: {
|
|
601991
601953
|
...event,
|
|
601992
601954
|
...event.properties,
|
|
601993
|
-
version: "4.46.
|
|
601955
|
+
version: "4.46.5",
|
|
601994
601956
|
usingAccessToken: true
|
|
601995
601957
|
}
|
|
601996
601958
|
});
|
|
@@ -602041,7 +602003,7 @@ var UserPosthogManager = class {
|
|
|
602041
602003
|
distinctId: this.userId ?? await this.getPersistedDistinctId(),
|
|
602042
602004
|
event: "CLI",
|
|
602043
602005
|
properties: {
|
|
602044
|
-
version: "4.46.
|
|
602006
|
+
version: "4.46.5",
|
|
602045
602007
|
...event,
|
|
602046
602008
|
...event.properties,
|
|
602047
602009
|
usingAccessToken: false,
|
|
@@ -825895,7 +825857,7 @@ var import_path54 = __toESM(require("path"), 1);
|
|
|
825895
825857
|
var LOCAL_STORAGE_FOLDER4 = ".fern-dev";
|
|
825896
825858
|
var LOGS_FOLDER_NAME = "logs";
|
|
825897
825859
|
function getCliSource() {
|
|
825898
|
-
const version7 = "4.46.
|
|
825860
|
+
const version7 = "4.46.5";
|
|
825899
825861
|
return `cli@${version7}`;
|
|
825900
825862
|
}
|
|
825901
825863
|
var DebugLogger = class {
|
|
@@ -836862,7 +836824,7 @@ var LegacyDocsPublisher = class {
|
|
|
836862
836824
|
previewId: void 0,
|
|
836863
836825
|
disableTemplates: void 0,
|
|
836864
836826
|
skipUpload,
|
|
836865
|
-
cliVersion: "4.46.
|
|
836827
|
+
cliVersion: "4.46.5"
|
|
836866
836828
|
});
|
|
836867
836829
|
if (taskContext.getResult() === TaskResult.Failure) {
|
|
836868
836830
|
return { success: false };
|
|
@@ -909712,7 +909674,7 @@ var CliContext = class {
|
|
|
909712
909674
|
if (false) {
|
|
909713
909675
|
this.logger.error("CLI_VERSION is not defined");
|
|
909714
909676
|
}
|
|
909715
|
-
return "4.46.
|
|
909677
|
+
return "4.46.5";
|
|
909716
909678
|
}
|
|
909717
909679
|
getCliName() {
|
|
909718
909680
|
if (false) {
|
|
@@ -929241,7 +929203,41 @@ function addReplayInitCommand(cli, cliContext) {
|
|
|
929241
929203
|
}
|
|
929242
929204
|
if (argv.dryRun) {
|
|
929243
929205
|
cliContext.logger.info("\nDry run complete. No changes made.");
|
|
929206
|
+
return;
|
|
929207
|
+
}
|
|
929208
|
+
if (result.lockfileContent == null) {
|
|
929209
|
+
return cliContext.failAndThrow("Bootstrap succeeded but lockfile content is missing.");
|
|
929210
|
+
}
|
|
929211
|
+
const fernToken = await cliContext.runTask((context3) => askToLogin(context3));
|
|
929212
|
+
const { owner, repo } = parseOwnerRepo(githubRepo);
|
|
929213
|
+
const fiddleOrigin = getFiddleOrigin();
|
|
929214
|
+
const response = await fetch(`${fiddleOrigin}/api/remote-gen/replay/init`, {
|
|
929215
|
+
method: "POST",
|
|
929216
|
+
headers: {
|
|
929217
|
+
"Content-Type": "application/json",
|
|
929218
|
+
Authorization: `Bearer ${fernToken.value}`
|
|
929219
|
+
},
|
|
929220
|
+
body: JSON.stringify({
|
|
929221
|
+
owner,
|
|
929222
|
+
repo,
|
|
929223
|
+
lockfileContents: result.lockfileContent,
|
|
929224
|
+
fernignoreEntries: result.fernignoreEntries,
|
|
929225
|
+
prBody: result.prBody
|
|
929226
|
+
})
|
|
929227
|
+
});
|
|
929228
|
+
if (!response.ok) {
|
|
929229
|
+
if (response.status === 404) {
|
|
929230
|
+
return cliContext.failAndThrow(
|
|
929231
|
+
"The Fern GitHub App is not installed on this repository. Install it at https://github.com/apps/fern-api to enable server-side PR creation."
|
|
929232
|
+
);
|
|
929233
|
+
}
|
|
929234
|
+
const body = await response.text();
|
|
929235
|
+
return cliContext.failAndThrow(`Failed to create PR via Fern: ${body}`);
|
|
929244
929236
|
}
|
|
929237
|
+
const data2 = await response.json();
|
|
929238
|
+
cliContext.logger.info(`
|
|
929239
|
+
PR created: ${data2.prUrl}`);
|
|
929240
|
+
cliContext.logger.info("Merge the PR to enable Replay for this repository.");
|
|
929245
929241
|
} catch (error50) {
|
|
929246
929242
|
cliContext.failAndThrow(`Failed to initialize Replay: ${extractErrorMessage(error50)}`);
|
|
929247
929243
|
}
|
|
@@ -929316,6 +929312,16 @@ Resolve the conflicts in your editor, then run \`fern replay resolve\` again to
|
|
|
929316
929312
|
}
|
|
929317
929313
|
);
|
|
929318
929314
|
}
|
|
929315
|
+
function parseOwnerRepo(githubRepo) {
|
|
929316
|
+
const cleaned = githubRepo.replace(/^https?:\/\//, "").replace(/\.git$/, "").replace(/^github\.com\//, "");
|
|
929317
|
+
const parts = cleaned.split("/");
|
|
929318
|
+
const owner = parts[parts.length - 2];
|
|
929319
|
+
const repo = parts[parts.length - 1];
|
|
929320
|
+
if (owner == null || repo == null) {
|
|
929321
|
+
throw new Error(`Could not parse owner/repo from: ${githubRepo}`);
|
|
929322
|
+
}
|
|
929323
|
+
return { owner, repo };
|
|
929324
|
+
}
|
|
929319
929325
|
/*! Bundled license information:
|
|
929320
929326
|
|
|
929321
929327
|
yargs-parser/build/lib/string-utils.js:
|
package/package.json
CHANGED