@ama-openapi/core 0.0.0-placeholder.7 → 0.0.0-placeholder.9
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 +5 -5
- package/renovate/default.json +10 -0
- package/schemas/manifest.schema.json +16 -7
- package/src/constants.d.mts +7 -4
- package/src/constants.d.mts.map +1 -1
- package/src/constants.mjs +8 -3
- 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/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 +7 -3
- package/src/core/file-system/write-model.mjs.map +1 -1
- package/src/core/manifest/extract-dependency-models.d.mts +9 -8
- package/src/core/manifest/extract-dependency-models.d.mts.map +1 -1
- package/src/core/manifest/extract-dependency-models.mjs +22 -14
- package/src/core/manifest/extract-dependency-models.mjs.map +1 -1
- package/src/core/manifest/manifest.d.mts.map +1 -1
- package/src/core/manifest/manifest.mjs +6 -6
- package/src/core/manifest/manifest.mjs.map +1 -1
- package/src/core/process.d.mts +3 -3
- package/src/core/process.d.mts.map +1 -1
- package/src/core/process.mjs +6 -5
- package/src/core/process.mjs.map +1 -1
- package/src/core/serialization.mjs +2 -2
- package/src/core/serialization.mjs.map +1 -1
- package/src/core/transforms/add-annotation.d.mts +3 -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 +4 -4
- package/src/core/transforms/apply-mask.d.mts.map +1 -1
- package/src/core/transforms/apply-mask.mjs +131 -41
- package/src/core/transforms/apply-mask.mjs.map +1 -1
- package/src/core/transforms/rename.d.mts +3 -3
- package/src/core/transforms/rename.d.mts.map +1 -1
- package/src/core/transforms/rename.mjs +4 -2
- package/src/core/transforms/rename.mjs.map +1 -1
- package/src/core/transforms/to-reference.d.mts +3 -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 +7 -2
- package/src/core/transforms/transform.d.mts.map +1 -1
- package/src/core/transforms/transform.mjs +8 -1
- package/src/core/transforms/transform.mjs.map +1 -1
- package/src/core/transforms/update-references.d.mts +3 -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 +8 -4
- package/src/main.mjs.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MASKED_PROPERTY_KEY, SOURCE_PROPERTY_KEY, TOUCHED_PROPERTY_KEY, VERSION_PROPERTY_KEY } from '../../constants.mjs';
|
|
2
|
-
import type {
|
|
2
|
+
import type { Context } from '../../context.mjs';
|
|
3
3
|
import type { RetrievedDependencyModel } from '../manifest/extract-dependency-models.mjs';
|
|
4
4
|
type AdditionalAnnotation = {
|
|
5
5
|
[MASKED_PROPERTY_KEY]: boolean;
|
|
@@ -11,8 +11,8 @@ type AdditionalAnnotation = {
|
|
|
11
11
|
* Add annotation to the specification indicating its source, version, and if it was masked
|
|
12
12
|
* @param specification
|
|
13
13
|
* @param retrievedModel
|
|
14
|
-
* @param
|
|
14
|
+
* @param context
|
|
15
15
|
*/
|
|
16
|
-
export declare const addAnnotation: <S extends object>(specification: S, retrievedModel: RetrievedDependencyModel,
|
|
16
|
+
export declare const addAnnotation: <S extends object>(specification: S, retrievedModel: RetrievedDependencyModel, context: Context) => S & AdditionalAnnotation;
|
|
17
17
|
export {};
|
|
18
18
|
//# sourceMappingURL=add-annotation.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-annotation.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/add-annotation.mts"],"names":[],"mappings":"AAGA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"add-annotation.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/add-annotation.mts"],"names":[],"mappings":"AAGA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AAEnD,KAAK,oBAAoB,GAAG;IAC1B,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC/B,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAChC,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC9B,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,EAAE,eAAe,CAAC,EAAE,gBAAgB,wBAAwB,EAAE,SAAS,OAAO,KAAG,CAAC,GAAG,oBAWlI,CAAC"}
|
|
@@ -4,10 +4,12 @@ import { MASKED_PROPERTY_KEY, SOURCE_PROPERTY_KEY, TOUCHED_PROPERTY_KEY, VERSION
|
|
|
4
4
|
* Add annotation to the specification indicating its source, version, and if it was masked
|
|
5
5
|
* @param specification
|
|
6
6
|
* @param retrievedModel
|
|
7
|
-
* @param
|
|
7
|
+
* @param context
|
|
8
8
|
*/
|
|
9
|
-
export const addAnnotation = (specification, retrievedModel,
|
|
9
|
+
export const addAnnotation = (specification, retrievedModel, context) => {
|
|
10
|
+
const { logger } = context;
|
|
10
11
|
const { artifactName, version, transform } = retrievedModel;
|
|
12
|
+
logger?.debug?.(`Adding annotation to model from ${artifactName} at ${retrievedModel.model.path}`);
|
|
11
13
|
return {
|
|
12
14
|
...specification,
|
|
13
15
|
[SOURCE_PROPERTY_KEY]: posix.join(artifactName, retrievedModel.model.path),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-annotation.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/add-annotation.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GACN,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAe7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAmB,aAAgB,EAAE,cAAwC,EAAE,OAAgB,EAA4B,EAAE;IACxJ,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC;IAC5D,OAAO;QACL,GAAG,aAAa;QAChB,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1E,CAAC,oBAAoB,CAAC,EAAE,OAAO;QAC/B,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI;QACxC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,SAAS;KACpC,CAAC;AACJ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"add-annotation.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/add-annotation.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GACN,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAe7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAmB,aAAgB,EAAE,cAAwC,EAAE,OAAgB,EAA4B,EAAE;IACxJ,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC;IAC5D,MAAM,EAAE,KAAK,EAAE,CAAC,mCAAmC,YAAY,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACnG,OAAO;QACL,GAAG,aAAa;QAChB,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1E,CAAC,oBAAoB,CAAC,EAAE,OAAO;QAC/B,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI;QACxC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,SAAS;KACpC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type
|
|
1
|
+
import type { Context } from '../../context.mjs';
|
|
2
|
+
import { type RetrievedDependencyModel } from '../manifest/extract-dependency-models.mjs';
|
|
3
3
|
/**
|
|
4
4
|
* Apply the mask to the model
|
|
5
5
|
* @param specification
|
|
6
6
|
* @param retrievedModel
|
|
7
|
-
* @param
|
|
7
|
+
* @param context
|
|
8
8
|
*/
|
|
9
|
-
export declare const applyMask: <S extends object>(specification: S, retrievedModel: RetrievedDependencyModel,
|
|
9
|
+
export declare const applyMask: <S extends object>(specification: S, retrievedModel: RetrievedDependencyModel, context: Context) => S | Promise<S>;
|
|
10
10
|
//# sourceMappingURL=apply-mask.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-mask.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/apply-mask.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"apply-mask.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/apply-mask.mts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,2CAA2C,CAAC;AAgDnD;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EAAE,eAAe,CAAC,EAAE,gBAAgB,wBAAwB,EAAE,SAAS,OAAO,KAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAyHvI,CAAC"}
|
|
@@ -1,57 +1,147 @@
|
|
|
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 { extractDependencyModelsObject, } from '../manifest/extract-dependency-models.mjs';
|
|
5
|
+
import { isRelativePath, } from './transform.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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
for (const [key, value] of maskAdditionalProperties) {
|
|
33
|
-
if (typeof value === 'object') {
|
|
34
|
-
result[key] = Array.isArray(value)
|
|
35
|
-
? value.map((subMask) => applySubMask(result[key], subMask))
|
|
36
|
-
: value && Object.fromEntries(Object.entries(value).map(([maskKey, subMask]) => ([maskKey, applySubMask(result[key][maskKey], subMask)])));
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
result[key] = value;
|
|
40
|
-
}
|
|
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`);
|
|
41
29
|
}
|
|
42
30
|
}
|
|
43
|
-
return
|
|
31
|
+
return {
|
|
32
|
+
artifactName,
|
|
33
|
+
path: relative(projectRoot, modelPath)
|
|
34
|
+
};
|
|
44
35
|
};
|
|
45
36
|
/**
|
|
46
37
|
* Apply the mask to the model
|
|
47
38
|
* @param specification
|
|
48
39
|
* @param retrievedModel
|
|
49
|
-
* @param
|
|
40
|
+
* @param context
|
|
50
41
|
*/
|
|
51
|
-
export const applyMask = (specification, retrievedModel,
|
|
52
|
-
|
|
42
|
+
export const applyMask = (specification, retrievedModel, context) => {
|
|
43
|
+
const { logger } = context;
|
|
44
|
+
if (!retrievedModel.transform || !retrievedModel.transform.mask) {
|
|
45
|
+
logger?.debug?.(`No mask found for model from ${retrievedModel.artifactName} at ${retrievedModel.model.path}, skipping mask application`);
|
|
53
46
|
return specification;
|
|
54
47
|
}
|
|
55
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Handle a $ref in the specification during mask application when the mask needs to be applied to the referenced model
|
|
50
|
+
* @param node
|
|
51
|
+
* @param mask
|
|
52
|
+
* @param parents
|
|
53
|
+
*/
|
|
54
|
+
const handleReference = async (node, mask, parents) => {
|
|
55
|
+
if (!isRelativePath(node.$ref)) {
|
|
56
|
+
logger?.debug?.(`Skipping $ref "${node.$ref}" from mask application as it is not a relative path`);
|
|
57
|
+
return node;
|
|
58
|
+
}
|
|
59
|
+
if (node.$ref.startsWith('#')) {
|
|
60
|
+
logger?.debug?.(`Skipping $ref "${node.$ref}" from mask application as it is local reference`);
|
|
61
|
+
return node;
|
|
62
|
+
}
|
|
63
|
+
const modelPath = resolve(dirname(retrievedModel.modelPath), node.$ref);
|
|
64
|
+
const maskFileName = determineSubMaskFileName(node.$ref, parents);
|
|
65
|
+
const outputFileDirectory = determineSubMaskPath(retrievedModel);
|
|
66
|
+
const transform = {
|
|
67
|
+
fileRename: maskFileName,
|
|
68
|
+
mask
|
|
69
|
+
};
|
|
70
|
+
const { artifactName, path } = await splitArtifactModelPaths(modelPath, context);
|
|
71
|
+
const model = {
|
|
72
|
+
path,
|
|
73
|
+
transform
|
|
74
|
+
};
|
|
75
|
+
const extractedModel = await extractDependencyModelsObject(artifactName, model, Promise.resolve(transform), context, outputFileDirectory);
|
|
76
|
+
const { processModel } = await import('../process.mjs');
|
|
77
|
+
await Promise.all(processModel([Promise.resolve(extractedModel)], context));
|
|
78
|
+
return {
|
|
79
|
+
...node,
|
|
80
|
+
$ref: relative(dirname(retrievedModel.outputFilePath), extractedModel.outputFilePath).replaceAll(sep, posix.sep),
|
|
81
|
+
[GENERATED_REF_PROPERTY_KEY]: true
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Apply the property field mask to the specification
|
|
86
|
+
* @param node
|
|
87
|
+
* @param mask
|
|
88
|
+
* @param parents
|
|
89
|
+
*/
|
|
90
|
+
const applyPropertyFieldMask = async (node, mask, parents) => {
|
|
91
|
+
if (node === null || node === undefined) {
|
|
92
|
+
return node;
|
|
93
|
+
}
|
|
94
|
+
if (typeof mask !== 'object') {
|
|
95
|
+
return node;
|
|
96
|
+
}
|
|
97
|
+
if (typeof node !== 'object') {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
return Object.fromEntries(await Promise.all(Object.entries(mask)
|
|
101
|
+
.filter(([key]) => key in node)
|
|
102
|
+
.map(async ([key, subMask]) => ([key, await applySubMask(node[key], subMask, [...parents, key])]))));
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Recursively apply the sub-mask to the specification
|
|
106
|
+
* @param node
|
|
107
|
+
* @param mask
|
|
108
|
+
* @param parents
|
|
109
|
+
*/
|
|
110
|
+
const applySubMask = async (node, mask, parents) => {
|
|
111
|
+
if (node === null || node === undefined) {
|
|
112
|
+
return node;
|
|
113
|
+
}
|
|
114
|
+
if (typeof node !== 'object') {
|
|
115
|
+
return typeof mask === 'object' ? node : mask;
|
|
116
|
+
}
|
|
117
|
+
else if (Array.isArray(node)) {
|
|
118
|
+
if (Array.isArray(mask)) {
|
|
119
|
+
return (await Promise.all(node
|
|
120
|
+
.map((item, index) => applySubMask(item, mask[index] ?? {}, parents)))).filter((item) => item !== undefined);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
if ('$ref' in node && typeof node.$ref === 'string' && mask && typeof mask === 'object' && 'properties' in mask) {
|
|
125
|
+
return handleReference(node, mask, parents);
|
|
126
|
+
}
|
|
127
|
+
return typeof mask === 'object'
|
|
128
|
+
? {
|
|
129
|
+
...node,
|
|
130
|
+
...Object.fromEntries(await Promise.all(Object.entries(mask)
|
|
131
|
+
.filter(([key]) => key in node)
|
|
132
|
+
.map(async ([key, subMask]) => {
|
|
133
|
+
const newParents = [...parents, key];
|
|
134
|
+
return [
|
|
135
|
+
key,
|
|
136
|
+
key === 'properties'
|
|
137
|
+
? await applyPropertyFieldMask(node[key], subMask, parents)
|
|
138
|
+
: await applySubMask(node[key], subMask, newParents)
|
|
139
|
+
];
|
|
140
|
+
})))
|
|
141
|
+
}
|
|
142
|
+
: (mask ? node : undefined);
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
return applySubMask(specification, retrievedModel.transform.mask, []);
|
|
56
146
|
};
|
|
57
147
|
//# 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":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Context } from '../../context.mjs';
|
|
2
2
|
import type { RetrievedDependencyModel } from '../manifest/extract-dependency-models.mjs';
|
|
3
3
|
/**
|
|
4
4
|
* Rename the title of the specification
|
|
5
5
|
* @param specification
|
|
6
6
|
* @param retrievedModel
|
|
7
|
-
* @param
|
|
7
|
+
* @param context
|
|
8
8
|
*/
|
|
9
|
-
export declare const renameTitle: <S extends object>(specification: S, retrievedModel: RetrievedDependencyModel,
|
|
9
|
+
export declare const renameTitle: <S extends object>(specification: S, retrievedModel: RetrievedDependencyModel, context: Context) => S;
|
|
10
10
|
//# 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;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,eAAe,CAAC,EAAE,gBAAgB,wBAAwB,EAAE,SAAS,OAAO,KAAG,CAY5H,CAAC"}
|
|
@@ -2,10 +2,12 @@
|
|
|
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) {
|
|
10
|
+
logger?.debug?.(`Renaming title in model from ${retrievedModel.artifactName} at ${retrievedModel.modelPath}`);
|
|
9
11
|
let title = 'title' in specification ? specification.title : undefined;
|
|
10
12
|
title = title && title.replace(new RegExp(`^(${title})$`), retrievedModel.transform.titleRename);
|
|
11
13
|
specification = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rename.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/rename.mts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAmB,aAAgB,EAAE,cAAwC,EAAE,OAAgB,EAAK,EAAE;IAC/H,IAAI,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;QAC1C,IAAI,KAAK,GAAuB,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QACrG,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACjG,aAAa,GAAG;YACd,GAAG,aAAa;YAChB,KAAK;SACN,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"rename.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/rename.mts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAmB,aAAgB,EAAE,cAAwC,EAAE,OAAgB,EAAK,EAAE;IAC/H,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,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QACrG,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACjG,aAAa,GAAG;YACd,GAAG,aAAa;YAChB,KAAK;SACN,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Context } from '../../context.mjs';
|
|
2
2
|
import type { RetrievedDependencyModel } from '../manifest/extract-dependency-models.mjs';
|
|
3
3
|
type ReferenceSpecification = {
|
|
4
4
|
$ref: string;
|
|
@@ -9,8 +9,8 @@ type ReferenceSpecification = {
|
|
|
9
9
|
* The process will keep the x-vendor properties from the retrieved model
|
|
10
10
|
* @param specification
|
|
11
11
|
* @param retrievedModel
|
|
12
|
-
* @param
|
|
12
|
+
* @param context
|
|
13
13
|
*/
|
|
14
|
-
export declare const toReference: <S extends object>(specification: S, retrievedModel: RetrievedDependencyModel,
|
|
14
|
+
export declare const toReference: <S extends object>(specification: S, retrievedModel: RetrievedDependencyModel, context: Context) => S | ReferenceSpecification;
|
|
15
15
|
export {};
|
|
16
16
|
//# 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":"AASA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AAEnD,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,eAAe,CAAC,EAAE,gBAAgB,wBAAwB,EAAE,SAAS,OAAO,KAAG,CAAC,GAAG,sBAahI,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;AAa7B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAmB,aAAgB,EAAE,cAAwC,EAAE,OAAgB,EAA8B,EAAE;IACxJ,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,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Context } from '../../context.mjs';
|
|
2
2
|
import type { RetrievedDependencyModel } from '../manifest/extract-dependency-models.mjs';
|
|
3
3
|
/**
|
|
4
4
|
* Transform a specification with specified transformation function
|
|
5
5
|
*/
|
|
6
|
-
export type Transform<S extends object = object, T = any> = (specification: S, retrievedModel: RetrievedDependencyModel,
|
|
6
|
+
export type Transform<S extends object = object, T = any> = (specification: S, retrievedModel: RetrievedDependencyModel, context: Context) => T | Promise<T>;
|
|
7
|
+
/**
|
|
8
|
+
* Determine if a path is relative
|
|
9
|
+
* @param path
|
|
10
|
+
*/
|
|
11
|
+
export declare const isRelativePath: (path: string) => boolean;
|
|
7
12
|
//# sourceMappingURL=transform.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/transform.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform.d.mts","sourceRoot":"","sources":["../../../../src/core/transforms/transform.mts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,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;AAE7J;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,OAE7C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/transform.mts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"transform.mjs","sourceRoot":"","sources":["../../../../src/core/transforms/transform.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GACX,MAAM,WAAW,CAAC;AAanB;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAW,EAAE;IACtD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC"}
|
|
@@ -1,15 +1,10 @@
|
|
|
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 AdditionalAnnotation = {
|
|
5
|
-
[REF_REWRITE_PROPERTY_KEY]: boolean;
|
|
6
|
-
};
|
|
7
3
|
/**
|
|
8
4
|
* Update the $ref references in the specification to be relative to the model path
|
|
9
5
|
* @param specification
|
|
10
6
|
* @param receivedModel
|
|
11
|
-
* @param
|
|
7
|
+
* @param context
|
|
12
8
|
*/
|
|
13
|
-
export declare const updateReferences: <S extends object>(specification: S, receivedModel: RetrievedDependencyModel,
|
|
14
|
-
export {};
|
|
9
|
+
export declare const updateReferences: <S extends object>(specification: S, receivedModel: RetrievedDependencyModel, context: Context) => S;
|
|
15
10
|
//# 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;AAC3B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AAKnD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,EAAE,eAAe,CAAC,EAAE,eAAe,wBAAwB,EAAE,SAAS,OAAO,KAAG,CAoDhI,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 './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 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
|
@@ -11,19 +11,23 @@ import { processModel, } from './core/process.mjs';
|
|
|
11
11
|
export const installDependencies = async (workingDirectory = cwd(), options) => {
|
|
12
12
|
const { logger = console } = options || {};
|
|
13
13
|
const manifest = await retrieveManifest(workingDirectory, logger);
|
|
14
|
+
const context = {
|
|
15
|
+
cwd: workingDirectory,
|
|
16
|
+
logger
|
|
17
|
+
};
|
|
14
18
|
if (!manifest) {
|
|
15
19
|
logger?.info('No Manifest file discovered');
|
|
16
20
|
return;
|
|
17
21
|
}
|
|
18
|
-
await cleanOutputDirectory(
|
|
19
|
-
const models = extractDependencyModels(
|
|
20
|
-
const results = await Promise.allSettled(processModel(models,
|
|
22
|
+
await cleanOutputDirectory(context);
|
|
23
|
+
const models = extractDependencyModels(manifest, context);
|
|
24
|
+
const results = await Promise.allSettled(processModel(models, context));
|
|
21
25
|
const rejected = results
|
|
22
26
|
.filter((result) => result.status === 'rejected');
|
|
23
27
|
if (rejected.length > 0) {
|
|
24
28
|
logger?.error(`Failed to retrieve some models:`);
|
|
25
29
|
rejected.forEach((result) => logger?.error(result.reason));
|
|
26
|
-
await cleanOutputDirectory(
|
|
30
|
+
await cleanOutputDirectory(context);
|
|
27
31
|
throw new Error('Failed to retrieve some models');
|
|
28
32
|
}
|
|
29
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"}
|