@zimic/http 0.1.0-canary.11 → 0.1.0-canary.13

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 (44) hide show
  1. package/dist/{chunk-343XY3VF.js → chunk-2CRLX2VH.js} +36 -99
  2. package/dist/chunk-2CRLX2VH.js.map +1 -0
  3. package/dist/{chunk-6UNIPPBC.mjs → chunk-PRWTKZHR.mjs} +30 -97
  4. package/dist/chunk-PRWTKZHR.mjs.map +1 -0
  5. package/dist/cli.js +8 -8
  6. package/dist/cli.js.map +1 -1
  7. package/dist/cli.mjs +2 -2
  8. package/dist/cli.mjs.map +1 -1
  9. package/dist/index.d.ts +2 -18
  10. package/dist/index.js +7 -25
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +2 -24
  13. package/dist/index.mjs.map +1 -1
  14. package/dist/typegen.js +2 -2
  15. package/dist/typegen.mjs +1 -1
  16. package/package.json +6 -5
  17. package/src/formData/HttpFormData.ts +2 -2
  18. package/src/formData/types.ts +1 -1
  19. package/src/headers/HttpHeaders.ts +1 -1
  20. package/src/headers/types.ts +1 -1
  21. package/src/pathParams/types.ts +1 -1
  22. package/src/searchParams/HttpSearchParams.ts +1 -1
  23. package/src/searchParams/types.ts +1 -1
  24. package/src/typegen/openapi/generate.ts +1 -2
  25. package/src/typegen/openapi/transform/components.ts +2 -3
  26. package/src/typegen/openapi/transform/filters.ts +3 -3
  27. package/src/typegen/openapi/transform/io.ts +3 -5
  28. package/src/typegen/openapi/transform/methods.ts +2 -2
  29. package/src/typegen/openapi/transform/operations.ts +2 -3
  30. package/src/typegen/openapi/transform/paths.ts +2 -3
  31. package/src/types/requests.ts +2 -1
  32. package/src/types/schema.ts +1 -1
  33. package/src/utils/console.ts +1 -1
  34. package/src/utils/files.ts +4 -24
  35. package/src/utils/time.ts +1 -1
  36. package/dist/chunk-343XY3VF.js.map +0 -1
  37. package/dist/chunk-6UNIPPBC.mjs.map +0 -1
  38. package/src/types/arrays.d.ts +0 -4
  39. package/src/types/objects.d.ts +0 -14
  40. package/src/types/strings.d.ts +0 -9
  41. package/src/types/utils.ts +0 -40
  42. package/src/utils/data.ts +0 -13
  43. package/src/utils/imports.ts +0 -12
  44. package/src/utils/urls.ts +0 -52
@@ -1,20 +1,14 @@
1
+ import isDefined2 from '@zimic/utils/data/isDefined';
1
2
  import filesystem from 'fs/promises';
2
3
  import path from 'path';
3
4
  import ts3 from 'typescript';
4
5
  import chalk from 'chalk';
6
+ import isNonEmpty from '@zimic/utils/data/isNonEmpty';
7
+ import createRegExpFromWildcardPath from '@zimic/utils/url/createRegExpFromWildcardPath';
8
+ import createCachedDynamicImport from '@zimic/utils/import/createCachedDynamicImport';
5
9
 
6
10
  var __defProp = Object.defineProperty;
7
11
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
-
9
- // src/utils/data.ts
10
- function isDefined(value) {
11
- return value !== undefined && value !== null;
12
- }
13
- __name(isDefined, "isDefined");
14
- function isNonEmpty(value) {
15
- return isDefined(value) && value !== "";
16
- }
17
- __name(isNonEmpty, "isNonEmpty");
18
12
  function isNeverType(type) {
19
13
  return type.kind === ts3.SyntaxKind.NeverKeyword;
20
14
  }
