@axinom/mosaic-cli 0.11.1 → 0.12.0-rc.2
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/commands/{apply-templates.d.ts → apply-templates/apply-templates.d.ts} +9 -4
- package/dist/commands/{apply-templates.js → apply-templates/apply-templates.js} +55 -25
- package/dist/commands/apply-templates/apply-templates.js.map +1 -0
- package/dist/commands/apply-templates/bitwarden-vault.d.ts +36 -0
- package/dist/commands/apply-templates/bitwarden-vault.js +106 -0
- package/dist/commands/apply-templates/bitwarden-vault.js.map +1 -0
- package/dist/commands/apply-templates/index.d.ts +1 -0
- package/dist/commands/apply-templates/index.js +5 -0
- package/dist/commands/apply-templates/index.js.map +1 -0
- package/package.json +4 -4
- package/dist/commands/apply-templates.js.map +0 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import * as Diff from 'diff';
|
|
2
2
|
import { CommandModule } from 'yargs';
|
|
3
|
+
import { Vault } from './bitwarden-vault';
|
|
3
4
|
export interface ApplyTemplatesOptions {
|
|
4
5
|
only: string;
|
|
5
6
|
yes: boolean;
|
|
6
7
|
no: boolean;
|
|
7
8
|
verbose: boolean;
|
|
8
9
|
replace: boolean;
|
|
10
|
+
bitwardenUrl: string | undefined;
|
|
9
11
|
}
|
|
10
12
|
export interface DiffResult {
|
|
11
13
|
result: 'created' | 'same' | 'different' | 'differentLayout';
|
|
@@ -17,13 +19,16 @@ export declare class ConfigTemplate {
|
|
|
17
19
|
readonly target: string;
|
|
18
20
|
readonly targetExists: boolean;
|
|
19
21
|
constructor(file: string);
|
|
20
|
-
compare(_: boolean): DiffResult;
|
|
22
|
+
compare(_: boolean, __: boolean): DiffResult;
|
|
21
23
|
writeTarget(): void;
|
|
22
24
|
}
|
|
23
25
|
export declare class EnvConfigTemplate extends ConfigTemplate {
|
|
24
|
-
constructor(file: string);
|
|
26
|
+
constructor(file: string, bitwardenVault?: Vault);
|
|
27
|
+
readonly bitwardenVault?: Vault;
|
|
28
|
+
private newContent?;
|
|
29
|
+
private readTemplate;
|
|
25
30
|
private mergeContent;
|
|
26
|
-
compare(verbose: boolean): DiffResult;
|
|
31
|
+
compare(replace: boolean, verbose: boolean): DiffResult;
|
|
27
32
|
writeTarget(): void;
|
|
28
33
|
}
|
|
29
|
-
export declare function compareTemplate(template: ConfigTemplate, verbose
|
|
34
|
+
export declare function compareTemplate(template: ConfigTemplate, replace: boolean, verbose: boolean): 'created' | 'same' | 'different' | 'differentLayout';
|
|
@@ -10,6 +10,7 @@ const fs_1 = require("fs");
|
|
|
10
10
|
const glob = require("glob");
|
|
11
11
|
const readline = require("readline");
|
|
12
12
|
const yargs = require("yargs");
|
|
13
|
+
const bitwarden_vault_1 = require("./bitwarden-vault");
|
|
13
14
|
exports.applyTemplates = {
|
|
14
15
|
command: 'apply-templates',
|
|
15
16
|
describe: 'Creates a local copy of each *.template file. ' +
|
|
@@ -50,6 +51,14 @@ exports.applyTemplates = {
|
|
|
50
51
|
describe: 'Replace all files reverting to template values. WARNING: this is destructive!',
|
|
51
52
|
default: false,
|
|
52
53
|
boolean: true,
|
|
54
|
+
})
|
|
55
|
+
.option('bitwardenUrl', {
|
|
56
|
+
type: 'string',
|
|
57
|
+
describe: 'URL of a Bitwarden server to use as a source to resolve placeholders in the template. ' +
|
|
58
|
+
'Bitwarden CLI must be installed as a dev dependency, and the vault unlocked (see: https://bitwarden.com/help/cli/). ' +
|
|
59
|
+
"Placeholders must be in the form: <BITWARDEN_{itemName::fieldName}> where fieldname can be 'username', 'password', or the name of a custom field.",
|
|
60
|
+
default: undefined,
|
|
61
|
+
hidden: true,
|
|
53
62
|
}),
|
|
54
63
|
handler: compareTemplates,
|
|
55
64
|
};
|
|
@@ -59,7 +68,7 @@ class ConfigTemplate {
|
|
|
59
68
|
this.target = file.slice(0, -9); // remove `.template` from the filename
|
|
60
69
|
this.targetExists = (0, fs_1.existsSync)(this.target);
|
|
61
70
|
}
|
|
62
|
-
compare(_) {
|
|
71
|
+
compare(_, __) {
|
|
63
72
|
const content = (0, fs_1.readFileSync)(this.file).toString();
|
|
64
73
|
const targetContent = (0, fs_1.readFileSync)(this.target).toString();
|
|
65
74
|
const diff = Diff.diffLines(targetContent, content);
|
|
@@ -75,11 +84,30 @@ class ConfigTemplate {
|
|
|
75
84
|
}
|
|
76
85
|
exports.ConfigTemplate = ConfigTemplate;
|
|
77
86
|
class EnvConfigTemplate extends ConfigTemplate {
|
|
78
|
-
constructor(file) {
|
|
87
|
+
constructor(file, bitwardenVault) {
|
|
79
88
|
super(file);
|
|
89
|
+
this.bitwardenVault = bitwardenVault;
|
|
80
90
|
}
|
|
81
|
-
|
|
91
|
+
readTemplate() {
|
|
82
92
|
const content = (0, fs_1.readFileSync)(this.file).toString();
|
|
93
|
+
return this.bitwardenVault === undefined
|
|
94
|
+
? content
|
|
95
|
+
: content.replace(/<BITWARDEN_\{([^}]*)\}[^>]*>/g, (match, identifier) => {
|
|
96
|
+
var _a, _b;
|
|
97
|
+
if (!identifier.includes('::')) {
|
|
98
|
+
console.warn((0, chalk_1.yellow)(`WARNING: Bitwarden placeholder in unsupported format: ${match} in ${this.file}.`));
|
|
99
|
+
return match;
|
|
100
|
+
}
|
|
101
|
+
const [name, fieldName] = identifier.split('::', 2);
|
|
102
|
+
const value = (_a = this.bitwardenVault) === null || _a === void 0 ? void 0 : _a.getValue(name, fieldName);
|
|
103
|
+
if (value === undefined && !((_b = this.bitwardenVault) === null || _b === void 0 ? void 0 : _b.error)) {
|
|
104
|
+
console.warn((0, chalk_1.yellow)(`WARNING: A value was not found in Bitwarden for placeholder ${match} in ${this.file}.`));
|
|
105
|
+
}
|
|
106
|
+
return value !== null && value !== void 0 ? value : match;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
mergeContent() {
|
|
110
|
+
const content = this.readTemplate();
|
|
83
111
|
if (!this.targetExists) {
|
|
84
112
|
return content;
|
|
85
113
|
}
|
|
@@ -111,32 +139,28 @@ class EnvConfigTemplate extends ConfigTemplate {
|
|
|
111
139
|
}
|
|
112
140
|
return mergedContent;
|
|
113
141
|
}
|
|
114
|
-
compare(verbose) {
|
|
115
|
-
|
|
142
|
+
compare(replace, verbose) {
|
|
143
|
+
this.newContent = replace ? this.readTemplate() : this.mergeContent();
|
|
116
144
|
const targetContent = (0, fs_1.readFileSync)(this.target).toString();
|
|
117
145
|
let diff = [];
|
|
118
|
-
if (
|
|
146
|
+
if (this.newContent !== targetContent) {
|
|
119
147
|
// diff of sorted values
|
|
120
|
-
diff = Diff.diffLines(envfile.stringify(orderByKey(envfile.parse(targetContent))), envfile.stringify(orderByKey(envfile.parse(
|
|
148
|
+
diff = Diff.diffLines(envfile.stringify(orderByKey(envfile.parse(targetContent))), envfile.stringify(orderByKey(envfile.parse(this.newContent)))).filter((d) => d.added || d.removed);
|
|
121
149
|
}
|
|
122
|
-
const result =
|
|
150
|
+
const result = this.newContent === targetContent
|
|
123
151
|
? 'same'
|
|
124
152
|
: diff.length > 0
|
|
125
153
|
? 'different'
|
|
126
154
|
: 'differentLayout';
|
|
127
155
|
if (result !== 'same' && verbose) {
|
|
128
156
|
// full diff of all lines
|
|
129
|
-
diff = Diff.diffLines(targetContent,
|
|
157
|
+
diff = Diff.diffLines(targetContent, this.newContent);
|
|
130
158
|
}
|
|
131
159
|
return { result, diff };
|
|
132
160
|
}
|
|
133
161
|
writeTarget() {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
const mergedContent = this.mergeContent();
|
|
139
|
-
(0, fs_1.writeFileSync)(this.target, mergedContent);
|
|
162
|
+
var _a;
|
|
163
|
+
(0, fs_1.writeFileSync)(this.target, (_a = this.newContent) !== null && _a !== void 0 ? _a : this.readTemplate());
|
|
140
164
|
}
|
|
141
165
|
}
|
|
142
166
|
exports.EnvConfigTemplate = EnvConfigTemplate;
|
|
@@ -151,6 +175,9 @@ function compareTemplates(options) {
|
|
|
151
175
|
different: [],
|
|
152
176
|
differentLayout: [],
|
|
153
177
|
};
|
|
178
|
+
const bitwardenVault = options.bitwardenUrl !== undefined
|
|
179
|
+
? new bitwarden_vault_1.BitwardenVault(options.bitwardenUrl)
|
|
180
|
+
: undefined;
|
|
154
181
|
glob(templatesPath, { dot: true, ignore: '**/node_modules/**' }, (err, files) => {
|
|
155
182
|
if (err) {
|
|
156
183
|
console.log(err);
|
|
@@ -158,10 +185,10 @@ function compareTemplates(options) {
|
|
|
158
185
|
}
|
|
159
186
|
for (const f of files) {
|
|
160
187
|
const isEnv = isEnvFile(f);
|
|
161
|
-
const template = isEnv
|
|
162
|
-
? new EnvConfigTemplate(f)
|
|
188
|
+
const template = isEnv
|
|
189
|
+
? new EnvConfigTemplate(f, bitwardenVault)
|
|
163
190
|
: new ConfigTemplate(f);
|
|
164
|
-
const resultKey = compareTemplate(template, options.verbose);
|
|
191
|
+
const resultKey = compareTemplate(template, options.replace, options.verbose);
|
|
165
192
|
results[resultKey].push(template);
|
|
166
193
|
}
|
|
167
194
|
const total = results.created.length +
|
|
@@ -171,6 +198,9 @@ function compareTemplates(options) {
|
|
|
171
198
|
console.log(`Found ${total} template file${total !== 1 ? 's' : ''}. ${results.created.length} target file${results.created.length !== 1 ? 's were' : ' was'} created. ${results.different.length + results.differentLayout.length} target file${results.different.length + results.differentLayout.length !== 1
|
|
172
199
|
? 's have'
|
|
173
200
|
: ' has'} changes`);
|
|
201
|
+
if ((bitwardenVault === null || bitwardenVault === void 0 ? void 0 : bitwardenVault.error) !== undefined) {
|
|
202
|
+
console.warn((0, chalk_1.yellow)(`WARNING: Bitwarden placeholders were not resolved. ${bitwardenVault.error}`));
|
|
203
|
+
}
|
|
174
204
|
if (results.different.length !== 0) {
|
|
175
205
|
promptChanges();
|
|
176
206
|
}
|
|
@@ -212,13 +242,13 @@ function compareTemplates(options) {
|
|
|
212
242
|
* If target file doesn't exist then create it.
|
|
213
243
|
* If both exist and there are differences, return 'different' and do nothing.
|
|
214
244
|
*/
|
|
215
|
-
function compareTemplate(template, verbose
|
|
245
|
+
function compareTemplate(template, replace, verbose) {
|
|
216
246
|
if (!template.targetExists) {
|
|
217
247
|
template.writeTarget();
|
|
218
248
|
console.log(`Target file ${template.target} did not exist and has been created.`);
|
|
219
249
|
return 'created';
|
|
220
250
|
}
|
|
221
|
-
const { result, diff } = template.compare(verbose);
|
|
251
|
+
const { result, diff } = template.compare(replace, verbose);
|
|
222
252
|
if (result === 'same') {
|
|
223
253
|
if (verbose) {
|
|
224
254
|
console.log((0, chalk_1.gray)(`File ${template.target} has no changes.`));
|
|
@@ -260,11 +290,6 @@ function isPlaceholder(value) {
|
|
|
260
290
|
// placeholders look like: <{aaa}> or <aaa{bbb}>
|
|
261
291
|
return value.match(/^<[^>]*?\{[^>]*?\}[^>]*?>$/) ? true : false;
|
|
262
292
|
}
|
|
263
|
-
// Dev helper. Script can be run directly with command (without building the lib):
|
|
264
|
-
// yarn ts-node libs/cli/src/commands/apply-templates.ts apply-templates
|
|
265
|
-
if (require.main === module) {
|
|
266
|
-
yargs.command(exports.applyTemplates).demandCommand().argv;
|
|
267
|
-
}
|
|
268
293
|
/** Orders an object by keys */
|
|
269
294
|
function orderByKey(unordered) {
|
|
270
295
|
return Object.keys(unordered)
|
|
@@ -274,4 +299,9 @@ function orderByKey(unordered) {
|
|
|
274
299
|
return obj;
|
|
275
300
|
}, {});
|
|
276
301
|
}
|
|
302
|
+
// Dev helper. Script can be run directly with command (without building the lib):
|
|
303
|
+
// yarn ts-node libs/cli/src/commands/apply-templates/apply-templates.ts apply-templates
|
|
304
|
+
if (require.main === module) {
|
|
305
|
+
yargs.command(exports.applyTemplates).demandCommand().argv;
|
|
306
|
+
}
|
|
277
307
|
//# sourceMappingURL=apply-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-templates.js","sourceRoot":"","sources":["../../../src/commands/apply-templates/apply-templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Interface for a vault which provides values. */
|
|
2
|
+
export interface Vault {
|
|
3
|
+
error: string | undefined;
|
|
4
|
+
getValue(name: string, fieldName: string): string | undefined;
|
|
5
|
+
}
|
|
6
|
+
/** Represents a Bitwarden vault accessed through Bitwarden CLI commands. */
|
|
7
|
+
export declare class BitwardenVault implements Vault {
|
|
8
|
+
private serverUrl;
|
|
9
|
+
constructor(serverUrl: string | undefined);
|
|
10
|
+
/** If there is an error getting items from the vault this will not be undefined. */
|
|
11
|
+
error: string | undefined;
|
|
12
|
+
private readonly items;
|
|
13
|
+
/** Get a value from the vault. If the value is not found returns undefined. */
|
|
14
|
+
getValue(name: string, fieldName: string): string | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Syncs the Bitwarden vault. Note: this only downloads data.
|
|
17
|
+
*
|
|
18
|
+
* We could make this more interactive:
|
|
19
|
+
* - Get status ('yarn bw status') and parse it
|
|
20
|
+
* - Set server url automatically if its not set. Fail with error if it is set but different
|
|
21
|
+
* - Prompt for username & password if not logged in. Login and store session id in memory
|
|
22
|
+
* - Prompt for password if locked. Unlock and store session id in memory
|
|
23
|
+
* - Session id can then be passed to `sync` & `list items` commands with --session
|
|
24
|
+
* Reasons to not do this:
|
|
25
|
+
* - The script becomes more complex
|
|
26
|
+
* - Additional security concern of handling password entry
|
|
27
|
+
* - Password would need to be entered every time the script is run (rather than just once per terminal session)
|
|
28
|
+
* - Blocker: unlocked status is not reported correctly: https://github.com/bitwarden/clients/issues/2729. This
|
|
29
|
+
* makes it really hard to determine the correct course of action.
|
|
30
|
+
*/
|
|
31
|
+
private sync;
|
|
32
|
+
/**
|
|
33
|
+
* Gets Bitwarden collection items from the vault.
|
|
34
|
+
*/
|
|
35
|
+
private fetchItems;
|
|
36
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BitwardenVault = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
|
+
/* eslint-disable no-console */
|
|
6
|
+
const chalk_1 = require("chalk");
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
/** Represents a Bitwarden vault accessed through Bitwarden CLI commands. */
|
|
9
|
+
class BitwardenVault {
|
|
10
|
+
constructor(serverUrl) {
|
|
11
|
+
this.serverUrl = serverUrl;
|
|
12
|
+
this.error = this.sync();
|
|
13
|
+
if (!this.error) {
|
|
14
|
+
this.items = this.fetchItems();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/** Get a value from the vault. If the value is not found returns undefined. */
|
|
18
|
+
getValue(name, fieldName) {
|
|
19
|
+
var _a;
|
|
20
|
+
for (const item of (_a = this.items) !== null && _a !== void 0 ? _a : []) {
|
|
21
|
+
if (item.name === name) {
|
|
22
|
+
if (item.login && fieldName === 'username') {
|
|
23
|
+
return item.login.username;
|
|
24
|
+
}
|
|
25
|
+
if (item.login && fieldName === 'password') {
|
|
26
|
+
return item.login.password;
|
|
27
|
+
}
|
|
28
|
+
if (item.fields) {
|
|
29
|
+
for (const field of item.fields) {
|
|
30
|
+
if (field.name === fieldName) {
|
|
31
|
+
return field.value;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Syncs the Bitwarden vault. Note: this only downloads data.
|
|
41
|
+
*
|
|
42
|
+
* We could make this more interactive:
|
|
43
|
+
* - Get status ('yarn bw status') and parse it
|
|
44
|
+
* - Set server url automatically if its not set. Fail with error if it is set but different
|
|
45
|
+
* - Prompt for username & password if not logged in. Login and store session id in memory
|
|
46
|
+
* - Prompt for password if locked. Unlock and store session id in memory
|
|
47
|
+
* - Session id can then be passed to `sync` & `list items` commands with --session
|
|
48
|
+
* Reasons to not do this:
|
|
49
|
+
* - The script becomes more complex
|
|
50
|
+
* - Additional security concern of handling password entry
|
|
51
|
+
* - Password would need to be entered every time the script is run (rather than just once per terminal session)
|
|
52
|
+
* - Blocker: unlocked status is not reported correctly: https://github.com/bitwarden/clients/issues/2729. This
|
|
53
|
+
* makes it really hard to determine the correct course of action.
|
|
54
|
+
*/
|
|
55
|
+
sync() {
|
|
56
|
+
try {
|
|
57
|
+
(0, child_process_1.execSync)(`yarn bw --nointeraction sync`);
|
|
58
|
+
console.log(`Bitwarden vault synced.`);
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
console.log();
|
|
63
|
+
// Try to determine what is the issue and provide some direction
|
|
64
|
+
if (e instanceof Error && e.message.includes('getaddrinfo ENOTFOUND')) {
|
|
65
|
+
return 'The Bitwarden server could not be found. Are you connected to the VPN?';
|
|
66
|
+
}
|
|
67
|
+
if (e instanceof Error && e.message.includes('You are not logged in')) {
|
|
68
|
+
return this.serverUrl !== undefined
|
|
69
|
+
? 'You are not logged in. Run command `' +
|
|
70
|
+
(0, chalk_1.cyanBright)(`yarn bw config server ${this.serverUrl}`) +
|
|
71
|
+
'` to set the server url, then command `' +
|
|
72
|
+
(0, chalk_1.cyanBright)('yarn bw login') +
|
|
73
|
+
'` and follow the instructions to unlock your vault.'
|
|
74
|
+
: 'You are not logged in. Run command `' +
|
|
75
|
+
(0, chalk_1.cyanBright)('yarn bw login') +
|
|
76
|
+
'` and follow the instructions to unlock your vault.';
|
|
77
|
+
}
|
|
78
|
+
if (e instanceof Error && e.message.includes('Vault is locked')) {
|
|
79
|
+
return ('Your vault is locked. Are you connected to the VPN? Run command `' +
|
|
80
|
+
(0, chalk_1.cyanBright)('yarn bw unlock') +
|
|
81
|
+
'` and follow the instructions to unlock your vault.');
|
|
82
|
+
}
|
|
83
|
+
return ('Unexpected error syncing Bitwarden vault. You may need to run command `' +
|
|
84
|
+
(0, chalk_1.cyanBright)('yarn install') +
|
|
85
|
+
'` to install the Bitwarden CLI otherwise use command `' +
|
|
86
|
+
(0, chalk_1.cyanBright)('yarn bw status') +
|
|
87
|
+
'` to show the full status.');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Gets Bitwarden collection items from the vault.
|
|
92
|
+
*/
|
|
93
|
+
fetchItems() {
|
|
94
|
+
try {
|
|
95
|
+
const json = (0, child_process_1.execSync)('yarn bw --nointeraction list items').toString();
|
|
96
|
+
return JSON.parse(json);
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
console.log();
|
|
100
|
+
console.error((0, chalk_1.red)('ERROR: Could not list items in the vault.'));
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.BitwardenVault = BitwardenVault;
|
|
106
|
+
//# sourceMappingURL=bitwarden-vault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitwarden-vault.js","sourceRoot":"","sources":["../../../src/commands/apply-templates/bitwarden-vault.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './apply-templates';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/apply-templates/index.ts"],"names":[],"mappings":";;;AAAA,iEAAkC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axinom/mosaic-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0-rc.2",
|
|
4
4
|
"description": "The Axinom Mosaic CLI",
|
|
5
5
|
"author": "Axinom",
|
|
6
6
|
"license": "PROPRIETARY",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"@asyncapi/diff": "^0.4.0",
|
|
33
33
|
"@asyncapi/modelina": "^0.43.0",
|
|
34
34
|
"@asyncapi/parser": "^1.15.0",
|
|
35
|
-
"@axinom/mosaic-id-link-be": "^0.6.
|
|
36
|
-
"@axinom/mosaic-service-common": "^0.22.
|
|
35
|
+
"@axinom/mosaic-id-link-be": "^0.6.10-rc.2",
|
|
36
|
+
"@axinom/mosaic-service-common": "^0.22.1-rc.2",
|
|
37
37
|
"@graphql-inspector/core": "^3.1.2",
|
|
38
38
|
"@stoplight/spectral": "^5.9.1",
|
|
39
39
|
"chalk": "^4.1.0",
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"publishConfig": {
|
|
67
67
|
"access": "public"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "6b141812d55f32cc6e3ea8a341e946010d38b8ff"
|
|
70
70
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apply-templates.js","sourceRoot":"","sources":["../../src/commands/apply-templates.ts"],"names":[],"mappings":"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"}
|