@newrelic/preflight 1.10.0 → 1.11.0

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.
@@ -13,6 +13,7 @@ export { DroidAdapter } from './droid-adapter.js';
13
13
  export { GeminiCliAdapter } from './gemini-cli-adapter.js';
14
14
  export { ClineAdapter } from './cline-adapter.js';
15
15
  export { CodexAdapter } from './codex-adapter.js';
16
+ export { OpencodeAdapter } from './opencode-adapter.js';
16
17
  export { GenericMcpAdapter, validateReportToolCallInput } from './generic-mcp-adapter.js';
17
18
  export type { ReportToolCallInput, ReportSessionStartInput, ReportSessionEndInput, } from './generic-mcp-adapter.js';
18
19
  export { REPORT_TOOL_CALL_TOOL, REPORT_SESSION_START_TOOL, REPORT_SESSION_END_TOOL, } from './generic-mcp-adapter.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platforms/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC1F,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platforms/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC1F,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -11,6 +11,7 @@ export { DroidAdapter } from './droid-adapter.js';
11
11
  export { GeminiCliAdapter } from './gemini-cli-adapter.js';
12
12
  export { ClineAdapter } from './cline-adapter.js';
13
13
  export { CodexAdapter } from './codex-adapter.js';
14
+ export { OpencodeAdapter } from './opencode-adapter.js';
14
15
  export { GenericMcpAdapter, validateReportToolCallInput } from './generic-mcp-adapter.js';
15
16
  export { REPORT_TOOL_CALL_TOOL, REPORT_SESSION_START_TOOL, REPORT_SESSION_END_TOOL, } from './generic-mcp-adapter.js';
16
17
  export { PlatformRegistry, createDefaultRegistry } from './platform-registry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platforms/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAM1F,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platforms/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAM1F,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { NormalizedToolCall, PlatformAdapter, PlatformConfig, PlatformSessionMetadata } from './types.js';
