UNPKG

@opentelemetry/core

Version:

OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.

1 lines • 1.77 kB
{"version":3,"file":"validators.cjs","names":[],"sources":["../../src/internal/validators.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]';\nconst VALID_KEY = `[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`;\nconst VALID_VENDOR_KEY = `[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`;\nconst VALID_KEY_REGEX = new RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`);\nconst VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/;\nconst INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/;\n\n/**\n * Key is opaque string up to 256 characters printable. It MUST begin with a\n * lowercase letter, and can only contain lowercase letters a-z, digits 0-9,\n * underscores _, dashes -, asterisks *, and forward slashes /.\n * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the\n * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key.\n * see https://www.w3.org/TR/trace-context/#key\n */\nexport function validateKey(key: string): boolean {\n return VALID_KEY_REGEX.test(key);\n}\n\n/**\n * Value is opaque string up to 256 characters printable ASCII RFC0020\n * characters (i.e., the range 0x20 to 0x7E) except comma , and =.\n */\nexport function validateValue(value: string): boolean {\n return (\n VALID_VALUE_BASE_REGEX.test(value) &&\n !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value)\n );\n}\n"],"mappings":";AAKA,MAAM,uBAAuB;AAG7B,MAAM,kBAAkB,IAAI,OAAO,OAAO,QAFhB,qBAAqB,SAEK,GAAG,WADnB,qBAAqB,eAAe,qBAAqB,QACrB,GAAG;AAC3E,MAAM,yBAAyB;AAC/B,MAAM,kCAAkC;;;;;;;;;AAUxC,SAAgB,YAAY,KAAsB;CAChD,OAAO,gBAAgB,KAAK,GAAG;AACjC;;;;;AAMA,SAAgB,cAAc,OAAwB;CACpD,OACE,uBAAuB,KAAK,KAAK,KACjC,CAAC,gCAAgC,KAAK,KAAK;AAE/C"}