@strapi/generate-new
Version:
Generate a new Strapi application.
1 lines • 5.56 kB
Source Map (JSON)
{"version":3,"file":"usage.mjs","sources":["../../src/utils/usage.ts"],"sourcesContent":["import os from 'os';\nimport _ from 'lodash';\nimport fetch from 'node-fetch';\nimport sentry, { Severity } from '@sentry/node';\nimport { Scope, StderrError, isStderrError } from '../types';\n\ntype TrackError = Error | string | StderrError;\n\n// Add properties from the package.json strapi key in the metadata\nfunction addPackageJsonStrapiMetadata(metadata: Record<string, unknown>, scope: Scope) {\n const { packageJsonStrapi = {} } = scope;\n\n return _.defaults(metadata, packageJsonStrapi);\n}\n\nexport async function captureException(error: Error) {\n try {\n sentry.captureException(error);\n await sentry.flush();\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nasync function captureError(message: string) {\n try {\n sentry.captureMessage(message, Severity.Error);\n await sentry.flush();\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nexport function captureStderr(name: string, error: unknown) {\n if (isStderrError(error) && error.stderr.trim() !== '') {\n error.stderr\n .trim()\n .split('\\n')\n .forEach((line) => {\n sentry.addBreadcrumb({\n category: 'stderr',\n message: line,\n level: Severity.Error,\n });\n });\n }\n\n return captureError(name);\n}\n\nconst getProperties = (scope: Scope, error?: TrackError) => {\n const eventProperties = {\n error: typeof error === 'string' ? error : error && error.message,\n };\n const userProperties = {\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n const groupProperties = {\n version: scope.strapiVersion,\n docker: scope.docker,\n useYarn: scope.useYarn,\n useTypescriptOnServer: scope.useTypescript,\n useTypescriptOnAdmin: scope.useTypescript,\n isHostedOnStrapiCloud: process.env.STRAPI_HOSTING === 'strapi.cloud',\n noRun: (scope.runQuickstartApp !== true).toString(),\n projectId: scope.uuid,\n };\n\n return {\n eventProperties,\n userProperties,\n groupProperties: addPackageJsonStrapiMetadata(groupProperties, scope),\n };\n};\n\nfunction trackEvent(event: string, payload: Record<string, unknown>) {\n if (process.env.NODE_ENV === 'test') {\n return;\n }\n\n try {\n return fetch('https://analytics.strapi.io/api/v2/track', {\n method: 'POST',\n body: JSON.stringify({\n event,\n ...payload,\n }),\n timeout: 1000,\n headers: {\n 'Content-Type': 'application/json',\n 'X-Strapi-Event': event,\n },\n }).catch(() => {});\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nexport async function trackError({ scope, error }: { scope: Scope; error?: TrackError }) {\n const properties = getProperties(scope, error);\n\n try {\n return await trackEvent('didNotCreateProject', {\n deviceId: scope.deviceId,\n ...properties,\n });\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nexport async function trackUsage({\n event,\n scope,\n error,\n}: {\n event: string;\n scope: Scope;\n error?: TrackError;\n}) {\n const properties = getProperties(scope, error);\n\n try {\n return await trackEvent(event, {\n deviceId: scope.deviceId,\n ...properties,\n });\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n"],"names":["sentry"],"mappings":";;;;;AASA,SAAS,6BAA6B,UAAmC,OAAc;AACrF,QAAM,EAAE,oBAAoB,GAAO,IAAA;AAE5B,SAAA,EAAE,SAAS,UAAU,iBAAiB;AAC/C;AAEA,eAAsB,iBAAiB,OAAc;AAC/C,MAAA;AACFA,oBAAO,iBAAiB,KAAK;AAC7B,UAAMA,gBAAO;WACN,KAAK;AAEZ,WAAO,QAAQ;EACjB;AACF;AAEA,eAAe,aAAa,SAAiB;AACvC,MAAA;AACKA,oBAAA,eAAe,SAAS,SAAS,KAAK;AAC7C,UAAMA,gBAAO;WACN,KAAK;AAEZ,WAAO,QAAQ;EACjB;AACF;AAEgB,SAAA,cAAc,MAAc,OAAgB;AAC1D,MAAI,cAAc,KAAK,KAAK,MAAM,OAAO,WAAW,IAAI;AAChD,UAAA,OACH,OACA,MAAM,IAAI,EACV,QAAQ,CAAC,SAAS;AACjBA,sBAAO,cAAc;AAAA,QACnB,UAAU;AAAA,QACV,SAAS;AAAA,QACT,OAAO,SAAS;AAAA,MAAA,CACjB;AAAA,IAAA,CACF;AAAA,EACL;AAEA,SAAO,aAAa,IAAI;AAC1B;AAEA,MAAM,gBAAgB,CAAC,OAAc,UAAuB;AAC1D,QAAM,kBAAkB;AAAA,IACtB,OAAO,OAAO,UAAU,WAAW,QAAQ,SAAS,MAAM;AAAA,EAAA;AAE5D,QAAM,iBAAiB;AAAA,IACrB,IAAI,GAAG,KAAK;AAAA,IACZ,YAAY,GAAG,SAAS;AAAA,IACxB,QAAQ,GAAG,KAAK;AAAA,IAChB,WAAW,GAAG,QAAQ;AAAA,IACtB,aAAa,QAAQ,SAAS;AAAA,EAAA;AAEhC,QAAM,kBAAkB;AAAA,IACtB,SAAS,MAAM;AAAA,IACf,QAAQ,MAAM;AAAA,IACd,SAAS,MAAM;AAAA,IACf,uBAAuB,MAAM;AAAA,IAC7B,sBAAsB,MAAM;AAAA,IAC5B,uBAAuB,QAAQ,IAAI,mBAAmB;AAAA,IACtD,QAAQ,MAAM,qBAAqB,MAAM,SAAS;AAAA,IAClD,WAAW,MAAM;AAAA,EAAA;AAGZ,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,iBAAiB,6BAA6B,iBAAiB,KAAK;AAAA,EAAA;AAExE;AAEA,SAAS,WAAW,OAAe,SAAkC;AAC/D,MAAA,QAAQ,IAAI,aAAa,QAAQ;AACnC;AAAA,EACF;AAEI,MAAA;AACF,WAAO,MAAM,4CAA4C;AAAA,MACvD,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU;AAAA,QACnB;AAAA,QACA,GAAG;AAAA,MAAA,CACJ;AAAA,MACD,SAAS;AAAA,MACT,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,MACpB;AAAA,IAAA,CACD,EAAE,MAAM,MAAM;AAAA,IAAA,CAAE;AAAA,WACV,KAAK;AAEZ,WAAO,QAAQ;EACjB;AACF;AAEA,eAAsB,WAAW,EAAE,OAAO,SAA+C;AACjF,QAAA,aAAa,cAAc,OAAO,KAAK;AAEzC,MAAA;AACK,WAAA,MAAM,WAAW,uBAAuB;AAAA,MAC7C,UAAU,MAAM;AAAA,MAChB,GAAG;AAAA,IAAA,CACJ;AAAA,WACM,KAAK;AAEZ,WAAO,QAAQ;EACjB;AACF;AAEA,eAAsB,WAAW;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACK,QAAA,aAAa,cAAc,OAAO,KAAK;AAEzC,MAAA;AACK,WAAA,MAAM,WAAW,OAAO;AAAA,MAC7B,UAAU,MAAM;AAAA,MAChB,GAAG;AAAA,IAAA,CACJ;AAAA,WACM,KAAK;AAEZ,WAAO,QAAQ;EACjB;AACF;"}