@eventcatalog/sdk 1.4.6 → 1.4.8
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/channels.js +50 -37
- package/dist/channels.js.map +1 -1
- package/dist/channels.mjs +48 -35
- package/dist/channels.mjs.map +1 -1
- package/dist/commands.js +47 -34
- package/dist/commands.js.map +1 -1
- package/dist/commands.mjs +48 -35
- package/dist/commands.mjs.map +1 -1
- package/dist/domains.js +47 -34
- package/dist/domains.js.map +1 -1
- package/dist/domains.mjs +48 -35
- package/dist/domains.mjs.map +1 -1
- package/dist/events.js +47 -34
- package/dist/events.js.map +1 -1
- package/dist/events.mjs +48 -35
- package/dist/events.mjs.map +1 -1
- package/dist/index.js +60 -47
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +61 -48
- package/dist/index.mjs.map +1 -1
- package/dist/queries.js +47 -34
- package/dist/queries.js.map +1 -1
- package/dist/queries.mjs +48 -35
- package/dist/queries.mjs.map +1 -1
- package/dist/services.js +48 -35
- package/dist/services.js.map +1 -1
- package/dist/services.mjs +49 -36
- package/dist/services.mjs.map +1 -1
- package/dist/teams.js +3 -4
- package/dist/teams.js.map +1 -1
- package/dist/teams.mjs +2 -2
- package/dist/teams.mjs.map +1 -1
- package/dist/users.js +1 -2
- package/dist/users.js.map +1 -1
- package/dist/users.mjs +2 -2
- package/dist/users.mjs.map +1 -1
- package/package.json +3 -1
package/dist/index.js
CHANGED
|
@@ -36,12 +36,11 @@ module.exports = __toCommonJS(index_exports);
|
|
|
36
36
|
var import_node_path10 = require("path");
|
|
37
37
|
|
|
38
38
|
// src/events.ts
|
|
39
|
-
var
|
|
39
|
+
var import_promises2 = __toESM(require("fs/promises"));
|
|
40
40
|
var import_node_path2 = require("path");
|
|
41
41
|
|
|
42
42
|
// src/internal/utils.ts
|
|
43
43
|
var import_glob = require("glob");
|
|
44
|
-
var import_promises = __toESM(require("fs/promises"));
|
|
45
44
|
var import_node_fs = __toESM(require("fs"));
|
|
46
45
|
var import_fs_extra = require("fs-extra");
|
|
47
46
|
var import_node_path = require("path");
|
|
@@ -79,7 +78,7 @@ var findFileById = async (catalogDir, id, version) => {
|
|
|
79
78
|
var getFiles = async (pattern, ignore = "") => {
|
|
80
79
|
try {
|
|
81
80
|
const ignoreList = Array.isArray(ignore) ? ignore : [ignore];
|
|
82
|
-
const files =
|
|
81
|
+
const files = (0, import_glob.globSync)(pattern, { ignore: ["node_modules/**", ...ignoreList] });
|
|
83
82
|
return files;
|
|
84
83
|
} catch (error) {
|
|
85
84
|
throw new Error(`Error finding files: ${error}`);
|
|
@@ -88,18 +87,16 @@ var getFiles = async (pattern, ignore = "") => {
|
|
|
88
87
|
var searchFilesForId = async (files, id, version) => {
|
|
89
88
|
const idRegex = new RegExp(`^id:\\s*(['"]|>-)?\\s*${id}['"]?\\s*$`, "m");
|
|
90
89
|
const versionRegex = new RegExp(`^version:\\s*['"]?${version}['"]?\\s*$`, "m");
|
|
91
|
-
const matches =
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
})
|
|
102
|
-
);
|
|
90
|
+
const matches = files.map((file) => {
|
|
91
|
+
const content = import_node_fs.default.readFileSync(file, "utf-8");
|
|
92
|
+
const hasIdMatch = content.match(idRegex);
|
|
93
|
+
if (version && !content.match(versionRegex)) {
|
|
94
|
+
return void 0;
|
|
95
|
+
}
|
|
96
|
+
if (hasIdMatch) {
|
|
97
|
+
return file;
|
|
98
|
+
}
|
|
99
|
+
});
|
|
103
100
|
return matches.filter(Boolean).filter((file) => file !== void 0);
|
|
104
101
|
};
|
|
105
102
|
var copyDir = async (catalogDir, source, target, filter) => {
|
|
@@ -130,9 +127,10 @@ var uniqueVersions = (messages) => {
|
|
|
130
127
|
// src/internal/resources.ts
|
|
131
128
|
var import_path = require("path");
|
|
132
129
|
var import_gray_matter2 = __toESM(require("gray-matter"));
|
|
133
|
-
var
|
|
130
|
+
var import_promises = __toESM(require("fs/promises"));
|
|
134
131
|
var import_node_fs2 = __toESM(require("fs"));
|
|
135
132
|
var import_semver2 = require("semver");
|
|
133
|
+
var import_proper_lockfile = require("proper-lockfile");
|
|
136
134
|
var versionResource = async (catalogDir, id) => {
|
|
137
135
|
const files = await getFiles(`${catalogDir}/**/index.md`);
|
|
138
136
|
const matchedFiles = await searchFilesForId(files, id);
|
|
@@ -147,7 +145,7 @@ var versionResource = async (catalogDir, id) => {
|
|
|
147
145
|
await copyDir(catalogDir, sourceDirectory, targetDirectory, (src) => {
|
|
148
146
|
return !src.includes("versioned");
|
|
149
147
|
});
|
|
150
|
-
await
|
|
148
|
+
await import_promises.default.readdir(sourceDirectory).then(async (resourceFiles) => {
|
|
151
149
|
await Promise.all(
|
|
152
150
|
resourceFiles.map(async (file2) => {
|
|
153
151
|
if (file2 !== "versioned") {
|
|
@@ -164,24 +162,39 @@ var writeResource = async (catalogDir, resource, options = {
|
|
|
164
162
|
versionExistingContent: false
|
|
165
163
|
}) => {
|
|
166
164
|
const path = options.path || `/${resource.id}`;
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
165
|
+
const fullPath = (0, import_path.join)(catalogDir, path);
|
|
166
|
+
import_node_fs2.default.mkdirSync(fullPath, { recursive: true });
|
|
167
|
+
const lockPath = (0, import_path.join)(fullPath, "index.md");
|
|
168
|
+
if (!import_node_fs2.default.existsSync(lockPath)) {
|
|
169
|
+
import_node_fs2.default.writeFileSync(lockPath, "");
|
|
170
170
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
171
|
+
try {
|
|
172
|
+
await (0, import_proper_lockfile.lock)(lockPath, {
|
|
173
|
+
retries: 5,
|
|
174
|
+
stale: 1e4
|
|
175
|
+
// 10 seconds
|
|
176
|
+
});
|
|
177
|
+
const exists = await versionExists(catalogDir, resource.id, resource.version);
|
|
178
|
+
if (exists && !options.override) {
|
|
179
|
+
throw new Error(`Failed to write ${resource.id} (${options.type}) as the version ${resource.version} already exists`);
|
|
180
|
+
}
|
|
181
|
+
const { markdown, ...frontmatter } = resource;
|
|
182
|
+
if (options.versionExistingContent && !exists) {
|
|
183
|
+
const currentResource = await getResource(catalogDir, resource.id);
|
|
184
|
+
if (currentResource) {
|
|
185
|
+
if ((0, import_semver2.satisfies)(resource.version, `>${currentResource.version}`)) {
|
|
186
|
+
await versionResource(catalogDir, resource.id);
|
|
187
|
+
} else {
|
|
188
|
+
throw new Error(`New version ${resource.version} is not greater than current version ${currentResource.version}`);
|
|
189
|
+
}
|
|
179
190
|
}
|
|
180
191
|
}
|
|
192
|
+
const document = import_gray_matter2.default.stringify(markdown.trim(), frontmatter);
|
|
193
|
+
import_node_fs2.default.writeFileSync(lockPath, document);
|
|
194
|
+
} finally {
|
|
195
|
+
await (0, import_proper_lockfile.unlock)(lockPath).catch(() => {
|
|
196
|
+
});
|
|
181
197
|
}
|
|
182
|
-
const document = import_gray_matter2.default.stringify(markdown.trim(), frontmatter);
|
|
183
|
-
import_node_fs2.default.mkdirSync((0, import_path.join)(catalogDir, path), { recursive: true });
|
|
184
|
-
import_node_fs2.default.writeFileSync((0, import_path.join)(catalogDir, path, "index.md"), document);
|
|
185
198
|
};
|
|
186
199
|
var getResource = async (catalogDir, id, version, options) => {
|
|
187
200
|
const file = await findFileById(catalogDir, id, version);
|
|
@@ -213,14 +226,14 @@ var rmResourceById = async (catalogDir, id, version, options) => {
|
|
|
213
226
|
if (options?.persistFiles) {
|
|
214
227
|
await Promise.all(
|
|
215
228
|
matchedFiles.map(async (file) => {
|
|
216
|
-
await
|
|
229
|
+
await import_promises.default.rm(file, { recursive: true });
|
|
217
230
|
})
|
|
218
231
|
);
|
|
219
232
|
} else {
|
|
220
233
|
await Promise.all(
|
|
221
234
|
matchedFiles.map(async (file) => {
|
|
222
235
|
const directory = (0, import_path.dirname)(file);
|
|
223
|
-
await
|
|
236
|
+
await import_promises.default.rm(directory, { recursive: true, force: true });
|
|
224
237
|
})
|
|
225
238
|
);
|
|
226
239
|
}
|
|
@@ -233,7 +246,7 @@ var addFileToResource = async (catalogDir, id, file, version) => {
|
|
|
233
246
|
var getFileFromResource = async (catalogDir, id, file, version) => {
|
|
234
247
|
const pathToResource = await findFileById(catalogDir, id, version);
|
|
235
248
|
if (!pathToResource) throw new Error("Cannot find directory of resource");
|
|
236
|
-
const exists = await
|
|
249
|
+
const exists = await import_promises.default.access((0, import_path.join)((0, import_path.dirname)(pathToResource), file.fileName)).then(() => true).catch(() => false);
|
|
237
250
|
if (!exists) throw new Error(`File ${file.fileName} does not exist in resource ${id} v(${version})`);
|
|
238
251
|
return import_node_fs2.default.readFileSync((0, import_path.join)((0, import_path.dirname)(pathToResource), file.fileName), "utf-8");
|
|
239
252
|
};
|
|
@@ -251,7 +264,7 @@ var writeEventToService = (directory) => async (event, service, options = { path
|
|
|
251
264
|
await writeResource(directory, { ...event }, { ...options, path: pathForEvent, type: "event" });
|
|
252
265
|
};
|
|
253
266
|
var rmEvent = (directory) => async (path) => {
|
|
254
|
-
await
|
|
267
|
+
await import_promises2.default.rm((0, import_node_path2.join)(directory, path), { recursive: true });
|
|
255
268
|
};
|
|
256
269
|
var rmEventById = (directory) => async (id, version, persistFiles) => {
|
|
257
270
|
await rmResourceById(directory, id, version, { type: "event", persistFiles });
|
|
@@ -267,7 +280,7 @@ var eventHasVersion = (directory) => async (id, version) => {
|
|
|
267
280
|
};
|
|
268
281
|
|
|
269
282
|
// src/commands.ts
|
|
270
|
-
var
|
|
283
|
+
var import_promises3 = __toESM(require("fs/promises"));
|
|
271
284
|
var import_node_path3 = require("path");
|
|
272
285
|
var getCommand = (directory) => async (id, version) => getResource(directory, id, version, { type: "command" });
|
|
273
286
|
var getCommands = (directory) => async (options) => getResources(directory, { type: "commands", ...options });
|
|
@@ -278,7 +291,7 @@ var writeCommandToService = (directory) => async (command, service, options = {
|
|
|
278
291
|
await writeResource(directory, { ...command }, { ...options, path: pathForEvent, type: "command" });
|
|
279
292
|
};
|
|
280
293
|
var rmCommand = (directory) => async (path) => {
|
|
281
|
-
await
|
|
294
|
+
await import_promises3.default.rm((0, import_node_path3.join)(directory, path), { recursive: true });
|
|
282
295
|
};
|
|
283
296
|
var rmCommandById = (directory) => async (id, version, persistFiles) => rmResourceById(directory, id, version, { type: "command", persistFiles });
|
|
284
297
|
var versionCommand = (directory) => async (id) => versionResource(directory, id);
|
|
@@ -292,7 +305,7 @@ var commandHasVersion = (directory) => async (id, version) => {
|
|
|
292
305
|
};
|
|
293
306
|
|
|
294
307
|
// src/queries.ts
|
|
295
|
-
var
|
|
308
|
+
var import_promises4 = __toESM(require("fs/promises"));
|
|
296
309
|
var import_node_path4 = require("path");
|
|
297
310
|
var getQuery = (directory) => async (id, version) => getResource(directory, id, version, { type: "query" });
|
|
298
311
|
var writeQuery = (directory) => async (query, options = { path: "" }) => writeResource(directory, { ...query }, { ...options, type: "query" });
|
|
@@ -303,7 +316,7 @@ var writeQueryToService = (directory) => async (query, service, options = { path
|
|
|
303
316
|
await writeResource(directory, { ...query }, { ...options, path: pathForQuery, type: "query" });
|
|
304
317
|
};
|
|
305
318
|
var rmQuery = (directory) => async (path) => {
|
|
306
|
-
await
|
|
319
|
+
await import_promises4.default.rm((0, import_node_path4.join)(directory, path), { recursive: true });
|
|
307
320
|
};
|
|
308
321
|
var rmQueryById = (directory) => async (id, version, persistFiles) => {
|
|
309
322
|
await rmResourceById(directory, id, version, { type: "query", persistFiles });
|
|
@@ -319,7 +332,7 @@ var queryHasVersion = (directory) => async (id, version) => {
|
|
|
319
332
|
};
|
|
320
333
|
|
|
321
334
|
// src/services.ts
|
|
322
|
-
var
|
|
335
|
+
var import_promises5 = __toESM(require("fs/promises"));
|
|
323
336
|
var import_node_path5 = require("path");
|
|
324
337
|
var getService = (directory) => async (id, version) => getResource(directory, id, version, { type: "service" });
|
|
325
338
|
var getServices = (directory) => async (options) => getResources(directory, {
|
|
@@ -349,7 +362,7 @@ var writeServiceToDomain = (directory) => async (service, domain, options = { pa
|
|
|
349
362
|
};
|
|
350
363
|
var versionService = (directory) => async (id) => versionResource(directory, id);
|
|
351
364
|
var rmService = (directory) => async (path) => {
|
|
352
|
-
await
|
|
365
|
+
await import_promises5.default.rm((0, import_node_path5.join)(directory, path), { recursive: true });
|
|
353
366
|
};
|
|
354
367
|
var rmServiceById = (directory) => async (id, version, persistFiles) => rmResourceById(directory, id, version, { type: "service", persistFiles });
|
|
355
368
|
var addFileToService = (directory) => async (id, file, version) => addFileToResource(directory, id, file, version);
|
|
@@ -413,7 +426,7 @@ var serviceHasVersion = (directory) => async (id, version) => {
|
|
|
413
426
|
};
|
|
414
427
|
|
|
415
428
|
// src/domains.ts
|
|
416
|
-
var
|
|
429
|
+
var import_promises6 = __toESM(require("fs/promises"));
|
|
417
430
|
var import_node_path6 = require("path");
|
|
418
431
|
var getDomain = (directory) => async (id, version) => getResource(directory, id, version, { type: "domain" });
|
|
419
432
|
var getDomains = (directory) => async (options) => getResources(directory, {
|
|
@@ -430,7 +443,7 @@ var writeDomain = (directory) => async (domain, options = { path: "" }) => {
|
|
|
430
443
|
};
|
|
431
444
|
var versionDomain = (directory) => async (id) => versionResource(directory, id);
|
|
432
445
|
var rmDomain = (directory) => async (path) => {
|
|
433
|
-
await
|
|
446
|
+
await import_promises6.default.rm((0, import_node_path6.join)(directory, path), { recursive: true });
|
|
434
447
|
};
|
|
435
448
|
var rmDomainById = (directory) => async (id, version, persistFiles) => rmResourceById(directory, id, version, { type: "domain", persistFiles });
|
|
436
449
|
var addFileToDomain = (directory) => async (id, file, version) => addFileToResource(directory, id, file, version);
|
|
@@ -453,13 +466,13 @@ var addServiceToDomain = (directory) => async (id, service, version) => {
|
|
|
453
466
|
};
|
|
454
467
|
|
|
455
468
|
// src/channels.ts
|
|
456
|
-
var
|
|
469
|
+
var import_promises7 = __toESM(require("fs/promises"));
|
|
457
470
|
var import_node_path7 = require("path");
|
|
458
471
|
var getChannel = (directory) => async (id, version) => getResource(directory, id, version, { type: "channel" });
|
|
459
472
|
var getChannels = (directory) => async (options) => getResources(directory, { type: "channels", ...options });
|
|
460
473
|
var writeChannel = (directory) => async (channel, options = { path: "" }) => writeResource(directory, { ...channel }, { ...options, type: "channel" });
|
|
461
474
|
var rmChannel = (directory) => async (path) => {
|
|
462
|
-
await
|
|
475
|
+
await import_promises7.default.rm((0, import_node_path7.join)(directory, path), { recursive: true });
|
|
463
476
|
};
|
|
464
477
|
var rmChannelById = (directory) => async (id, version, persistFiles) => rmResourceById(directory, id, version, { type: "channel", persistFiles });
|
|
465
478
|
var versionChannel = (directory) => async (id) => versionResource(directory, id);
|
|
@@ -505,7 +518,7 @@ var addMessageToChannel = (directory, collection) => async (id, _message, versio
|
|
|
505
518
|
};
|
|
506
519
|
|
|
507
520
|
// src/teams.ts
|
|
508
|
-
var
|
|
521
|
+
var import_promises8 = __toESM(require("fs/promises"));
|
|
509
522
|
var import_node_fs3 = __toESM(require("fs"));
|
|
510
523
|
var import_node_path8 = require("path");
|
|
511
524
|
var import_gray_matter3 = __toESM(require("gray-matter"));
|
|
@@ -547,7 +560,7 @@ var writeTeam = (catalogDir) => async (team, options = {}) => {
|
|
|
547
560
|
import_node_fs3.default.writeFileSync((0, import_node_path8.join)(catalogDir, "", `${resource.id}.md`), document);
|
|
548
561
|
};
|
|
549
562
|
var rmTeamById = (catalogDir) => async (id) => {
|
|
550
|
-
await
|
|
563
|
+
await import_promises8.default.rm((0, import_node_path8.join)(catalogDir, `${id}.md`), { recursive: true });
|
|
551
564
|
};
|
|
552
565
|
|
|
553
566
|
// src/users.ts
|