Skip to content

Commit 389c4de

Browse files
authored
[DX-2335] feat: Send checkout widgets version to analytics service (#873)
1 parent 64a9760 commit 389c4de

File tree

21 files changed

+542
-0
lines changed

21 files changed

+542
-0
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/sdk @immutable/developer-experience
22
/packages/immutablex_client @immutable/developer-experience
33
/packages/config @immutable/developer-experience
4+
/packages/internal/analytics @immutable/developer-experience
45
/packages/internal/generated-clients @immutable/developer-experience
56
/packages/internal/toolkit @immutable/wallets
67
/packages/internal/cryptofiat @immutable/wallets

.github/workflows/build-lint-typecheck-test.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ jobs:
4949
- name: Install dependencies
5050
run: yarn install --immutable
5151

52+
- name: Build
53+
run: yarn build
54+
5255
- name: Test
5356
run: yarn test
5457

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
"packages/provider",
6767
"packages/provider/src/sample-app",
6868
"packages/orderbook",
69+
"packages/internal/analytics",
6970
"packages/internal/contracts",
7071
"packages/internal/toolkit",
7172
"packages/internal/cryptofiat",

packages/checkout/widgets-lib/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"@biom3/design-tokens": "0.2.4-beta",
1818
"@biom3/react": "^0.9.17-beta",
1919
"@ethersproject/providers": "^5.7.2",
20+
"@imtbl/analytics": "0.0.0",
2021
"@imtbl/bridge-sdk": "0.0.0",
2122
"@imtbl/checkout-sdk": "0.0.0",
2223
"@imtbl/checkout-widgets": "0.0.0",

packages/checkout/widgets-lib/src/widgets/ImmutableWebComponent.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import ReactDOM from 'react-dom/client';
22
import { Web3Provider } from '@ethersproject/providers';
3+
import { sdkVersionCheck, sdkVersion } from '@imtbl/analytics';
34
import { Checkout } from '@imtbl/checkout-sdk';
45
import { Passport } from '@imtbl/passport';
56
import { StrongCheckoutWidgetsConfig, withDefaultWidgetConfigs } from '../lib/withDefaultWidgetConfig';
@@ -44,6 +45,8 @@ export abstract class ImmutableWebComponent extends HTMLElement {
4445
const widgetConfig = this.getAttribute('widgetconfig') || undefined;
4546
this.widgetConfig = this.parseWidgetConfig(widgetConfig);
4647
this.updateCheckout();
48+
// Leave version at the end so the widgets will load even if the next call fails
49+
sdkVersionCheck('checkout-widgets', sdkVersion);
4750
}
4851

4952
private parseWidgetConfig(widgetsConfig?: string): StrongCheckoutWidgetsConfig {

packages/internal/analytics/.eslintrc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"extends": ["../../../.eslintrc"],
3+
"parser": "@typescript-eslint/parser",
4+
"parserOptions": {
5+
"project": "./tsconfig.json",
6+
"tsconfigRootDir": "."
7+
}
8+
}

packages/internal/analytics/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Analytics
2+
3+
Internal analytics package,
4+
5+
## Version Check
6+
7+
The version check is a simple function that checks the current version of the SDK.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import type { Config } from 'jest';
2+
3+
const config: Config = {
4+
clearMocks: true,
5+
coverageProvider: 'v8',
6+
moduleDirectories: ['node_modules', 'src'],
7+
testEnvironment: 'jsdom',
8+
transform: {
9+
'^.+\\.(t|j)sx?$': '@swc/jest',
10+
},
11+
transformIgnorePatterns: [],
12+
testEnvironmentOptions: {
13+
url: 'http://localhost',
14+
},
15+
};
16+
17+
export default config;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"name": "@imtbl/analytics",
3+
"description": "Analytics module for Immutable SDK",
4+
"version": "0.0.0",
5+
"author": "Immutable",
6+
"bugs": "https://github.com/immutable/ts-immutable-sdk/issues",
7+
"dependencies": {
8+
"axios": "^1.3.5"
9+
},
10+
"devDependencies": {
11+
"@rollup/plugin-typescript": "^11.0.0",
12+
"@swc/jest": "^0.2.24",
13+
"@types/jest": "^29.4.3",
14+
"eslint": "^8.40.0",
15+
"http-server": "^14.1.1",
16+
"jest": "^29.4.3",
17+
"jest-environment-jsdom": "^29.4.3",
18+
"rollup": "^3.17.2",
19+
"typescript": "^4.9.5"
20+
},
21+
"engines": {
22+
"node": ">=16.11.0"
23+
},
24+
"files": [
25+
"dist"
26+
],
27+
"homepage": "https://github.com/immutable/ts-immutable-sdk#readme",
28+
"main": "dist/index.js",
29+
"private": true,
30+
"repository": "immutable/ts-immutable-sdk.git",
31+
"scripts": {
32+
"build": "NODE_ENV=production rollup --config rollup.config.js",
33+
"lint": "eslint ./src --ext .ts,.jsx,.tsx --max-warnings=0",
34+
"start:checkout-js-server": "http-server -p 8080 -c-1 ../../../sdk/dist",
35+
"start:checkout-web-server": "http-server -p 8081 -c-1 ./src/version-check/checkout-widgets-test",
36+
"test": "jest",
37+
"typecheck": "tsc --noEmit --jsx preserve"
38+
},
39+
"type": "module",
40+
"types": "dist/index.d.ts"
41+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import typescript from '@rollup/plugin-typescript';
2+
3+
export default {
4+
input: 'src/index.ts',
5+
output: {
6+
dir: 'dist',
7+
format: 'es',
8+
},
9+
plugins: [typescript()],
10+
};

0 commit comments

Comments
 (0)