@contractspec/lib.contracts-transformers 1.57.0 → 1.59.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/dist/browser/common/index.js +86 -0
- package/dist/browser/index.js +2414 -0
- package/dist/browser/openapi/index.js +2404 -0
- package/dist/common/index.d.ts +6 -3
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +87 -3
- package/dist/common/types.d.ts +119 -120
- package/dist/common/types.d.ts.map +1 -1
- package/dist/common/utils.d.ts +11 -14
- package/dist/common/utils.d.ts.map +1 -1
- package/dist/index.d.ts +18 -18
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2415 -18
- package/dist/node/common/index.js +86 -0
- package/dist/node/index.js +2414 -0
- package/dist/node/openapi/index.js +2404 -0
- package/dist/openapi/differ.d.ts +21 -21
- package/dist/openapi/differ.d.ts.map +1 -1
- package/dist/openapi/exporter/data-views.d.ts +24 -25
- package/dist/openapi/exporter/data-views.d.ts.map +1 -1
- package/dist/openapi/exporter/events.d.ts +15 -15
- package/dist/openapi/exporter/events.d.ts.map +1 -1
- package/dist/openapi/exporter/features.d.ts +23 -24
- package/dist/openapi/exporter/features.d.ts.map +1 -1
- package/dist/openapi/exporter/forms.d.ts +17 -17
- package/dist/openapi/exporter/forms.d.ts.map +1 -1
- package/dist/openapi/exporter/index.d.ts +12 -0
- package/dist/openapi/exporter/index.d.ts.map +1 -0
- package/dist/openapi/exporter/operations.d.ts +29 -29
- package/dist/openapi/exporter/operations.d.ts.map +1 -1
- package/dist/openapi/exporter/presentations.d.ts +16 -17
- package/dist/openapi/exporter/presentations.d.ts.map +1 -1
- package/dist/openapi/exporter/registries.d.ts +13 -14
- package/dist/openapi/exporter/registries.d.ts.map +1 -1
- package/dist/openapi/exporter/workflows.d.ts +23 -24
- package/dist/openapi/exporter/workflows.d.ts.map +1 -1
- package/dist/openapi/exporter.d.ts +24 -23
- package/dist/openapi/exporter.d.ts.map +1 -1
- package/dist/openapi/exporter.test.d.ts +2 -0
- package/dist/openapi/exporter.test.d.ts.map +1 -0
- package/dist/openapi/importer/analyzer.d.ts +14 -0
- package/dist/openapi/importer/analyzer.d.ts.map +1 -0
- package/dist/openapi/importer/events.d.ts +7 -0
- package/dist/openapi/importer/events.d.ts.map +1 -0
- package/dist/openapi/importer/generator.d.ts +8 -0
- package/dist/openapi/importer/generator.d.ts.map +1 -0
- package/dist/openapi/importer/grouping.d.ts +27 -0
- package/dist/openapi/importer/grouping.d.ts.map +1 -0
- package/dist/openapi/importer/index.d.ts +11 -9
- package/dist/openapi/importer/index.d.ts.map +1 -1
- package/dist/openapi/importer/models.d.ts +7 -0
- package/dist/openapi/importer/models.d.ts.map +1 -0
- package/dist/openapi/importer/schemas.d.ts +15 -0
- package/dist/openapi/importer/schemas.d.ts.map +1 -0
- package/dist/openapi/importer.d.ts +6 -0
- package/dist/openapi/importer.d.ts.map +1 -0
- package/dist/openapi/index.d.ts +12 -16
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +2405 -18
- package/dist/openapi/parser/document.d.ts +5 -9
- package/dist/openapi/parser/document.d.ts.map +1 -1
- package/dist/openapi/parser/index.d.ts +6 -0
- package/dist/openapi/parser/index.d.ts.map +1 -0
- package/dist/openapi/parser/operation.d.ts +7 -0
- package/dist/openapi/parser/operation.d.ts.map +1 -0
- package/dist/openapi/parser/parameters.d.ts +11 -0
- package/dist/openapi/parser/parameters.d.ts.map +1 -0
- package/dist/openapi/parser/resolvers.d.ts +21 -0
- package/dist/openapi/parser/resolvers.d.ts.map +1 -0
- package/dist/openapi/parser/utils.d.ts +9 -8
- package/dist/openapi/parser/utils.d.ts.map +1 -1
- package/dist/openapi/parser.d.ts +6 -0
- package/dist/openapi/parser.d.ts.map +1 -0
- package/dist/openapi/schema-converter.d.ts +45 -45
- package/dist/openapi/schema-converter.d.ts.map +1 -1
- package/dist/openapi/schema-generators/index.d.ts +115 -0
- package/dist/openapi/schema-generators/index.d.ts.map +1 -0
- package/dist/openapi/schema-generators.test.d.ts +2 -0
- package/dist/openapi/schema-generators.test.d.ts.map +1 -0
- package/dist/openapi/types.d.ts +198 -198
- package/dist/openapi/types.d.ts.map +1 -1
- package/package.json +53 -20
- package/dist/common/utils.js +0 -103
- package/dist/common/utils.js.map +0 -1
- package/dist/openapi/differ.js +0 -222
- package/dist/openapi/differ.js.map +0 -1
- package/dist/openapi/exporter/data-views.js +0 -47
- package/dist/openapi/exporter/data-views.js.map +0 -1
- package/dist/openapi/exporter/events.js +0 -39
- package/dist/openapi/exporter/events.js.map +0 -1
- package/dist/openapi/exporter/features.js +0 -46
- package/dist/openapi/exporter/features.js.map +0 -1
- package/dist/openapi/exporter/forms.js +0 -49
- package/dist/openapi/exporter/forms.js.map +0 -1
- package/dist/openapi/exporter/index.js +0 -8
- package/dist/openapi/exporter/operations.js +0 -143
- package/dist/openapi/exporter/operations.js.map +0 -1
- package/dist/openapi/exporter/presentations.js +0 -60
- package/dist/openapi/exporter/presentations.js.map +0 -1
- package/dist/openapi/exporter/registries.js +0 -29
- package/dist/openapi/exporter/registries.js.map +0 -1
- package/dist/openapi/exporter/workflows.js +0 -54
- package/dist/openapi/exporter/workflows.js.map +0 -1
- package/dist/openapi/exporter.js +0 -122
- package/dist/openapi/exporter.js.map +0 -1
- package/dist/openapi/importer/analyzer.js +0 -28
- package/dist/openapi/importer/analyzer.js.map +0 -1
- package/dist/openapi/importer/events.js +0 -40
- package/dist/openapi/importer/events.js.map +0 -1
- package/dist/openapi/importer/generator.js +0 -105
- package/dist/openapi/importer/generator.js.map +0 -1
- package/dist/openapi/importer/grouping.js +0 -72
- package/dist/openapi/importer/grouping.js.map +0 -1
- package/dist/openapi/importer/index.js +0 -175
- package/dist/openapi/importer/index.js.map +0 -1
- package/dist/openapi/importer/models.js +0 -22
- package/dist/openapi/importer/models.js.map +0 -1
- package/dist/openapi/importer/schemas.js +0 -60
- package/dist/openapi/importer/schemas.js.map +0 -1
- package/dist/openapi/parser/document.js +0 -95
- package/dist/openapi/parser/document.js.map +0 -1
- package/dist/openapi/parser/index.js +0 -5
- package/dist/openapi/parser/operation.js +0 -59
- package/dist/openapi/parser/operation.js.map +0 -1
- package/dist/openapi/parser/parameters.js +0 -37
- package/dist/openapi/parser/parameters.js.map +0 -1
- package/dist/openapi/parser/resolvers.js +0 -63
- package/dist/openapi/parser/resolvers.js.map +0 -1
- package/dist/openapi/parser/utils.js +0 -48
- package/dist/openapi/parser/utils.js.map +0 -1
- package/dist/openapi/parser.js +0 -6
- package/dist/openapi/schema-converter.js +0 -161
- package/dist/openapi/schema-converter.js.map +0 -1
- package/dist/openapi/schema-generators/index.js +0 -461
- package/dist/openapi/schema-generators/index.js.map +0 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// src/common/utils.ts
|
|
2
|
+
function toPascalCase(str) {
|
|
3
|
+
return str.replace(/[-_./\s]+(.)?/g, (_, c) => c ? c.toUpperCase() : "").replace(/^./, (c) => c.toUpperCase());
|
|
4
|
+
}
|
|
5
|
+
function toCamelCase(str) {
|
|
6
|
+
const pascal = toPascalCase(str);
|
|
7
|
+
return pascal.charAt(0).toLowerCase() + pascal.slice(1);
|
|
8
|
+
}
|
|
9
|
+
function toKebabCase(str) {
|
|
10
|
+
return str.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[\s_./]+/g, "-").toLowerCase();
|
|
11
|
+
}
|
|
12
|
+
function toSnakeCase(str) {
|
|
13
|
+
return str.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/[\s\-./]+/g, "_").toLowerCase();
|
|
14
|
+
}
|
|
15
|
+
function toValidIdentifier(str) {
|
|
16
|
+
let result = str.replace(/[^a-zA-Z0-9_$]/g, "_");
|
|
17
|
+
if (/^[0-9]/.test(result)) {
|
|
18
|
+
result = "_" + result;
|
|
19
|
+
}
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
function toSpecKey(operationId, prefix) {
|
|
23
|
+
const key = toCamelCase(operationId);
|
|
24
|
+
return prefix ? `${prefix}.${key}` : key;
|
|
25
|
+
}
|
|
26
|
+
function toFileName(specName) {
|
|
27
|
+
return toKebabCase(specName.replace(/\./g, "-")) + ".ts";
|
|
28
|
+
}
|
|
29
|
+
function deepEqual(a, b) {
|
|
30
|
+
if (a === b)
|
|
31
|
+
return true;
|
|
32
|
+
if (a === null || b === null)
|
|
33
|
+
return false;
|
|
34
|
+
if (typeof a !== typeof b)
|
|
35
|
+
return false;
|
|
36
|
+
if (typeof a === "object") {
|
|
37
|
+
const aObj = a;
|
|
38
|
+
const bObj = b;
|
|
39
|
+
const aKeys = Object.keys(aObj);
|
|
40
|
+
const bKeys = Object.keys(bObj);
|
|
41
|
+
if (aKeys.length !== bKeys.length)
|
|
42
|
+
return false;
|
|
43
|
+
for (const key of aKeys) {
|
|
44
|
+
if (!bKeys.includes(key))
|
|
45
|
+
return false;
|
|
46
|
+
if (!deepEqual(aObj[key], bObj[key]))
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
function getByPath(obj, path) {
|
|
54
|
+
const parts = path.split(".").filter(Boolean);
|
|
55
|
+
let current = obj;
|
|
56
|
+
for (const part of parts) {
|
|
57
|
+
if (current === null || current === undefined)
|
|
58
|
+
return;
|
|
59
|
+
if (typeof current !== "object")
|
|
60
|
+
return;
|
|
61
|
+
current = current[part];
|
|
62
|
+
}
|
|
63
|
+
return current;
|
|
64
|
+
}
|
|
65
|
+
function extractPathParams(path) {
|
|
66
|
+
const matches = path.match(/\{([^}]+)\}/g) || [];
|
|
67
|
+
return matches.map((m) => m.slice(1, -1));
|
|
68
|
+
}
|
|
69
|
+
function normalizePath(path) {
|
|
70
|
+
let normalized = path.replace(/^\/+|\/+$/g, "");
|
|
71
|
+
normalized = normalized.replace(/\/+/g, "/");
|
|
72
|
+
return "/" + normalized;
|
|
73
|
+
}
|
|
74
|
+
export {
|
|
75
|
+
toValidIdentifier,
|
|
76
|
+
toSpecKey,
|
|
77
|
+
toSnakeCase,
|
|
78
|
+
toPascalCase,
|
|
79
|
+
toKebabCase,
|
|
80
|
+
toFileName,
|
|
81
|
+
toCamelCase,
|
|
82
|
+
normalizePath,
|
|
83
|
+
getByPath,
|
|
84
|
+
extractPathParams,
|
|
85
|
+
deepEqual
|
|
86
|
+
};
|