@fern-api/fern-api-dev 4.106.3-6-ga791f2f555d → 4.107.0-5-g8e65b2fdec8
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 +190 -60
- package/package.json +1 -1
package/cli.cjs
CHANGED
|
@@ -621265,7 +621265,7 @@ var AccessTokenPosthogManager = class {
|
|
|
621265
621265
|
properties: {
|
|
621266
621266
|
...event,
|
|
621267
621267
|
...event.properties,
|
|
621268
|
-
version: "4.
|
|
621268
|
+
version: "4.107.0-5-g8e65b2fdec8",
|
|
621269
621269
|
usingAccessToken: true
|
|
621270
621270
|
}
|
|
621271
621271
|
});
|
|
@@ -621319,7 +621319,7 @@ var UserPosthogManager = class {
|
|
|
621319
621319
|
distinctId: this.userId ?? await this.getPersistedDistinctId(),
|
|
621320
621320
|
event: "CLI",
|
|
621321
621321
|
properties: {
|
|
621322
|
-
version: "4.
|
|
621322
|
+
version: "4.107.0-5-g8e65b2fdec8",
|
|
621323
621323
|
...event,
|
|
621324
621324
|
...event.properties,
|
|
621325
621325
|
usingAccessToken: false,
|
|
@@ -832962,7 +832962,7 @@ var LOCAL_STORAGE_FOLDER4 = ".fern-dev";
|
|
|
832962
832962
|
var LOGS_FOLDER_NAME = "logs";
|
|
832963
832963
|
var MAX_LOGS_DIR_SIZE_BYTES = 100 * 1024 * 1024;
|
|
832964
832964
|
function getCliSource() {
|
|
832965
|
-
const version7 = "4.
|
|
832965
|
+
const version7 = "4.107.0-5-g8e65b2fdec8";
|
|
832966
832966
|
return `cli@${version7}`;
|
|
832967
832967
|
}
|
|
832968
832968
|
var DebugLogger = class {
|
|
@@ -845371,7 +845371,7 @@ var LegacyDocsPublisher = class {
|
|
|
845371
845371
|
previewId,
|
|
845372
845372
|
disableTemplates: void 0,
|
|
845373
845373
|
skipUpload,
|
|
845374
|
-
cliVersion: "4.
|
|
845374
|
+
cliVersion: "4.107.0-5-g8e65b2fdec8",
|
|
845375
845375
|
loginCommand: "fern auth login"
|
|
845376
845376
|
});
|
|
845377
845377
|
if (taskContext.getResult() === TaskResult.Failure) {
|
|
@@ -881444,52 +881444,6 @@ var Begin = class extends AstNode6 {
|
|
|
881444
881444
|
}
|
|
881445
881445
|
};
|
|
881446
881446
|
|
|
881447
|
-
// ../../../generators/ruby-v2/ast/lib/ast/IfElse.js
|
|
881448
|
-
var IfElse = class extends AstNode6 {
|
|
881449
|
-
ifBranch;
|
|
881450
|
-
elseIfs;
|
|
881451
|
-
elseBody;
|
|
881452
|
-
constructor({ if: ifBranch, elseIf, elseBody }) {
|
|
881453
|
-
super();
|
|
881454
|
-
this.ifBranch = ifBranch;
|
|
881455
|
-
this.elseIfs = elseIf ?? [];
|
|
881456
|
-
this.elseBody = elseBody ? Array.isArray(elseBody) ? elseBody : [elseBody] : void 0;
|
|
881457
|
-
}
|
|
881458
|
-
write(writer2) {
|
|
881459
|
-
writer2.write("if ");
|
|
881460
|
-
this.ifBranch.condition.write(writer2);
|
|
881461
|
-
writer2.writeLine();
|
|
881462
|
-
writer2.indent();
|
|
881463
|
-
for (const stmt of this.ifBranch.thenBody) {
|
|
881464
|
-
stmt.write(writer2);
|
|
881465
|
-
writer2.writeNewLineIfLastLineNot();
|
|
881466
|
-
}
|
|
881467
|
-
writer2.dedent();
|
|
881468
|
-
for (const elseIf of this.elseIfs) {
|
|
881469
|
-
writer2.write("elsif ");
|
|
881470
|
-
elseIf.condition.write(writer2);
|
|
881471
|
-
writer2.writeLine();
|
|
881472
|
-
writer2.indent();
|
|
881473
|
-
for (const stmt of elseIf.thenBody) {
|
|
881474
|
-
stmt.write(writer2);
|
|
881475
|
-
writer2.writeNewLineIfLastLineNot();
|
|
881476
|
-
}
|
|
881477
|
-
writer2.dedent();
|
|
881478
|
-
}
|
|
881479
|
-
if (this.elseBody && this.elseBody.length > 0) {
|
|
881480
|
-
writer2.writeLine("else");
|
|
881481
|
-
writer2.indent();
|
|
881482
|
-
for (const stmt of this.elseBody) {
|
|
881483
|
-
stmt.write(writer2);
|
|
881484
|
-
writer2.writeNewLineIfLastLineNot();
|
|
881485
|
-
}
|
|
881486
|
-
writer2.dedent();
|
|
881487
|
-
}
|
|
881488
|
-
writer2.write("end");
|
|
881489
|
-
writer2.writeNewLineIfLastLineNot();
|
|
881490
|
-
}
|
|
881491
|
-
};
|
|
881492
|
-
|
|
881493
881447
|
// ../../../generators/ruby-v2/ast/lib/ast/Comment.js
|
|
881494
881448
|
var MAX_LINE_LENGTH2 = 120;
|
|
881495
881449
|
var COMMENT_PREFIX_LENGTH = 2;
|
|
@@ -882136,19 +882090,20 @@ var Class_ = class extends Module_ {
|
|
|
882136
882090
|
writer2.writeLine("; end");
|
|
882137
882091
|
return;
|
|
882138
882092
|
}
|
|
882139
|
-
if (this.statements.length) {
|
|
882093
|
+
if (this.statements.length || this.methods.length) {
|
|
882140
882094
|
writer2.newLine();
|
|
882141
882095
|
writer2.indent();
|
|
882142
882096
|
this.statements.forEach((statement, index3) => {
|
|
882143
882097
|
statement.write(writer2);
|
|
882144
|
-
writer2.
|
|
882098
|
+
writer2.writeNewLineIfLastLineNot();
|
|
882099
|
+
if (index3 < this.statements.length - 1) {
|
|
882100
|
+
writer2.newLine();
|
|
882101
|
+
}
|
|
882145
882102
|
});
|
|
882146
|
-
|
|
882147
|
-
|
|
882148
|
-
|
|
882149
|
-
|
|
882150
|
-
writer2.indent();
|
|
882151
|
-
this.methods.forEach((method8) => {
|
|
882103
|
+
this.methods.forEach((method8, index3) => {
|
|
882104
|
+
if (index3 > 0 || this.statements.length > 0) {
|
|
882105
|
+
writer2.newLine();
|
|
882106
|
+
}
|
|
882152
882107
|
method8.write(writer2);
|
|
882153
882108
|
});
|
|
882154
882109
|
writer2.dedent();
|
|
@@ -882186,6 +882141,112 @@ var Class_ = class extends Module_ {
|
|
|
882186
882141
|
}
|
|
882187
882142
|
};
|
|
882188
882143
|
|
|
882144
|
+
// ../../../generators/ruby-v2/ast/lib/ast/IfElse.js
|
|
882145
|
+
var IfElse = class extends AstNode6 {
|
|
882146
|
+
ifBranch;
|
|
882147
|
+
elseIfs;
|
|
882148
|
+
elseBody;
|
|
882149
|
+
constructor({ if: ifBranch, elseIf, elseBody }) {
|
|
882150
|
+
super();
|
|
882151
|
+
this.ifBranch = ifBranch;
|
|
882152
|
+
this.elseIfs = elseIf ?? [];
|
|
882153
|
+
this.elseBody = elseBody ? Array.isArray(elseBody) ? elseBody : [elseBody] : void 0;
|
|
882154
|
+
}
|
|
882155
|
+
write(writer2) {
|
|
882156
|
+
const modifier = this.renderAsModifier(writer2);
|
|
882157
|
+
if (modifier != null) {
|
|
882158
|
+
writer2.write(modifier);
|
|
882159
|
+
writer2.writeNewLineIfLastLineNot();
|
|
882160
|
+
return;
|
|
882161
|
+
}
|
|
882162
|
+
writer2.write("if ");
|
|
882163
|
+
this.ifBranch.condition.write(writer2);
|
|
882164
|
+
writer2.writeLine();
|
|
882165
|
+
writer2.indent();
|
|
882166
|
+
for (const stmt of this.ifBranch.thenBody) {
|
|
882167
|
+
stmt.write(writer2);
|
|
882168
|
+
writer2.writeNewLineIfLastLineNot();
|
|
882169
|
+
}
|
|
882170
|
+
writer2.dedent();
|
|
882171
|
+
for (const elseIf of this.elseIfs) {
|
|
882172
|
+
writer2.write("elsif ");
|
|
882173
|
+
elseIf.condition.write(writer2);
|
|
882174
|
+
writer2.writeLine();
|
|
882175
|
+
writer2.indent();
|
|
882176
|
+
for (const stmt of elseIf.thenBody) {
|
|
882177
|
+
stmt.write(writer2);
|
|
882178
|
+
writer2.writeNewLineIfLastLineNot();
|
|
882179
|
+
}
|
|
882180
|
+
writer2.dedent();
|
|
882181
|
+
}
|
|
882182
|
+
if (this.elseBody && this.elseBody.length > 0) {
|
|
882183
|
+
writer2.writeLine("else");
|
|
882184
|
+
writer2.indent();
|
|
882185
|
+
for (const stmt of this.elseBody) {
|
|
882186
|
+
stmt.write(writer2);
|
|
882187
|
+
writer2.writeNewLineIfLastLineNot();
|
|
882188
|
+
}
|
|
882189
|
+
writer2.dedent();
|
|
882190
|
+
}
|
|
882191
|
+
writer2.write("end");
|
|
882192
|
+
writer2.writeNewLineIfLastLineNot();
|
|
882193
|
+
}
|
|
882194
|
+
/**
|
|
882195
|
+
* Returns the modifier-form rendering (`stmt if cond`) when this if is
|
|
882196
|
+
* eligible:
|
|
882197
|
+
* - exactly one statement in the then-body
|
|
882198
|
+
* - no elsif and no else
|
|
882199
|
+
* - the single statement is not an intrinsically multi-line AST node
|
|
882200
|
+
* (Class, Module, Method, Begin, IfElse)
|
|
882201
|
+
* - the rendered statement and condition each fit on a single line
|
|
882202
|
+
*
|
|
882203
|
+
* Returns undefined when the shape isn't eligible, in which case the caller
|
|
882204
|
+
* falls back to explicit if/end form.
|
|
882205
|
+
*
|
|
882206
|
+
* The generator's .rubocop.yml disables Layout/LineLength, so rubocop's
|
|
882207
|
+
* Style/IfUnlessModifier accepts modifier form at any line length. Shape
|
|
882208
|
+
* eligibility is therefore sufficient; we don't gate on a max-line-length
|
|
882209
|
+
* budget here.
|
|
882210
|
+
*/
|
|
882211
|
+
renderAsModifier(writer2) {
|
|
882212
|
+
if (this.ifBranch.thenBody.length !== 1) {
|
|
882213
|
+
return void 0;
|
|
882214
|
+
}
|
|
882215
|
+
if (this.elseIfs.length > 0) {
|
|
882216
|
+
return void 0;
|
|
882217
|
+
}
|
|
882218
|
+
if (this.elseBody != null && this.elseBody.length > 0) {
|
|
882219
|
+
return void 0;
|
|
882220
|
+
}
|
|
882221
|
+
const stmt = this.ifBranch.thenBody[0];
|
|
882222
|
+
if (stmt == null) {
|
|
882223
|
+
return void 0;
|
|
882224
|
+
}
|
|
882225
|
+
if (isKnownMultiLineNode(stmt) || isKnownMultiLineNode(this.ifBranch.condition)) {
|
|
882226
|
+
return void 0;
|
|
882227
|
+
}
|
|
882228
|
+
const stmtRendered = renderNode(stmt, writer2);
|
|
882229
|
+
const conditionRendered = renderNode(this.ifBranch.condition, writer2);
|
|
882230
|
+
if (stmtRendered.length === 0 || conditionRendered.length === 0) {
|
|
882231
|
+
return void 0;
|
|
882232
|
+
}
|
|
882233
|
+
if (stmtRendered.includes("\n") || conditionRendered.includes("\n")) {
|
|
882234
|
+
return void 0;
|
|
882235
|
+
}
|
|
882236
|
+
return `${stmtRendered} if ${conditionRendered}`;
|
|
882237
|
+
}
|
|
882238
|
+
};
|
|
882239
|
+
function isKnownMultiLineNode(node4) {
|
|
882240
|
+
return node4 instanceof Class_ || node4 instanceof Module_ || node4 instanceof Method6 || node4 instanceof Begin || node4 instanceof IfElse;
|
|
882241
|
+
}
|
|
882242
|
+
function renderNode(node4, parentWriter) {
|
|
882243
|
+
const rendered = node4.toString({
|
|
882244
|
+
customConfig: parentWriter.customConfig,
|
|
882245
|
+
formatter: parentWriter.formatter
|
|
882246
|
+
});
|
|
882247
|
+
return rendered.replace(/\n+$/, "");
|
|
882248
|
+
}
|
|
882249
|
+
|
|
882189
882250
|
// ../../../generators/ruby-v2/ast/lib/ast/ClassInstantiation.js
|
|
882190
882251
|
var ClassInstantiation5 = class extends AstNode6 {
|
|
882191
882252
|
classReference;
|
|
@@ -882446,9 +882507,36 @@ var TypeLiteral3 = class _TypeLiteral extends AstNode6 {
|
|
|
882446
882507
|
super();
|
|
882447
882508
|
this.internalType = internalType;
|
|
882448
882509
|
}
|
|
882510
|
+
/**
|
|
882511
|
+
* Returns a stable string representation of this literal suitable for
|
|
882512
|
+
* deduplicating hash keys (see Lint/DuplicateHashKey). Returns undefined
|
|
882513
|
+
* for compound/dynamic shapes where value equality isn't decidable at
|
|
882514
|
+
* emit time.
|
|
882515
|
+
*/
|
|
882516
|
+
getDedupKey() {
|
|
882517
|
+
switch (this.internalType.type) {
|
|
882518
|
+
case "str":
|
|
882519
|
+
return `str:${this.internalType.value}`;
|
|
882520
|
+
case "interpolatedStr":
|
|
882521
|
+
return `istr:${this.internalType.value}`;
|
|
882522
|
+
case "int":
|
|
882523
|
+
return `int:${this.internalType.value}`;
|
|
882524
|
+
case "float":
|
|
882525
|
+
return `float:${this.internalType.value}`;
|
|
882526
|
+
case "bool":
|
|
882527
|
+
return `bool:${this.internalType.value}`;
|
|
882528
|
+
case "nil":
|
|
882529
|
+
return "nil";
|
|
882530
|
+
default:
|
|
882531
|
+
return void 0;
|
|
882532
|
+
}
|
|
882533
|
+
}
|
|
882449
882534
|
static string(value2) {
|
|
882450
882535
|
return new this({ type: "str", value: value2 });
|
|
882451
882536
|
}
|
|
882537
|
+
static interpolatedString(value2) {
|
|
882538
|
+
return new this({ type: "interpolatedStr", value: value2 });
|
|
882539
|
+
}
|
|
882452
882540
|
static integer(value2) {
|
|
882453
882541
|
return new this({ type: "int", value: value2 });
|
|
882454
882542
|
}
|
|
@@ -882485,6 +882573,11 @@ var TypeLiteral3 = class _TypeLiteral extends AstNode6 {
|
|
|
882485
882573
|
write(writer2) {
|
|
882486
882574
|
switch (this.internalType.type) {
|
|
882487
882575
|
case "str": {
|
|
882576
|
+
const value2 = this.internalType.value.replaceAll("\r\n", "\n");
|
|
882577
|
+
writer2.write(`"${value2.replaceAll("\\", "\\\\").replaceAll('"', '\\"').replace(/#(?=[{$@])/g, "\\#")}"`);
|
|
882578
|
+
break;
|
|
882579
|
+
}
|
|
882580
|
+
case "interpolatedStr": {
|
|
882488
882581
|
const value2 = this.internalType.value.replaceAll("\r\n", "\n");
|
|
882489
882582
|
writer2.write(`"${value2.replaceAll("\\", "\\\\").replaceAll('"', '\\"')}"`);
|
|
882490
882583
|
break;
|
|
@@ -882502,7 +882595,21 @@ var TypeLiteral3 = class _TypeLiteral extends AstNode6 {
|
|
|
882502
882595
|
break;
|
|
882503
882596
|
}
|
|
882504
882597
|
case "hash": {
|
|
882505
|
-
const
|
|
882598
|
+
const filteredEntries = this.internalType.entries.filter((entry) => !_TypeLiteral.isNop(entry.key) && !_TypeLiteral.isNop(entry.value));
|
|
882599
|
+
const seenKeys = /* @__PURE__ */ new Map();
|
|
882600
|
+
filteredEntries.forEach((entry, index3) => {
|
|
882601
|
+
const rendered = renderKeyForDedup(entry.key);
|
|
882602
|
+
if (rendered != null) {
|
|
882603
|
+
seenKeys.set(rendered, index3);
|
|
882604
|
+
}
|
|
882605
|
+
});
|
|
882606
|
+
const entries23 = filteredEntries.filter((entry, index3) => {
|
|
882607
|
+
const rendered = renderKeyForDedup(entry.key);
|
|
882608
|
+
if (rendered == null) {
|
|
882609
|
+
return true;
|
|
882610
|
+
}
|
|
882611
|
+
return seenKeys.get(rendered) === index3;
|
|
882612
|
+
});
|
|
882506
882613
|
if (entries23.length === 0) {
|
|
882507
882614
|
writer2.write("{}");
|
|
882508
882615
|
break;
|
|
@@ -882582,6 +882689,12 @@ var TypeLiteral3 = class _TypeLiteral extends AstNode6 {
|
|
|
882582
882689
|
}
|
|
882583
882690
|
}
|
|
882584
882691
|
};
|
|
882692
|
+
function renderKeyForDedup(key2) {
|
|
882693
|
+
if (!(key2 instanceof TypeLiteral3)) {
|
|
882694
|
+
return void 0;
|
|
882695
|
+
}
|
|
882696
|
+
return key2.getDedupKey();
|
|
882697
|
+
}
|
|
882585
882698
|
|
|
882586
882699
|
// ../../../generators/ruby-v2/ast/lib/ast/TypeParameter.js
|
|
882587
882700
|
var Variance;
|
|
@@ -883544,6 +883657,7 @@ var EndpointSnippetGenerator7 = class {
|
|
|
883544
883657
|
invokeMethodArgs.keywordArguments = invokeMethodArgs.keywordArguments ?? [];
|
|
883545
883658
|
invokeMethodArgs.keywordArguments.push(requestOptions);
|
|
883546
883659
|
}
|
|
883660
|
+
invokeMethodArgs.keywordArguments = dedupeKeywordArguments(invokeMethodArgs.keywordArguments);
|
|
883547
883661
|
return ruby_exports.invokeMethod(invokeMethodArgs);
|
|
883548
883662
|
}
|
|
883549
883663
|
/**
|
|
@@ -883577,6 +883691,7 @@ var EndpointSnippetGenerator7 = class {
|
|
|
883577
883691
|
invokeMethodArgs.keywordArguments = invokeMethodArgs.keywordArguments ?? [];
|
|
883578
883692
|
invokeMethodArgs.keywordArguments.push(requestOptions);
|
|
883579
883693
|
}
|
|
883694
|
+
invokeMethodArgs.keywordArguments = dedupeKeywordArguments(invokeMethodArgs.keywordArguments);
|
|
883580
883695
|
return ruby_exports.invokeMethod(invokeMethodArgs);
|
|
883581
883696
|
}
|
|
883582
883697
|
/**
|
|
@@ -883913,6 +884028,21 @@ var EndpointSnippetGenerator7 = class {
|
|
|
883913
884028
|
return this.context.getMethodName(endpoint3.declaration.name);
|
|
883914
884029
|
}
|
|
883915
884030
|
};
|
|
884031
|
+
function dedupeKeywordArguments(kwargs) {
|
|
884032
|
+
if (kwargs == null || kwargs.length <= 1) {
|
|
884033
|
+
return kwargs;
|
|
884034
|
+
}
|
|
884035
|
+
const lastIndexByName = /* @__PURE__ */ new Map();
|
|
884036
|
+
kwargs.forEach((arg, index3) => {
|
|
884037
|
+
lastIndexByName.set(arg.name, index3);
|
|
884038
|
+
});
|
|
884039
|
+
const deduped = kwargs.filter((arg, index3) => lastIndexByName.get(arg.name) === index3);
|
|
884040
|
+
if (deduped.length !== kwargs.length) {
|
|
884041
|
+
const droppedNames = Array.from(new Set(kwargs.map((arg) => arg.name).filter((name2, index3) => lastIndexByName.get(name2) !== index3)));
|
|
884042
|
+
console.warn(`[ruby-v2 dynamic-snippets] duplicate keyword argument name(s) [${droppedNames.join(", ")}] in a generated snippet; keeping last occurrence to match **params runtime behavior. This indicates a latent name collision in the Ruby SDK method signature that should be disambiguated at the generator level.`);
|
|
884043
|
+
}
|
|
884044
|
+
return deduped;
|
|
884045
|
+
}
|
|
883916
884046
|
|
|
883917
884047
|
// ../../../generators/ruby-v2/dynamic-snippets/lib/DynamicSnippetsGenerator.js
|
|
883918
884048
|
var DynamicSnippetsGenerator6 = class extends AbstractDynamicSnippetsGenerator {
|
|
@@ -919472,7 +919602,7 @@ var CliContext = class _CliContext {
|
|
|
919472
919602
|
if (false) {
|
|
919473
919603
|
this.logger.error("CLI_VERSION is not defined");
|
|
919474
919604
|
}
|
|
919475
|
-
return "4.
|
|
919605
|
+
return "4.107.0-5-g8e65b2fdec8";
|
|
919476
919606
|
}
|
|
919477
919607
|
getCliName() {
|
|
919478
919608
|
if (false) {
|
package/package.json
CHANGED