diff --git a/examples/55_generated/generated_alias.ts b/examples/55_generated/generated_alias.ts index 1a973577b..14fb5af56 100644 --- a/examples/55_generated/generated_alias.ts +++ b/examples/55_generated/generated_alias.ts @@ -12,13 +12,16 @@ const year = day * 365.25 const yearsAgo100 = new Date(Date.now() - year * 100).getTime() const yearsAgo1 = new Date(Date.now() - year).getTime() +// dprint-ignore const pokemons = await pokemon.query.$batch({ pokemons: [ [`elderPokemons`, { +// ^^^^^^^^^^^^^^^ $: { filter: { birthday: { lte: yearsAgo100 } } }, name: true, }], [`babyPokemons`, { +// ^^^^^^^^^^^^^^ $: { filter: { birthday: { gte: yearsAgo1 } } }, name: true, }], diff --git a/examples/55_generated/generated_directive.ts b/examples/55_generated/generated_directive.ts index aa64a0edf..e62631d44 100644 --- a/examples/55_generated/generated_directive.ts +++ b/examples/55_generated/generated_directive.ts @@ -7,32 +7,26 @@ import { Pokemon } from '../$/generated-clients/pokemon/__.js' import { showJson } from '../$/helpers.js' const pokemon = Pokemon.create() -// .anyware(({ pack }) => { -// console.log(print(parse(pack.input.query))) -// return pack() -// }) +// dprint-ignore const pokemons = await pokemon.query.$batch({ ___: { - // $skip: true, - // $defer: true, + $skip: true, +// ^^^^^^^^^^^^ pokemons: { name: true, }, }, trainers: { - // $stream: { - // if: true, - // initialCount: 0, - // label: `trainers`, - // }, name: true, id: { $skip: true, +// ^^^^^^^^^^^^ }, pokemon: { id: { $include: false, +// ^^^^^^^^^^^^^^^^ }, name: true, }, diff --git a/examples/55_generated/generated_document.ts b/examples/55_generated/generated_document.ts index e369610a9..a4b8aae88 100644 --- a/examples/55_generated/generated_document.ts +++ b/examples/55_generated/generated_document.ts @@ -8,6 +8,7 @@ import { showJson } from '../$/helpers.js' const pokemon = Pokemon.create() const pokemons = await pokemon.document({ + // ^^^^^^^^ query: { // An operation type. pokemonsAndTrainers: { // A name chosen by you for this operation. trainers: { // A selection on a Query type field (aka. root field, entrypoint). @@ -39,6 +40,6 @@ const pokemons = await pokemon.document({ }, }, }) - .run(`pokemonsAndTrainers`) + .run(`pokemonsAndTrainers`) // Set operation name to be executed and send request. showJson(pokemons) diff --git a/examples/55_generated/generated_root-field.ts b/examples/55_generated/generated_root-field.ts index a8af7315b..2028fbb41 100644 --- a/examples/55_generated/generated_root-field.ts +++ b/examples/55_generated/generated_root-field.ts @@ -8,5 +8,6 @@ import { showJson } from '../$/helpers.js' const pokemon = Pokemon.create() const pokemons = await pokemon.query.pokemons({ name: true }) +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ showJson(pokemons) diff --git a/examples/__outputs__/10_transport-http/transport-http_extension_headers__dynamicHeaders.output.txt b/examples/__outputs__/10_transport-http/transport-http_extension_headers__dynamicHeaders.output.txt index 00f373118..ef8cf4805 100644 --- a/examples/__outputs__/10_transport-http/transport-http_extension_headers__dynamicHeaders.output.txt +++ b/examples/__outputs__/10_transport-http/transport-http_extension_headers__dynamicHeaders.output.txt @@ -4,7 +4,7 @@ headers: Headers { accept: 'application/graphql-response+json; charset=utf-8, application/json; charset=utf-8', 'content-type': 'application/json', - 'x-sent-at-time': '1727398656266' + 'x-sent-at-time': '1727402243716' }, signal: undefined, method: 'post', diff --git a/examples/__outputs__/20_output/output_envelope.output.txt b/examples/__outputs__/20_output/output_envelope.output.txt index 25bfb350f..8b4d7c8c2 100644 --- a/examples/__outputs__/20_output/output_envelope.output.txt +++ b/examples/__outputs__/20_output/output_envelope.output.txt @@ -16,7 +16,7 @@ headers: Headers { 'content-type': 'application/graphql-response+json; charset=utf-8', 'content-length': '104', - date: 'Fri, 27 Sep 2024 00:57:36 GMT', + date: 'Fri, 27 Sep 2024 01:57:23 GMT', connection: 'keep-alive', 'keep-alive': 'timeout=5' }, diff --git a/examples/__outputs__/55_generated/generated_directive.output.txt b/examples/__outputs__/55_generated/generated_directive.output.txt index 91618e284..a519f908a 100644 --- a/examples/__outputs__/55_generated/generated_directive.output.txt +++ b/examples/__outputs__/55_generated/generated_directive.output.txt @@ -20,19 +20,5 @@ } ] } - ], - "pokemons": [ - { - "name": "Pikachu" - }, - { - "name": "Charizard" - }, - { - "name": "Squirtle" - }, - { - "name": "Bulbasaur" - } ] } \ No newline at end of file diff --git a/examples/__outputs__/60_extension/extension_opentelemetry__opentelemetry.output.txt b/examples/__outputs__/60_extension/extension_opentelemetry__opentelemetry.output.txt index ca4587d3c..4f3894b7c 100644 --- a/examples/__outputs__/60_extension/extension_opentelemetry__opentelemetry.output.txt +++ b/examples/__outputs__/60_extension/extension_opentelemetry__opentelemetry.output.txt @@ -9,14 +9,14 @@ } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'encode', - id: '41893153e418647a', + id: 'bd3e0c33c7f0618a', kind: 0, - timestamp: 1727398656738000, - duration: 559.083, + timestamp: 1727402244351000, + duration: 815.833, attributes: {}, status: { code: 0 }, events: [], @@ -33,14 +33,14 @@ } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'pack', - id: '7f4237b522a4a573', + id: '55ba8c5ec3d2f8a3', kind: 0, - timestamp: 1727398656741000, - duration: 11605.459, + timestamp: 1727402244355000, + duration: 16379.75, attributes: {}, status: { code: 0 }, events: [], @@ -57,14 +57,14 @@ } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'exchange', - id: '10602c9bbc43dd1d', + id: 'bdb99e5752ccec59', kind: 0, - timestamp: 1727398656753000, - duration: 21156.417, + timestamp: 1727402244373000, + duration: 23841.417, attributes: {}, status: { code: 0 }, events: [], @@ -81,14 +81,14 @@ } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'unpack', - id: '2306ef1e07c28f31', + id: 'edf0e40528ece12f', kind: 0, - timestamp: 1727398656774000, - duration: 1144.458, + timestamp: 1727402244397000, + duration: 1305.875, attributes: {}, status: { code: 0 }, events: [], @@ -105,14 +105,14 @@ } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'decode', - id: '7f538ab7279ff6be', + id: '6d4d4750ecff5752', kind: 0, - timestamp: 1727398656776000, - duration: 189.833, + timestamp: 1727402244398000, + duration: 191.75, attributes: {}, status: { code: 0 }, events: [], @@ -129,14 +129,14 @@ } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', parentId: undefined, traceState: undefined, name: 'request', - id: 'edb4fc3f1a36cb35', + id: '389e0f006c1b18ee', kind: 0, - timestamp: 1727398656738000, - duration: 38270.125, + timestamp: 1727402244349000, + duration: 49758.625, attributes: {}, status: { code: 0 }, events: [], diff --git a/package.json b/package.json index ab6beb52c..496c63caf 100644 --- a/package.json +++ b/package.json @@ -126,7 +126,6 @@ "devDependencies": { "@arethetypeswrong/cli": "^0.16.4", "@ark/attest": "^0.19.0", - "@graphql-yoga/plugin-defer-stream": "^3.7.0", "@opentelemetry/api": "^1.9.0", "@opentelemetry/sdk-trace-base": "^1.26.0", "@opentelemetry/sdk-trace-node": "^1.26.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e76589fcf..db4fd0c42 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,9 +33,6 @@ importers: '@ark/attest': specifier: ^0.19.0 version: 0.19.0(typescript@5.6.2) - '@graphql-yoga/plugin-defer-stream': - specifier: ^3.7.0 - version: 3.7.0(graphql-yoga@5.7.0(graphql@16.9.0))(graphql@16.9.0) '@opentelemetry/api': specifier: ^1.9.0 version: 1.9.0 @@ -732,13 +729,6 @@ packages: resolution: {integrity: sha512-Mg8psdkAp+YTG1OGmvU+xa6xpsAmSir0hhr3yFYPyLNwzUj95DdIwsMpKadDj9xDpYgJcH3Hp/4JMal9DhQimA==} engines: {node: '>=18.0.0'} - '@graphql-yoga/plugin-defer-stream@3.7.0': - resolution: {integrity: sha512-5TwoU0C7dqNca4RRZNQZpppSWSkwgewy+6iKnmCUPBSZlbATqREsc8gXsDMK/LA/qvDEizQG7uxHk1tmYeSKgg==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^15.2.0 || ^16.0.0 - graphql-yoga: ^5.7.0 - '@graphql-yoga/subscription@5.0.1': resolution: {integrity: sha512-1wCB1DfAnaLzS+IdoOzELGGnx1ODEg9nzQXFh4u2j02vAnne6d+v4A7HIH9EqzVdPLoAaMKXCZUUdKs+j3z1fg==} engines: {node: '>=18.0.0'} @@ -4450,12 +4440,6 @@ snapshots: dependencies: tslib: 2.7.0 - '@graphql-yoga/plugin-defer-stream@3.7.0(graphql-yoga@5.7.0(graphql@16.9.0))(graphql@16.9.0)': - dependencies: - '@graphql-tools/utils': 10.5.4(graphql@16.9.0) - graphql: 16.9.0 - graphql-yoga: 5.7.0(graphql@16.9.0) - '@graphql-yoga/subscription@5.0.1': dependencies: '@graphql-yoga/typed-event-target': 3.0.0 diff --git a/src/layers/2_SelectionSet/Directive/$types.ts b/src/layers/2_SelectionSet/Directive/$types.ts index 4c7454f30..d9b0ef665 100644 --- a/src/layers/2_SelectionSet/Directive/$types.ts +++ b/src/layers/2_SelectionSet/Directive/$types.ts @@ -1,7 +1,5 @@ -import { Defer } from './_defer.js' import { Include } from './_include.js' import { Skip } from './_skip.js' -import { Stream } from './_stream.js' export interface DirectiveDefinition { name: string @@ -16,17 +14,15 @@ export interface DirectiveLike { /** * @see https://spec.graphql.org/draft/#sec-Type-System.Directives.Built-in-Directives */ -export interface $Fields extends Defer.Field, Stream.Field, Include.Field, Skip.Field {} +export interface $Fields extends Include.Field, Skip.Field {} export namespace $Groups { export namespace InlineFragment { - export interface Fields extends Defer.Field, Stream.Field, Include.Field, Skip.Field {} + export interface Fields extends Include.Field, Skip.Field {} } } export const fieldToDef = { - $defer: Defer, - $stream: Stream, $include: Include, $skip: Skip, } satisfies Record diff --git a/src/layers/2_SelectionSet/print.test.ts b/src/layers/2_SelectionSet/print.test.ts index 9f5a1cb46..e7816b462 100644 --- a/src/layers/2_SelectionSet/print.test.ts +++ b/src/layers/2_SelectionSet/print.test.ts @@ -113,32 +113,32 @@ describe(`$skip`, () => { ])(...testEachArgs) }) -describe(`$defer`, () => { - test.each([ - [s({ object: { $defer: true, id: true } })], - [s({ object: { $defer: false, id: true } })], - [s({ object: { $defer: undefined, id: true } })], - [s({ object: { $defer: { if: true }, id: true } })], - [s({ object: { $defer: { if: false }, id: true } })], - [s({ object: { $defer: { if: undefined }, id: true } })], - [s({ object: { $defer: {}, id: true } })], - [s({ object: { $defer: { label: `foobar` }, id: true } })], - ])(...testEachArgs) -}) +// describe(`$defer`, () => { +// test.each([ +// [s({ object: { $defer: true, id: true } })], +// [s({ object: { $defer: false, id: true } })], +// [s({ object: { $defer: undefined, id: true } })], +// [s({ object: { $defer: { if: true }, id: true } })], +// [s({ object: { $defer: { if: false }, id: true } })], +// [s({ object: { $defer: { if: undefined }, id: true } })], +// [s({ object: { $defer: {}, id: true } })], +// [s({ object: { $defer: { label: `foobar` }, id: true } })], +// ])(...testEachArgs) +// }) -describe(`$stream`, () => { - test.each([ - [s({ object: { $stream: true, id: true } })], - [s({ object: { $stream: false, id: true } })], - [s({ object: { $stream: undefined, id: true } })], - [s({ object: { $stream: { if: true }, id: true } })], - [s({ object: { $stream: { if: false }, id: true } })], - [s({ object: { $stream: { if: undefined }, id: true } })], - [s({ object: { $stream: {}, id: true } })], - [s({ object: { $stream: { label: `foobar` }, id: true } })], - [s({ object: { $stream: { initialCount: 5 }, id: true } })], - ])(...testEachArgs) -}) +// describe(`$stream`, () => { +// test.each([ +// [s({ object: { $stream: true, id: true } })], +// [s({ object: { $stream: false, id: true } })], +// [s({ object: { $stream: undefined, id: true } })], +// [s({ object: { $stream: { if: true }, id: true } })], +// [s({ object: { $stream: { if: false }, id: true } })], +// [s({ object: { $stream: { if: undefined }, id: true } })], +// [s({ object: { $stream: {}, id: true } })], +// [s({ object: { $stream: { label: `foobar` }, id: true } })], +// [s({ object: { $stream: { initialCount: 5 }, id: true } })], +// ])(...testEachArgs) +// }) describe(`other`, () => { test.each([ diff --git a/src/layers/2_SelectionSet/print.ts b/src/layers/2_SelectionSet/print.ts index a43971842..b48b3f6a5 100644 --- a/src/layers/2_SelectionSet/print.ts +++ b/src/layers/2_SelectionSet/print.ts @@ -259,8 +259,6 @@ const printDirectives = (fieldValue: FieldValue): string => { return entriesStrict({ $skip: fieldValue.$skip, $include: fieldValue.$include, - $defer: fieldValue.$defer, - $stream: fieldValue.$stream, }).reduce((code, [field, input]) => { const def = Directive.fieldToDef[field] code += Directive.Print.toGraphQLDirective(def.create(input)) diff --git a/src/layers/2_SelectionSet/types.test-d.ts b/src/layers/2_SelectionSet/types.test-d.ts index 85c1b3cd1..e59bf7f7d 100644 --- a/src/layers/2_SelectionSet/types.test-d.ts +++ b/src/layers/2_SelectionSet/types.test-d.ts @@ -60,12 +60,12 @@ test(`Query`, () => { // Interface assertType({ interface: { id: true } }) - assertType({ interface: { id: { $defer: true } } }) + // assertType({ interface: { id: { $defer: true } } }) assertType({ interface: { id: { $include: true } } }) assertType({ interface: { id: { $skip: true } } }) - assertType({ interface: { id: { $stream: true } } }) + // assertType({ interface: { id: { $stream: true } } }) assertType({ interface: { __typename: true } }) - assertType({ interface: { __typename: { $defer: true } } }) + // assertType({ interface: { __typename: { $defer: true } } }) assertType({ interface: { $scalars: true } }) assertType({ interfaceWithArgs: { $: { id: `abc` }, id: true } }) // @ts-expect-error needs fragment @@ -143,18 +143,18 @@ test(`Query`, () => { // assertType({ string: include() }) // @defer - assertType({ string: { $defer: true } }) - assertType({ string: { $defer: { if: true, label: `foo` } } }) - assertType({ string: { $defer: { if: true } } }) - assertType({ string: { $defer: {} } }) + // assertType({ string: { $defer: true } }) + // assertType({ string: { $defer: { if: true, label: `foo` } } }) + // assertType({ string: { $defer: { if: true } } }) + // assertType({ string: { $defer: {} } }) // (todo limit to lists?) // @stream - assertType({ string: { $stream: true } }) - assertType({ string: { $stream: { if: true, label: `foo`, initialCount: 0 } } }) - assertType({ string: { $stream: { if: true, label: `foo` } } }) - assertType({ string: { $stream: { if: true } } }) - assertType({ string: { $stream: {} } }) + // assertType({ string: { $stream: true } }) + // assertType({ string: { $stream: { if: true, label: `foo`, initialCount: 0 } } }) + // assertType({ string: { $stream: { if: true, label: `foo` } } }) + // assertType({ string: { $stream: { if: true } } }) + // assertType({ string: { $stream: {} } }) // Field Group // On Object diff --git a/src/layers/3_ResultSet/_.ts b/src/layers/3_ResultSet/_.ts new file mode 100644 index 000000000..9d3950c69 --- /dev/null +++ b/src/layers/3_ResultSet/_.ts @@ -0,0 +1,2 @@ +export { decode } from './decode.js' +export * from './infer.js' diff --git a/src/layers/3_ResultSet/__.ts b/src/layers/3_ResultSet/__.ts index f5437b53a..c117ece93 100644 --- a/src/layers/3_ResultSet/__.ts +++ b/src/layers/3_ResultSet/__.ts @@ -1 +1 @@ -export * as ResultSet from './infer.js' +export * as ResultSet from './_.js' diff --git a/src/layers/3_ResultSet/decode.ts b/src/layers/3_ResultSet/decode.ts index a4ee7c062..5f628a794 100644 --- a/src/layers/3_ResultSet/decode.ts +++ b/src/layers/3_ResultSet/decode.ts @@ -106,6 +106,9 @@ const getInlineFragmentGroups = (selectionSet: SelectionSet.ObjectLike) => { return Array.isArray(maybeGroupOrGroups) ? maybeGroupOrGroups : [maybeGroupOrGroups] } +/** + * Decode custom scalars in the result data. + */ export const decode = <$Data extends ExecutionResult['data']>( objectType: Schema.Object$2, selectionSet: SelectionSet.ObjectLike, diff --git a/src/layers/5_core/core.ts b/src/layers/5_core/core.ts index 8ab8eb6ad..d6da1b56f 100644 --- a/src/layers/5_core/core.ts +++ b/src/layers/5_core/core.ts @@ -15,7 +15,7 @@ import { import { mergeRequestInit, searchParamsAppendAll } from '../../lib/http.js' import { casesExhausted, getOptionalNullablePropertyOrThrow, throwNull } from '../../lib/prelude.js' import { execute } from '../0_functions/execute.js' -import * as CustomScalars from '../3_ResultSet/decode.js' +import { ResultSet } from '../3_ResultSet/__.js' import { Document } from '../4_document/__.js' import type { GraffleExecutionResultVar } from '../6_client/client.js' import type { Config } from '../6_client/Settings/Config.js' @@ -233,7 +233,7 @@ export const anyware = Anyware.create({ // 2. When traversing the result, skip keys that are not in the map // console.log(input.context.schemaIndex.Root) // console.log(getOptionalNullablePropertyOrThrow(input.context.schemaIndex.Root, operation.rootType)) - const dataDecoded = CustomScalars.decode( + const dataDecoded = ResultSet.decode( getOptionalNullablePropertyOrThrow(input.context.schemaIndex.Root, operation.rootType), operation.selectionSet, input.result.data, diff --git a/src/layers/5_select/select.test.ts b/src/layers/5_select/select.test.ts index 3aa9b0ead..6d777c649 100644 --- a/src/layers/5_select/select.test.ts +++ b/src/layers/5_select/select.test.ts @@ -9,5 +9,5 @@ test(`returns the input for any method name`, () => { }) test(`has type safe methods`, () => { - expect(select.Bar({ ___: { $defer: true, int: true } })).toEqual({ ___: { $defer: true, int: true } }) + expect(select.Bar({ ___: { $include: true, int: true } })).toEqual({ ___: { $include: true, int: true } }) }) diff --git a/tests/_/lib/serveSchema.ts b/tests/_/lib/serveSchema.ts index e4c9fb676..3d6b81d32 100644 --- a/tests/_/lib/serveSchema.ts +++ b/tests/_/lib/serveSchema.ts @@ -1,4 +1,3 @@ -import { useDeferStream } from '@graphql-yoga/plugin-defer-stream' import { addCleanupListener } from 'async-cleanup' import getPort from 'get-port' import type { GraphQLSchema } from 'graphql' @@ -9,7 +8,6 @@ export const serveSchema = async (input: { schema: GraphQLSchema; log?: boolean const { schema } = input const yoga = createYoga({ schema, - plugins: [useDeferStream()], context: (initialContext) => { const tenant = initialContext.request.headers.get(`tenant`) return { diff --git a/website/content/_snippets/examples/extension/opentelemetry.detail.md b/website/content/_snippets/examples/extension/opentelemetry.detail.md index 0ef1fcec0..c66f5b610 100644 --- a/website/content/_snippets/examples/extension/opentelemetry.detail.md +++ b/website/content/_snippets/examples/extension/opentelemetry.detail.md @@ -38,14 +38,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'encode', - id: '41893153e418647a', + id: 'bd3e0c33c7f0618a', kind: 0, - timestamp: 1727398656738000, - duration: 559.083, + timestamp: 1727402244351000, + duration: 815.833, attributes: {}, status: { code: 0 }, events: [], @@ -65,14 +65,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'pack', - id: '7f4237b522a4a573', + id: '55ba8c5ec3d2f8a3', kind: 0, - timestamp: 1727398656741000, - duration: 11605.459, + timestamp: 1727402244355000, + duration: 16379.75, attributes: {}, status: { code: 0 }, events: [], @@ -92,14 +92,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'exchange', - id: '10602c9bbc43dd1d', + id: 'bdb99e5752ccec59', kind: 0, - timestamp: 1727398656753000, - duration: 21156.417, + timestamp: 1727402244373000, + duration: 23841.417, attributes: {}, status: { code: 0 }, events: [], @@ -119,14 +119,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'unpack', - id: '2306ef1e07c28f31', + id: 'edf0e40528ece12f', kind: 0, - timestamp: 1727398656774000, - duration: 1144.458, + timestamp: 1727402244397000, + duration: 1305.875, attributes: {}, status: { code: 0 }, events: [], @@ -146,14 +146,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'decode', - id: '7f538ab7279ff6be', + id: '6d4d4750ecff5752', kind: 0, - timestamp: 1727398656776000, - duration: 189.833, + timestamp: 1727402244398000, + duration: 191.75, attributes: {}, status: { code: 0 }, events: [], @@ -173,14 +173,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', parentId: undefined, traceState: undefined, name: 'request', - id: 'edb4fc3f1a36cb35', + id: '389e0f006c1b18ee', kind: 0, - timestamp: 1727398656738000, - duration: 38270.125, + timestamp: 1727402244349000, + duration: 49758.625, attributes: {}, status: { code: 0 }, events: [], diff --git a/website/content/_snippets/examples/extension/opentelemetry.md b/website/content/_snippets/examples/extension/opentelemetry.md index cc7432350..bbcd10687 100644 --- a/website/content/_snippets/examples/extension/opentelemetry.md +++ b/website/content/_snippets/examples/extension/opentelemetry.md @@ -36,14 +36,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'encode', - id: '41893153e418647a', + id: 'bd3e0c33c7f0618a', kind: 0, - timestamp: 1727398656738000, - duration: 559.083, + timestamp: 1727402244351000, + duration: 815.833, attributes: {}, status: { code: 0 }, events: [], @@ -63,14 +63,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'pack', - id: '7f4237b522a4a573', + id: '55ba8c5ec3d2f8a3', kind: 0, - timestamp: 1727398656741000, - duration: 11605.459, + timestamp: 1727402244355000, + duration: 16379.75, attributes: {}, status: { code: 0 }, events: [], @@ -90,14 +90,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'exchange', - id: '10602c9bbc43dd1d', + id: 'bdb99e5752ccec59', kind: 0, - timestamp: 1727398656753000, - duration: 21156.417, + timestamp: 1727402244373000, + duration: 23841.417, attributes: {}, status: { code: 0 }, events: [], @@ -117,14 +117,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'unpack', - id: '2306ef1e07c28f31', + id: 'edf0e40528ece12f', kind: 0, - timestamp: 1727398656774000, - duration: 1144.458, + timestamp: 1727402244397000, + duration: 1305.875, attributes: {}, status: { code: 0 }, events: [], @@ -144,14 +144,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'decode', - id: '7f538ab7279ff6be', + id: '6d4d4750ecff5752', kind: 0, - timestamp: 1727398656776000, - duration: 189.833, + timestamp: 1727402244398000, + duration: 191.75, attributes: {}, status: { code: 0 }, events: [], @@ -171,14 +171,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', parentId: undefined, traceState: undefined, name: 'request', - id: 'edb4fc3f1a36cb35', + id: '389e0f006c1b18ee', kind: 0, - timestamp: 1727398656738000, - duration: 38270.125, + timestamp: 1727402244349000, + duration: 49758.625, attributes: {}, status: { code: 0 }, events: [], diff --git a/website/content/_snippets/examples/generated/alias.detail.md b/website/content/_snippets/examples/generated/alias.detail.md index 2df974b58..e34fa64de 100644 --- a/website/content/_snippets/examples/generated/alias.detail.md +++ b/website/content/_snippets/examples/generated/alias.detail.md @@ -18,10 +18,12 @@ const yearsAgo1 = new Date(Date.now() - year).getTime() const pokemons = await pokemon.query.$batch({ pokemons: [ [`elderPokemons`, { +// ^^^^^^^^^^^^^^^ $: { filter: { birthday: { lte: yearsAgo100 } } }, name: true, }], [`babyPokemons`, { +// ^^^^^^^^^^^^^^ $: { filter: { birthday: { gte: yearsAgo1 } } }, name: true, }], diff --git a/website/content/_snippets/examples/generated/alias.md b/website/content/_snippets/examples/generated/alias.md index 6f1e3fd46..9dbeb0a50 100644 --- a/website/content/_snippets/examples/generated/alias.md +++ b/website/content/_snippets/examples/generated/alias.md @@ -16,10 +16,12 @@ const yearsAgo1 = new Date(Date.now() - year).getTime() const pokemons = await pokemon.query.$batch({ pokemons: [ [`elderPokemons`, { +// ^^^^^^^^^^^^^^^ $: { filter: { birthday: { lte: yearsAgo100 } } }, name: true, }], [`babyPokemons`, { +// ^^^^^^^^^^^^^^ $: { filter: { birthday: { gte: yearsAgo1 } } }, name: true, }], diff --git a/website/content/_snippets/examples/generated/directive.detail.md b/website/content/_snippets/examples/generated/directive.detail.md index bfd72882f..f188a7b75 100644 --- a/website/content/_snippets/examples/generated/directive.detail.md +++ b/website/content/_snippets/examples/generated/directive.detail.md @@ -10,32 +10,25 @@ import { Pokemon } from './pokemon/__.js' const pokemon = Pokemon.create() -// .anyware(({ pack }) => { -// console.log(print(parse(pack.input.query))) -// return pack() -// }) const pokemons = await pokemon.query.$batch({ ___: { - // $skip: true, - // $defer: true, + $skip: true, +// ^^^^^^^^^^^^ pokemons: { name: true, }, }, trainers: { - // $stream: { - // if: true, - // initialCount: 0, - // label: `trainers`, - // }, name: true, id: { $skip: true, +// ^^^^^^^^^^^^ }, pokemon: { id: { $include: false, +// ^^^^^^^^^^^^^^^^ }, name: true, }, @@ -69,20 +62,6 @@ console.log(pokemons) } ] } - ], - "pokemons": [ - { - "name": "Pikachu" - }, - { - "name": "Charizard" - }, - { - "name": "Squirtle" - }, - { - "name": "Bulbasaur" - } ] } ``` diff --git a/website/content/_snippets/examples/generated/directive.md b/website/content/_snippets/examples/generated/directive.md index 4c6e9b532..312e827d5 100644 --- a/website/content/_snippets/examples/generated/directive.md +++ b/website/content/_snippets/examples/generated/directive.md @@ -8,32 +8,25 @@ import { Pokemon } from './pokemon/__.js' const pokemon = Pokemon.create() -// .anyware(({ pack }) => { -// console.log(print(parse(pack.input.query))) -// return pack() -// }) const pokemons = await pokemon.query.$batch({ ___: { - // $skip: true, - // $defer: true, + $skip: true, +// ^^^^^^^^^^^^ pokemons: { name: true, }, }, trainers: { - // $stream: { - // if: true, - // initialCount: 0, - // label: `trainers`, - // }, name: true, id: { $skip: true, +// ^^^^^^^^^^^^ }, pokemon: { id: { $include: false, +// ^^^^^^^^^^^^^^^^ }, name: true, }, @@ -67,20 +60,6 @@ console.log(pokemons) } ] } - ], - "pokemons": [ - { - "name": "Pikachu" - }, - { - "name": "Charizard" - }, - { - "name": "Squirtle" - }, - { - "name": "Bulbasaur" - } ] } ``` diff --git a/website/content/_snippets/examples/generated/document.detail.md b/website/content/_snippets/examples/generated/document.detail.md index fa90c1df9..eec4de58b 100644 --- a/website/content/_snippets/examples/generated/document.detail.md +++ b/website/content/_snippets/examples/generated/document.detail.md @@ -11,6 +11,7 @@ import { Pokemon } from './pokemon/__.js' const pokemon = Pokemon.create() const pokemons = await pokemon.document({ + // ^^^^^^^^ query: { // An operation type. pokemonsAndTrainers: { // A name chosen by you for this operation. trainers: { // A selection on a Query type field (aka. root field, entrypoint). @@ -42,7 +43,7 @@ const pokemons = await pokemon.document({ }, }, }) - .run(`pokemonsAndTrainers`) + .run(`pokemonsAndTrainers`) // Set operation name to be executed and send request. console.log(pokemons) ``` diff --git a/website/content/_snippets/examples/generated/document.md b/website/content/_snippets/examples/generated/document.md index 88f212c97..6108f2259 100644 --- a/website/content/_snippets/examples/generated/document.md +++ b/website/content/_snippets/examples/generated/document.md @@ -9,6 +9,7 @@ import { Pokemon } from './pokemon/__.js' const pokemon = Pokemon.create() const pokemons = await pokemon.document({ + // ^^^^^^^^ query: { // An operation type. pokemonsAndTrainers: { // A name chosen by you for this operation. trainers: { // A selection on a Query type field (aka. root field, entrypoint). @@ -40,7 +41,7 @@ const pokemons = await pokemon.document({ }, }, }) - .run(`pokemonsAndTrainers`) + .run(`pokemonsAndTrainers`) // Set operation name to be executed and send request. console.log(pokemons) ``` diff --git a/website/content/_snippets/examples/generated/root-field.detail.md b/website/content/_snippets/examples/generated/root-field.detail.md index a1868148c..fd26c32f9 100644 --- a/website/content/_snippets/examples/generated/root-field.detail.md +++ b/website/content/_snippets/examples/generated/root-field.detail.md @@ -11,6 +11,7 @@ import { Pokemon } from './pokemon/__.js' const pokemon = Pokemon.create() const pokemons = await pokemon.query.pokemons({ name: true }) +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ console.log(pokemons) ``` diff --git a/website/content/_snippets/examples/generated/root-field.md b/website/content/_snippets/examples/generated/root-field.md index e9825bba4..ed4d1b2ea 100644 --- a/website/content/_snippets/examples/generated/root-field.md +++ b/website/content/_snippets/examples/generated/root-field.md @@ -9,6 +9,7 @@ import { Pokemon } from './pokemon/__.js' const pokemon = Pokemon.create() const pokemons = await pokemon.query.pokemons({ name: true }) +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ console.log(pokemons) ``` diff --git a/website/content/_snippets/examples/output/envelope.detail.md b/website/content/_snippets/examples/output/envelope.detail.md index cf34e950d..eaf3d0880 100644 --- a/website/content/_snippets/examples/output/envelope.detail.md +++ b/website/content/_snippets/examples/output/envelope.detail.md @@ -39,7 +39,7 @@ console.log(result) headers: Headers { 'content-type': 'application/graphql-response+json; charset=utf-8', 'content-length': '104', - date: 'Fri, 27 Sep 2024 00:57:36 GMT', + date: 'Fri, 27 Sep 2024 01:57:23 GMT', connection: 'keep-alive', 'keep-alive': 'timeout=5' }, diff --git a/website/content/_snippets/examples/output/envelope.md b/website/content/_snippets/examples/output/envelope.md index 6954e4577..2a585d4e3 100644 --- a/website/content/_snippets/examples/output/envelope.md +++ b/website/content/_snippets/examples/output/envelope.md @@ -37,7 +37,7 @@ console.log(result) headers: Headers { 'content-type': 'application/graphql-response+json; charset=utf-8', 'content-length': '104', - date: 'Fri, 27 Sep 2024 00:57:36 GMT', + date: 'Fri, 27 Sep 2024 01:57:23 GMT', connection: 'keep-alive', 'keep-alive': 'timeout=5' }, diff --git a/website/content/_snippets/examples/transport-http/dynamic-headers.detail.md b/website/content/_snippets/examples/transport-http/dynamic-headers.detail.md index f8c957288..4f4982d65 100644 --- a/website/content/_snippets/examples/transport-http/dynamic-headers.detail.md +++ b/website/content/_snippets/examples/transport-http/dynamic-headers.detail.md @@ -38,7 +38,7 @@ await graffle.rawString({ document: `{ pokemons { name } }` }) headers: Headers { accept: 'application/graphql-response+json; charset=utf-8, application/json; charset=utf-8', 'content-type': 'application/json', - 'x-sent-at-time': '1727398656266' + 'x-sent-at-time': '1727402243716' }, signal: undefined, method: 'post', diff --git a/website/content/_snippets/examples/transport-http/dynamic-headers.md b/website/content/_snippets/examples/transport-http/dynamic-headers.md index 78c1dac58..887cdc6d6 100644 --- a/website/content/_snippets/examples/transport-http/dynamic-headers.md +++ b/website/content/_snippets/examples/transport-http/dynamic-headers.md @@ -36,7 +36,7 @@ await graffle.rawString({ document: `{ pokemons { name } }` }) headers: Headers { accept: 'application/graphql-response+json; charset=utf-8, application/json; charset=utf-8', 'content-type': 'application/json', - 'x-sent-at-time': '1727398656266' + 'x-sent-at-time': '1727402243716' }, signal: undefined, method: 'post', diff --git a/website/content/examples/10_transport-http/dynamic-headers.md b/website/content/examples/10_transport-http/dynamic-headers.md index 872f015df..bcf61a758 100644 --- a/website/content/examples/10_transport-http/dynamic-headers.md +++ b/website/content/examples/10_transport-http/dynamic-headers.md @@ -43,7 +43,7 @@ await graffle.rawString({ document: `{ pokemons { name } }` }) headers: Headers { accept: 'application/graphql-response+json; charset=utf-8, application/json; charset=utf-8', 'content-type': 'application/json', - 'x-sent-at-time': '1727398656266' + 'x-sent-at-time': '1727402243716' }, signal: undefined, method: 'post', diff --git a/website/content/examples/20_output/envelope.md b/website/content/examples/20_output/envelope.md index 71c1ca7d4..3d1d73b01 100644 --- a/website/content/examples/20_output/envelope.md +++ b/website/content/examples/20_output/envelope.md @@ -44,7 +44,7 @@ console.log(result) headers: Headers { 'content-type': 'application/graphql-response+json; charset=utf-8', 'content-length': '104', - date: 'Fri, 27 Sep 2024 00:57:36 GMT', + date: 'Fri, 27 Sep 2024 01:57:23 GMT', connection: 'keep-alive', 'keep-alive': 'timeout=5' }, diff --git a/website/content/examples/55_generated/alias.md b/website/content/examples/55_generated/alias.md index d62de334c..7edd7a36e 100644 --- a/website/content/examples/55_generated/alias.md +++ b/website/content/examples/55_generated/alias.md @@ -21,10 +21,12 @@ const yearsAgo1 = new Date(Date.now() - year).getTime() const pokemons = await pokemon.query.$batch({ pokemons: [ [`elderPokemons`, { +// ^^^^^^^^^^^^^^^ $: { filter: { birthday: { lte: yearsAgo100 } } }, name: true, }], [`babyPokemons`, { +// ^^^^^^^^^^^^^^ $: { filter: { birthday: { gte: yearsAgo1 } } }, name: true, }], diff --git a/website/content/examples/55_generated/directive.md b/website/content/examples/55_generated/directive.md index 071eb9a78..28556cd9a 100644 --- a/website/content/examples/55_generated/directive.md +++ b/website/content/examples/55_generated/directive.md @@ -13,32 +13,25 @@ This example shows how to use special fields to write GraphQL document directive import { Pokemon } from './pokemon/__.js' const pokemon = Pokemon.create() -// .anyware(({ pack }) => { -// console.log(print(parse(pack.input.query))) -// return pack() -// }) const pokemons = await pokemon.query.$batch({ ___: { - // $skip: true, - // $defer: true, + $skip: true, +// ^^^^^^^^^^^^ pokemons: { name: true, }, }, trainers: { - // $stream: { - // if: true, - // initialCount: 0, - // label: `trainers`, - // }, name: true, id: { $skip: true, +// ^^^^^^^^^^^^ }, pokemon: { id: { $include: false, +// ^^^^^^^^^^^^^^^^ }, name: true, }, @@ -74,20 +67,6 @@ console.log(pokemons) } ] } - ], - "pokemons": [ - { - "name": "Pikachu" - }, - { - "name": "Charizard" - }, - { - "name": "Squirtle" - }, - { - "name": "Bulbasaur" - } ] } ``` diff --git a/website/content/examples/55_generated/document.md b/website/content/examples/55_generated/document.md index d3e12dfad..d78446aa1 100644 --- a/website/content/examples/55_generated/document.md +++ b/website/content/examples/55_generated/document.md @@ -14,6 +14,7 @@ import { Pokemon } from './pokemon/__.js' const pokemon = Pokemon.create() const pokemons = await pokemon.document({ + // ^^^^^^^^ query: { // An operation type. pokemonsAndTrainers: { // A name chosen by you for this operation. trainers: { // A selection on a Query type field (aka. root field, entrypoint). @@ -45,7 +46,7 @@ const pokemons = await pokemon.document({ }, }, }) - .run(`pokemonsAndTrainers`) + .run(`pokemonsAndTrainers`) // Set operation name to be executed and send request. console.log(pokemons) ``` diff --git a/website/content/examples/55_generated/root-field.md b/website/content/examples/55_generated/root-field.md index 86333d7f3..5ed8f0dca 100644 --- a/website/content/examples/55_generated/root-field.md +++ b/website/content/examples/55_generated/root-field.md @@ -14,6 +14,7 @@ import { Pokemon } from './pokemon/__.js' const pokemon = Pokemon.create() const pokemons = await pokemon.query.pokemons({ name: true }) +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ console.log(pokemons) ``` diff --git a/website/content/examples/60_extension/opentelemetry.md b/website/content/examples/60_extension/opentelemetry.md index 3b85e6e61..4c2f67d13 100644 --- a/website/content/examples/60_extension/opentelemetry.md +++ b/website/content/examples/60_extension/opentelemetry.md @@ -41,14 +41,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'encode', - id: '41893153e418647a', + id: 'bd3e0c33c7f0618a', kind: 0, - timestamp: 1727398656738000, - duration: 559.083, + timestamp: 1727402244351000, + duration: 815.833, attributes: {}, status: { code: 0 }, events: [], @@ -68,14 +68,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'pack', - id: '7f4237b522a4a573', + id: '55ba8c5ec3d2f8a3', kind: 0, - timestamp: 1727398656741000, - duration: 11605.459, + timestamp: 1727402244355000, + duration: 16379.75, attributes: {}, status: { code: 0 }, events: [], @@ -95,14 +95,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'exchange', - id: '10602c9bbc43dd1d', + id: 'bdb99e5752ccec59', kind: 0, - timestamp: 1727398656753000, - duration: 21156.417, + timestamp: 1727402244373000, + duration: 23841.417, attributes: {}, status: { code: 0 }, events: [], @@ -122,14 +122,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'unpack', - id: '2306ef1e07c28f31', + id: 'edf0e40528ece12f', kind: 0, - timestamp: 1727398656774000, - duration: 1144.458, + timestamp: 1727402244397000, + duration: 1305.875, attributes: {}, status: { code: 0 }, events: [], @@ -149,14 +149,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', - parentId: 'edb4fc3f1a36cb35', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', + parentId: '389e0f006c1b18ee', traceState: undefined, name: 'decode', - id: '7f538ab7279ff6be', + id: '6d4d4750ecff5752', kind: 0, - timestamp: 1727398656776000, - duration: 189.833, + timestamp: 1727402244398000, + duration: 191.75, attributes: {}, status: { code: 0 }, events: [], @@ -176,14 +176,14 @@ console.log(data) } }, instrumentationScope: { name: 'graffle', version: undefined, schemaUrl: undefined }, - traceId: '244b6da7575c00d270d6b60798e72b7e', + traceId: '00f7caa8f793fd361b4dd9d8bfac44a6', parentId: undefined, traceState: undefined, name: 'request', - id: 'edb4fc3f1a36cb35', + id: '389e0f006c1b18ee', kind: 0, - timestamp: 1727398656738000, - duration: 38270.125, + timestamp: 1727402244349000, + duration: 49758.625, attributes: {}, status: { code: 0 }, events: [],