@vforsh/argus-core 0.1.2 → 0.1.3

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.
Files changed (82) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/logs/previewStringify.d.ts +11 -0
  7. package/dist/logs/previewStringify.d.ts.map +1 -0
  8. package/dist/logs/previewStringify.js +158 -0
  9. package/dist/logs/previewStringify.js.map +1 -0
  10. package/dist/protocol/http/code.d.ts +59 -0
  11. package/dist/protocol/http/code.d.ts.map +1 -0
  12. package/dist/protocol/http/code.js +2 -0
  13. package/dist/protocol/http/code.js.map +1 -0
  14. package/dist/protocol/http/dom.d.ts +392 -0
  15. package/dist/protocol/http/dom.d.ts.map +1 -0
  16. package/dist/protocol/http/dom.js +2 -0
  17. package/dist/protocol/http/dom.js.map +1 -0
  18. package/dist/protocol/http/emulation.d.ts +92 -0
  19. package/dist/protocol/http/emulation.d.ts.map +1 -0
  20. package/dist/protocol/http/emulation.js +2 -0
  21. package/dist/protocol/http/emulation.js.map +1 -0
  22. package/dist/protocol/http/errors.d.ts +9 -0
  23. package/dist/protocol/http/errors.d.ts.map +1 -0
  24. package/dist/protocol/http/errors.js +2 -0
  25. package/dist/protocol/http/errors.js.map +1 -0
  26. package/dist/protocol/http/eval.d.ts +23 -0
  27. package/dist/protocol/http/eval.d.ts.map +1 -0
  28. package/dist/protocol/http/eval.js +2 -0
  29. package/dist/protocol/http/eval.js.map +1 -0
  30. package/dist/protocol/http/logs.d.ts +15 -0
  31. package/dist/protocol/http/logs.d.ts.map +1 -0
  32. package/dist/protocol/http/logs.js +2 -0
  33. package/dist/protocol/http/logs.js.map +1 -0
  34. package/dist/protocol/http/net.d.ts +27 -0
  35. package/dist/protocol/http/net.d.ts.map +1 -0
  36. package/dist/protocol/http/net.js +2 -0
  37. package/dist/protocol/http/net.js.map +1 -0
  38. package/dist/protocol/http/screenshot.d.ts +13 -0
  39. package/dist/protocol/http/screenshot.d.ts.map +1 -0
  40. package/dist/protocol/http/screenshot.js +2 -0
  41. package/dist/protocol/http/screenshot.js.map +1 -0
  42. package/dist/protocol/http/snapshot.d.ts +40 -0
  43. package/dist/protocol/http/snapshot.d.ts.map +1 -0
  44. package/dist/protocol/http/snapshot.js +2 -0
  45. package/dist/protocol/http/snapshot.js.map +1 -0
  46. package/dist/protocol/http/status.d.ts +38 -0
  47. package/dist/protocol/http/status.d.ts.map +1 -0
  48. package/dist/protocol/http/status.js +2 -0
  49. package/dist/protocol/http/status.js.map +1 -0
  50. package/dist/protocol/http/storage.d.ts +46 -0
  51. package/dist/protocol/http/storage.d.ts.map +1 -0
  52. package/dist/protocol/http/storage.js +2 -0
  53. package/dist/protocol/http/storage.js.map +1 -0
  54. package/dist/protocol/http/throttle.d.ts +48 -0
  55. package/dist/protocol/http/throttle.d.ts.map +1 -0
  56. package/dist/protocol/http/throttle.js +2 -0
  57. package/dist/protocol/http/throttle.js.map +1 -0
  58. package/dist/protocol/http/trace.d.ts +27 -0
  59. package/dist/protocol/http/trace.d.ts.map +1 -0
  60. package/dist/protocol/http/trace.js +2 -0
  61. package/dist/protocol/http/trace.js.map +1 -0
  62. package/dist/protocol/http.d.ts +13 -41
  63. package/dist/protocol/http.d.ts.map +1 -1
  64. package/dist/protocol/version.d.ts +5 -0
  65. package/dist/protocol/version.d.ts.map +1 -0
  66. package/dist/protocol/version.js +3 -0
  67. package/dist/protocol/version.js.map +1 -0
  68. package/dist/registry/lock.d.ts +7 -0
  69. package/dist/registry/lock.d.ts.map +1 -0
  70. package/dist/registry/lock.js +87 -0
  71. package/dist/registry/lock.js.map +1 -0
  72. package/dist/registry/registry.d.ts +6 -0
  73. package/dist/registry/registry.d.ts.map +1 -1
  74. package/dist/registry/registry.js +16 -0
  75. package/dist/registry/registry.js.map +1 -1
  76. package/dist/registry/types.d.ts +26 -2
  77. package/dist/registry/types.d.ts.map +1 -1
  78. package/dist/textPattern.d.ts +23 -0
  79. package/dist/textPattern.d.ts.map +1 -0
  80. package/dist/textPattern.js +48 -0
  81. package/dist/textPattern.js.map +1 -0
  82. package/package.json +7 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../../src/protocol/http/screenshot.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * A node in the accessibility tree.
