@fern-api/fern-api-dev 5.87.0 → 5.89.0

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.
Files changed (2) hide show
  1. package/cli.cjs +723 -68
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -54019,6 +54019,19 @@ var init_OAuthAccessTokenResponsePropertiesSchema = __esm({
54019
54019
  }
54020
54020
  });
54021
54021
 
54022
+ // ../fern-definition/schema/lib/schemas/api/resources/auth/types/OAuthFlowTypeSchema.js
54023
+ var OAuthFlowTypeSchema;
54024
+ var init_OAuthFlowTypeSchema = __esm({
54025
+ "../fern-definition/schema/lib/schemas/api/resources/auth/types/OAuthFlowTypeSchema.js"() {
54026
+ "use strict";
54027
+ OAuthFlowTypeSchema = {
54028
+ ClientCredentials: "client-credentials",
54029
+ AuthorizationCode: "authorization-code",
54030
+ DeviceCode: "device-code"
54031
+ };
54032
+ }
54033
+ });
54034
+
54022
54035
  // ../fern-definition/schema/lib/schemas/api/resources/auth/types/OAuthGetTokenEndpointSchema.js
54023
54036
  var init_OAuthGetTokenEndpointSchema = __esm({
54024
54037
  "../fern-definition/schema/lib/schemas/api/resources/auth/types/OAuthGetTokenEndpointSchema.js"() {
@@ -54026,6 +54039,13 @@ var init_OAuthGetTokenEndpointSchema = __esm({
54026
54039
  }
54027
54040
  });
54028
54041
 
54042
+ // ../fern-definition/schema/lib/schemas/api/resources/auth/types/OAuthPkceSchema.js
54043
+ var init_OAuthPkceSchema = __esm({
54044
+ "../fern-definition/schema/lib/schemas/api/resources/auth/types/OAuthPkceSchema.js"() {
54045
+ "use strict";
54046
+ }
54047
+ });
54048
+
54029
54049
  // ../fern-definition/schema/lib/schemas/api/resources/auth/types/OAuthRefreshTokenEndpointSchema.js
54030
54050
  var init_OAuthRefreshTokenEndpointSchema = __esm({
54031
54051
  "../fern-definition/schema/lib/schemas/api/resources/auth/types/OAuthRefreshTokenEndpointSchema.js"() {
@@ -54054,6 +54074,20 @@ var init_OAuthSchemeSchema = __esm({
54054
54074
  }
54055
54075
  });
54056
54076
 
54077
+ // ../fern-definition/schema/lib/schemas/api/resources/auth/types/RedirectUriSchema.js
54078
+ var init_RedirectUriSchema = __esm({
54079
+ "../fern-definition/schema/lib/schemas/api/resources/auth/types/RedirectUriSchema.js"() {
54080
+ "use strict";
54081
+ }
54082
+ });
54083
+
54084
+ // ../fern-definition/schema/lib/schemas/api/resources/auth/types/RedirectUriWithBackupPortsSchema.js
54085
+ var init_RedirectUriWithBackupPortsSchema = __esm({
54086
+ "../fern-definition/schema/lib/schemas/api/resources/auth/types/RedirectUriWithBackupPortsSchema.js"() {
54087
+ "use strict";
54088
+ }
54089
+ });
54090
+
54057
54091
  // ../fern-definition/schema/lib/schemas/api/resources/auth/types/TokenBearerAuthSchema.js
54058
54092
  var init_TokenBearerAuthSchema = __esm({
54059
54093
  "../fern-definition/schema/lib/schemas/api/resources/auth/types/TokenBearerAuthSchema.js"() {
@@ -54098,11 +54132,15 @@ var init_types2 = __esm({
54098
54132
  init_InferredGetTokenEndpointSchemaObject();
54099
54133
  init_OAuthAccessTokenRequestPropertiesSchema();
54100
54134
  init_OAuthAccessTokenResponsePropertiesSchema();
54135
+ init_OAuthFlowTypeSchema();
54101
54136
  init_OAuthGetTokenEndpointSchema();
54137
+ init_OAuthPkceSchema();
54102
54138
  init_OAuthRefreshTokenEndpointSchema();
54103
54139
  init_OAuthRefreshTokenRequestPropertiesSchema();
54104
54140
  init_OAuthRefreshTokenResponsePropertiesSchema();
54105
54141
  init_OAuthSchemeSchema();
54142
+ init_RedirectUriSchema();
54143
+ init_RedirectUriWithBackupPortsSchema();
54106
54144
  init_TokenBearerAuthSchema();
54107
54145
  init_WithAuthSchema();
54108
54146
  init_WithEnvironmentVariable();
@@ -54111,6 +54149,9 @@ var init_types2 = __esm({
54111
54149
 
54112
54150
  // ../fern-definition/schema/lib/schemas/api/resources/auth/index.js
54113
54151
  var auth_exports = {};
54152
+ __export(auth_exports, {
54153
+ OAuthFlowTypeSchema: () => OAuthFlowTypeSchema
54154
+ });
54114
54155
  var init_auth = __esm({
54115
54156
  "../fern-definition/schema/lib/schemas/api/resources/auth/index.js"() {
54116
54157
  "use strict";
@@ -58194,6 +58235,16 @@ var init_AuthScope2 = __esm({
58194
58235
  }
58195
58236
  });
58196
58237
 
58238
+ // ../fern-definition/schema/lib/schemas/serialization/resources/auth/types/OAuthFlowTypeSchema.js
58239
+ var OAuthFlowTypeSchema2;
58240
+ var init_OAuthFlowTypeSchema2 = __esm({
58241
+ "../fern-definition/schema/lib/schemas/serialization/resources/auth/types/OAuthFlowTypeSchema.js"() {
58242
+ "use strict";
58243
+ init_core();
58244
+ OAuthFlowTypeSchema2 = schemas_exports.enum_(["client-credentials", "authorization-code", "device-code"]);
58245
+ }
58246
+ });
58247
+
58197
58248
  // ../fern-definition/schema/lib/schemas/serialization/resources/auth/types/OAuthAccessTokenRequestPropertiesSchema.js
58198
58249
  var OAuthAccessTokenRequestPropertiesSchema;
58199
58250
  var init_OAuthAccessTokenRequestPropertiesSchema2 = __esm({
@@ -58238,6 +58289,18 @@ var init_OAuthGetTokenEndpointSchema2 = __esm({
58238
58289
  }
58239
58290
  });
58240
58291
 
58292
+ // ../fern-definition/schema/lib/schemas/serialization/resources/auth/types/OAuthPkceSchema.js
58293
+ var OAuthPkceSchema;
58294
+ var init_OAuthPkceSchema2 = __esm({
58295
+ "../fern-definition/schema/lib/schemas/serialization/resources/auth/types/OAuthPkceSchema.js"() {
58296
+ "use strict";
58297
+ init_core();
58298
+ OAuthPkceSchema = schemas_exports.object({
58299
+ method: schemas_exports.string().optional()
58300
+ });
58301
+ }
58302
+ });
58303
+
58241
58304
  // ../fern-definition/schema/lib/schemas/serialization/resources/auth/types/OAuthRefreshTokenRequestPropertiesSchema.js
58242
58305
  var OAuthRefreshTokenRequestPropertiesSchema;
58243
58306
  var init_OAuthRefreshTokenRequestPropertiesSchema2 = __esm({
@@ -58280,6 +58343,30 @@ var init_OAuthRefreshTokenEndpointSchema2 = __esm({
58280
58343
  }
58281
58344
  });
58282
58345
 
58346
+ // ../fern-definition/schema/lib/schemas/serialization/resources/auth/types/RedirectUriWithBackupPortsSchema.js
58347
+ var RedirectUriWithBackupPortsSchema;
58348
+ var init_RedirectUriWithBackupPortsSchema2 = __esm({
58349
+ "../fern-definition/schema/lib/schemas/serialization/resources/auth/types/RedirectUriWithBackupPortsSchema.js"() {
58350
+ "use strict";
58351
+ init_core();
58352
+ RedirectUriWithBackupPortsSchema = schemas_exports.object({
58353
+ url: schemas_exports.string(),
58354
+ ports: schemas_exports.list(schemas_exports.number()).optional()
58355
+ });
58356
+ }
58357
+ });
58358
+
58359
+ // ../fern-definition/schema/lib/schemas/serialization/resources/auth/types/RedirectUriSchema.js
58360
+ var RedirectUriSchema;
58361
+ var init_RedirectUriSchema2 = __esm({
58362
+ "../fern-definition/schema/lib/schemas/serialization/resources/auth/types/RedirectUriSchema.js"() {
58363
+ "use strict";
58364
+ init_core();
58365
+ init_RedirectUriWithBackupPortsSchema2();
58366
+ RedirectUriSchema = schemas_exports.undiscriminatedUnion([schemas_exports.string(), RedirectUriWithBackupPortsSchema]);
58367
+ }
58368
+ });
58369
+
58283
58370
  // ../fern-definition/schema/lib/schemas/serialization/resources/auth/types/OAuthSchemeSchema.js
58284
58371
  var OAuthSchemeSchema;
58285
58372
  var init_OAuthSchemeSchema2 = __esm({
@@ -58288,18 +58375,32 @@ var init_OAuthSchemeSchema2 = __esm({
58288
58375
  init_core();
58289
58376
  init_WithDocsSchema2();
58290
58377
  init_AuthScope2();
58378
+ init_OAuthFlowTypeSchema2();
58291
58379
  init_OAuthGetTokenEndpointSchema2();
58380
+ init_OAuthPkceSchema2();
58292
58381
  init_OAuthRefreshTokenEndpointSchema2();
58382
+ init_RedirectUriSchema2();
58293
58383
  OAuthSchemeSchema = schemas_exports.object({
58294
58384
  scheme: schemas_exports.stringLiteral("oauth"),
58295
- type: schemas_exports.stringLiteral("client-credentials"),
58385
+ type: OAuthFlowTypeSchema2,
58296
58386
  scopes: schemas_exports.list(AuthScope).optional(),
58297
- "client-id-env": schemas_exports.string().optional(),
58298
- "client-secret-env": schemas_exports.string().optional(),
58299
58387
  "token-prefix": schemas_exports.string().optional(),
58300
58388
  "token-header": schemas_exports.string().optional(),
58301
- "get-token": OAuthGetTokenEndpointSchema,
58302
- "refresh-token": OAuthRefreshTokenEndpointSchema.optional()
58389
+ "client-id-env": schemas_exports.string().optional(),
58390
+ "client-secret-env": schemas_exports.string().optional(),
58391
+ "get-token": OAuthGetTokenEndpointSchema.optional(),
58392
+ "refresh-token": OAuthRefreshTokenEndpointSchema.optional(),
58393
+ "client-id": schemas_exports.string().optional(),
58394
+ "authorization-url": schemas_exports.string().optional(),
58395
+ "device-authorization-url": schemas_exports.string().optional(),
58396
+ "token-url": schemas_exports.string().optional(),
58397
+ "refresh-url": schemas_exports.string().optional(),
58398
+ "redirect-uri": RedirectUriSchema.optional(),
58399
+ pkce: OAuthPkceSchema.optional(),
58400
+ "authorization-parameters": schemas_exports.record(schemas_exports.string(), schemas_exports.string()).optional(),
58401
+ "device-authorization-parameters": schemas_exports.record(schemas_exports.string(), schemas_exports.string()).optional(),
58402
+ "token-parameters": schemas_exports.record(schemas_exports.string(), schemas_exports.string()).optional(),
58403
+ "refresh-parameters": schemas_exports.record(schemas_exports.string(), schemas_exports.string()).optional()
58303
58404
  }).extend(WithDocsSchema);
58304
58405
  }
58305
58406
  });
@@ -58372,11 +58473,15 @@ var init_types22 = __esm({
58372
58473
  init_InferredGetTokenEndpointSchemaObject2();
58373
58474
  init_OAuthAccessTokenRequestPropertiesSchema2();
58374
58475
  init_OAuthAccessTokenResponsePropertiesSchema2();
58476
+ init_OAuthFlowTypeSchema2();
58375
58477
  init_OAuthGetTokenEndpointSchema2();
58478
+ init_OAuthPkceSchema2();
58376
58479
  init_OAuthRefreshTokenEndpointSchema2();
58377
58480
  init_OAuthRefreshTokenRequestPropertiesSchema2();
58378
58481
  init_OAuthRefreshTokenResponsePropertiesSchema2();
58379
58482
  init_OAuthSchemeSchema2();
58483
+ init_RedirectUriSchema2();
58484
+ init_RedirectUriWithBackupPortsSchema2();
58380
58485
  init_TokenBearerAuthSchema2();
58381
58486
  init_WithAuthSchema2();
58382
58487
  init_WithEnvironmentVariable2();
@@ -58405,11 +58510,15 @@ __export(auth_exports2, {
58405
58510
  InferredGetTokenEndpointSchemaObject: () => InferredGetTokenEndpointSchemaObject,
58406
58511
  OAuthAccessTokenRequestPropertiesSchema: () => OAuthAccessTokenRequestPropertiesSchema,
58407
58512
  OAuthAccessTokenResponsePropertiesSchema: () => OAuthAccessTokenResponsePropertiesSchema,
58513
+ OAuthFlowTypeSchema: () => OAuthFlowTypeSchema2,
58408
58514
  OAuthGetTokenEndpointSchema: () => OAuthGetTokenEndpointSchema,
58515
+ OAuthPkceSchema: () => OAuthPkceSchema,
58409
58516
  OAuthRefreshTokenEndpointSchema: () => OAuthRefreshTokenEndpointSchema,
58410
58517
  OAuthRefreshTokenRequestPropertiesSchema: () => OAuthRefreshTokenRequestPropertiesSchema,
58411
58518
  OAuthRefreshTokenResponsePropertiesSchema: () => OAuthRefreshTokenResponsePropertiesSchema,
58412
58519
  OAuthSchemeSchema: () => OAuthSchemeSchema,
58520
+ RedirectUriSchema: () => RedirectUriSchema,
58521
+ RedirectUriWithBackupPortsSchema: () => RedirectUriWithBackupPortsSchema,
58413
58522
  TokenBearerAuthSchema: () => TokenBearerAuthSchema,
58414
58523
  WithAuthSchema: () => WithAuthSchema,
58415
58524
  WithEnvironmentVariable: () => WithEnvironmentVariable
@@ -61580,7 +61689,9 @@ __export(serialization_exports, {
61580
61689
  NumberValidationSchema: () => NumberValidationSchema,
61581
61690
  OAuthAccessTokenRequestPropertiesSchema: () => OAuthAccessTokenRequestPropertiesSchema,
61582
61691
  OAuthAccessTokenResponsePropertiesSchema: () => OAuthAccessTokenResponsePropertiesSchema,
61692
+ OAuthFlowTypeSchema: () => OAuthFlowTypeSchema2,
61583
61693
  OAuthGetTokenEndpointSchema: () => OAuthGetTokenEndpointSchema,
61694
+ OAuthPkceSchema: () => OAuthPkceSchema,
61584
61695
  OAuthRefreshTokenEndpointSchema: () => OAuthRefreshTokenEndpointSchema,
61585
61696
  OAuthRefreshTokenRequestPropertiesSchema: () => OAuthRefreshTokenRequestPropertiesSchema,
61586
61697
  OAuthRefreshTokenResponsePropertiesSchema: () => OAuthRefreshTokenResponsePropertiesSchema,
@@ -61605,6 +61716,8 @@ __export(serialization_exports, {
61605
61716
  ProtobufSourceSchema: () => ProtobufSourceSchema,
61606
61717
  ProtobufTypeSchema: () => ProtobufTypeSchema,
61607
61718
  QueryParameterTypeReferenceDetailed: () => QueryParameterTypeReferenceDetailed,
61719
+ RedirectUriSchema: () => RedirectUriSchema,
61720
+ RedirectUriWithBackupPortsSchema: () => RedirectUriWithBackupPortsSchema,
61608
61721
  ResponseError: () => ResponseError,
61609
61722
  ResponseErrorWithDocsSchema: () => ResponseErrorWithDocsSchema,
61610
61723
  ResponseErrorsSchema: () => ResponseErrorsSchema,
@@ -61783,6 +61896,7 @@ __export(schemas_exports2, {
61783
61896
  FernDefinitionTimeoutError: () => FernDefinitionTimeoutError,
61784
61897
  FormDataBodyEncodingStyle: () => FormDataBodyEncodingStyle,
61785
61898
  HttpMethodSchema: () => HttpMethodSchema,
61899
+ OAuthFlowTypeSchema: () => OAuthFlowTypeSchema,
61786
61900
  ObjectPropertyAccess: () => ObjectPropertyAccess,
61787
61901
  StreamFormat: () => StreamFormat,
61788
61902
  SupportedSdkLanguageSchema: () => SupportedSdkLanguageSchema,
@@ -125582,6 +125696,19 @@ var init_OAuthAccessTokenResponsePropertiesSchema3 = __esm({
125582
125696
  }
125583
125697
  });
125584
125698
 
125699
+ // ../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/OAuthFlowTypeSchema.js
125700
+ var OAuthFlowTypeSchema3;
125701
+ var init_OAuthFlowTypeSchema3 = __esm({
125702
+ "../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/OAuthFlowTypeSchema.js"() {
125703
+ "use strict";
125704
+ OAuthFlowTypeSchema3 = {
125705
+ ClientCredentials: "client-credentials",
125706
+ AuthorizationCode: "authorization-code",
125707
+ DeviceCode: "device-code"
125708
+ };
125709
+ }
125710
+ });
125711
+
125585
125712
  // ../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/OAuthGetTokenEndpointSchema.js
125586
125713
  var init_OAuthGetTokenEndpointSchema3 = __esm({
125587
125714
  "../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/OAuthGetTokenEndpointSchema.js"() {
@@ -125589,6 +125716,13 @@ var init_OAuthGetTokenEndpointSchema3 = __esm({
125589
125716
  }
125590
125717
  });
125591
125718
 
125719
+ // ../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/OAuthPkceSchema.js
125720
+ var init_OAuthPkceSchema3 = __esm({
125721
+ "../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/OAuthPkceSchema.js"() {
125722
+ "use strict";
125723
+ }
125724
+ });
125725
+
125592
125726
  // ../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/OAuthRefreshTokenEndpointSchema.js
125593
125727
  var init_OAuthRefreshTokenEndpointSchema3 = __esm({
125594
125728
  "../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/OAuthRefreshTokenEndpointSchema.js"() {
@@ -125617,6 +125751,20 @@ var init_OAuthSchemeSchema3 = __esm({
125617
125751
  }
125618
125752
  });
125619
125753
 
125754
+ // ../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/RedirectUriSchema.js
125755
+ var init_RedirectUriSchema3 = __esm({
125756
+ "../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/RedirectUriSchema.js"() {
125757
+ "use strict";
125758
+ }
125759
+ });
125760
+
125761
+ // ../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/RedirectUriWithBackupPortsSchema.js
125762
+ var init_RedirectUriWithBackupPortsSchema3 = __esm({
125763
+ "../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/RedirectUriWithBackupPortsSchema.js"() {
125764
+ "use strict";
125765
+ }
125766
+ });
125767
+
125620
125768
  // ../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/TokenBearerAuthSchema.js
125621
125769
  var init_TokenBearerAuthSchema3 = __esm({
125622
125770
  "../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/types/TokenBearerAuthSchema.js"() {
@@ -125653,11 +125801,15 @@ var init_types104 = __esm({
125653
125801
  init_InferredGetTokenEndpointSchemaObject3();
125654
125802
  init_OAuthAccessTokenRequestPropertiesSchema3();
125655
125803
  init_OAuthAccessTokenResponsePropertiesSchema3();
125804
+ init_OAuthFlowTypeSchema3();
125656
125805
  init_OAuthGetTokenEndpointSchema3();
125806
+ init_OAuthPkceSchema3();
125657
125807
  init_OAuthRefreshTokenEndpointSchema3();
125658
125808
  init_OAuthRefreshTokenRequestPropertiesSchema3();
125659
125809
  init_OAuthRefreshTokenResponsePropertiesSchema3();
125660
125810
  init_OAuthSchemeSchema3();
125811
+ init_RedirectUriSchema3();
125812
+ init_RedirectUriWithBackupPortsSchema3();
125661
125813
  init_TokenBearerAuthSchema3();
125662
125814
  init_WithEnvironmentVariable3();
125663
125815
  }
@@ -125665,6 +125817,9 @@ var init_types104 = __esm({
125665
125817
 
125666
125818
  // ../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/index.js
125667
125819
  var auth_exports7 = {};
125820
+ __export(auth_exports7, {
125821
+ OAuthFlowTypeSchema: () => OAuthFlowTypeSchema3
125822
+ });
125668
125823
  var init_auth8 = __esm({
125669
125824
  "../configuration/lib/generators-yml/schemas/api/resources/fernDefinition/resources/auth/index.js"() {
125670
125825
  "use strict";
@@ -126039,6 +126194,7 @@ var init_resources11 = __esm({
126039
126194
  var fernDefinition_exports = {};
126040
126195
  __export(fernDefinition_exports, {
126041
126196
  AvailabilityStatusSchema: () => AvailabilityStatusSchema3,
126197
+ OAuthFlowTypeSchema: () => OAuthFlowTypeSchema3,
126042
126198
  auth: () => auth_exports7,
126043
126199
  availability: () => availability_exports3,
126044
126200
  commons: () => commons_exports7,
@@ -129310,6 +129466,16 @@ var init_AuthScope6 = __esm({
129310
129466
  }
129311
129467
  });
129312
129468
 
129469
+ // ../configuration/lib/generators-yml/schemas/serialization/resources/fernDefinition/resources/auth/types/OAuthFlowTypeSchema.js
129470
+ var OAuthFlowTypeSchema4;
129471
+ var init_OAuthFlowTypeSchema4 = __esm({
129472
+ "../configuration/lib/generators-yml/schemas/serialization/resources/fernDefinition/resources/auth/types/OAuthFlowTypeSchema.js"() {
129473
+ "use strict";
129474
+ init_core6();
129475
+ OAuthFlowTypeSchema4 = schemas_exports8.enum_(["client-credentials", "authorization-code", "device-code"]);
129476
+ }
129477
+ });
129478
+
129313
129479
  // ../configuration/lib/generators-yml/schemas/serialization/resources/fernDefinition/resources/auth/types/OAuthAccessTokenRequestPropertiesSchema.js
129314
129480
  var OAuthAccessTokenRequestPropertiesSchema2;
129315
129481
  var init_OAuthAccessTokenRequestPropertiesSchema4 = __esm({
@@ -129354,6 +129520,18 @@ var init_OAuthGetTokenEndpointSchema4 = __esm({
129354
129520
  }
129355
129521
  });
129356
129522
 
129523
+ // ../configuration/lib/generators-yml/schemas/serialization/resources/fernDefinition/resources/auth/types/OAuthPkceSchema.js
129524
+ var OAuthPkceSchema2;
129525
+ var init_OAuthPkceSchema4 = __esm({
129526
+ "../configuration/lib/generators-yml/schemas/serialization/resources/fernDefinition/resources/auth/types/OAuthPkceSchema.js"() {
129527
+ "use strict";
129528
+ init_core6();
129529
+ OAuthPkceSchema2 = schemas_exports8.object({
129530
+ method: schemas_exports8.string().optional()
129531
+ });
129532
+ }
129533
+ });
129534
+
129357
129535
  // ../configuration/lib/generators-yml/schemas/serialization/resources/fernDefinition/resources/auth/types/OAuthRefreshTokenRequestPropertiesSchema.js
129358
129536
  var OAuthRefreshTokenRequestPropertiesSchema2;
129359
129537
  var init_OAuthRefreshTokenRequestPropertiesSchema4 = __esm({
@@ -129396,6 +129574,30 @@ var init_OAuthRefreshTokenEndpointSchema4 = __esm({
129396
129574
  }
129397
129575
  });
129398
129576
 
129577
+ // ../configuration/lib/generators-yml/schemas/serialization/resources/fernDefinition/resources/auth/types/RedirectUriWithBackupPortsSchema.js
129578
+ var RedirectUriWithBackupPortsSchema2;
129579
+ var init_RedirectUriWithBackupPortsSchema4 = __esm({
129580
+ "../configuration/lib/generators-yml/schemas/serialization/resources/fernDefinition/resources/auth/types/RedirectUriWithBackupPortsSchema.js"() {
129581
+ "use strict";
129582
+ init_core6();
129583
+ RedirectUriWithBackupPortsSchema2 = schemas_exports8.object({
129584
+ url: schemas_exports8.string(),
129585
+ ports: schemas_exports8.list(schemas_exports8.number()).optional()
129586
+ });
129587
+ }
129588
+ });
129589
+
129590
+ // ../configuration/lib/generators-yml/schemas/serialization/resources/fernDefinition/resources/auth/types/RedirectUriSchema.js
129591
+ var RedirectUriSchema2;
129592
+ var init_RedirectUriSchema4 = __esm({
129593
+ "../configuration/lib/generators-yml/schemas/serialization/resources/fernDefinition/resources/auth/types/RedirectUriSchema.js"() {
129594
+ "use strict";
129595
+ init_core6();
129596
+ init_RedirectUriWithBackupPortsSchema4();
129597
+ RedirectUriSchema2 = schemas_exports8.undiscriminatedUnion([schemas_exports8.string(), RedirectUriWithBackupPortsSchema2]);
129598
+ }
129599
+ });
129600
+
129399
129601
  // ../configuration/lib/generators-yml/schemas/serialization/resources/fernDefinition/resources/auth/types/OAuthSchemeSchema.js
129400
129602
  var OAuthSchemeSchema2;
129401
129603
  var init_OAuthSchemeSchema4 = __esm({
@@ -129404,18 +129606,32 @@ var init_OAuthSchemeSchema4 = __esm({
129404
129606
  init_core6();
129405
129607
  init_WithDocsSchema4();
129406
129608
  init_AuthScope6();
129609
+ init_OAuthFlowTypeSchema4();
129407
129610
  init_OAuthGetTokenEndpointSchema4();
129611
+ init_OAuthPkceSchema4();
129408
129612
  init_OAuthRefreshTokenEndpointSchema4();
129613
+ init_RedirectUriSchema4();
129409
129614
  OAuthSchemeSchema2 = schemas_exports8.object({
129410
129615
  scheme: schemas_exports8.stringLiteral("oauth"),
129411
- type: schemas_exports8.stringLiteral("client-credentials"),
129616
+ type: OAuthFlowTypeSchema4,
129412
129617
  scopes: schemas_exports8.list(AuthScope3).optional(),
129413
- "client-id-env": schemas_exports8.string().optional(),
129414
- "client-secret-env": schemas_exports8.string().optional(),
129415
129618
  "token-prefix": schemas_exports8.string().optional(),
129416
129619
  "token-header": schemas_exports8.string().optional(),
129417
- "get-token": OAuthGetTokenEndpointSchema2,
129418
- "refresh-token": OAuthRefreshTokenEndpointSchema2.optional()
129620
+ "client-id-env": schemas_exports8.string().optional(),
129621
+ "client-secret-env": schemas_exports8.string().optional(),
129622
+ "get-token": OAuthGetTokenEndpointSchema2.optional(),
129623
+ "refresh-token": OAuthRefreshTokenEndpointSchema2.optional(),
129624
+ "client-id": schemas_exports8.string().optional(),
129625
+ "authorization-url": schemas_exports8.string().optional(),
129626
+ "device-authorization-url": schemas_exports8.string().optional(),
129627
+ "token-url": schemas_exports8.string().optional(),
129628
+ "refresh-url": schemas_exports8.string().optional(),
129629
+ "redirect-uri": RedirectUriSchema2.optional(),
129630
+ pkce: OAuthPkceSchema2.optional(),
129631
+ "authorization-parameters": schemas_exports8.record(schemas_exports8.string(), schemas_exports8.string()).optional(),
129632
+ "device-authorization-parameters": schemas_exports8.record(schemas_exports8.string(), schemas_exports8.string()).optional(),
129633
+ "token-parameters": schemas_exports8.record(schemas_exports8.string(), schemas_exports8.string()).optional(),
129634
+ "refresh-parameters": schemas_exports8.record(schemas_exports8.string(), schemas_exports8.string()).optional()
129419
129635
  }).extend(WithDocsSchema2);
129420
129636
  }
129421
129637
  });
@@ -129461,11 +129677,15 @@ var init_types121 = __esm({
129461
129677
  init_InferredGetTokenEndpointSchemaObject4();
129462
129678
  init_OAuthAccessTokenRequestPropertiesSchema4();
129463
129679
  init_OAuthAccessTokenResponsePropertiesSchema4();
129680
+ init_OAuthFlowTypeSchema4();
129464
129681
  init_OAuthGetTokenEndpointSchema4();
129682
+ init_OAuthPkceSchema4();
129465
129683
  init_OAuthRefreshTokenEndpointSchema4();
129466
129684
  init_OAuthRefreshTokenRequestPropertiesSchema4();
129467
129685
  init_OAuthRefreshTokenResponsePropertiesSchema4();
129468
129686
  init_OAuthSchemeSchema4();
129687
+ init_RedirectUriSchema4();
129688
+ init_RedirectUriWithBackupPortsSchema4();
129469
129689
  init_TokenBearerAuthSchema4();
129470
129690
  init_WithEnvironmentVariable4();
129471
129691
  }
@@ -129492,11 +129712,15 @@ __export(auth_exports8, {
129492
129712
  InferredGetTokenEndpointSchemaObject: () => InferredGetTokenEndpointSchemaObject2,
129493
129713
  OAuthAccessTokenRequestPropertiesSchema: () => OAuthAccessTokenRequestPropertiesSchema2,
129494
129714
  OAuthAccessTokenResponsePropertiesSchema: () => OAuthAccessTokenResponsePropertiesSchema2,
129715
+ OAuthFlowTypeSchema: () => OAuthFlowTypeSchema4,
129495
129716
  OAuthGetTokenEndpointSchema: () => OAuthGetTokenEndpointSchema2,
129717
+ OAuthPkceSchema: () => OAuthPkceSchema2,
129496
129718
  OAuthRefreshTokenEndpointSchema: () => OAuthRefreshTokenEndpointSchema2,
129497
129719
  OAuthRefreshTokenRequestPropertiesSchema: () => OAuthRefreshTokenRequestPropertiesSchema2,
129498
129720
  OAuthRefreshTokenResponsePropertiesSchema: () => OAuthRefreshTokenResponsePropertiesSchema2,
129499
129721
  OAuthSchemeSchema: () => OAuthSchemeSchema2,
129722
+ RedirectUriSchema: () => RedirectUriSchema2,
129723
+ RedirectUriWithBackupPortsSchema: () => RedirectUriWithBackupPortsSchema2,
129500
129724
  TokenBearerAuthSchema: () => TokenBearerAuthSchema2,
129501
129725
  WithEnvironmentVariable: () => WithEnvironmentVariable2
129502
129726
  });
@@ -130085,12 +130309,16 @@ __export(fernDefinition_exports2, {
130085
130309
  NumberValidationSchema: () => NumberValidationSchema2,
130086
130310
  OAuthAccessTokenRequestPropertiesSchema: () => OAuthAccessTokenRequestPropertiesSchema2,
130087
130311
  OAuthAccessTokenResponsePropertiesSchema: () => OAuthAccessTokenResponsePropertiesSchema2,
130312
+ OAuthFlowTypeSchema: () => OAuthFlowTypeSchema4,
130088
130313
  OAuthGetTokenEndpointSchema: () => OAuthGetTokenEndpointSchema2,
130314
+ OAuthPkceSchema: () => OAuthPkceSchema2,
130089
130315
  OAuthRefreshTokenEndpointSchema: () => OAuthRefreshTokenEndpointSchema2,
130090
130316
  OAuthRefreshTokenRequestPropertiesSchema: () => OAuthRefreshTokenRequestPropertiesSchema2,
130091
130317
  OAuthRefreshTokenResponsePropertiesSchema: () => OAuthRefreshTokenResponsePropertiesSchema2,
130092
130318
  OAuthSchemeSchema: () => OAuthSchemeSchema2,
130093
130319
  ProtobufTypeSchema: () => ProtobufTypeSchema2,
130320
+ RedirectUriSchema: () => RedirectUriSchema2,
130321
+ RedirectUriWithBackupPortsSchema: () => RedirectUriWithBackupPortsSchema2,
130094
130322
  ServerVariableSchema: () => ServerVariableSchema2,
130095
130323
  SingleBaseUrlEnvironmentSchema: () => SingleBaseUrlEnvironmentSchema2,
130096
130324
  StringValidationSchema: () => StringValidationSchema2,
@@ -274952,13 +275180,17 @@ var init_convertOAuthClientCredentials = __esm({
274952
275180
 
274953
275181
  // ../generation/ir-generator/lib/converters/convertOAuthUtils.js
274954
275182
  function get0AuthTokenEndpoint(oauthSchema) {
275183
+ const getToken3 = oauthSchema["get-token"];
275184
+ if (getToken3 == null) {
275185
+ throw new Error("OAuth client-credentials flow is missing the required `get-token` endpoint");
275186
+ }
274955
275187
  return {
274956
- endpoint: oauthSchema["get-token"].endpoint,
275188
+ endpoint: getToken3.endpoint,
274957
275189
  requestProperties: getTokenEndpointRequestProperties({
274958
- requestProperties: oauthSchema["get-token"]?.["request-properties"]
275190
+ requestProperties: getToken3["request-properties"]
274959
275191
  }),
274960
275192
  responseProperties: getTokenEndpointResponseProperties({
274961
- responseProperties: oauthSchema["get-token"]?.["response-properties"]
275193
+ responseProperties: getToken3["response-properties"]
274962
275194
  })
274963
275195
  };
274964
275196
  }
@@ -275231,6 +275463,43 @@ function generateOAuth({ key: key2, file: file4, docs: docs2, rawScheme, propert
275231
275463
  refreshTokenEndpoint: getRefreshTokenEndpoint(rawScheme)
275232
275464
  }))
275233
275465
  });
275466
+ case "authorization-code":
275467
+ return AuthScheme.oauth({
275468
+ key: key2,
275469
+ docs: docs2,
275470
+ configuration: OAuthConfiguration.authorizationCode({
275471
+ clientId: getPublicClientId(rawScheme),
275472
+ authorizationUrl: requireOAuthField(rawScheme, "authorization-url"),
275473
+ tokenUrl: requireOAuthField(rawScheme, "token-url"),
275474
+ refreshUrl: rawScheme["refresh-url"],
275475
+ redirectUri: getRedirectUri(rawScheme["redirect-uri"]),
275476
+ redirectUriBackupPorts: getRedirectUriBackupPorts(rawScheme["redirect-uri"]),
275477
+ scopes: rawScheme.scopes,
275478
+ pkce: { method: OAuthPkceMethod.S256 },
275479
+ authorizationParameters: rawScheme["authorization-parameters"],
275480
+ tokenParameters: rawScheme["token-parameters"],
275481
+ refreshParameters: rawScheme["refresh-parameters"],
275482
+ tokenHeader: rawScheme["token-header"],
275483
+ tokenPrefix: rawScheme["token-prefix"]
275484
+ })
275485
+ });
275486
+ case "device-code":
275487
+ return AuthScheme.oauth({
275488
+ key: key2,
275489
+ docs: docs2,
275490
+ configuration: OAuthConfiguration.deviceCode({
275491
+ clientId: getPublicClientId(rawScheme),
275492
+ deviceAuthorizationUrl: requireOAuthField(rawScheme, "device-authorization-url"),
275493
+ tokenUrl: requireOAuthField(rawScheme, "token-url"),
275494
+ refreshUrl: rawScheme["refresh-url"],
275495
+ scopes: rawScheme.scopes,
275496
+ deviceAuthorizationParameters: rawScheme["device-authorization-parameters"],
275497
+ tokenParameters: rawScheme["token-parameters"],
275498
+ refreshParameters: rawScheme["refresh-parameters"],
275499
+ tokenHeader: rawScheme["token-header"],
275500
+ tokenPrefix: rawScheme["token-prefix"]
275501
+ })
275502
+ });
275234
275503
  default:
275235
275504
  throw new CliError({
275236
275505
  message: `Unknown OAuth type: '${rawScheme?.type}'`,
@@ -275238,6 +275507,35 @@ function generateOAuth({ key: key2, file: file4, docs: docs2, rawScheme, propert
275238
275507
  });
275239
275508
  }
275240
275509
  }
275510
+ function getPublicClientId(rawScheme) {
275511
+ const clientIdEnvVar = rawScheme["client-id-env"];
275512
+ if (rawScheme["client-id"] == null && clientIdEnvVar != null) {
275513
+ return OAuthPublicClientId.environmentVariable(clientIdEnvVar);
275514
+ }
275515
+ return OAuthPublicClientId.literal(rawScheme["client-id"] ?? "");
275516
+ }
275517
+ function getRedirectUri(redirectUri) {
275518
+ if (redirectUri == null) {
275519
+ return void 0;
275520
+ }
275521
+ return typeof redirectUri === "string" ? redirectUri : redirectUri.url;
275522
+ }
275523
+ function getRedirectUriBackupPorts(redirectUri) {
275524
+ if (redirectUri == null || typeof redirectUri === "string") {
275525
+ return void 0;
275526
+ }
275527
+ return redirectUri.ports;
275528
+ }
275529
+ function requireOAuthField(rawScheme, field5) {
275530
+ const value2 = rawScheme[field5];
275531
+ if (typeof value2 !== "string") {
275532
+ throw new CliError({
275533
+ message: `OAuth ${rawScheme.type} flow is missing required field '${field5}'`,
275534
+ code: CliError.Code.ValidationError
275535
+ });
275536
+ }
275537
+ return value2;
275538
+ }
275241
275539
  function generateInferredAuth({ key: key2, file: file4, docs: docs2, rawScheme, propertyResolver, endpointResolver }) {
275242
275540
  return AuthScheme.inferred({
275243
275541
  key: key2,
@@ -321601,6 +321899,14 @@ var init_api_yml_schema = __esm({
321601
321899
  }
321602
321900
  ]
321603
321901
  },
321902
+ "auth.OAuthFlowTypeSchema": {
321903
+ type: "string",
321904
+ enum: [
321905
+ "client-credentials",
321906
+ "authorization-code",
321907
+ "device-code"
321908
+ ]
321909
+ },
321604
321910
  "auth.AuthScope": {
321605
321911
  type: "string"
321606
321912
  },
@@ -321800,6 +322106,62 @@ var init_api_yml_schema = __esm({
321800
322106
  ],
321801
322107
  additionalProperties: false
321802
322108
  },
322109
+ "auth.RedirectUriWithBackupPortsSchema": {
322110
+ type: "object",
322111
+ properties: {
322112
+ url: {
322113
+ type: "string",
322114
+ description: "The primary loopback callback URI, e.g. `http://127.0.0.1:8484/callback`."
322115
+ },
322116
+ ports: {
322117
+ oneOf: [
322118
+ {
322119
+ type: "array",
322120
+ items: {
322121
+ type: "integer"
322122
+ }
322123
+ },
322124
+ {
322125
+ type: "null"
322126
+ }
322127
+ ],
322128
+ description: "Backup loopback ports, tried in order when the port in `url` is busy. Each reuses the host and path of `url` (only the port differs) and must be pre-registered with the authorization server."
322129
+ }
322130
+ },
322131
+ required: [
322132
+ "url"
322133
+ ],
322134
+ additionalProperties: false,
322135
+ description: "A loopback callback URI with additional backup ports for the authorization-code flow."
322136
+ },
322137
+ "auth.RedirectUriSchema": {
322138
+ anyOf: [
322139
+ {
322140
+ type: "string"
322141
+ },
322142
+ {
322143
+ $ref: "#/definitions/auth.RedirectUriWithBackupPortsSchema"
322144
+ }
322145
+ ]
322146
+ },
322147
+ "auth.OAuthPkceSchema": {
322148
+ type: "object",
322149
+ properties: {
322150
+ method: {
322151
+ oneOf: [
322152
+ {
322153
+ type: "string"
322154
+ },
322155
+ {
322156
+ type: "null"
322157
+ }
322158
+ ],
322159
+ description: "The PKCE code challenge method. Only 'S256' is supported. Defaults to 'S256'."
322160
+ }
322161
+ },
322162
+ additionalProperties: false,
322163
+ description: "PKCE (RFC 7636) configuration for the authorization-code flow."
322164
+ },
321803
322165
  "auth.OAuthSchemeSchema": {
321804
322166
  type: "object",
321805
322167
  properties: {
@@ -321817,7 +322179,8 @@ var init_api_yml_schema = __esm({
321817
322179
  const: "oauth"
321818
322180
  },
321819
322181
  type: {
321820
- const: "client-credentials"
322182
+ $ref: "#/definitions/auth.OAuthFlowTypeSchema",
322183
+ description: "The OAuth flow. Defaults to 'client-credentials'."
321821
322184
  },
321822
322185
  scopes: {
321823
322186
  oneOf: [
@@ -321832,7 +322195,7 @@ var init_api_yml_schema = __esm({
321832
322195
  }
321833
322196
  ]
321834
322197
  },
321835
- "client-id-env": {
322198
+ "token-prefix": {
321836
322199
  oneOf: [
321837
322200
  {
321838
322201
  type: "string"
@@ -321840,9 +322203,10 @@ var init_api_yml_schema = __esm({
321840
322203
  {
321841
322204
  type: "null"
321842
322205
  }
321843
- ]
322206
+ ],
322207
+ description: "Sets the token header value prefix. Defaults to 'Bearer'"
321844
322208
  },
321845
- "client-secret-env": {
322209
+ "token-header": {
321846
322210
  oneOf: [
321847
322211
  {
321848
322212
  type: "string"
@@ -321850,9 +322214,10 @@ var init_api_yml_schema = __esm({
321850
322214
  {
321851
322215
  type: "null"
321852
322216
  }
321853
- ]
322217
+ ],
322218
+ description: "Sets the token header key name. Defaults to 'Authorization'"
321854
322219
  },
321855
- "token-prefix": {
322220
+ "client-id-env": {
321856
322221
  oneOf: [
321857
322222
  {
321858
322223
  type: "string"
@@ -321861,9 +322226,9 @@ var init_api_yml_schema = __esm({
321861
322226
  type: "null"
321862
322227
  }
321863
322228
  ],
321864
- description: "Sets the token header value prefix. Defaults to 'Bearer'"
322229
+ description: "The environment variable holding the client ID. Used by the client-credentials flow and, for the public-client flows, as an alternative to a literal `client-id`."
321865
322230
  },
321866
- "token-header": {
322231
+ "client-secret-env": {
321867
322232
  oneOf: [
321868
322233
  {
321869
322234
  type: "string"
@@ -321871,11 +322236,18 @@ var init_api_yml_schema = __esm({
321871
322236
  {
321872
322237
  type: "null"
321873
322238
  }
321874
- ],
321875
- description: "Sets the token header key name. Defaults to 'Authorization'"
322239
+ ]
321876
322240
  },
321877
322241
  "get-token": {
321878
- $ref: "#/definitions/auth.OAuthGetTokenEndpointSchema"
322242
+ oneOf: [
322243
+ {
322244
+ $ref: "#/definitions/auth.OAuthGetTokenEndpointSchema"
322245
+ },
322246
+ {
322247
+ type: "null"
322248
+ }
322249
+ ],
322250
+ description: "The token endpoint for the client-credentials flow. Required for that flow."
321879
322251
  },
321880
322252
  "refresh-token": {
321881
322253
  oneOf: [
@@ -321886,12 +322258,144 @@ var init_api_yml_schema = __esm({
321886
322258
  type: "null"
321887
322259
  }
321888
322260
  ]
322261
+ },
322262
+ "client-id": {
322263
+ oneOf: [
322264
+ {
322265
+ type: "string"
322266
+ },
322267
+ {
322268
+ type: "null"
322269
+ }
322270
+ ],
322271
+ description: "The public client ID (literal). Public clients do not use a client secret. Required for the authorization-code and device-code flows (an environment-variable client ID via `client-id-env` is not yet supported for these flows)."
322272
+ },
322273
+ "authorization-url": {
322274
+ oneOf: [
322275
+ {
322276
+ type: "string"
322277
+ },
322278
+ {
322279
+ type: "null"
322280
+ }
322281
+ ],
322282
+ description: "The authorization (consent) endpoint URL. Required for the authorization-code flow."
322283
+ },
322284
+ "device-authorization-url": {
322285
+ oneOf: [
322286
+ {
322287
+ type: "string"
322288
+ },
322289
+ {
322290
+ type: "null"
322291
+ }
322292
+ ],
322293
+ description: "The device authorization endpoint URL. Required for the device-code flow."
322294
+ },
322295
+ "token-url": {
322296
+ oneOf: [
322297
+ {
322298
+ type: "string"
322299
+ },
322300
+ {
322301
+ type: "null"
322302
+ }
322303
+ ],
322304
+ description: "The token endpoint URL. Required for the authorization-code and device-code flows."
322305
+ },
322306
+ "refresh-url": {
322307
+ oneOf: [
322308
+ {
322309
+ type: "string"
322310
+ },
322311
+ {
322312
+ type: "null"
322313
+ }
322314
+ ],
322315
+ description: "The token refresh endpoint URL. Defaults to `token-url` when omitted."
322316
+ },
322317
+ "redirect-uri": {
322318
+ oneOf: [
322319
+ {
322320
+ $ref: "#/definitions/auth.RedirectUriSchema"
322321
+ },
322322
+ {
322323
+ type: "null"
322324
+ }
322325
+ ],
322326
+ description: "The loopback redirect (callback) URI for the authorization-code flow. Must be a loopback host over http \u2014 `127.0.0.1` (recommended, RFC 8252 \xA77.3) or `localhost` \u2014 with any path; the generated CLI binds and sends this URI exactly, so it must match the redirect registered with the authorization server (e.g. `http://127.0.0.1:8484/callback` or `http://localhost:8484/callback`). Provide a bare string to pin a single port, or an object with `url` plus `ports` to add backup ports tried when the primary is busy. Omit it entirely to use an ephemeral (OS-assigned) port."
322327
+ },
322328
+ pkce: {
322329
+ oneOf: [
322330
+ {
322331
+ $ref: "#/definitions/auth.OAuthPkceSchema"
322332
+ },
322333
+ {
322334
+ type: "null"
322335
+ }
322336
+ ],
322337
+ description: "PKCE configuration for the authorization-code flow. PKCE is always applied for that flow."
322338
+ },
322339
+ "authorization-parameters": {
322340
+ oneOf: [
322341
+ {
322342
+ type: "object",
322343
+ additionalProperties: {
322344
+ type: "string"
322345
+ }
322346
+ },
322347
+ {
322348
+ type: "null"
322349
+ }
322350
+ ],
322351
+ description: "Additional literal parameters appended to the authorization request (e.g. `audience`)."
322352
+ },
322353
+ "device-authorization-parameters": {
322354
+ oneOf: [
322355
+ {
322356
+ type: "object",
322357
+ additionalProperties: {
322358
+ type: "string"
322359
+ }
322360
+ },
322361
+ {
322362
+ type: "null"
322363
+ }
322364
+ ],
322365
+ description: "Additional literal parameters included in the device authorization request."
322366
+ },
322367
+ "token-parameters": {
322368
+ oneOf: [
322369
+ {
322370
+ type: "object",
322371
+ additionalProperties: {
322372
+ type: "string"
322373
+ }
322374
+ },
322375
+ {
322376
+ type: "null"
322377
+ }
322378
+ ],
322379
+ description: "Additional literal parameters included in the token exchange request."
322380
+ },
322381
+ "refresh-parameters": {
322382
+ oneOf: [
322383
+ {
322384
+ type: "object",
322385
+ additionalProperties: {
322386
+ type: "string"
322387
+ }
322388
+ },
322389
+ {
322390
+ type: "null"
322391
+ }
322392
+ ],
322393
+ description: "Additional literal parameters included in the refresh request."
321889
322394
  }
321890
322395
  },
321891
322396
  required: [
321892
322397
  "scheme",
321893
- "type",
321894
- "get-token"
322398
+ "type"
321895
322399
  ],
321896
322400
  additionalProperties: false
321897
322401
  },
@@ -356455,6 +356959,9 @@ function resolveOAuthScheme({ ir: ir3, key: key2, oauthScheme }) {
356455
356959
  return void 0;
356456
356960
  }
356457
356961
  const tokenEndpointConfig = oauthScheme["get-token"];
356962
+ if (tokenEndpointConfig == null) {
356963
+ return void 0;
356964
+ }
356458
356965
  const resolved = resolveEndpointFromReference({ ir: ir3, endpointRef: tokenEndpointConfig.endpoint });
356459
356966
  if (resolved == null) {
356460
356967
  return void 0;
@@ -456234,10 +456741,10 @@ var init_heap_js_es5 = __esm({
456234
456741
  };
456235
456742
  HeapAsync2.prototype._applyLimit = function() {
456236
456743
  if (this._limit && this._limit < this.heapArray.length) {
456237
- var rm21 = this.heapArray.length - this._limit;
456238
- while (rm21) {
456744
+ var rm22 = this.heapArray.length - this._limit;
456745
+ while (rm22) {
456239
456746
  this.heapArray.pop();
456240
- --rm21;
456747
+ --rm22;
456241
456748
  }
456242
456749
  }
456243
456750
  };
@@ -457064,10 +457571,10 @@ var init_heap_js_es5 = __esm({
457064
457571
  };
457065
457572
  Heap2.prototype._applyLimit = function() {
457066
457573
  if (this._limit > 0 && this._limit < this.heapArray.length) {
457067
- var rm21 = this.heapArray.length - this._limit;
457068
- while (rm21) {
457574
+ var rm22 = this.heapArray.length - this._limit;
457575
+ while (rm22) {
457069
457576
  this.heapArray.pop();
457070
- --rm21;
457577
+ --rm22;
457071
457578
  }
457072
457579
  }
457073
457580
  };
@@ -682660,6 +683167,17 @@ var ValidOauthRule = {
682660
683167
  rootApiFile: {
682661
683168
  oauth: ({ name: name2, oauth }, { relativeFilepath }) => {
682662
683169
  const violations = [];
683170
+ if (oauth.type === "authorization-code" || oauth.type === "device-code") {
683171
+ return validatePublicClientFlow(oauth);
683172
+ }
683173
+ if (oauth["get-token"] == null) {
683174
+ return [
683175
+ {
683176
+ severity: "fatal",
683177
+ message: "OAuth client-credentials flow requires a `get-token` endpoint."
683178
+ }
683179
+ ];
683180
+ }
682663
683181
  const tokenEndpointReference = oauth["get-token"].endpoint;
682664
683182
  const resolvedTokenEndpoint = endpointResolver.resolveEndpoint({
682665
683183
  endpoint: tokenEndpointReference,
@@ -682706,6 +683224,92 @@ var ValidOauthRule = {
682706
683224
  };
682707
683225
  }
682708
683226
  };
683227
+ function validatePublicClientFlow(oauth) {
683228
+ const violations = [];
683229
+ const hasLiteralClientId = oauth["client-id"] != null;
683230
+ const hasEnvClientId = oauth["client-id-env"] != null;
683231
+ if (!hasLiteralClientId && !hasEnvClientId) {
683232
+ violations.push({
683233
+ severity: "fatal",
683234
+ message: `OAuth ${oauth.type} flow requires a public client ID: set \`client-id\`.`
683235
+ });
683236
+ } else if (!hasLiteralClientId && hasEnvClientId) {
683237
+ violations.push({
683238
+ severity: "fatal",
683239
+ message: `OAuth ${oauth.type} flow does not support an environment-variable client ID (\`client-id-env\`) yet; set a literal \`client-id\` instead (public client IDs are not secret).`
683240
+ });
683241
+ }
683242
+ const requireUrl = (field5) => {
683243
+ if (oauth[field5] == null) {
683244
+ violations.push({
683245
+ severity: "fatal",
683246
+ message: `OAuth ${oauth.type} flow requires \`${field5}\`.`
683247
+ });
683248
+ }
683249
+ };
683250
+ requireUrl("token-url");
683251
+ if (oauth.type === "authorization-code") {
683252
+ requireUrl("authorization-url");
683253
+ } else {
683254
+ requireUrl("device-authorization-url");
683255
+ }
683256
+ if (oauth.type === "authorization-code") {
683257
+ const pkceMethod = oauth.pkce?.method;
683258
+ if (pkceMethod != null && pkceMethod !== "S256") {
683259
+ violations.push({
683260
+ severity: "fatal",
683261
+ message: `OAuth PKCE method '${pkceMethod}' is not supported; only 'S256' is allowed.`
683262
+ });
683263
+ }
683264
+ const redirectUri = oauth["redirect-uri"];
683265
+ if (redirectUri != null) {
683266
+ const url3 = typeof redirectUri === "string" ? redirectUri : redirectUri.url;
683267
+ const urlError = validateRedirectUri(url3);
683268
+ if (urlError != null) {
683269
+ violations.push({ severity: "fatal", message: urlError });
683270
+ }
683271
+ if (typeof redirectUri !== "string") {
683272
+ for (const port of redirectUri.ports ?? []) {
683273
+ if (!Number.isInteger(port) || port < 1 || port > 65535) {
683274
+ violations.push({
683275
+ severity: "fatal",
683276
+ message: `OAuth redirect-uri backup port '${port}' is invalid; ports must be integers in 1\u201365535.`
683277
+ });
683278
+ }
683279
+ }
683280
+ }
683281
+ }
683282
+ } else {
683283
+ if (oauth["redirect-uri"] != null) {
683284
+ violations.push({
683285
+ severity: "fatal",
683286
+ message: "OAuth device-code flow has no browser callback; remove `redirect-uri` (it applies only to the authorization-code flow)."
683287
+ });
683288
+ }
683289
+ if (oauth.pkce != null) {
683290
+ violations.push({
683291
+ severity: "fatal",
683292
+ message: "OAuth device-code flow does not use PKCE; remove `pkce` (it applies only to the authorization-code flow)."
683293
+ });
683294
+ }
683295
+ }
683296
+ return violations;
683297
+ }
683298
+ function validateRedirectUri(redirectUri) {
683299
+ let parsed;
683300
+ try {
683301
+ parsed = new URL(redirectUri);
683302
+ } catch {
683303
+ return `OAuth redirect-uri '${redirectUri}' is not a valid URL. Use http://127.0.0.1:<port>/callback (or http://localhost:<port>/...), or omit it for an ephemeral port.`;
683304
+ }
683305
+ if (parsed.protocol !== "http:" || parsed.hostname !== "127.0.0.1" && parsed.hostname !== "localhost") {
683306
+ return `OAuth redirect-uri '${redirectUri}' must use a loopback host over http (127.0.0.1 or localhost) \u2014 it must match the redirect URI registered with the authorization server. Use e.g. http://127.0.0.1:8484/callback.`;
683307
+ }
683308
+ if (parsed.port === "") {
683309
+ return `OAuth redirect-uri '${redirectUri}' must include a port to pin (e.g. http://127.0.0.1:8484/callback), or omit redirect-uri entirely to use an ephemeral port.`;
683310
+ }
683311
+ return void 0;
683312
+ }
682709
683313
 
682710
683314
  // ../fern-definition/validator/lib/rules/valid-pagination/valid-pagination.js
682711
683315
  init_lib22();
@@ -693707,7 +694311,7 @@ var AccessTokenPosthogManager = class {
693707
694311
  properties: {
693708
694312
  ...event,
693709
694313
  ...event.properties,
693710
- version: "5.87.0",
694314
+ version: "5.89.0",
693711
694315
  usingAccessToken: true,
693712
694316
  ...getRunIdProperties()
693713
694317
  }
@@ -693773,7 +694377,7 @@ var UserPosthogManager = class {
693773
694377
  distinctId: this.userId ?? await this.getPersistedDistinctId(),
693774
694378
  event: "CLI",
693775
694379
  properties: {
693776
- version: "5.87.0",
694380
+ version: "5.89.0",
693777
694381
  ...event,
693778
694382
  ...event.properties,
693779
694383
  usingAccessToken: false,
@@ -874903,7 +875507,7 @@ var LOCAL_STORAGE_FOLDER4 = ".fern-dev";
874903
875507
  var LOGS_FOLDER_NAME = "logs";
874904
875508
  var MAX_LOGS_DIR_SIZE_BYTES = 100 * 1024 * 1024;
874905
875509
  function getCliSource() {
874906
- const version7 = "5.87.0";
875510
+ const version7 = "5.89.0";
874907
875511
  return `cli@${version7}`;
874908
875512
  }
874909
875513
  var DebugLogger = class {
@@ -907613,7 +908217,7 @@ var LegacyDocsPublisher = class {
907613
908217
  previewId,
907614
908218
  disableTemplates: void 0,
907615
908219
  skipUpload,
907616
- cliVersion: "5.87.0",
908220
+ cliVersion: "5.89.0",
907617
908221
  loginCommand: "fern auth login"
907618
908222
  });
907619
908223
  if (taskContext.getResult() === TaskResult.Failure) {
@@ -974488,7 +975092,7 @@ function getAutomationContextFromEnv() {
974488
975092
  config_branch: process.env.FERN_CONFIG_BRANCH,
974489
975093
  config_pr_number: process.env.FERN_CONFIG_PR_NUMBER,
974490
975094
  trigger: process.env.GITHUB_EVENT_NAME,
974491
- cli_version: "5.87.0"
975095
+ cli_version: "5.89.0"
974492
975096
  };
974493
975097
  }
974494
975098
  function isAutomationMode() {
@@ -975320,7 +975924,7 @@ var CliContext = class _CliContext {
975320
975924
  if (false) {
975321
975925
  this.logger.error("CLI_VERSION is not defined");
975322
975926
  }
975323
- return "5.87.0";
975927
+ return "5.89.0";
975324
975928
  }
975325
975929
  getCliName() {
975326
975930
  if (false) {
@@ -977109,6 +977713,7 @@ init_lib6();
977109
977713
  init_esm19();
977110
977714
 
977111
977715
  // src/commands/generate/packLocalOutput.ts
977716
+ init_lib19();
977112
977717
  init_lib4();
977113
977718
  init_lib8();
977114
977719
  init_lib33();
@@ -977130,7 +977735,8 @@ async function packLocalOutputForGroup({
977130
977735
  group,
977131
977736
  context: context3,
977132
977737
  mode = "host",
977133
- runner
977738
+ runner,
977739
+ packOnly = false
977134
977740
  }) {
977135
977741
  const failures = [];
977136
977742
  for (const generator of group.generators) {
@@ -977147,7 +977753,22 @@ async function packLocalOutputForGroup({
977147
977753
  continue;
977148
977754
  }
977149
977755
  try {
977150
- await packOutputForLanguage({ language, outputPath, context: context3, mode, runner: runner ?? "docker" });
977756
+ const artifactProduced = await packOutputForLanguage({
977757
+ language,
977758
+ outputPath,
977759
+ context: context3,
977760
+ mode,
977761
+ runner: runner ?? "docker"
977762
+ });
977763
+ if (packOnly) {
977764
+ if (artifactProduced) {
977765
+ await removeEverythingExceptDist({ outputPath, context: context3 });
977766
+ } else {
977767
+ context3.logger.warn(
977768
+ `Keeping generated source for ${generator.name}: no package artifact was produced, so there is nothing to keep in ${PACK_OUTPUT_DIRECTORY}/.`
977769
+ );
977770
+ }
977771
+ }
977151
977772
  } catch (error50) {
977152
977773
  const message = error50 instanceof Error ? error50.message : String(error50);
977153
977774
  context3.logger.error(`Failed to package ${generator.name} output at ${outputPath}: ${message}`);
@@ -977180,13 +977801,13 @@ async function packOutputForLanguage({
977180
977801
  commands.push(["npm", "pack", "--pack-destination", PACK_OUTPUT_DIRECTORY]);
977181
977802
  await run(commands);
977182
977803
  logArtifacts({ distDir, context: context3 });
977183
- return;
977804
+ return true;
977184
977805
  }
977185
977806
  case "python": {
977186
977807
  await (0, import_promises168.mkdir)(distDir, { recursive: true });
977187
977808
  await run([["python3", "-m", "pip", "wheel", ".", "--no-deps", "--wheel-dir", PACK_OUTPUT_DIRECTORY]]);
977188
977809
  logArtifacts({ distDir, context: context3 });
977189
- return;
977810
+ return true;
977190
977811
  }
977191
977812
  case "java": {
977192
977813
  await (0, import_promises168.mkdir)(distDir, { recursive: true });
@@ -977194,7 +977815,7 @@ async function packOutputForLanguage({
977194
977815
  const libsDir = join8(outputPath, RelativeFilePath2.of("build/libs"));
977195
977816
  await copyMatchingFiles({ fromDir: libsDir, toDir: distDir, extension: ".jar" });
977196
977817
  logArtifacts({ distDir, context: context3 });
977197
- return;
977818
+ return true;
977198
977819
  }
977199
977820
  case "csharp": {
977200
977821
  await (0, import_promises168.mkdir)(distDir, { recursive: true });
@@ -977204,7 +977825,7 @@ async function packOutputForLanguage({
977204
977825
  }
977205
977826
  await run([["dotnet", "pack", csproj, "-c", "Release", "-o", PACK_OUTPUT_DIRECTORY]]);
977206
977827
  logArtifacts({ distDir, context: context3 });
977207
- return;
977828
+ return true;
977208
977829
  }
977209
977830
  case "ruby": {
977210
977831
  await (0, import_promises168.mkdir)(distDir, { recursive: true });
@@ -977215,13 +977836,13 @@ async function packOutputForLanguage({
977215
977836
  await run([["gem", "build", gemspec]]);
977216
977837
  await moveMatchingFiles({ fromDir: outputPath, toDir: distDir, extension: ".gem" });
977217
977838
  logArtifacts({ distDir, context: context3 });
977218
- return;
977839
+ return true;
977219
977840
  }
977220
977841
  case "php": {
977221
977842
  await (0, import_promises168.mkdir)(distDir, { recursive: true });
977222
977843
  await run([["composer", "archive", "--format=zip", `--dir=${PACK_OUTPUT_DIRECTORY}`]]);
977223
977844
  logArtifacts({ distDir, context: context3 });
977224
- return;
977845
+ return true;
977225
977846
  }
977226
977847
  case "rust": {
977227
977848
  await (0, import_promises168.mkdir)(distDir, { recursive: true });
@@ -977229,7 +977850,7 @@ async function packOutputForLanguage({
977229
977850
  const packageDir = join8(outputPath, RelativeFilePath2.of("target/package"));
977230
977851
  await copyMatchingFiles({ fromDir: packageDir, toDir: distDir, extension: ".crate" });
977231
977852
  logArtifacts({ distDir, context: context3 });
977232
- return;
977853
+ return true;
977233
977854
  }
977234
977855
  case "go": {
977235
977856
  await (0, import_promises168.mkdir)(distDir, { recursive: true });
@@ -977239,13 +977860,13 @@ async function packOutputForLanguage({
977239
977860
  zipPath: join8(distDir, RelativeFilePath2.of(zipName))
977240
977861
  });
977241
977862
  logArtifacts({ distDir, context: context3 });
977242
- return;
977863
+ return true;
977243
977864
  }
977244
977865
  case "swift":
977245
977866
  context3.logger.warn(
977246
977867
  "Swift SDKs are distributed as source packages (Swift Package Manager), so there is no package artifact to build. Share the output directory itself, or reference it as a local package dependency."
977247
977868
  );
977248
- return;
977869
+ return false;
977249
977870
  default:
977250
977871
  assertNever(language);
977251
977872
  }
@@ -977309,6 +977930,28 @@ async function zipDirectory({
977309
977930
  zip.outputStream.pipe((0, import_fs41.createWriteStream)(zipPath)).on("close", resolve15).on("error", reject);
977310
977931
  });
977311
977932
  }
977933
+ async function removeEverythingExceptDist({
977934
+ outputPath,
977935
+ context: context3
977936
+ }) {
977937
+ const preserved = /* @__PURE__ */ new Set([PACK_OUTPUT_DIRECTORY, ".git"]);
977938
+ const fernignorePath = join8(outputPath, RelativeFilePath2.of(FERNIGNORE_FILENAME));
977939
+ if (await doesPathExist(fernignorePath)) {
977940
+ for (const ignorePath of await getFernIgnorePaths({ absolutePathToFernignore: fernignorePath })) {
977941
+ const topLevelSegment = ignorePath.split("/")[0];
977942
+ if (topLevelSegment != null && topLevelSegment.length > 0) {
977943
+ preserved.add(topLevelSegment);
977944
+ }
977945
+ }
977946
+ }
977947
+ for (const entry of await (0, import_promises168.readdir)(outputPath)) {
977948
+ if (preserved.has(entry)) {
977949
+ continue;
977950
+ }
977951
+ await (0, import_promises168.rm)(join8(outputPath, RelativeFilePath2.of(entry)), { recursive: true, force: true });
977952
+ }
977953
+ context3.logger.info(`Removed generated SDK source from ${outputPath}; kept ${[...preserved].join(", ")}.`);
977954
+ }
977312
977955
  async function removeDistDirIfEmpty(outputPath) {
977313
977956
  const distDir = join8(outputPath, RelativeFilePath2.of(PACK_OUTPUT_DIRECTORY));
977314
977957
  try {
@@ -977494,7 +978137,8 @@ async function generateWorkspace({
977494
978137
  generateTests,
977495
978138
  automation,
977496
978139
  pack,
977497
- packMode
978140
+ packMode,
978141
+ packOnly
977498
978142
  }) {
977499
978143
  if (workspace.generatorsConfiguration == null) {
977500
978144
  context3.logger.warn("This workspaces has no generators.yml");
@@ -977610,7 +978254,7 @@ async function generateWorkspace({
977610
978254
  });
977611
978255
  }
977612
978256
  if (pack) {
977613
- await packLocalOutputForGroup({ group, context: groupContext, mode: packMode, runner });
978257
+ await packLocalOutputForGroup({ group, context: groupContext, mode: packMode, runner, packOnly });
977614
978258
  }
977615
978259
  })
977616
978260
  )
@@ -977989,7 +978633,8 @@ async function generateAPIWorkspaces({
977989
978633
  generateTests,
977990
978634
  automation,
977991
978635
  pack,
977992
- packMode
978636
+ packMode,
978637
+ packOnly
977993
978638
  }) {
977994
978639
  let token = void 0;
977995
978640
  if (!useLocalDocker) {
@@ -978070,7 +978715,8 @@ async function generateAPIWorkspaces({
978070
978715
  generateTests,
978071
978716
  automation,
978072
978717
  pack,
978073
- packMode
978718
+ packMode,
978719
+ packOnly
978074
978720
  });
978075
978721
  });
978076
978722
  })
@@ -992058,14 +992704,18 @@ function addGenerateCommand3(cli, cliContext) {
992058
992704
  boolean: true,
992059
992705
  default: false,
992060
992706
  description: "Generate test files even when generating to a local file system (tests are normally only generated for GitHub output modes)"
992061
- }).option("pack", {
992707
+ }).option("package", {
992062
992708
  boolean: true,
992063
992709
  default: false,
992064
992710
  description: "After generating to the local file system, build distributable package artifacts (npm tarball, wheel, JAR, NuGet package, gem, etc.) into a fern-dist/ folder inside the output directory."
992065
- }).option("pack-mode", {
992711
+ }).option("package-mode", {
992066
992712
  choices: ["host", "docker"],
992067
992713
  default: "host",
992068
- description: "Where --pack runs the packaging toolchain: 'host' uses toolchains installed on this machine; 'docker' runs each toolchain inside an official Docker image (node, python, gradle, dotnet/sdk, ruby, composer, rust) with the output directory mounted, so no local toolchains are needed."
992714
+ description: "Where --package runs the packaging toolchain: 'host' uses toolchains installed on this machine; 'docker' runs each toolchain inside an official Docker image (node, python, gradle, dotnet/sdk, ruby, composer, rust) with the output directory mounted, so no local toolchains are needed."
992715
+ }).option("package-only", {
992716
+ boolean: true,
992717
+ default: false,
992718
+ description: "Like --package, but only the fern-dist/ artifact is kept in the output directory \u2014 the generated SDK source is removed after the package is built."
992069
992719
  }),
992070
992720
  async (argv) => {
992071
992721
  if (argv.api != null && argv.api.length > 0 && argv.docs != null) {
@@ -992141,22 +992791,25 @@ function addGenerateCommand3(cli, cliContext) {
992141
992791
  { code: CliError.Code.ConfigError }
992142
992792
  );
992143
992793
  }
992144
- if (argv.pack && argv.preview) {
992145
- return cliContext.failWithoutThrowing("The --pack flag cannot be used with --preview.", void 0, {
992794
+ const shouldPackage = argv.package || argv.packageOnly;
992795
+ if (shouldPackage && argv.preview) {
992796
+ return cliContext.failWithoutThrowing("The --package flag cannot be used with --preview.", void 0, {
992146
992797
  code: CliError.Code.ConfigError
992147
992798
  });
992148
992799
  }
992149
- if (argv.pack && argv.docs != null) {
992800
+ if (shouldPackage && argv.docs != null) {
992150
992801
  return cliContext.failWithoutThrowing(
992151
- "The --pack flag can only be used for API generation, not docs generation.",
992802
+ "The --package flag can only be used for API generation, not docs generation.",
992152
992803
  void 0,
992153
992804
  { code: CliError.Code.ConfigError }
992154
992805
  );
992155
992806
  }
992156
- if (argv.packMode !== "host" && !argv.pack) {
992157
- return cliContext.failWithoutThrowing("The --pack-mode flag can only be used with --pack.", void 0, {
992158
- code: CliError.Code.ConfigError
992159
- });
992807
+ if (argv.packageMode !== "host" && !shouldPackage) {
992808
+ return cliContext.failWithoutThrowing(
992809
+ "The --package-mode flag can only be used with --package.",
992810
+ void 0,
992811
+ { code: CliError.Code.ConfigError }
992812
+ );
992160
992813
  }
992161
992814
  if (argv.output != null && argv.docs != null) {
992162
992815
  return cliContext.failWithoutThrowing(
@@ -992197,8 +992850,9 @@ function addGenerateCommand3(cli, cliContext) {
992197
992850
  requireEnvVars: argv["require-env-vars"],
992198
992851
  skipIfNoDiff: argv["skip-if-no-diff"],
992199
992852
  generateTests: argv["generate-tests"],
992200
- pack: argv.pack,
992201
- packMode: argv.packMode
992853
+ pack: shouldPackage,
992854
+ packMode: argv.packageMode,
992855
+ packOnly: argv.packageOnly
992202
992856
  });
992203
992857
  }
992204
992858
  if (argv.docs != null) {
@@ -992261,8 +992915,9 @@ function addGenerateCommand3(cli, cliContext) {
992261
992915
  requireEnvVars: argv["require-env-vars"],
992262
992916
  skipIfNoDiff: argv["skip-if-no-diff"],
992263
992917
  generateTests: argv["generate-tests"],
992264
- pack: argv.pack,
992265
- packMode: argv.packMode
992918
+ pack: shouldPackage,
992919
+ packMode: argv.packageMode,
992920
+ packOnly: argv.packageOnly
992266
992921
  });
992267
992922
  }
992268
992923
  );
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.87.0",
2
+ "version": "5.89.0",
3
3
  "repository": {
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/fern-api/fern.git",