@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 CHANGED
@@ -1,3 +1,87 @@
1
- # PostHog Webpack Plugin
1
+ # @posthog/webpack-plugin
2
2
 
3
- Please see the main [PostHog docs](https://www.posthog.com/docs)
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;
@@ -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;KAC9B,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;KAC7B,CAAA;CACJ;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,oBAAoB,CAyBzE"}
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
  }
@@ -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;CA2CzG"}
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
- 'sourcemap',
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
- 'sourcemap',
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",
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.17",
20
- "@posthog/core": "1.8.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
- const args = ['sourcemap', 'process']
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,