2
+ export declare class OpencodeAdapter implements PlatformAdapter {
3
+ readonly platformName = "opencode";
4
+ readonly visibilityLevel: "full-hooks";
5
+ readonly capabilities: {
6
+ instructionFilePaths: readonly ["AGENTS.md"];
7
+ };
8
+ initialize(_config: PlatformConfig): Promise<void>;
9
+ normalizeToolCall(raw: unknown): NormalizedToolCall;
10
+ mapToolName(platformToolName: string): string;
11
+ getSessionMetadata(): PlatformSessionMetadata;
12
+ getHookInstallInstructions(): string;
13
+ isSupported(): boolean;
14
+ }
15
+ //# sourceMappingURL=opencode-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-adapter.d.ts","sourceRoot":"","sources":["../../src/platforms/opencode-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAoDpB,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,YAAY,cAAc;IACnC,QAAQ,CAAC,eAAe,EAAG,YAAY,CAAU;IAGjD,QAAQ,CAAC,YAAY;;MAAoD;IAEnE,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxD,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB;IAsBnD,WAAW,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAI7C,kBAAkB,IAAI,uBAAuB;IAM7C,0BAA0B,IAAI,MAAM;IA2EpC,WAAW,IAAI,OAAO;CAKvB"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Maps opencode's built-in tool names (opencode.ai/docs/tools/) to the
3
+ * normalized Claude Code tool vocabulary. `bash`/`read`/`write`/`edit`/
4
+ * `grep`/`glob`/`webfetch`/`websearch` map directly. `apply_patch` collapses
5
+ * to 'Edit' — a single patch can touch multiple files with mixed
6
+ * add/update/delete actions, so there's no clean 1:1 mapping, same
7
+ * precedent as CodexAdapter's apply_patch -> 'Edit'. `skill` maps to 'Skill'
8
+ * (same precedent as ContinueAdapter's read_skill -> 'Skill'). `todowrite`
9
+ * maps to 'TaskCreate' (same precedent as AmazonQAdapter's todo_list ->
10
+ * 'TaskCreate'). `question` maps to 'AskUserQuestion' — opencode's own docs
11
+ * describe it as "Each question includes a header, the question text, and a
12
+ * list of options," matching AskUserQuestion's shape. `lsp` is experimental
13
+ * (gated behind OPENCODE_EXPERIMENTAL_LSP_TOOL) with no confirmed Preflight
14
+ * canonical equivalent and is left unmapped -> falls through to 'Unknown',
15
+ * same treatment as Codex's update_plan.
16
+ */
17
+ const OPENCODE_TOOL_MAP = {
18
+ bash: 'Bash',
19
+ read: 'Read',
20
+ write: 'Write',
21
+ edit: 'Edit',
22
+ apply_patch: 'Edit',
23
+ grep: 'Grep',
24
+ glob: 'Glob',
25
+ webfetch: 'WebFetch',
26
+ websearch: 'WebSearch',
27
+ skill: 'Skill',
28
+ todowrite: 'TaskCreate',
29
+ question: 'AskUserQuestion',
30
+ };
31
+ function isOpencodeToolCallEvent(x) {
32
+ return typeof x === 'object' && x !== null;
33
+ }
34
+ export class OpencodeAdapter {
35
+ platformName = 'opencode';
36
+ visibilityLevel = 'full-hooks';
37
+ // opencode.ai/docs/rules/: project-level AGENTS.md, with CLAUDE.md as a
38
+ // documented fallback (opencode's own "Claude Code Compatibility" mode).
39
+ capabilities = { instructionFilePaths: ['AGENTS.md'] };
40
+ async initialize(_config) {
41
+ // opencode's tool-call capture is delivered via a user-installed plugin
42
+ // file (see getHookInstallInstructions()), not configured by this
43
+ // process — same no-op shape as every other full-hooks adapter.
44
+ }
45
+ normalizeToolCall(raw) {
46
+ const event = isOpencodeToolCallEvent(raw) ? raw : {};
47
+ const platformToolName = event.tool ?? event.toolName ?? 'unknown';
48
+ const toolName = OPENCODE_TOOL_MAP[platformToolName] ?? 'Unknown';
49
+ const filePath = event.filePath ?? event.path;
50
+ return {
51
+ toolName,
52
+ platformToolName,
53
+ platform: this.platformName,
54
+ timestamp: event.timestamp ?? Date.now(),
55
+ durationMs: event.durationMs ?? null,
56
+ success: event.success ?? true,
57
+ ...(event.error !== undefined && { error: event.error }),
58
+ ...(event.inputSizeBytes !== undefined && { inputSizeBytes: event.inputSizeBytes }),
59
+ ...(event.outputSizeBytes !== undefined && { outputSizeBytes: event.outputSizeBytes }),
60
+ ...(filePath !== undefined && { filePath }),
61
+ ...(event.command !== undefined && { command: event.command }),
62
+ ...(event.sessionId !== undefined && { sessionId: event.sessionId }),
63
+ };
64
+ }
65
+ mapToolName(platformToolName) {
66
+ return OPENCODE_TOOL_MAP[platformToolName] ?? 'Unknown';
67
+ }
68
+ getSessionMetadata() {
69
+ return {
70
+ platform: this.platformName,
71
+ };
72
+ }
73
+ getHookInstallInstructions() {
74
+ return [
75
+ 'opencode Setup:',
76
+ '',
77
+ '1. Register the Preflight MCP server in opencode.json:',
78
+ ' {',
79
+ ' "mcp": {',
80
+ ' "preflight": {',
81
+ ' "type": "local",',
82
+ ' "command": ["npx", "preflight", "--stdio"],',
83
+ ' "environment": {',
84
+ ' "MCP_CLIENT": "opencode",',
85
+ ' "NEW_RELIC_LICENSE_KEY": "<your-key>",',
86
+ ' "NEW_RELIC_ACCOUNT_ID": "<your-account-id>"',
87
+ ' }',
88
+ ' }',
89
+ ' }',
90
+ ' }',
91
+ '2. Ensure preflight-collector is on your PATH (npm link, or npm install -g @newrelic/preflight)',
92
+ '3. Built-in tool calls (bash, read, write, edit, etc.) require a plugin file, since',
93
+ ' opencode has no external hooks.json — it only supports in-process JS/TS plugins.',
94
+ ' Create .opencode/plugins/preflight.js (project) or',
95
+ ' ~/.config/opencode/plugins/preflight.js (global) with:',
96
+ '',
97
+ ' import { spawn } from "node:child_process"',
98
+ '',
99
+ ' const TOOL_MAP = {',
100
+ ' bash: "Bash", read: "Read", write: "Write", edit: "Edit",',
101
+ ' apply_patch: "Edit", grep: "Grep", glob: "Glob",',
102
+ ' webfetch: "WebFetch", websearch: "WebSearch", skill: "Skill",',
103
+ ' todowrite: "TaskCreate", question: "AskUserQuestion",',
104
+ ' }',
105
+ '',
106
+ ' function report(payload) {',
107
+ ' const child = spawn("preflight-collector", [], { stdio: ["pipe", "ignore", "ignore"] })',
108
+ ' child.stdin.write(JSON.stringify(payload))',
109
+ ' child.stdin.end()',
110
+ ' }',
111
+ '',
112
+ ' function toClaudeShape(tool, args) {',
113
+ ' if (tool === "bash") return { command: args.command }',
114
+ ' if (tool === "read" || tool === "edit" || tool === "write") return { file_path: args.filePath }',
115
+ ' return args',
116
+ ' }',
117
+ '',
118
+ ' export const PreflightPlugin = async () => ({',
119
+ ' "tool.execute.before": async (input, output) => {',
120
+ ' report({',
121
+ ' hook_event_name: "PreToolUse",',
122
+ ' tool_name: TOOL_MAP[input.tool] ?? "Unknown",',
123
+ ' tool_input: toClaudeShape(input.tool, output.args),',
124
+ ' tool_use_id: input.callID,',
125
+ ' session_id: input.sessionID,',
126
+ ' })',
127
+ ' },',
128
+ ' "tool.execute.after": async (input, output) => {',
129
+ ' report({',
130
+ ' hook_event_name: "PostToolUse",',
131
+ ' tool_name: TOOL_MAP[input.tool] ?? "Unknown",',
132
+ ' tool_use_id: input.callID,',
133
+ ' session_id: input.sessionID,',
134
+ ' })',
135
+ ' },',
136
+ ' })',
137
+ '',
138
+ '4. Restart opencode.',
139
+ '',
140
+ "Known gaps: opencode's hook payload has no success/error field, so every",
141
+ 'tool call reports success unconditionally. Only bash/read/edit/write',
142
+ "get structured input metadata; other tools' arg shapes (including apply_patch)",
143
+ 'are undocumented and forwarded as-is. No output-side metadata (exit codes,',
144
+ 'match counts, etc.) is captured — see docs/ADAPTERS.md for details.',
145
+ ].join('\n');
146
+ }
147
+ isSupported() {
148
+ return (process.env.MCP_CLIENT === 'opencode' || process.env.NEW_RELIC_AI_PLATFORM === 'opencode');
149
+ }
150
+ }
151
+ //# sourceMappingURL=opencode-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-adapter.js","sourceRoot":"","sources":["../../src/platforms/opencode-adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform-registry.d.ts","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAiB3E,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,MAAM,CAAgC;IAE9C,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAKxC,MAAM,IAAI,eAAe,GAAG,IAAI;IAahC,SAAS,IAAI,eAAe;IAY5B,aAAa,IAAI,SAAS,eAAe,EAAE;CAG5C;AAED,wBAAgB,qBAAqB,IAAI,gBAAgB,CAgBxD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAKvF"}
1
+ {"version":3,"file":"platform-registry.d.ts","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAkB3E,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,MAAM,CAAgC;IAE9C,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAKxC,MAAM,IAAI,eAAe,GAAG,IAAI;IAahC,SAAS,IAAI,eAAe;IAY5B,aAAa,IAAI,SAAS,eAAe,EAAE;CAG5C;AAED,wBAAgB,qBAAqB,IAAI,gBAAgB,CAiBxD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAKvF"}
@@ -11,6 +11,7 @@ import { DroidAdapter } from './droid-adapter.js';
11
11
  import { GeminiCliAdapter } from './gemini-cli-adapter.js';
12
12
  import { ClineAdapter } from './cline-adapter.js';
13
13
  import { CodexAdapter } from './codex-adapter.js';
14
+ import { OpencodeAdapter } from './opencode-adapter.js';
14
15
  import { GenericMcpAdapter } from './generic-mcp-adapter.js';
15
16
  const logger = createLogger('platform-registry');
16
17
  export class PlatformRegistry {
@@ -58,6 +59,7 @@ export function createDefaultRegistry() {
58
59
  registry.register(new GeminiCliAdapter());
59
60
  registry.register(new ClineAdapter());
60
61
  registry.register(new CodexAdapter());
62
+ registry.register(new OpencodeAdapter());
61
63
  registry.register(new GenericMcpAdapter()); // always last
62
64
  return registry;
63
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"platform-registry.js","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-registry.js","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newrelic/preflight",
3
- "version": "1.10.0",
3
+ "version": "1.11.0",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "private": false,