@grafana/create-plugin 6.2.0-canary.2233.19368311379.0 → 6.2.0-canary.2233.19500011348.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/codemods/additions/additions.js +2 -4
  3. package/dist/codemods/additions/scripts/example-addition.js +1 -1
  4. package/dist/codemods/migrations/migrations.js +17 -6
  5. package/dist/codemods/migrations/scripts/004-eslint9-flat-config.js +2 -2
  6. package/dist/codemods/migrations/scripts/006-webpack-nested-fix.js +80 -0
  7. package/dist/codemods/migrations/scripts/007-remove-testing-library-types.js +25 -0
  8. package/dist/codemods/runner.js +0 -5
  9. package/dist/codemods/utils.js +5 -8
  10. package/dist/commands/add.command.js +0 -4
  11. package/package.json +3 -2
  12. package/src/codemods/additions/additions.test.ts +9 -4
  13. package/src/codemods/additions/additions.ts +2 -3
  14. package/src/codemods/additions/scripts/example-addition.test.ts +1 -1
  15. package/src/codemods/additions/scripts/example-addition.ts +1 -1
  16. package/src/codemods/migrations/manager.test.ts +1 -1
  17. package/src/codemods/migrations/migrations.test.ts +4 -2
  18. package/src/codemods/migrations/migrations.ts +18 -6
  19. package/src/codemods/migrations/scripts/004-eslint9-flat-config.ts +2 -3
  20. package/src/codemods/migrations/scripts/006-webpack-nested-fix.test.ts +169 -0
  21. package/src/codemods/migrations/scripts/006-webpack-nested-fix.ts +117 -0
  22. package/src/codemods/migrations/scripts/007-remove-testing-library-types.test.ts +137 -0
  23. package/src/codemods/migrations/scripts/007-remove-testing-library-types.ts +25 -0
  24. package/src/codemods/runner.ts +0 -6
  25. package/src/codemods/utils.ts +4 -14
  26. package/src/commands/add.command.ts +0 -5
  27. package/src/utils/utils.config.ts +2 -2
  28. package/templates/backend/go.mod +67 -47
  29. package/templates/backend/go.sum +197 -222
  30. package/templates/backend-app/go.mod +67 -48
  31. package/templates/backend-app/go.sum +197 -222
  32. package/templates/common/.config/types/setupTests.d.ts +1 -0
  33. package/templates/common/.config/webpack/webpack.config.ts +1 -1
  34. package/templates/common/_package.json +0 -1
  35. package/dist/codemods/migrations/scripts/example-migration.js +0 -29
  36. package/src/codemods/migrations/scripts/example-migration.test.ts +0 -40
  37. package/src/codemods/migrations/scripts/example-migration.ts +0 -51
  38. package/src/migrations/migrations.ts +0 -44
