diff --git a/packages/schema/src/telemetry.ts b/packages/schema/src/telemetry.ts index 3067063e1..3166a5f9b 100644 --- a/packages/schema/src/telemetry.ts +++ b/packages/schema/src/telemetry.ts @@ -3,13 +3,13 @@ import { getPrismaVersion } from '@zenstackhq/sdk'; import exitHook from 'async-exit-hook'; import { CommanderError } from 'commander'; import { init, Mixpanel } from 'mixpanel'; -import { machineIdSync } from 'node-machine-id'; import * as os from 'os'; import sleep from 'sleep-promise'; import { CliError } from './cli/cli-error'; import { TELEMETRY_TRACKING_TOKEN } from './constants'; import isDocker from './utils/is-docker'; import { getVersion } from './utils/version-utils'; +import { getMachineId } from './utils/machine-id-utils'; /** * Telemetry events @@ -32,7 +32,7 @@ export type TelemetryEvents = */ export class Telemetry { private readonly mixpanel: Mixpanel | undefined; - private readonly hostId = machineIdSync(); + private readonly hostId = getMachineId(); private readonly sessionid = createId(); private readonly _os_type = os.type(); private readonly _os_release = os.release(); diff --git a/packages/schema/src/utils/machine-id-utils.ts b/packages/schema/src/utils/machine-id-utils.ts new file mode 100644 index 000000000..db07f3ed3 --- /dev/null +++ b/packages/schema/src/utils/machine-id-utils.ts @@ -0,0 +1,11 @@ +import { machineIdSync } from "node-machine-id"; +import { v4 as uuid } from 'uuid'; + +export function getMachineId() { + // machineIdSync() is not compatible with non-shell hosts such as Vercel + try { + return machineIdSync(); + } catch { + return uuid(); + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1736e7bba..88968bb7f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '6.1' settings: autoInstallPeers: true @@ -2816,7 +2816,7 @@ packages: hasBin: true dependencies: detect-libc: 2.0.1 - https-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 make-dir: 3.1.0 node-fetch: 2.6.12 nopt: 5.0.0 @@ -6609,7 +6609,7 @@ packages: dev: true /concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} /concurrently@7.4.0: resolution: {integrity: sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA==} @@ -8149,6 +8149,7 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 + dev: false /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} @@ -8159,7 +8160,6 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: false /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -8717,7 +8717,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 + fast-glob: 3.3.2 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -8727,7 +8727,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.3.1 + fast-glob: 3.3.2 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 @@ -9010,6 +9010,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: false /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} @@ -11535,7 +11536,7 @@ packages: hasBin: true dependencies: ansi-colors: 4.1.3 - fast-glob: 3.3.1 + fast-glob: 3.3.2 js-yaml: 4.1.0 supports-color: 9.4.0 undici: 5.26.3 @@ -14446,7 +14447,7 @@ packages: dependencies: '@rollup/pluginutils': 5.0.5(rollup@3.29.4) escape-string-regexp: 5.0.0 - fast-glob: 3.3.1 + fast-glob: 3.3.2 local-pkg: 0.4.3 magic-string: 0.30.4 mlly: 1.4.2 @@ -14498,7 +14499,7 @@ packages: '@vue-macros/common': 1.8.0(vue@3.3.4) ast-walker-scope: 0.5.0 chokidar: 3.5.3 - fast-glob: 3.3.1 + fast-glob: 3.3.2 json5: 2.2.3 local-pkg: 0.4.3 mlly: 1.4.2 @@ -14808,7 +14809,7 @@ packages: chokidar: 3.5.3 commander: 8.3.0 eslint: 8.55.0 - fast-glob: 3.3.1 + fast-glob: 3.3.2 fs-extra: 11.1.1 lodash.debounce: 4.0.8 lodash.pick: 4.4.0