├── .github
└── workflows
│ ├── deploy.yml
│ └── npmpublish.yml
├── .gitignore
├── README.md
├── assets
├── banner.ai
├── example-patients-fail.ai
├── example-patients.ai
├── homepage.ai
├── icons
│ ├── github-white.ai
│ ├── mit-icon.ai
│ ├── npm-white.ai
│ ├── otel-icon.ai
│ ├── rocketconnect-icon.ai
│ ├── rocketconnect.ai
│ └── typescript-icon.ai
└── logo.ai
├── graphql-otel.com
├── .env.example
├── nginx.nginx
├── package-lock.json
├── package.json
├── postcss.config.cjs
├── public
│ ├── banner.png
│ ├── code.svg
│ ├── example-patients-fail.svg
│ ├── example-patients.svg
│ ├── favicon.svg
│ ├── fonts
│ │ ├── Roboto-Bold.ttf
│ │ ├── Roboto-Italic.ttf
│ │ └── Roboto-Regular.ttf
│ ├── github-white.svg
│ ├── logo.svg
│ ├── mit-icon.png
│ ├── mit-icon.svg
│ ├── npm-white.svg
│ ├── otel-icon.svg
│ ├── rocket-connect.png
│ ├── rocket-connect.svg
│ └── typescript-icon.svg
├── server.js
├── src
│ ├── App.tsx
│ ├── components
│ │ ├── Contact.tsx
│ │ ├── Container.tsx
│ │ ├── Footer.tsx
│ │ ├── GettingStarted.tsx
│ │ ├── Header.tsx
│ │ ├── Intro.tsx
│ │ └── Supported.tsx
│ ├── config.ts
│ ├── images.tsx
│ ├── index.css
│ ├── index.html
│ └── index.tsx
├── tailwind.config.cjs
├── tsconfig.json
└── webpack.config.cjs
└── package
├── .npmignore
├── package-lock.json
├── package.json
├── src
└── index.ts
└── tsconfig.json
/.github/workflows/deploy.yml:
--------------------------------------------------------------------------------
1 | name: Publish Website
2 |
3 | on:
4 | push:
5 | branches: [main]
6 |
7 | jobs:
8 | build:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: SSH and deploy node app
12 | uses: appleboy/ssh-action@master
13 | with:
14 | host: ${{ secrets.SSH_HOST }}
15 | username: ${{ secrets.SSH_USERNAME }}
16 | key: ${{ secrets.SSH_KEY }}
17 | script: |
18 | export NVM_DIR=~/.nvm
19 | source ~/.nvm/nvm.sh
20 | cd graphql-otel
21 | git reset --hard
22 | git checkout main
23 | git fetch && git pull
24 | cd graphql-otel.com
25 | npm install
26 | npm run build
27 | NODE_ENV=production pm2 restart graphql-otel.com
28 |
--------------------------------------------------------------------------------
/.github/workflows/npmpublish.yml:
--------------------------------------------------------------------------------
1 | name: Test, Build, Publish
2 |
3 | on:
4 | push:
5 | tags:
6 | - "*"
7 |
8 | jobs:
9 | publish-npm:
10 | runs-on: ubuntu-latest
11 | steps:
12 | - uses: actions/checkout@v2
13 | - uses: actions/setup-node@v1
14 | with:
15 | node-version: 18
16 | registry-url: https://registry.npmjs.org/
17 | - run: cp ./README.md ./package/README.md
18 | - run: cd ./package && npm ci
19 | - run: cd ./package && npm run build
20 | - run: cd ./package && npm publish
21 | env:
22 | NODE_AUTH_TOKEN: ${{secrets.npm_token}}
23 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29 | .grunt
30 |
31 | # Bower dependency directory (https://bower.io/)
32 | bower_components
33 |
34 | # node-waf configuration
35 | .lock-wscript
36 |
37 | # Compiled binary addons (https://nodejs.org/api/addons.html)
38 | build/Release
39 |
40 | # Dependency directories
41 | node_modules/
42 | jspm_packages/
43 |
44 | # TypeScript v1 declaration files
45 | typings/
46 |
47 | # TypeScript cache
48 | *.tsbuildinfo
49 |
50 | # Optional npm cache directory
51 | .npm
52 |
53 | # Optional eslint cache
54 | .eslintcache
55 |
56 | # Microbundle cache
57 | .rpt2_cache/
58 | .rts2_cache_cjs/
59 | .rts2_cache_es/
60 | .rts2_cache_umd/
61 |
62 | # Optional REPL history
63 | .node_repl_history
64 |
65 | # Output of 'npm pack'
66 | *.tgz
67 |
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | # dotenv environment variables file
72 | .env
73 | .env.test
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 |
78 | # Next.js build output
79 | .next
80 |
81 | # Nuxt.js build / generate output
82 | .nuxt
83 | dist
84 |
85 | # Gatsby files
86 | .cache/
87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js
88 | # https://nextjs.org/blog/next-9-1#public-directory-support
89 | # public
90 |
91 | # vuepress build output
92 | .vuepress/dist
93 |
94 | # Serverless directories
95 | .serverless/
96 |
97 | # FuseBox cache
98 | .fusebox/
99 |
100 | # DynamoDB Local files
101 | .dynamodb/
102 |
103 | # TernJS port file
104 | .tern-port
105 |
106 | .vscode/
107 | .DS_Store
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # GraphQL OTEL
2 |
3 | ## About
4 |
5 | This package has moved to GraphQL Debugger - 13/09/2023
6 |
7 | - https://github.com/rocket-connect/graphql-debugger
8 |
9 | ## Licence
10 |
11 | MIT Rocket Connect - www.rocketconnect.co.uk
12 |
--------------------------------------------------------------------------------
/assets/banner.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/banner.ai
--------------------------------------------------------------------------------
/assets/example-patients-fail.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/example-patients-fail.ai
--------------------------------------------------------------------------------
/assets/example-patients.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/example-patients.ai
--------------------------------------------------------------------------------
/assets/homepage.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/homepage.ai
--------------------------------------------------------------------------------
/assets/icons/github-white.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/icons/github-white.ai
--------------------------------------------------------------------------------
/assets/icons/mit-icon.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/icons/mit-icon.ai
--------------------------------------------------------------------------------
/assets/icons/npm-white.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/icons/npm-white.ai
--------------------------------------------------------------------------------
/assets/icons/otel-icon.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/icons/otel-icon.ai
--------------------------------------------------------------------------------
/assets/icons/rocketconnect-icon.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/icons/rocketconnect-icon.ai
--------------------------------------------------------------------------------
/assets/icons/rocketconnect.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/icons/rocketconnect.ai
--------------------------------------------------------------------------------
/assets/icons/typescript-icon.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/icons/typescript-icon.ai
--------------------------------------------------------------------------------
/assets/logo.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/assets/logo.ai
--------------------------------------------------------------------------------
/graphql-otel.com/.env.example:
--------------------------------------------------------------------------------
1 | STATIC_FOLDER="./dist"
2 | HTTP_PORT="4000"
3 | API_URL="http://localhost:4000"
4 | SENDGRID_API_KEY="key"
5 | SENDGRID_FROM="email@email.com"
--------------------------------------------------------------------------------
/graphql-otel.com/nginx.nginx:
--------------------------------------------------------------------------------
1 | server {
2 | root /var/www/html;
3 | index index.html index.htm index.nginx-debian.html;
4 |
5 | server_name graphql-otel.com www.graphql-otel.com;
6 |
7 | location / {
8 | proxy_pass http://localhost:4000;
9 | proxy_http_version 1.1;
10 | proxy_set_header Upgrade $http_upgrade;
11 | proxy_set_header Connection 'upgrade';
12 | proxy_set_header Host $host;
13 | proxy_cache_bypass $http_upgrade;
14 | }
15 |
16 | listen 443 ssl; # managed by Certbot
17 | ssl_certificate /etc/letsencrypt/live/graphql-otel.com/fullchain.pem; # managed by Certbot
18 | ssl_certificate_key /etc/letsencrypt/live/graphql-otel.com/privkey.pem; # managed by Certbot
19 | include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
20 | ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
21 | }
22 |
23 |
24 | server {
25 | if ($host = www.graphql-otel.com) {
26 | return 301 https://$host$request_uri;
27 | } # managed by Certbot
28 |
29 | listen 80 default_server;
30 | listen [::]:80 default_server;
31 |
32 | server_name graphql-otel.com www.graphql-otel.com;
33 | }
34 |
35 | server {
36 | if ($host = graphql-otel.com) {
37 | return 301 https://$host$request_uri;
38 | } # managed by Certbot
39 |
40 | server_name graphql-otel.com www.graphql-otel.com;
41 | listen 80;
42 | return 404; # managed by Certbot
43 | }
--------------------------------------------------------------------------------
/graphql-otel.com/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "graphql-otel.com",
3 | "version": "0.0.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "cross-env NODE_ENV=development webpack serve",
7 | "server": "node --experimental-modules server.js",
8 | "start": "node --experimental-modules server.js",
9 | "build": "cross-env NODE_ENV=production webpack"
10 | },
11 | "type": "module",
12 | "dependencies": {
13 | "@sendgrid/mail": "^7.7.0",
14 | "cors": "2.8.5",
15 | "css-loader": "6.7.3",
16 | "express": "4.18.2",
17 | "express-static-gzip": "2.1.7",
18 | "graphql": "16.6.0",
19 | "react": "18.2.0",
20 | "react-dom": "18.2.0",
21 | "react-monaco-editor": "0.51.0"
22 | },
23 | "devDependencies": {
24 | "@tsconfig/create-react-app": "1.0.2",
25 | "@tsconfig/node18": "1.0.1",
26 | "@types/react": "17.0.39",
27 | "@types/react-dom": "17.0.11",
28 | "@types/webpack": "5.28.0",
29 | "autoprefixer": "10.4.2",
30 | "clean-webpack-plugin": "4.0.0",
31 | "compression-webpack-plugin": "^10.0.0",
32 | "copy-webpack-plugin": "10.2.4",
33 | "cross-env": "7.0.3",
34 | "dotenv": "16.0.0",
35 | "dotenv-webpack": "7.1.0",
36 | "file-loader": "6.2.0",
37 | "html-webpack-plugin": "5.5.0",
38 | "postcss": "8.4.7",
39 | "postcss-loader": "6.2.1",
40 | "style-loader": "3.3.1",
41 | "svg-url-loader": "^8.0.0",
42 | "tailwindcss": "3.0.23",
43 | "terser-webpack-plugin": "5.3.1",
44 | "ts-loader": "9.2.6",
45 | "typescript": "4.6.2",
46 | "url-loader": "4.1.1",
47 | "webpack": "5.69.1",
48 | "webpack-cli": "4.10.0",
49 | "webpack-dev-server": "4.7.4"
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/graphql-otel.com/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/graphql-otel.com/public/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/graphql-otel.com/public/banner.png
--------------------------------------------------------------------------------
/graphql-otel.com/public/code.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/public/example-patients-fail.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/public/example-patients.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/public/favicon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/public/fonts/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/graphql-otel.com/public/fonts/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/graphql-otel.com/public/fonts/Roboto-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/graphql-otel.com/public/fonts/Roboto-Italic.ttf
--------------------------------------------------------------------------------
/graphql-otel.com/public/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/graphql-otel.com/public/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/graphql-otel.com/public/github-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/public/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/public/mit-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/graphql-otel.com/public/mit-icon.png
--------------------------------------------------------------------------------
/graphql-otel.com/public/mit-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/public/npm-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/public/otel-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/public/rocket-connect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocket-connect/graphql-otel/4d42e741ead69c673e3919a14e047c6cbb4af190/graphql-otel.com/public/rocket-connect.png
--------------------------------------------------------------------------------
/graphql-otel.com/public/rocket-connect.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/public/typescript-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/server.js:
--------------------------------------------------------------------------------
1 | import dotenv from "dotenv";
2 | dotenv.config({ path: "./.env" });
3 |
4 | import express from "express";
5 | import cors from "cors";
6 | import expressStaticGzip from "express-static-gzip";
7 | import sgMail from "@sendgrid/mail";
8 |
9 | const config = {
10 | STATIC_FOLDER: process.env.STATIC_FOLDER,
11 | HTTP_PORT: process.env.HTTP_PORT,
12 | SENDGRID_API_KEY: process.env.SENDGRID_API_KEY,
13 | SENDGRID_FROM: process.env.SENDGRID_FROM,
14 | };
15 |
16 | sgMail.setApiKey(config.SENDGRID_API_KEY);
17 |
18 | const app = express();
19 | app.use(cors());
20 | app.use(express.json());
21 | app.post("/contact", async (req, res) => {
22 | const { email, name, message } = req.body;
23 |
24 | const msg = {
25 | to: [email, config.SENDGRID_FROM],
26 | from: config.SENDGRID_FROM,
27 | subject: "GraphQL Tracing with OpenTelemetry",
28 | text: `Hey ${name} ${email}, I'm Dan. Thanks for contacting about support with GraphQL OTEL. We will get back to you shortly. ${message}`,
29 | };
30 |
31 | try {
32 | await sgMail.send(msg);
33 | } catch (error) {
34 | console.error(error);
35 | }
36 |
37 | res.end();
38 | });
39 |
40 | app.use(expressStaticGzip(config.STATIC_FOLDER, {}));
41 | app.get("*", expressStaticGzip(config.STATIC_FOLDER, {}));
42 | app.use("*", expressStaticGzip(config.STATIC_FOLDER, {}));
43 |
44 | function main() {
45 | app.listen(config.HTTP_PORT, (err) => {
46 | if (err) {
47 | console.error(err);
48 | }
49 |
50 | console.log(`Listening at http://localhost:${config.HTTP_PORT}`);
51 | });
52 | }
53 |
54 | main();
55 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/App.tsx:
--------------------------------------------------------------------------------
1 | import { Footer } from "./components/Footer";
2 | import { GettingStarted } from "./components/GettingStarted";
3 | import { Header } from "./components/Header";
4 | import { Intro } from "./components/Intro";
5 | import { Supported } from "./components/Supported";
6 |
7 | function App() {
8 | return (
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | );
17 | }
18 | export default App;
19 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/components/Contact.tsx:
--------------------------------------------------------------------------------
1 | import { useCallback, useState } from "react";
2 | import { API_URL } from "../config";
3 |
4 | export async function signup(body: {
5 | name: string;
6 | email: string;
7 | message: string;
8 | }) {
9 | const response = await fetch(`${API_URL}/contact`, {
10 | method: "POST",
11 | headers: {
12 | "Content-Type": "application/json",
13 | },
14 | body: JSON.stringify(body),
15 | });
16 |
17 | if (response.status !== 200 || !response.ok) {
18 | throw new Error(await response.text());
19 | }
20 | }
21 |
22 | export function Contact() {
23 | const [error, setError] = useState("");
24 | const [loading, setLoading] = useState(false);
25 | const [sent, setSent] = useState(false);
26 |
27 | const send = useCallback(
28 | async (e: React.FormEvent) => {
29 | e.preventDefault();
30 | setLoading(true);
31 |
32 | try {
33 | const body = {
34 | // @ts-ignore
35 | email: e.target.elements.email.value as string,
36 | // @ts-ignore
37 | name: e.target.elements.name.value as string,
38 | // @ts-ignore
39 | message: e.target.elements.message.value as string,
40 | };
41 |
42 | await signup(body);
43 | setSent(true);
44 | } catch (error) {
45 | const e = error as Error;
46 | setError(e.message);
47 | } finally {
48 | setLoading(false);
49 | }
50 | },
51 | [setError, setLoading]
52 | );
53 |
54 | if (error) {
55 | return <>>;
56 | }
57 |
58 | return (
59 |
98 | );
99 | }
100 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/components/Container.tsx:
--------------------------------------------------------------------------------
1 | export function Container(props: React.PropsWithChildren<{}>) {
2 | return (
3 | {props.children}
4 | );
5 | }
6 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/components/Footer.tsx:
--------------------------------------------------------------------------------
1 | import { Container } from "./Container";
2 |
3 | export function Footer() {
4 | return (
5 |
21 | );
22 | }
23 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/components/GettingStarted.tsx:
--------------------------------------------------------------------------------
1 | import { examplepatientsfail, logo } from "../images";
2 | import { Contact } from "./Contact";
3 | import { Container } from "./Container";
4 |
5 | export function GettingStarted() {
6 | return (
7 |
8 |
9 |
10 |
11 |
37 |
38 |
39 |

40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
Need More Help?
48 |
49 |
50 | We provide specialized support for GraphQL API's.
51 |
52 |
53 |
Contact us to setup a call.
54 |
55 |
56 |
60 | https://rocketconnect.co.uk
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | );
75 | }
76 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/components/Header.tsx:
--------------------------------------------------------------------------------
1 | import { githubwhite, logo, npmwhite } from "../images";
2 | import { Container } from "./Container";
3 |
4 | export function Header() {
5 | return (
6 |
7 |
8 |
9 |
10 |
11 |

12 |
13 |
14 |
15 |
16 |
28 |
29 |
30 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/components/Intro.tsx:
--------------------------------------------------------------------------------
1 | import { examplepatients } from "../images";
2 | import { Container } from "./Container";
3 |
4 | export function Intro() {
5 | return (
6 |
7 |
8 |
9 |
10 |
11 | GraphQL OTEL
12 |
13 |
14 | Trace your GraphQL API with OpenTelemetry.
15 |
16 |
25 |
26 |
27 |
28 |

29 |
30 |
31 |
32 |
33 |
34 | );
35 | }
36 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/components/Supported.tsx:
--------------------------------------------------------------------------------
1 | import { miticon, otelicon, rocketconnect, typescripticon } from "../images";
2 | import { Container } from "./Container";
3 |
4 | const supported = [
5 | {
6 | name: "Compliant",
7 | content: "Spec compliant with all Opentelemetry tools.",
8 | img: otelicon,
9 | link: "https://opentelemetry.io/",
10 | },
11 | {
12 | name: "Typescript",
13 | content: "Written in Typescript and published to NPM.",
14 | img: typescripticon,
15 | link: "https://www.typescriptlang.org/",
16 | },
17 | {
18 | name: "MIT",
19 | content: "Open Source and hosted on Github.",
20 | img: miticon,
21 | link: "https://github.com/rocket-connect/graphql-otel",
22 | },
23 | {
24 | name: "Supported",
25 | content: "Backed and built by Rocket Connect.",
26 | img: rocketconnect,
27 | link: "https://rocketconnect.co.uk/",
28 | },
29 | ];
30 |
31 | export function Supported() {
32 | return (
33 |
34 |
35 |
36 | {supported.map((item) => (
37 |
38 |
{item.name}
39 |
44 |
{item.content}
45 |
46 | ))}
47 |
48 |
49 |
50 | );
51 | }
52 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/config.ts:
--------------------------------------------------------------------------------
1 | export const API_URL = process.env.API_URL;
2 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/images.tsx:
--------------------------------------------------------------------------------
1 | // @ts-ignore
2 | export { default as logo } from "../public/logo.svg";
3 | // @ts-ignore
4 | export { default as code } from "../public/code.svg";
5 | // @ts-ignore
6 | export { default as rocketconnect } from "../public/rocket-connect.svg";
7 | // @ts-ignore
8 | export { default as githubwhite } from "../public/github-white.svg";
9 | // @ts-ignore
10 | export { default as npmwhite } from "../public/npm-white.svg";
11 | // @ts-ignore
12 | export { default as miticon } from "../public/mit-icon.svg";
13 | // @ts-ignore
14 | export { default as otelicon } from "../public/otel-icon.svg";
15 | // @ts-ignore
16 | export { default as typescripticon } from "../public/typescript-icon.svg";
17 | // @ts-ignore
18 | export { default as examplepatients } from "../public/example-patients.svg";
19 | // @ts-ignore
20 | export { default as examplepatientsfail } from "../public/example-patients-fail.svg";
21 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | * {
6 | font-family: Roboto-Regular, sans-serif;
7 | }
8 |
9 | @font-face {
10 | font-family: "Roboto";
11 | src: url("../public/fonts/Roboto-Regular.ttf");
12 | font-weight: normal;
13 | font-style: normal;
14 | }
15 |
16 | @font-face {
17 | font-family: "Roboto";
18 | src: url("../public/fonts/Roboto-Italic.ttf");
19 | font-weight: normal;
20 | font-style: italic;
21 | }
22 |
23 | @font-face {
24 | font-family: "Roboto";
25 | src: url("../public/fonts/Roboto-Bold.ttf");
26 | font-weight: bold;
27 | font-style: normal;
28 | }
29 |
30 | .gradient-background {
31 | background: radial-gradient(ellipse at center, #231f20 0%, #090a0f 100%);
32 | }
33 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
27 |
28 |
29 |
30 | GraphQL OTEL
31 |
36 |
37 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/graphql-otel.com/src/index.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom/client";
3 | import "./index.css";
4 | import App from "./App";
5 |
6 | const root = ReactDOM.createRoot(
7 | document.getElementById("root") as HTMLElement
8 | );
9 | root.render(
10 |
11 |
12 |
13 | );
14 |
--------------------------------------------------------------------------------
/graphql-otel.com/tailwind.config.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | content: ["./src/**/*.{js,jsx,ts,tsx}", "./public/index.html"],
3 | theme: {
4 | extend: {
5 | colors: {
6 | ["graphql-otel-dark"]: "#221F20",
7 | ["graphql-otel-green"]: "#2F8525",
8 | },
9 | },
10 | },
11 | plugins: [],
12 | };
13 |
--------------------------------------------------------------------------------
/graphql-otel.com/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "esModuleInterop": true,
8 | "allowSyntheticDefaultImports": true,
9 | "strict": false,
10 | "forceConsistentCasingInFileNames": true,
11 | "noFallthroughCasesInSwitch": true,
12 | "module": "esnext",
13 | "moduleResolution": "node",
14 | "resolveJsonModule": true,
15 | "isolatedModules": true,
16 | "noEmit": true,
17 | "jsx": "react-jsx",
18 | "noImplicitAny": false
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/graphql-otel.com/webpack.config.cjs:
--------------------------------------------------------------------------------
1 | require("dotenv").config({ path: "./.env" });
2 | const path = require("path");
3 | const webpack = require("webpack");
4 | const HtmlWebpackPlugin = require("html-webpack-plugin");
5 | const CopyWebpackPlugin = require("copy-webpack-plugin");
6 | const TerserPlugin = require("terser-webpack-plugin");
7 | const CompressionPlugin = require("compression-webpack-plugin");
8 | const { CleanWebpackPlugin } = require("clean-webpack-plugin");
9 |
10 | module.exports = {
11 | mode: "none",
12 | entry: path.join(__dirname, "src", "index.tsx"),
13 | context: path.join(__dirname),
14 | target: "web",
15 | resolve: {
16 | extensions: [".ts", ".tsx", ".mjs", ".json", ".js"],
17 | },
18 | ...(process.env.NODE_ENV === "production"
19 | ? {
20 | optimization: {
21 | minimize: true,
22 | minimizer: [new TerserPlugin()],
23 | },
24 | }
25 | : {}),
26 | module: {
27 | rules: [
28 | {
29 | test: /\.tsx?$/,
30 | loader: "ts-loader",
31 | exclude: "/node_modules/",
32 | options: { transpileOnly: true },
33 | },
34 | {
35 | test: /\.(png|jpg|woff|woff2|eot|ttf)$/,
36 | use: [
37 | {
38 | loader: "url-loader",
39 | options: {
40 | limit: 8192,
41 | },
42 | },
43 | ],
44 | },
45 | {
46 | test: /\.svg$/,
47 | use: [
48 | {
49 | loader: "svg-url-loader",
50 | options: {
51 | limit: 10000,
52 | },
53 | },
54 | ],
55 | },
56 | {
57 | test: /\.(css|scss)$/,
58 | use: ["style-loader", "css-loader", "postcss-loader"],
59 | exclude: /\.module\.css$/,
60 | },
61 | ],
62 | },
63 | output: {
64 | filename: "[name].js",
65 | path: path.resolve(__dirname, "dist"),
66 | publicPath: "",
67 | },
68 | plugins: [
69 | new CleanWebpackPlugin(),
70 | new CopyWebpackPlugin({
71 | patterns: ["public"],
72 | }),
73 | new webpack.DefinePlugin({
74 | "process.env": {
75 | NODE_ENV: JSON.stringify(process.env.NODE_ENV),
76 | WEBPACK_DEV_PORT: JSON.stringify(process.env.WEBPACK_DEV_PORT),
77 | API_URL: JSON.stringify(process.env.API_URL),
78 | },
79 | }),
80 | new HtmlWebpackPlugin({
81 | template: "./src/index.html",
82 | favicon: "./public/favicon.svg",
83 | }),
84 | ...(process.env.NODE_ENV === "production" ? [new CompressionPlugin()] : []),
85 | ],
86 | devServer: {
87 | static: {
88 | directory: "dist",
89 | },
90 | compress: true,
91 | port: process.env.WEBPACK_DEV_PORT || 3000,
92 | },
93 | };
94 |
--------------------------------------------------------------------------------
/package/.npmignore:
--------------------------------------------------------------------------------
1 | tests
2 | src
3 | .gitignore
4 | .github
5 | jest.config.js
--------------------------------------------------------------------------------
/package/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "graphql-otel",
3 | "version": "0.1.13",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "graphql-otel",
9 | "version": "0.1.13",
10 | "license": "MIT",
11 | "dependencies": {
12 | "@graphql-debugger/trace-directive": "0.0.0-alpha.48"
13 | },
14 | "engines": {
15 | "node": ">=18.0.0"
16 | }
17 | },
18 | "node_modules/@graphql-debugger/opentelemetry": {
19 | "version": "0.0.0-alpha.48",
20 | "resolved": "https://registry.npmjs.org/@graphql-debugger/opentelemetry/-/opentelemetry-0.0.0-alpha.48.tgz",
21 | "integrity": "sha512-No++deOw0J/h6z8cYwqA+ofQDyqBYW6nK5TmtYf96mvxdVyYFStcsvh9rmrGGvMzhfVo7Hmm63iBATeSqBXoog==",
22 | "dependencies": {
23 | "@opentelemetry/api": "1.4.1",
24 | "@opentelemetry/context-async-hooks": "1.15.2",
25 | "@opentelemetry/exporter-trace-otlp-http": "0.41.2",
26 | "@opentelemetry/otlp-exporter-base": "0.41.2",
27 | "@opentelemetry/resources": "1.15.2",
28 | "@opentelemetry/sdk-trace-base": "1.15.2",
29 | "@opentelemetry/semantic-conventions": "1.15.2"
30 | }
31 | },
32 | "node_modules/@graphql-debugger/trace-directive": {
33 | "version": "0.0.0-alpha.48",
34 | "resolved": "https://registry.npmjs.org/@graphql-debugger/trace-directive/-/trace-directive-0.0.0-alpha.48.tgz",
35 | "integrity": "sha512-GiSnTHoCGP8CR/eJ0Qd4P+Tf0+a/LTfyFX37yoPiVl9ttfRy7+tAftC1IDMKQC0fT8OiGozniVjBdw4+vjiClQ==",
36 | "dependencies": {
37 | "@graphql-debugger/opentelemetry": "0.0.0-alpha.48",
38 | "@graphql-debugger/utils": "0.0.0-alpha.48",
39 | "@graphql-tools/schema": "10.0.0",
40 | "@graphql-tools/utils": "10.0.6"
41 | },
42 | "peerDependencies": {
43 | "graphql": "^16.0.0 || ^17.0.0"
44 | }
45 | },
46 | "node_modules/@graphql-debugger/utils": {
47 | "version": "0.0.0-alpha.48",
48 | "resolved": "https://registry.npmjs.org/@graphql-debugger/utils/-/utils-0.0.0-alpha.48.tgz",
49 | "integrity": "sha512-4yAPsr9WtQXFcpJ3O5sfC9lAbcaO/zkQw4q5IIR9q45iL4OaawIqYIZ+OIWXNSPlmu6/pvKk8mdOR4Fds6Z0aA==",
50 | "dependencies": {
51 | "debug": "4.3.4",
52 | "safe-json-stringify": "1.2.0"
53 | },
54 | "peerDependencies": {
55 | "graphql": "^16.0.0 || ^17.0.0"
56 | }
57 | },
58 | "node_modules/@graphql-tools/merge": {
59 | "version": "9.0.0",
60 | "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.0.tgz",
61 | "integrity": "sha512-J7/xqjkGTTwOJmaJQJ2C+VDBDOWJL3lKrHJN4yMaRLAJH3PosB7GiPRaSDZdErs0+F77sH2MKs2haMMkywzx7Q==",
62 | "dependencies": {
63 | "@graphql-tools/utils": "^10.0.0",
64 | "tslib": "^2.4.0"
65 | },
66 | "engines": {
67 | "node": ">=16.0.0"
68 | },
69 | "peerDependencies": {
70 | "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
71 | }
72 | },
73 | "node_modules/@graphql-tools/schema": {
74 | "version": "10.0.0",
75 | "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.0.tgz",
76 | "integrity": "sha512-kf3qOXMFcMs2f/S8Y3A8fm/2w+GaHAkfr3Gnhh2LOug/JgpY/ywgFVxO3jOeSpSEdoYcDKLcXVjMigNbY4AdQg==",
77 | "dependencies": {
78 | "@graphql-tools/merge": "^9.0.0",
79 | "@graphql-tools/utils": "^10.0.0",
80 | "tslib": "^2.4.0",
81 | "value-or-promise": "^1.0.12"
82 | },
83 | "engines": {
84 | "node": ">=16.0.0"
85 | },
86 | "peerDependencies": {
87 | "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
88 | }
89 | },
90 | "node_modules/@graphql-tools/utils": {
91 | "version": "10.0.6",
92 | "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz",
93 | "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==",
94 | "dependencies": {
95 | "@graphql-typed-document-node/core": "^3.1.1",
96 | "dset": "^3.1.2",
97 | "tslib": "^2.4.0"
98 | },
99 | "engines": {
100 | "node": ">=16.0.0"
101 | },
102 | "peerDependencies": {
103 | "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
104 | }
105 | },
106 | "node_modules/@graphql-typed-document-node/core": {
107 | "version": "3.2.0",
108 | "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
109 | "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
110 | "peerDependencies": {
111 | "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
112 | }
113 | },
114 | "node_modules/@opentelemetry/api": {
115 | "version": "1.4.1",
116 | "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz",
117 | "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==",
118 | "engines": {
119 | "node": ">=8.0.0"
120 | }
121 | },
122 | "node_modules/@opentelemetry/api-logs": {
123 | "version": "0.41.2",
124 | "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.41.2.tgz",
125 | "integrity": "sha512-JEV2RAqijAFdWeT6HddYymfnkiRu2ASxoTBr4WsnGJhOjWZkEy6vp+Sx9ozr1NaIODOa2HUyckExIqQjn6qywQ==",
126 | "dependencies": {
127 | "@opentelemetry/api": "^1.0.0"
128 | },
129 | "engines": {
130 | "node": ">=14"
131 | }
132 | },
133 | "node_modules/@opentelemetry/context-async-hooks": {
134 | "version": "1.15.2",
135 | "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.15.2.tgz",
136 | "integrity": "sha512-VAMHG67srGFQDG/N2ns5AyUT9vUcoKpZ/NpJ5fDQIPfJd7t3ju+aHwvDsMcrYBWuCh03U3Ky6o16+872CZchBg==",
137 | "engines": {
138 | "node": ">=14"
139 | },
140 | "peerDependencies": {
141 | "@opentelemetry/api": ">=1.0.0 <1.5.0"
142 | }
143 | },
144 | "node_modules/@opentelemetry/core": {
145 | "version": "1.15.2",
146 | "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.15.2.tgz",
147 | "integrity": "sha512-+gBv15ta96WqkHZaPpcDHiaz0utiiHZVfm2YOYSqFGrUaJpPkMoSuLBB58YFQGi6Rsb9EHos84X6X5+9JspmLw==",
148 | "dependencies": {
149 | "@opentelemetry/semantic-conventions": "1.15.2"
150 | },
151 | "engines": {
152 | "node": ">=14"
153 | },
154 | "peerDependencies": {
155 | "@opentelemetry/api": ">=1.0.0 <1.5.0"
156 | }
157 | },
158 | "node_modules/@opentelemetry/exporter-trace-otlp-http": {
159 | "version": "0.41.2",
160 | "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.41.2.tgz",
161 | "integrity": "sha512-Y0fGLipjZXLMelWtlS1/MDtrPxf25oM408KukRdkN31a1MEFo4h/ZkNwS7ZfmqHGUa+4rWRt2bi6JBiqy7Ytgw==",
162 | "dependencies": {
163 | "@opentelemetry/core": "1.15.2",
164 | "@opentelemetry/otlp-exporter-base": "0.41.2",
165 | "@opentelemetry/otlp-transformer": "0.41.2",
166 | "@opentelemetry/resources": "1.15.2",
167 | "@opentelemetry/sdk-trace-base": "1.15.2"
168 | },
169 | "engines": {
170 | "node": ">=14"
171 | },
172 | "peerDependencies": {
173 | "@opentelemetry/api": "^1.0.0"
174 | }
175 | },
176 | "node_modules/@opentelemetry/otlp-exporter-base": {
177 | "version": "0.41.2",
178 | "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.41.2.tgz",
179 | "integrity": "sha512-pfwa6d+Dax3itZcGWiA0AoXeVaCuZbbqUTsCtOysd2re8C2PWXNxDONUfBWsn+KgxAdi+ljwTjJGiaVLDaIEvQ==",
180 | "dependencies": {
181 | "@opentelemetry/core": "1.15.2"
182 | },
183 | "engines": {
184 | "node": ">=14"
185 | },
186 | "peerDependencies": {
187 | "@opentelemetry/api": "^1.0.0"
188 | }
189 | },
190 | "node_modules/@opentelemetry/otlp-transformer": {
191 | "version": "0.41.2",
192 | "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.41.2.tgz",
193 | "integrity": "sha512-jJbPwB0tNu2v+Xi0c/v/R3YBLJKLonw1p+v3RVjT2VfzeUyzSp/tBeVdY7RZtL6dzZpA9XSmp8UEfWIFQo33yA==",
194 | "dependencies": {
195 | "@opentelemetry/api-logs": "0.41.2",
196 | "@opentelemetry/core": "1.15.2",
197 | "@opentelemetry/resources": "1.15.2",
198 | "@opentelemetry/sdk-logs": "0.41.2",
199 | "@opentelemetry/sdk-metrics": "1.15.2",
200 | "@opentelemetry/sdk-trace-base": "1.15.2"
201 | },
202 | "engines": {
203 | "node": ">=14"
204 | },
205 | "peerDependencies": {
206 | "@opentelemetry/api": ">=1.3.0 <1.5.0"
207 | }
208 | },
209 | "node_modules/@opentelemetry/resources": {
210 | "version": "1.15.2",
211 | "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.15.2.tgz",
212 | "integrity": "sha512-xmMRLenT9CXmm5HMbzpZ1hWhaUowQf8UB4jMjFlAxx1QzQcsD3KFNAVX/CAWzFPtllTyTplrA4JrQ7sCH3qmYw==",
213 | "dependencies": {
214 | "@opentelemetry/core": "1.15.2",
215 | "@opentelemetry/semantic-conventions": "1.15.2"
216 | },
217 | "engines": {
218 | "node": ">=14"
219 | },
220 | "peerDependencies": {
221 | "@opentelemetry/api": ">=1.0.0 <1.5.0"
222 | }
223 | },
224 | "node_modules/@opentelemetry/sdk-logs": {
225 | "version": "0.41.2",
226 | "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.41.2.tgz",
227 | "integrity": "sha512-smqKIw0tTW15waj7BAPHFomii5c3aHnSE4LQYTszGoK5P9nZs8tEAIpu15UBxi3aG31ZfsLmm4EUQkjckdlFrw==",
228 | "dependencies": {
229 | "@opentelemetry/core": "1.15.2",
230 | "@opentelemetry/resources": "1.15.2"
231 | },
232 | "engines": {
233 | "node": ">=14"
234 | },
235 | "peerDependencies": {
236 | "@opentelemetry/api": ">=1.4.0 <1.5.0",
237 | "@opentelemetry/api-logs": ">=0.39.1"
238 | }
239 | },
240 | "node_modules/@opentelemetry/sdk-metrics": {
241 | "version": "1.15.2",
242 | "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.15.2.tgz",
243 | "integrity": "sha512-9aIlcX8GnhcsAHW/Wl8bzk4ZnWTpNlLtud+fxUfBtFATu6OZ6TrGrF4JkT9EVrnoxwtPIDtjHdEsSjOqisY/iA==",
244 | "dependencies": {
245 | "@opentelemetry/core": "1.15.2",
246 | "@opentelemetry/resources": "1.15.2",
247 | "lodash.merge": "^4.6.2"
248 | },
249 | "engines": {
250 | "node": ">=14"
251 | },
252 | "peerDependencies": {
253 | "@opentelemetry/api": ">=1.3.0 <1.5.0"
254 | }
255 | },
256 | "node_modules/@opentelemetry/sdk-trace-base": {
257 | "version": "1.15.2",
258 | "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.15.2.tgz",
259 | "integrity": "sha512-BEaxGZbWtvnSPchV98qqqqa96AOcb41pjgvhfzDij10tkBhIu9m0Jd6tZ1tJB5ZHfHbTffqYVYE0AOGobec/EQ==",
260 | "dependencies": {
261 | "@opentelemetry/core": "1.15.2",
262 | "@opentelemetry/resources": "1.15.2",
263 | "@opentelemetry/semantic-conventions": "1.15.2"
264 | },
265 | "engines": {
266 | "node": ">=14"
267 | },
268 | "peerDependencies": {
269 | "@opentelemetry/api": ">=1.0.0 <1.5.0"
270 | }
271 | },
272 | "node_modules/@opentelemetry/semantic-conventions": {
273 | "version": "1.15.2",
274 | "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.15.2.tgz",
275 | "integrity": "sha512-CjbOKwk2s+3xPIMcd5UNYQzsf+v94RczbdNix9/kQh38WiQkM90sUOi3if8eyHFgiBjBjhwXrA7W3ydiSQP9mw==",
276 | "engines": {
277 | "node": ">=14"
278 | }
279 | },
280 | "node_modules/debug": {
281 | "version": "4.3.4",
282 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
283 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
284 | "dependencies": {
285 | "ms": "2.1.2"
286 | },
287 | "engines": {
288 | "node": ">=6.0"
289 | },
290 | "peerDependenciesMeta": {
291 | "supports-color": {
292 | "optional": true
293 | }
294 | }
295 | },
296 | "node_modules/dset": {
297 | "version": "3.1.2",
298 | "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz",
299 | "integrity": "sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==",
300 | "engines": {
301 | "node": ">=4"
302 | }
303 | },
304 | "node_modules/graphql": {
305 | "version": "16.8.0",
306 | "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.0.tgz",
307 | "integrity": "sha512-0oKGaR+y3qcS5mCu1vb7KG+a89vjn06C7Ihq/dDl3jA+A8B3TKomvi3CiEcVLJQGalbu8F52LxkOym7U5sSfbg==",
308 | "peer": true,
309 | "engines": {
310 | "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
311 | }
312 | },
313 | "node_modules/lodash.merge": {
314 | "version": "4.6.2",
315 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
316 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
317 | },
318 | "node_modules/ms": {
319 | "version": "2.1.2",
320 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
321 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
322 | },
323 | "node_modules/safe-json-stringify": {
324 | "version": "1.2.0",
325 | "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
326 | "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg=="
327 | },
328 | "node_modules/tslib": {
329 | "version": "2.6.2",
330 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
331 | "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
332 | },
333 | "node_modules/value-or-promise": {
334 | "version": "1.0.12",
335 | "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz",
336 | "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==",
337 | "engines": {
338 | "node": ">=12"
339 | }
340 | }
341 | }
342 | }
343 |
--------------------------------------------------------------------------------
/package/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "graphql-otel",
3 | "version": "0.1.13",
4 | "description": "Opentelemetry GraphQL Schema Directives.",
5 | "main": "./dist/index.js",
6 | "types": "./dist/index.d.ts",
7 | "engines": {
8 | "node": ">=18.0.0"
9 | },
10 | "repository": {
11 | "type": "git",
12 | "url": "git+https://github.com/rocket-connect/graphql-otel.git"
13 | },
14 | "homepage": "https://github.com/rocket-connect/graphql-otel#readme",
15 | "scripts": {
16 | "build": "tsc",
17 | "test": "jest"
18 | },
19 | "keywords": [
20 | "otel",
21 | "graphql",
22 | "span",
23 | "trace",
24 | "directive",
25 | "opentelemetry"
26 | ],
27 | "files": [
28 | "LICENSE",
29 | "README.md",
30 | "dist/"
31 | ],
32 | "author": "Rocket Connect - www.rocketconnect.co.uk",
33 | "license": "MIT",
34 | "dependencies": {
35 | "@graphql-debugger/trace-directive": "0.0.0-alpha.48"
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/package/src/index.ts:
--------------------------------------------------------------------------------
1 | console.warn(
2 | "This package is deprecated. Please use @graphql-debugger/trace-directive instead."
3 | );
4 |
5 | export * from "@graphql-debugger/trace-directive";
6 |
--------------------------------------------------------------------------------
/package/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ESNext",
4 | "module": "commonjs",
5 | "rootDir": "./src",
6 | "declaration": true,
7 | "declarationMap": true,
8 | "sourceMap": true,
9 | "outDir": "./dist",
10 | "esModuleInterop": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "strict": true,
13 | "skipLibCheck": true
14 | },
15 | "include": ["src/**/*"],
16 | "exclude": ["node_modules"]
17 | }
18 |
--------------------------------------------------------------------------------