opentelemetry-js: NodeSDK fails in strict mode with `Legacy octal escape is not permitted in strict mode`

What happened?

Steps to Reproduce

Import NodeSDK in strict mode.

Expected Result

It should not fail.

Actual Result

When I run pnpm build, it fails. Logs below.

Additional Details

Reproduction: https://github.com/jankaifer/next-repro-otel-node-sdk-repro

OpenTelemetry Setup Code

import { NodeSDK } from "@opentelemetry/sdk-node";
import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-node";
import { ConsoleSpanExporter } from "@opentelemetry/sdk-trace-base";

const exporter = new ConsoleSpanExporter();

const sdk = new NodeSDK({
  spanProcessor: new SimpleSpanProcessor(exporter),
});
sdk.start();

package.json

{
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start"
  },
  "dependencies": {
    "@opentelemetry/sdk-node": "^0.38.0",
    "@opentelemetry/sdk-trace-base": "^1.12.0",
    "@opentelemetry/sdk-trace-node": "^1.12.0",
    "next": "canary",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  },
  "devDependencies": {
    "@types/node": "^18.11.13",
    "@types/react": "^18.0.26",
    "typescript": "^4.9.4"
  }
}

Relevant log output

./node_modules/.pnpm/ansi-color@0.2.1/node_modules/ansi-color/lib/ansi-color.js
Error: 
  × Legacy octal escape is not permitted in strict mode
    ╭─[/home/pearman/dev/playground/otel-node-sdk-repro/node_modules/.pnpm/ansi-color@0.2.1/node_modules/ansi-color/lib/ansi-color.js:32:1]
 32 │   var color_attrs = color.split("+");
 33 │   var ansi_str = "";
 34 │   for(var i=0, attr; attr = color_attrs[i]; i++) {
 35 │     ansi_str += "\033[" + ANSI_CODES[attr] + "m";
    ·                  ──
 36 │   }
 37 │   ansi_str += str + "\033[" + ANSI_CODES["off"] + "m";
 38 │   return ansi_str;
    ╰────

  × Legacy octal escape is not permitted in strict mode
    ╭─[/home/pearman/dev/playground/otel-node-sdk-repro/node_modules/.pnpm/ansi-color@0.2.1/node_modules/ansi-color/lib/ansi-color.js:34:1]
 34 │   for(var i=0, attr; attr = color_attrs[i]; i++) {
 35 │     ansi_str += "\033[" + ANSI_CODES[attr] + "m";
 36 │   }
 37 │   ansi_str += str + "\033[" + ANSI_CODES["off"] + "m";
    ·                      ──
 38 │   return ansi_str;
 39 │ };
    ╰────

Caused by:
    Syntax Error

Import trace for requested module:
./node_modules/.pnpm/ansi-color@0.2.1/node_modules/ansi-color/lib/ansi-color.js
./node_modules/.pnpm/bufrw@1.3.0/node_modules/bufrw/annotated_buffer.js
./node_modules/.pnpm/bufrw@1.3.0/node_modules/bufrw/interface.js
./node_modules/.pnpm/bufrw@1.3.0/node_modules/bufrw/index.js
./node_modules/.pnpm/thriftrw@3.12.0/node_modules/thriftrw/index.js
./node_modules/.pnpm/jaeger-client@3.19.0/node_modules/jaeger-client/dist/src/reporters/udp_sender.js
./node_modules/.pnpm/@opentelemetry+exporter-jaeger@1.12.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/exporter-jaeger/build/src/types.js
./node_modules/.pnpm/@opentelemetry+exporter-jaeger@1.12.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/exporter-jaeger/build/src/jaeger.js
./node_modules/.pnpm/@opentelemetry+exporter-jaeger@1.12.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/exporter-jaeger/build/src/index.js
./node_modules/.pnpm/@opentelemetry+sdk-node@0.38.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-node/build/src/TracerProviderWithEnvExporter.js
./node_modules/.pnpm/@opentelemetry+sdk-node@0.38.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-node/build/src/sdk.js
./node_modules/.pnpm/@opentelemetry+sdk-node@0.38.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-node/build/src/index.js
./app/page.tsx

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 15 (4 by maintainers)

Most upvoted comments

This is still happening to me with "@opentelemetry/sdk-node": "^0.44.0"

(Update: should be fixed with #4214)