@@ -0,0 +1,117 @@
1
+ import { join } from 'node:path';
2
+ import * as recast from 'recast';
3
+ import * as typeScriptParser from 'recast/parsers/typescript.js';
4
+ import type { Context } from '../../context.js';
5
+
6
+ const { builders } = recast.types;
7
+
8
+ export default function migrate(context: Context): Context {
9
+ const webpackConfigPath = join('.config', 'webpack', 'webpack.config.ts');
10
+ if (!context.doesFileExist(webpackConfigPath)) {
11
+ return context;
12
+ }
13
+
14
+ const webpackConfigContent = context.getFile(webpackConfigPath);
15
+ if (!webpackConfigContent) {
16
+ return context;
17
+ }
18
+
19
+ let hasChanges = false;
20
+ const ast = recast.parse(webpackConfigContent, {
21
+ parser: typeScriptParser,
22
+ });
23
+
24
+ recast.visit(ast, {
25
+ visitNewExpression(path) {
26
+ const { node } = path;
27
+
28
+ // Check if this is a ReplaceInFileWebpackPlugin constructor
29
+ if (
30
+ node.callee.type === 'Identifier' &&
31
+ node.callee.name === 'ReplaceInFileWebpackPlugin' &&
32
+ node.arguments.length > 0
33
+ ) {
34
+ const firstArg = node.arguments[0];
35
+
36
+ // The first argument should be an array of config objects
37
+ if (firstArg.type === 'ArrayExpression' && firstArg.elements) {
38
+ firstArg.elements.forEach((element) => {
39
+ if (element && element.type === 'ObjectExpression') {
40
+ const changed = transformFilesProperty(element);
41
+ if (changed) {
42
+ hasChanges = true;
43
+ }
44
+ }
45
+ });
46
+ }
47
+ }
48
+
49
+ return this.traverse(path);
50
+ },
51
+ });
52
+
53
+ // Only update the file if we made changes
54
+ if (hasChanges) {
55
+ const output = recast.print(ast, {
56
+ tabWidth: 2,
57
+ trailingComma: true,
58
+ lineTerminator: '\n',
59
+ });
60
+ context.updateFile(webpackConfigPath, output.code);
61
+ }
62
+
63
+ return context;
64
+ }
65
+
66
+ function transformFilesProperty(objectExpression: recast.types.namedTypes.ObjectExpression): boolean {
67
+ const properties = objectExpression.properties;
68
+ if (!properties) {
69
+ return false;
70
+ }
71
+
72
+ // Find the 'files' property
73
+ const filesPropertyIndex = properties.findIndex(
74
+ (prop) =>
75
+ (prop.type === 'Property' || prop.type === 'ObjectProperty') &&
76
+ prop.key.type === 'Identifier' &&
77
+ prop.key.name === 'files'
78
+ );
79
+
80
+ if (filesPropertyIndex === -1) {
81
+ return false;
82
+ }
83
+
84
+ const filesProperty = properties[filesPropertyIndex];
85
+
86
+ // Type guard: ensure it's a Property or ObjectProperty (which have a value)
87
+ if ((filesProperty.type !== 'Property' && filesProperty.type !== 'ObjectProperty') || !('value' in filesProperty)) {
88
+ return false;
89
+ }
90
+
91
+ // Check if it's an array with the expected values
92
+ if (filesProperty.value.type === 'ArrayExpression' && filesProperty.value.elements.length === 2) {
93
+ const elements = filesProperty.value.elements;
94
+ const values = elements
95
+ .map((el) => (el?.type === 'Literal' || el?.type === 'StringLiteral' ? el?.value : null))
96
+ .filter((v) => v !== null);
97
+
98
+ // Only transform if it matches the exact pattern we're looking for
99
+ if (values.length === 2 && values.includes('plugin.json') && values.includes('README.md')) {
100
+ // Remove the 'files' property
101
+ properties.splice(filesPropertyIndex, 1);
102
+
103
+ // Add the 'test' property with regex array
104
+ const testProperty = builders.property(
105
+ 'init',
106
+ builders.identifier('test'),
107
+ builders.arrayExpression([builders.literal(/(^|\/)plugin\.json$/), builders.literal(/(^|\/)README\.md$/)])
108
+ );
109
+
110
+ // Insert at the same position
111
+ properties.splice(filesPropertyIndex, 0, testProperty);
112
+ return true;
113
+ }
114
+ }
115
+
116
+ return false;
117
+ }
@@ -0,0 +1,137 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import migrate from './007-remove-testing-library-types.js';
3
+ import { Context } from '../../context.js';
4
+
5
+ describe('006-remove-testing-library-types', () => {
6
+ it('should create setupTests.d.ts, remove types package, and add @testing-library/jest-dom when file does not exist', () => {
7
+ const context = new Context('/virtual');
8
+
9
+ context.addFile(
10
+ 'package.json',
11
+ JSON.stringify({
12
+ devDependencies: {
13
+ '@types/testing-library__jest-dom': '^6.0.0',
14
+ '@testing-library/jest-dom': '6.0.0',
15
+ '@testing-library/react': '14.0.0',
16
+ },
17
+ })
18
+ );
19
+
20
+ const result = migrate(context);
21
+ const setupTestsContent = result.getFile('./.config/types/setupTests.d.ts');
22
+ expect(setupTestsContent).toBe("import '@testing-library/jest-dom';\n");
23
+
24
+ const packageJson = JSON.parse(result.getFile('package.json') || '{}');
25
+ expect(packageJson.devDependencies).toEqual({
26
+ '@testing-library/jest-dom': '6.0.0',
27
+ '@testing-library/react': '14.0.0',
28
+ });
29
+ });
30
+
31
+ it('should add import to existing setupTests.d.ts, remove types package, and add @testing-library/jest-dom if missing', () => {
32
+ const context = new Context('/virtual');
33
+
34
+ const existingContent = '// Some other type declarations\n';
35
+ context.addFile('./.config/types/setupTests.d.ts', existingContent);
36
+ context.addFile(
37
+ 'package.json',
38
+ JSON.stringify({
39
+ devDependencies: {
40
+ '@types/testing-library__jest-dom': '^6.0.0',
41
+ '@testing-library/jest-dom': '6.1.4',
42
+ '@testing-library/react': '14.0.0',
43
+ },
44
+ })
45
+ );
46
+
47
+ const result = migrate(context);
48
+ const setupTestsContent = result.getFile('./.config/types/setupTests.d.ts');
49
+ expect(setupTestsContent).toBe(`import '@testing-library/jest-dom';\n${existingContent}`);
50
+
51
+ const packageJson = JSON.parse(result.getFile('package.json') || '{}');
52
+ expect(packageJson.devDependencies).toEqual({
53
+ '@testing-library/jest-dom': '6.1.4',
54
+ '@testing-library/react': '14.0.0',
55
+ });
56
+ });
57
+
58
+ it('should not modify setupTests.d.ts if import already exists', () => {
59
+ const context = new Context('/virtual');
60
+
61
+ const existingContent = "// Other content\nimport 'react';\nimport '@testing-library/jest-dom';\n";
62
+ context.addFile('./.config/types/setupTests.d.ts', existingContent);
63
+ context.addFile(
64
+ 'package.json',
65
+ JSON.stringify({
66
+ devDependencies: {
67
+ '@types/testing-library__jest-dom': '^6.0.0',
68
+ '@testing-library/jest-dom': '6.1.4',
69
+ '@testing-library/react': '14.0.0',
70
+ },
71
+ })
72
+ );
73
+
74
+ const result = migrate(context);
75
+
76
+ const setupTestsContent = result.getFile('./.config/types/setupTests.d.ts');
77
+ expect(setupTestsContent).toBe(existingContent);
78
+
79
+ const packageJson = JSON.parse(result.getFile('package.json') || '{}');
80
+ expect(packageJson.devDependencies).toEqual({
81
+ '@testing-library/jest-dom': '6.1.4',
82
+ '@testing-library/react': '14.0.0',
83
+ });
84
+ });
85
+
86
+ it('should not modify anything if @testing-library/jest-dom is not greater than 6.0.0', () => {
87
+ const context = new Context('/virtual');
88
+ const packageJsonContent = JSON.stringify({
89
+ devDependencies: { '@testing-library/jest-dom': '5.14.2' },
90
+ });
91
+ context.addFile('package.json', packageJsonContent);
92
+
93
+ const result = migrate(context);
94
+ expect(result.getFile('package.json')).toEqual(packageJsonContent);
95
+ });
96
+
97
+ it('should handle package.json without the types package', () => {
98
+ const context = new Context('/virtual');
99
+
100
+ context.addFile(
101
+ 'package.json',
102
+ JSON.stringify({
103
+ devDependencies: {
104
+ '@testing-library/react': '14.0.0',
105
+ '@testing-library/jest-dom': '6.1.4',
106
+ },
107
+ })
108
+ );
109
+
110
+ const result = migrate(context);
111
+ const setupTestsContent = result.getFile('./.config/types/setupTests.d.ts');
112
+ expect(setupTestsContent).toBe("import '@testing-library/jest-dom';\n");
113
+
114
+ const packageJson = JSON.parse(result.getFile('package.json') || '{}');
115
+ expect(packageJson.devDependencies).toEqual({
116
+ '@testing-library/jest-dom': '6.1.4',
117
+ '@testing-library/react': '14.0.0',
118
+ });
119
+ });
120
+
121
+ it('should be idempotent', async () => {
122
+ const context = new Context('/virtual');
123
+
124
+ context.addFile(
125
+ 'package.json',
126
+ JSON.stringify({
127
+ devDependencies: {
128
+ '@types/testing-library__jest-dom': '^6.0.0',
129
+ '@testing-library/jest-dom': '6.1.4',
130
+ '@testing-library/react': '14.0.0',
131
+ },
132
+ })
133
+ );
134
+
135
+ await expect(migrate).toBeIdempotent(context);
136
+ });
137
+ });
@@ -0,0 +1,25 @@
1
+ import type { Context } from '../../context.js';
2
+ import { removeDependenciesFromPackageJson, isVersionGreater } from '../../utils.js';
3
+
4
+ export default function migrate(context: Context) {
5
+ if (context.doesFileExist('package.json')) {
6
+ const packageJson = JSON.parse(context.getFile('package.json') || '{}');
7
+ if (isVersionGreater(packageJson.devDependencies['@testing-library/jest-dom'], '6.0.0', true)) {
8
+ if (context.doesFileExist('./.config/types/setupTests.d.ts')) {
9
+ const setupTestsContent = context.getFile('./.config/types/setupTests.d.ts');
10
+ if (!setupTestsContent?.includes('@testing-library/jest-dom')) {
11
+ context.updateFile(
12
+ './.config/types/setupTests.d.ts',
13
+ `import '@testing-library/jest-dom';\n${setupTestsContent}`
14
+ );
15
+ }
16
+ } else {
17
+ context.addFile('./.config/types/setupTests.d.ts', "import '@testing-library/jest-dom';\n");
18
+ }
19
+
20
+ removeDependenciesFromPackageJson(context, [], ['@types/testing-library__jest-dom']);
21
+ }
22
+ }
23
+
24
+ return context;
25
+ }
@@ -1,7 +1,6 @@
1
1
  import { Context } from './context.js';
