@ama-openapi/core 0.0.0-placeholder → 0.0.0-placeholder.10
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/package.json +11 -10
- package/renovate/default.json +10 -0
- package/schemas/manifest.schema.json +8 -41
- package/schemas/transform.schema.json +45 -0
- package/src/constants.d.mts +8 -4
- package/src/constants.d.mts.map +1 -1
- package/src/constants.mjs +11 -5
- package/src/constants.mjs.map +1 -1
- package/src/context.d.mts +11 -0
- package/src/context.d.mts.map +1 -0
- package/src/context.mjs +2 -0
- package/src/context.mjs.map +1 -0
- package/src/core/file-system/cleaner.d.mts +3 -2
- package/src/core/file-system/cleaner.d.mts.map +1 -1
- package/src/core/file-system/cleaner.mjs +6 -3
- package/src/core/file-system/cleaner.mjs.map +1 -1
- package/src/core/file-system/parse-file.d.mts +2 -2
- package/src/core/file-system/parse-file.mjs +2 -2
- package/src/core/file-system/relative-path.d.mts +6 -0
- package/src/core/file-system/relative-path.d.mts.map +1 -0
- package/src/core/file-system/relative-path.mjs +9 -0
- package/src/core/file-system/relative-path.mjs.map +1 -0
- package/src/core/file-system/write-model.d.mts +3 -1
- package/src/core/file-system/write-model.d.mts.map +1 -1
- package/src/core/file-system/write-model.mjs +13 -4
- package/src/core/file-system/write-model.mjs.map +1 -1
- package/src/core/manifest/extract-dependency-models.d.mts +17 -9
- package/src/core/manifest/extract-dependency-models.d.mts.map +1 -1
- package/src/core/manifest/extract-dependency-models.mjs +45 -38
- package/src/core/manifest/extract-dependency-models.mjs.map +1 -1
- package/src/core/manifest/manifest.d.mts +3 -4
- package/src/core/manifest/manifest.d.mts.map +1 -1
- package/src/core/manifest/manifest.mjs +15 -16
- package/src/core/manifest/manifest.mjs.map +1 -1
- package/src/core/process.d.mts +9 -0
- package/src/core/process.d.mts.map +1 -0
- package/src/core/process.mjs +30 -0
- package/src/core/process.mjs.map +1 -0
- package/src/core/serialization.mjs +3 -3
- package/src/core/serialization.mjs.map +1 -1
- package/src/core/transforms/add-annotation.d.mts +4 -3
- package/src/core/transforms/add-annotation.d.mts.map +1 -1
- package/src/core/transforms/add-annotation.mjs +4 -2
- package/src/core/transforms/add-annotation.mjs.map +1 -1
- package/src/core/transforms/apply-mask.d.mts +5 -4
- package/src/core/transforms/apply-mask.d.mts.map +1 -1
- package/src/core/transforms/apply-mask.mjs +139 -39
- package/src/core/transforms/apply-mask.mjs.map +1 -1
- package/src/core/transforms/rename.d.mts +6 -3
- package/src/core/transforms/rename.d.mts.map +1 -1
- package/src/core/transforms/rename.mjs +6 -4
- package/src/core/transforms/rename.mjs.map +1 -1
- package/src/core/transforms/to-reference.d.mts +6 -3
- package/src/core/transforms/to-reference.d.mts.map +1 -1
- package/src/core/transforms/to-reference.mjs +9 -5
- package/src/core/transforms/to-reference.mjs.map +1 -1
- package/src/core/transforms/transform.d.mts +6 -2
- package/src/core/transforms/transform.d.mts.map +1 -1
- package/src/core/transforms/update-references.d.mts +4 -8
- package/src/core/transforms/update-references.d.mts.map +1 -1
- package/src/core/transforms/update-references.mjs +34 -16
- package/src/core/transforms/update-references.mjs.map +1 -1
- package/src/main.d.mts.map +1 -1
- package/src/main.mjs +9 -25
- package/src/main.mjs.map +1 -1
|
@@ -1,57 +1,157 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { existsSync, promises as fs, } from 'node:fs';
|
|
2
|
+
import { basename, dirname, posix, relative, resolve, sep, } from 'node:path';
|
|
3
|
+
import { GENERATED_REF_PROPERTY_KEY, SUB_MASK_DIRECTORY, } from '../../constants.mjs';
|
|
4
|
+
import { isRelativePath, } from '../file-system/relative-path.mjs';
|
|
5
|
+
import { extractDependencyModelsObject, } from '../manifest/extract-dependency-models.mjs';
|
|
4
6
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @param
|
|
7
|
-
* @param
|
|
7
|
+
* Determine the sub-mask file name for a given $ref and parent keys
|
|
8
|
+
* @param ref
|
|
9
|
+
* @param parents
|
|
8
10
|
*/
|
|
9
|
-
const
|
|
10
|
-
return Object.fromEntries(Object.entries(modelProperties)
|
|
11
|
-
.filter(([key]) => !!maskProperties && key in maskProperties && maskProperties[key] !== false)
|
|
12
|
-
.map(([key, value]) => typeof maskProperties[key] === 'object' ? [key, maskModelProperties(value, maskProperties[key])] : [key, value]));
|
|
13
|
-
};
|
|
11
|
+
const determineSubMaskFileName = (ref, parents) => `${parents.map((parent) => parent.charAt(0)?.toLocaleUpperCase() + parent.substring(1)).join('')}_${basename(ref)}`;
|
|
14
12
|
/**
|
|
15
|
-
*
|
|
16
|
-
* @param
|
|
17
|
-
* @param mask
|
|
13
|
+
* Determine the sub-mask path for a given retrieved model and mask file name
|
|
14
|
+
* @param retrievedModel
|
|
18
15
|
*/
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
const determineSubMaskPath = (retrievedModel) => {
|
|
17
|
+
return resolve(dirname(retrievedModel.outputFilePath), SUB_MASK_DIRECTORY, basename(retrievedModel.outputFilePath).replace(/\.[^.]+$/, ''));
|
|
18
|
+
};
|
|
19
|
+
const splitArtifactModelPaths = async (modelPath, context) => {
|
|
20
|
+
const { logger } = context;
|
|
21
|
+
let projectRoot = modelPath;
|
|
22
|
+
let artifactName = '';
|
|
23
|
+
while (!artifactName && projectRoot !== dirname(projectRoot)) {
|
|
24
|
+
projectRoot = dirname(projectRoot);
|
|
25
|
+
const packageJsonPath = resolve(projectRoot, 'package.json');
|
|
26
|
+
if (existsSync(packageJsonPath)) {
|
|
27
|
+
artifactName = JSON.parse(await fs.readFile(packageJsonPath, { encoding: 'utf8' })).name;
|
|
28
|
+
logger?.debug?.(`Found artifact named ${artifactName} for ${modelPath} sub reference`);
|
|
29
|
+
}
|
|
26
30
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
return {
|
|
32
|
+
artifactName,
|
|
33
|
+
path: relative(projectRoot, modelPath)
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Create the function to apply mask to a given model
|
|
38
|
+
* @param retrievedModel
|
|
39
|
+
* @param context
|
|
40
|
+
*/
|
|
41
|
+
const createMaskApplier = (retrievedModel, context) => {
|
|
42
|
+
const { logger } = context;
|
|
43
|
+
/**
|
|
44
|
+
* Handle a $ref in the specification during mask application when the mask needs to be applied to the referenced model
|
|
45
|
+
* @param node
|
|
46
|
+
* @param mask
|
|
47
|
+
* @param parents
|
|
48
|
+
*/
|
|
49
|
+
const handleReference = async (node, mask, parents) => {
|
|
50
|
+
if (!isRelativePath(node.$ref)) {
|
|
51
|
+
logger?.debug?.(`Skipping $ref "${node.$ref}" from mask application as it is not a relative path`);
|
|
52
|
+
return node;
|
|
53
|
+
}
|
|
54
|
+
if (node.$ref.startsWith('#')) {
|
|
55
|
+
logger?.debug?.(`Skipping $ref "${node.$ref}" from mask application as it is local reference`);
|
|
56
|
+
return node;
|
|
57
|
+
}
|
|
58
|
+
const modelPath = resolve(dirname(retrievedModel.modelPath), node.$ref);
|
|
59
|
+
const maskFileName = determineSubMaskFileName(node.$ref, parents);
|
|
60
|
+
const outputFileDirectory = determineSubMaskPath(retrievedModel);
|
|
61
|
+
const transform = {
|
|
62
|
+
fileRename: maskFileName,
|
|
63
|
+
mask
|
|
64
|
+
};
|
|
65
|
+
const { artifactName, path } = await splitArtifactModelPaths(modelPath, context);
|
|
66
|
+
const model = {
|
|
67
|
+
path,
|
|
68
|
+
transform
|
|
69
|
+
};
|
|
70
|
+
const extractedModel = await extractDependencyModelsObject(artifactName, model, Promise.resolve(transform), context, outputFileDirectory);
|
|
71
|
+
const { processModel } = await import('../process.mjs');
|
|
72
|
+
await Promise.all(processModel([Promise.resolve(extractedModel)], context));
|
|
73
|
+
return {
|
|
74
|
+
...node,
|
|
75
|
+
$ref: relative(dirname(retrievedModel.outputFilePath), extractedModel.outputFilePath).replaceAll(sep, posix.sep),
|
|
76
|
+
[GENERATED_REF_PROPERTY_KEY]: true
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Apply the property field mask to the specification
|
|
81
|
+
* @param node
|
|
82
|
+
* @param mask
|
|
83
|
+
* @param parents
|
|
84
|
+
*/
|
|
85
|
+
const applyPropertyFieldMask = async (node, mask, parents) => {
|
|
86
|
+
if (node === null || node === undefined) {
|
|
87
|
+
return node;
|
|
88
|
+
}
|
|
89
|
+
if (typeof mask !== 'object') {
|
|
90
|
+
return node;
|
|
91
|
+
}
|
|
92
|
+
if (typeof node !== 'object') {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
return Object.fromEntries(await Promise.all(Object.entries(mask)
|
|
96
|
+
.filter(([key]) => key in node)
|
|
97
|
+
.map(async ([key, subMask]) => ([key, await applySubMask(node[key], subMask, [...parents, key])]))));
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Recursively apply the sub-mask to the specification
|
|
101
|
+
* @param node
|
|
102
|
+
* @param mask
|
|
103
|
+
* @param parents
|
|
104
|
+
*/
|
|
105
|
+
const applySubMask = async (node, mask, parents) => {
|
|
106
|
+
if (node === null || node === undefined) {
|
|
107
|
+
return node;
|
|
108
|
+
}
|
|
109
|
+
if (typeof node !== 'object') {
|
|
110
|
+
return typeof mask === 'object' ? node : mask;
|
|
111
|
+
}
|
|
112
|
+
else if (Array.isArray(node)) {
|
|
113
|
+
if (Array.isArray(mask)) {
|
|
114
|
+
return (await Promise.all(node
|
|
115
|
+
.map((item, index) => applySubMask(item, mask[index] ?? {}, parents)))).filter((item) => item !== undefined);
|
|
37
116
|
}
|
|
38
|
-
|
|
39
|
-
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
if ('$ref' in node && typeof node.$ref === 'string' && mask && typeof mask === 'object' && 'properties' in mask) {
|
|
120
|
+
return handleReference(node, mask, parents);
|
|
40
121
|
}
|
|
122
|
+
return typeof mask === 'object'
|
|
123
|
+
? {
|
|
124
|
+
...node,
|
|
125
|
+
...Object.fromEntries(await Promise.all(Object.entries(mask)
|
|
126
|
+
.filter(([key]) => key in node)
|
|
127
|
+
.map(async ([key, subMask]) => {
|
|
128
|
+
const newParents = [...parents, key];
|
|
129
|
+
return [
|
|
130
|
+
key,
|
|
131
|
+
key === 'properties'
|
|
132
|
+
? await applyPropertyFieldMask(node[key], subMask, parents)
|
|
133
|
+
: await applySubMask(node[key], subMask, newParents)
|
|
134
|
+
];
|
|
135
|
+
})))
|
|
136
|
+
}
|
|
137
|
+
: (mask ? node : undefined);
|
|
41
138
|
}
|
|
42
|
-
}
|
|
43
|
-
return
|
|
139
|
+
};
|
|
140
|
+
return applySubMask;
|
|
44
141
|
};
|
|
45
142
|
/**
|
|
46
143
|
* Apply the mask to the model
|
|
47
144
|
* @param specification
|
|
48
145
|
* @param retrievedModel
|
|
49
|
-
* @param
|
|
146
|
+
* @param context
|
|
50
147
|
*/
|
|
51
|
-
export const applyMask = (specification, retrievedModel,
|
|
52
|
-
|
|
148
|
+
export const applyMask = (specification, retrievedModel, context) => {
|
|
149
|
+
const { logger } = context;
|
|
150
|
+
if (!retrievedModel.transform || !retrievedModel.transform.mask) {
|
|
151
|
+
logger?.debug?.(`No mask found for model from ${retrievedModel.artifactName} at ${retrievedModel.model.path}, skipping mask application`);
|
|
53
152
|
return specification;
|
|
54
153
|
}
|
|
55
|
-
|
|
154
|
+
const maskApplier = createMaskApplier(retrievedModel, context);
|
|
155
|
+
return maskApplier(specification, retrievedModel.transform.mask, []);
|
|
56
156
|
};
|
|
57
157
|
//# sourceMappingURL=apply-mask.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-mask.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/apply-mask.mts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"apply-mask.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/apply-mask.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,QAAQ,IAAI,EAAE,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,QAAQ,EACR,OAAO,EACP,KAAK,EACL,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,cAAc,GACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,GAE9B,MAAM,2CAA2C,CAAC;AAUnD;;;;GAIG;AACH,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAE,OAAiB,EAAU,EAAE,CAC1E,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;AAEtH;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC,cAAwC,EAAU,EAAE;IAChF,OAAO,OAAO,CACZ,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,EACtC,kBAAkB,EAClB,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAChE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,KAAK,EAAE,SAAiB,EAAE,OAAgB,EAAmD,EAAE;IAC7H,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,IAAI,WAAW,GAAG,SAAS,CAAC;IAC5B,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,OAAO,CAAC,YAAY,IAAI,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC7D,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACzF,MAAM,EAAE,KAAK,EAAE,CAAC,wBAAwB,YAAY,QAAQ,SAAS,gBAAgB,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IACD,OAAO;QACL,YAAY;QACZ,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;KACvC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,CAAC,cAAwC,EAAE,OAAgB,EAAE,EAAE;IACvF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B;;;;;OAKG;IACH,MAAM,eAAe,GAAG,KAAK,EAAoC,IAAO,EAAE,IAAS,EAAE,OAAiB,EAAc,EAAE;QACpH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,KAAK,EAAE,CAAC,kBAAkB,IAAI,CAAC,IAAI,sDAAsD,CAAC,CAAC;YACnG,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,KAAK,EAAE,CAAC,kBAAkB,IAAI,CAAC,IAAI,kDAAkD,CAAC,CAAC;YAC/F,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClE,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG;YAChB,UAAU,EAAE,YAAY;YACxB,IAAI;SACL,CAAC;QAEF,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,MAAM,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG;YACZ,IAAI;YACJ,SAAS;SACM,CAAC;QAElB,MAAM,cAAc,GAAG,MAAM,6BAA6B,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAC1I,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACxD,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAE5E,OAAO;YACL,GAAG,IAAI;YACP,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;YAChH,CAAC,0BAA0B,CAAC,EAAE,IAAI;SACnC,CAAC;IACJ,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,sBAAsB,GAAG,KAAK,EAAE,IAAS,EAAE,IAAS,EAAE,OAAiB,EAAgB,EAAE;QAC7F,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC;aAC9B,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACrG,CACF,CAAC;IACJ,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,YAAY,GAAG,KAAK,EAAE,IAAS,EAAE,IAAS,EAAE,OAAiB,EAAgB,EAAE;QACnF,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CACvB,IAAI;qBACD,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CACxE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;gBAChH,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,OAAO,IAAI,KAAK,QAAQ;gBAC7B,CAAC,CAAC;oBACA,GAAG,IAAI;oBACP,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;yBACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC;yBAC9B,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE;wBAC5B,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC;wBACrC,OAAO;4BACL,GAAG;4BACH,GAAG,KAAK,YAAY;gCAClB,CAAC,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;gCAC3D,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC;yBACvD,CAAC;oBACJ,CAAC,CAAC,CACL,CACF;iBACF;gBACD,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAA8B,aAAgB,EAAE,cAAwC,EAAE,OAAgB,EAAkB,EAAE;IACrJ,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChE,MAAM,EAAE,KAAK,EAAE,CAAC,gCAAgC,cAAc,CAAC,YAAY,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,6BAA6B,CAAC,CAAC;QAC1I,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAe,CAAC;AACrF,CAAC,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Context } from '../../context.mjs';
|
|
2
2
|
import type { RetrievedDependencyModel } from '../manifest/extract-dependency-models.mjs';
|
|
3
|
+
import type { SpecificationFile } from './transform.mjs';
|
|
3
4
|
/**
|
|
4
5
|
* Rename the title of the specification
|
|
5
6
|
* @param specification
|
|
6
7
|
* @param retrievedModel
|
|
7
|
-
* @param
|
|
8
|
+
* @param context
|
|
8
9
|
*/
|
|
9
|
-
export declare const renameTitle: <S extends
|
|
10
|
+
export declare const renameTitle: <S extends SpecificationFile>(specification: S, retrievedModel: RetrievedDependencyModel, context: Context) => S & {
|
|
11
|
+
title?: string;
|
|
12
|
+
};
|
|
10
13
|
//# sourceMappingURL=rename.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rename.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/rename.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"rename.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/rename.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EACV,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,iBAAiB,EAAE,eAAe,CAAC,EAAE,gBAAgB,wBAAwB,EAAE,SAAS,OAAO,KAAG,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAY3J,CAAC"}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
* Rename the title of the specification
|
|
3
3
|
* @param specification
|
|
4
4
|
* @param retrievedModel
|
|
5
|
-
* @param
|
|
5
|
+
* @param context
|
|
6
6
|
*/
|
|
7
|
-
export const renameTitle = (specification, retrievedModel,
|
|
7
|
+
export const renameTitle = (specification, retrievedModel, context) => {
|
|
8
|
+
const { logger } = context;
|
|
8
9
|
if (retrievedModel.transform?.titleRename) {
|
|
9
|
-
|
|
10
|
-
title = title
|
|
10
|
+
logger?.debug?.(`Renaming title in model from ${retrievedModel.artifactName} at ${retrievedModel.modelPath}`);
|
|
11
|
+
let title = specification.title ?? undefined;
|
|
12
|
+
title = title?.replace(/^(.*)$/, retrievedModel.transform.titleRename);
|
|
11
13
|
specification = {
|
|
12
14
|
...specification,
|
|
13
15
|
title
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rename.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/rename.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rename.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/rename.mts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAA8B,aAAgB,EAAE,cAAwC,EAAE,OAAgB,EAA0B,EAAE;IAC/J,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,IAAI,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;QAC1C,MAAM,EAAE,KAAK,EAAE,CAAC,gCAAgC,cAAc,CAAC,YAAY,OAAO,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9G,IAAI,KAAK,GAAuB,aAAa,CAAC,KAAK,IAAI,SAAS,CAAC;QACjE,KAAK,GAAG,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACvE,aAAa,GAAG;YACd,GAAG,aAAa;YAChB,KAAK;SACN,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { GENERATED_REF_PROPERTY_KEY } from '../../constants.mjs';
|
|
2
|
+
import type { Context } from '../../context.mjs';
|
|
2
3
|
import type { RetrievedDependencyModel } from '../manifest/extract-dependency-models.mjs';
|
|
4
|
+
import type { SpecificationFile } from './transform.mjs';
|
|
3
5
|
type ReferenceSpecification = {
|
|
4
6
|
$ref: string;
|
|
7
|
+
[GENERATED_REF_PROPERTY_KEY]: boolean;
|
|
5
8
|
[x: string]: any;
|
|
6
9
|
};
|
|
7
10
|
/**
|
|
@@ -9,8 +12,8 @@ type ReferenceSpecification = {
|
|
|
9
12
|
* The process will keep the x-vendor properties from the retrieved model
|
|
10
13
|
* @param specification
|
|
11
14
|
* @param retrievedModel
|
|
12
|
-
* @param
|
|
15
|
+
* @param context
|
|
13
16
|
*/
|
|
14
|
-
export declare const toReference: <S extends
|
|
17
|
+
export declare const toReference: <S extends SpecificationFile>(specification: S, retrievedModel: RetrievedDependencyModel, context: Context) => S | ReferenceSpecification;
|
|
15
18
|
export {};
|
|
16
19
|
//# sourceMappingURL=to-reference.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-reference.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/to-reference.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"to-reference.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/to-reference.mts"],"names":[],"mappings":"AAMA,OAAO,EACL,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EACV,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACtC,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,iBAAiB,EAAE,eAAe,CAAC,EAAE,gBAAgB,wBAAwB,EAAE,SAAS,OAAO,KAAG,CAAC,GAAG,sBAa3I,CAAC"}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
import { relative, } from 'node:path';
|
|
1
|
+
import { dirname, posix, relative, sep, } from 'node:path';
|
|
2
|
+
import { GENERATED_REF_PROPERTY_KEY, } from '../../constants.mjs';
|
|
2
3
|
/**
|
|
3
4
|
* Transform the specification to a single reference if no transformation required
|
|
4
5
|
* The process will keep the x-vendor properties from the retrieved model
|
|
5
6
|
* @param specification
|
|
6
7
|
* @param retrievedModel
|
|
7
|
-
* @param
|
|
8
|
+
* @param context
|
|
8
9
|
*/
|
|
9
|
-
export const toReference = (specification, retrievedModel,
|
|
10
|
+
export const toReference = (specification, retrievedModel, context) => {
|
|
11
|
+
const { logger } = context;
|
|
10
12
|
if (retrievedModel.transform) {
|
|
11
13
|
logger?.debug?.(`The specification ${retrievedModel.modelPath} has transform, the conversion to reference will be ignored`);
|
|
12
14
|
return specification;
|
|
13
15
|
}
|
|
16
|
+
logger?.debug?.(`Converting specification ${retrievedModel.modelPath} to a $ref`);
|
|
14
17
|
return {
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
...Object.fromEntries(Object.entries(retrievedModel).filter(([key]) => key.startsWith('x-'))),
|
|
19
|
+
[GENERATED_REF_PROPERTY_KEY]: true,
|
|
20
|
+
$ref: relative(dirname(retrievedModel.outputFilePath), retrievedModel.modelPath).replaceAll(sep, posix.sep)
|
|
17
21
|
};
|
|
18
22
|
};
|
|
19
23
|
//# sourceMappingURL=to-reference.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-reference.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/to-reference.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"to-reference.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/to-reference.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,GAAG,GACJ,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAiB7B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAA8B,aAAgB,EAAE,cAAwC,EAAE,OAAgB,EAA8B,EAAE;IACnK,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;QAC7B,MAAM,EAAE,KAAK,EAAE,CAAC,qBAAqB,cAAc,CAAC,SAAS,6DAA6D,CAAC,CAAC;QAC5H,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,CAAC,4BAA4B,cAAc,CAAC,SAAS,YAAY,CAAC,CAAC;IAClF,OAAO;QACL,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7F,CAAC,0BAA0B,CAAC,EAAE,IAAI;QAClC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;KAC5G,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Context } from '../../context.mjs';
|
|
2
2
|
import type { RetrievedDependencyModel } from '../manifest/extract-dependency-models.mjs';
|
|
3
|
+
/**
|
|
4
|
+
* Specification file as supported by {@link https://redocly.com/| Redocly}
|
|
5
|
+
*/
|
|
6
|
+
export type SpecificationFile = Record<string, any>;
|
|
3
7
|
/**
|
|
4
8
|
* Transform a specification with specified transformation function
|
|
5
9
|
*/
|
|
6
|
-
export type Transform<S extends
|
|
10
|
+
export type Transform<S extends SpecificationFile = SpecificationFile, T = any> = (specification: S, retrievedModel: RetrievedDependencyModel, context: Context) => T | Promise<T>;
|
|
7
11
|
//# sourceMappingURL=transform.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/transform.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"transform.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/transform.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,wBAAwB,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { Logger } from '../../logger.mjs';
|
|
1
|
+
import type { Context } from '../../context.mjs';
|
|
3
2
|
import type { RetrievedDependencyModel } from '../manifest/extract-dependency-models.mjs';
|
|
4
|
-
type
|
|
5
|
-
[REF_REWRITE_PROPERTY_KEY]: boolean;
|
|
6
|
-
};
|
|
3
|
+
import type { SpecificationFile } from './transform.mjs';
|
|
7
4
|
/**
|
|
8
5
|
* Update the $ref references in the specification to be relative to the model path
|
|
9
6
|
* @param specification
|
|
10
7
|
* @param receivedModel
|
|
11
|
-
* @param
|
|
8
|
+
* @param context
|
|
12
9
|
*/
|
|
13
|
-
export declare const updateReferences: <S extends
|
|
14
|
-
export {};
|
|
10
|
+
export declare const updateReferences: <S extends SpecificationFile>(specification: S, receivedModel: RetrievedDependencyModel, context: Context) => S;
|
|
15
11
|
//# sourceMappingURL=update-references.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-references.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/update-references.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update-references.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/update-references.mts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EACV,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,iBAAiB,EAAE,eAAe,CAAC,EAAE,eAAe,wBAAwB,EAAE,SAAS,OAAO,KAAG,CAoD3I,CAAC"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
const isRelativePath = (path) => {
|
|
5
|
-
return !URL.canParse(path) && !isAbsolute(path);
|
|
6
|
-
};
|
|
1
|
+
import { basename, dirname, posix, relative, resolve, sep, } from 'node:path';
|
|
2
|
+
import { GENERATED_REF_PROPERTY_KEY, REF_REWRITTEN_PROPERTY_KEY, } from '../../constants.mjs';
|
|
3
|
+
import { isRelativePath, } from '../file-system/relative-path.mjs';
|
|
7
4
|
/**
|
|
8
5
|
* Update the $ref references in the specification to be relative to the model path
|
|
9
6
|
* @param specification
|
|
10
7
|
* @param receivedModel
|
|
11
|
-
* @param
|
|
8
|
+
* @param context
|
|
12
9
|
*/
|
|
13
|
-
export const updateReferences = (specification, receivedModel,
|
|
14
|
-
|
|
10
|
+
export const updateReferences = (specification, receivedModel, context) => {
|
|
11
|
+
const { logger } = context;
|
|
15
12
|
const walkSpecification = (specItem) => {
|
|
16
13
|
if (typeof specItem === 'object') {
|
|
17
14
|
if (specItem === null) {
|
|
@@ -21,19 +18,40 @@ export const updateReferences = (specification, receivedModel, _logger) => {
|
|
|
21
18
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return -- due to unknown object structure
|
|
22
19
|
return specItem.map((item) => walkSpecification(item));
|
|
23
20
|
}
|
|
24
|
-
|
|
21
|
+
let hasTouchedReference = false;
|
|
22
|
+
const newSpecItem = Object.fromEntries(Object.entries(specItem).map(([key, value]) => {
|
|
25
23
|
if (key === '$ref' && typeof value === 'string' && isRelativePath(value)) {
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
if (GENERATED_REF_PROPERTY_KEY in specItem && !!specItem[GENERATED_REF_PROPERTY_KEY]) {
|
|
25
|
+
logger?.debug?.(`Skipping the rewriting of the generated $ref reference "${value}" in model from ${receivedModel.artifactName} at ${receivedModel.modelPath}`);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
if (value.startsWith('#')) {
|
|
29
|
+
const localRefItem = value.slice(1).split('/').reduce((acc, part) => part ? acc?.[part] : acc, specification);
|
|
30
|
+
if (localRefItem) {
|
|
31
|
+
logger?.debug?.(`The local reference "${value}" in model from ${receivedModel.artifactName} at ${receivedModel.modelPath} `
|
|
32
|
+
+ 'is still valid, no rewriting needed');
|
|
33
|
+
return [key, value];
|
|
34
|
+
}
|
|
35
|
+
logger?.debug?.(`The local reference "${value}" in model from ${receivedModel.artifactName} at ${receivedModel.modelPath} `
|
|
36
|
+
+ 'is not valid anymore, the original model will be used as base for rewriting');
|
|
37
|
+
value = basename(receivedModel.modelPath) + value;
|
|
38
|
+
}
|
|
39
|
+
const rewrittenReference = relative(dirname(receivedModel.outputFilePath), resolve(dirname(receivedModel.modelPath), value)).replaceAll(sep, posix.sep);
|
|
40
|
+
logger?.debug?.(`Rewriting $ref reference "${value}" to "${rewrittenReference}" in model from ${receivedModel.artifactName} at ${receivedModel.modelPath}`);
|
|
41
|
+
value = rewrittenReference;
|
|
42
|
+
hasTouchedReference = true;
|
|
43
|
+
}
|
|
44
|
+
return [key, value];
|
|
28
45
|
}
|
|
29
46
|
return [key, walkSpecification(value)];
|
|
30
47
|
}));
|
|
48
|
+
return {
|
|
49
|
+
...newSpecItem,
|
|
50
|
+
...(hasTouchedReference ? { [REF_REWRITTEN_PROPERTY_KEY]: true } : {})
|
|
51
|
+
};
|
|
31
52
|
}
|
|
32
53
|
return specItem;
|
|
33
54
|
};
|
|
34
|
-
return
|
|
35
|
-
...walkSpecification(specification),
|
|
36
|
-
[REF_REWRITE_PROPERTY_KEY]: hasTouchedReference
|
|
37
|
-
};
|
|
55
|
+
return walkSpecification(specification);
|
|
38
56
|
};
|
|
39
57
|
//# sourceMappingURL=update-references.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-references.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/update-references.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"update-references.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/update-references.mts"],"names":[],"mappings":"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"}
|
package/src/main.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.mts","sourceRoot":"","sources":["../../src/main.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.d.mts","sourceRoot":"","sources":["../../src/main.mts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,MAAM,EACP,MAAM,cAAc,CAAC;AAEtB,uCAAuC;AACvC,MAAM,WAAW,0BAA0B;IACzC,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,yBAAwB,EAAE,UAAU,0BAA0B,KAAG,OAAO,CAAC,IAAI,CA6BtH,CAAC"}
|
package/src/main.mjs
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import { cwd, } from 'node:process';
|
|
2
2
|
import { cleanOutputDirectory, } from './core/file-system/cleaner.mjs';
|
|
3
|
-
import { writeModelFile, } from './core/file-system/write-model.mjs';
|
|
4
3
|
import { extractDependencyModels, } from './core/manifest/extract-dependency-models.mjs';
|
|
5
4
|
import { retrieveManifest, } from './core/manifest/manifest.mjs';
|
|
6
|
-
import {
|
|
7
|
-
import { addAnnotation, } from './core/transforms/add-annotation.mjs';
|
|
8
|
-
import { applyMask, } from './core/transforms/apply-mask.mjs';
|
|
9
|
-
import { renameTitle, } from './core/transforms/rename.mjs';
|
|
10
|
-
import { toReference, } from './core/transforms/to-reference.mjs';
|
|
11
|
-
import { updateReferences, } from './core/transforms/update-references.mjs';
|
|
5
|
+
import { processModel, } from './core/process.mjs';
|
|
12
6
|
/**
|
|
13
7
|
* Run the process to download and write dependency models
|
|
14
8
|
* @param workingDirectory
|
|
@@ -17,33 +11,23 @@ import { updateReferences, } from './core/transforms/update-references.mjs';
|
|
|
17
11
|
export const installDependencies = async (workingDirectory = cwd(), options) => {
|
|
18
12
|
const { logger = console } = options || {};
|
|
19
13
|
const manifest = await retrieveManifest(workingDirectory, logger);
|
|
14
|
+
const context = {
|
|
15
|
+
cwd: workingDirectory,
|
|
16
|
+
logger
|
|
17
|
+
};
|
|
20
18
|
if (!manifest) {
|
|
21
19
|
logger?.info('No Manifest file discovered');
|
|
22
20
|
return;
|
|
23
21
|
}
|
|
24
|
-
await cleanOutputDirectory(
|
|
25
|
-
const models = extractDependencyModels(
|
|
26
|
-
await
|
|
27
|
-
const results = await Promise.allSettled(models
|
|
28
|
-
.map(async (retrievedModelPromise) => {
|
|
29
|
-
const retrievedModel = await retrievedModelPromise;
|
|
30
|
-
logger?.debug?.(`Retrieving model from ${retrievedModel.artifactName} at ${retrievedModel.modelPath}`);
|
|
31
|
-
const modelObj = deserialize(retrievedModel.content, retrievedModel);
|
|
32
|
-
const transforms = [toReference, addAnnotation, applyMask, updateReferences, renameTitle];
|
|
33
|
-
transforms.reduce((acc, transform) => transform(acc, retrievedModel, logger), deserialize(retrievedModel.content, retrievedModel));
|
|
34
|
-
return {
|
|
35
|
-
...retrievedModel,
|
|
36
|
-
content: serialize(modelObj, retrievedModel)
|
|
37
|
-
};
|
|
38
|
-
})
|
|
39
|
-
.map(async (processedModel) => {
|
|
40
|
-
await writeModelFile(await processedModel);
|
|
41
|
-
}));
|
|
22
|
+
await cleanOutputDirectory(context);
|
|
23
|
+
const models = extractDependencyModels(manifest, context);
|
|
24
|
+
const results = await Promise.allSettled(processModel(models, context));
|
|
42
25
|
const rejected = results
|
|
43
26
|
.filter((result) => result.status === 'rejected');
|
|
44
27
|
if (rejected.length > 0) {
|
|
45
28
|
logger?.error(`Failed to retrieve some models:`);
|
|
46
29
|
rejected.forEach((result) => logger?.error(result.reason));
|
|
30
|
+
await cleanOutputDirectory(context);
|
|
47
31
|
throw new Error('Failed to retrieve some models');
|
|
48
32
|
}
|
|
49
33
|
logger?.info(`Successfully retrieved all models`);
|
package/src/main.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.mjs","sourceRoot":"","sources":["../../src/main.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,GACJ,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"main.mjs","sourceRoot":"","sources":["../../src/main.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,GACJ,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,uBAAuB,GACxB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,YAAY,GACb,MAAM,oBAAoB,CAAC;AAW5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,gBAAgB,GAAG,GAAG,EAAE,EAAE,OAAoC,EAAiB,EAAE;IACzH,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,gBAAgB;QACrB,MAAM;KACW,CAAC;IAEpB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAExE,MAAM,QAAQ,GAAG,OAAO;SACrB,MAAM,CAAC,CAAC,MAAM,EAAmC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAErF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,EAAE,IAAI,CAAC,mCAAmC,CAAC,CAAC;AACpD,CAAC,CAAC"}
|