3
+ * Reconstructed from CDP's flat AXNode array into a nested structure.
4
+ */
5
+ export type AXTreeNode = {
6
+ /** Accessibility role (e.g. "button", "textbox", "heading", "link"). */
7
+ role: string;
8
+ /** Accessible name (visible label or aria-label). */
9
+ name: string;
10
+ /** Current value for inputs/selects/sliders. */
11
+ value?: string;
12
+ /** Relevant state properties. */
13
+ properties?: Record<string, string | number | boolean>;
14
+ /** Child nodes in the accessibility tree. */
15
+ children?: AXTreeNode[];
16
+ };
17
+ /**
18
+ * Request payload for POST /snapshot.
19
+ */
20
+ export type SnapshotRequest = {
21
+ /** CSS selector to scope the snapshot to a DOM subtree. */
22
+ selector?: string;
23
+ /** Max depth to traverse. */
24
+ depth?: number;
25
+ /** If true, only return interactive elements (buttons, links, inputs, etc.). */
26
+ interactive?: boolean;
27
+ };
28
+ /**
29
+ * Response payload for POST /snapshot.
30
+ */
31
+ export type SnapshotResponse = {
32
+ ok: true;
33
+ /** Root nodes of the accessibility tree. */
34
+ roots: AXTreeNode[];
35
+ /** Total number of nodes before filtering. */
36
+ totalNodes: number;
37
+ /** Number of nodes after filtering. */
38
+ returnedNodes: number;
39
+ };
40
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/snapshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IACxB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;IACtD,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAA;CACvB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC7B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gFAAgF;IAChF,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B,EAAE,EAAE,IAAI,CAAA;IACR,4CAA4C;IAC5C,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAA;CACrB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/protocol/http/snapshot.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ import type { WatcherRecord } from '../../registry/types.js';
2
+ import type { ArgusProtocolVersion } from '../version.js';
3
+ /** Response payload for GET /status. */
4
+ export type StatusResponse = {
5
+ ok: true;
6
+ id: string;
7
+ pid: number;
8
+ attached: boolean;
9
+ target: {
10
+ title: string | null;
11
+ url: string | null;
12
+ } | null;
13
+ buffer: {
14
+ size: number;
15
+ count: number;
16
+ minId: number | null;
17
+ maxId: number | null;
18
+ };
19
+ watcher: WatcherRecord;
20
+ /** Protocol version advertised by the watcher. */
21
+ protocolVersion?: ArgusProtocolVersion;
22
+ /** Watcher package version (e.g. "0.1.2"). */
23
+ watcherVersion?: string;
24
+ };
25
+ /** Response payload for POST /shutdown. */
26
+ export type ShutdownResponse = {
27
+ ok: true;
28
+ };
29
+ /** Request payload for POST /reload. */
30
+ export type ReloadRequest = {
31
+ /** If true, bypass browser cache. Default: false. */
32
+ ignoreCache?: boolean;
33
+ };
34
+ /** Response payload for POST /reload. */
35
+ export type ReloadResponse = {
36
+ ok: true;
37
+ };
38
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEzD,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,IAAI,CAAA;IACR,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,MAAM,EAAE;QACP,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KACpB,CAAA;IACD,OAAO,EAAE,aAAa,CAAA;IACtB,kDAAkD;IAClD,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,2CAA2C;AAC3C,MAAM,MAAM,gBAAgB,GAAG;IAC9B,EAAE,EAAE,IAAI,CAAA;CACR,CAAA;AAED,wCAAwC;AACxC,MAAM,MAAM,aAAa,GAAG;IAC3B,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,yCAAyC;AACzC,MAAM,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,IAAI,CAAA;CACR,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/protocol/http/status.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ /** Request payload for POST /storage/local. */
2
+ export type StorageLocalRequest = {
3
+ /** The operation to perform. */
4
+ action: 'get' | 'set' | 'remove' | 'list' | 'clear';
5
+ /** Key for get/set/remove operations. */
6
+ key?: string;
7
+ /** Value for set operation. */
8
+ value?: string;
9
+ /** Optional origin to validate against page's current origin. */
10
+ origin?: string;
11
+ };
12
+ /** Response payload for POST /storage/local (get). */
13
+ export type StorageLocalGetResponse = {
14
+ ok: true;
15
+ origin: string;
16
+ key: string;
17
+ exists: boolean;
18
+ value: string | null;
19
+ };
20
+ /** Response payload for POST /storage/local (set). */
21
+ export type StorageLocalSetResponse = {
22
+ ok: true;
23
+ origin: string;
24
+ key: string;
25
+ };
26
+ /** Response payload for POST /storage/local (remove). */
27
+ export type StorageLocalRemoveResponse = {
28
+ ok: true;
29
+ origin: string;
30
+ key: string;
31
+ };
32
+ /** Response payload for POST /storage/local (list). */
33
+ export type StorageLocalListResponse = {
34
+ ok: true;
35
+ origin: string;
36
+ keys: string[];
37
+ };
38
+ /** Response payload for POST /storage/local (clear). */
39
+ export type StorageLocalClearResponse = {
40
+ ok: true;
41
+ origin: string;
42
+ cleared: number;
43
+ };
44
+ /** Union of all storage local responses. */
45
+ export type StorageLocalResponse = StorageLocalGetResponse | StorageLocalSetResponse | StorageLocalRemoveResponse | StorageLocalListResponse | StorageLocalClearResponse;
46
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/storage.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,mBAAmB,GAAG;IACjC,gCAAgC;IAChC,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACnD,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,sDAAsD;AACtD,MAAM,MAAM,uBAAuB,GAAG;IACrC,EAAE,EAAE,IAAI,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,sDAAsD;AACtD,MAAM,MAAM,uBAAuB,GAAG;IACrC,EAAE,EAAE,IAAI,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;CACX,CAAA;AAED,yDAAyD;AACzD,MAAM,MAAM,0BAA0B,GAAG;IACxC,EAAE,EAAE,IAAI,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;CACX,CAAA;AAED,uDAAuD;AACvD,MAAM,MAAM,wBAAwB,GAAG;IACtC,EAAE,EAAE,IAAI,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,EAAE,CAAA;CACd,CAAA;AAED,wDAAwD;AACxD,MAAM,MAAM,yBAAyB,GAAG;IACvC,EAAE,EAAE,IAAI,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAED,4CAA4C;AAC5C,MAAM,MAAM,oBAAoB,GAC7B,uBAAuB,GACvB,uBAAuB,GACvB,0BAA0B,GAC1B,wBAAwB,GACxB,yBAAyB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/protocol/http/storage.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * CPU throttle state.
3
+ * Rate 1 = no throttle, 4 = 4x slowdown. Must be >= 1.
4
+ */
5
+ export type ThrottleState = {
6
+ rate: number;
7
+ };
8
+ /** POST /throttle request payload. */
9
+ export type ThrottleRequest = {
10
+ action: 'set';
11
+ rate: number;
12
+ } | {
13
+ action: 'clear';
14
+ };
15
+ /** POST /throttle response for the `set` action. */
16
+ export type ThrottleSetResponse = {
17
+ ok: true;
18
+ attached: boolean;
19
+ applied: boolean;
20
+ state: ThrottleState | null;
21
+ error?: {
22
+ message: string;
23
+ code?: string;
24
+ } | null;
25
+ };
26
+ /** POST /throttle response for the `clear` action. */
27
+ export type ThrottleClearResponse = {
28
+ ok: true;
29
+ attached: boolean;
30
+ applied: boolean;
31
+ state: null;
32
+ error?: {
33
+ message: string;
34
+ code?: string;
35
+ } | null;
36
+ };
37
+ /** GET /throttle response. */
38
+ export type ThrottleStatusResponse = {
39
+ ok: true;
40
+ attached: boolean;
41
+ applied: boolean;
42
+ state: ThrottleState | null;
43
+ lastError?: {
44
+ message: string;
45
+ code?: string;
46
+ } | null;
47
+ };
48
+ //# sourceMappingURL=throttle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/throttle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,sCAAsC;AACtC,MAAM,MAAM,eAAe,GAAG;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAA;AAEnF,oDAAoD;AACpD,MAAM,MAAM,mBAAmB,GAAG;IACjC,EAAE,EAAE,IAAI,CAAA;IACR,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;IAC3B,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACjD,CAAA;AAED,sDAAsD;AACtD,MAAM,MAAM,qBAAqB,GAAG;IACnC,EAAE,EAAE,IAAI,CAAA;IACR,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,IAAI,CAAA;IACX,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACjD,CAAA;AAED,8BAA8B;AAC9B,MAAM,MAAM,sBAAsB,GAAG;IACpC,EAAE,EAAE,IAAI,CAAA;IACR,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;IAC3B,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACrD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=throttle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../../src/protocol/http/throttle.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ /** Request payload for POST /trace/start. */
2
+ export type TraceStartRequest = {
3
+ outFile?: string;
4
+ categories?: string;
5
+ options?: string;
6
+ };
7
+ /** Response payload for POST /trace/start. */
8
+ export type TraceStartResponse = {
9
+ ok: true;
10
+ traceId: string;
11
+ sessionName: string;
12
+ outFile: string;
13
+ };
14
+ /** Request payload for POST /trace/stop. */
15
+ export type TraceStopRequest = {
16
+ traceId?: string;
17
+ outFile?: string;
18
+ };
19
+ /** Response payload for POST /trace/stop. */
20
+ export type TraceStopResponse = {
21
+ ok: true;
22
+ sessionName: string;
23
+ outFile: string;
24
+ eventCount: number;
25
+ durationMs: number;
26
+ };
27
+ //# sourceMappingURL=trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/trace.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,MAAM,MAAM,iBAAiB,GAAG;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,8CAA8C;AAC9C,MAAM,MAAM,kBAAkB,GAAG;IAChC,EAAE,EAAE,IAAI,CAAA;IACR,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAED,4CAA4C;AAC5C,MAAM,MAAM,gBAAgB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,6CAA6C;AAC7C,MAAM,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,IAAI,CAAA;IACR,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CAClB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../../src/protocol/http/trace.ts"],"names":[],"mappings":""}
@@ -1,42 +1,14 @@
1
- import type { LogEvent } from './logs.js';
2
- import type { WatcherRecord } from '../registry/types.js';
3
- /** Response payload for GET /status. */
4
- export type StatusResponse = {
5
- ok: true;
6
- id: string;
7
- pid: number;
8
- attached: boolean;
9
- target: {
10
- title: string | null;
11
- url: string | null;
12
- } | null;
13
- buffer: {
14
- size: number;
15
- count: number;
16
- minId: number | null;
17
- maxId: number | null;
18
- };
19
- watcher: WatcherRecord;
20
- };
21
- /** Response payload for GET /logs. */
22
- export type LogsResponse = {
23
- ok: true;
24
- events: LogEvent[];
25
- nextAfter: number;
26
- };
27
- /** Response payload for GET /tail. */
28
- export type TailResponse = {
29
- ok: true;
30
- events: LogEvent[];
31
- nextAfter: number;
32
- timedOut: boolean;
33
- };
34
- /** Standard error payload for API failures. */
35
- export type ErrorResponse = {
36
- ok: false;
37
- error: {
38
- message: string;
39
- code?: string;
40
- };
41
- };
1
+ export type * from './http/status.js';
2
+ export type * from './http/logs.js';
3
+ export type * from './http/net.js';
4
+ export type * from './http/eval.js';
5
+ export type * from './http/trace.js';
6
+ export type * from './http/screenshot.js';
7
+ export type * from './http/snapshot.js';
8
+ export type * from './http/code.js';
9
+ export type * from './http/dom.js';
10
+ export type * from './http/storage.js';
11
+ export type * from './http/emulation.js';
12
+ export type * from './http/throttle.js';
13
+ export type * from './http/errors.js';
42
14
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/protocol/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,IAAI,CAAA;IACR,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,MAAM,EAAE;QACP,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KACpB,CAAA;IACD,OAAO,EAAE,aAAa,CAAA;CACtB,CAAA;AAED,sCAAsC;AACtC,MAAM,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,IAAI,CAAA;IACR,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,sCAAsC;AACtC,MAAM,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,IAAI,CAAA;IACR,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG;IAC3B,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE;QACN,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;KACb,CAAA;CACD,CAAA"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/protocol/http.ts"],"names":[],"mappings":"AACA,mBAAmB,kBAAkB,CAAA;AACrC,mBAAmB,gBAAgB,CAAA;AACnC,mBAAmB,eAAe,CAAA;AAClC,mBAAmB,gBAAgB,CAAA;AACnC,mBAAmB,iBAAiB,CAAA;AACpC,mBAAmB,sBAAsB,CAAA;AACzC,mBAAmB,oBAAoB,CAAA;AACvC,mBAAmB,gBAAgB,CAAA;AACnC,mBAAmB,eAAe,CAAA;AAClC,mBAAmB,mBAAmB,CAAA;AACtC,mBAAmB,qBAAqB,CAAA;AACxC,mBAAmB,oBAAoB,CAAA;AACvC,mBAAmB,kBAAkB,CAAA"}
@@ -0,0 +1,5 @@
1
+ /** Current protocol version exchanged between CLI and watcher. */
2
+ export declare const ARGUS_PROTOCOL_VERSION: 1;
3
+ /** Type-level alias for the current protocol version. */
4
+ export type ArgusProtocolVersion = typeof ARGUS_PROTOCOL_VERSION;
5
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/protocol/version.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAA;AAEhD,yDAAyD;AACzD,MAAM,MAAM,oBAAoB,GAAG,OAAO,sBAAsB,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** Current protocol version exchanged between CLI and watcher. */
2
+ export const ARGUS_PROTOCOL_VERSION = 1;
3
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/protocol/version.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Execute `fn` while holding an exclusive lockfile on the registry.
3
+ * Uses `fs.open(path, 'wx')` for atomic creation; retries with jitter
4
+ * if the lock is held; auto-removes stale locks older than 10 s.
5
+ */
6
+ export declare function withRegistryLock<T>(fn: () => Promise<T>, registryPath?: string): Promise<T>;
7
+ //# sourceMappingURL=lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/registry/lock.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,SAAoB,GAAG,OAAO,CAAC,CAAC,CAAC,CAS5G"}
@@ -0,0 +1,87 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { getRegistryPath } from './paths.js';
4
+ /** Max time to wait for lock acquisition. */
5
+ const LOCK_TIMEOUT_MS = 2_000;
6
+ /** Lock considered stale if mtime is older than this. */
7
+ const STALE_LOCK_MS = 10_000;
8
+ /** Base delay between retries (ms). Actual delay is randomized. */
9
+ const BASE_RETRY_MS = 25;
10
+ /**
11
+ * Execute `fn` while holding an exclusive lockfile on the registry.
12
+ * Uses `fs.open(path, 'wx')` for atomic creation; retries with jitter
13
+ * if the lock is held; auto-removes stale locks older than 10 s.
14
+ */
15
+ export async function withRegistryLock(fn, registryPath = getRegistryPath()) {
16
+ const lockPath = `${registryPath}.lock`;
17
+ await fs.mkdir(path.dirname(lockPath), { recursive: true });
18
+ await acquireLock(lockPath);
19
+ try {
20
+ return await fn();
21
+ }
22
+ finally {
23
+ await releaseLock(lockPath);
24
+ }
25
+ }
26
+ const acquireLock = async (lockPath) => {
27
+ const deadline = Date.now() + LOCK_TIMEOUT_MS;
28
+ let attempt = 0;
29
+ while (Date.now() < deadline) {
30
+ try {
31
+ const handle = await fs.open(lockPath, 'wx');
32
+ await handle.close();
33
+ return;
34
+ }
35
+ catch (error) {
36
+ if (!isExistError(error)) {
37
+ throw error;
38
+ }
39
+ }
40
+ // Lock exists — check for staleness
41
+ if (await removeStaleLock(lockPath)) {
42
+ continue;
43
+ }
44
+ attempt += 1;
45
+ const jitter = Math.random() * BASE_RETRY_MS;
46
+ const delay = Math.min(BASE_RETRY_MS * attempt, 200) + jitter;
47
+ await sleep(delay);
48
+ }
49
+ // Last-resort: remove potentially stale lock and try once more
50
+ await removeStaleLock(lockPath);
51
+ try {
52
+ const handle = await fs.open(lockPath, 'wx');
53
+ await handle.close();
54
+ return;
55
+ }
56
+ catch {
57
+ throw new Error(`Failed to acquire registry lock after ${LOCK_TIMEOUT_MS}ms: ${lockPath}`);
58
+ }
59
+ };
60
+ const releaseLock = async (lockPath) => {
61
+ try {
62
+ await fs.unlink(lockPath);
63
+ }
64
+ catch {
65
+ // Lock already removed (e.g. stale cleanup by another process) — safe to ignore
66
+ }
67
+ };
68
+ /** Remove lock file if its mtime is older than the staleness threshold. Returns true if removed. */
69
+ const removeStaleLock = async (lockPath) => {
70
+ try {
71
+ const stat = await fs.stat(lockPath);
72
+ if (Date.now() - stat.mtimeMs > STALE_LOCK_MS) {
73
+ await fs.unlink(lockPath);
74
+ return true;
75
+ }
76
+ }
77
+ catch {
78
+ // Lock gone or inaccessible — either way, retry will handle it
79
+ return true;
80
+ }
81
+ return false;
82
+ };
83
+ const isExistError = (error) => {
84
+ return !!error && typeof error === 'object' && 'code' in error && error.code === 'EEXIST';
85
+ };
86
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
87
+ //# sourceMappingURL=lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/registry/lock.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,12 @@ export declare const createEmptyRegistry: (now?: number) => RegistryV1;
9
9
  export declare const readRegistry: (registryPath?: string) => Promise<RegistryReadResult>;
