@thymian/plugin-har 0.1.8 → 0.1.9-canary.20260513-e6b82ed

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.
@@ -1 +1 @@
1
- {"version":3,"file":"har-schema.d.ts","sourceRoot":"","sources":["../src/har-schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAkG7C,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAEzD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
1
+ {"version":3,"file":"har-schema.d.ts","sourceRoot":"","sources":["../src/har-schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AA2F7C,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAEzD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
@@ -1,17 +1,16 @@
1
1
  import { ajv } from '@thymian/core';
2
2
  /**
3
3
  * Minimal JSON Schema for HAR 1.2 structure validation.
4
- * Validates only the fields consumed by the plugin — additional
5
- * HAR properties are allowed via `additionalProperties: true`.
4
+ * Validates only the field types consumed by the plugin.
5
+ * All fields are optional because there is no official HAR JSON schema
6
+ * and exporters commonly produce partial variants.
6
7
  */
7
8
  const harLogSchema = {
8
9
  type: 'object',
9
- required: ['log'],
10
10
  additionalProperties: true,
11
11
  properties: {
12
12
  log: {
13
13
  type: 'object',
14
- required: ['entries'],
15
14
  additionalProperties: true,
16
15
  properties: {
17
16
  version: { type: 'string' },
@@ -19,13 +18,11 @@ const harLogSchema = {
19
18
  type: 'array',
20
19
  items: {
21
20
  type: 'object',
22
- required: ['request', 'time'],
23
21
  additionalProperties: true,
24
22
  properties: {
25
23
  time: { type: 'number' },
26
24
  request: {
27
25
  type: 'object',
28
- required: ['method', 'url', 'headers'],
29
26
  additionalProperties: true,
30
27
  properties: {
31
28
  method: { type: 'string' },
@@ -34,7 +31,6 @@ const harLogSchema = {
34
31
  type: 'array',
35
32
  items: {
36
33
  type: 'object',
37
- required: ['name', 'value'],
38
34
  additionalProperties: true,
39
35
  properties: {
40
36
  name: { type: 'string' },
@@ -56,7 +52,6 @@ const harLogSchema = {
56
52
  response: {
57
53
  type: 'object',
58
54
  nullable: true,
59
- required: ['status', 'headers', 'content'],
60
55
  additionalProperties: true,
61
56
  properties: {
62
57
  status: { type: 'number' },
@@ -64,7 +59,6 @@ const harLogSchema = {
64
59
  type: 'array',
65
60
  items: {
66
61
  type: 'object',
67
- required: ['name', 'value'],
68
62
  additionalProperties: true,
69
63
  properties: {
70
64
  name: { type: 'string' },
@@ -74,7 +68,6 @@ const harLogSchema = {
74
68
  },
75
69
  content: {
76
70
  type: 'object',
77
- required: ['size'],
78
71
  additionalProperties: true,
79
72
  properties: {
80
73
  text: { type: 'string', nullable: true },
@@ -1 +1 @@
1
- {"version":3,"file":"har-schema.js","sourceRoot":"","sources":["../src/har-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"har-schema.js","sourceRoot":"","sources":["../src/har-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EAEnB,aAAa,EACd,MAAM,eAAe,CAAC;AAOvB,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAEjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC,CAAC;AAEF,wBAAgB,eAAe,CAC7B,UAAU,SAAwB,GACjC,aAAa,CAAC,gBAAgB,CAAC,CA0FjC;AAED,eAAO,MAAM,SAAS,iCAAoB,CAAC;AAE3C,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EAEnB,aAAa,EACd,MAAM,eAAe,CAAC;AAOvB,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAEjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC,CAAC;AAEF,wBAAgB,eAAe,CAC7B,UAAU,SAAwB,GACjC,aAAa,CAAC,gBAAgB,CAAC,CA2FjC;AAED,eAAO,MAAM,SAAS,iCAAoB,CAAC;AAE3C,eAAe,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -61,7 +61,7 @@ export function createHarPlugin(pluginName = '@thymian/plugin-har') {
61
61
  const allTransactions = [];
62
62
  for (const harInput of harInputs) {
63
63
  logger.info(`Loading traffic from HAR file: ${String(harInput.location)}`);
64
- const transactions = await loadTransactionsFromHar(String(harInput.location), logger, options.cwd, maxFileSize, clientRole, serverRole);
64
+ const transactions = await loadTransactionsFromHar(String(harInput.location), logger, options.cwd, maxFileSize, clientRole, serverRole, input.validateTrafficSource);
65
65
  // Avoid spread (`allTransactions.push(...transactions)`) because
66
66
  // large HAR files can contain thousands of entries, which would
67
67
  // exceed the JavaScript call-stack size limit.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,5 @@ import type { CapturedTransaction, HttpParticipantRole, Logger } from '@thymian/
6
6
  * @throws {ThymianBaseError} if the file is too large, unreadable,
7
7
  * not valid JSON, or not a valid HAR structure.
8
8
  */
9
- export declare function loadTransactionsFromHar(location: string, logger: Logger, cwd: string, maxFileSize: number, clientRole: HttpParticipantRole, serverRole: HttpParticipantRole): Promise<CapturedTransaction[]>;
9
+ export declare function loadTransactionsFromHar(location: string, logger: Logger, cwd: string, maxFileSize: number, clientRole: HttpParticipantRole, serverRole: HttpParticipantRole, validateTrafficSource: boolean): Promise<CapturedTransaction[]>;
10
10
  //# sourceMappingURL=load-transactions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-transactions.d.ts","sourceRoot":"","sources":["../src/load-transactions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,EACP,MAAM,eAAe,CAAC;AAMvB;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,mBAAmB,EAC/B,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAsDhC"}
1
+ {"version":3,"file":"load-transactions.d.ts","sourceRoot":"","sources":["../src/load-transactions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,EACP,MAAM,eAAe,CAAC;AAMvB;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,mBAAmB,EAC/B,UAAU,EAAE,mBAAmB,EAC/B,qBAAqB,EAAE,OAAO,GAC7B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAoEhC"}
@@ -10,7 +10,7 @@ import { transformHar } from './har-transformer.js';
10
10
  * @throws {ThymianBaseError} if the file is too large, unreadable,
11
11
  * not valid JSON, or not a valid HAR structure.
12
12
  */
13
- export async function loadTransactionsFromHar(location, logger, cwd, maxFileSize, clientRole, serverRole) {
13
+ export async function loadTransactionsFromHar(location, logger, cwd, maxFileSize, clientRole, serverRole, validateTrafficSource) {
14
14
  const filePath = isAbsolute(location) ? location : join(cwd, location);
15
15
  // Guard against oversized files to prevent out-of-memory crashes.
16
16
  // JSON.parse roughly doubles memory usage, so capping the file size
@@ -40,9 +40,22 @@ export async function loadTransactionsFromHar(location, logger, cwd, maxFileSize
40
40
  throw new ThymianBaseError(`Failed to parse HAR file as JSON: ${filePath}`);
41
41
  }
42
42
  if (!validateHar(parsed)) {
43
- throw new ThymianBaseError(`Invalid HAR structure in ${filePath}: ${getValidationErrors()}`);
43
+ const validationErrors = getValidationErrors();
44
+ if (validateTrafficSource) {
45
+ throw new ThymianBaseError(`Invalid HAR structure in ${filePath}: ${validationErrors}`);
46
+ }
47
+ logger.warn(`HAR schema validation failed for ${filePath}: ${validationErrors}.`);
44
48
  }
45
- const { transactions, skippedCount, skippedReasons } = transformHar(parsed, clientRole, serverRole);
49
+ let transformed;
50
+ try {
51
+ transformed = transformHar(parsed, clientRole, serverRole);
52
+ }
53
+ catch (err) {
54
+ throw new ThymianBaseError(`Failed to transform HAR file: ${filePath}`, {
55
+ cause: err instanceof Error ? err : undefined,
56
+ });
57
+ }
58
+ const { transactions, skippedCount, skippedReasons } = transformed;
46
59
  if (skippedCount > 0) {
47
60
  const uniqueReasons = [...new Set(skippedReasons)].join(', ');
48
61
  logger.warn(`Skipped ${skippedCount.toString()} HAR ${skippedCount === 1 ? 'entry' : 'entries'} in ${filePath} due to: ${uniqueReasons}`);
@@ -1 +1 @@
1
- {"version":3,"file":"load-transactions.js","sourceRoot":"","sources":["../src/load-transactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAO7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAgB,EAChB,MAAc,EACd,GAAW,EACX,WAAmB,EACnB,UAA+B,EAC/B,UAA+B;IAE/B,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEvE,kEAAkE;IAClE,oEAAoE;IACpE,uCAAuC;IACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAC5D,MAAM,IAAI,gBAAgB,CAAC,4BAA4B,QAAQ,EAAE,EAAE;YACjE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,gBAAgB,CACxB,kCAAkC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,WAAW,CAAC,QAAQ,EAAE,YAAY,QAAQ,EAAE,CACpH,CAAC;IACJ,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,gBAAgB,CAAC,4BAA4B,QAAQ,EAAE,EAAE;YACjE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,gBAAgB,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,gBAAgB,CACxB,4BAA4B,QAAQ,KAAK,mBAAmB,EAAE,EAAE,CACjE,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,YAAY,CACjE,MAAM,EACN,UAAU,EACV,UAAU,CACX,CAAC;IAEF,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CACT,WAAW,YAAY,CAAC,QAAQ,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,QAAQ,YAAY,aAAa,EAAE,CAC7H,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"load-transactions.js","sourceRoot":"","sources":["../src/load-transactions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thymian/plugin-har",
3
- "version": "0.1.8",
3
+ "version": "0.1.9-canary.20260513-e6b82ed",
4
4
  "description": "Thymian plugin for loading HAR (HTTP Archive) files into the traffic pipeline",
5
5
  "license": "AGPL-3.0-only",
6
6
  "bugs": {
@@ -39,10 +39,10 @@
39
39
  "!**/*.tsbuildinfo"
40
40
  ],
41
41
  "dependencies": {
42
- "@thymian/core": "0.1.8",
42
+ "@thymian/core": "0.1.9-canary.20260513-e6b82ed",
43
43
  "tslib": "^2.3.0"
44
44
  },
45
45
  "devDependencies": {
46
- "@thymian/core-testing": "0.1.8"
46
+ "@thymian/core-testing": "0.1.9-canary.20260513-e6b82ed"
47
47
  }
48
48
  }