2
2
  import { formatFiles, flushChanges, installNPMDependencies, printChanges } from './utils.js';
3
3
  import { parseAndValidateOptions } from './schema-parser.js';
4
- import { output } from '../utils/utils.console.js';
5
4
  import { Codemod } from './types.js';
6
5
 
7
6
  /**
@@ -32,11 +31,6 @@ export async function runCodemod(codemod: Codemod, options?: Record<string, any>
32
31
  const context = new Context(basePath);
33
32
 
34
33
  try {
35
- output.log({
36
- title: `Running ${codemod.name}`,
37
- body: [codemod.description],
38
- });
39
-
40
34
  const updatedContext = await codemodModule.default(context, codemodOptions);
41
35
 
42
36
  // standard post-processing pipeline
@@ -1,4 +1,4 @@
1
- import { dirname, join, resolve } from 'node:path';
1
+ import { dirname, join } from 'node:path';
2
2
  import { createRequire } from 'node:module';
3
3
  import { Context } from './context.js';
4
4
  import { mkdirSync, rmSync, writeFileSync } from 'node:fs';
@@ -7,7 +7,7 @@ import { output } from '../utils/utils.console.js';
7
7
  import { getPackageManagerSilentInstallCmd, getPackageManagerWithFallback } from '../utils/utils.packageManager.js';
8
8
  import { execSync } from 'node:child_process';
9
9
  import { clean, coerce, gt, gte } from 'semver';
10
- import { fileURLToPath } from 'node:url';
10
+ import { debug } from '../utils/utils.cli.js';
11
11
 
12
12
  export function printChanges(context: Context, key: string, description: string) {
13
13
  const changes = context.listChanges();
@@ -299,15 +299,5 @@ function sortObjectByKeys<T extends Record<string, any>>(obj: T): T {
299
299
  .reduce((acc, key) => ({ ...acc, [key]: obj[key] }), {} as T);
300
300
  }
301
301
 
302
- /**
303
- * Resolves a script path relative to the caller's file location.
304
- *
305
- * @param callerUrl - The import.meta.url from the calling file
306
- * @param relativePath - The relative path to resolve (e.g., './scripts/example.js')
307
- * @returns The absolute resolved path
308
- */
309
- export function resolveScriptPath(callerUrl: string, relativePath: string): string {
310
- const __filename = fileURLToPath(callerUrl);
311
- const __dirname = dirname(__filename);
312
- return resolve(__dirname, relativePath);
313
- }
302
+ export const migrationsDebug = debug.extend('migrations');
303
+ export const additionsDebug = debug.extend('additions');
@@ -22,11 +22,6 @@ export const add = async (argv: minimist.ParsedArgs) => {
22
22
  throw new Error(`Unknown addition: ${subCommand}\n\nAvailable additions: ${additionsList.join(', ')}`);
23
23
  }