10
10
  /** Write registry to disk using atomic replacement. */
11
11
  export declare const writeRegistry: (registry: RegistryV1, registryPath?: string) => Promise<void>;
12
+ /**
13
+ * Atomically read-modify-write the registry under an exclusive lock.
14
+ * The `updater` receives the current registry and must return the next state.
15
+ * Returns the registry after the update has been persisted.
16
+ */
17
+ export declare const updateRegistry: (updater: (registry: RegistryV1) => RegistryV1, registryPath?: string) => Promise<RegistryV1>;
12
18
  /** Return registry watchers as a list. */
13
19
  export declare const listWatchers: (registry: RegistryV1) => WatcherRecord[];
14
20
  /** Add or update a watcher entry. */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/E,uCAAuC;AACvC,eAAO,MAAM,gBAAgB,IAAI,CAAA;AAEjC,yCAAyC;AACzC,eAAO,MAAM,cAAc,QAAS,CAAA;AAEpC,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB,GAAI,YAAgB,KAAG,UAIrD,CAAA;AAEF,kEAAkE;AAClE,eAAO,MAAM,YAAY,GAAU,qBAAgC,KAAG,OAAO,CAAC,kBAAkB,CA4B/F,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,aAAa,GAAU,UAAU,UAAU,EAAE,qBAAgC,KAAG,OAAO,CAAC,IAAI,CAIxG,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,YAAY,GAAI,UAAU,UAAU,KAAG,aAAa,EAAsC,CAAA;AAEvG,qCAAqC;AACrC,eAAO,MAAM,eAAe,GAAI,UAAU,UAAU,EAAE,SAAS,aAAa,EAAE,YAAgB,KAAG,UAUhG,CAAA;AAED,oCAAoC;AACpC,eAAO,MAAM,kBAAkB,GAAI,UAAU,UAAU,EAAE,IAAI,MAAM,EAAE,YAAgB,KAAG,UAavF,CAAA;AAED,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,GAC9B,UAAU,UAAU,EACpB,YAAgB,EAChB,cAAsB,KACpB;IAAE,QAAQ,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAwB9C,CAAA"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/E,uCAAuC;AACvC,eAAO,MAAM,gBAAgB,IAAI,CAAA;AAEjC,yCAAyC;AACzC,eAAO,MAAM,cAAc,QAAS,CAAA;AAEpC,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB,GAAI,YAAgB,KAAG,UAIrD,CAAA;AAEF,kEAAkE;AAClE,eAAO,MAAM,YAAY,GAAU,qBAAgC,KAAG,OAAO,CAAC,kBAAkB,CA4B/F,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,aAAa,GAAU,UAAU,UAAU,EAAE,qBAAgC,KAAG,OAAO,CAAC,IAAI,CAIxG,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,SAAS,CAAC,QAAQ,EAAE,UAAU,KAAK,UAAU,EAAE,qBAAgC,KAAG,OAAO,CAAC,UAAU,CASxI,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,YAAY,GAAI,UAAU,UAAU,KAAG,aAAa,EAAsC,CAAA;AAEvG,qCAAqC;AACrC,eAAO,MAAM,eAAe,GAAI,UAAU,UAAU,EAAE,SAAS,aAAa,EAAE,YAAgB,KAAG,UAUhG,CAAA;AAED,oCAAoC;AACpC,eAAO,MAAM,kBAAkB,GAAI,UAAU,UAAU,EAAE,IAAI,MAAM,EAAE,YAAgB,KAAG,UAavF,CAAA;AAED,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,GAC9B,UAAU,UAAU,EACpB,YAAgB,EAChB,cAAsB,KACpB;IAAE,QAAQ,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAwB9C,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
