@gql.tada/cli-utils 1.7.4 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"thread-chunk.mjs","sources":["../../../../node_modules/.pnpm/@0no-co+graphql.web@1.0.7_graphql@16.9.0/node_modules/@0no-co/graphql.web/dist/graphql.web.mjs","../../src/commands/generate-persisted/thread.ts"],"sourcesContent":["var e = {\n NAME: \"Name\",\n DOCUMENT: \"Document\",\n OPERATION_DEFINITION: \"OperationDefinition\",\n VARIABLE_DEFINITION: \"VariableDefinition\",\n SELECTION_SET: \"SelectionSet\",\n FIELD: \"Field\",\n ARGUMENT: \"Argument\",\n FRAGMENT_SPREAD: \"FragmentSpread\",\n INLINE_FRAGMENT: \"InlineFragment\",\n FRAGMENT_DEFINITION: \"FragmentDefinition\",\n VARIABLE: \"Variable\",\n INT: \"IntValue\",\n FLOAT: \"FloatValue\",\n STRING: \"StringValue\",\n BOOLEAN: \"BooleanValue\",\n NULL: \"NullValue\",\n ENUM: \"EnumValue\",\n LIST: \"ListValue\",\n OBJECT: \"ObjectValue\",\n OBJECT_FIELD: \"ObjectField\",\n DIRECTIVE: \"Directive\",\n NAMED_TYPE: \"NamedType\",\n LIST_TYPE: \"ListType\",\n NON_NULL_TYPE: \"NonNullType\"\n};\n\nvar r = {\n QUERY: \"query\",\n MUTATION: \"mutation\",\n SUBSCRIPTION: \"subscription\"\n};\n\nclass GraphQLError extends Error {\n constructor(e, r, i, n, a, t, l) {\n super(e);\n this.name = \"GraphQLError\";\n this.message = e;\n if (a) {\n this.path = a;\n }\n if (r) {\n this.nodes = Array.isArray(r) ? r : [ r ];\n }\n if (i) {\n this.source = i;\n }\n if (n) {\n this.positions = n;\n }\n if (t) {\n this.originalError = t;\n }\n var o = l;\n if (!o && t) {\n var u = t.extensions;\n if (u && \"object\" == typeof u) {\n o = u;\n }\n }\n this.extensions = o || {};\n }\n toJSON() {\n return {\n ...this,\n message: this.message\n };\n }\n toString() {\n return this.message;\n }\n get [Symbol.toStringTag]() {\n return \"GraphQLError\";\n }\n}\n\nvar i;\n\nvar n;\n\nfunction error(e) {\n return new GraphQLError(`Syntax Error: Unexpected token at ${n} in ${e}`);\n}\n\nfunction advance(e) {\n e.lastIndex = n;\n if (e.test(i)) {\n return i.slice(n, n = e.lastIndex);\n }\n}\n\nvar a = / +(?=[^\\s])/y;\n\nfunction blockString(e) {\n var r = e.split(\"\\n\");\n var i = \"\";\n var n = 0;\n var t = 0;\n var l = r.length - 1;\n for (var o = 0; o < r.length; o++) {\n a.lastIndex = 0;\n if (a.test(r[o])) {\n if (o && (!n || a.lastIndex < n)) {\n n = a.lastIndex;\n }\n t = t || o;\n l = o;\n }\n }\n for (var u = t; u <= l; u++) {\n if (u !== t) {\n i += \"\\n\";\n }\n i += r[u].slice(n).replace(/\\\\\"\"\"/g, '\"\"\"');\n }\n return i;\n}\n\nfunction ignored() {\n for (var e = 0 | i.charCodeAt(n++); 9 === e || 10 === e || 13 === e || 32 === e || 35 === e || 44 === e || 65279 === e; e = 0 | i.charCodeAt(n++)) {\n if (35 === e) {\n while (10 !== (e = i.charCodeAt(n++)) && 13 !== e) {}\n }\n }\n n--;\n}\n\nvar t = /[_A-Za-z]\\w*/y;\n\nvar l = new RegExp(\"(?:(null|true|false)|\\\\$(\" + t.source + ')|(-?\\\\d+)((?:\\\\.\\\\d+)?[eE][+-]?\\\\d+|\\\\.\\\\d+)?|(\"\"\"(?:\"\"\"|(?:[\\\\s\\\\S]*?[^\\\\\\\\])\"\"\"))|(\"(?:\"|[^\\\\r\\\\n]*?[^\\\\\\\\]\"))|(' + t.source + \"))\", \"y\");\n\nvar o = function(e) {\n e[e.Const = 1] = \"Const\";\n e[e.Var = 2] = \"Var\";\n e[e.Int = 3] = \"Int\";\n e[e.Float = 4] = \"Float\";\n e[e.BlockString = 5] = \"BlockString\";\n e[e.String = 6] = \"String\";\n e[e.Enum = 7] = \"Enum\";\n return e;\n}(o || {});\n\nvar u = /\\\\/g;\n\nfunction value(e) {\n var r;\n var a;\n l.lastIndex = n;\n if (91 === i.charCodeAt(n)) {\n n++;\n ignored();\n var d = [];\n while (93 !== i.charCodeAt(n)) {\n d.push(value(e));\n }\n n++;\n ignored();\n return {\n kind: \"ListValue\",\n values: d\n };\n } else if (123 === i.charCodeAt(n)) {\n n++;\n ignored();\n var v = [];\n while (125 !== i.charCodeAt(n)) {\n if (null == (r = advance(t))) {\n throw error(\"ObjectField\");\n }\n ignored();\n if (58 !== i.charCodeAt(n++)) {\n throw error(\"ObjectField\");\n }\n ignored();\n v.push({\n kind: \"ObjectField\",\n name: {\n kind: \"Name\",\n value: r\n },\n value: value(e)\n });\n }\n n++;\n ignored();\n return {\n kind: \"ObjectValue\",\n fields: v\n };\n } else if (null != (a = l.exec(i))) {\n n = l.lastIndex;\n ignored();\n if (null != (r = a[o.Const])) {\n return \"null\" === r ? {\n kind: \"NullValue\"\n } : {\n kind: \"BooleanValue\",\n value: \"true\" === r\n };\n } else if (null != (r = a[o.Var])) {\n if (e) {\n throw error(\"Variable\");\n } else {\n return {\n kind: \"Variable\",\n name: {\n kind: \"Name\",\n value: r\n }\n };\n }\n } else if (null != (r = a[o.Int])) {\n var s;\n if (null != (s = a[o.Float])) {\n return {\n kind: \"FloatValue\",\n value: r + s\n };\n } else {\n return {\n kind: \"IntValue\",\n value: r\n };\n }\n } else if (null != (r = a[o.BlockString])) {\n return {\n kind: \"StringValue\",\n value: blockString(r.slice(3, -3)),\n block: !0\n };\n } else if (null != (r = a[o.String])) {\n return {\n kind: \"StringValue\",\n value: u.test(r) ? JSON.parse(r) : r.slice(1, -1),\n block: !1\n };\n } else if (null != (r = a[o.Enum])) {\n return {\n kind: \"EnumValue\",\n value: r\n };\n }\n }\n throw error(\"Value\");\n}\n\nfunction arguments_(e) {\n if (40 === i.charCodeAt(n)) {\n var r = [];\n n++;\n ignored();\n var a;\n do {\n if (null == (a = advance(t))) {\n throw error(\"Argument\");\n }\n ignored();\n if (58 !== i.charCodeAt(n++)) {\n throw error(\"Argument\");\n }\n ignored();\n r.push({\n kind: \"Argument\",\n name: {\n kind: \"Name\",\n value: a\n },\n value: value(e)\n });\n } while (41 !== i.charCodeAt(n));\n n++;\n ignored();\n return r;\n }\n}\n\nfunction directives(e) {\n if (64 === i.charCodeAt(n)) {\n var r = [];\n var a;\n do {\n n++;\n if (null == (a = advance(t))) {\n throw error(\"Directive\");\n }\n ignored();\n r.push({\n kind: \"Directive\",\n name: {\n kind: \"Name\",\n value: a\n },\n arguments: arguments_(e)\n });\n } while (64 === i.charCodeAt(n));\n return r;\n }\n}\n\nfunction type() {\n var e;\n var r = 0;\n while (91 === i.charCodeAt(n)) {\n r++;\n n++;\n ignored();\n }\n if (null == (e = advance(t))) {\n throw error(\"NamedType\");\n }\n ignored();\n var a = {\n kind: \"NamedType\",\n name: {\n kind: \"Name\",\n value: e\n }\n };\n do {\n if (33 === i.charCodeAt(n)) {\n n++;\n ignored();\n a = {\n kind: \"NonNullType\",\n type: a\n };\n }\n if (r) {\n if (93 !== i.charCodeAt(n++)) {\n throw error(\"NamedType\");\n }\n ignored();\n a = {\n kind: \"ListType\",\n type: a\n };\n }\n } while (r--);\n return a;\n}\n\nvar d = new RegExp(\"(?:(\\\\.{3})|(\" + t.source + \"))\", \"y\");\n\nvar v = function(e) {\n e[e.Spread = 1] = \"Spread\";\n e[e.Name = 2] = \"Name\";\n return e;\n}(v || {});\n\nfunction selectionSet() {\n var e = [];\n var r;\n var a;\n do {\n d.lastIndex = n;\n if (null != (a = d.exec(i))) {\n n = d.lastIndex;\n if (null != a[v.Spread]) {\n ignored();\n var l = advance(t);\n if (null != l && \"on\" !== l) {\n ignored();\n e.push({\n kind: \"FragmentSpread\",\n name: {\n kind: \"Name\",\n value: l\n },\n directives: directives(!1)\n });\n } else {\n ignored();\n if (\"on\" === l) {\n if (null == (l = advance(t))) {\n throw error(\"NamedType\");\n }\n ignored();\n }\n var o = directives(!1);\n if (123 !== i.charCodeAt(n++)) {\n throw error(\"InlineFragment\");\n }\n ignored();\n e.push({\n kind: \"InlineFragment\",\n typeCondition: l ? {\n kind: \"NamedType\",\n name: {\n kind: \"Name\",\n value: l\n }\n } : void 0,\n directives: o,\n selectionSet: selectionSet()\n });\n }\n } else if (null != (r = a[v.Name])) {\n var u = void 0;\n ignored();\n if (58 === i.charCodeAt(n)) {\n n++;\n ignored();\n u = r;\n if (null == (r = advance(t))) {\n throw error(\"Field\");\n }\n ignored();\n }\n var s = arguments_(!1);\n ignored();\n var c = directives(!1);\n var f = void 0;\n if (123 === i.charCodeAt(n)) {\n n++;\n ignored();\n f = selectionSet();\n }\n e.push({\n kind: \"Field\",\n alias: u ? {\n kind: \"Name\",\n value: u\n } : void 0,\n name: {\n kind: \"Name\",\n value: r\n },\n arguments: s,\n directives: c,\n selectionSet: f\n });\n }\n } else {\n throw error(\"SelectionSet\");\n }\n } while (125 !== i.charCodeAt(n));\n n++;\n ignored();\n return {\n kind: \"SelectionSet\",\n selections: e\n };\n}\n\nfunction fragmentDefinition() {\n var e;\n var r;\n if (null == (e = advance(t))) {\n throw error(\"FragmentDefinition\");\n }\n ignored();\n if (\"on\" !== advance(t)) {\n throw error(\"FragmentDefinition\");\n }\n ignored();\n if (null == (r = advance(t))) {\n throw error(\"FragmentDefinition\");\n }\n ignored();\n var a = directives(!1);\n if (123 !== i.charCodeAt(n++)) {\n throw error(\"FragmentDefinition\");\n }\n ignored();\n return {\n kind: \"FragmentDefinition\",\n name: {\n kind: \"Name\",\n value: e\n },\n typeCondition: {\n kind: \"NamedType\",\n name: {\n kind: \"Name\",\n value: r\n }\n },\n directives: a,\n selectionSet: selectionSet()\n };\n}\n\nvar s = /(?:query|mutation|subscription|fragment)/y;\n\nfunction operationDefinition(e) {\n var r;\n var a;\n var l;\n if (e) {\n ignored();\n r = advance(t);\n a = function variableDefinitions() {\n ignored();\n if (40 === i.charCodeAt(n)) {\n var e = [];\n n++;\n ignored();\n var r;\n do {\n if (36 !== i.charCodeAt(n++)) {\n throw error(\"Variable\");\n }\n if (null == (r = advance(t))) {\n throw error(\"Variable\");\n }\n ignored();\n if (58 !== i.charCodeAt(n++)) {\n throw error(\"VariableDefinition\");\n }\n ignored();\n var a = type();\n var l = void 0;\n if (61 === i.charCodeAt(n)) {\n n++;\n ignored();\n l = value(!0);\n }\n ignored();\n e.push({\n kind: \"VariableDefinition\",\n variable: {\n kind: \"Variable\",\n name: {\n kind: \"Name\",\n value: r\n }\n },\n type: a,\n defaultValue: l,\n directives: directives(!0)\n });\n } while (41 !== i.charCodeAt(n));\n n++;\n ignored();\n return e;\n }\n }();\n l = directives(!1);\n }\n if (123 === i.charCodeAt(n)) {\n n++;\n ignored();\n return {\n kind: \"OperationDefinition\",\n operation: e || \"query\",\n name: r ? {\n kind: \"Name\",\n value: r\n } : void 0,\n variableDefinitions: a,\n directives: l,\n selectionSet: selectionSet()\n };\n }\n}\n\nfunction parse(e, r) {\n i = \"string\" == typeof e.body ? e.body : e;\n n = 0;\n return function document() {\n var e;\n var r;\n ignored();\n var a = [];\n do {\n if (\"fragment\" === (e = advance(s))) {\n ignored();\n a.push(fragmentDefinition());\n } else if (null != (r = operationDefinition(e))) {\n a.push(r);\n } else {\n throw error(\"Document\");\n }\n } while (n < i.length);\n return {\n kind: \"Document\",\n definitions: a\n };\n }();\n}\n\nfunction parseValue(e, r) {\n i = \"string\" == typeof e.body ? e.body : e;\n n = 0;\n ignored();\n return value(!1);\n}\n\nfunction parseType(e, r) {\n i = \"string\" == typeof e.body ? e.body : e;\n n = 0;\n return type();\n}\n\nvar c = {};\n\nfunction visit(e, r) {\n var i = [];\n var n = [];\n try {\n var a = function traverse(e, a, t) {\n var l = !1;\n var o = r[e.kind] && r[e.kind].enter || r[e.kind] || r.enter;\n var u = o && o.call(r, e, a, t, n, i);\n if (!1 === u) {\n return e;\n } else if (null === u) {\n return null;\n } else if (u === c) {\n throw c;\n } else if (u && \"string\" == typeof u.kind) {\n l = u !== e;\n e = u;\n }\n if (t) {\n i.push(t);\n }\n var d;\n var v = {\n ...e\n };\n for (var s in e) {\n n.push(s);\n var f = e[s];\n if (Array.isArray(f)) {\n var m = [];\n for (var g = 0; g < f.length; g++) {\n if (null != f[g] && \"string\" == typeof f[g].kind) {\n i.push(e);\n n.push(g);\n d = traverse(f[g], g, f);\n n.pop();\n i.pop();\n if (null == d) {\n l = !0;\n } else {\n l = l || d !== f[g];\n m.push(d);\n }\n }\n }\n f = m;\n } else if (null != f && \"string\" == typeof f.kind) {\n if (void 0 !== (d = traverse(f, s, e))) {\n l = l || f !== d;\n f = d;\n }\n }\n n.pop();\n if (l) {\n v[s] = f;\n }\n }\n if (t) {\n i.pop();\n }\n var p = r[e.kind] && r[e.kind].leave || r.leave;\n var h = p && p.call(r, e, a, t, n, i);\n if (h === c) {\n throw c;\n } else if (void 0 !== h) {\n return h;\n } else if (void 0 !== u) {\n return l ? v : u;\n } else {\n return l ? v : e;\n }\n }(e);\n return void 0 !== a && !1 !== a ? a : e;\n } catch (r) {\n if (r !== c) {\n throw r;\n }\n return e;\n }\n}\n\nfunction mapJoin(e, r, i) {\n var n = \"\";\n for (var a = 0; a < e.length; a++) {\n if (a) {\n n += r;\n }\n n += i(e[a]);\n }\n return n;\n}\n\nfunction printString(e) {\n return JSON.stringify(e);\n}\n\nfunction printBlockString(e) {\n return '\"\"\"\\n' + e.replace(/\"\"\"/g, '\\\\\"\"\"') + '\\n\"\"\"';\n}\n\nvar f = \"\\n\";\n\nvar m = {\n OperationDefinition(e) {\n var r = e.operation;\n if (e.name) {\n r += \" \" + e.name.value;\n }\n if (e.variableDefinitions && e.variableDefinitions.length) {\n if (!e.name) {\n r += \" \";\n }\n r += \"(\" + mapJoin(e.variableDefinitions, \", \", m.VariableDefinition) + \")\";\n }\n if (e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", m.Directive);\n }\n return \"query\" !== r ? r + \" \" + m.SelectionSet(e.selectionSet) : m.SelectionSet(e.selectionSet);\n },\n VariableDefinition(e) {\n var r = m.Variable(e.variable) + \": \" + _print(e.type);\n if (e.defaultValue) {\n r += \" = \" + _print(e.defaultValue);\n }\n if (e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", m.Directive);\n }\n return r;\n },\n Field(e) {\n var r = e.alias ? e.alias.value + \": \" + e.name.value : e.name.value;\n if (e.arguments && e.arguments.length) {\n var i = mapJoin(e.arguments, \", \", m.Argument);\n if (r.length + i.length + 2 > 80) {\n r += \"(\" + (f += \" \") + mapJoin(e.arguments, f, m.Argument) + (f = f.slice(0, -2)) + \")\";\n } else {\n r += \"(\" + i + \")\";\n }\n }\n if (e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", m.Directive);\n }\n if (e.selectionSet) {\n r += \" \" + m.SelectionSet(e.selectionSet);\n }\n return r;\n },\n StringValue(e) {\n if (e.block) {\n return printBlockString(e.value).replace(/\\n/g, f);\n } else {\n return printString(e.value);\n }\n },\n BooleanValue: e => \"\" + e.value,\n NullValue: e => \"null\",\n IntValue: e => e.value,\n FloatValue: e => e.value,\n EnumValue: e => e.value,\n Name: e => e.value,\n Variable: e => \"$\" + e.name.value,\n ListValue: e => \"[\" + mapJoin(e.values, \", \", _print) + \"]\",\n ObjectValue: e => \"{\" + mapJoin(e.fields, \", \", m.ObjectField) + \"}\",\n ObjectField: e => e.name.value + \": \" + _print(e.value),\n Document(e) {\n if (!e.definitions || !e.definitions.length) {\n return \"\";\n }\n return mapJoin(e.definitions, \"\\n\\n\", _print);\n },\n SelectionSet: e => \"{\" + (f += \" \") + mapJoin(e.selections, f, _print) + (f = f.slice(0, -2)) + \"}\",\n Argument: e => e.name.value + \": \" + _print(e.value),\n FragmentSpread(e) {\n var r = \"...\" + e.name.value;\n if (e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", m.Directive);\n }\n return r;\n },\n InlineFragment(e) {\n var r = \"...\";\n if (e.typeCondition) {\n r += \" on \" + e.typeCondition.name.value;\n }\n if (e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", m.Directive);\n }\n return r += \" \" + m.SelectionSet(e.selectionSet);\n },\n FragmentDefinition(e) {\n var r = \"fragment \" + e.name.value;\n r += \" on \" + e.typeCondition.name.value;\n if (e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", m.Directive);\n }\n return r + \" \" + m.SelectionSet(e.selectionSet);\n },\n Directive(e) {\n var r = \"@\" + e.name.value;\n if (e.arguments && e.arguments.length) {\n r += \"(\" + mapJoin(e.arguments, \", \", m.Argument) + \")\";\n }\n return r;\n },\n NamedType: e => e.name.value,\n ListType: e => \"[\" + _print(e.type) + \"]\",\n NonNullType: e => _print(e.type) + \"!\"\n};\n\nvar _print = e => m[e.kind](e);\n\nfunction print(e) {\n f = \"\\n\";\n return m[e.kind] ? m[e.kind](e) : \"\";\n}\n\nfunction valueFromASTUntyped(e, r) {\n switch (e.kind) {\n case \"NullValue\":\n return null;\n\n case \"IntValue\":\n return parseInt(e.value, 10);\n\n case \"FloatValue\":\n return parseFloat(e.value);\n\n case \"StringValue\":\n case \"EnumValue\":\n case \"BooleanValue\":\n return e.value;\n\n case \"ListValue\":\n var i = [];\n for (var n of e.values) {\n i.push(valueFromASTUntyped(n, r));\n }\n return i;\n\n case \"ObjectValue\":\n var a = Object.create(null);\n for (var t of e.fields) {\n a[t.name.value] = valueFromASTUntyped(t.value, r);\n }\n return a;\n\n case \"Variable\":\n return r && r[e.name.value];\n }\n}\n\nfunction valueFromTypeNode(e, r, i) {\n if (\"Variable\" === e.kind) {\n return i ? valueFromTypeNode(i[e.name.value], r, i) : void 0;\n } else if (\"NonNullType\" === r.kind) {\n return \"NullValue\" !== e.kind ? valueFromTypeNode(e, r, i) : void 0;\n } else if (\"NullValue\" === e.kind) {\n return null;\n } else if (\"ListType\" === r.kind) {\n if (\"ListValue\" === e.kind) {\n var n = [];\n for (var a of e.values) {\n var t = valueFromTypeNode(a, r.type, i);\n if (void 0 === t) {\n return;\n } else {\n n.push(t);\n }\n }\n return n;\n }\n } else if (\"NamedType\" === r.kind) {\n switch (r.name.value) {\n case \"Int\":\n case \"Float\":\n case \"String\":\n case \"Bool\":\n return r.name.value + \"Value\" === e.kind ? valueFromASTUntyped(e, i) : void 0;\n\n default:\n return valueFromASTUntyped(e, i);\n }\n }\n}\n\nexport { c as BREAK, GraphQLError, e as Kind, r as OperationTypeNode, parse, parseType, parseValue, print, printBlockString, printString, valueFromASTUntyped, valueFromTypeNode, visit };\n//# sourceMappingURL=graphql.web.mjs.map\n","import ts from 'typescript';\nimport { Kind, parse, print } from '@0no-co/graphql.web';\n\nimport type { FragmentDefinitionNode } from '@0no-co/graphql.web';\nimport type { GraphQLSPConfig } from '@gql.tada/internal';\nimport { getSchemaNamesFromConfig } from '@gql.tada/internal';\n\nimport {\n findAllPersistedCallExpressions,\n getDocumentReferenceFromTypeQuery,\n getDocumentReferenceFromDocumentNode,\n unrollTadaFragments,\n} from '@0no-co/graphqlsp/api';\n\nimport { programFactory } from '../../ts';\nimport { expose } from '../../threads';\n\nimport type { PersistedSignal, PersistedWarning, PersistedDocument } from './types';\n\nexport interface PersistedParams {\n disableNormalization: boolean;\n rootPath: string;\n configPath: string;\n pluginConfig: GraphQLSPConfig;\n}\n\nasync function* _runPersisted(params: PersistedParams): AsyncIterableIterator<PersistedSignal> {\n const schemaNames = getSchemaNamesFromConfig(params.pluginConfig);\n const factory = programFactory(params);\n\n const externalFiles = factory.createExternalFiles();\n if (externalFiles.length) {\n yield { kind: 'EXTERNAL_WARNING' };\n await factory.addVirtualFiles(externalFiles);\n }\n\n const container = factory.build();\n const pluginInfo = container.buildPluginInfo(params.pluginConfig);\n const sourceFiles = container.getSourceFiles();\n\n yield {\n kind: 'FILE_COUNT',\n fileCount: sourceFiles.length,\n };\n\n for (const sourceFile of sourceFiles) {\n let filePath = sourceFile.fileName;\n const documents: PersistedDocument[] = [];\n const warnings: PersistedWarning[] = [];\n\n const calls = findAllPersistedCallExpressions(sourceFile, pluginInfo);\n for (const call of calls) {\n const position = container.getSourcePosition(sourceFile, call.node.getStart());\n filePath = position.fileName;\n\n if (!schemaNames.has(call.schema)) {\n warnings.push({\n message: call.schema\n ? `The '${call.schema}' schema is not in the configuration but was referenced by \"graphql.persisted\".`\n : schemaNames.size > 1\n ? 'The document is not for a known schema. Have you re-generated the output file?'\n : 'Multiple schemas are configured, but the document is not for a specific schema.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n }\n\n const hashArg = call.node.arguments[0];\n const docArg = call.node.arguments[1];\n const typeQuery = call.node.typeArguments && call.node.typeArguments[0];\n if (!hashArg || !ts.isStringLiteral(hashArg)) {\n warnings.push({\n message:\n '\"graphql.persisted\" must be called with a string literal as the first argument.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n } else if (!docArg && !typeQuery) {\n warnings.push({\n message:\n '\"graphql.persisted\" is missing a document.\\n' +\n 'This may be passed as a generic such as `graphql.persisted<typeof document>` or as the second argument.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n }\n\n let foundNode: ts.CallExpression | null = null;\n let referencingNode: ts.Node = call.node;\n if (docArg && (ts.isCallExpression(docArg) || ts.isIdentifier(docArg))) {\n const result = getDocumentReferenceFromDocumentNode(\n docArg,\n sourceFile.fileName,\n pluginInfo\n );\n foundNode = result.node;\n referencingNode = docArg;\n } else if (typeQuery && ts.isTypeQueryNode(typeQuery)) {\n const result = getDocumentReferenceFromTypeQuery(\n typeQuery,\n sourceFile.fileName,\n pluginInfo\n );\n foundNode = result.node;\n referencingNode = typeQuery;\n }\n\n if (!foundNode) {\n warnings.push({\n message:\n `Could not find reference for \"${referencingNode.getText()}\".\\n` +\n 'If this is unexpected, please file an issue describing your case.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n }\n\n if (\n !foundNode ||\n !ts.isCallExpression(foundNode) ||\n (!ts.isNoSubstitutionTemplateLiteral(foundNode.arguments[0]) &&\n !ts.isStringLiteral(foundNode.arguments[0]))\n ) {\n warnings.push({\n message:\n `The referenced document of \"${referencingNode.getText()}\" contains no document string literal.\\n` +\n 'If this is unexpected, please file an issue describing your case.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n }\n\n const fragmentDefs: FragmentDefinitionNode[] = [];\n const operation = foundNode.arguments[0].getText().slice(1, -1);\n if (foundNode.arguments[1] && ts.isArrayLiteralExpression(foundNode.arguments[1])) {\n unrollTadaFragments(\n foundNode.arguments[1],\n fragmentDefs,\n container.buildPluginInfo(params.pluginConfig)\n );\n }\n\n const seen = new Set<string>();\n let document: string;\n if (params.disableNormalization) {\n document = operation;\n } else {\n try {\n const parsed = parse(operation);\n const seen = new Set<unknown>();\n for (const definition of parsed.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION && !seen.has(definition)) {\n stripUnmaskDirectivesFromDefinition(definition);\n }\n }\n document = print(parsed);\n } catch (_error) {\n warnings.push({\n message:\n `The referenced document of \"${referencingNode.getText()}\" could not be parsed.\\n` +\n 'Run `check` to see specific validation errors.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n }\n }\n\n // NOTE: Update graphqlsp not to pre-parse fragments, which also swallows errors\n for (const fragmentDef of fragmentDefs) {\n stripUnmaskDirectivesFromDefinition(fragmentDef);\n const printedFragmentDef = print(fragmentDef);\n if (!seen.has(printedFragmentDef)) {\n document += '\\n\\n' + print(fragmentDef);\n seen.add(printedFragmentDef);\n }\n }\n\n documents.push({\n schemaName: call.schema,\n hashKey: hashArg.getText().slice(1, -1),\n document,\n });\n }\n\n yield {\n kind: 'FILE_PERSISTED',\n filePath,\n documents,\n warnings,\n };\n }\n}\n\nexport const runPersisted = expose(_runPersisted);\ntype writable<T> = { -readonly [K in keyof T]: T[K] };\n\nconst stripUnmaskDirectivesFromDefinition = (definition: FragmentDefinitionNode) => {\n (definition as writable<FragmentDefinitionNode>).directives = definition.directives?.filter(\n (directive) => directive.name.value !== '_unmask'\n );\n};\n"],"names":["e","runPersisted","expose","async","_runPersisted","params","schemaNames","getSchemaNamesFromConfig","pluginConfig","factory","programFactory","externalFiles","createExternalFiles","length","kind","addVirtualFiles","container","build","pluginInfo","buildPluginInfo","sourceFiles","getSourceFiles","fileCount","sourceFile","filePath","fileName","documents","warnings","calls","findAllPersistedCallExpressions","call","position","getSourcePosition","node","getStart","has","schema","push","message","size","file","line","col","hashArg","arguments","docArg","typeQuery","typeArguments","ts","isStringLiteral","foundNode","referencingNode","isCallExpression","isIdentifier","getDocumentReferenceFromDocumentNode","isTypeQueryNode","getDocumentReferenceFromTypeQuery","getText","isNoSubstitutionTemplateLiteral","fragmentDefs","operation","slice","isArrayLiteralExpression","unrollTadaFragments","seen","Set","document","disableNormalization","parsed","parse","definition","definitions","Kind","stripUnmaskDirectivesFromDefinition","print","_error","fragmentDef","printedFragmentDef","add","schemaName","hashKey","directives","filter","directive","name","value"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"thread-chunk.mjs","sources":["../../../../node_modules/.pnpm/@0no-co+graphql.web@1.3.2_graphql@16.9.0/node_modules/@0no-co/graphql.web/dist/graphql.web.mjs","../../src/commands/generate-persisted/thread.ts"],"sourcesContent":["var e = {\n NAME: \"Name\",\n DOCUMENT: \"Document\",\n OPERATION_DEFINITION: \"OperationDefinition\",\n VARIABLE_DEFINITION: \"VariableDefinition\",\n SELECTION_SET: \"SelectionSet\",\n FIELD: \"Field\",\n ARGUMENT: \"Argument\",\n FRAGMENT_SPREAD: \"FragmentSpread\",\n INLINE_FRAGMENT: \"InlineFragment\",\n FRAGMENT_DEFINITION: \"FragmentDefinition\",\n VARIABLE: \"Variable\",\n INT: \"IntValue\",\n FLOAT: \"FloatValue\",\n STRING: \"StringValue\",\n BOOLEAN: \"BooleanValue\",\n NULL: \"NullValue\",\n ENUM: \"EnumValue\",\n LIST: \"ListValue\",\n OBJECT: \"ObjectValue\",\n OBJECT_FIELD: \"ObjectField\",\n DIRECTIVE: \"Directive\",\n NAMED_TYPE: \"NamedType\",\n LIST_TYPE: \"ListType\",\n NON_NULL_TYPE: \"NonNullType\"\n};\n\nvar r = {\n QUERY: \"query\",\n MUTATION: \"mutation\",\n SUBSCRIPTION: \"subscription\"\n};\n\nclass GraphQLError extends Error {\n constructor(e, r, i, n, t, a, o) {\n if (super(e), this.name = \"GraphQLError\", this.message = e, t) {\n this.path = t;\n }\n if (r) {\n this.nodes = Array.isArray(r) ? r : [ r ];\n }\n if (i) {\n this.source = i;\n }\n if (n) {\n this.positions = n;\n }\n if (a) {\n this.originalError = a;\n }\n var l = o;\n if (!l && a) {\n var d = a.extensions;\n if (d && \"object\" == typeof d) {\n l = d;\n }\n }\n this.extensions = l || {};\n }\n toJSON() {\n return {\n ...this,\n message: this.message\n };\n }\n toString() {\n return this.message;\n }\n get [Symbol.toStringTag]() {\n return \"GraphQLError\";\n }\n}\n\nvar i;\n\nvar n;\n\nfunction error(e) {\n return new GraphQLError(`Syntax Error: Unexpected token at ${n} in ${e}`);\n}\n\nfunction advance(e) {\n if (e.lastIndex = n, e.test(i)) {\n return i.slice(n, n = e.lastIndex);\n }\n}\n\nvar t = / +(?=[^\\s])/y;\n\nfunction blockString(e) {\n var r = e.split(\"\\n\");\n var i = \"\";\n var n = 0;\n var a = 0;\n var o = r.length - 1;\n for (var l = 0; l < r.length; l++) {\n if (t.lastIndex = 0, t.test(r[l])) {\n if (l && (!n || t.lastIndex < n)) {\n n = t.lastIndex;\n }\n a = a || l, o = l;\n }\n }\n for (var d = a; d <= o; d++) {\n if (d !== a) {\n i += \"\\n\";\n }\n i += r[d].slice(n).replace(/\\\\\"\"\"/g, '\"\"\"');\n }\n return i;\n}\n\nfunction ignored() {\n for (var e = 0 | i.charCodeAt(n++); 9 === e || 10 === e || 13 === e || 32 === e || 35 === e || 44 === e || 65279 === e; e = 0 | i.charCodeAt(n++)) {\n if (35 === e) {\n for (;(e = 0 | i.charCodeAt(n++)) && 10 !== e && 13 !== e; ) {}\n }\n }\n n--;\n}\n\nfunction name() {\n var e = n;\n for (var r = 0 | i.charCodeAt(n++); r >= 48 && r <= 57 || r >= 65 && r <= 90 || 95 === r || r >= 97 && r <= 122; r = 0 | i.charCodeAt(n++)) {}\n if (e === n - 1) {\n throw error(\"Name\");\n }\n var t = i.slice(e, --n);\n return ignored(), t;\n}\n\nfunction nameNode() {\n return {\n kind: \"Name\",\n value: name()\n };\n}\n\nvar a = /(?:\"\"\"|(?:[\\s\\S]*?[^\\\\])\"\"\")/y;\n\nvar o = /(?:(?:\\.\\d+)?[eE][+-]?\\d+|\\.\\d+)/y;\n\nfunction value(e) {\n var r;\n switch (i.charCodeAt(n)) {\n case 91:\n n++, ignored();\n var t = [];\n for (;93 !== i.charCodeAt(n); ) {\n t.push(value(e));\n }\n return n++, ignored(), {\n kind: \"ListValue\",\n values: t\n };\n\n case 123:\n n++, ignored();\n var l = [];\n for (;125 !== i.charCodeAt(n); ) {\n var d = nameNode();\n if (58 !== i.charCodeAt(n++)) {\n throw error(\"ObjectField\");\n }\n ignored(), l.push({\n kind: \"ObjectField\",\n name: d,\n value: value(e)\n });\n }\n return n++, ignored(), {\n kind: \"ObjectValue\",\n fields: l\n };\n\n case 36:\n if (e) {\n throw error(\"Variable\");\n }\n return n++, {\n kind: \"Variable\",\n name: nameNode()\n };\n\n case 34:\n if (34 === i.charCodeAt(n + 1) && 34 === i.charCodeAt(n + 2)) {\n if (n += 3, null == (r = advance(a))) {\n throw error(\"StringValue\");\n }\n return ignored(), {\n kind: \"StringValue\",\n value: blockString(r.slice(0, -3)),\n block: !0\n };\n } else {\n var u = n;\n var s;\n n++;\n var c = !1;\n for (s = 0 | i.charCodeAt(n++); 92 === s && (n++, c = !0) || 10 !== s && 13 !== s && 34 !== s && s; s = 0 | i.charCodeAt(n++)) {}\n if (34 !== s) {\n throw error(\"StringValue\");\n }\n return r = i.slice(u, n), ignored(), {\n kind: \"StringValue\",\n value: c ? JSON.parse(r) : r.slice(1, -1),\n block: !1\n };\n }\n\n case 45:\n case 48:\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57:\n var v = n++;\n var f;\n for (;(f = 0 | i.charCodeAt(n++)) >= 48 && f <= 57; ) {}\n var m = i.slice(v, --n);\n if (46 === (f = i.charCodeAt(n)) || 69 === f || 101 === f) {\n if (null == (r = advance(o))) {\n throw error(\"FloatValue\");\n }\n return ignored(), {\n kind: \"FloatValue\",\n value: m + r\n };\n } else {\n return ignored(), {\n kind: \"IntValue\",\n value: m\n };\n }\n\n case 110:\n if (117 === i.charCodeAt(n + 1) && 108 === i.charCodeAt(n + 2) && 108 === i.charCodeAt(n + 3)) {\n return n += 4, ignored(), {\n kind: \"NullValue\"\n };\n } else {\n break;\n }\n\n case 116:\n if (114 === i.charCodeAt(n + 1) && 117 === i.charCodeAt(n + 2) && 101 === i.charCodeAt(n + 3)) {\n return n += 4, ignored(), {\n kind: \"BooleanValue\",\n value: !0\n };\n } else {\n break;\n }\n\n case 102:\n if (97 === i.charCodeAt(n + 1) && 108 === i.charCodeAt(n + 2) && 115 === i.charCodeAt(n + 3) && 101 === i.charCodeAt(n + 4)) {\n return n += 5, ignored(), {\n kind: \"BooleanValue\",\n value: !1\n };\n } else {\n break;\n }\n }\n return {\n kind: \"EnumValue\",\n value: name()\n };\n}\n\nfunction arguments_(e) {\n if (40 === i.charCodeAt(n)) {\n var r = [];\n n++, ignored();\n do {\n var t = nameNode();\n if (58 !== i.charCodeAt(n++)) {\n throw error(\"Argument\");\n }\n ignored(), r.push({\n kind: \"Argument\",\n name: t,\n value: value(e)\n });\n } while (41 !== i.charCodeAt(n));\n return n++, ignored(), r;\n }\n}\n\nfunction directives(e) {\n if (64 === i.charCodeAt(n)) {\n var r = [];\n do {\n n++, r.push({\n kind: \"Directive\",\n name: nameNode(),\n arguments: arguments_(e)\n });\n } while (64 === i.charCodeAt(n));\n return r;\n }\n}\n\nfunction type() {\n var e = 0;\n for (;91 === i.charCodeAt(n); ) {\n e++, n++, ignored();\n }\n var r = {\n kind: \"NamedType\",\n name: nameNode()\n };\n do {\n if (33 === i.charCodeAt(n)) {\n n++, ignored(), r = {\n kind: \"NonNullType\",\n type: r\n };\n }\n if (e) {\n if (93 !== i.charCodeAt(n++)) {\n throw error(\"NamedType\");\n }\n ignored(), r = {\n kind: \"ListType\",\n type: r\n };\n }\n } while (e--);\n return r;\n}\n\nfunction selectionSetStart() {\n if (123 !== i.charCodeAt(n++)) {\n throw error(\"SelectionSet\");\n }\n return ignored(), selectionSet();\n}\n\nfunction selectionSet() {\n var e = [];\n do {\n if (46 === i.charCodeAt(n)) {\n if (46 !== i.charCodeAt(++n) || 46 !== i.charCodeAt(++n)) {\n throw error(\"SelectionSet\");\n }\n switch (n++, ignored(), i.charCodeAt(n)) {\n case 64:\n e.push({\n kind: \"InlineFragment\",\n typeCondition: void 0,\n directives: directives(!1),\n selectionSet: selectionSetStart()\n });\n break;\n\n case 111:\n if (110 === i.charCodeAt(n + 1)) {\n n += 2, ignored(), e.push({\n kind: \"InlineFragment\",\n typeCondition: {\n kind: \"NamedType\",\n name: nameNode()\n },\n directives: directives(!1),\n selectionSet: selectionSetStart()\n });\n } else {\n e.push({\n kind: \"FragmentSpread\",\n name: nameNode(),\n directives: directives(!1)\n });\n }\n break;\n\n case 123:\n n++, ignored(), e.push({\n kind: \"InlineFragment\",\n typeCondition: void 0,\n directives: void 0,\n selectionSet: selectionSet()\n });\n break;\n\n default:\n e.push({\n kind: \"FragmentSpread\",\n name: nameNode(),\n directives: directives(!1)\n });\n }\n } else {\n var r = nameNode();\n var t = void 0;\n if (58 === i.charCodeAt(n)) {\n n++, ignored(), t = r, r = nameNode();\n }\n var a = arguments_(!1);\n var o = directives(!1);\n var l = void 0;\n if (123 === i.charCodeAt(n)) {\n n++, ignored(), l = selectionSet();\n }\n e.push({\n kind: \"Field\",\n alias: t,\n name: r,\n arguments: a,\n directives: o,\n selectionSet: l\n });\n }\n } while (125 !== i.charCodeAt(n));\n return n++, ignored(), {\n kind: \"SelectionSet\",\n selections: e\n };\n}\n\nfunction variableDefinitions() {\n if (ignored(), 40 === i.charCodeAt(n)) {\n var e = [];\n n++, ignored();\n do {\n var r = void 0;\n if (34 === i.charCodeAt(n)) {\n r = value(!0);\n }\n if (36 !== i.charCodeAt(n++)) {\n throw error(\"Variable\");\n }\n var t = nameNode();\n if (58 !== i.charCodeAt(n++)) {\n throw error(\"VariableDefinition\");\n }\n ignored();\n var a = type();\n var o = void 0;\n if (61 === i.charCodeAt(n)) {\n n++, ignored(), o = value(!0);\n }\n ignored();\n var l = {\n kind: \"VariableDefinition\",\n variable: {\n kind: \"Variable\",\n name: t\n },\n type: a,\n defaultValue: o,\n directives: directives(!0)\n };\n if (r) {\n l.description = r;\n }\n e.push(l);\n } while (41 !== i.charCodeAt(n));\n return n++, ignored(), e;\n }\n}\n\nfunction fragmentDefinition(e) {\n var r = nameNode();\n if (111 !== i.charCodeAt(n++) || 110 !== i.charCodeAt(n++)) {\n throw error(\"FragmentDefinition\");\n }\n ignored();\n var t = {\n kind: \"FragmentDefinition\",\n name: r,\n typeCondition: {\n kind: \"NamedType\",\n name: nameNode()\n },\n directives: directives(!1),\n selectionSet: selectionSetStart()\n };\n if (e) {\n t.description = e;\n }\n return t;\n}\n\nfunction definitions() {\n var e = [];\n do {\n var r = void 0;\n if (34 === i.charCodeAt(n)) {\n r = value(!0);\n }\n if (123 === i.charCodeAt(n)) {\n if (r) {\n throw error(\"Document\");\n }\n n++, ignored(), e.push({\n kind: \"OperationDefinition\",\n operation: \"query\",\n name: void 0,\n variableDefinitions: void 0,\n directives: void 0,\n selectionSet: selectionSet()\n });\n } else {\n var t = name();\n switch (t) {\n case \"fragment\":\n e.push(fragmentDefinition(r));\n break;\n\n case \"query\":\n case \"mutation\":\n case \"subscription\":\n var a;\n var o = void 0;\n if (40 !== (a = i.charCodeAt(n)) && 64 !== a && 123 !== a) {\n o = nameNode();\n }\n var l = {\n kind: \"OperationDefinition\",\n operation: t,\n name: o,\n variableDefinitions: variableDefinitions(),\n directives: directives(!1),\n selectionSet: selectionSetStart()\n };\n if (r) {\n l.description = r;\n }\n e.push(l);\n break;\n\n default:\n throw error(\"Document\");\n }\n }\n } while (n < i.length);\n return e;\n}\n\nfunction parse(e, r) {\n if (i = e.body ? e.body : e, n = 0, ignored(), r && r.noLocation) {\n return {\n kind: \"Document\",\n definitions: definitions()\n };\n } else {\n return {\n kind: \"Document\",\n definitions: definitions(),\n loc: {\n start: 0,\n end: i.length,\n startToken: void 0,\n endToken: void 0,\n source: {\n body: i,\n name: \"graphql.web\",\n locationOffset: {\n line: 1,\n column: 1\n }\n }\n }\n };\n }\n}\n\nfunction parseValue(e, r) {\n return i = e.body ? e.body : e, n = 0, ignored(), value(!1);\n}\n\nfunction parseType(e, r) {\n return i = e.body ? e.body : e, n = 0, type();\n}\n\nvar l = {};\n\nfunction visit(e, r) {\n var i = [];\n var n = [];\n try {\n var t = function traverse(e, t, a) {\n var o = !1;\n var d = r[e.kind] && r[e.kind].enter || r[e.kind] || r.enter;\n var u = d && d.call(r, e, t, a, n, i);\n if (!1 === u) {\n return e;\n } else if (null === u) {\n return null;\n } else if (u === l) {\n throw l;\n } else if (u && \"string\" == typeof u.kind) {\n o = u !== e, e = u;\n }\n if (a) {\n i.push(a);\n }\n var s;\n var c = {\n ...e\n };\n for (var v in e) {\n n.push(v);\n var f = e[v];\n if (Array.isArray(f)) {\n var m = [];\n for (var p = 0; p < f.length; p++) {\n if (null != f[p] && \"string\" == typeof f[p].kind) {\n if (i.push(e), n.push(p), s = traverse(f[p], p, f), n.pop(), i.pop(), null == s) {\n o = !0;\n } else {\n o = o || s !== f[p], m.push(s);\n }\n }\n }\n f = m;\n } else if (null != f && \"string\" == typeof f.kind) {\n if (void 0 !== (s = traverse(f, v, e))) {\n o = o || f !== s, f = s;\n }\n }\n if (n.pop(), o) {\n c[v] = f;\n }\n }\n if (a) {\n i.pop();\n }\n var h = r[e.kind] && r[e.kind].leave || r.leave;\n var g = h && h.call(r, e, t, a, n, i);\n if (g === l) {\n throw l;\n } else if (void 0 !== g) {\n return g;\n } else if (void 0 !== u) {\n return o ? c : u;\n } else {\n return o ? c : e;\n }\n }(e);\n return void 0 !== t && !1 !== t ? t : e;\n } catch (r) {\n if (r !== l) {\n throw r;\n }\n return e;\n }\n}\n\nfunction mapJoin(e, r, i) {\n var n = \"\";\n for (var t = 0; t < e.length; t++) {\n if (t) {\n n += r;\n }\n n += i(e[t]);\n }\n return n;\n}\n\nfunction printString(e) {\n return JSON.stringify(e);\n}\n\nfunction printBlockString(e) {\n return '\"\"\"\\n' + e.replace(/\"\"\"/g, '\\\\\"\"\"') + '\\n\"\"\"';\n}\n\nvar d = \"\\n\";\n\nvar u = {\n OperationDefinition(e) {\n var r = \"\";\n if (e.description) {\n r += u.StringValue(e.description) + \"\\n\";\n }\n if (r += e.operation, e.name) {\n r += \" \" + e.name.value;\n }\n if (e.variableDefinitions && e.variableDefinitions.length) {\n if (!e.name) {\n r += \" \";\n }\n r += \"(\" + mapJoin(e.variableDefinitions, \", \", u.VariableDefinition) + \")\";\n }\n if (e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", u.Directive);\n }\n var i = u.SelectionSet(e.selectionSet);\n return \"query\" !== r ? r + \" \" + i : i;\n },\n VariableDefinition(e) {\n var r = \"\";\n if (e.description) {\n r += u.StringValue(e.description) + \" \";\n }\n if (r += u.Variable(e.variable) + \": \" + _print(e.type), e.defaultValue) {\n r += \" = \" + _print(e.defaultValue);\n }\n if (e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", u.Directive);\n }\n return r;\n },\n Field(e) {\n var r = e.alias ? e.alias.value + \": \" + e.name.value : e.name.value;\n if (e.arguments && e.arguments.length) {\n var i = mapJoin(e.arguments, \", \", u.Argument);\n if (r.length + i.length + 2 > 80) {\n r += \"(\" + (d += \" \") + mapJoin(e.arguments, d, u.Argument) + (d = d.slice(0, -2)) + \")\";\n } else {\n r += \"(\" + i + \")\";\n }\n }\n if (e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", u.Directive);\n }\n if (e.selectionSet && e.selectionSet.selections.length) {\n r += \" \" + u.SelectionSet(e.selectionSet);\n }\n return r;\n },\n StringValue(e) {\n if (e.block) {\n return printBlockString(e.value).replace(/\\n/g, d);\n } else {\n return printString(e.value);\n }\n },\n BooleanValue: e => \"\" + e.value,\n NullValue: e => \"null\",\n IntValue: e => e.value,\n FloatValue: e => e.value,\n EnumValue: e => e.value,\n Name: e => e.value,\n Variable: e => \"$\" + e.name.value,\n ListValue: e => \"[\" + mapJoin(e.values, \", \", _print) + \"]\",\n ObjectValue: e => \"{\" + mapJoin(e.fields, \", \", u.ObjectField) + \"}\",\n ObjectField: e => e.name.value + \": \" + _print(e.value),\n Document(e) {\n if (!e.definitions || !e.definitions.length) {\n return \"\";\n } else {\n return mapJoin(e.definitions, \"\\n\\n\", _print);\n }\n },\n SelectionSet: e => \"{\" + (d += \" \") + mapJoin(e.selections, d, _print) + (d = d.slice(0, -2)) + \"}\",\n Argument: e => e.name.value + \": \" + _print(e.value),\n FragmentSpread(e) {\n var r = \"...\" + e.name.value;\n if (e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", u.Directive);\n }\n return r;\n },\n InlineFragment(e) {\n var r = \"...\";\n if (e.typeCondition) {\n r += \" on \" + e.typeCondition.name.value;\n }\n if (e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", u.Directive);\n }\n return r += \" \" + u.SelectionSet(e.selectionSet);\n },\n FragmentDefinition(e) {\n var r = \"\";\n if (e.description) {\n r += u.StringValue(e.description) + \"\\n\";\n }\n if (r += \"fragment \" + e.name.value, r += \" on \" + e.typeCondition.name.value, e.directives && e.directives.length) {\n r += \" \" + mapJoin(e.directives, \" \", u.Directive);\n }\n return r + \" \" + u.SelectionSet(e.selectionSet);\n },\n Directive(e) {\n var r = \"@\" + e.name.value;\n if (e.arguments && e.arguments.length) {\n r += \"(\" + mapJoin(e.arguments, \", \", u.Argument) + \")\";\n }\n return r;\n },\n NamedType: e => e.name.value,\n ListType: e => \"[\" + _print(e.type) + \"]\",\n NonNullType: e => _print(e.type) + \"!\"\n};\n\nvar _print = e => u[e.kind](e);\n\nfunction print(e) {\n return d = \"\\n\", u[e.kind] ? u[e.kind](e) : \"\";\n}\n\nfunction valueFromASTUntyped(e, r) {\n switch (e.kind) {\n case \"NullValue\":\n return null;\n\n case \"IntValue\":\n return parseInt(e.value, 10);\n\n case \"FloatValue\":\n return parseFloat(e.value);\n\n case \"StringValue\":\n case \"EnumValue\":\n case \"BooleanValue\":\n return e.value;\n\n case \"ListValue\":\n var i = [];\n for (var n = 0, t = e.values.length; n < t; n++) {\n i.push(valueFromASTUntyped(e.values[n], r));\n }\n return i;\n\n case \"ObjectValue\":\n var a = Object.create(null);\n for (var o = 0, l = e.fields.length; o < l; o++) {\n var d = e.fields[o];\n a[d.name.value] = valueFromASTUntyped(d.value, r);\n }\n return a;\n\n case \"Variable\":\n return r && r[e.name.value];\n }\n}\n\nfunction valueFromTypeNode(e, r, i) {\n if (\"Variable\" === e.kind) {\n return i ? valueFromTypeNode(i[e.name.value], r, i) : void 0;\n } else if (\"NonNullType\" === r.kind) {\n return \"NullValue\" !== e.kind ? valueFromTypeNode(e, r, i) : void 0;\n } else if (\"NullValue\" === e.kind) {\n return null;\n } else if (\"ListType\" === r.kind) {\n if (\"ListValue\" === e.kind) {\n var n = [];\n for (var t = 0, a = e.values.length; t < a; t++) {\n var o = valueFromTypeNode(e.values[t], r.type, i);\n if (void 0 === o) {\n return;\n } else {\n n.push(o);\n }\n }\n return n;\n }\n } else if (\"NamedType\" === r.kind) {\n switch (r.name.value) {\n case \"Int\":\n case \"Float\":\n case \"String\":\n case \"Bool\":\n return r.name.value + \"Value\" === e.kind ? valueFromASTUntyped(e, i) : void 0;\n\n default:\n return valueFromASTUntyped(e, i);\n }\n }\n}\n\nfunction isSelectionNode(e) {\n return \"Field\" === e.kind || \"FragmentSpread\" === e.kind || \"InlineFragment\" === e.kind;\n}\n\nfunction Source(e, r, i) {\n return {\n body: e,\n name: r,\n locationOffset: i || {\n line: 1,\n column: 1\n }\n };\n}\n\nexport { l as BREAK, GraphQLError, e as Kind, r as OperationTypeNode, Source, isSelectionNode, parse, parseType, parseValue, print, printBlockString, printString, valueFromASTUntyped, valueFromTypeNode, visit };\n//# sourceMappingURL=graphql.web.mjs.map\n","import ts from 'typescript';\nimport { Kind, parse, print } from '@0no-co/graphql.web';\n\nimport type { FragmentDefinitionNode } from '@0no-co/graphql.web';\nimport type { GraphQLSPConfig } from '@gql.tada/internal';\nimport { getSchemaNamesFromConfig } from '@gql.tada/internal';\n\nimport {\n findAllPersistedCallExpressions,\n getDocumentReferenceFromTypeQuery,\n getDocumentReferenceFromDocumentNode,\n unrollTadaFragments,\n} from '@0no-co/graphqlsp/api';\n\nimport { programFactory } from '../../ts';\nimport { expose } from '../../threads';\n\nimport type { PersistedSignal, PersistedWarning, PersistedDocument } from './types';\n\nexport interface PersistedParams {\n disableNormalization: boolean;\n rootPath: string;\n tsconfigPath?: string;\n configPath: string;\n pluginConfig: GraphQLSPConfig;\n}\n\nasync function* _runPersisted(params: PersistedParams): AsyncIterableIterator<PersistedSignal> {\n const schemaNames = getSchemaNamesFromConfig(params.pluginConfig);\n const factory = programFactory(params);\n\n const externalFiles = factory.createExternalFiles();\n if (externalFiles.length) {\n yield { kind: 'EXTERNAL_WARNING' };\n await factory.addVirtualFiles(externalFiles);\n }\n\n const container = factory.build();\n const pluginInfo = container.buildPluginInfo(params.pluginConfig);\n const sourceFiles = container.getSourceFiles();\n\n yield {\n kind: 'FILE_COUNT',\n fileCount: sourceFiles.length,\n };\n\n for (const sourceFile of sourceFiles) {\n let filePath = sourceFile.fileName;\n const documents: PersistedDocument[] = [];\n const warnings: PersistedWarning[] = [];\n\n const calls = findAllPersistedCallExpressions(sourceFile, pluginInfo);\n for (const call of calls) {\n const position = container.getSourcePosition(sourceFile, call.node.getStart());\n filePath = position.fileName;\n\n if (!schemaNames.has(call.schema)) {\n warnings.push({\n message: call.schema\n ? `The '${call.schema}' schema is not in the configuration but was referenced by \"graphql.persisted\".`\n : schemaNames.size > 1\n ? 'The document is not for a known schema. Have you re-generated the output file?'\n : 'Multiple schemas are configured, but the document is not for a specific schema.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n }\n\n const hashArg = call.node.arguments[0];\n const docArg = call.node.arguments[1];\n const typeQuery = call.node.typeArguments && call.node.typeArguments[0];\n if (!hashArg || !ts.isStringLiteral(hashArg)) {\n warnings.push({\n message:\n '\"graphql.persisted\" must be called with a string literal as the first argument.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n } else if (!docArg && !typeQuery) {\n warnings.push({\n message:\n '\"graphql.persisted\" is missing a document.\\n' +\n 'This may be passed as a generic such as `graphql.persisted<typeof document>` or as the second argument.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n }\n\n let foundNode: ts.CallExpression | null = null;\n let referencingNode: ts.Node = call.node;\n if (docArg && (ts.isCallExpression(docArg) || ts.isIdentifier(docArg))) {\n const result = getDocumentReferenceFromDocumentNode(\n docArg,\n sourceFile.fileName,\n pluginInfo\n );\n foundNode = result.node;\n referencingNode = docArg;\n } else if (typeQuery && ts.isTypeQueryNode(typeQuery)) {\n const result = getDocumentReferenceFromTypeQuery(\n typeQuery,\n sourceFile.fileName,\n pluginInfo\n );\n foundNode = result.node;\n referencingNode = typeQuery;\n }\n\n if (!foundNode) {\n warnings.push({\n message:\n `Could not find reference for \"${referencingNode.getText()}\".\\n` +\n 'If this is unexpected, please file an issue describing your case.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n }\n\n if (\n !foundNode ||\n !ts.isCallExpression(foundNode) ||\n (!ts.isNoSubstitutionTemplateLiteral(foundNode.arguments[0]) &&\n !ts.isStringLiteral(foundNode.arguments[0]))\n ) {\n warnings.push({\n message:\n `The referenced document of \"${referencingNode.getText()}\" contains no document string literal.\\n` +\n 'If this is unexpected, please file an issue describing your case.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n }\n\n const fragmentDefs: FragmentDefinitionNode[] = [];\n const operation = foundNode.arguments[0].getText().slice(1, -1);\n if (foundNode.arguments[1] && ts.isArrayLiteralExpression(foundNode.arguments[1])) {\n unrollTadaFragments(\n foundNode.arguments[1],\n fragmentDefs,\n container.buildPluginInfo(params.pluginConfig)\n );\n }\n\n const seen = new Set<string>();\n let document: string;\n if (params.disableNormalization) {\n document = operation;\n } else {\n try {\n const parsed = parse(operation);\n const seen = new Set<unknown>();\n for (const definition of parsed.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION && !seen.has(definition)) {\n stripUnmaskDirectivesFromDefinition(definition);\n }\n }\n document = print(parsed);\n } catch (_error) {\n warnings.push({\n message:\n `The referenced document of \"${referencingNode.getText()}\" could not be parsed.\\n` +\n 'Run `check` to see specific validation errors.',\n file: position.fileName,\n line: position.line,\n col: position.col,\n });\n continue;\n }\n }\n\n // NOTE: Update graphqlsp not to pre-parse fragments, which also swallows errors\n for (const fragmentDef of fragmentDefs) {\n stripUnmaskDirectivesFromDefinition(fragmentDef);\n const printedFragmentDef = print(fragmentDef);\n if (!seen.has(printedFragmentDef)) {\n document += '\\n\\n' + print(fragmentDef);\n seen.add(printedFragmentDef);\n }\n }\n\n documents.push({\n schemaName: call.schema,\n hashKey: hashArg.getText().slice(1, -1),\n document,\n });\n }\n\n yield {\n kind: 'FILE_PERSISTED',\n filePath,\n documents,\n warnings,\n };\n }\n}\n\nexport const runPersisted = expose(_runPersisted);\ntype writable<T> = { -readonly [K in keyof T]: T[K] };\n\nconst stripUnmaskDirectivesFromDefinition = (definition: FragmentDefinitionNode) => {\n (definition as writable<FragmentDefinitionNode>).directives = definition.directives?.filter(\n (directive) => directive.name.value !== '_unmask'\n );\n};\n"],"names":["e","runPersisted","expose","async","_runPersisted","params","schemaNames","getSchemaNamesFromConfig","pluginConfig","factory","programFactory","externalFiles","createExternalFiles","length","kind","addVirtualFiles","container","build","pluginInfo","buildPluginInfo","sourceFiles","getSourceFiles","fileCount","sourceFile","filePath","fileName","documents","warnings","calls","findAllPersistedCallExpressions","call","position","getSourcePosition","node","getStart","has","schema","push","message","size","file","line","col","hashArg","arguments","docArg","typeQuery","typeArguments","ts","isStringLiteral","foundNode","referencingNode","isCallExpression","isIdentifier","getDocumentReferenceFromDocumentNode","isTypeQueryNode","getDocumentReferenceFromTypeQuery","getText","isNoSubstitutionTemplateLiteral","fragmentDefs","operation","slice","isArrayLiteralExpression","unrollTadaFragments","seen","Set","document","disableNormalization","parsed","parse","definition","definitions","Kind","stripUnmaskDirectivesFromDefinition","print","_error","fragmentDef","printedFragmentDef","add","schemaName","hashKey","directives","filter","directive","name","value"],"mappings":"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","x_google_ignoreList":[0]}