From 18557c621a19c86e805829ce4eacc8f57fd802f2 Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Mon, 11 Dec 2023 15:50:45 -0600 Subject: [PATCH 01/19] removed logging of the telemetry in cli --- packages/faustwp-cli/src/index.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/faustwp-cli/src/index.ts b/packages/faustwp-cli/src/index.ts index fe4cdad18..4d1a3c1ad 100644 --- a/packages/faustwp-cli/src/index.ts +++ b/packages/faustwp-cli/src/index.ts @@ -63,9 +63,6 @@ import { // Inform user of telemetry program. if (!telemetryPrefsExist()) { - infoLog('Faust has completely anonymous, opt-in Telemetry!'); - infoLog('You can enable it by running "npx faust telemetry enable"'); - // Create user's telemetry setting. userConfig.set('telemetry', { notifiedAt: new Date().getTime(), From e4d302438ae56eb620ed8caffe89c6a634fb7d73 Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Tue, 12 Dec 2023 10:12:54 -0600 Subject: [PATCH 02/19] removed telemetry user prompts and userconfig that's unused --- packages/faustwp-cli/src/index.ts | 66 +------------------------------ 1 file changed, 2 insertions(+), 64 deletions(-) diff --git a/packages/faustwp-cli/src/index.ts b/packages/faustwp-cli/src/index.ts index 4d1a3c1ad..aa0acb0d0 100644 --- a/packages/faustwp-cli/src/index.ts +++ b/packages/faustwp-cli/src/index.ts @@ -1,29 +1,12 @@ #!/usr/bin/env node - import { spawnSync } from 'child_process'; import dotenv from 'dotenv-flow'; -import { v4 as uuid } from 'uuid'; -import { debugLog, infoLog } from './stdout/index.js'; +import { debugLog } from './stdout/index.js'; import { healthCheck } from './healthCheck/index.js'; import { generatePossibleTypes } from './generatePossibleTypes.js'; import { generateGlobalStylesheet } from './generateGlobalStylesheet.js'; import { blockset } from './blockset.js'; -import { userConfig } from './userConfig.js'; -import { - getCliArgs, - getNextCliArgs, - getWpSecret, - getWpUrl, - isDebug, -} from './utils/index.js'; -import { - telemetryPrefsExist, - marshallTelemetryData, - handleTelemetrySubcommand, - requestWPTelemetryData, - shouldFireTelemetryEvent, - sendTelemetryData, -} from './telemetry/index.js'; +import { getCliArgs, getNextCliArgs, isDebug } from './utils/index.js'; // eslint-disable-next-line func-names, @typescript-eslint/no-floating-promises (async function () { @@ -61,24 +44,8 @@ import { await healthCheck(); } - // Inform user of telemetry program. - if (!telemetryPrefsExist()) { - // Create user's telemetry setting. - userConfig.set('telemetry', { - notifiedAt: new Date().getTime(), - anonymousId: uuid(), - enabled: false, - }); - } - // eslint-disable-next-line default-case switch (arg1) { - case 'telemetry': { - handleTelemetrySubcommand(); - process.exit(0); - - break; - } case 'generatePossibleTypes': { await generatePossibleTypes(); process.exit(0); @@ -99,35 +66,6 @@ import { } } - if (shouldFireTelemetryEvent()) { - try { - const wpTelemetryData = await requestWPTelemetryData( - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - getWpUrl()!, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - getWpSecret()!, - ); - - if (!wpTelemetryData) { - throw new Error( - 'There was a problem retrieving telemetry data from the WordPress instance', - ); - } - - const telemetryData = marshallTelemetryData(wpTelemetryData, arg1); - - debugLog('Telemetry event: ', telemetryData); - - void sendTelemetryData( - telemetryData, - userConfig.get('telemetry.anonymousId') as string, - ); - } catch (err) { - // console.log(err); - // Fail silently - } - } - /** * Spawn a child process using the args captured in argv and continue the * standard i/o for the Next.js CLI. From c20c0011a29f55b20615a73161317cd53de64c0f Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Tue, 12 Dec 2023 10:17:54 -0600 Subject: [PATCH 03/19] Update package-lock.json --- package-lock.json | 189 ++-------------------------------------------- 1 file changed, 8 insertions(+), 181 deletions(-) diff --git a/package-lock.json b/package-lock.json index 00a79d079..a2d250227 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51,9 +51,9 @@ "dependencies": { "@apollo/client": "^3.8.0", "@apollo/experimental-nextjs-app-support": "^0.5.1", - "@faustwp/cli": "^1.2.0", + "@faustwp/cli": "^1.2.1", "@faustwp/core": "^1.2.0", - "@faustwp/experimental-app-router": "^0.2.1", + "@faustwp/experimental-app-router": "^0.2.2", "graphql": "^16.7.1", "next": "^14.0.1", "react": "^18.3.0-canary-ce2bc58a9-20231102", @@ -253,7 +253,7 @@ "dependencies": { "@apollo/client": "^3.8.8", "@faustwp/blocks": "2.0.0", - "@faustwp/cli": "^1.2.0", + "@faustwp/cli": "^1.2.1", "@faustwp/core": "^1.2.0", "@wordpress/base-styles": "^4.38.0", "@wordpress/block-library": "^8.24.0", @@ -2108,7 +2108,7 @@ "version": "0.1.0", "dependencies": { "@apollo/client": "^3.6.6", - "@faustwp/cli": "^1.2.0", + "@faustwp/cli": "^1.2.1", "@faustwp/core": "^1.2.0", "@wordpress/base-styles": "^4.36.0", "@wordpress/block-library": "^7.19.0", @@ -2124,11 +2124,6 @@ "npm": ">=8" } }, - "examples/next/faustwp-getting-started/node_modules/@wordpress/base-styles": { - "version": "4.36.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.36.0.tgz", - "integrity": "sha512-N+Hpz6nI06Ji4mmx9vv/YSKR3XCYHnWV6v0mMehQvC9oZVjxBmo3hzWdiMrrjXFxONH9cjJUql0Cht+traFfRA==" - }, "examples/next/getting-started": { "name": "@faustjs/next-headless-getting-started", "version": "0.1.0", @@ -28860,37 +28855,6 @@ "node": ">=12" } }, - "packages/block-editor-utils/node_modules/@wordpress/jest-console": { - "version": "7.14.0", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "^7.16.0", - "jest-matcher-utils": "^29.6.2" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "jest": ">=29" - } - }, - "packages/block-editor-utils/node_modules/@wordpress/jest-preset-default": { - "version": "11.14.0", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/jest-console": "^7.14.0", - "babel-jest": "^29.6.2" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@babel/core": ">=7", - "jest": ">=29" - } - }, "packages/block-editor-utils/node_modules/@wordpress/keyboard-shortcuts": { "version": "4.20.1", "license": "GPL-2.0-or-later", @@ -29074,31 +29038,6 @@ "node": ">=0.10.0" } }, - "packages/block-editor-utils/node_modules/jest": { - "version": "29.6.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.6.4", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.6.4" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, "packages/block-editor-utils/node_modules/jest-environment-jsdom": { "version": "29.7.0", "dev": true, @@ -30799,12 +30738,12 @@ }, "packages/experimental-app-router": { "name": "@faustwp/experimental-app-router", - "version": "0.2.1", + "version": "0.2.2", "license": "MIT", "devDependencies": { "@apollo/client": "^3.8.0", "@apollo/experimental-nextjs-app-support": "^0.5.1", - "@faustwp/cli": "^1.1.3", + "@faustwp/cli": "^1.2.1", "@faustwp/core": "^1.1.2", "@testing-library/jest-dom": "^5.17.0", "@types/node": "^20.4.6", @@ -30887,118 +30826,6 @@ "node": ">= 10" } }, - "packages/experimental-app-router/node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.4.tgz", - "integrity": "sha512-kiX0vgJGMZVv+oo1QuObaYulXNvdH/IINmvdZnVzMO/jic/B8EEIGlZ8Bgvw8LCjH3zNVPO3mGrdMvnEEPEhKA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-linux-arm64-musl": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.4.tgz", - "integrity": "sha512-EETZPa1juczrKLWk5okoW2hv7D7WvonU+Cf2CgsSoxgsYbUCZ1voOpL4JZTOb6IbKMDo6ja+SbY0vzXZBUMvkQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-linux-x64-gnu": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.4.tgz", - "integrity": "sha512-4csPbRbfZbuWOk3ATyWcvVFdD9/Rsdq5YHKvRuEni68OCLkfy4f+4I9OBpyK1SKJ00Cih16NJbHE+k+ljPPpag==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-linux-x64-musl": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.4.tgz", - "integrity": "sha512-YeBmI+63Ro75SUiL/QXEVXQ19T++58aI/IINOyhpsRL1LKdyfK/35iilraZEFz9bLQrwy1LYAR5lK200A9Gjbg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.4.tgz", - "integrity": "sha512-Sd0qFUJv8Tj0PukAYbCCDbmXcMkbIuhnTeHm9m4ZGjCf6kt7E/RMs55Pd3R5ePjOkN7dJEuxYBehawTR/aPDSQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.4.tgz", - "integrity": "sha512-rt/vv/vg/ZGGkrkKcuJ0LyliRdbskQU+91bje+PgoYmxTZf/tYs6IfbmgudBJk6gH3QnjHWbkphDdRQrseRefQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-win32-x64-msvc": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.4.tgz", - "integrity": "sha512-DQ20JEfTBZAgF8QCjYfJhv2/279M6onxFjdG/+5B0Cyj00/EdBxiWb2eGGFgQhrBbNv/lsvzFbbi0Ptf8Vw/bg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "packages/experimental-app-router/node_modules/@swc/helpers": { "version": "0.5.2", "dev": true, @@ -31293,7 +31120,7 @@ }, "packages/faustwp-cli": { "name": "@faustwp/cli", - "version": "1.2.0", + "version": "1.2.1", "license": "MIT", "dependencies": { "archiver": "^6.0.1", @@ -35720,7 +35547,7 @@ }, "plugins/faustwp": { "name": "@faustwp/wordpress-plugin", - "version": "1.1.1" + "version": "1.1.2" } } } From 50e5bc44bce26926f2ddc8e60f63b5ee43aaf867 Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Tue, 12 Dec 2023 10:41:40 -0600 Subject: [PATCH 04/19] remove unneeded files --- .../src/telemetry/doTelemetryPrefsExist.ts | 9 -- .../telemetry/handleTelemetrySubcommand.ts | 84 ------------------- packages/faustwp-cli/src/telemetry/index.ts | 3 - .../src/telemetry/shouldFireTelemetryEvent.ts | 12 --- packages/faustwp-cli/src/userConfig.ts | 15 ---- 5 files changed, 123 deletions(-) delete mode 100644 packages/faustwp-cli/src/telemetry/doTelemetryPrefsExist.ts delete mode 100644 packages/faustwp-cli/src/telemetry/handleTelemetrySubcommand.ts delete mode 100644 packages/faustwp-cli/src/telemetry/shouldFireTelemetryEvent.ts delete mode 100644 packages/faustwp-cli/src/userConfig.ts diff --git a/packages/faustwp-cli/src/telemetry/doTelemetryPrefsExist.ts b/packages/faustwp-cli/src/telemetry/doTelemetryPrefsExist.ts deleted file mode 100644 index 257395e97..000000000 --- a/packages/faustwp-cli/src/telemetry/doTelemetryPrefsExist.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { userConfig } from '../userConfig.js'; - -export function telemetryPrefsExist(): boolean { - return ( - userConfig.all.telemetry !== undefined && - userConfig.all.telemetry.anonymousId !== undefined && - userConfig.all.telemetry.enabled !== undefined - ); -} diff --git a/packages/faustwp-cli/src/telemetry/handleTelemetrySubcommand.ts b/packages/faustwp-cli/src/telemetry/handleTelemetrySubcommand.ts deleted file mode 100644 index 4ce29f192..000000000 --- a/packages/faustwp-cli/src/telemetry/handleTelemetrySubcommand.ts +++ /dev/null @@ -1,84 +0,0 @@ -import chalk from 'chalk'; -import { getCliArgs } from '../utils/index.js'; -import { userConfig } from '../userConfig.js'; -import { styles } from '../stdout/index.js'; - -const TELEMETRY_ENABLED = 'telemetry.enabled'; - -const logTelemetryStatus = () => { - const statusSetting = userConfig.get(TELEMETRY_ENABLED); - const status = statusSetting ? chalk.green('Enabled') : chalk.red('Disabled'); - - console.log(); - console.log(`Status: ${status}`); - console.log(); -}; - -const logTelemetryDocsUrl = () => { - console.log('Learn more: https://faustjs.org/docs/telemetry'); -}; - -const logUserPrefsHaveBeenSaved = () => { - console.log( - styles.success(`Your preference has been saved to ${userConfig.path}`), - ); -}; - -const logTelemetryAlreadyDisabled = () => { - console.log( - styles.warn(`Faust.js' telemetry collection is already disabled.`), - ); -}; - -/** - * Handles the telemetry subcommand. - */ -export const handleTelemetrySubcommand = () => { - const telemetryEnabled = userConfig.get(TELEMETRY_ENABLED); - const args = getCliArgs(); - const subcommand = args[1]; - - switch (subcommand) { - case 'enable': { - userConfig.set(TELEMETRY_ENABLED, true); - console.log(styles.success('Done!')); - logTelemetryStatus(); - console.log( - 'Faust.js telemetry is completely anonymous. Thank you for participating!', - ); - logTelemetryDocsUrl(); - break; - } - - case 'disable': { - telemetryEnabled - ? logUserPrefsHaveBeenSaved() - : logTelemetryAlreadyDisabled(); - - userConfig.set(TELEMETRY_ENABLED, false); - logTelemetryStatus(); - console.log( - "You have opted-out of Faust.js' anonymous telemetry program.", - ); - console.log('No data will be collected from your machine.'); - logTelemetryDocsUrl(); - break; - } - - case undefined: // faust telemetry (without subcommand) - case 'status': { - console.log(styles.brand('Faust.js Telemetry')); - logTelemetryStatus(); - console.log('Faust.js telemetry is completely anonymous.'); - logTelemetryDocsUrl(); - break; - } - - default: { - console.log( - styles.error(`"${subcommand}" is not a valid telemetry subcommand`), - ); - break; - } - } -}; diff --git a/packages/faustwp-cli/src/telemetry/index.ts b/packages/faustwp-cli/src/telemetry/index.ts index 9655884bf..6deaea96a 100644 --- a/packages/faustwp-cli/src/telemetry/index.ts +++ b/packages/faustwp-cli/src/telemetry/index.ts @@ -1,7 +1,4 @@ -export { telemetryPrefsExist } from './doTelemetryPrefsExist.js'; -export { handleTelemetrySubcommand } from './handleTelemetrySubcommand.js'; export { marshallTelemetryData } from './marshallTelemetryData.js'; export type { TelemetryData } from './marshallTelemetryData.js'; export { requestWPTelemetryData } from './requestWPTelemetryData.js'; -export { shouldFireTelemetryEvent } from './shouldFireTelemetryEvent.js'; export { sendTelemetryData } from './sendTelemetryData.js'; diff --git a/packages/faustwp-cli/src/telemetry/shouldFireTelemetryEvent.ts b/packages/faustwp-cli/src/telemetry/shouldFireTelemetryEvent.ts deleted file mode 100644 index 2b6314a83..000000000 --- a/packages/faustwp-cli/src/telemetry/shouldFireTelemetryEvent.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { userConfig } from '../userConfig.js'; -import { getWpSecret } from '../utils/index.js'; - -export function shouldFireTelemetryEvent(): boolean { - const hasAnonymousId = userConfig.get('telemetry.anonymousId'); - const hasTelemetryEnabled = userConfig.get('telemetry.enabled') === true; - - const shouldFireEvent = - getWpSecret() && hasAnonymousId && hasTelemetryEnabled; - - return shouldFireEvent as boolean; -} diff --git a/packages/faustwp-cli/src/userConfig.ts b/packages/faustwp-cli/src/userConfig.ts deleted file mode 100644 index 40398e295..000000000 --- a/packages/faustwp-cli/src/userConfig.ts +++ /dev/null @@ -1,15 +0,0 @@ -import Configstore from 'configstore'; - -const CONFIG_STORE_NAME = 'faust'; - -export type ConfigStoreType = Omit & { - all: { - telemetry?: { - enabled?: boolean; - anonymousId?: string; - notifiedAt?: number; - }; - }; -}; - -export const userConfig = new Configstore(CONFIG_STORE_NAME) as ConfigStoreType; From fe62dbcb00e75443e7fbc6d7ea09bacaa44952ab Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Thu, 14 Dec 2023 09:52:17 -0600 Subject: [PATCH 05/19] added changeset and removed unneeded dependencies --- .changeset/tough-papayas-complain.md | 5 +++++ package-lock.json | 12 ------------ packages/faustwp-cli/package.json | 4 +--- 3 files changed, 6 insertions(+), 15 deletions(-) create mode 100644 .changeset/tough-papayas-complain.md diff --git a/.changeset/tough-papayas-complain.md b/.changeset/tough-papayas-complain.md new file mode 100644 index 000000000..f40b7f1d5 --- /dev/null +++ b/.changeset/tough-papayas-complain.md @@ -0,0 +1,5 @@ +--- +'@faustwp/cli': major +--- + +Removed telemetry CLI commands and functionality diff --git a/package-lock.json b/package-lock.json index a2d250227..4a5bc034a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7900,11 +7900,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/configstore": { - "version": "6.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/@types/connect": { "version": "3.4.37", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.37.tgz", @@ -8344,11 +8339,6 @@ "source-map": "^0.6.1" } }, - "node_modules/@types/uuid": { - "version": "8.3.4", - "dev": true, - "license": "MIT" - }, "node_modules/@types/webpack": { "version": "4.41.35", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.35.tgz", @@ -31140,7 +31130,6 @@ }, "devDependencies": { "@types/archiver": "^5.3.2", - "@types/configstore": "^6.0.0", "@types/cookie": "0.5.1", "@types/dotenv-flow": "^3.2.0", "@types/fs-extra": "^11.0.2", @@ -31148,7 +31137,6 @@ "@types/jest": "^29.5.5", "@types/node": "^18.15.11", "@types/prompt": "1.1.2", - "@types/uuid": "8.3.4", "jest-environment-jsdom": "29.6.4", "rimraf": "5.0.5", "ts-jest": "^29.1.1", diff --git a/packages/faustwp-cli/package.json b/packages/faustwp-cli/package.json index 354c7fdef..8df48e97c 100644 --- a/packages/faustwp-cli/package.json +++ b/packages/faustwp-cli/package.json @@ -9,9 +9,7 @@ "faust": "dist/index.js" }, "devDependencies": { - "jest-environment-jsdom": "29.6.4", "@types/archiver": "^5.3.2", - "@types/configstore": "^6.0.0", "@types/cookie": "0.5.1", "@types/dotenv-flow": "^3.2.0", "@types/fs-extra": "^11.0.2", @@ -19,7 +17,7 @@ "@types/jest": "^29.5.5", "@types/node": "^18.15.11", "@types/prompt": "1.1.2", - "@types/uuid": "8.3.4", + "jest-environment-jsdom": "29.6.4", "rimraf": "5.0.5", "ts-jest": "^29.1.1", "typescript": "^4.9.5" From b8a4d0c8e44c4f81654fec7cdfaf8d0decef45e6 Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Thu, 14 Dec 2023 10:12:08 -0600 Subject: [PATCH 06/19] init commit - placeholder API --- package-lock.json | 189 +----------------- .../src/telemetry/sendTelemetryData.ts | 11 +- 2 files changed, 16 insertions(+), 184 deletions(-) diff --git a/package-lock.json b/package-lock.json index 00a79d079..a2d250227 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51,9 +51,9 @@ "dependencies": { "@apollo/client": "^3.8.0", "@apollo/experimental-nextjs-app-support": "^0.5.1", - "@faustwp/cli": "^1.2.0", + "@faustwp/cli": "^1.2.1", "@faustwp/core": "^1.2.0", - "@faustwp/experimental-app-router": "^0.2.1", + "@faustwp/experimental-app-router": "^0.2.2", "graphql": "^16.7.1", "next": "^14.0.1", "react": "^18.3.0-canary-ce2bc58a9-20231102", @@ -253,7 +253,7 @@ "dependencies": { "@apollo/client": "^3.8.8", "@faustwp/blocks": "2.0.0", - "@faustwp/cli": "^1.2.0", + "@faustwp/cli": "^1.2.1", "@faustwp/core": "^1.2.0", "@wordpress/base-styles": "^4.38.0", "@wordpress/block-library": "^8.24.0", @@ -2108,7 +2108,7 @@ "version": "0.1.0", "dependencies": { "@apollo/client": "^3.6.6", - "@faustwp/cli": "^1.2.0", + "@faustwp/cli": "^1.2.1", "@faustwp/core": "^1.2.0", "@wordpress/base-styles": "^4.36.0", "@wordpress/block-library": "^7.19.0", @@ -2124,11 +2124,6 @@ "npm": ">=8" } }, - "examples/next/faustwp-getting-started/node_modules/@wordpress/base-styles": { - "version": "4.36.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.36.0.tgz", - "integrity": "sha512-N+Hpz6nI06Ji4mmx9vv/YSKR3XCYHnWV6v0mMehQvC9oZVjxBmo3hzWdiMrrjXFxONH9cjJUql0Cht+traFfRA==" - }, "examples/next/getting-started": { "name": "@faustjs/next-headless-getting-started", "version": "0.1.0", @@ -28860,37 +28855,6 @@ "node": ">=12" } }, - "packages/block-editor-utils/node_modules/@wordpress/jest-console": { - "version": "7.14.0", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "^7.16.0", - "jest-matcher-utils": "^29.6.2" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "jest": ">=29" - } - }, - "packages/block-editor-utils/node_modules/@wordpress/jest-preset-default": { - "version": "11.14.0", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/jest-console": "^7.14.0", - "babel-jest": "^29.6.2" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@babel/core": ">=7", - "jest": ">=29" - } - }, "packages/block-editor-utils/node_modules/@wordpress/keyboard-shortcuts": { "version": "4.20.1", "license": "GPL-2.0-or-later", @@ -29074,31 +29038,6 @@ "node": ">=0.10.0" } }, - "packages/block-editor-utils/node_modules/jest": { - "version": "29.6.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.6.4", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.6.4" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, "packages/block-editor-utils/node_modules/jest-environment-jsdom": { "version": "29.7.0", "dev": true, @@ -30799,12 +30738,12 @@ }, "packages/experimental-app-router": { "name": "@faustwp/experimental-app-router", - "version": "0.2.1", + "version": "0.2.2", "license": "MIT", "devDependencies": { "@apollo/client": "^3.8.0", "@apollo/experimental-nextjs-app-support": "^0.5.1", - "@faustwp/cli": "^1.1.3", + "@faustwp/cli": "^1.2.1", "@faustwp/core": "^1.1.2", "@testing-library/jest-dom": "^5.17.0", "@types/node": "^20.4.6", @@ -30887,118 +30826,6 @@ "node": ">= 10" } }, - "packages/experimental-app-router/node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.4.tgz", - "integrity": "sha512-kiX0vgJGMZVv+oo1QuObaYulXNvdH/IINmvdZnVzMO/jic/B8EEIGlZ8Bgvw8LCjH3zNVPO3mGrdMvnEEPEhKA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-linux-arm64-musl": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.4.tgz", - "integrity": "sha512-EETZPa1juczrKLWk5okoW2hv7D7WvonU+Cf2CgsSoxgsYbUCZ1voOpL4JZTOb6IbKMDo6ja+SbY0vzXZBUMvkQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-linux-x64-gnu": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.4.tgz", - "integrity": "sha512-4csPbRbfZbuWOk3ATyWcvVFdD9/Rsdq5YHKvRuEni68OCLkfy4f+4I9OBpyK1SKJ00Cih16NJbHE+k+ljPPpag==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-linux-x64-musl": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.4.tgz", - "integrity": "sha512-YeBmI+63Ro75SUiL/QXEVXQ19T++58aI/IINOyhpsRL1LKdyfK/35iilraZEFz9bLQrwy1LYAR5lK200A9Gjbg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.4.tgz", - "integrity": "sha512-Sd0qFUJv8Tj0PukAYbCCDbmXcMkbIuhnTeHm9m4ZGjCf6kt7E/RMs55Pd3R5ePjOkN7dJEuxYBehawTR/aPDSQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.4.tgz", - "integrity": "sha512-rt/vv/vg/ZGGkrkKcuJ0LyliRdbskQU+91bje+PgoYmxTZf/tYs6IfbmgudBJk6gH3QnjHWbkphDdRQrseRefQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "packages/experimental-app-router/node_modules/@next/swc-win32-x64-msvc": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.4.tgz", - "integrity": "sha512-DQ20JEfTBZAgF8QCjYfJhv2/279M6onxFjdG/+5B0Cyj00/EdBxiWb2eGGFgQhrBbNv/lsvzFbbi0Ptf8Vw/bg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "packages/experimental-app-router/node_modules/@swc/helpers": { "version": "0.5.2", "dev": true, @@ -31293,7 +31120,7 @@ }, "packages/faustwp-cli": { "name": "@faustwp/cli", - "version": "1.2.0", + "version": "1.2.1", "license": "MIT", "dependencies": { "archiver": "^6.0.1", @@ -35720,7 +35547,7 @@ }, "plugins/faustwp": { "name": "@faustwp/wordpress-plugin", - "version": "1.1.1" + "version": "1.1.2" } } } diff --git a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts index 060d5fbdf..5fe1eb294 100644 --- a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts +++ b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts @@ -1,13 +1,17 @@ import 'isomorphic-fetch'; import { TelemetryData } from './marshallTelemetryData.js'; +import { getWpUrl } from '../utils/getWpUrl.js'; +import { getWpSecret } from '../utils/getWpSecret.js'; -const GA_TRACKING_ENDPOINT = 'https://www.google-analytics.com/mp/collect'; const GA_TRACKING_ID = 'G-KPVSTHK1G4'; const GA_API_SECRET = '-SLuZb8JTbWkWcT5BD032w'; +// eslint-disable-next-line @typescript-eslint/no-non-null-assertion +const WP_TELEMETRY_ENDPOINT = `${getWpUrl()!}/wp-json/faustwp/v1/telemetry`; +const WP_SECRET = getWpSecret(); /** - * Send the marshalled telemetry data to GA. + * Send the marshalled telemetry data to Faust Telemetry API. * * @param payload The data being sent to GA * @param anonymousId The anonymous ID of the machine we captured during init @@ -18,6 +22,7 @@ export const sendTelemetryData = ( ) => { const body = { client_id: anonymousId, + wp_secret: WP_SECRET, events: [ { name: 'telemetry_event', @@ -27,7 +32,7 @@ export const sendTelemetryData = ( }; return fetch( - `${GA_TRACKING_ENDPOINT}?${new URLSearchParams({ + `${WP_TELEMETRY_ENDPOINT}?${new URLSearchParams({ api_secret: GA_API_SECRET, measurement_id: GA_TRACKING_ID, }).toString()}`, From d65a3b6325684ff8ef7505578e5676d15ce09c2a Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Thu, 14 Dec 2023 14:28:43 -0600 Subject: [PATCH 07/19] removed additional uuid --- package-lock.json | 1 - packages/faustwp-cli/package.json | 1 - 2 files changed, 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4a5bc034a..e2388b178 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31122,7 +31122,6 @@ "glob-promise": "^6.0.5", "isomorphic-fetch": "^3.0.0", "lodash": "^4.17.21", - "uuid": "8.3.2", "webpack-cli": "5.1.4" }, "bin": { diff --git a/packages/faustwp-cli/package.json b/packages/faustwp-cli/package.json index 8df48e97c..c778f84d9 100644 --- a/packages/faustwp-cli/package.json +++ b/packages/faustwp-cli/package.json @@ -32,7 +32,6 @@ "glob-promise": "^6.0.5", "isomorphic-fetch": "^3.0.0", "lodash": "^4.17.21", - "uuid": "8.3.2", "webpack-cli": "5.1.4" }, "scripts": { From 35ca1e46a9ab568c0c9914254068ab5857236821 Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Fri, 15 Dec 2023 09:33:40 -0600 Subject: [PATCH 08/19] remove configstore dependency --- package-lock.json | 83 +++---------------------------- packages/faustwp-cli/package.json | 1 - 2 files changed, 6 insertions(+), 78 deletions(-) diff --git a/package-lock.json b/package-lock.json index e2388b178..fc6c05ba5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11914,23 +11914,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/configstore": { - "version": "6.0.0", - "license": "BSD-2-Clause", - "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/yeoman/configstore?sponsor=1" - } - }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "dev": true, @@ -12348,29 +12331,6 @@ "node": ">= 8" } }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/csp_evaluator": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz", @@ -13390,19 +13350,6 @@ "tslib": "^2.0.3" } }, - "node_modules/dot-prop": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/dotenv": { "version": "8.6.0", "license": "BSD-2-Clause", @@ -16268,6 +16215,7 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8.19" @@ -16671,6 +16619,7 @@ }, "node_modules/is-obj": { "version": "2.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -16846,6 +16795,7 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", + "dev": true, "license": "MIT" }, "node_modules/is-unicode-supported": { @@ -24882,6 +24832,7 @@ }, "node_modules/signal-exit": { "version": "3.0.7", + "dev": true, "license": "ISC" }, "node_modules/simple-concat": { @@ -26984,6 +26935,7 @@ }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", + "dev": true, "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" @@ -27082,19 +27034,6 @@ "node": ">=4" } }, - "node_modules/unique-string": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/universalify": { "version": "2.0.0", "license": "MIT", @@ -28170,6 +28109,7 @@ }, "node_modules/write-file-atomic": { "version": "3.0.3", + "dev": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", @@ -28198,16 +28138,6 @@ } } }, - "node_modules/xdg-basedir": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/xml-name-validator": { "version": "4.0.0", "dev": true, @@ -31115,7 +31045,6 @@ "dependencies": { "archiver": "^6.0.1", "chalk": "^4.1.2", - "configstore": "^6.0.0", "dotenv-flow": "^3.2.0", "form-data": "^4.0.0", "fs-extra": "^11.1.1", diff --git a/packages/faustwp-cli/package.json b/packages/faustwp-cli/package.json index c778f84d9..4bd6188fb 100644 --- a/packages/faustwp-cli/package.json +++ b/packages/faustwp-cli/package.json @@ -25,7 +25,6 @@ "dependencies": { "archiver": "^6.0.1", "chalk": "^4.1.2", - "configstore": "^6.0.0", "dotenv-flow": "^3.2.0", "form-data": "^4.0.0", "fs-extra": "^11.1.1", From 4db6714ec83fa52dba47ac0ee81f914d9f01425e Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Fri, 15 Dec 2023 11:09:45 -0600 Subject: [PATCH 09/19] updated endpoint and marshall data --- packages/faustwp-cli/src/index.ts | 73 +++---------------- .../src/telemetry/marshallTelemetryData.ts | 37 +--------- .../src/telemetry/sendTelemetryData.ts | 42 ++--------- 3 files changed, 20 insertions(+), 132 deletions(-) diff --git a/packages/faustwp-cli/src/index.ts b/packages/faustwp-cli/src/index.ts index fe4cdad18..2c72f62a7 100644 --- a/packages/faustwp-cli/src/index.ts +++ b/packages/faustwp-cli/src/index.ts @@ -2,28 +2,13 @@ import { spawnSync } from 'child_process'; import dotenv from 'dotenv-flow'; -import { v4 as uuid } from 'uuid'; -import { debugLog, infoLog } from './stdout/index.js'; +import { debugLog } from './stdout/index.js'; import { healthCheck } from './healthCheck/index.js'; import { generatePossibleTypes } from './generatePossibleTypes.js'; import { generateGlobalStylesheet } from './generateGlobalStylesheet.js'; import { blockset } from './blockset.js'; -import { userConfig } from './userConfig.js'; -import { - getCliArgs, - getNextCliArgs, - getWpSecret, - getWpUrl, - isDebug, -} from './utils/index.js'; -import { - telemetryPrefsExist, - marshallTelemetryData, - handleTelemetrySubcommand, - requestWPTelemetryData, - shouldFireTelemetryEvent, - sendTelemetryData, -} from './telemetry/index.js'; +import { getCliArgs, getNextCliArgs, isDebug } from './utils/index.js'; +import { marshallTelemetryData, sendTelemetryData } from './telemetry/index.js'; // eslint-disable-next-line func-names, @typescript-eslint/no-floating-promises (async function () { @@ -61,27 +46,8 @@ import { await healthCheck(); } - // Inform user of telemetry program. - if (!telemetryPrefsExist()) { - infoLog('Faust has completely anonymous, opt-in Telemetry!'); - infoLog('You can enable it by running "npx faust telemetry enable"'); - - // Create user's telemetry setting. - userConfig.set('telemetry', { - notifiedAt: new Date().getTime(), - anonymousId: uuid(), - enabled: false, - }); - } - // eslint-disable-next-line default-case switch (arg1) { - case 'telemetry': { - handleTelemetrySubcommand(); - process.exit(0); - - break; - } case 'generatePossibleTypes': { await generatePossibleTypes(); process.exit(0); @@ -102,33 +68,12 @@ import { } } - if (shouldFireTelemetryEvent()) { - try { - const wpTelemetryData = await requestWPTelemetryData( - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - getWpUrl()!, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - getWpSecret()!, - ); - - if (!wpTelemetryData) { - throw new Error( - 'There was a problem retrieving telemetry data from the WordPress instance', - ); - } - - const telemetryData = marshallTelemetryData(wpTelemetryData, arg1); - - debugLog('Telemetry event: ', telemetryData); - - void sendTelemetryData( - telemetryData, - userConfig.get('telemetry.anonymousId') as string, - ); - } catch (err) { - // console.log(err); - // Fail silently - } + try { + const telemetryData = marshallTelemetryData(arg1); + void sendTelemetryData(telemetryData); + } catch (err) { + // console.log(err); + // Fail silently } /** diff --git a/packages/faustwp-cli/src/telemetry/marshallTelemetryData.ts b/packages/faustwp-cli/src/telemetry/marshallTelemetryData.ts index 1b746e5df..e3ad98ec0 100644 --- a/packages/faustwp-cli/src/telemetry/marshallTelemetryData.ts +++ b/packages/faustwp-cli/src/telemetry/marshallTelemetryData.ts @@ -1,21 +1,7 @@ import fs from 'fs'; -import { platform } from 'process'; import { getCliArgs } from '../utils/index.js'; -import { WPTelemetryResponseData } from './requestWPTelemetryData.js'; export interface TelemetryData { - setting_has_frontend_uri?: boolean; - setting_redirects_enabled?: boolean; - setting_rewrites_enabled?: boolean; - setting_themes_disabled?: boolean; - setting_img_src_replacement_enabled?: boolean; - faustwp_version?: string; - wpgraphql_content_blocks_version?: string; - is_wpe?: boolean; - multisite?: boolean; - php_version?: string; - wp_version?: string; - platform?: string; node_faustwp_core_version?: string; node_faustwp_cli_version?: string; node_faustwp_blocks_version?: string; @@ -55,13 +41,10 @@ const sanitizePackageJsonVersion = (_version: string | undefined) => { }; /** - * Marshall the JS and WP telemetry data into a single object for GA. - * @param wpTelemetryData + * Marshall the JS telemetry data. + * @param command Command that initiated the request */ -export const marshallTelemetryData = ( - wpTelemetryData: WPTelemetryResponseData, - command: string, -): TelemetryData => { +export const marshallTelemetryData = (command: string) => { const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8')); const telemetryData: TelemetryData = { @@ -82,20 +65,6 @@ export const marshallTelemetryData = ( packageJson?.dependencies?.next as string | undefined, ), node_is_development: getCliArgs()[0] === 'dev', - platform, - setting_has_frontend_uri: wpTelemetryData?.faustwp?.has_frontend_uri, - setting_redirects_enabled: wpTelemetryData?.faustwp?.redirects_enabled, - setting_rewrites_enabled: wpTelemetryData?.faustwp?.rewrites_enabled, - setting_themes_disabled: wpTelemetryData?.faustwp?.themes_disabled, - setting_img_src_replacement_enabled: - wpTelemetryData?.faustwp?.image_source_replacement_enabled, - faustwp_version: wpTelemetryData?.faustwp?.version, - wpgraphql_content_blocks_version: - wpTelemetryData?.wpgraphql_content_blocks?.version, - is_wpe: wpTelemetryData?.is_wpe, - multisite: wpTelemetryData?.multisite, - php_version: wpTelemetryData?.php_version, - wp_version: wpTelemetryData?.wp_version, command, }; diff --git a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts index 5fe1eb294..68e34ec47 100644 --- a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts +++ b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts @@ -1,44 +1,18 @@ import 'isomorphic-fetch'; -import { TelemetryData } from './marshallTelemetryData.js'; import { getWpUrl } from '../utils/getWpUrl.js'; -import { getWpSecret } from '../utils/getWpSecret.js'; - -const GA_TRACKING_ID = 'G-KPVSTHK1G4'; -const GA_API_SECRET = '-SLuZb8JTbWkWcT5BD032w'; +import { TelemetryData } from './marshallTelemetryData.js'; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -const WP_TELEMETRY_ENDPOINT = `${getWpUrl()!}/wp-json/faustwp/v1/telemetry`; -const WP_SECRET = getWpSecret(); +const WP_TELEMETRY_ENDPOINT = `${getWpUrl()!}/wp-json/faustwp/v1/process_telemetry`; /** * Send the marshalled telemetry data to Faust Telemetry API. * - * @param payload The data being sent to GA - * @param anonymousId The anonymous ID of the machine we captured during init + * @param payload The data being sent to telemetry API */ -export const sendTelemetryData = ( - payload: TelemetryData, - anonymousId: string, -) => { - const body = { - client_id: anonymousId, - wp_secret: WP_SECRET, - events: [ - { - name: 'telemetry_event', - params: payload, - }, - ], - }; - - return fetch( - `${WP_TELEMETRY_ENDPOINT}?${new URLSearchParams({ - api_secret: GA_API_SECRET, - measurement_id: GA_TRACKING_ID, - }).toString()}`, - { - method: 'POST', - body: JSON.stringify(body), - }, - ); +export const sendTelemetryData = (payload: TelemetryData) => { + return fetch(WP_TELEMETRY_ENDPOINT, { + method: 'POST', + body: JSON.stringify(payload), + }); }; From 7c00b99ed0376b170017898a5e5addb9b9f25d41 Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Mon, 18 Dec 2023 09:47:24 -0600 Subject: [PATCH 10/19] changeset for api --- .changeset/thick-pugs-appear.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/thick-pugs-appear.md diff --git a/.changeset/thick-pugs-appear.md b/.changeset/thick-pugs-appear.md new file mode 100644 index 000000000..f8ef8eb21 --- /dev/null +++ b/.changeset/thick-pugs-appear.md @@ -0,0 +1,5 @@ +--- +'@faustwp/cli': major +--- + +Removed Google Analytics endpoint and replaced with updated plugin API endpoint. From 551578b0227b6bded1409702432559e5a9558a28 Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Mon, 18 Dec 2023 09:56:08 -0600 Subject: [PATCH 11/19] Update tough-papayas-complain.md --- .changeset/tough-papayas-complain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/tough-papayas-complain.md b/.changeset/tough-papayas-complain.md index f40b7f1d5..b5986eb09 100644 --- a/.changeset/tough-papayas-complain.md +++ b/.changeset/tough-papayas-complain.md @@ -2,4 +2,4 @@ '@faustwp/cli': major --- -Removed telemetry CLI commands and functionality +Removed telemetry CLI commands and functionality. From c0fffb81414d6217d7b5724e1a5c87569f985f88 Mon Sep 17 00:00:00 2001 From: Matthew Wright <1815200+matthewguywright@users.noreply.github.com> Date: Tue, 19 Dec 2023 10:04:14 -0600 Subject: [PATCH 12/19] Update packages/faustwp-cli/src/telemetry/sendTelemetryData.ts Co-authored-by: Blake Wilson --- packages/faustwp-cli/src/telemetry/sendTelemetryData.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts index 68e34ec47..11296ef59 100644 --- a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts +++ b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts @@ -13,6 +13,10 @@ const WP_TELEMETRY_ENDPOINT = `${getWpUrl()!}/wp-json/faustwp/v1/process_telemet export const sendTelemetryData = (payload: TelemetryData) => { return fetch(WP_TELEMETRY_ENDPOINT, { method: 'POST', + headers: { + 'x-faustwp-secret': getWpSecret(), + 'Content-Type': 'application/json' + } body: JSON.stringify(payload), }); }; From 24ecb74853591b831d2ca62d649a6f6f183b5746 Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Tue, 19 Dec 2023 10:07:23 -0600 Subject: [PATCH 13/19] updated per PR for secret check --- packages/faustwp-cli/src/index.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/faustwp-cli/src/index.ts b/packages/faustwp-cli/src/index.ts index 30127b754..7c0be4687 100644 --- a/packages/faustwp-cli/src/index.ts +++ b/packages/faustwp-cli/src/index.ts @@ -6,7 +6,12 @@ import { healthCheck } from './healthCheck/index.js'; import { generatePossibleTypes } from './generatePossibleTypes.js'; import { generateGlobalStylesheet } from './generateGlobalStylesheet.js'; import { blockset } from './blockset.js'; -import { getCliArgs, getNextCliArgs, isDebug } from './utils/index.js'; +import { + getCliArgs, + getNextCliArgs, + getWpSecret, + isDebug, +} from './utils/index.js'; import { marshallTelemetryData, sendTelemetryData } from './telemetry/index.js'; // eslint-disable-next-line func-names, @typescript-eslint/no-floating-promises @@ -67,12 +72,14 @@ import { marshallTelemetryData, sendTelemetryData } from './telemetry/index.js'; } } - try { - const telemetryData = marshallTelemetryData(arg1); - void sendTelemetryData(telemetryData); - } catch (err) { - // console.log(err); - // Fail silently + if (getWpSecret()) { + try { + const telemetryData = marshallTelemetryData(arg1); + void sendTelemetryData(telemetryData); + } catch (err) { + // console.log(err); + // Fail silently + } } /** From a38fb289a95a0613ce19a427a942f3f56962b401 Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Tue, 19 Dec 2023 16:07:06 -0600 Subject: [PATCH 14/19] Update sendTelemetryData.ts --- packages/faustwp-cli/src/telemetry/sendTelemetryData.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts index 11296ef59..c0b361738 100644 --- a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts +++ b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts @@ -1,6 +1,7 @@ import 'isomorphic-fetch'; import { getWpUrl } from '../utils/getWpUrl.js'; +import { getWpSecret } from '../utils/getWpSecret.js'; import { TelemetryData } from './marshallTelemetryData.js'; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const WP_TELEMETRY_ENDPOINT = `${getWpUrl()!}/wp-json/faustwp/v1/process_telemetry`; @@ -12,11 +13,11 @@ const WP_TELEMETRY_ENDPOINT = `${getWpUrl()!}/wp-json/faustwp/v1/process_telemet */ export const sendTelemetryData = (payload: TelemetryData) => { return fetch(WP_TELEMETRY_ENDPOINT, { - method: 'POST', headers: { - 'x-faustwp-secret': getWpSecret(), - 'Content-Type': 'application/json' - } + 'x-faustwp-secret': getWpSecret() || '', + 'Content-Type': 'application/json', + }, + method: 'POST', body: JSON.stringify(payload), }); }; From d75f26378db2cad547d90983e72eb43c49cc46f8 Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Tue, 19 Dec 2023 16:15:22 -0600 Subject: [PATCH 15/19] updated changeset --- .changeset/thick-pugs-appear.md | 2 +- .changeset/tough-papayas-complain.md | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 .changeset/tough-papayas-complain.md diff --git a/.changeset/thick-pugs-appear.md b/.changeset/thick-pugs-appear.md index f8ef8eb21..4e9f45c5b 100644 --- a/.changeset/thick-pugs-appear.md +++ b/.changeset/thick-pugs-appear.md @@ -2,4 +2,4 @@ '@faustwp/cli': major --- -Removed Google Analytics endpoint and replaced with updated plugin API endpoint. +Removed telemetry CLI commands for `faust telemetry enable/disable/status` for opting in/out and enabling telemetry as well as receiving telemetry status. Telemetry functionality has been moved to the Faust WordPress plugin. diff --git a/.changeset/tough-papayas-complain.md b/.changeset/tough-papayas-complain.md deleted file mode 100644 index b5986eb09..000000000 --- a/.changeset/tough-papayas-complain.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@faustwp/cli': major ---- - -Removed telemetry CLI commands and functionality. From 0c3333c3edc0bb7b43f9302f8f1b281a3100cd82 Mon Sep 17 00:00:00 2001 From: Matthew Wright <1815200+matthewguywright@users.noreply.github.com> Date: Wed, 20 Dec 2023 13:29:40 -0600 Subject: [PATCH 16/19] Update .changeset/thick-pugs-appear.md Co-authored-by: John Parris --- .changeset/thick-pugs-appear.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/thick-pugs-appear.md b/.changeset/thick-pugs-appear.md index 4e9f45c5b..4ff8eab52 100644 --- a/.changeset/thick-pugs-appear.md +++ b/.changeset/thick-pugs-appear.md @@ -2,4 +2,4 @@ '@faustwp/cli': major --- -Removed telemetry CLI commands for `faust telemetry enable/disable/status` for opting in/out and enabling telemetry as well as receiving telemetry status. Telemetry functionality has been moved to the Faust WordPress plugin. +**BREAKING**: Removed telemetry CLI commands for `faust telemetry enable/disable/status` for managing and viewing telemetry opt-in status. Telemetry functionality has been moved to the Faust WordPress plugin. Sites that previously opted in from CLI will no longer send telemetry data unless someone opts in from the WordPress side. From 8ff243a278ef306029d9819daa9f329bbc1d5fec Mon Sep 17 00:00:00 2001 From: Matthew Wright <1815200+matthewguywright@users.noreply.github.com> Date: Wed, 20 Dec 2023 14:31:42 -0600 Subject: [PATCH 17/19] Update packages/faustwp-cli/src/telemetry/sendTelemetryData.ts Co-authored-by: Blake Wilson --- packages/faustwp-cli/src/telemetry/sendTelemetryData.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts index c0b361738..149bc19b9 100644 --- a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts +++ b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts @@ -12,9 +12,13 @@ const WP_TELEMETRY_ENDPOINT = `${getWpUrl()!}/wp-json/faustwp/v1/process_telemet * @param payload The data being sent to telemetry API */ export const sendTelemetryData = (payload: TelemetryData) => { + if(!getWpSecret()) { + throw new Error('Faust secret key is required'); + } + return fetch(WP_TELEMETRY_ENDPOINT, { headers: { - 'x-faustwp-secret': getWpSecret() || '', + 'x-faustwp-secret': getWpSecret(), 'Content-Type': 'application/json', }, method: 'POST', From c02499108e5568bd04f6d8fbb0f2c4ad89653dfe Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Wed, 20 Dec 2023 14:35:10 -0600 Subject: [PATCH 18/19] updated per PR --- packages/faustwp-cli/src/telemetry/sendTelemetryData.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts index 149bc19b9..418f2fa41 100644 --- a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts +++ b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts @@ -3,8 +3,6 @@ import 'isomorphic-fetch'; import { getWpUrl } from '../utils/getWpUrl.js'; import { getWpSecret } from '../utils/getWpSecret.js'; import { TelemetryData } from './marshallTelemetryData.js'; -// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -const WP_TELEMETRY_ENDPOINT = `${getWpUrl()!}/wp-json/faustwp/v1/process_telemetry`; /** * Send the marshalled telemetry data to Faust Telemetry API. @@ -12,10 +10,13 @@ const WP_TELEMETRY_ENDPOINT = `${getWpUrl()!}/wp-json/faustwp/v1/process_telemet * @param payload The data being sent to telemetry API */ export const sendTelemetryData = (payload: TelemetryData) => { - if(!getWpSecret()) { + if (!getWpSecret()) { throw new Error('Faust secret key is required'); } - + + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const WP_TELEMETRY_ENDPOINT = `${getWpUrl()!}/wp-json/faustwp/v1/process_telemetry`; + return fetch(WP_TELEMETRY_ENDPOINT, { headers: { 'x-faustwp-secret': getWpSecret(), From b002366645937a4a662eee555e4de9bd654691a2 Mon Sep 17 00:00:00 2001 From: Matthew Wright Date: Wed, 20 Dec 2023 14:37:02 -0600 Subject: [PATCH 19/19] Update sendTelemetryData.ts --- packages/faustwp-cli/src/telemetry/sendTelemetryData.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts index 418f2fa41..8aa2cb420 100644 --- a/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts +++ b/packages/faustwp-cli/src/telemetry/sendTelemetryData.ts @@ -10,7 +10,9 @@ import { TelemetryData } from './marshallTelemetryData.js'; * @param payload The data being sent to telemetry API */ export const sendTelemetryData = (payload: TelemetryData) => { - if (!getWpSecret()) { + const secret = getWpSecret(); + + if (!secret) { throw new Error('Faust secret key is required'); } @@ -19,7 +21,7 @@ export const sendTelemetryData = (payload: TelemetryData) => { return fetch(WP_TELEMETRY_ENDPOINT, { headers: { - 'x-faustwp-secret': getWpSecret(), + 'x-faustwp-secret': secret, 'Content-Type': 'application/json', }, method: 'POST',