+ import { withRegistryLock } from './lock.js';
3
4
  import { getRegistryPath } from './paths.js';
4
5
  /** Current registry schema version. */
5
6
  export const REGISTRY_VERSION = 1;
@@ -45,6 +46,21 @@ export const writeRegistry = async (registry, registryPath = getRegistryPath())
45
46
  await fs.mkdir(dir, { recursive: true });
46
47
  await atomicWrite(registryPath, JSON.stringify(registry, null, 2));
47
48
  };
49
+ /**
50
+ * Atomically read-modify-write the registry under an exclusive lock.
51
+ * The `updater` receives the current registry and must return the next state.
52
+ * Returns the registry after the update has been persisted.
53
+ */
54
+ export const updateRegistry = async (updater, registryPath = getRegistryPath()) => {
55
+ return withRegistryLock(async () => {
56
+ const { registry } = await readRegistry(registryPath);
57
+ const next = updater(registry);
58
+ if (next !== registry) {
59
+ await writeRegistry(next, registryPath);
60
+ }
61
+ return next;
62
+ }, registryPath);
63
+ };
48
64
  /** Return registry watchers as a list. */
49
65
  export const listWatchers = (registry) => Object.values(registry.watchers);
50
66
  /** Add or update a watcher entry. */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,35 @@
