@eventcatalog/core 5.0.0-beta.2 → 5.0.0-beta.20
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/LICENSE +234 -134
- package/README.md +5 -5
- package/dist/analytics/analytics.cjs +18 -3
- package/dist/analytics/analytics.d.cts +1 -1
- package/dist/analytics/analytics.d.ts +1 -1
- package/dist/analytics/analytics.js +3 -2
- package/dist/analytics/log-build.cjs +71 -35
- package/dist/analytics/log-build.js +5 -4
- package/dist/analytics/telemetry.cjs +42 -0
- package/dist/analytics/telemetry.d.cts +20 -0
- package/dist/analytics/telemetry.d.ts +20 -0
- package/dist/analytics/telemetry.js +8 -0
- package/dist/catalog-runtime.cjs +1 -1
- package/dist/{chunk-HGRFXTFC.js → chunk-3VQSVQTU.js} +1 -1
- package/dist/{chunk-KIDISU6X.js → chunk-5ZUN2TXB.js} +56 -33
- package/dist/{chunk-TQLRG35T.js → chunk-AWOO63ME.js} +71 -45
- package/dist/chunk-CPW6G62V.js +17 -0
- package/dist/{chunk-4J2ZM2HX.js → chunk-F236OJZD.js} +1 -1
- package/dist/{chunk-XARPIXWF.js → chunk-FWH5T6U4.js} +9 -3
- package/dist/{chunk-62EV4IJA.js → chunk-R2X4ZEF6.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/eventcatalog.cjs +214 -129
- package/dist/eventcatalog.config.d.cts +59 -1
- package/dist/eventcatalog.config.d.ts +59 -1
- package/dist/eventcatalog.js +39 -15
- package/dist/federation/federate.js +2 -2
- package/dist/generate.cjs +1 -1
- package/dist/generate.js +3 -3
- package/dist/runtime-dependencies/@eventcatalog__visualiser__studio-fonts.css.mjs +3 -0
- package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.css.mjs +3 -0
- package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.mjs +3 -0
- package/dist/runtime-dependencies/@hocuspocus__provider.mjs +3 -0
- package/dist/runtime-dependencies/@hocuspocus__server.mjs +3 -0
- package/dist/runtime-dependencies/@mcp-b__webmcp-local-relay.mjs +3 -0
- package/dist/runtime-dependencies/@mcp-b__webmcp-polyfill.mjs +3 -0
- package/dist/runtime-dependencies/htmlparser2.mjs +3 -0
- package/dist/runtime-dependencies/manifest.json +13 -1
- package/dist/runtime-dependencies/react-hotkeys-hook.mjs +3 -0
- package/dist/runtime-dependencies/react-syntax-highlighter__dist__cjs__create-element.js.mjs +3 -0
- package/dist/runtime-dependencies/y-protocols.mjs +3 -0
- package/dist/runtime-dependencies/y-protocols__awareness.mjs +3 -0
- package/dist/runtime-dependencies/yjs.mjs +3 -0
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/dist/utils/license-status.cjs +71 -45
- package/dist/utils/license-status.d.cts +14 -5
- package/dist/utils/license-status.d.ts +14 -5
- package/dist/utils/license-status.js +1 -1
- package/eventcatalog/astro.config.mjs +23 -1
- package/eventcatalog/integrations/skip-startup-reload.mjs +31 -0
- package/eventcatalog/integrations/stable-dependency-order.mjs +29 -0
- package/eventcatalog/integrations/storage.mjs +20 -0
- package/eventcatalog/integrations/studio-server.mjs +32 -0
- package/eventcatalog/src/components/CatalogGraph/CatalogForceGraph.tsx +39 -0
- package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +2 -0
- package/eventcatalog/src/components/Grids/utils.tsx +0 -23
- package/eventcatalog/src/components/Header.astro +3 -3
- package/eventcatalog/src/components/MDX/CodeGroup/CodeGroup.tsx +6 -1
- package/eventcatalog/src/components/MDX/NodeGraph/AstroNodeGraph.tsx +42 -3
- package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +5 -1
- package/eventcatalog/src/components/NavigationProgress.astro +7 -0
- package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +2 -0
- package/eventcatalog/src/components/SchemaExplorer/ExamplesViewer.tsx +2 -0
- package/eventcatalog/src/components/SchemaExplorer/SchemaCodeModal.tsx +2 -0
- package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +2 -0
- package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsPanel.tsx +12 -4
- package/eventcatalog/src/components/Search/SearchDataLoader.astro +16 -28
- package/eventcatalog/src/components/Search/SearchModal.tsx +2 -10
- package/eventcatalog/src/components/Search/search-utils.ts +26 -0
- package/eventcatalog/src/components/Seo.astro +5 -1
- package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +53 -83
- package/eventcatalog/src/components/SideNav/NestedSideBar/storage.ts +2 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/utils.ts +131 -0
- package/eventcatalog/src/components/SideNav/SideNav.astro +9 -1
- package/eventcatalog/src/components/Tables/Discover/DiscoverTable.tsx +4 -62
- package/eventcatalog/src/components/Tables/Discover/columns.tsx +17 -150
- package/eventcatalog/src/components/Tables/Resources/ResourcesTable.tsx +425 -0
- package/eventcatalog/src/components/Tables/RowActionsMenu.tsx +157 -0
- package/eventcatalog/src/components/Tables/TablePagination.tsx +82 -0
- package/eventcatalog/src/features/ai/chat-api.ts +3 -3
- package/eventcatalog/src/features/auth/error.astro +4 -2
- package/eventcatalog/src/features/auth/login.astro +2 -1
- package/eventcatalog/src/features/auth/middleware/middleware-auth.ts +10 -0
- package/eventcatalog/src/features/auth/unauthorized.astro +1 -1
- package/eventcatalog/src/features/fields/pages/fields.astro +1 -1
- package/eventcatalog/src/features/integrations/eventcatalog-features.ts +34 -1
- package/eventcatalog/src/features/mcp/apps/architecture-diagram/node-chat.tsx +6 -45
- package/eventcatalog/src/features/mcp/apps/canvas/shared.ts +47 -0
- package/eventcatalog/src/features/mcp/apps/canvas/styles.css +24 -0
- package/eventcatalog/src/features/mcp/apps/canvas/view.tsx +278 -0
- package/eventcatalog/src/features/mcp/apps/generated/canvas.html +272 -0
- package/eventcatalog/src/features/mcp/apps/generated/viewer.html +77 -76
- package/eventcatalog/src/features/mcp/apps/shared/app-view.tsx +2 -1
- package/eventcatalog/src/features/mcp/mcp-apps.ts +6 -3
- package/eventcatalog/src/features/mcp/mcp-server.ts +36 -5
- package/eventcatalog/src/features/server/start.ts +25 -0
- package/eventcatalog/src/features/storage/database.ts +88 -0
- package/eventcatalog/src/features/storage/migrations.ts +85 -0
- package/eventcatalog/src/features/storage/sql/database.sql +5 -0
- package/eventcatalog/src/features/storage/sql/migrations/0001-studio-canvases.sql +12 -0
- package/eventcatalog/src/features/storage/sql/migrations.sql +15 -0
- package/eventcatalog/src/features/storage/sql.ts +28 -0
- package/eventcatalog/src/features/studio/agent-choreography.ts +384 -0
- package/eventcatalog/src/features/studio/agents.ts +28 -0
- package/eventcatalog/src/features/studio/api/canvases-api.ts +219 -0
- package/eventcatalog/src/features/studio/api/canvases.ts +25 -0
- package/eventcatalog/src/features/studio/api/client.ts +40 -0
- package/eventcatalog/src/features/studio/canvas-actions.ts +540 -0
- package/eventcatalog/src/features/studio/canvas-preview.ts +52 -0
- package/eventcatalog/src/features/studio/catalog-resources.ts +155 -0
- package/eventcatalog/src/features/studio/catalog.ts +173 -0
- package/eventcatalog/src/features/studio/components/CanvasHeader.tsx +518 -0
- package/eventcatalog/src/features/studio/components/CanvasStatusMenu.tsx +118 -0
- package/eventcatalog/src/features/studio/components/ConnectAgentDialog.tsx +434 -0
- package/eventcatalog/src/features/studio/components/ConnectionsChooser.tsx +143 -0
- package/eventcatalog/src/features/studio/components/DeleteCanvasDialog.tsx +65 -0
- package/eventcatalog/src/features/studio/components/Dialog.tsx +60 -0
- package/eventcatalog/src/features/studio/components/JoinForm.tsx +109 -0
- package/eventcatalog/src/features/studio/components/LeftPanel.tsx +203 -0
- package/eventcatalog/src/features/studio/components/NodeDetails.tsx +183 -0
- package/eventcatalog/src/features/studio/components/OpenInStudioDialog.tsx +79 -0
- package/eventcatalog/src/features/studio/components/Presence.tsx +293 -0
- package/eventcatalog/src/features/studio/components/ShareDialog.tsx +396 -0
- package/eventcatalog/src/features/studio/components/ShortcutsDialog.tsx +41 -0
- package/eventcatalog/src/features/studio/components/StudioDesigner.tsx +2091 -0
- package/eventcatalog/src/features/studio/components/StudioNotice.astro +24 -0
- package/eventcatalog/src/features/studio/document-name.ts +7 -0
- package/eventcatalog/src/features/studio/from-visualiser.ts +138 -0
- package/eventcatalog/src/features/studio/hooks/presence-sender.ts +63 -0
- package/eventcatalog/src/features/studio/hooks/presence-store.ts +119 -0
- package/eventcatalog/src/features/studio/hooks/use-canvas-webmcp.ts +353 -0
- package/eventcatalog/src/features/studio/hooks/use-comments.ts +54 -0
- package/eventcatalog/src/features/studio/hooks/use-follow-camera.ts +109 -0
- package/eventcatalog/src/features/studio/hooks/use-studio-flow.ts +782 -0
- package/eventcatalog/src/features/studio/identity.ts +59 -0
- package/eventcatalog/src/features/studio/limits.ts +2 -0
- package/eventcatalog/src/features/studio/pages/[id].astro +69 -0
- package/eventcatalog/src/features/studio/pages/index.astro +784 -0
- package/eventcatalog/src/features/studio/pages/webmcp-relay.ts +27 -0
- package/eventcatalog/src/features/studio/server/canvas-mcp.ts +495 -0
- package/eventcatalog/src/features/studio/server/runtime.ts +498 -0
- package/eventcatalog/src/features/studio/server/sign-in.ts +18 -0
- package/eventcatalog/src/features/studio/server/sql/storage.sql +18 -0
- package/eventcatalog/src/features/studio/server/storage.ts +90 -0
- package/eventcatalog/src/features/studio/server/tool-icons.ts +30 -0
- package/eventcatalog/src/features/studio/tool-sync.ts +75 -0
- package/eventcatalog/src/layouts/BaseLayout.astro +4 -4
- package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +13 -7
- package/eventcatalog/src/pages/_index.astro +1 -1
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.spec.ts +52 -63
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +34 -46
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +11 -29
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_ResourcesPage.astro +79 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.spec.ts +32 -14
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.ts +63 -58
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/index.astro +2 -62
- package/eventcatalog/src/pages/docs/[type]/[id]/index.astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/[version]/resources/index.astro +13 -0
- package/eventcatalog/src/pages/index.astro +1 -1
- package/eventcatalog/src/pages/schemas/explorer/index.astro +1 -1
- package/eventcatalog/src/pages/visualiser/[type]/[id]/index.astro +1 -1
- package/eventcatalog/src/stores/sidebar-store/builders/domain.ts +24 -42
- package/eventcatalog/src/stores/sidebar-store/builders/flow.ts +2 -0
- package/eventcatalog/src/stores/sidebar-store/builders/message.ts +2 -0
- package/eventcatalog/src/stores/sidebar-store/builders/service.ts +23 -23
- package/eventcatalog/src/stores/sidebar-store/builders/shared.ts +13 -0
- package/eventcatalog/src/stores/sidebar-store/builders/system.ts +18 -27
- package/eventcatalog/src/stores/sidebar-store/state.ts +5 -0
- package/eventcatalog/src/styles/tailwind.css +2 -2
- package/eventcatalog/src/types/react-syntax-highlighter.d.ts +10 -0
- package/eventcatalog/src/utils/collections/channels.ts +56 -1
- package/eventcatalog/src/utils/collections/flows.ts +50 -1
- package/eventcatalog/src/utils/collections/message-connections.ts +60 -0
- package/eventcatalog/src/utils/collections/message-triggers.ts +2 -1
- package/eventcatalog/src/utils/collections/resource-owners.ts +193 -0
- package/eventcatalog/src/utils/collections/resources.ts +310 -0
- package/eventcatalog/src/utils/collections/util.ts +31 -0
- package/eventcatalog/src/utils/feature.ts +8 -0
- package/eventcatalog/src/utils/git.ts +11 -5
- package/eventcatalog/src/utils/link-validation.ts +25 -19
- package/eventcatalog/src/utils/node-graphs/domain-entity-map.ts +3 -1
- package/eventcatalog/src/utils/node-graphs/domain-levels-node-graph.ts +3 -3
- package/eventcatalog/src/utils/node-graphs/export-mermaid.ts +0 -2
- package/eventcatalog/src/utils/node-graphs/layout-node-graph.ts +20 -1
- package/eventcatalog/src/utils/node-graphs/node-resource.ts +67 -0
- package/eventcatalog/src/utils/node-graphs/systems-node-graph.ts +1 -1
- package/eventcatalog/src/utils/page-title.ts +15 -0
- package/eventcatalog/src/utils/syntax-highlighter-renderer.ts +64 -0
- package/eventcatalog/src/utils/trial.ts +1 -1
- package/package.json +22 -16
- package/dist/runtime-dependencies/shelljs.mjs +0 -3
- package/eventcatalog/public/studio-bg.png +0 -0
- package/eventcatalog/src/components/Grids/DomainGrid.tsx +0 -838
- package/eventcatalog/src/components/Grids/MessageGrid.tsx +0 -344
- package/eventcatalog/src/components/Grids/SystemGrid.tsx +0 -185
- package/eventcatalog/src/components/Grids/components.tsx +0 -170
- package/eventcatalog/src/components/Grids/message-link.ts +0 -38
- package/eventcatalog/src/components/Studio/StudioPageModal.tsx +0 -150
- package/eventcatalog/src/components/Tables/SystemResources/SystemResourcesTable.tsx +0 -294
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_resources.spec.ts +0 -65
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_resources.ts +0 -46
- package/eventcatalog/src/pages/studio.astro +0 -316
- package/dist/{chunk-AYNZXUB5.js → chunk-KHACCTW2.js} +3 -3
|
@@ -176,13 +176,27 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
|
|
|
176
176
|
var import_os = __toESM(require("os"), 1);
|
|
177
177
|
|
|
178
178
|
// package.json
|
|
179
|
-
var version = "5.0.0-beta.
|
|
179
|
+
var version = "5.0.0-beta.20";
|
|
180
180
|
|
|
181
181
|
// src/constants.ts
|
|
182
182
|
var VERSION = version;
|
|
183
183
|
|
|
184
|
+
// src/analytics/telemetry.ts
|
|
185
|
+
var TELEMETRY_REQUEST_TIMEOUT_MS = 2e3;
|
|
186
|
+
var isOptOutEnvValue = (value) => {
|
|
187
|
+
if (typeof value !== "string") return false;
|
|
188
|
+
const normalized = value.trim().toLowerCase();
|
|
189
|
+
return normalized === "1" || normalized === "true";
|
|
190
|
+
};
|
|
191
|
+
var isTelemetryDisabled = (config, env) => {
|
|
192
|
+
if (isOptOutEnvValue(env.EVENTCATALOG_TELEMETRY_DISABLED)) return true;
|
|
193
|
+
if (isOptOutEnvValue(env.DO_NOT_TRACK)) return true;
|
|
194
|
+
return config?.telemetry === false;
|
|
195
|
+
};
|
|
196
|
+
|
|
184
197
|
// src/analytics/analytics.js
|
|
185
|
-
async function raiseEvent(eventData) {
|
|
198
|
+
async function raiseEvent(eventData, config) {
|
|
199
|
+
if (isTelemetryDisabled(config, process.env)) return;
|
|
186
200
|
if (typeof eventData?.command !== "string" || typeof eventData?.cId !== "string") return;
|
|
187
201
|
const url = "https://queue.simpleanalyticscdn.com/events";
|
|
188
202
|
const userAgent = `@eventcatalog/eventcatalog@${VERSION} (${import_os.default.platform()}; ${import_os.default.arch()}; Node/${process.version})`;
|
|
@@ -204,7 +218,8 @@ async function raiseEvent(eventData) {
|
|
|
204
218
|
const response = await fetch(url, {
|
|
205
219
|
method: "POST",
|
|
206
220
|
headers,
|
|
207
|
-
body: JSON.stringify(payload)
|
|
221
|
+
body: JSON.stringify(payload),
|
|
222
|
+
signal: AbortSignal.timeout(TELEMETRY_REQUEST_TIMEOUT_MS)
|
|
208
223
|
});
|
|
209
224
|
if (!response.ok) {
|
|
210
225
|
throw new Error(`Failed to raise analytics event: ${response.status}`);
|
|
@@ -281,10 +296,11 @@ function serializeCounts(counts) {
|
|
|
281
296
|
|
|
282
297
|
// src/utils/license-status.ts
|
|
283
298
|
var import_boxen = __toESM(require("boxen"), 1);
|
|
299
|
+
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
284
300
|
var import_license2 = require("@eventcatalog/license");
|
|
285
301
|
|
|
286
302
|
// eventcatalog/src/utils/trial.ts
|
|
287
|
-
var TRIAL_LENGTH_DAYS =
|
|
303
|
+
var TRIAL_LENGTH_DAYS = 60;
|
|
288
304
|
var DAY_IN_MS = 24 * 60 * 60 * 1e3;
|
|
289
305
|
var getTrialStatus = (tsd, now = Date.now()) => {
|
|
290
306
|
if (typeof tsd !== "number" || !Number.isFinite(tsd) || tsd <= 0) return;
|
|
@@ -311,6 +327,7 @@ var getLicenseAnalytics = (license = { state: "none" }, tsd) => ({
|
|
|
311
327
|
licenseExpiry: "expiresAt" in license ? license.expiresAt?.getTime() : void 0,
|
|
312
328
|
trialExpiry: getTrialStatus(tsd)?.endsAt.getTime()
|
|
313
329
|
});
|
|
330
|
+
var COLOURS = { bold: import_picocolors.default.bold, dim: import_picocolors.default.dim, link: (text) => import_picocolors.default.cyan(text) };
|
|
314
331
|
|
|
315
332
|
// src/analytics/log-build.js
|
|
316
333
|
var isMCPEnabled = (configFile) => configFile.output === "server" && (configFile.mcp?.enabled ?? true);
|
|
@@ -367,50 +384,69 @@ var toCloudResourceCounts = (counts) => ({
|
|
|
367
384
|
customPages: counts.customPages || 0,
|
|
368
385
|
customApis: counts.customApis || 0
|
|
369
386
|
});
|
|
370
|
-
var
|
|
387
|
+
var getEnabledCloudAnalytics = (configFile) => {
|
|
371
388
|
const analytics = configFile.cloud?.analytics;
|
|
372
|
-
if (!analytics?.enabled || !analytics.trackingId || !analytics.writeKey) return;
|
|
389
|
+
if (!analytics?.enabled || !analytics.trackingId || !analytics.writeKey) return null;
|
|
390
|
+
return analytics;
|
|
391
|
+
};
|
|
392
|
+
var reportCloudResourceInventory = async (configFile, resourceCounts) => {
|
|
393
|
+
const analytics = getEnabledCloudAnalytics(configFile);
|
|
394
|
+
if (!analytics) return;
|
|
373
395
|
const endpoint = analytics.endpoint || CLOUD_ANALYTICS_ENDPOINT;
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
396
|
+
try {
|
|
397
|
+
await fetch(endpoint, {
|
|
398
|
+
method: "POST",
|
|
399
|
+
headers: {
|
|
400
|
+
"Content-Type": "application/json",
|
|
401
|
+
"X-EventCatalog-Analytics-Key": analytics.writeKey
|
|
402
|
+
},
|
|
403
|
+
body: JSON.stringify({
|
|
404
|
+
trackingId: analytics.trackingId,
|
|
405
|
+
event: "catalog.resource_inventory_reported",
|
|
406
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
407
|
+
counts: toCloudResourceCounts(resourceCounts)
|
|
408
|
+
}),
|
|
409
|
+
signal: AbortSignal.timeout(TELEMETRY_REQUEST_TIMEOUT_MS)
|
|
410
|
+
});
|
|
411
|
+
} catch {
|
|
412
|
+
}
|
|
387
413
|
};
|
|
388
414
|
var main = async (projectDir, { command = "build", license } = {}) => {
|
|
389
415
|
try {
|
|
390
416
|
await verifyRequiredFieldsAreInCatalogConfigFile(projectDir);
|
|
391
417
|
const configFile = await getEventCatalogConfigFile(projectDir);
|
|
418
|
+
if (isTelemetryDisabled(configFile, process.env)) {
|
|
419
|
+
if (getEnabledCloudAnalytics(configFile)) {
|
|
420
|
+
const resourceCounts2 = await countResources(projectDir);
|
|
421
|
+
await reportCloudResourceInventory(configFile, resourceCounts2);
|
|
422
|
+
}
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
392
425
|
const { cId, tsd, organizationName, generators = [] } = configFile;
|
|
393
426
|
const generatorNames = generators.length > 0 ? generators.map((generator) => generator[0]) : ["none"];
|
|
394
427
|
const features = await getFeatures(configFile);
|
|
395
428
|
const resourceCounts = await countResources(projectDir);
|
|
396
429
|
const contentHash = await hashCatalogContent(projectDir);
|
|
397
430
|
await reportCloudResourceInventory(configFile, resourceCounts);
|
|
398
|
-
await raiseEvent(
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
431
|
+
await raiseEvent(
|
|
432
|
+
{
|
|
433
|
+
command,
|
|
434
|
+
org: organizationName,
|
|
435
|
+
cId,
|
|
436
|
+
// Trial start date (unix ms) from eventcatalog.config.js
|
|
437
|
+
tsd,
|
|
438
|
+
// Commercial license or trial, and when each expires (unix ms)
|
|
439
|
+
...getLicenseAnalytics(license, tsd),
|
|
440
|
+
// CI redeploys and human-run builds are different signals; tag rather than suppress
|
|
441
|
+
ci: process.env.CI ? "true" : "false",
|
|
442
|
+
contentHash,
|
|
443
|
+
generators: generatorNames.toString(),
|
|
444
|
+
features: Object.keys(features).map((feature) => `${feature}:${features[feature]}`).join(","),
|
|
445
|
+
directorySources: serializeDirectorySources(configFile),
|
|
446
|
+
resources: serializeCounts(resourceCounts)
|
|
447
|
+
},
|
|
448
|
+
configFile
|
|
449
|
+
);
|
|
414
450
|
} catch (error) {
|
|
415
451
|
}
|
|
416
452
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
log_build_default
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-5ZUN2TXB.js";
|
|
4
|
+
import "../chunk-AWOO63ME.js";
|
|
5
5
|
import "../chunk-ZAZHAVKB.js";
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-FWH5T6U4.js";
|
|
7
|
+
import "../chunk-CPW6G62V.js";
|
|
8
|
+
import "../chunk-R2X4ZEF6.js";
|
|
8
9
|
import "../chunk-RFIXKATC.js";
|
|
9
10
|
export {
|
|
10
11
|
log_build_default as default
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/analytics/telemetry.ts
|
|
21
|
+
var telemetry_exports = {};
|
|
22
|
+
__export(telemetry_exports, {
|
|
23
|
+
TELEMETRY_REQUEST_TIMEOUT_MS: () => TELEMETRY_REQUEST_TIMEOUT_MS,
|
|
24
|
+
isTelemetryDisabled: () => isTelemetryDisabled
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(telemetry_exports);
|
|
27
|
+
var TELEMETRY_REQUEST_TIMEOUT_MS = 2e3;
|
|
28
|
+
var isOptOutEnvValue = (value) => {
|
|
29
|
+
if (typeof value !== "string") return false;
|
|
30
|
+
const normalized = value.trim().toLowerCase();
|
|
31
|
+
return normalized === "1" || normalized === "true";
|
|
32
|
+
};
|
|
33
|
+
var isTelemetryDisabled = (config, env) => {
|
|
34
|
+
if (isOptOutEnvValue(env.EVENTCATALOG_TELEMETRY_DISABLED)) return true;
|
|
35
|
+
if (isOptOutEnvValue(env.DO_NOT_TRACK)) return true;
|
|
36
|
+
return config?.telemetry === false;
|
|
37
|
+
};
|
|
38
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
39
|
+
0 && (module.exports = {
|
|
40
|
+
TELEMETRY_REQUEST_TIMEOUT_MS,
|
|
41
|
+
isTelemetryDisabled
|
|
42
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** How long a telemetry request may take before it is aborted. */
|
|
2
|
+
declare const TELEMETRY_REQUEST_TIMEOUT_MS = 2000;
|
|
3
|
+
type TelemetryConfig = {
|
|
4
|
+
telemetry?: boolean;
|
|
5
|
+
};
|
|
6
|
+
type TelemetryEnv = {
|
|
7
|
+
EVENTCATALOG_TELEMETRY_DISABLED?: string;
|
|
8
|
+
DO_NOT_TRACK?: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Anonymous telemetry is on unless the catalog opts out.
|
|
12
|
+
* Opt out with EVENTCATALOG_TELEMETRY_DISABLED or DO_NOT_TRACK set to "1" or "true"
|
|
13
|
+
* (any case), or with telemetry: false in eventcatalog.config.js.
|
|
14
|
+
*
|
|
15
|
+
* packages/create-eventcatalog/templates/telemetry.ts copies the env rules and
|
|
16
|
+
* TELEMETRY_REQUEST_TIMEOUT_MS. Keep that copy in sync.
|
|
17
|
+
*/
|
|
18
|
+
declare const isTelemetryDisabled: (config: TelemetryConfig | null | undefined, env: TelemetryEnv) => boolean;
|
|
19
|
+
|
|
20
|
+
export { TELEMETRY_REQUEST_TIMEOUT_MS, isTelemetryDisabled };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** How long a telemetry request may take before it is aborted. */
|
|
2
|
+
declare const TELEMETRY_REQUEST_TIMEOUT_MS = 2000;
|
|
3
|
+
type TelemetryConfig = {
|
|
4
|
+
telemetry?: boolean;
|
|
5
|
+
};
|
|
6
|
+
type TelemetryEnv = {
|
|
7
|
+
EVENTCATALOG_TELEMETRY_DISABLED?: string;
|
|
8
|
+
DO_NOT_TRACK?: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Anonymous telemetry is on unless the catalog opts out.
|
|
12
|
+
* Opt out with EVENTCATALOG_TELEMETRY_DISABLED or DO_NOT_TRACK set to "1" or "true"
|
|
13
|
+
* (any case), or with telemetry: false in eventcatalog.config.js.
|
|
14
|
+
*
|
|
15
|
+
* packages/create-eventcatalog/templates/telemetry.ts copies the env rules and
|
|
16
|
+
* TELEMETRY_REQUEST_TIMEOUT_MS. Keep that copy in sync.
|
|
17
|
+
*/
|
|
18
|
+
declare const isTelemetryDisabled: (config: TelemetryConfig | null | undefined, env: TelemetryEnv) => boolean;
|
|
19
|
+
|
|
20
|
+
export { TELEMETRY_REQUEST_TIMEOUT_MS, isTelemetryDisabled };
|
package/dist/catalog-runtime.cjs
CHANGED
|
@@ -36,7 +36,7 @@ __export(catalog_runtime_exports, {
|
|
|
36
36
|
});
|
|
37
37
|
module.exports = __toCommonJS(catalog_runtime_exports);
|
|
38
38
|
|
|
39
|
-
// ../../node_modules/.pnpm/tsup@8.5.0_jiti@2.7.0_postcss@8.5.
|
|
39
|
+
// ../../node_modules/.pnpm/tsup@8.5.0_jiti@2.7.0_postcss@8.5.29_tsx@4.23.15_typescript@5.9.3_yaml@2.9.1/node_modules/tsup/assets/cjs_shims.js
|
|
40
40
|
var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
|
|
41
41
|
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
42
42
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getLicenseAnalytics
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AWOO63ME.js";
|
|
4
4
|
import {
|
|
5
5
|
countResources,
|
|
6
6
|
hashCatalogContent,
|
|
@@ -8,7 +8,11 @@ import {
|
|
|
8
8
|
} from "./chunk-ZAZHAVKB.js";
|
|
9
9
|
import {
|
|
10
10
|
raiseEvent
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-FWH5T6U4.js";
|
|
12
|
+
import {
|
|
13
|
+
TELEMETRY_REQUEST_TIMEOUT_MS,
|
|
14
|
+
isTelemetryDisabled
|
|
15
|
+
} from "./chunk-CPW6G62V.js";
|
|
12
16
|
import {
|
|
13
17
|
getEventCatalogConfigFile,
|
|
14
18
|
verifyRequiredFieldsAreInCatalogConfigFile
|
|
@@ -69,50 +73,69 @@ var toCloudResourceCounts = (counts) => ({
|
|
|
69
73
|
customPages: counts.customPages || 0,
|
|
70
74
|
customApis: counts.customApis || 0
|
|
71
75
|
});
|
|
72
|
-
var
|
|
76
|
+
var getEnabledCloudAnalytics = (configFile) => {
|
|
73
77
|
const analytics = configFile.cloud?.analytics;
|
|
74
|
-
if (!analytics?.enabled || !analytics.trackingId || !analytics.writeKey) return;
|
|
78
|
+
if (!analytics?.enabled || !analytics.trackingId || !analytics.writeKey) return null;
|
|
79
|
+
return analytics;
|
|
80
|
+
};
|
|
81
|
+
var reportCloudResourceInventory = async (configFile, resourceCounts) => {
|
|
82
|
+
const analytics = getEnabledCloudAnalytics(configFile);
|
|
83
|
+
if (!analytics) return;
|
|
75
84
|
const endpoint = analytics.endpoint || CLOUD_ANALYTICS_ENDPOINT;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
try {
|
|
86
|
+
await fetch(endpoint, {
|
|
87
|
+
method: "POST",
|
|
88
|
+
headers: {
|
|
89
|
+
"Content-Type": "application/json",
|
|
90
|
+
"X-EventCatalog-Analytics-Key": analytics.writeKey
|
|
91
|
+
},
|
|
92
|
+
body: JSON.stringify({
|
|
93
|
+
trackingId: analytics.trackingId,
|
|
94
|
+
event: "catalog.resource_inventory_reported",
|
|
95
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
96
|
+
counts: toCloudResourceCounts(resourceCounts)
|
|
97
|
+
}),
|
|
98
|
+
signal: AbortSignal.timeout(TELEMETRY_REQUEST_TIMEOUT_MS)
|
|
99
|
+
});
|
|
100
|
+
} catch {
|
|
101
|
+
}
|
|
89
102
|
};
|
|
90
103
|
var main = async (projectDir, { command = "build", license } = {}) => {
|
|
91
104
|
try {
|
|
92
105
|
await verifyRequiredFieldsAreInCatalogConfigFile(projectDir);
|
|
93
106
|
const configFile = await getEventCatalogConfigFile(projectDir);
|
|
107
|
+
if (isTelemetryDisabled(configFile, process.env)) {
|
|
108
|
+
if (getEnabledCloudAnalytics(configFile)) {
|
|
109
|
+
const resourceCounts2 = await countResources(projectDir);
|
|
110
|
+
await reportCloudResourceInventory(configFile, resourceCounts2);
|
|
111
|
+
}
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
94
114
|
const { cId, tsd, organizationName, generators = [] } = configFile;
|
|
95
115
|
const generatorNames = generators.length > 0 ? generators.map((generator) => generator[0]) : ["none"];
|
|
96
116
|
const features = await getFeatures(configFile);
|
|
97
117
|
const resourceCounts = await countResources(projectDir);
|
|
98
118
|
const contentHash = await hashCatalogContent(projectDir);
|
|
99
119
|
await reportCloudResourceInventory(configFile, resourceCounts);
|
|
100
|
-
await raiseEvent(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
120
|
+
await raiseEvent(
|
|
121
|
+
{
|
|
122
|
+
command,
|
|
123
|
+
org: organizationName,
|
|
124
|
+
cId,
|
|
125
|
+
// Trial start date (unix ms) from eventcatalog.config.js
|
|
126
|
+
tsd,
|
|
127
|
+
// Commercial license or trial, and when each expires (unix ms)
|
|
128
|
+
...getLicenseAnalytics(license, tsd),
|
|
129
|
+
// CI redeploys and human-run builds are different signals; tag rather than suppress
|
|
130
|
+
ci: process.env.CI ? "true" : "false",
|
|
131
|
+
contentHash,
|
|
132
|
+
generators: generatorNames.toString(),
|
|
133
|
+
features: Object.keys(features).map((feature) => `${feature}:${features[feature]}`).join(","),
|
|
134
|
+
directorySources: serializeDirectorySources(configFile),
|
|
135
|
+
resources: serializeCounts(resourceCounts)
|
|
136
|
+
},
|
|
137
|
+
configFile
|
|
138
|
+
);
|
|
116
139
|
} catch (error) {
|
|
117
140
|
}
|
|
118
141
|
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// src/utils/license-status.ts
|
|
2
2
|
import boxen from "boxen";
|
|
3
|
+
import pc from "picocolors";
|
|
3
4
|
import { isEventCatalogScaleEnabled, isEventCatalogStarterEnabled } from "@eventcatalog/license";
|
|
4
5
|
|
|
5
6
|
// eventcatalog/src/utils/trial.ts
|
|
6
|
-
var TRIAL_LENGTH_DAYS =
|
|
7
|
+
var TRIAL_LENGTH_DAYS = 60;
|
|
7
8
|
var LICENSE_FAQ_URL = "https://www.eventcatalog.dev/license-faq";
|
|
8
9
|
var LICENSE_RENEW_URL = "https://eventcatalog.cloud";
|
|
9
10
|
var DAY_IN_MS = 24 * 60 * 60 * 1e3;
|
|
@@ -122,75 +123,100 @@ var getLicenseAnalytics = (license = { state: "none" }, tsd) => ({
|
|
|
122
123
|
});
|
|
123
124
|
var formatDate = (date) => date.toLocaleDateString(void 0, { dateStyle: "medium" });
|
|
124
125
|
var formatDays = (days) => `${days} ${days === 1 ? "day" : "days"}`;
|
|
125
|
-
var
|
|
126
|
+
var PLAIN = { bold: (text) => text, dim: (text) => text, link: (text) => text };
|
|
127
|
+
var COLOURS = { bold: pc.bold, dim: pc.dim, link: (text) => pc.cyan(text) };
|
|
128
|
+
var render = ({ headline, rows, links }, colours) => {
|
|
129
|
+
const width = Math.max(0, ...[...rows, ...links].map(([label]) => label.length));
|
|
130
|
+
const row = ([label, value]) => `${colours.dim(label.padEnd(width))} ${value}`;
|
|
131
|
+
return [
|
|
132
|
+
colours.bold(headline),
|
|
133
|
+
...rows.length ? ["", ...rows.map(row)] : [],
|
|
134
|
+
...links.length ? ["", ...links.map(([label, url]) => row([label, colours.link(url)]))] : []
|
|
135
|
+
].join("\n");
|
|
136
|
+
};
|
|
137
|
+
var message = (content) => ({
|
|
138
|
+
...content,
|
|
139
|
+
text: render(content, PLAIN)
|
|
140
|
+
});
|
|
141
|
+
var getTrialRow = (tsd, now) => {
|
|
126
142
|
const trial = getTrialStatus(tsd, now);
|
|
127
143
|
if (!trial) return;
|
|
128
|
-
return
|
|
144
|
+
return [
|
|
145
|
+
"Trial",
|
|
146
|
+
trial.ended ? `Ended ${formatDate(trial.endsAt)}` : `${formatDays(trial.daysLeft)} left of ${TRIAL_LENGTH_DAYS} (ends ${formatDate(trial.endsAt)})`
|
|
147
|
+
];
|
|
129
148
|
};
|
|
130
149
|
var getLicenseStatusMessage = (license, tsd, now = Date.now()) => {
|
|
150
|
+
const licensing = ["Licensing", LICENSE_FAQ_URL];
|
|
151
|
+
const renew = ["Renew", LICENSE_RENEW_URL];
|
|
152
|
+
const licensedTo = "org" in license && license.org ? [["Licensed to", license.org]] : [];
|
|
131
153
|
if (license.state === "licensed") {
|
|
132
154
|
const daysLeft = Math.max(0, Math.ceil((license.expiresAt.getTime() - now) / DAY_IN_MS2));
|
|
133
|
-
const licensedTo = license.org ? `Licensed to ${license.org}` : "Licensed";
|
|
134
155
|
if (daysLeft < LICENSE_REMINDER_DAYS) {
|
|
135
|
-
return {
|
|
136
|
-
title: "EventCatalog
|
|
156
|
+
return message({
|
|
157
|
+
title: "EventCatalog license",
|
|
137
158
|
color: "yellow",
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
].join("\n")
|
|
143
|
-
};
|
|
159
|
+
headline: `Your commercial license expires in ${formatDays(daysLeft)}`,
|
|
160
|
+
rows: [...licensedTo, ["Expires", formatDate(license.expiresAt)]],
|
|
161
|
+
links: [renew]
|
|
162
|
+
});
|
|
144
163
|
}
|
|
145
|
-
return {
|
|
146
|
-
title: "EventCatalog
|
|
164
|
+
return message({
|
|
165
|
+
title: "EventCatalog license",
|
|
147
166
|
color: "green",
|
|
148
|
-
|
|
149
|
-
Valid until
|
|
150
|
-
|
|
167
|
+
headline: "Commercial license active",
|
|
168
|
+
rows: [...licensedTo, ["Valid until", `${formatDate(license.expiresAt)} (${formatDays(daysLeft)} left)`]],
|
|
169
|
+
links: []
|
|
170
|
+
});
|
|
151
171
|
}
|
|
152
172
|
if (license.state === "plan") return;
|
|
153
|
-
const
|
|
173
|
+
const trialRow = getTrialRow(tsd, now);
|
|
174
|
+
const trialRows = trialRow ? [trialRow] : [];
|
|
154
175
|
if (license.state === "none") {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
return {
|
|
176
|
+
const trial = getTrialStatus(tsd, now);
|
|
177
|
+
if (!trial || !trialRow) return;
|
|
178
|
+
return message({
|
|
158
179
|
title: "EventCatalog trial",
|
|
159
|
-
color: ended ? "yellow" : "green",
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
180
|
+
color: trial.ended ? "yellow" : "green",
|
|
181
|
+
headline: trial.ended ? "Your EventCatalog trial has ended" : `You're on the ${TRIAL_LENGTH_DAYS}-day EventCatalog trial`,
|
|
182
|
+
rows: trialRows,
|
|
183
|
+
links: trial.ended ? [["Get a license", LICENSE_RENEW_URL], licensing] : [licensing]
|
|
184
|
+
});
|
|
163
185
|
}
|
|
164
186
|
if (license.state === "expired") {
|
|
165
|
-
const expiredOn = license.expiresAt ?
|
|
166
|
-
|
|
167
|
-
|
|
187
|
+
const expiredOn = license.expiresAt ? [
|
|
188
|
+
[
|
|
189
|
+
"Expired",
|
|
190
|
+
`${formatDate(license.expiresAt)} (${formatDays(Math.floor((now - license.expiresAt.getTime()) / DAY_IN_MS2))} ago)`
|
|
191
|
+
]
|
|
192
|
+
] : [];
|
|
193
|
+
return message({
|
|
194
|
+
title: "EventCatalog license",
|
|
168
195
|
color: "yellow",
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
`Learn about licensing: ${LICENSE_FAQ_URL}`
|
|
174
|
-
].filter(Boolean).join("\n")
|
|
175
|
-
};
|
|
196
|
+
headline: "Your commercial license has expired",
|
|
197
|
+
rows: [...licensedTo, ...expiredOn, ...trialRows],
|
|
198
|
+
links: [renew, licensing]
|
|
199
|
+
});
|
|
176
200
|
}
|
|
177
|
-
return {
|
|
201
|
+
return message({
|
|
178
202
|
title: "EventCatalog license",
|
|
179
203
|
color: "yellow",
|
|
180
|
-
|
|
181
|
-
|
|
204
|
+
headline: "Your license.jwt couldn't be verified",
|
|
205
|
+
rows: [["Reason", license.reason.charAt(0).toUpperCase() + license.reason.slice(1)], ...trialRows],
|
|
206
|
+
links: [licensing]
|
|
207
|
+
});
|
|
182
208
|
};
|
|
183
209
|
var printLicenseStatus = (license, tsd) => {
|
|
184
|
-
const
|
|
185
|
-
if (!
|
|
210
|
+
const status = getLicenseStatusMessage(license, tsd);
|
|
211
|
+
if (!status) return;
|
|
186
212
|
console.log(
|
|
187
|
-
boxen(
|
|
188
|
-
padding: 1,
|
|
213
|
+
boxen(render(status, COLOURS), {
|
|
214
|
+
padding: { top: 1, bottom: 1, left: 2, right: 2 },
|
|
189
215
|
margin: 1,
|
|
190
216
|
borderStyle: "round",
|
|
191
|
-
borderColor:
|
|
192
|
-
title:
|
|
193
|
-
titleAlignment: "
|
|
217
|
+
borderColor: status.color,
|
|
218
|
+
title: status.title,
|
|
219
|
+
titleAlignment: "left"
|
|
194
220
|
})
|
|
195
221
|
);
|
|
196
222
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// src/analytics/telemetry.ts
|
|
2
|
+
var TELEMETRY_REQUEST_TIMEOUT_MS = 2e3;
|
|
3
|
+
var isOptOutEnvValue = (value) => {
|
|
4
|
+
if (typeof value !== "string") return false;
|
|
5
|
+
const normalized = value.trim().toLowerCase();
|
|
6
|
+
return normalized === "1" || normalized === "true";
|
|
7
|
+
};
|
|
8
|
+
var isTelemetryDisabled = (config, env) => {
|
|
9
|
+
if (isOptOutEnvValue(env.EVENTCATALOG_TELEMETRY_DISABLED)) return true;
|
|
10
|
+
if (isOptOutEnvValue(env.DO_NOT_TRACK)) return true;
|
|
11
|
+
return config?.telemetry === false;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export {
|
|
15
|
+
TELEMETRY_REQUEST_TIMEOUT_MS,
|
|
16
|
+
isTelemetryDisabled
|
|
17
|
+
};
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
TELEMETRY_REQUEST_TIMEOUT_MS,
|
|
3
|
+
isTelemetryDisabled
|
|
4
|
+
} from "./chunk-CPW6G62V.js";
|
|
1
5
|
import {
|
|
2
6
|
VERSION
|
|
3
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-R2X4ZEF6.js";
|
|
4
8
|
|
|
5
9
|
// src/analytics/analytics.js
|
|
6
10
|
import os from "os";
|
|
7
|
-
async function raiseEvent(eventData) {
|
|
11
|
+
async function raiseEvent(eventData, config) {
|
|
12
|
+
if (isTelemetryDisabled(config, process.env)) return;
|
|
8
13
|
if (typeof eventData?.command !== "string" || typeof eventData?.cId !== "string") return;
|
|
9
14
|
const url = "https://queue.simpleanalyticscdn.com/events";
|
|
10
15
|
const userAgent = `@eventcatalog/eventcatalog@${VERSION} (${os.platform()}; ${os.arch()}; Node/${process.version})`;
|
|
@@ -26,7 +31,8 @@ async function raiseEvent(eventData) {
|
|
|
26
31
|
const response = await fetch(url, {
|
|
27
32
|
method: "POST",
|
|
28
33
|
headers,
|
|
29
|
-
body: JSON.stringify(payload)
|
|
34
|
+
body: JSON.stringify(payload),
|
|
35
|
+
signal: AbortSignal.timeout(TELEMETRY_REQUEST_TIMEOUT_MS)
|
|
30
36
|
});
|
|
31
37
|
if (!response.ok) {
|
|
32
38
|
throw new Error(`Failed to raise analytics event: ${response.status}`);
|
package/dist/constants.cjs
CHANGED