24
24
 
25
- output.log({
26
- title: `Running addition: ${addition.name}`,
27
- body: [addition.description],
28
- });
29
-
30
25
  // filter out minimist internal properties (_ and $0) before passing to codemod
31
26
  const { _, $0, ...codemodOptions } = argv;
32
27
  await runCodemod(addition, codemodOptions);
@@ -1,4 +1,5 @@
1
1
  import { argv, commandName } from './utils.cli.js';
2
+
2
3
  import { CURRENT_APP_VERSION } from './utils.version.js';
3
4
  import { DEFAULT_FEATURE_FLAGS } from '../constants.js';
4
5
  import fs from 'node:fs';
@@ -8,13 +9,12 @@ import path from 'node:path';
8
9
  import { writeFile } from 'node:fs/promises';
9
10
  import { EOL } from 'node:os';
10
11
 
11
- type FeatureFlags = {
12
+ export type FeatureFlags = {
12
13
  bundleGrafanaUI?: boolean;
13
14
 
14
15
  // If set to true, the plugin will be scaffolded with React Router v6. Defaults to true.
15
16
  // (Attention! We always scaffold new projects with React Router v6, so if you are changing this to `false` manually you will need to make changes to the React code as well.)
16
17
  useReactRouterV6?: boolean;
17
- usePlaywright?: boolean;
18
18
  useExperimentalRspack?: boolean;
19
19
  useExperimentalUpdates?: boolean;
20
20
  };
@@ -1,66 +1,86 @@
1
1
  module github.com/{{ kebabCase orgName }}/{{ kebabCase pluginName }}
2
2
 
3
- go 1.22
3
+ go 1.24.6
4
4
 
5
- require github.com/grafana/grafana-plugin-sdk-go v0.156.0
5
+ require github.com/grafana/grafana-plugin-sdk-go v0.283.0
6
6
 
7
7
  require (
8
- github.com/BurntSushi/toml v1.2.1 // indirect
9
- github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 // indirect
8
+ github.com/BurntSushi/toml v1.5.0 // indirect
9
+ github.com/apache/arrow-go/v18 v18.4.1 // indirect
10
10
  github.com/beorn7/perks v1.0.1 // indirect
11
- github.com/cespare/xxhash/v2 v2.1.2 // indirect
11
+ github.com/cenkalti/backoff/v5 v5.0.3 // indirect
12
+ github.com/cespare/xxhash/v2 v2.3.0 // indirect
12
13
  github.com/cheekybits/genny v1.0.0 // indirect
13
- github.com/chromedp/cdproto v0.0.0-20220208224320-6efb837e6bc2 // indirect
14
- github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
15
- github.com/elazarl/goproxy v0.0.0-20220115173737-adb46da277ac // indirect
16
- github.com/fatih/color v1.7.0 // indirect
17
- github.com/getkin/kin-openapi v0.94.0 // indirect
18
- github.com/ghodss/yaml v1.0.0 // indirect
19
- github.com/go-openapi/jsonpointer v0.19.5 // indirect
20
- github.com/go-openapi/swag v0.19.15 // indirect
21
- github.com/golang/protobuf v1.5.2 // indirect
22
- github.com/golang/snappy v0.0.3 // indirect
23
- github.com/google/flatbuffers v2.0.0+incompatible // indirect
24
- github.com/google/go-cmp v0.5.9 // indirect
25
- github.com/google/uuid v1.3.0 // indirect
26
- github.com/gorilla/mux v1.8.0 // indirect
27
- github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
28
- github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
29
- github.com/hashicorp/go-hclog v0.14.1 // indirect
30
- github.com/hashicorp/go-plugin v1.4.3 // indirect
31
- github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d // indirect
32
- github.com/josharian/intern v1.0.0 // indirect
14
+ github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
15
+ github.com/fatih/color v1.15.0 // indirect
16
+ github.com/go-logr/logr v1.4.3 // indirect
17
+ github.com/go-logr/stdr v1.2.2 // indirect
18
+ github.com/goccy/go-json v0.10.5 // indirect
19
+ github.com/gogo/googleapis v1.4.1 // indirect
20
+ github.com/gogo/protobuf v1.3.2 // indirect
21
+ github.com/golang/protobuf v1.5.4 // indirect
22
+ github.com/google/flatbuffers v25.2.10+incompatible // indirect
23
+ github.com/google/go-cmp v0.7.0 // indirect
24
+ github.com/google/uuid v1.6.0 // indirect
25
+ github.com/grafana/otel-profiling-go v0.5.1 // indirect
26
+ github.com/grafana/pyroscope-go/godeltaprof v0.1.9 // indirect
27
+ github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 // indirect
28
+ github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 // indirect
29
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect
30
+ github.com/hashicorp/go-hclog v1.6.3 // indirect
31
+ github.com/hashicorp/go-plugin v1.7.0 // indirect
32
+ github.com/hashicorp/yamux v0.1.2 // indirect
33
+ github.com/jaegertracing/jaeger-idl v0.5.0 // indirect
33
34
  github.com/json-iterator/go v1.1.12 // indirect
34
- github.com/klauspost/compress v1.13.1 // indirect
35
- github.com/magefile/mage v1.14.0 // indirect
36
- github.com/mailru/easyjson v0.7.7 // indirect
35
+ github.com/klauspost/compress v1.18.0 // indirect
36
+ github.com/klauspost/cpuid/v2 v2.3.0 // indirect
37
+ github.com/magefile/mage v1.15.0 // indirect
37
38
  github.com/mattetti/filebuffer v1.0.1 // indirect
38
- github.com/mattn/go-colorable v0.1.4 // indirect
39
- github.com/mattn/go-isatty v0.0.10 // indirect
40
- github.com/mattn/go-runewidth v0.0.9 // indirect
41
- github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
42
- github.com/mitchellh/go-testing-interface v1.0.0 // indirect
39
+ github.com/mattn/go-colorable v0.1.13 // indirect
40
+ github.com/mattn/go-isatty v0.0.20 // indirect
41
+ github.com/mattn/go-runewidth v0.0.16 // indirect
43
42
  github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
44
43
  github.com/modern-go/reflect2 v1.0.2 // indirect
45
- github.com/oklog/run v1.0.0 // indirect
44
+ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
45
+ github.com/oklog/run v1.1.0 // indirect
46
46
  github.com/olekukonko/tablewriter v0.0.5 // indirect
47
- github.com/pierrec/lz4/v4 v4.1.8 // indirect
48
- github.com/prometheus/client_golang v1.14.0 // indirect
49
- github.com/prometheus/client_model v0.3.0 // indirect
50
- github.com/prometheus/common v0.40.0 // indirect
51
- github.com/prometheus/procfs v0.8.0 // indirect
47
+ github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
48
+ github.com/pierrec/lz4/v4 v4.1.22 // indirect
49
+ github.com/prometheus/client_golang v1.23.2 // indirect
50
+ github.com/prometheus/client_model v0.6.2 // indirect
51
+ github.com/prometheus/common v0.67.2 // indirect
52
+ github.com/prometheus/procfs v0.16.1 // indirect
53
+ github.com/rivo/uniseg v0.4.7 // indirect
52
54
  github.com/russross/blackfriday/v2 v2.1.0 // indirect
53
55
  github.com/unknwon/bra v0.0.0-20200517080246-1e3013ecaff8 // indirect
54
56
  github.com/unknwon/com v1.0.1 // indirect
55
57
  github.com/unknwon/log v0.0.0-20150304194804-e617c87089d3 // indirect
56
- github.com/urfave/cli v1.22.12 // indirect
57
- golang.org/x/net v0.8.0 // indirect
58
- golang.org/x/sys v0.6.0 // indirect
59
- golang.org/x/text v0.8.0 // indirect
60
- golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
58
+ github.com/urfave/cli v1.22.17 // indirect
59
+ github.com/zeebo/xxh3 v1.0.2 // indirect
60
+ go.opentelemetry.io/auto/sdk v1.1.0 // indirect
61
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
62
+ go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 // indirect
63
+ go.opentelemetry.io/contrib/propagators/jaeger v1.38.0 // indirect
64
+ go.opentelemetry.io/contrib/samplers/jaegerremote v0.32.0 // indirect
65
+ go.opentelemetry.io/otel v1.38.0 // indirect
66
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect
67
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 // indirect
68
+ go.opentelemetry.io/otel/metric v1.38.0 // indirect
69
+ go.opentelemetry.io/otel/sdk v1.38.0 // indirect
70
+ go.opentelemetry.io/otel/trace v1.38.0 // indirect
71
+ go.opentelemetry.io/proto/otlp v1.7.1 // indirect
72
+ go.yaml.in/yaml/v2 v2.4.3 // indirect
73
+ golang.org/x/exp v0.0.0-20251002181428-27f1f14c8bb9 // indirect
74
+ golang.org/x/mod v0.28.0 // indirect
75
+ golang.org/x/net v0.46.0 // indirect
76
+ golang.org/x/sync v0.18.0 // indirect
77
+ golang.org/x/sys v0.37.0 // indirect
78
+ golang.org/x/telemetry v0.0.0-20250908211612-aef8a434d053 // indirect
79
+ golang.org/x/text v0.30.0 // indirect
80
+ golang.org/x/tools v0.37.0 // indirect
81
+ golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
61
82
  google.golang.org/genproto v0.0.0-20210630183607-d20f26d13c79 // indirect
62
- google.golang.org/grpc v1.41.0 // indirect
63
- google.golang.org/protobuf v1.28.1 // indirect
83
+ google.golang.org/grpc v1.76.0 // indirect
84
+ google.golang.org/protobuf v1.36.10 // indirect
64
85
  gopkg.in/fsnotify/fsnotify.v1 v1.4.7 // indirect
65
- gopkg.in/yaml.v2 v2.4.0 // indirect
66
86
  )