1
1
  /** Target matching rules for CDP selection. */
2
2
  export type WatcherMatch = {
3
- /** Exact URL match against the CDP target URL. */
3
+ /** Substring match against the CDP target URL. */
4
4
  url?: string;
5
- /** Exact title match against the CDP target title. */
5
+ /** Substring match against the CDP target title. */
6
6
  title?: string;
7
7
  /** JavaScript regex pattern (without flags) matched against the CDP target URL. */
8
8
  urlRegex?: string;
9
9
  /** JavaScript regex pattern (without flags) matched against the CDP target title. */
10
10
  titleRegex?: string;
11
+ /**
12
+ * Filter by target type (e.g., 'page', 'iframe', 'worker').
13
+ * Exact match against the Chrome target `type` field.
14
+ */
15
+ type?: string;
16
+ /**
17
+ * Match against URL origin only (protocol + host + port).
18
+ * Ignores path, query params, and hash. Useful for iframe matching
19
+ * when parent pages may include the iframe URL in query params.
20
+ */
21
+ origin?: string;
22
+ /**
23
+ * Connect to a specific target by its Chrome target ID.
24
+ * Bypasses URL/title matching entirely. Get target IDs from `argus page targets`.
25
+ */
26
+ targetId?: string;
27
+ /**
28
+ * Filter by parent target URL pattern.
29
+ * Only matches targets whose parent's URL includes this substring.
30
+ * Useful for targeting iframes within a specific parent page.
31
+ */
32
+ parent?: string;
11
33
  };