@@ -50,7 +44,7 @@ __name(createImportDeclaration, "createImportDeclaration");
50
44
  var HTTP_METHODS = Object.freeze(["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]);
51
45
  function logWithPrefix(message, options) {
52
46
  const { method } = options;
53
- console[method](chalk.cyan("[zimic]"), message);
47
+ console[method](chalk.cyan("[@zimic/http]"), message);
54
48
  }
55
49
  __name(logWithPrefix, "logWithPrefix");
56
50
  function createOperationsIdentifierText(serviceName) {
@@ -94,7 +88,7 @@ function normalizeOperation(operation, context) {
94
88
  __name(normalizeOperation, "normalizeOperation");
95
89
  function normalizeOperations(operations, context) {
96
90
  const newIdentifier = createOperationsIdentifier(context.serviceName);
97
- const newMembers = operations.members.map((operation) => normalizeOperation(operation, context)).filter(isDefined);
91
+ const newMembers = operations.members.map((operation) => normalizeOperation(operation, context)).filter(isDefined2);
98
92
  return ts3.factory.updateInterfaceDeclaration(
99
93
  operations,
100
94
  operations.modifiers,
@@ -119,7 +113,7 @@ function removeOperationIfUnreferenced(operation, context) {
119
113
  }
120
114
  __name(removeOperationIfUnreferenced, "removeOperationIfUnreferenced");
121
115
  function removeUnreferencedOperations(operations, context) {
122
- const newMembers = operations.members.map((operation) => removeOperationIfUnreferenced(operation, context)).filter(isDefined);
116
+ const newMembers = operations.members.map((operation) => removeOperationIfUnreferenced(operation, context)).filter(isDefined2);
123
117
  context.referencedTypes.operations.clear();
124
118
  if (newMembers.length === 0) {
125
119
  return undefined;
@@ -311,16 +305,16 @@ function normalizeContentType(contentType, context, options) {
311
305
  if (!ts3.isTypeLiteralNode(contentType)) {
312
306
  return contentType;
313
307
  }
314
- const newHeader = contentType.members.map((member) => normalizeRequestHeaders(member, context)).find(isDefined);
308
+ const newHeader = contentType.members.map((member) => normalizeRequestHeaders(member, context)).find(isDefined2);
315
309
  const newBodyMembers = contentType.members.flatMap((body) => {
316
310
  if (isContentPropertySignature(body)) {
317
- return body.type.members.map((member) => normalizeRequestBodyMember(member, context, { questionToken: bodyQuestionToken })).filter(isDefined);
311
+ return body.type.members.map((member) => normalizeRequestBodyMember(member, context, { questionToken: bodyQuestionToken })).filter(isDefined2);
318
312
  }
319
313
  return [];
320
314
  });
321
315
  if (newBodyMembers.length <= 1) {
322
316
  const newBodyMemberPropertySignatures = newBodyMembers.map((bodyMember) => bodyMember.propertySignature);
323
- const newMembers = [newHeader, ...newBodyMemberPropertySignatures].filter(isDefined);
317
+ const newMembers = [newHeader, ...newBodyMemberPropertySignatures].filter(isDefined2);
324
318
  return ts3.factory.updateTypeLiteralNode(contentType, ts3.factory.createNodeArray(newMembers));
325
319
  } else {
326
320
  const bodyMemberUnionTypes = newBodyMembers.map((bodyMember) => {
@@ -425,7 +419,7 @@ function normalizeResponses(responses, context) {
425
419
  }
426
420
  const newIdentifier = ts3.factory.createIdentifier("response");
427
421
  const newQuestionToken = undefined;
428
- const newMembers = responses.type.members.map((response) => normalizeResponse(response, context), context).filter(isDefined);
422
+ const newMembers = responses.type.members.map((response) => normalizeResponse(response, context), context).filter(isDefined2);
429
423
  const sortedNewMembers = Array.from(newMembers).sort((response, otherResponse) => {
430
424
  return response.statusCode.value.localeCompare(otherResponse.statusCode.value);
431
425
  });
@@ -562,7 +556,7 @@ function mergeRequestHeadersMembers(members) {
562
556
  if (firstHeadersIndex !== undefined) {
563
557
  mergedHeadersMembers[firstHeadersIndex] = mergedHeaders;
564
558
  }
565
- return mergedHeadersMembers.filter(isDefined);
559
+ return mergedHeadersMembers.filter(isDefined2);
566
560
  }
567
561
  __name(mergeRequestHeadersMembers, "mergeRequestHeadersMembers");
568
562
  function mergeRequestAndParameterTypes(requestType, methodMembers, context) {
@@ -582,12 +576,12 @@ function mergeRequestAndParameterTypes(requestType, methodMembers, context) {
582
576
  __name(mergeRequestAndParameterTypes, "mergeRequestAndParameterTypes");
583
577
  function normalizeRequestTypeWithParameters(requestType, methodMembers, context) {
584
578
  if (ts3.isUnionTypeNode(requestType)) {
585
- const newTypes = requestType.types.map((type) => normalizeRequestTypeWithParameters(type, methodMembers, context)).filter(isDefined);
579
+ const newTypes = requestType.types.map((type) => normalizeRequestTypeWithParameters(type, methodMembers, context)).filter(isDefined2);
586
580
  return ts3.factory.updateUnionTypeNode(requestType, ts3.factory.createNodeArray(newTypes));
587
581
  }
588
582
  if (ts3.isIndexedAccessTypeNode(requestType)) {
589
583
  const newType = normalizeRequestTypeWithParameters(ts3.factory.createTypeLiteralNode([]), methodMembers, context);
590
- return ts3.factory.createIntersectionTypeNode([requestType, newType].filter(isDefined));
584
+ return ts3.factory.createIntersectionTypeNode([requestType, newType].filter(isDefined2));
591
585
  }
592
586
  return mergeRequestAndParameterTypes(requestType, methodMembers, context);
593
587
  }
@@ -616,7 +610,7 @@ function normalizeMethodMemberWithParameters(methodMember, methodMembers, contex
616
610
  }
617
611
  __name(normalizeMethodMemberWithParameters, "normalizeMethodMemberWithParameters");
618
612
  function normalizeTypeLiteralMethodType(methodType, context) {
619
- const newMembers = methodType.members.map((member) => normalizeMethodMember(member, context)).filter(isDefined).map((member, _index, partialMembers) => normalizeMethodMemberWithParameters(member, partialMembers, context)).filter(isDefined);
613
+ const newMembers = methodType.members.map((member) => normalizeMethodMember(member, context)).filter(isDefined2).map((member, _index, partialMembers) => normalizeMethodMemberWithParameters(member, partialMembers, context)).filter(isDefined2);
620
614
  return ts3.factory.updateTypeLiteralNode(methodType, ts3.factory.createNodeArray(newMembers));
621
615
  }
622
616
  __name(normalizeTypeLiteralMethodType, "normalizeTypeLiteralMethodType");
@@ -688,7 +682,7 @@ function normalizePath(path4, context, options = {}) {
688
682
  const newIdentifier = isComponent2 ? path4.name : ts3.factory.createStringLiteral(newPathName);
689
683
  let newType;
690
684
  if (ts3.isTypeLiteralNode(path4.type)) {
691
- const newMethods = path4.type.members.map((method) => normalizeMethod(method, context, { pathName: newPathName })).filter(isDefined);
685
+ const newMethods = path4.type.members.map((method) => normalizeMethod(method, context, { pathName: newPathName })).filter(isDefined2);
692
686
  if (newMethods.length === 0) {
693
687
  return undefined;
694
688
  }
@@ -714,7 +708,7 @@ __name(wrapPathsType, "wrapPathsType");
714
708
  function normalizePaths(pathsOrTypeAlias, context) {
715
709
  const newIdentifier = createPathsIdentifier(context.serviceName);
716
710
  const paths = ts3.isTypeAliasDeclaration(pathsOrTypeAlias) ? ts3.factory.createInterfaceDeclaration(pathsOrTypeAlias.modifiers, pathsOrTypeAlias.name, undefined, undefined, []) : pathsOrTypeAlias;
717
- const newMembers = paths.members.map((path4) => normalizePath(path4, context)).filter(isDefined);
711
+ const newMembers = paths.members.map((path4) => normalizePath(path4, context)).filter(isDefined2);
718
712
  const newType = ts3.factory.createTypeLiteralNode(newMembers);
719
713
  return ts3.factory.createTypeAliasDeclaration(
720
714
  paths.modifiers,
@@ -927,7 +921,7 @@ function normalizeComponentGroup(componentGroup, context) {
927
921
  }
928
922
  const componentGroupName = normalizeComponentGroupName(componentGroup.name.text);
929
923
  const newIdentifier = ts3.factory.createIdentifier(componentGroupName);
930
- const newComponents = componentGroup.type.members.map((component) => normalizeComponent(component, componentGroupName, context)).filter(isDefined);
924
+ const newComponents = componentGroup.type.members.map((component) => normalizeComponent(component, componentGroupName, context)).filter(isDefined2);
931
925
  const newType = ts3.factory.updateTypeLiteralNode(componentGroup.type, ts3.factory.createNodeArray(newComponents));
932
926
  return ts3.factory.updatePropertySignature(
933
927
  componentGroup,
@@ -940,7 +934,7 @@ function normalizeComponentGroup(componentGroup, context) {
940
934
  __name(normalizeComponentGroup, "normalizeComponentGroup");
941
935
  function normalizeComponents(components, context) {
942
936
  const newIdentifier = createComponentsIdentifier(context.serviceName);
943
- const newMembers = components.members.map((componentGroup) => normalizeComponentGroup(componentGroup, context)).filter(isDefined);
937
+ const newMembers = components.members.map((componentGroup) => normalizeComponentGroup(componentGroup, context)).filter(isDefined2);
944
938
  return ts3.factory.updateInterfaceDeclaration(
945
939
  components,
946
940
  components.modifiers,
@@ -1003,7 +997,7 @@ function removeUnreferencedComponentsInGroup(componentGroup, context) {
1003
997
  return undefined;
1004
998
  }
1005
999
  const componentGroupName = normalizeComponentGroupName(componentGroup.name.text);
1006
- const newComponents = componentGroup.type.members.map((component) => removeComponentIfUnreferenced(component, componentGroupName, context)).filter(isDefined);
1000
+ const newComponents = componentGroup.type.members.map((component) => removeComponentIfUnreferenced(component, componentGroupName, context)).filter(isDefined2);
1007
1001
  if (newComponents.length === 0) {
1008
1002
  return undefined;
1009
1003
  }
@@ -1017,7 +1011,7 @@ function removeUnreferencedComponentsInGroup(componentGroup, context) {
1017
1011
  }
1018
1012
  __name(removeUnreferencedComponentsInGroup, "removeUnreferencedComponentsInGroup");
1019
1013
  function removeUnreferencedComponents(components, context) {
1020
- const newComponentGroups = components.members.map((componentGroup) => removeUnreferencedComponentsInGroup(componentGroup, context)).filter(isDefined);
1014
+ const newComponentGroups = components.members.map((componentGroup) => removeUnreferencedComponentsInGroup(componentGroup, context)).filter(isDefined2);
1021
1015
  context.referencedTypes.components.clear();
1022
1016
  if (newComponentGroups.length === 0) {
1023
1017
  return undefined;
@@ -1038,53 +1032,6 @@ function convertToPascalCase(value) {
1038
1032
  return value.replace(/(?:^|[^A-Za-z\d])([A-Za-z\d])/g, (_match, letter) => letter.toUpperCase());
1039
1033
  }
1040
1034
  __name(convertToPascalCase, "convertToPascalCase");
1041
-
1042
- // src/utils/urls.ts
1043
- var InvalidURLError = class extends TypeError {
1044
- static {
1045
- __name(this, "InvalidURLError");
1046
- }
1047
- constructor(url) {
1048
- super(`Invalid URL: '${url}'`);
1049
- this.name = "InvalidURL";
1050
- }
1051
- };
1052
- function createURLOrThrow(rawURL) {
1053
- try {
1054
- const url = new URL(rawURL);
1055
- Object.defineProperty(url, "raw", {
1056
- value: rawURL.toString(),
1057
- writable: false,
1058
- enumerable: true,
1059
- configurable: false
1060
- });
1061
- return url;
1062
- } catch {
1063
- throw new InvalidURLError(rawURL);
1064
- }
1065
- }
1066
- __name(createURLOrThrow, "createURLOrThrow");
1067
- function createURL(rawURL) {
1068
- const url = createURLOrThrow(rawURL);
1069
- return url;
1070
- }
1071
- __name(createURL, "createURL");
1072
- function createFileURL(filePath) {
1073
- return createURL(`file://${filePath}`);
1074
- }
1075
- __name(createFileURL, "createFileURL");
1076
- function prepareURLForRegex(url) {
1077
- const encodedURL = encodeURI(url);
1078
- return encodedURL.replace(/([.()*?+$\\])/g, "\\$1");
1079
- }
1080
- __name(prepareURLForRegex, "prepareURLForRegex");
1081
- function createRegexFromWildcardPath(path4, options) {
1082
- const pathWithReplacedWildcards = prepareURLForRegex(path4).replace(/^\/+|\/+$/g, "").replace(/\\\*/g, "*").replace(/\*\*\/\*/g, "**").replace(/(^|[^*])\*([^*]|$)/g, "$1[^/]*$2").replace(/\*\*/g, ".*");
1083
- return new RegExp(`^${options.prefix}/*${pathWithReplacedWildcards}/*$`);
1084
- }
1085
- __name(createRegexFromWildcardPath, "createRegexFromWildcardPath");
1086
-
1087
- // src/typegen/openapi/transform/filters.ts
1088
1035
  var HTTP_METHOD_OPTIONS = HTTP_METHODS.join("|");
1089
1036
  var MODIFIER_GROUP = "(?<modifier>!?)";
1090
1037
  var METHOD_FILTER_GROUP = `(?<method>(?:\\*|(?:${HTTP_METHOD_OPTIONS})(?:,\\s*(?:${HTTP_METHOD_OPTIONS}))*))`;
@@ -1103,7 +1050,7 @@ function parseRawFilter(rawFilter) {
1103
1050
  const methodFilterGroup = `(?:${filteredMethodsOrWildcard.toUpperCase().replace(/,/g, "|").replace(/\*/g, ".*")}) `;
1104
1051
  const isNegativeMatch = filterModifier === "!";
1105
1052
  return {
1106
- expression: createRegexFromWildcardPath(filteredPath, { prefix: methodFilterGroup }),
1053
+ expression: createRegExpFromWildcardPath(filteredPath, { prefix: methodFilterGroup }),
1107
1054
  isNegativeMatch
1108
1055
  };
1109
1056
  }
@@ -1170,20 +1117,6 @@ function createImportDeclarations(context) {
1170
1117
  return [httpImportDeclaration];
1171
1118
  }
1172
1119
  __name(createImportDeclarations, "createImportDeclarations");
1173
-
1174
- // src/utils/imports.ts
1175
- function createCachedDynamicImport(importModuleDynamically) {
1176
- let cachedImportResult;
1177
- return /* @__PURE__ */ __name(async function importModuleDynamicallyWithCache() {
1178
- if (cachedImportResult === undefined) {
1179
- cachedImportResult = await importModuleDynamically();
1180
- }
1181
- return cachedImportResult;
1182
- }, "importModuleDynamicallyWithCache");
1183
- }
1184
- __name(createCachedDynamicImport, "createCachedDynamicImport");
1185
-
1186
- // src/typegen/openapi/transform/io.ts
1187
1120
  var importOpenapiTypeScript = createCachedDynamicImport(() => import('openapi-typescript'));
1188
1121
  function transformSchemaObject(schemaObject) {
1189
1122
  if (schemaObject.format === "binary") {
@@ -1198,9 +1131,9 @@ function transformSchemaObject(schemaObject) {
1198
1131
  __name(transformSchemaObject, "transformSchemaObject");
1199
1132
  function convertFilePathOrURLToURL(filePathOrURL) {
1200
1133
  try {
1201
- return createURL(filePathOrURL);
1134
+ return new URL(filePathOrURL);
1202
1135
  } catch {
1203
- return createFileURL(path.resolve(filePathOrURL));
1136
+ return new URL(`file://${path.resolve(filePathOrURL)}`);
1204
1137
  }
1205
1138
  }
1206
1139
  __name(convertFilePathOrURLToURL, "convertFilePathOrURLToURL");
@@ -1264,18 +1197,18 @@ __name(removeUnknownResources, "removeUnknownResources");
1264
1197
  function normalizeRawNodes(rawNodes, context, options) {
1265
1198
  let normalizedNodes = rawNodes.map((node) => isPathsDeclaration(node) ? normalizePaths(node, context) : node);
1266
1199
  if (options.prune) {
1267
- normalizedNodes = normalizedNodes.map((node) => isOperationsDeclaration(node) ? removeUnreferencedOperations(node, context) : node).filter(isDefined);
1200
+ normalizedNodes = normalizedNodes.map((node) => isOperationsDeclaration(node) ? removeUnreferencedOperations(node, context) : node).filter(isDefined2);
1268
1201
  }
1269
- normalizedNodes = normalizedNodes.map((node) => isOperationsDeclaration(node) ? normalizeOperations(node, context) : node).filter(isDefined);
1202
+ normalizedNodes = normalizedNodes.map((node) => isOperationsDeclaration(node) ? normalizeOperations(node, context) : node).filter(isDefined2);
1270
1203
  if (options.prune) {
1271
1204
  for (const node of normalizedNodes) {
1272
1205
  if (isComponentsDeclaration(node, context)) {
1273
1206
  populateReferencedComponents(node, context);
1274
1207
  }
1275
1208
  }
1276
- normalizedNodes = normalizedNodes.map((node) => isComponentsDeclaration(node, context) ? removeUnreferencedComponents(node, context) : node).filter(isDefined);
1209
+ normalizedNodes = normalizedNodes.map((node) => isComponentsDeclaration(node, context) ? removeUnreferencedComponents(node, context) : node).filter(isDefined2);
1277
1210
  }
1278
- normalizedNodes = normalizedNodes.map((node) => isComponentsDeclaration(node, context) ? normalizeComponents(node, context) : node).map(removeUnknownResources).filter(isDefined);
1211
+ normalizedNodes = normalizedNodes.map((node) => isComponentsDeclaration(node, context) ? normalizeComponents(node, context) : node).map(removeUnknownResources).filter(isDefined2);
1279
1212
  return normalizedNodes;
1280
1213
  }
1281
1214
  __name(normalizeRawNodes, "normalizeRawNodes");
@@ -1367,5 +1300,5 @@ var typegen = Object.freeze(new TypegenNamespace_default());
1367
1300
  * The root import module is defined at build time. The fallback is not expected to be used. */
1368
1301
 
1369
1302
  export { __name, logWithPrefix, typegen };
1370
- //# sourceMappingURL=chunk-6UNIPPBC.mjs.map
1371
- //# sourceMappingURL=chunk-6UNIPPBC.mjs.map
1303
+ //# sourceMappingURL=chunk-PRWTKZHR.mjs.map
1304
+ //# sourceMappingURL=chunk-PRWTKZHR.mjs.map