@posthog/webpack-plugin 1.2.3 → 1.2.5
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/README.md +86 -2
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -1
- package/dist/config.mjs +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -5
- package/dist/index.mjs +4 -5
- package/package.json +3 -3
- package/src/config.ts +3 -0
- package/src/index.ts +8 -2
package/README.md
CHANGED
|
@@ -1,3 +1,87 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @posthog/webpack-plugin
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Webpack plugin for uploading source maps to PostHog for error tracking.
|
|
4
|
+
|
|
5
|
+
[SEE FULL DOCS](https://posthog.com/docs/error-tracking/upload-source-maps/webpack)
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @posthog/webpack-plugin --save-dev
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
Add the plugin to your webpack configuration:
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
import { PosthogWebpackPlugin } from '@posthog/webpack-plugin'
|
|
19
|
+
|
|
20
|
+
export default {
|
|
21
|
+
// ... your webpack config
|
|
22
|
+
plugins: [
|
|
23
|
+
new PosthogWebpackPlugin({
|
|
24
|
+
personalApiKey: process.env.POSTHOG_PERSONAL_API_KEY,
|
|
25
|
+
envId: process.env.POSTHOG_PROJECT_ID,
|
|
26
|
+
sourcemaps: {
|
|
27
|
+
enabled: true,
|
|
28
|
+
project: 'my-app',
|
|
29
|
+
version: '1.0.0',
|
|
30
|
+
},
|
|
31
|
+
}),
|
|
32
|
+
],
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Configuration Options
|
|
37
|
+
|
|
38
|
+
| Option | Type | Required | Default | Description |
|
|
39
|
+
| ------------------------------ | ---------------------------------------------------- | -------- | -------------------------- | ------------------------------------------- |
|
|
40
|
+
| `personalApiKey` | `string` | Yes | - | Your PostHog personal API key |
|
|
41
|
+
| `envId` | `string` | Yes | - | Your PostHog project/environment ID |
|
|
42
|
+
| `host` | `string` | No | `https://us.i.posthog.com` | PostHog instance host |
|
|
43
|
+
| `logLevel` | `'debug' \| 'info' \| 'warn' \| 'error' \| 'silent'` | No | `'info'` | Logging verbosity |
|
|
44
|
+
| `cliBinaryPath` | `string` | No | Auto-detected | Path to the PostHog CLI binary |
|
|
45
|
+
| `sourcemaps.enabled` | `boolean` | No | `true` in production | Enable source map processing |
|
|
46
|
+
| `sourcemaps.project` | `string` | No | - | Project name for source map grouping |
|
|
47
|
+
| `sourcemaps.version` | `string` | No | - | Version identifier for the release |
|
|
48
|
+
| `sourcemaps.deleteAfterUpload` | `boolean` | No | `true` | Delete source maps after upload |
|
|
49
|
+
| `sourcemaps.batchSize` | `number` | No | - | Number of source maps to upload in parallel |
|
|
50
|
+
|
|
51
|
+
### Full Example
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
import path from 'node:path'
|
|
55
|
+
import webpack from 'webpack'
|
|
56
|
+
import { PosthogWebpackPlugin } from '@posthog/webpack-plugin'
|
|
57
|
+
import packageJson from './package.json'
|
|
58
|
+
|
|
59
|
+
const config: webpack.Configuration = {
|
|
60
|
+
mode: 'production',
|
|
61
|
+
entry: './src/index.ts',
|
|
62
|
+
output: {
|
|
63
|
+
filename: 'bundle.js',
|
|
64
|
+
path: path.resolve(__dirname, 'dist'),
|
|
65
|
+
},
|
|
66
|
+
plugins: [
|
|
67
|
+
new PosthogWebpackPlugin({
|
|
68
|
+
personalApiKey: process.env.POSTHOG_PERSONAL_API_KEY,
|
|
69
|
+
envId: process.env.POSTHOG_PROJECT_ID,
|
|
70
|
+
host: process.env.POSTHOG_API_HOST,
|
|
71
|
+
logLevel: 'error',
|
|
72
|
+
sourcemaps: {
|
|
73
|
+
enabled: true,
|
|
74
|
+
project: packageJson.name,
|
|
75
|
+
version: packageJson.version,
|
|
76
|
+
deleteAfterUpload: true,
|
|
77
|
+
},
|
|
78
|
+
}),
|
|
79
|
+
],
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export default config
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Questions?
|
|
86
|
+
|
|
87
|
+
### [Check out our community page.](https://posthog.com/docs/error-tracking/upload-source-maps/webpack)
|
package/dist/config.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface PluginConfig {
|
|
|
10
10
|
project?: string;
|
|
11
11
|
version?: string;
|
|
12
12
|
deleteAfterUpload?: boolean;
|
|
13
|
+
batchSize?: number;
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
16
|
export interface ResolvedPluginConfig extends PluginConfig {
|
|
@@ -21,6 +22,7 @@ export interface ResolvedPluginConfig extends PluginConfig {
|
|
|
21
22
|
project?: string;
|
|
22
23
|
version?: string;
|
|
23
24
|
deleteAfterUpload: boolean;
|
|
25
|
+
batchSize?: number;
|
|
24
26
|
};
|
|
25
27
|
}
|
|
26
28
|
export declare function resolveConfig(options: PluginConfig): ResolvedPluginConfig;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE9D,MAAM,WAAW,YAAY;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,iBAAiB,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE9D,MAAM,WAAW,YAAY;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,iBAAiB,CAAC,EAAE,OAAO,CAAA;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACJ;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACtD,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE;QACR,OAAO,EAAE,OAAO,CAAA;QAChB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,iBAAiB,EAAE,OAAO,CAAA;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACJ;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,oBAAoB,CA0BzE"}
|
package/dist/config.js
CHANGED
|
@@ -50,7 +50,8 @@ function resolveConfig(options) {
|
|
|
50
50
|
enabled: null != (_sourcemaps_enabled = sourcemaps.enabled) ? _sourcemaps_enabled : 'production' === process.env.NODE_ENV,
|
|
51
51
|
project: sourcemaps.project,
|
|
52
52
|
version: sourcemaps.version,
|
|
53
|
-
deleteAfterUpload: null != (_sourcemaps_deleteAfterUpload = sourcemaps.deleteAfterUpload) ? _sourcemaps_deleteAfterUpload : true
|
|
53
|
+
deleteAfterUpload: null != (_sourcemaps_deleteAfterUpload = sourcemaps.deleteAfterUpload) ? _sourcemaps_deleteAfterUpload : true,
|
|
54
|
+
batchSize: sourcemaps.batchSize
|
|
54
55
|
}
|
|
55
56
|
};
|
|
56
57
|
}
|
package/dist/config.mjs
CHANGED
|
@@ -25,7 +25,8 @@ function resolveConfig(options) {
|
|
|
25
25
|
enabled: null != (_sourcemaps_enabled = sourcemaps.enabled) ? _sourcemaps_enabled : 'production' === process.env.NODE_ENV,
|
|
26
26
|
project: sourcemaps.project,
|
|
27
27
|
version: sourcemaps.version,
|
|
28
|
-
deleteAfterUpload: null != (_sourcemaps_deleteAfterUpload = sourcemaps.deleteAfterUpload) ? _sourcemaps_deleteAfterUpload : true
|
|
28
|
+
deleteAfterUpload: null != (_sourcemaps_deleteAfterUpload = sourcemaps.deleteAfterUpload) ? _sourcemaps_deleteAfterUpload : true,
|
|
29
|
+
batchSize: sourcemaps.batchSize
|
|
29
30
|
}
|
|
30
31
|
};
|
|
31
32
|
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,YAAY,EAAiB,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,OAAO,MAAM,SAAS,CAAA;AAI7B,cAAc,UAAU,CAAA;AAExB,qBAAa,oBAAoB;IAC7B,cAAc,EAAE,oBAAoB,CAAA;IACpC,MAAM,EAAE,MAAM,CAAA;gBAEF,YAAY,EAAE,YAAY;IAatC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI;IA0BjC,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,YAAY,EAAiB,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,OAAO,MAAM,SAAS,CAAA;AAI7B,cAAc,UAAU,CAAA;AAExB,qBAAa,oBAAoB;IAC7B,cAAc,EAAE,oBAAoB,CAAA;IACpC,MAAM,EAAE,MAAM,CAAA;gBAEF,YAAY,EAAE,YAAY;IAatC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI;IA0BjC,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAiDzG"}
|
package/dist/index.js
CHANGED
|
@@ -95,10 +95,8 @@ var __webpack_exports__ = {};
|
|
|
95
95
|
}
|
|
96
96
|
async processSourceMaps(compilation, config) {
|
|
97
97
|
const outputDirectory = compilation.outputOptions.path;
|
|
98
|
-
const args = [
|
|
99
|
-
|
|
100
|
-
'process'
|
|
101
|
-
];
|
|
98
|
+
const args = [];
|
|
99
|
+
args.push('sourcemap', 'process');
|
|
102
100
|
const chunkArray = Array.from(compilation.chunks);
|
|
103
101
|
if (0 == chunkArray.length) return;
|
|
104
102
|
chunkArray.forEach((chunk)=>chunk.files.forEach((file)=>{
|
|
@@ -108,11 +106,12 @@ var __webpack_exports__ = {};
|
|
|
108
106
|
if (config.sourcemaps.project) args.push('--project', config.sourcemaps.project);
|
|
109
107
|
if (config.sourcemaps.version) args.push('--version', config.sourcemaps.version);
|
|
110
108
|
if (config.sourcemaps.deleteAfterUpload) args.push('--delete-after');
|
|
109
|
+
if (config.sourcemaps.batchSize) args.push('--batch-size', config.sourcemaps.batchSize.toString());
|
|
111
110
|
await (0, _posthog_core_process__WEBPACK_IMPORTED_MODULE_2__.spawnLocal)(config.cliBinaryPath, args, {
|
|
112
111
|
cwd: process.cwd(),
|
|
113
112
|
env: {
|
|
114
|
-
...process.env,
|
|
115
113
|
RUST_LOG: `posthog_cli=${config.logLevel}`,
|
|
114
|
+
...process.env,
|
|
116
115
|
POSTHOG_CLI_HOST: config.host,
|
|
117
116
|
POSTHOG_CLI_TOKEN: config.personalApiKey,
|
|
118
117
|
POSTHOG_CLI_ENV_ID: config.envId
|
package/dist/index.mjs
CHANGED
|
@@ -26,10 +26,8 @@ class PosthogWebpackPlugin {
|
|
|
26
26
|
}
|
|
27
27
|
async processSourceMaps(compilation, config) {
|
|
28
28
|
const outputDirectory = compilation.outputOptions.path;
|
|
29
|
-
const args = [
|
|
30
|
-
|
|
31
|
-
'process'
|
|
32
|
-
];
|
|
29
|
+
const args = [];
|
|
30
|
+
args.push('sourcemap', 'process');
|
|
33
31
|
const chunkArray = Array.from(compilation.chunks);
|
|
34
32
|
if (0 == chunkArray.length) return;
|
|
35
33
|
chunkArray.forEach((chunk)=>chunk.files.forEach((file)=>{
|
|
@@ -39,11 +37,12 @@ class PosthogWebpackPlugin {
|
|
|
39
37
|
if (config.sourcemaps.project) args.push('--project', config.sourcemaps.project);
|
|
40
38
|
if (config.sourcemaps.version) args.push('--version', config.sourcemaps.version);
|
|
41
39
|
if (config.sourcemaps.deleteAfterUpload) args.push('--delete-after');
|
|
40
|
+
if (config.sourcemaps.batchSize) args.push('--batch-size', config.sourcemaps.batchSize.toString());
|
|
42
41
|
await spawnLocal(config.cliBinaryPath, args, {
|
|
43
42
|
cwd: process.cwd(),
|
|
44
43
|
env: {
|
|
45
|
-
...process.env,
|
|
46
44
|
RUST_LOG: `posthog_cli=${config.logLevel}`,
|
|
45
|
+
...process.env,
|
|
47
46
|
POSTHOG_CLI_HOST: config.host,
|
|
48
47
|
POSTHOG_CLI_TOKEN: config.personalApiKey,
|
|
49
48
|
POSTHOG_CLI_ENV_ID: config.envId
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@posthog/webpack-plugin",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.5",
|
|
4
4
|
"description": "Webpack plugin for Posthog 🦔",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"module": "./dist/index.mjs",
|
|
17
17
|
"types": "./dist/index.d.ts",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@posthog/cli": "~0.5.
|
|
20
|
-
"@posthog/core": "1.
|
|
19
|
+
"@posthog/cli": "~0.5.20",
|
|
20
|
+
"@posthog/core": "1.9.1"
|
|
21
21
|
},
|
|
22
22
|
"files": [
|
|
23
23
|
"dist",
|
package/src/config.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface PluginConfig {
|
|
|
13
13
|
project?: string
|
|
14
14
|
version?: string
|
|
15
15
|
deleteAfterUpload?: boolean
|
|
16
|
+
batchSize?: number
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
19
|
|
|
@@ -25,6 +26,7 @@ export interface ResolvedPluginConfig extends PluginConfig {
|
|
|
25
26
|
project?: string
|
|
26
27
|
version?: string
|
|
27
28
|
deleteAfterUpload: boolean
|
|
29
|
+
batchSize?: number
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
|
|
@@ -51,6 +53,7 @@ export function resolveConfig(options: PluginConfig): ResolvedPluginConfig {
|
|
|
51
53
|
project: sourcemaps.project,
|
|
52
54
|
version: sourcemaps.version,
|
|
53
55
|
deleteAfterUpload: sourcemaps.deleteAfterUpload ?? true,
|
|
56
|
+
batchSize: sourcemaps.batchSize,
|
|
54
57
|
},
|
|
55
58
|
}
|
|
56
59
|
}
|
package/src/index.ts
CHANGED
|
@@ -51,9 +51,11 @@ export class PosthogWebpackPlugin {
|
|
|
51
51
|
|
|
52
52
|
async processSourceMaps(compilation: webpack.Compilation, config: ResolvedPluginConfig): Promise<void> {
|
|
53
53
|
const outputDirectory = compilation.outputOptions.path
|
|
54
|
+
const args = []
|
|
54
55
|
|
|
55
56
|
// chunks are output outside of the output directory for server chunks
|
|
56
|
-
|
|
57
|
+
args.push('sourcemap', 'process')
|
|
58
|
+
|
|
57
59
|
const chunkArray = Array.from(compilation.chunks)
|
|
58
60
|
|
|
59
61
|
if (chunkArray.length == 0) {
|
|
@@ -80,11 +82,15 @@ export class PosthogWebpackPlugin {
|
|
|
80
82
|
args.push('--delete-after')
|
|
81
83
|
}
|
|
82
84
|
|
|
85
|
+
if (config.sourcemaps.batchSize) {
|
|
86
|
+
args.push('--batch-size', config.sourcemaps.batchSize.toString())
|
|
87
|
+
}
|
|
88
|
+
|
|
83
89
|
await spawnLocal(config.cliBinaryPath, args, {
|
|
84
90
|
cwd: process.cwd(),
|
|
85
91
|
env: {
|
|
86
|
-
...process.env,
|
|
87
92
|
RUST_LOG: `posthog_cli=${config.logLevel}`,
|
|
93
|
+
...process.env,
|
|
88
94
|
POSTHOG_CLI_HOST: config.host,
|
|
89
95
|
POSTHOG_CLI_TOKEN: config.personalApiKey,
|
|
90
96
|
POSTHOG_CLI_ENV_ID: config.envId,
|