12
34
  /** Chrome CDP connection details. */
13
35
  export type WatcherChrome = {
@@ -38,6 +60,8 @@ export type WatcherRecord = {
38
60
  chrome?: WatcherChrome;
39
61
  /** Whether to include ISO timestamps in formatted log output. */
40
62
  includeTimestamps?: boolean;
63
+ /** Source mode: 'cdp' (direct Chrome connection) or 'extension' (via Chrome extension). */
64
+ source?: 'cdp' | 'extension';
41
65
  };
42
66
  /** Registry schema v1. */
43
67
  export type RegistryV1 = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,YAAY,GAAG;IAC1B,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,qCAAqC;AACrC,MAAM,MAAM,aAAa,GAAG;IAC3B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG;IAC3B,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAA;IACV,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAA;IACZ,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,0BAA0B;AAC1B,MAAM,MAAM,UAAU,GAAG;IACxB,oCAAoC;IACpC,OAAO,EAAE,CAAC,CAAA;IACV,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAA;IACjB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACvC,CAAA;AAED,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG;IAChC,2EAA2E;IAC3E,QAAQ,EAAE,UAAU,CAAA;IACpB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,YAAY,GAAG;IAC1B,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,qCAAqC;AACrC,MAAM,MAAM,aAAa,GAAG;IAC3B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG;IAC3B,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAA;IACV,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAA;IACZ,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,2FAA2F;IAC3F,MAAM,CAAC,EAAE,KAAK,GAAG,WAAW,CAAA;CAC5B,CAAA;AAED,0BAA0B;AAC1B,MAAM,MAAM,UAAU,GAAG;IACxB,oCAAoC;IACpC,OAAO,EAAE,CAAC,CAAA;IACV,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAA;IACjB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACvC,CAAA;AAED,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG;IAChC,2EAA2E;IAC3E,QAAQ,EAAE,UAAU,CAAA;IACpB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA"}
@@ -0,0 +1,23 @@
1
+ export type TextPattern = {
2
+ type: 'exact';
3
+ value: string;
4
+ } | {
5
+ type: 'regex';
6
+ regex: RegExp;
7
+ };
8
+ /**
9
+ * Parse a plain string or `/regex/flags` value into a reusable text pattern.
10
+ */
11
+ export declare const parseTextPattern: (text: string) => TextPattern;
12
+ /**
13
+ * Test whether a line matches a parsed text pattern.
14
+ */
15
+ export declare const matchesTextPattern: (line: string, pattern: TextPattern) => boolean;
16
+ /**
17
+ * Find the first match range for a parsed text pattern within a line.
18
+ */
19
+ export declare const findTextPatternMatch: (line: string, pattern: TextPattern) => {
20
+ index: number;
21
+ length: number;
22
+ } | null;
23
+ //# sourceMappingURL=textPattern.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textPattern.d.ts","sourceRoot":"","sources":["../src/textPattern.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAI7F;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,WAa/C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,EAAE,SAAS,WAAW,KAAG,OAQvE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,SAAS,WAAW,KAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAgB7G,CAAA"}