@postman/sdk-config 0.1.0 → 0.2.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.
- package/README.md +139 -124
- package/dist/index.cjs +301 -149
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +292 -150
- package/dist/index.js.map +1 -1
- package/dist/sdk-config/index.cjs +290 -113
- package/dist/sdk-config/index.cjs.map +1 -1
- package/dist/sdk-config/index.d.cts +2 -2
- package/dist/sdk-config/index.d.ts +2 -2
- package/dist/sdk-config/index.js +284 -114
- package/dist/sdk-config/index.js.map +1 -1
- package/dist/sdk-config/v1/index.cjs +290 -113
- package/dist/sdk-config/v1/index.cjs.map +1 -1
- package/dist/sdk-config/v1/index.d.cts +6903 -289
- package/dist/sdk-config/v1/index.d.ts +6903 -289
- package/dist/sdk-config/v1/index.js +284 -114
- package/dist/sdk-config/v1/index.js.map +1 -1
- package/dist/sdk-config-ir/index.cjs +71 -31
- package/dist/sdk-config-ir/index.cjs.map +1 -1
- package/dist/sdk-config-ir/index.d.cts +2 -2
- package/dist/sdk-config-ir/index.d.ts +2 -2
- package/dist/sdk-config-ir/index.js +69 -32
- package/dist/sdk-config-ir/index.js.map +1 -1
- package/dist/sdk-config-ir/v1/index.cjs +71 -31
- package/dist/sdk-config-ir/v1/index.cjs.map +1 -1
- package/dist/sdk-config-ir/v1/index.d.cts +130 -43
- package/dist/sdk-config-ir/v1/index.d.ts +130 -43
- package/dist/sdk-config-ir/v1/index.js +69 -32
- package/dist/sdk-config-ir/v1/index.js.map +1 -1
- package/dist/{typescript-ByDbin_v.d.cts → typescript-DNqK3T3v.d.cts} +5 -1
- package/dist/{typescript-ByDbin_v.d.ts → typescript-DNqK3T3v.d.ts} +5 -1
- package/docs/releasing.md +114 -0
- package/package.json +2 -2
- package/src/sdk-config/v1/README.md +91 -23
- package/src/sdk-config-ir/v1/README.md +3 -2
package/dist/index.cjs
CHANGED
|
@@ -9,6 +9,10 @@ var semver__default = /*#__PURE__*/_interopDefault(semver);
|
|
|
9
9
|
|
|
10
10
|
// src/sdk-config-domain/v1/api.ts
|
|
11
11
|
var nonEmptyStringSchema = zod.z.string().min(1);
|
|
12
|
+
var relativePathSchema = nonEmptyStringSchema.refine(
|
|
13
|
+
(value) => !/^(?:[\\/]|[A-Za-z]:)/.test(value) && !value.split(/[\\/]/).some((segment) => segment === ".."),
|
|
14
|
+
{ message: "must be a relative path without parent directory segments" }
|
|
15
|
+
);
|
|
12
16
|
var exactSemverSchema = zod.z.string().refine(
|
|
13
17
|
(value) => {
|
|
14
18
|
if (value.trim() !== value || !/^\d/.test(value)) {
|
|
@@ -195,26 +199,42 @@ var apiConfigSchema = zod.z.strictObject({
|
|
|
195
199
|
var sdkConfigV1AuthSchemeSchema = authSchemeSchema;
|
|
196
200
|
var sdkConfigV1AuthConfigSchema = authConfigSchema;
|
|
197
201
|
var sdkConfigV1ApiConfigSchema = apiConfigSchema;
|
|
202
|
+
var retryOverrideShape = {
|
|
203
|
+
enabled: zod.z.boolean().optional(),
|
|
204
|
+
maxAttempts: zod.z.number().int().min(1).optional(),
|
|
205
|
+
retryDelayMs: zod.z.number().nonnegative().optional(),
|
|
206
|
+
maxDelayMs: zod.z.number().nonnegative().optional(),
|
|
207
|
+
jitterMs: zod.z.number().nonnegative().optional(),
|
|
208
|
+
backoffFactor: zod.z.number().positive().optional(),
|
|
209
|
+
statusCodes: zod.z.array(zod.z.number().int().min(100).max(599)).optional(),
|
|
210
|
+
methods: zod.z.array(nonEmptyStringSchema).optional(),
|
|
211
|
+
statusCodeProfile: zod.z.enum(["legacy", "recommended"]).optional(),
|
|
212
|
+
maxRetryAfterDelayMs: zod.z.number().nonnegative().optional()
|
|
213
|
+
};
|
|
214
|
+
function validateRetryDelays({
|
|
215
|
+
maxDelayMs,
|
|
216
|
+
retryDelayMs
|
|
217
|
+
}, context) {
|
|
218
|
+
if (maxDelayMs !== void 0 && retryDelayMs !== void 0 && maxDelayMs < retryDelayMs) {
|
|
219
|
+
context.addIssue({
|
|
220
|
+
code: "custom",
|
|
221
|
+
message: "maxDelayMs must be greater than or equal to retryDelayMs",
|
|
222
|
+
path: ["maxDelayMs"]
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
var clientRetryOverrideSchema = zod.z.strictObject(retryOverrideShape).superRefine(validateRetryDelays);
|
|
198
227
|
var retryConfigSchema = zod.z.strictObject({
|
|
228
|
+
...retryOverrideShape,
|
|
199
229
|
enabled: zod.z.boolean().default(true),
|
|
200
230
|
maxAttempts: zod.z.number().int().min(1).default(3),
|
|
201
231
|
retryDelayMs: zod.z.number().nonnegative().default(150),
|
|
202
232
|
maxDelayMs: zod.z.number().nonnegative().default(5e3),
|
|
203
233
|
jitterMs: zod.z.number().nonnegative().default(50),
|
|
204
234
|
backoffFactor: zod.z.number().positive().default(2),
|
|
205
|
-
statusCodes: zod.z.array(zod.z.number().int().min(100).max(599)).optional(),
|
|
206
235
|
methods: zod.z.array(nonEmptyStringSchema).default(["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]),
|
|
207
|
-
statusCodeProfile: zod.z.enum(["legacy", "recommended"]).optional(),
|
|
208
236
|
maxRetryAfterDelayMs: zod.z.number().nonnegative().default(6e4)
|
|
209
|
-
}).superRefine(
|
|
210
|
-
if (maxDelayMs < retryDelayMs) {
|
|
211
|
-
context.addIssue({
|
|
212
|
-
code: "custom",
|
|
213
|
-
message: "maxDelayMs must be greater than or equal to retryDelayMs",
|
|
214
|
-
path: ["maxDelayMs"]
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
});
|
|
237
|
+
}).superRefine(validateRetryDelays);
|
|
218
238
|
var constructorParameterSchema = zod.z.strictObject({
|
|
219
239
|
name: nonEmptyStringSchema,
|
|
220
240
|
example: zod.z.string().optional(),
|
|
@@ -236,12 +256,12 @@ var tokenRefreshConfigSchema = zod.z.strictObject({
|
|
|
236
256
|
});
|
|
237
257
|
}
|
|
238
258
|
});
|
|
239
|
-
var
|
|
240
|
-
retry:
|
|
241
|
-
responseHeaders: zod.z.boolean().
|
|
259
|
+
var clientOverrideShape = {
|
|
260
|
+
retry: clientRetryOverrideSchema.optional(),
|
|
261
|
+
responseHeaders: zod.z.boolean().optional(),
|
|
242
262
|
responseValidation: zod.z.boolean().optional(),
|
|
243
|
-
multiTenant: zod.z.boolean().
|
|
244
|
-
additionalConstructorParameters: zod.z.array(constructorParameterSchema).
|
|
263
|
+
multiTenant: zod.z.boolean().optional(),
|
|
264
|
+
additionalConstructorParameters: zod.z.array(constructorParameterSchema).optional(),
|
|
245
265
|
timeoutMs: zod.z.union([zod.z.number().nonnegative(), zod.z.literal("infinity")]).optional(),
|
|
246
266
|
requestParameterStyle: parameterStyleSchema.optional(),
|
|
247
267
|
pathParameterStyle: parameterStyleSchema.optional(),
|
|
@@ -249,11 +269,20 @@ var clientConfigSchema = zod.z.strictObject({
|
|
|
249
269
|
useDefaultRequestParameterValues: zod.z.boolean().optional(),
|
|
250
270
|
respectOptionalRequestBody: zod.z.boolean().optional(),
|
|
251
271
|
tokenRefresh: tokenRefreshConfigSchema.optional()
|
|
272
|
+
};
|
|
273
|
+
var clientConfigOverrideSchema = zod.z.strictObject(clientOverrideShape);
|
|
274
|
+
var clientConfigSchema = zod.z.strictObject({
|
|
275
|
+
...clientOverrideShape,
|
|
276
|
+
retry: retryConfigSchema.prefault({}),
|
|
277
|
+
responseHeaders: zod.z.boolean().default(false),
|
|
278
|
+
multiTenant: zod.z.boolean().default(false),
|
|
279
|
+
additionalConstructorParameters: zod.z.array(constructorParameterSchema).default([])
|
|
252
280
|
});
|
|
253
281
|
|
|
254
282
|
// src/sdk-config/v1/client.ts
|
|
255
283
|
var sdkConfigV1ClientConfigSchema = clientConfigSchema;
|
|
256
|
-
var
|
|
284
|
+
var sdkConfigV1ClientConfigOverrideSchema = clientConfigOverrideSchema;
|
|
285
|
+
var goModulePathSchema = relativePathSchema.regex(
|
|
257
286
|
/^(?!.*(?:^|\/)\.{1,2}(?:\/|$))[A-Za-z0-9._~-]+(?:\/[A-Za-z0-9._~-]+)+$/,
|
|
258
287
|
"Go module path must be a slash-delimited path using letters, numbers, dots, dashes, underscores, or tildes"
|
|
259
288
|
);
|
|
@@ -857,26 +886,32 @@ function finishOutputMapping(mapping, outputMode, sourcePath, state, index) {
|
|
|
857
886
|
for (const path of collectLeafPaths(outputMode, sourcePath)) {
|
|
858
887
|
if (path[path.length - 1] === "_visit") consume(state, path);
|
|
859
888
|
}
|
|
889
|
+
const unsupported = collectUnsupported(outputMode, sourcePath, state);
|
|
890
|
+
const hasCredentials = unsupported.some((diagnostic) => isCredentialPath(diagnostic.path));
|
|
860
891
|
return {
|
|
861
892
|
...mapping,
|
|
862
|
-
unsupportedFields:
|
|
863
|
-
|
|
864
|
-
|
|
893
|
+
unsupportedFields: [
|
|
894
|
+
...hasCredentials ? [
|
|
895
|
+
{
|
|
896
|
+
code: "FERN_OUTPUT_CREDENTIAL_UNSUPPORTED",
|
|
897
|
+
severity: "warning",
|
|
898
|
+
path: sourcePath,
|
|
899
|
+
reason: "Fern output credentials and signatures are intentionally excluded from SDK Config v1",
|
|
900
|
+
suggestedAction: "Provide publishing credentials through the build request or external secret resolution."
|
|
901
|
+
}
|
|
902
|
+
] : [],
|
|
903
|
+
...unsupported.filter((diagnostic) => !isCredentialPath(diagnostic.path)).map((diagnostic) => outputDiagnostic(diagnostic.path, index))
|
|
904
|
+
]
|
|
865
905
|
};
|
|
866
906
|
}
|
|
907
|
+
function isCredentialPath(path) {
|
|
908
|
+
const fields = path.filter((part) => typeof part === "string");
|
|
909
|
+
const field = fields[fields.length - 1];
|
|
910
|
+
return fields.some((part) => part === "credentials" || part === "signature") || ["apiKey", "keyId", "password", "secretKey", "token", "username"].includes(field ?? "");
|
|
911
|
+
}
|
|
867
912
|
function outputDiagnostic(path, index) {
|
|
868
913
|
const fields = path.filter((part) => typeof part === "string");
|
|
869
914
|
const field = fields[fields.length - 1];
|
|
870
|
-
const credential = fields.some((part) => part === "credentials" || part === "signature") || ["apiKey", "keyId", "password", "secretKey", "token", "username"].includes(field ?? "");
|
|
871
|
-
if (credential) {
|
|
872
|
-
return {
|
|
873
|
-
code: "FERN_OUTPUT_CREDENTIAL_UNSUPPORTED",
|
|
874
|
-
severity: "warning",
|
|
875
|
-
path,
|
|
876
|
-
reason: "Fern output credentials and signatures are not represented by SDK Config v1",
|
|
877
|
-
suggestedAction: "Configure publication credentials and signing secrets outside SDK Config."
|
|
878
|
-
};
|
|
879
|
-
}
|
|
880
915
|
const guidance = {
|
|
881
916
|
directory: {
|
|
882
917
|
suggestedAction: "Preserve the GitHub output subdirectory outside SDK Config; public v1 has no repository subdirectory field."
|
|
@@ -933,8 +968,22 @@ function outputDiagnostic(path, index) {
|
|
|
933
968
|
suggestedAction: resolvedGuidance?.suggestedAction ?? "Review this output setting and preserve it outside SDK Config when no equivalent exists."
|
|
934
969
|
};
|
|
935
970
|
}
|
|
971
|
+
var namingConfigSchema = zod.z.strictObject({
|
|
972
|
+
clientName: nonEmptyStringSchema.optional(),
|
|
973
|
+
exportedClientName: nonEmptyStringSchema.optional(),
|
|
974
|
+
environmentTypeName: nonEmptyStringSchema.optional(),
|
|
975
|
+
apiErrorName: nonEmptyStringSchema.optional(),
|
|
976
|
+
baseErrorName: nonEmptyStringSchema.optional(),
|
|
977
|
+
pagerName: nonEmptyStringSchema.optional(),
|
|
978
|
+
/** Apply Fern's initialism-aware casing rules when deriving generated identifiers. */
|
|
979
|
+
smartCasing: zod.z.boolean().optional(),
|
|
980
|
+
/** Preserve a word boundary after digits when Fern smart casing is enabled. */
|
|
981
|
+
smartCasingDigitWordBoundary: zod.z.boolean().optional()
|
|
982
|
+
});
|
|
983
|
+
|
|
984
|
+
// src/sdk-config/v1/generation.ts
|
|
936
985
|
var customerGenerationAssetSchema = zod.z.discriminatedUnion("type", [
|
|
937
|
-
zod.z.strictObject({ type: zod.z.literal("path"), location:
|
|
986
|
+
zod.z.strictObject({ type: zod.z.literal("path"), location: relativePathSchema }),
|
|
938
987
|
zod.z.strictObject({ type: zod.z.literal("url"), location: nonEmptyStringSchema })
|
|
939
988
|
]);
|
|
940
989
|
var hookDependencySchema = zod.z.strictObject({
|
|
@@ -955,7 +1004,7 @@ var customCodeConfigSchema = zod.z.strictObject({
|
|
|
955
1004
|
protectedFiles: zod.z.array(nonEmptyStringSchema).optional()
|
|
956
1005
|
});
|
|
957
1006
|
var workflowConfigSchema = zod.z.strictObject({
|
|
958
|
-
path:
|
|
1007
|
+
path: relativePathSchema,
|
|
959
1008
|
outputName: nonEmptyStringSchema.optional()
|
|
960
1009
|
});
|
|
961
1010
|
var analyticsHeaderSchema = zod.z.union([
|
|
@@ -999,14 +1048,6 @@ var streamsSchema = zod.z.strictObject({
|
|
|
999
1048
|
fileResponseType: zod.z.enum(["stream", "binary-response"]).optional(),
|
|
1000
1049
|
defaultChunkSizeBytes: zod.z.number().int().positive().optional()
|
|
1001
1050
|
});
|
|
1002
|
-
var namingConfigSchema = zod.z.strictObject({
|
|
1003
|
-
clientName: nonEmptyStringSchema.optional(),
|
|
1004
|
-
exportedClientName: nonEmptyStringSchema.optional(),
|
|
1005
|
-
environmentTypeName: nonEmptyStringSchema.optional(),
|
|
1006
|
-
apiErrorName: nonEmptyStringSchema.optional(),
|
|
1007
|
-
baseErrorName: nonEmptyStringSchema.optional(),
|
|
1008
|
-
pagerName: nonEmptyStringSchema.optional()
|
|
1009
|
-
});
|
|
1010
1051
|
var layoutConfigSchema = zod.z.strictObject({
|
|
1011
1052
|
outputDirectory: zod.z.enum(["project-root", "source-root"]).optional(),
|
|
1012
1053
|
packagePath: nonEmptyStringSchema.optional()
|
|
@@ -1017,22 +1058,22 @@ var serializationConfigSchema = zod.z.strictObject({
|
|
|
1017
1058
|
inlineTypes: zod.z.boolean().optional(),
|
|
1018
1059
|
omitUndefined: zod.z.boolean().optional()
|
|
1019
1060
|
});
|
|
1020
|
-
var
|
|
1021
|
-
includeWatermark: zod.z.boolean().
|
|
1022
|
-
ai: zod.z.boolean().
|
|
1061
|
+
var generationConfigOverrideShape = {
|
|
1062
|
+
includeWatermark: zod.z.boolean().optional(),
|
|
1063
|
+
ai: zod.z.boolean().optional(),
|
|
1023
1064
|
includeOptionalSnippetParameters: zod.z.boolean().optional(),
|
|
1024
|
-
buildAllModels: zod.z.boolean().
|
|
1025
|
-
inferServiceNames: zod.z.boolean().
|
|
1026
|
-
includeDeprecatedOperations: zod.z.boolean().
|
|
1027
|
-
multipleResponses: zod.z.boolean().
|
|
1028
|
-
devContainer: zod.z.boolean().
|
|
1029
|
-
allowMockClient: zod.z.boolean().
|
|
1065
|
+
buildAllModels: zod.z.boolean().optional(),
|
|
1066
|
+
inferServiceNames: zod.z.boolean().optional(),
|
|
1067
|
+
includeDeprecatedOperations: zod.z.boolean().optional(),
|
|
1068
|
+
multipleResponses: zod.z.boolean().optional(),
|
|
1069
|
+
devContainer: zod.z.boolean().optional(),
|
|
1070
|
+
allowMockClient: zod.z.boolean().optional(),
|
|
1030
1071
|
ignoreFiles: zod.z.array(nonEmptyStringSchema).optional(),
|
|
1031
1072
|
reservedKeywords: zod.z.array(nonEmptyStringSchema).optional(),
|
|
1032
1073
|
hooks: hooksConfigSchema.optional(),
|
|
1033
1074
|
customCode: customCodeConfigSchema.optional(),
|
|
1034
1075
|
workflows: zod.z.array(workflowConfigSchema).optional(),
|
|
1035
|
-
customQueryPaths: zod.z.array(
|
|
1076
|
+
customQueryPaths: zod.z.array(relativePathSchema).optional(),
|
|
1036
1077
|
analytics: analyticsConfigSchema.optional(),
|
|
1037
1078
|
wireTests: wireTestsSchema.optional(),
|
|
1038
1079
|
unitTests: unitTestsSchema.optional(),
|
|
@@ -1041,7 +1082,30 @@ var sdkConfigV1GenerationConfigSchema = zod.z.strictObject({
|
|
|
1041
1082
|
naming: namingConfigSchema.optional(),
|
|
1042
1083
|
layout: layoutConfigSchema.optional(),
|
|
1043
1084
|
serialization: serializationConfigSchema.optional()
|
|
1044
|
-
}
|
|
1085
|
+
};
|
|
1086
|
+
var sdkConfigV1GenerationConfigOverrideSchema = zod.z.strictObject(
|
|
1087
|
+
generationConfigOverrideShape
|
|
1088
|
+
);
|
|
1089
|
+
var sdkConfigV1GenerationConfigSchema = zod.z.strictObject({
|
|
1090
|
+
...generationConfigOverrideShape,
|
|
1091
|
+
includeWatermark: zod.z.boolean().default(false),
|
|
1092
|
+
ai: zod.z.boolean().default(false),
|
|
1093
|
+
buildAllModels: zod.z.boolean().default(false),
|
|
1094
|
+
inferServiceNames: zod.z.boolean().default(false),
|
|
1095
|
+
includeDeprecatedOperations: zod.z.boolean().default(true),
|
|
1096
|
+
multipleResponses: zod.z.boolean().default(false),
|
|
1097
|
+
devContainer: zod.z.boolean().default(false),
|
|
1098
|
+
allowMockClient: zod.z.boolean().default(false)
|
|
1099
|
+
});
|
|
1100
|
+
var commonGenerationKeys = new Set(Object.keys(generationConfigOverrideShape));
|
|
1101
|
+
function splitSdkConfigV1TargetGeneration(generation) {
|
|
1102
|
+
const common = {};
|
|
1103
|
+
const language = {};
|
|
1104
|
+
for (const [key, value] of Object.entries(generation ?? {})) {
|
|
1105
|
+
(commonGenerationKeys.has(key) ? common : language)[key] = value;
|
|
1106
|
+
}
|
|
1107
|
+
return { common, language };
|
|
1108
|
+
}
|
|
1045
1109
|
var sdkConfigV1PublishRegistrySchema = zod.z.enum([
|
|
1046
1110
|
"npm",
|
|
1047
1111
|
"pypi",
|
|
@@ -1103,6 +1167,64 @@ var sdkConfigV1OutputConfigSchema = zod.z.discriminatedUnion(
|
|
|
1103
1167
|
// src/sdk-config/v1/package.ts
|
|
1104
1168
|
var sdkConfigV1DependencySchema = dependencySchema;
|
|
1105
1169
|
var sdkConfigV1PackageConfigSchema = packageConfigSchema;
|
|
1170
|
+
var apiImportSettingsSchema = zod.z.strictObject({
|
|
1171
|
+
respectNullableSchemas: zod.z.boolean().optional(),
|
|
1172
|
+
titleAsSchemaName: zod.z.boolean().optional(),
|
|
1173
|
+
coerceEnumsToLiterals: zod.z.boolean().optional(),
|
|
1174
|
+
idiomaticRequestNames: zod.z.boolean().optional(),
|
|
1175
|
+
wrapReferencesToNullableInOptional: zod.z.boolean().optional(),
|
|
1176
|
+
coerceOptionalSchemasToNullable: zod.z.boolean().optional(),
|
|
1177
|
+
pathParameterOrder: zod.z.enum(["url-order", "spec-order"]).optional(),
|
|
1178
|
+
onlyIncludeReferencedSchemas: zod.z.boolean().optional(),
|
|
1179
|
+
objectQueryParameters: zod.z.boolean().optional(),
|
|
1180
|
+
typeDatesAsStrings: zod.z.boolean().optional(),
|
|
1181
|
+
groupMultiApiEnvironments: zod.z.boolean().optional(),
|
|
1182
|
+
defaultIntegerFormat: zod.z.enum(["int32", "int64", "uint32", "uint64"]).optional()
|
|
1183
|
+
});
|
|
1184
|
+
var sourceSpecTypeSchema = zod.z.enum([
|
|
1185
|
+
"openapi",
|
|
1186
|
+
"swagger",
|
|
1187
|
+
"postman",
|
|
1188
|
+
"asyncapi",
|
|
1189
|
+
"graphql"
|
|
1190
|
+
]);
|
|
1191
|
+
|
|
1192
|
+
// src/sdk-config/v1/source.ts
|
|
1193
|
+
var sourceSpecShape = {
|
|
1194
|
+
id: nonEmptyStringSchema,
|
|
1195
|
+
type: sourceSpecTypeSchema,
|
|
1196
|
+
name: nonEmptyStringSchema.optional(),
|
|
1197
|
+
namespace: nonEmptyStringSchema.optional(),
|
|
1198
|
+
apiImportSettings: apiImportSettingsSchema.optional(),
|
|
1199
|
+
overlays: zod.z.array(relativePathSchema).optional(),
|
|
1200
|
+
overrides: zod.z.array(relativePathSchema).optional()
|
|
1201
|
+
};
|
|
1202
|
+
var sdkConfigV1SourceSpecSchema = zod.z.union(
|
|
1203
|
+
[
|
|
1204
|
+
zod.z.strictObject({ ...sourceSpecShape, path: relativePathSchema }),
|
|
1205
|
+
zod.z.strictObject({
|
|
1206
|
+
...sourceSpecShape,
|
|
1207
|
+
url: zod.z.url({ protocol: /^https?$/ })
|
|
1208
|
+
})
|
|
1209
|
+
],
|
|
1210
|
+
{ error: "source spec must contain exactly one locator: path or HTTP(S) url" }
|
|
1211
|
+
);
|
|
1212
|
+
var sdkConfigV1SourceConfigSchema = zod.z.strictObject({
|
|
1213
|
+
specs: zod.z.array(sdkConfigV1SourceSpecSchema).min(1, "source.specs must contain at least one source spec"),
|
|
1214
|
+
apiImportSettings: apiImportSettingsSchema.optional()
|
|
1215
|
+
}).superRefine(({ specs }, context) => {
|
|
1216
|
+
const seenIds = /* @__PURE__ */ new Set();
|
|
1217
|
+
specs.forEach(({ id }, index) => {
|
|
1218
|
+
if (seenIds.has(id)) {
|
|
1219
|
+
context.addIssue({
|
|
1220
|
+
code: "custom",
|
|
1221
|
+
message: `source spec id "${id}" must be unique`,
|
|
1222
|
+
path: ["specs", index, "id"]
|
|
1223
|
+
});
|
|
1224
|
+
}
|
|
1225
|
+
seenIds.add(id);
|
|
1226
|
+
});
|
|
1227
|
+
});
|
|
1106
1228
|
var cliGenerationConfigSchema = zod.z.strictObject({
|
|
1107
1229
|
paginationParameters: zod.z.array(nonEmptyStringSchema).optional(),
|
|
1108
1230
|
skills: zod.z.boolean().optional()
|
|
@@ -1164,6 +1286,8 @@ var typescriptGenerationConfigSchema = zod.z.strictObject({
|
|
|
1164
1286
|
namingStrategy: zod.z.enum(["base", "originalPropertyNames"]).optional(),
|
|
1165
1287
|
bundle: zod.z.boolean().optional(),
|
|
1166
1288
|
exportClassDefault: zod.z.boolean().optional(),
|
|
1289
|
+
/** Name of the top-level namespace export emitted by Fern-compatible TypeScript SDKs. */
|
|
1290
|
+
namespaceExportName: nonEmptyStringSchema.optional(),
|
|
1167
1291
|
allowCustomFetcher: zod.z.boolean().optional(),
|
|
1168
1292
|
useBrandedStringAliases: zod.z.boolean().optional(),
|
|
1169
1293
|
useLegacyExports: zod.z.boolean().optional(),
|
|
@@ -1268,73 +1392,75 @@ var targetOverrideShape = {
|
|
|
1268
1392
|
generatorVersion: exactSemverSchema.optional(),
|
|
1269
1393
|
sdkName: nonEmptyStringSchema.optional(),
|
|
1270
1394
|
sdkVersion: nonEmptyStringSchema.optional(),
|
|
1395
|
+
client: sdkConfigV1ClientConfigOverrideSchema.optional(),
|
|
1396
|
+
docs: sdkConfigV1DocsConfigSchema.optional(),
|
|
1271
1397
|
package: sdkConfigV1PackageConfigSchema.optional(),
|
|
1272
1398
|
output: sdkConfigV1OutputConfigSchema.optional()
|
|
1273
1399
|
};
|
|
1274
1400
|
var sdkConfigV1TargetSchema = zod.z.discriminatedUnion("language", [
|
|
1275
1401
|
zod.z.strictObject({
|
|
1276
1402
|
language: zod.z.literal("typescript"),
|
|
1277
|
-
generation: typescriptGenerationConfigSchema.optional(),
|
|
1403
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(typescriptGenerationConfigSchema.shape).optional(),
|
|
1278
1404
|
...targetOverrideShape
|
|
1279
1405
|
}),
|
|
1280
1406
|
zod.z.strictObject({
|
|
1281
1407
|
language: zod.z.literal("python"),
|
|
1282
|
-
generation: pythonGenerationConfigSchema.optional(),
|
|
1408
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(pythonGenerationConfigSchema.shape).optional(),
|
|
1283
1409
|
...targetOverrideShape
|
|
1284
1410
|
}),
|
|
1285
1411
|
zod.z.strictObject({
|
|
1286
1412
|
language: zod.z.literal("java"),
|
|
1287
|
-
generation: javaGenerationConfigSchema.optional(),
|
|
1413
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(javaGenerationConfigSchema.shape).optional(),
|
|
1288
1414
|
...targetOverrideShape
|
|
1289
1415
|
}),
|
|
1290
1416
|
zod.z.strictObject({
|
|
1291
1417
|
language: zod.z.literal("kotlin"),
|
|
1292
|
-
generation: kotlinGenerationConfigSchema.optional(),
|
|
1418
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(kotlinGenerationConfigSchema.shape).optional(),
|
|
1293
1419
|
...targetOverrideShape
|
|
1294
1420
|
}),
|
|
1295
1421
|
zod.z.strictObject({
|
|
1296
1422
|
language: zod.z.literal("go"),
|
|
1297
|
-
generation: goGenerationConfigSchema.optional(),
|
|
1423
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(goGenerationConfigSchema.shape).optional(),
|
|
1298
1424
|
...targetOverrideShape
|
|
1299
1425
|
}),
|
|
1300
1426
|
zod.z.strictObject({
|
|
1301
1427
|
language: zod.z.literal("csharp"),
|
|
1302
|
-
generation: csharpGenerationConfigSchema.optional(),
|
|
1428
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(csharpGenerationConfigSchema.shape).optional(),
|
|
1303
1429
|
...targetOverrideShape
|
|
1304
1430
|
}),
|
|
1305
1431
|
zod.z.strictObject({
|
|
1306
1432
|
language: zod.z.literal("php"),
|
|
1307
|
-
generation: phpGenerationConfigSchema.optional(),
|
|
1433
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(phpGenerationConfigSchema.shape).optional(),
|
|
1308
1434
|
...targetOverrideShape
|
|
1309
1435
|
}),
|
|
1310
1436
|
zod.z.strictObject({
|
|
1311
1437
|
language: zod.z.literal("ruby"),
|
|
1312
|
-
generation: rubyGenerationConfigSchema.optional(),
|
|
1438
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(rubyGenerationConfigSchema.shape).optional(),
|
|
1313
1439
|
...targetOverrideShape
|
|
1314
1440
|
}),
|
|
1315
1441
|
zod.z.strictObject({
|
|
1316
1442
|
language: zod.z.literal("rust"),
|
|
1317
|
-
generation: rustGenerationConfigSchema.optional(),
|
|
1443
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(rustGenerationConfigSchema.shape).optional(),
|
|
1318
1444
|
...targetOverrideShape
|
|
1319
1445
|
}),
|
|
1320
1446
|
zod.z.strictObject({
|
|
1321
1447
|
language: zod.z.literal("swift"),
|
|
1322
|
-
generation: swiftGenerationConfigSchema.optional(),
|
|
1448
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(swiftGenerationConfigSchema.shape).optional(),
|
|
1323
1449
|
...targetOverrideShape
|
|
1324
1450
|
}),
|
|
1325
1451
|
zod.z.strictObject({
|
|
1326
1452
|
language: zod.z.literal("cli"),
|
|
1327
|
-
generation: cliGenerationConfigSchema.optional(),
|
|
1453
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(cliGenerationConfigSchema.shape).optional(),
|
|
1328
1454
|
...targetOverrideShape
|
|
1329
1455
|
}),
|
|
1330
1456
|
zod.z.strictObject({
|
|
1331
1457
|
language: zod.z.literal("mcp"),
|
|
1332
|
-
generation: mcpGenerationConfigSchema.optional(),
|
|
1458
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(mcpGenerationConfigSchema.shape).optional(),
|
|
1333
1459
|
...targetOverrideShape
|
|
1334
1460
|
}),
|
|
1335
1461
|
zod.z.strictObject({
|
|
1336
1462
|
language: zod.z.literal("terraform"),
|
|
1337
|
-
generation: terraformGenerationConfigSchema.optional(),
|
|
1463
|
+
generation: sdkConfigV1GenerationConfigOverrideSchema.extend(terraformGenerationConfigSchema.shape).optional(),
|
|
1338
1464
|
...targetOverrideShape
|
|
1339
1465
|
})
|
|
1340
1466
|
]);
|
|
@@ -1399,6 +1525,14 @@ function validatePublishingIdentity(packageConfig, registry, targetIndex, contex
|
|
|
1399
1525
|
}
|
|
1400
1526
|
function validateTargetPublishing(target, targetIndex, globalPackage, globalOutput, context) {
|
|
1401
1527
|
const output = target.output ?? globalOutput;
|
|
1528
|
+
if (!output) {
|
|
1529
|
+
context.addIssue({
|
|
1530
|
+
code: "custom",
|
|
1531
|
+
message: "output is required on the target when no global output is configured",
|
|
1532
|
+
path: ["targets", targetIndex, "output"]
|
|
1533
|
+
});
|
|
1534
|
+
return;
|
|
1535
|
+
}
|
|
1402
1536
|
if (!output.publish) {
|
|
1403
1537
|
return;
|
|
1404
1538
|
}
|
|
@@ -1423,10 +1557,11 @@ var sdkConfigV1Schema = zod.z.strictObject({
|
|
|
1423
1557
|
sdkName: nonEmptyStringSchema,
|
|
1424
1558
|
sdkVersion: nonEmptyStringSchema.default("1.0.0"),
|
|
1425
1559
|
apiVersion: nonEmptyStringSchema.optional(),
|
|
1560
|
+
source: sdkConfigV1SourceConfigSchema,
|
|
1426
1561
|
api: sdkConfigV1ApiConfigSchema,
|
|
1427
1562
|
client: sdkConfigV1ClientConfigSchema,
|
|
1428
1563
|
package: sdkConfigV1PackageConfigSchema,
|
|
1429
|
-
output: sdkConfigV1OutputConfigSchema,
|
|
1564
|
+
output: sdkConfigV1OutputConfigSchema.optional(),
|
|
1430
1565
|
docs: sdkConfigV1DocsConfigSchema,
|
|
1431
1566
|
generation: sdkConfigV1GenerationConfigSchema,
|
|
1432
1567
|
targets: zod.z.array(sdkConfigV1TargetSchema).min(1)
|
|
@@ -1444,6 +1579,10 @@ var sdkConfigV1Schema = zod.z.strictObject({
|
|
|
1444
1579
|
validateTargetPublishing(target, targetIndex, globalPackage, output, context);
|
|
1445
1580
|
});
|
|
1446
1581
|
});
|
|
1582
|
+
function validateSdkConfigV1(value) {
|
|
1583
|
+
sdkConfigV1Schema.parse(value);
|
|
1584
|
+
return value;
|
|
1585
|
+
}
|
|
1447
1586
|
function parseSdkConfigV1(value) {
|
|
1448
1587
|
return sdkConfigV1Schema.parse(value);
|
|
1449
1588
|
}
|
|
@@ -1489,21 +1628,9 @@ function mapFernConfigToSdkConfigV1(input) {
|
|
|
1489
1628
|
};
|
|
1490
1629
|
});
|
|
1491
1630
|
requireUniqueLanguages(mapped.map(({ language }) => language));
|
|
1492
|
-
const
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
(value) => sdkConfigV1ClientConfigSchema.parse(value)
|
|
1496
|
-
);
|
|
1497
|
-
const docs = requireSharedBlock(
|
|
1498
|
-
mapped.map(({ invocation }) => invocation.docs),
|
|
1499
|
-
"docs",
|
|
1500
|
-
(value) => sdkConfigV1DocsConfigSchema.parse(value)
|
|
1501
|
-
);
|
|
1502
|
-
const generation = requireSharedBlock(
|
|
1503
|
-
mapped.map(({ invocation }) => invocation.generation),
|
|
1504
|
-
"generation",
|
|
1505
|
-
(value) => sdkConfigV1GenerationConfigSchema.parse(value)
|
|
1506
|
-
);
|
|
1631
|
+
const clients = partitionSharedBlock(mapped.map(({ invocation }) => invocation.client));
|
|
1632
|
+
const docs = partitionSharedBlock(mapped.map(({ invocation }) => invocation.docs));
|
|
1633
|
+
const generations = partitionSharedBlock(mapped.map(({ invocation }) => invocation.generation));
|
|
1507
1634
|
const api = { ...input.api ?? {} };
|
|
1508
1635
|
delete api.audiences;
|
|
1509
1636
|
if (input.group.audiences.type === "select") {
|
|
@@ -1515,13 +1642,19 @@ function mapFernConfigToSdkConfigV1(input) {
|
|
|
1515
1642
|
language,
|
|
1516
1643
|
output,
|
|
1517
1644
|
...optional("sdkName", generator.sdkName),
|
|
1518
|
-
...optional("sdkVersion", generator.sdkVersion)
|
|
1645
|
+
...optional("sdkVersion", generator.sdkVersion),
|
|
1646
|
+
...optional("client", clients.targetOverrides[index]),
|
|
1647
|
+
...optional("docs", docs.targetOverrides[index])
|
|
1519
1648
|
};
|
|
1520
1649
|
if (Object.keys(invocation.package).length > 0 || outputPackage || generator.package) {
|
|
1521
1650
|
target.package = { ...invocation.package, ...outputPackage, ...generator.package };
|
|
1522
1651
|
}
|
|
1523
|
-
|
|
1524
|
-
|
|
1652
|
+
const targetGeneration = {
|
|
1653
|
+
...generations.targetOverrides[index],
|
|
1654
|
+
...invocation.targetGeneration
|
|
1655
|
+
};
|
|
1656
|
+
if (Object.keys(targetGeneration).length > 0) {
|
|
1657
|
+
target.generation = targetGeneration;
|
|
1525
1658
|
}
|
|
1526
1659
|
if (generator.version) {
|
|
1527
1660
|
if (exactSemverSchema.safeParse(generator.version).success) {
|
|
@@ -1540,19 +1673,20 @@ function mapFernConfigToSdkConfigV1(input) {
|
|
|
1540
1673
|
return target;
|
|
1541
1674
|
}
|
|
1542
1675
|
);
|
|
1543
|
-
const
|
|
1676
|
+
const sdkConfig = {
|
|
1544
1677
|
schemaVersion: "sdk-config/v1",
|
|
1545
1678
|
sdkName: input.apiName,
|
|
1679
|
+
source: input.source,
|
|
1546
1680
|
...optional("sdkVersion", input.sdkVersion),
|
|
1547
1681
|
...optional("apiVersion", input.apiVersion),
|
|
1548
1682
|
api,
|
|
1549
|
-
client,
|
|
1683
|
+
client: clients.shared,
|
|
1550
1684
|
package: {},
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
generation,
|
|
1685
|
+
docs: docs.shared,
|
|
1686
|
+
generation: generations.shared,
|
|
1554
1687
|
targets
|
|
1555
|
-
}
|
|
1688
|
+
};
|
|
1689
|
+
const parsed = sdkConfigV1Schema.safeParse(sdkConfig);
|
|
1556
1690
|
if (!parsed.success) {
|
|
1557
1691
|
throw new FernConfigMappingError(
|
|
1558
1692
|
parsed.error.issues.map((issue) => {
|
|
@@ -1570,8 +1704,9 @@ function mapFernConfigToSdkConfigV1(input) {
|
|
|
1570
1704
|
})
|
|
1571
1705
|
);
|
|
1572
1706
|
}
|
|
1707
|
+
const validatedSdkConfig = sdkConfig;
|
|
1573
1708
|
return {
|
|
1574
|
-
sdkConfig:
|
|
1709
|
+
sdkConfig: validatedSdkConfig,
|
|
1575
1710
|
unsupportedFields: mapped.flatMap(({ invocation, unsupportedFields }) => [
|
|
1576
1711
|
...invocation.unsupportedFields,
|
|
1577
1712
|
...unsupportedFields
|
|
@@ -1623,19 +1758,46 @@ function requireUniqueLanguages(languages) {
|
|
|
1623
1758
|
seen.add(language);
|
|
1624
1759
|
}
|
|
1625
1760
|
}
|
|
1626
|
-
function
|
|
1627
|
-
const
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1761
|
+
function partitionSharedBlock(values) {
|
|
1762
|
+
const partition = partitionObjectValues(values);
|
|
1763
|
+
return {
|
|
1764
|
+
shared: partition.shared,
|
|
1765
|
+
targetOverrides: partition.overrides.map(
|
|
1766
|
+
(override) => Object.keys(override).length > 0 ? override : void 0
|
|
1767
|
+
)
|
|
1768
|
+
};
|
|
1769
|
+
}
|
|
1770
|
+
function partitionObjectValues(values) {
|
|
1771
|
+
const shared = {};
|
|
1772
|
+
const overrides = values.map(() => ({}));
|
|
1773
|
+
const keys = new Set(values.flatMap((value) => Object.keys(value)));
|
|
1774
|
+
for (const key of keys) {
|
|
1775
|
+
const fieldValues = values.map((value) => value[key]);
|
|
1776
|
+
const presentOnEveryTarget = fieldValues.every((value) => value !== void 0);
|
|
1777
|
+
if (!presentOnEveryTarget) {
|
|
1778
|
+
fieldValues.forEach((value, index) => {
|
|
1779
|
+
if (value !== void 0) overrides[index][key] = value;
|
|
1780
|
+
});
|
|
1781
|
+
continue;
|
|
1782
|
+
}
|
|
1783
|
+
if (fieldValues.every(isObject)) {
|
|
1784
|
+
const nested = partitionObjectValues(fieldValues);
|
|
1785
|
+
if (Object.keys(nested.shared).length > 0) shared[key] = nested.shared;
|
|
1786
|
+
nested.overrides.forEach((override, index) => {
|
|
1787
|
+
if (Object.keys(override).length > 0) overrides[index][key] = override;
|
|
1788
|
+
});
|
|
1789
|
+
continue;
|
|
1790
|
+
}
|
|
1791
|
+
const first = fieldValues[0];
|
|
1792
|
+
if (fieldValues.every((value) => stableJson(value) === stableJson(first))) {
|
|
1793
|
+
shared[key] = first;
|
|
1794
|
+
} else {
|
|
1795
|
+
fieldValues.forEach((value, index) => {
|
|
1796
|
+
overrides[index][key] = value;
|
|
1797
|
+
});
|
|
1798
|
+
}
|
|
1637
1799
|
}
|
|
1638
|
-
return
|
|
1800
|
+
return { shared, overrides };
|
|
1639
1801
|
}
|
|
1640
1802
|
function mapInvocation(generator, language, index) {
|
|
1641
1803
|
const prefix = ["group", "generators", index];
|
|
@@ -1645,14 +1807,21 @@ function mapInvocation(generator, language, index) {
|
|
|
1645
1807
|
const generation = {};
|
|
1646
1808
|
const packageConfig = {};
|
|
1647
1809
|
mapCommonConfig(config, state, client, generation, packageConfig, [...prefix, "config"]);
|
|
1810
|
+
const rawGenerator = isObject(generator.raw) ? generator.raw : void 0;
|
|
1811
|
+
const smartCasing = typeof rawGenerator?.["smart-casing"] === "boolean" ? rawGenerator["smart-casing"] : generator.smartCasing === false ? false : void 0;
|
|
1812
|
+
const smartCasingDigitWordBoundary = typeof rawGenerator?.["smart-casing-digit-word-boundary"] === "boolean" ? rawGenerator["smart-casing-digit-word-boundary"] : generator.smartCasingDigitWordBoundary === true ? true : void 0;
|
|
1813
|
+
if (smartCasing !== void 0 || smartCasingDigitWordBoundary !== void 0) {
|
|
1814
|
+
generation.naming = {
|
|
1815
|
+
...generation.naming,
|
|
1816
|
+
...optional("smartCasing", smartCasing),
|
|
1817
|
+
...optional("smartCasingDigitWordBoundary", smartCasingDigitWordBoundary)
|
|
1818
|
+
};
|
|
1819
|
+
}
|
|
1648
1820
|
const targetGeneration = mapLanguageConfig(language, config, state, packageConfig, [
|
|
1649
1821
|
...prefix,
|
|
1650
1822
|
"config"
|
|
1651
1823
|
]);
|
|
1652
1824
|
mapPublishMetadata(generator.publishMetadata, packageConfig);
|
|
1653
|
-
if (language === "go" && generator.smartCasing !== void 0) {
|
|
1654
|
-
targetGeneration.smartCasing = generator.smartCasing;
|
|
1655
|
-
}
|
|
1656
1825
|
if (generator.keywords?.length) {
|
|
1657
1826
|
generation.reservedKeywords = [...generator.keywords];
|
|
1658
1827
|
}
|
|
@@ -1671,27 +1840,22 @@ function mapInvocation(generator, language, index) {
|
|
|
1671
1840
|
...collectUnsupported(config, [...prefix, "config"], state),
|
|
1672
1841
|
...settings ? collectUnsupported(settings, [...prefix, "settings"], state) : [],
|
|
1673
1842
|
...isObject(generator.readme) ? collectUnsupported(generator.readme, [...prefix, "readme"], state) : [],
|
|
1674
|
-
...unsupportedResolvedFields(generator, index
|
|
1843
|
+
...unsupportedResolvedFields(generator, index)
|
|
1675
1844
|
];
|
|
1676
1845
|
return { client, docs, generation, package: packageConfig, targetGeneration, unsupportedFields };
|
|
1677
1846
|
}
|
|
1678
|
-
function unsupportedResolvedFields(generator, index
|
|
1847
|
+
function unsupportedResolvedFields(generator, index) {
|
|
1679
1848
|
const values = [
|
|
1680
1849
|
["automation", isDefaultAutomation(generator.automation) ? void 0 : generator.automation],
|
|
1681
1850
|
["containerImage", generator.containerImage],
|
|
1682
1851
|
["irVersionOverride", generator.irVersionOverride],
|
|
1683
1852
|
["idempotencyKeyGenerationConfig", generator.idempotencyKeyGenerationConfig],
|
|
1684
1853
|
["absolutePathToLocalSnippets", generator.absolutePathToLocalSnippets],
|
|
1685
|
-
[
|
|
1686
|
-
"smartCasingDigitWordBoundary",
|
|
1687
|
-
generator.smartCasingDigitWordBoundary === false ? void 0 : generator.smartCasingDigitWordBoundary
|
|
1688
|
-
],
|
|
1689
1854
|
[
|
|
1690
1855
|
"disableExamples",
|
|
1691
1856
|
generator.disableExamples === false ? void 0 : generator.disableExamples
|
|
1692
1857
|
],
|
|
1693
|
-
["apiOverride", generator.apiOverride]
|
|
1694
|
-
...language === "go" || generator.smartCasing === true ? [] : [["smartCasing", generator.smartCasing]]
|
|
1858
|
+
["apiOverride", generator.apiOverride]
|
|
1695
1859
|
];
|
|
1696
1860
|
return values.flatMap(([field, value]) => {
|
|
1697
1861
|
if (value === void 0) return [];
|
|
@@ -1855,6 +2019,12 @@ function mapTypescript(config, state, packageConfig, basePath) {
|
|
|
1855
2019
|
testFramework: takeEnum(config, ["testFramework"], ["jest", "vitest"], state, basePath),
|
|
1856
2020
|
bundle: takeBoolean(config, ["bundle"], state, basePath),
|
|
1857
2021
|
exportClassDefault: takeBoolean(config, ["exportClassDefault"], state, basePath),
|
|
2022
|
+
namespaceExportName: takeString(
|
|
2023
|
+
config,
|
|
2024
|
+
["namespaceExportName", "namespaceExport"],
|
|
2025
|
+
state,
|
|
2026
|
+
basePath
|
|
2027
|
+
),
|
|
1858
2028
|
allowCustomFetcher: takeBoolean(config, ["allowCustomFetcher"], state, basePath),
|
|
1859
2029
|
useBrandedStringAliases: takeBoolean(config, ["useBrandedStringAliases"], state, basePath),
|
|
1860
2030
|
useLegacyExports: takeBoolean(config, ["useLegacyExports"], state, basePath),
|
|
@@ -2219,10 +2389,11 @@ var compatibilityConfigSchema = zod.z.strictObject({
|
|
|
2219
2389
|
legacyInput: legacyInputSchema.optional(),
|
|
2220
2390
|
unsupportedFields: zod.z.array(unsupportedFieldSchema).optional()
|
|
2221
2391
|
});
|
|
2222
|
-
var generationAssetSchema = zod.z.
|
|
2223
|
-
type: zod.z.
|
|
2224
|
-
location: nonEmptyStringSchema
|
|
2225
|
-
})
|
|
2392
|
+
var generationAssetSchema = zod.z.discriminatedUnion("type", [
|
|
2393
|
+
zod.z.strictObject({ type: zod.z.literal("path"), location: relativePathSchema }),
|
|
2394
|
+
zod.z.strictObject({ type: zod.z.literal("url"), location: nonEmptyStringSchema }),
|
|
2395
|
+
zod.z.strictObject({ type: zod.z.literal("artifact"), location: nonEmptyStringSchema })
|
|
2396
|
+
]);
|
|
2226
2397
|
var hookDependencySchema2 = zod.z.strictObject({
|
|
2227
2398
|
name: nonEmptyStringSchema,
|
|
2228
2399
|
version: nonEmptyStringSchema,
|
|
@@ -2242,7 +2413,7 @@ var customCodeConfigSchema2 = zod.z.strictObject({
|
|
|
2242
2413
|
protectedFiles: zod.z.array(nonEmptyStringSchema).optional()
|
|
2243
2414
|
});
|
|
2244
2415
|
var workflowConfigSchema2 = zod.z.strictObject({
|
|
2245
|
-
path:
|
|
2416
|
+
path: relativePathSchema,
|
|
2246
2417
|
outputName: nonEmptyStringSchema.optional()
|
|
2247
2418
|
});
|
|
2248
2419
|
var analyticsHeaderSchema2 = zod.z.union([
|
|
@@ -2288,14 +2459,6 @@ var streamsSchema2 = zod.z.strictObject({
|
|
|
2288
2459
|
fileResponseType: zod.z.enum(["stream", "binary-response"]).optional(),
|
|
2289
2460
|
defaultChunkSizeBytes: zod.z.number().int().positive().optional()
|
|
2290
2461
|
});
|
|
2291
|
-
var namingConfigSchema2 = zod.z.strictObject({
|
|
2292
|
-
clientName: nonEmptyStringSchema.optional(),
|
|
2293
|
-
exportedClientName: nonEmptyStringSchema.optional(),
|
|
2294
|
-
environmentTypeName: nonEmptyStringSchema.optional(),
|
|
2295
|
-
apiErrorName: nonEmptyStringSchema.optional(),
|
|
2296
|
-
baseErrorName: nonEmptyStringSchema.optional(),
|
|
2297
|
-
pagerName: nonEmptyStringSchema.optional()
|
|
2298
|
-
});
|
|
2299
2462
|
var layoutConfigSchema2 = zod.z.strictObject({
|
|
2300
2463
|
outputDirectory: zod.z.enum(["project-root", "source-root"]).optional(),
|
|
2301
2464
|
packagePath: nonEmptyStringSchema.optional()
|
|
@@ -2348,13 +2511,13 @@ var generationConfigSchema = zod.z.strictObject({
|
|
|
2348
2511
|
hooks: hooksConfigSchema2.optional(),
|
|
2349
2512
|
customCode: customCodeConfigSchema2.optional(),
|
|
2350
2513
|
workflows: zod.z.array(workflowConfigSchema2).optional(),
|
|
2351
|
-
customQueryPaths: zod.z.array(
|
|
2514
|
+
customQueryPaths: zod.z.array(relativePathSchema).optional(),
|
|
2352
2515
|
analytics: analyticsConfigSchema2.optional(),
|
|
2353
2516
|
wireTests: wireTestsSchema2.optional(),
|
|
2354
2517
|
unitTests: unitTestsSchema2.optional(),
|
|
2355
2518
|
webSockets: zod.z.boolean().optional(),
|
|
2356
2519
|
streams: streamsSchema2.optional(),
|
|
2357
|
-
naming:
|
|
2520
|
+
naming: namingConfigSchema.optional(),
|
|
2358
2521
|
layout: layoutConfigSchema2.optional(),
|
|
2359
2522
|
serialization: serializationConfigSchema2.optional(),
|
|
2360
2523
|
language: languageGenerationConfigSchema.optional()
|
|
@@ -2462,27 +2625,6 @@ var outputConfigSchema = zod.z.discriminatedUnion(
|
|
|
2462
2625
|
error: 'output.delivery must be one of "files", "zip", or "github"'
|
|
2463
2626
|
}
|
|
2464
2627
|
);
|
|
2465
|
-
var apiImportSettingsSchema = zod.z.strictObject({
|
|
2466
|
-
respectNullableSchemas: zod.z.boolean().optional(),
|
|
2467
|
-
titleAsSchemaName: zod.z.boolean().optional(),
|
|
2468
|
-
coerceEnumsToLiterals: zod.z.boolean().optional(),
|
|
2469
|
-
idiomaticRequestNames: zod.z.boolean().optional(),
|
|
2470
|
-
wrapReferencesToNullableInOptional: zod.z.boolean().optional(),
|
|
2471
|
-
coerceOptionalSchemasToNullable: zod.z.boolean().optional(),
|
|
2472
|
-
pathParameterOrder: zod.z.enum(["url-order", "spec-order"]).optional(),
|
|
2473
|
-
onlyIncludeReferencedSchemas: zod.z.boolean().optional(),
|
|
2474
|
-
objectQueryParameters: zod.z.boolean().optional(),
|
|
2475
|
-
typeDatesAsStrings: zod.z.boolean().optional(),
|
|
2476
|
-
groupMultiApiEnvironments: zod.z.boolean().optional(),
|
|
2477
|
-
defaultIntegerFormat: zod.z.enum(["int32", "int64", "uint32", "uint64"]).optional()
|
|
2478
|
-
});
|
|
2479
|
-
var sourceSpecTypeSchema = zod.z.enum([
|
|
2480
|
-
"openapi",
|
|
2481
|
-
"swagger",
|
|
2482
|
-
"postman",
|
|
2483
|
-
"asyncapi",
|
|
2484
|
-
"graphql"
|
|
2485
|
-
]);
|
|
2486
2628
|
var sourceSpecConfigSchema = zod.z.strictObject({
|
|
2487
2629
|
id: nonEmptyStringSchema.optional(),
|
|
2488
2630
|
name: nonEmptyStringSchema.optional(),
|
|
@@ -2678,7 +2820,9 @@ exports.apiImportSettingsSchema = apiImportSettingsSchema;
|
|
|
2678
2820
|
exports.authConfigSchema = authConfigSchema;
|
|
2679
2821
|
exports.authSchemeSchema = authSchemeSchema;
|
|
2680
2822
|
exports.cliGenerationConfigSchema = cliGenerationConfigSchema;
|
|
2823
|
+
exports.clientConfigOverrideSchema = clientConfigOverrideSchema;
|
|
2681
2824
|
exports.clientConfigSchema = clientConfigSchema;
|
|
2825
|
+
exports.clientRetryOverrideSchema = clientRetryOverrideSchema;
|
|
2682
2826
|
exports.compatibilityConfigSchema = compatibilityConfigSchema;
|
|
2683
2827
|
exports.composerPackageNameSchema = composerPackageNameSchema;
|
|
2684
2828
|
exports.csharpGenerationConfigSchema = csharpGenerationConfigSchema;
|
|
@@ -2708,6 +2852,7 @@ exports.publishRegistrySchema = publishRegistrySchema;
|
|
|
2708
2852
|
exports.pythonGenerationConfigSchema = pythonGenerationConfigSchema;
|
|
2709
2853
|
exports.readmeCustomSectionSchema = readmeCustomSectionSchema;
|
|
2710
2854
|
exports.readmeEndpointSchema = readmeEndpointSchema;
|
|
2855
|
+
exports.relativePathSchema = relativePathSchema;
|
|
2711
2856
|
exports.rubyGenerationConfigSchema = rubyGenerationConfigSchema;
|
|
2712
2857
|
exports.rustGenerationConfigSchema = rustGenerationConfigSchema;
|
|
2713
2858
|
exports.sdkConfigIrV1Schema = sdkConfigIrV1Schema;
|
|
@@ -2715,12 +2860,14 @@ exports.sdkConfigV1ApiConfigSchema = sdkConfigV1ApiConfigSchema;
|
|
|
2715
2860
|
exports.sdkConfigV1AuthConfigSchema = sdkConfigV1AuthConfigSchema;
|
|
2716
2861
|
exports.sdkConfigV1AuthSchemeSchema = sdkConfigV1AuthSchemeSchema;
|
|
2717
2862
|
exports.sdkConfigV1CliGenerationConfigSchema = cliGenerationConfigSchema;
|
|
2863
|
+
exports.sdkConfigV1ClientConfigOverrideSchema = sdkConfigV1ClientConfigOverrideSchema;
|
|
2718
2864
|
exports.sdkConfigV1ClientConfigSchema = sdkConfigV1ClientConfigSchema;
|
|
2719
2865
|
exports.sdkConfigV1ComposerPackageNameSchema = composerPackageNameSchema;
|
|
2720
2866
|
exports.sdkConfigV1CsharpGenerationConfigSchema = csharpGenerationConfigSchema;
|
|
2721
2867
|
exports.sdkConfigV1DependencySchema = sdkConfigV1DependencySchema;
|
|
2722
2868
|
exports.sdkConfigV1DocsConfigSchema = sdkConfigV1DocsConfigSchema;
|
|
2723
2869
|
exports.sdkConfigV1ExactSemverSchema = exactSemverSchema;
|
|
2870
|
+
exports.sdkConfigV1GenerationConfigOverrideSchema = sdkConfigV1GenerationConfigOverrideSchema;
|
|
2724
2871
|
exports.sdkConfigV1GenerationConfigSchema = sdkConfigV1GenerationConfigSchema;
|
|
2725
2872
|
exports.sdkConfigV1GoGenerationConfigSchema = goGenerationConfigSchema;
|
|
2726
2873
|
exports.sdkConfigV1GoModulePathSchema = goModulePathSchema;
|
|
@@ -2736,9 +2883,12 @@ exports.sdkConfigV1PublishRegistrySchema = sdkConfigV1PublishRegistrySchema;
|
|
|
2736
2883
|
exports.sdkConfigV1PythonGenerationConfigSchema = pythonGenerationConfigSchema;
|
|
2737
2884
|
exports.sdkConfigV1ReadmeCustomSectionSchema = sdkConfigV1ReadmeCustomSectionSchema;
|
|
2738
2885
|
exports.sdkConfigV1ReadmeEndpointSchema = sdkConfigV1ReadmeEndpointSchema;
|
|
2886
|
+
exports.sdkConfigV1RelativePathSchema = relativePathSchema;
|
|
2739
2887
|
exports.sdkConfigV1RubyGenerationConfigSchema = rubyGenerationConfigSchema;
|
|
2740
2888
|
exports.sdkConfigV1RustGenerationConfigSchema = rustGenerationConfigSchema;
|
|
2741
2889
|
exports.sdkConfigV1Schema = sdkConfigV1Schema;
|
|
2890
|
+
exports.sdkConfigV1SourceConfigSchema = sdkConfigV1SourceConfigSchema;
|
|
2891
|
+
exports.sdkConfigV1SourceSpecSchema = sdkConfigV1SourceSpecSchema;
|
|
2742
2892
|
exports.sdkConfigV1SwiftGenerationConfigSchema = swiftGenerationConfigSchema;
|
|
2743
2893
|
exports.sdkConfigV1TargetSchema = sdkConfigV1TargetSchema;
|
|
2744
2894
|
exports.sdkConfigV1TerraformGenerationConfigSchema = terraformGenerationConfigSchema;
|
|
@@ -2746,11 +2896,13 @@ exports.sdkConfigV1TypescriptGenerationConfigSchema = typescriptGenerationConfig
|
|
|
2746
2896
|
exports.sourceConfigSchema = sourceConfigSchema;
|
|
2747
2897
|
exports.sourceSpecConfigSchema = sourceSpecConfigSchema;
|
|
2748
2898
|
exports.sourceSpecTypeSchema = sourceSpecTypeSchema;
|
|
2899
|
+
exports.splitSdkConfigV1TargetGeneration = splitSdkConfigV1TargetGeneration;
|
|
2749
2900
|
exports.swiftGenerationConfigSchema = swiftGenerationConfigSchema;
|
|
2750
2901
|
exports.targetConfigSchema = targetConfigSchema;
|
|
2751
2902
|
exports.targetLanguageSchema = targetLanguageSchema;
|
|
2752
2903
|
exports.terraformGenerationConfigSchema = terraformGenerationConfigSchema;
|
|
2753
2904
|
exports.typescriptGenerationConfigSchema = typescriptGenerationConfigSchema;
|
|
2754
2905
|
exports.unsupportedFieldSchema = unsupportedFieldSchema;
|
|
2906
|
+
exports.validateSdkConfigV1 = validateSdkConfigV1;
|
|
2755
2907
|
//# sourceMappingURL=index.cjs.map
|
|
2756
2908
|
//# sourceMappingURL=index.cjs.map
|