graphql 0.0.1-test.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.
- package/LICENSE +21 -0
- package/NotSupportedTSVersion.d.ts +1 -0
- package/README.md +158 -0
- package/error/GraphQLError.d.ts +142 -0
- package/error/GraphQLError.js +267 -0
- package/error/GraphQLError.mjs +253 -0
- package/error/index.d.ts +7 -0
- package/error/index.js +41 -0
- package/error/index.mjs +3 -0
- package/error/locatedError.d.ts +13 -0
- package/error/locatedError.js +40 -0
- package/error/locatedError.mjs +32 -0
- package/error/syntaxError.d.ts +11 -0
- package/error/syntaxError.js +21 -0
- package/error/syntaxError.mjs +11 -0
- package/execution/collectFields.d.ts +45 -0
- package/execution/collectFields.js +229 -0
- package/execution/collectFields.mjs +213 -0
- package/execution/execute.d.ts +185 -0
- package/execution/execute.js +1016 -0
- package/execution/execute.mjs +988 -0
- package/execution/index.d.ts +14 -0
- package/execution/index.js +67 -0
- package/execution/index.mjs +9 -0
- package/execution/mapAsyncIterator.d.ts +9 -0
- package/execution/mapAsyncIterator.js +68 -0
- package/execution/mapAsyncIterator.mjs +61 -0
- package/execution/subscribe.d.ts +68 -0
- package/execution/subscribe.js +261 -0
- package/execution/subscribe.mjs +239 -0
- package/execution/values.d.ts +81 -0
- package/execution/values.js +292 -0
- package/execution/values.mjs +255 -0
- package/graphql.d.ts +67 -0
- package/graphql.js +96 -0
- package/graphql.mjs +122 -0
- package/index.d.ts +411 -0
- package/index.js +1263 -0
- package/index.mjs +254 -0
- package/jsutils/Maybe.d.ts +2 -0
- package/jsutils/Maybe.js +5 -0
- package/jsutils/Maybe.mjs +1 -0
- package/jsutils/ObjMap.d.ts +16 -0
- package/jsutils/ObjMap.js +5 -0
- package/jsutils/ObjMap.mjs +1 -0
- package/jsutils/Path.d.ts +20 -0
- package/jsutils/Path.js +33 -0
- package/jsutils/Path.mjs +25 -0
- package/jsutils/PromiseOrValue.d.ts +1 -0
- package/jsutils/PromiseOrValue.js +5 -0
- package/jsutils/PromiseOrValue.mjs +1 -0
- package/jsutils/devAssert.d.ts +1 -0
- package/jsutils/devAssert.js +14 -0
- package/jsutils/devAssert.mjs +7 -0
- package/jsutils/didYouMean.d.ts +8 -0
- package/jsutils/didYouMean.js +38 -0
- package/jsutils/didYouMean.mjs +32 -0
- package/jsutils/groupBy.d.ts +7 -0
- package/jsutils/groupBy.js +26 -0
- package/jsutils/groupBy.mjs +19 -0
- package/jsutils/identityFunc.d.ts +4 -0
- package/jsutils/identityFunc.js +13 -0
- package/jsutils/identityFunc.mjs +6 -0
- package/jsutils/inspect.d.ts +4 -0
- package/jsutils/inspect.js +121 -0
- package/jsutils/inspect.mjs +115 -0
- package/jsutils/instanceOf.d.ts +16 -0
- package/jsutils/instanceOf.js +60 -0
- package/jsutils/instanceOf.mjs +52 -0
- package/jsutils/invariant.d.ts +4 -0
- package/jsutils/invariant.js +16 -0
- package/jsutils/invariant.mjs +9 -0
- package/jsutils/isAsyncIterable.d.ts +7 -0
- package/jsutils/isAsyncIterable.js +18 -0
- package/jsutils/isAsyncIterable.mjs +11 -0
- package/jsutils/isIterableObject.d.ts +20 -0
- package/jsutils/isIterableObject.js +32 -0
- package/jsutils/isIterableObject.mjs +25 -0
- package/jsutils/isObjectLike.d.ts +7 -0
- package/jsutils/isObjectLike.js +14 -0
- package/jsutils/isObjectLike.mjs +7 -0
- package/jsutils/isPromise.d.ts +5 -0
- package/jsutils/isPromise.js +17 -0
- package/jsutils/isPromise.mjs +10 -0
- package/jsutils/keyMap.d.ts +32 -0
- package/jsutils/keyMap.js +43 -0
- package/jsutils/keyMap.mjs +36 -0
- package/jsutils/keyValMap.d.ts +23 -0
- package/jsutils/keyValMap.js +33 -0
- package/jsutils/keyValMap.mjs +26 -0
- package/jsutils/mapValue.d.ts +9 -0
- package/jsutils/mapValue.js +20 -0
- package/jsutils/mapValue.mjs +13 -0
- package/jsutils/memoize3.d.ts +9 -0
- package/jsutils/memoize3.js +41 -0
- package/jsutils/memoize3.mjs +34 -0
- package/jsutils/naturalCompare.d.ts +8 -0
- package/jsutils/naturalCompare.js +69 -0
- package/jsutils/naturalCompare.mjs +61 -0
- package/jsutils/printPathArray.d.ts +6 -0
- package/jsutils/printPathArray.js +17 -0
- package/jsutils/printPathArray.mjs +10 -0
- package/jsutils/promiseForObject.d.ts +11 -0
- package/jsutils/promiseForObject.js +25 -0
- package/jsutils/promiseForObject.mjs +18 -0
- package/jsutils/promiseReduce.d.ts +13 -0
- package/jsutils/promiseReduce.js +27 -0
- package/jsutils/promiseReduce.mjs +20 -0
- package/jsutils/suggestionList.d.ts +8 -0
- package/jsutils/suggestionList.js +139 -0
- package/jsutils/suggestionList.mjs +130 -0
- package/jsutils/toError.d.ts +4 -0
- package/jsutils/toError.js +25 -0
- package/jsutils/toError.mjs +18 -0
- package/jsutils/toObjMap.d.ts +5 -0
- package/jsutils/toObjMap.js +24 -0
- package/jsutils/toObjMap.mjs +17 -0
- package/language/ast.d.ts +536 -0
- package/language/ast.js +224 -0
- package/language/ast.mjs +206 -0
- package/language/blockString.d.ts +28 -0
- package/language/blockString.js +195 -0
- package/language/blockString.mjs +178 -0
- package/language/characterClasses.d.ts +47 -0
- package/language/characterClasses.js +75 -0
- package/language/characterClasses.mjs +64 -0
- package/language/directiveLocation.d.ts +32 -0
- package/language/directiveLocation.js +40 -0
- package/language/directiveLocation.mjs +31 -0
- package/language/index.d.ts +97 -0
- package/language/index.js +215 -0
- package/language/index.mjs +29 -0
- package/language/kinds.d.ts +65 -0
- package/language/kinds.js +64 -0
- package/language/kinds.mjs +55 -0
- package/language/lexer.d.ts +45 -0
- package/language/lexer.js +1006 -0
- package/language/lexer.mjs +902 -0
- package/language/location.d.ts +16 -0
- package/language/location.js +38 -0
- package/language/location.mjs +30 -0
- package/language/parser.d.ts +554 -0
- package/language/parser.js +1567 -0
- package/language/parser.mjs +1524 -0
- package/language/predicates.d.ts +33 -0
- package/language/predicates.js +109 -0
- package/language/predicates.mjs +81 -0
- package/language/printLocation.d.ts +14 -0
- package/language/printLocation.js +74 -0
- package/language/printLocation.mjs +66 -0
- package/language/printString.d.ts +5 -0
- package/language/printString.js +183 -0
- package/language/printString.mjs +176 -0
- package/language/printer.d.ts +6 -0
- package/language/printer.js +351 -0
- package/language/printer.mjs +339 -0
- package/language/source.d.ts +25 -0
- package/language/source.js +65 -0
- package/language/source.mjs +50 -0
- package/language/tokenKind.d.ts +34 -0
- package/language/tokenKind.js +44 -0
- package/language/tokenKind.mjs +35 -0
- package/language/visitor.d.ts +194 -0
- package/language/visitor.js +377 -0
- package/language/visitor.mjs +361 -0
- package/package.json +40 -0
- package/subscription/index.d.ts +19 -0
- package/subscription/index.js +19 -0
- package/subscription/index.mjs +19 -0
- package/type/assertName.d.ts +10 -0
- package/type/assertName.js +59 -0
- package/type/assertName.mjs +44 -0
- package/type/definition.d.ts +917 -0
- package/type/definition.js +1329 -0
- package/type/definition.mjs +1167 -0
- package/type/directives.d.ts +86 -0
- package/type/directives.js +224 -0
- package/type/directives.mjs +190 -0
- package/type/index.d.ts +150 -0
- package/type/index.js +547 -0
- package/type/index.mjs +103 -0
- package/type/introspection.d.ts +29 -0
- package/type/introspection.js +617 -0
- package/type/introspection.mjs +550 -0
- package/type/scalars.d.ts +19 -0
- package/type/scalars.js +359 -0
- package/type/scalars.mjs +299 -0
- package/type/schema.d.ts +170 -0
- package/type/schema.js +402 -0
- package/type/schema.mjs +381 -0
- package/type/validate.d.ts +17 -0
- package/type/validate.js +672 -0
- package/type/validate.mjs +647 -0
- package/utilities/TypeInfo.d.ts +67 -0
- package/utilities/TypeInfo.js +418 -0
- package/utilities/TypeInfo.mjs +395 -0
- package/utilities/assertValidName.d.ts +13 -0
- package/utilities/assertValidName.js +51 -0
- package/utilities/assertValidName.mjs +40 -0
- package/utilities/astFromValue.d.ts +28 -0
- package/utilities/astFromValue.js +190 -0
- package/utilities/astFromValue.mjs +177 -0
- package/utilities/buildASTSchema.d.ts +35 -0
- package/utilities/buildASTSchema.js +115 -0
- package/utilities/buildASTSchema.mjs +97 -0
- package/utilities/buildClientSchema.d.ts +19 -0
- package/utilities/buildClientSchema.js +386 -0
- package/utilities/buildClientSchema.mjs +363 -0
- package/utilities/coerceInputValue.d.ts +16 -0
- package/utilities/coerceInputValue.js +191 -0
- package/utilities/coerceInputValue.mjs +172 -0
- package/utilities/concatAST.d.ts +9 -0
- package/utilities/concatAST.js +26 -0
- package/utilities/concatAST.mjs +19 -0
- package/utilities/extendSchema.d.ts +40 -0
- package/utilities/extendSchema.js +798 -0
- package/utilities/extendSchema.mjs +789 -0
- package/utilities/findBreakingChanges.d.ts +51 -0
- package/utilities/findBreakingChanges.js +547 -0
- package/utilities/findBreakingChanges.mjs +516 -0
- package/utilities/getIntrospectionQuery.d.ts +182 -0
- package/utilities/getIntrospectionQuery.js +134 -0
- package/utilities/getIntrospectionQuery.mjs +127 -0
- package/utilities/getOperationAST.d.ts +11 -0
- package/utilities/getOperationAST.js +43 -0
- package/utilities/getOperationAST.mjs +36 -0
- package/utilities/getOperationRootType.d.ts +15 -0
- package/utilities/getOperationRootType.js +59 -0
- package/utilities/getOperationRootType.mjs +52 -0
- package/utilities/index.d.ts +61 -0
- package/utilities/index.js +233 -0
- package/utilities/index.mjs +55 -0
- package/utilities/introspectionFromSchema.d.ts +18 -0
- package/utilities/introspectionFromSchema.js +42 -0
- package/utilities/introspectionFromSchema.mjs +30 -0
- package/utilities/lexicographicSortSchema.d.ts +9 -0
- package/utilities/lexicographicSortSchema.js +177 -0
- package/utilities/lexicographicSortSchema.mjs +172 -0
- package/utilities/printSchema.d.ts +5 -0
- package/utilities/printSchema.js +333 -0
- package/utilities/printSchema.mjs +309 -0
- package/utilities/separateOperations.d.ts +11 -0
- package/utilities/separateOperations.js +88 -0
- package/utilities/separateOperations.mjs +80 -0
- package/utilities/sortValueNode.d.ts +9 -0
- package/utilities/sortValueNode.js +47 -0
- package/utilities/sortValueNode.mjs +39 -0
- package/utilities/stripIgnoredCharacters.d.ts +62 -0
- package/utilities/stripIgnoredCharacters.js +121 -0
- package/utilities/stripIgnoredCharacters.mjs +104 -0
- package/utilities/typeComparators.d.ts +32 -0
- package/utilities/typeComparators.js +116 -0
- package/utilities/typeComparators.mjs +106 -0
- package/utilities/typeFromAST.d.ts +32 -0
- package/utilities/typeFromAST.js +27 -0
- package/utilities/typeFromAST.mjs +18 -0
- package/utilities/typedQueryDocumentNode.d.ts +22 -0
- package/utilities/typedQueryDocumentNode.js +5 -0
- package/utilities/typedQueryDocumentNode.mjs +1 -0
- package/utilities/valueFromAST.d.ts +29 -0
- package/utilities/valueFromAST.js +185 -0
- package/utilities/valueFromAST.mjs +172 -0
- package/utilities/valueFromASTUntyped.d.ts +23 -0
- package/utilities/valueFromASTUntyped.js +61 -0
- package/utilities/valueFromASTUntyped.mjs +53 -0
- package/validation/ValidationContext.d.ts +95 -0
- package/validation/ValidationContext.js +232 -0
- package/validation/ValidationContext.mjs +212 -0
- package/validation/index.d.ts +40 -0
- package/validation/index.js +317 -0
- package/validation/index.mjs +68 -0
- package/validation/rules/ExecutableDefinitionsRule.d.ts +13 -0
- package/validation/rules/ExecutableDefinitionsRule.js +44 -0
- package/validation/rules/ExecutableDefinitionsRule.mjs +35 -0
- package/validation/rules/FieldsOnCorrectTypeRule.d.ts +13 -0
- package/validation/rules/FieldsOnCorrectTypeRule.js +143 -0
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +125 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +14 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.js +65 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs +49 -0
- package/validation/rules/KnownArgumentNamesRule.d.ts +23 -0
- package/validation/rules/KnownArgumentNamesRule.js +116 -0
- package/validation/rules/KnownArgumentNamesRule.mjs +98 -0
- package/validation/rules/KnownDirectivesRule.d.ts +16 -0
- package/validation/rules/KnownDirectivesRule.js +163 -0
- package/validation/rules/KnownDirectivesRule.mjs +146 -0
- package/validation/rules/KnownFragmentNamesRule.d.ts +13 -0
- package/validation/rules/KnownFragmentNamesRule.js +34 -0
- package/validation/rules/KnownFragmentNamesRule.mjs +24 -0
- package/validation/rules/KnownTypeNamesRule.d.ts +16 -0
- package/validation/rules/KnownTypeNamesRule.js +87 -0
- package/validation/rules/KnownTypeNamesRule.mjs +75 -0
- package/validation/rules/LoneAnonymousOperationRule.d.ts +13 -0
- package/validation/rules/LoneAnonymousOperationRule.js +40 -0
- package/validation/rules/LoneAnonymousOperationRule.mjs +32 -0
- package/validation/rules/LoneSchemaDefinitionRule.d.ts +10 -0
- package/validation/rules/LoneSchemaDefinitionRule.js +63 -0
- package/validation/rules/LoneSchemaDefinitionRule.mjs +53 -0
- package/validation/rules/NoFragmentCyclesRule.d.ts +13 -0
- package/validation/rules/NoFragmentCyclesRule.js +83 -0
- package/validation/rules/NoFragmentCyclesRule.mjs +76 -0
- package/validation/rules/NoUndefinedVariablesRule.d.ts +13 -0
- package/validation/rules/NoUndefinedVariablesRule.js +50 -0
- package/validation/rules/NoUndefinedVariablesRule.mjs +43 -0
- package/validation/rules/NoUnusedFragmentsRule.d.ts +13 -0
- package/validation/rules/NoUnusedFragmentsRule.js +59 -0
- package/validation/rules/NoUnusedFragmentsRule.mjs +52 -0
- package/validation/rules/NoUnusedVariablesRule.d.ts +13 -0
- package/validation/rules/NoUnusedVariablesRule.js +55 -0
- package/validation/rules/NoUnusedVariablesRule.mjs +48 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule-old.js +805 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule-old.mjs +788 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +14 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +805 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +788 -0
- package/validation/rules/PossibleFragmentSpreadsRule.d.ts +12 -0
- package/validation/rules/PossibleFragmentSpreadsRule.js +91 -0
- package/validation/rules/PossibleFragmentSpreadsRule.mjs +69 -0
- package/validation/rules/PossibleTypeExtensionsRule.d.ts +10 -0
- package/validation/rules/PossibleTypeExtensionsRule.js +167 -0
- package/validation/rules/PossibleTypeExtensionsRule.mjs +147 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +20 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.js +158 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs +138 -0
- package/validation/rules/ScalarLeafsRule.d.ts +9 -0
- package/validation/rules/ScalarLeafsRule.js +51 -0
- package/validation/rules/ScalarLeafsRule.mjs +42 -0
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +13 -0
- package/validation/rules/SingleFieldSubscriptionsRule.js +82 -0
- package/validation/rules/SingleFieldSubscriptionsRule.mjs +73 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +11 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js +90 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +79 -0
- package/validation/rules/UniqueArgumentNamesRule.d.ts +13 -0
- package/validation/rules/UniqueArgumentNamesRule.js +53 -0
- package/validation/rules/UniqueArgumentNamesRule.mjs +42 -0
- package/validation/rules/UniqueDirectiveNamesRule.d.ts +10 -0
- package/validation/rules/UniqueDirectiveNamesRule.js +50 -0
- package/validation/rules/UniqueDirectiveNamesRule.mjs +43 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +16 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.js +93 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +83 -0
- package/validation/rules/UniqueEnumValueNamesRule.d.ts +10 -0
- package/validation/rules/UniqueEnumValueNamesRule.js +71 -0
- package/validation/rules/UniqueEnumValueNamesRule.mjs +60 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +10 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +83 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +75 -0
- package/validation/rules/UniqueFragmentNamesRule.d.ts +12 -0
- package/validation/rules/UniqueFragmentNamesRule.js +39 -0
- package/validation/rules/UniqueFragmentNamesRule.mjs +32 -0
- package/validation/rules/UniqueInputFieldNamesRule.d.ts +13 -0
- package/validation/rules/UniqueInputFieldNamesRule.js +52 -0
- package/validation/rules/UniqueInputFieldNamesRule.mjs +44 -0
- package/validation/rules/UniqueOperationNamesRule.d.ts +12 -0
- package/validation/rules/UniqueOperationNamesRule.js +41 -0
- package/validation/rules/UniqueOperationNamesRule.mjs +34 -0
- package/validation/rules/UniqueOperationTypesRule.d.ts +10 -0
- package/validation/rules/UniqueOperationTypesRule.js +67 -0
- package/validation/rules/UniqueOperationTypesRule.mjs +60 -0
- package/validation/rules/UniqueTypeNamesRule.d.ts +10 -0
- package/validation/rules/UniqueTypeNamesRule.js +53 -0
- package/validation/rules/UniqueTypeNamesRule.mjs +46 -0
- package/validation/rules/UniqueVariableNamesRule.d.ts +10 -0
- package/validation/rules/UniqueVariableNamesRule.js +47 -0
- package/validation/rules/UniqueVariableNamesRule.mjs +39 -0
- package/validation/rules/ValuesOfCorrectTypeRule.d.ts +13 -0
- package/validation/rules/ValuesOfCorrectTypeRule.js +183 -0
- package/validation/rules/ValuesOfCorrectTypeRule.mjs +164 -0
- package/validation/rules/VariablesAreInputTypesRule.d.ts +13 -0
- package/validation/rules/VariablesAreInputTypesRule.js +44 -0
- package/validation/rules/VariablesAreInputTypesRule.mjs +31 -0
- package/validation/rules/VariablesInAllowedPositionRule.d.ts +12 -0
- package/validation/rules/VariablesInAllowedPositionRule.js +114 -0
- package/validation/rules/VariablesInAllowedPositionRule.mjs +95 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +15 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.js +121 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +107 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +15 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +39 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +30 -0
- package/validation/specifiedRules.d.ts +12 -0
- package/validation/specifiedRules.js +160 -0
- package/validation/specifiedRules.mjs +123 -0
- package/validation/validate.d.ts +61 -0
- package/validation/validate.js +151 -0
- package/validation/validate.mjs +133 -0
- package/version.d.ts +13 -0
- package/version.js +25 -0
- package/version.mjs +17 -0
package/language/ast.js
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.Token =
|
|
7
|
+
exports.QueryDocumentKeys =
|
|
8
|
+
exports.OperationTypeNode =
|
|
9
|
+
exports.Location =
|
|
10
|
+
void 0;
|
|
11
|
+
exports.isNode = isNode;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Contains a range of UTF-8 character offsets and token references that
|
|
15
|
+
* identify the region of the source from which the AST derived.
|
|
16
|
+
*/
|
|
17
|
+
class Location {
|
|
18
|
+
/**
|
|
19
|
+
* The character offset at which this Node begins.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The character offset at which this Node ends.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The Token at which this Node begins.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The Token at which this Node ends.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The Source document the AST represents.
|
|
36
|
+
*/
|
|
37
|
+
constructor(startToken, endToken, source) {
|
|
38
|
+
this.start = startToken.start;
|
|
39
|
+
this.end = endToken.end;
|
|
40
|
+
this.startToken = startToken;
|
|
41
|
+
this.endToken = endToken;
|
|
42
|
+
this.source = source;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
get [Symbol.toStringTag]() {
|
|
46
|
+
return 'Location';
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
toJSON() {
|
|
50
|
+
return {
|
|
51
|
+
start: this.start,
|
|
52
|
+
end: this.end,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Represents a range of characters represented by a lexical token
|
|
58
|
+
* within a Source.
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
exports.Location = Location;
|
|
62
|
+
|
|
63
|
+
class Token {
|
|
64
|
+
/**
|
|
65
|
+
* The kind of Token.
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* The character offset at which this Node begins.
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The character offset at which this Node ends.
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* The 1-indexed line number on which this Token appears.
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* The 1-indexed column number at which this Token begins.
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* For non-punctuation tokens, represents the interpreted value of the token.
|
|
86
|
+
*
|
|
87
|
+
* Note: is undefined for punctuation tokens, but typed as string for
|
|
88
|
+
* convenience in the parser.
|
|
89
|
+
*/
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Tokens exist as nodes in a double-linked-list amongst all tokens
|
|
93
|
+
* including ignored tokens. <SOF> is always the first node and <EOF>
|
|
94
|
+
* the last.
|
|
95
|
+
*/
|
|
96
|
+
constructor(kind, start, end, line, column, value) {
|
|
97
|
+
this.kind = kind;
|
|
98
|
+
this.start = start;
|
|
99
|
+
this.end = end;
|
|
100
|
+
this.line = line;
|
|
101
|
+
this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
102
|
+
|
|
103
|
+
this.value = value;
|
|
104
|
+
this.prev = null;
|
|
105
|
+
this.next = null;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
get [Symbol.toStringTag]() {
|
|
109
|
+
return 'Token';
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
toJSON() {
|
|
113
|
+
return {
|
|
114
|
+
kind: this.kind,
|
|
115
|
+
value: this.value,
|
|
116
|
+
line: this.line,
|
|
117
|
+
column: this.column,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The list of all possible AST node types.
|
|
123
|
+
*/
|
|
124
|
+
|
|
125
|
+
exports.Token = Token;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* @internal
|
|
129
|
+
*/
|
|
130
|
+
const QueryDocumentKeys = {
|
|
131
|
+
Name: [],
|
|
132
|
+
Document: ['definitions'],
|
|
133
|
+
OperationDefinition: [
|
|
134
|
+
'name',
|
|
135
|
+
'variableDefinitions',
|
|
136
|
+
'directives',
|
|
137
|
+
'selectionSet',
|
|
138
|
+
],
|
|
139
|
+
VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],
|
|
140
|
+
Variable: ['name'],
|
|
141
|
+
SelectionSet: ['selections'],
|
|
142
|
+
Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],
|
|
143
|
+
Argument: ['name', 'value'],
|
|
144
|
+
FragmentSpread: ['name', 'directives'],
|
|
145
|
+
InlineFragment: ['typeCondition', 'directives', 'selectionSet'],
|
|
146
|
+
FragmentDefinition: [
|
|
147
|
+
'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0
|
|
148
|
+
'variableDefinitions',
|
|
149
|
+
'typeCondition',
|
|
150
|
+
'directives',
|
|
151
|
+
'selectionSet',
|
|
152
|
+
],
|
|
153
|
+
IntValue: [],
|
|
154
|
+
FloatValue: [],
|
|
155
|
+
StringValue: [],
|
|
156
|
+
BooleanValue: [],
|
|
157
|
+
NullValue: [],
|
|
158
|
+
EnumValue: [],
|
|
159
|
+
ListValue: ['values'],
|
|
160
|
+
ObjectValue: ['fields'],
|
|
161
|
+
ObjectField: ['name', 'value'],
|
|
162
|
+
Directive: ['name', 'arguments'],
|
|
163
|
+
NamedType: ['name'],
|
|
164
|
+
ListType: ['type'],
|
|
165
|
+
NonNullType: ['type'],
|
|
166
|
+
SchemaDefinition: ['description', 'directives', 'operationTypes'],
|
|
167
|
+
OperationTypeDefinition: ['type'],
|
|
168
|
+
ScalarTypeDefinition: ['description', 'name', 'directives'],
|
|
169
|
+
ObjectTypeDefinition: [
|
|
170
|
+
'description',
|
|
171
|
+
'name',
|
|
172
|
+
'interfaces',
|
|
173
|
+
'directives',
|
|
174
|
+
'fields',
|
|
175
|
+
],
|
|
176
|
+
FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],
|
|
177
|
+
InputValueDefinition: [
|
|
178
|
+
'description',
|
|
179
|
+
'name',
|
|
180
|
+
'type',
|
|
181
|
+
'defaultValue',
|
|
182
|
+
'directives',
|
|
183
|
+
],
|
|
184
|
+
InterfaceTypeDefinition: [
|
|
185
|
+
'description',
|
|
186
|
+
'name',
|
|
187
|
+
'interfaces',
|
|
188
|
+
'directives',
|
|
189
|
+
'fields',
|
|
190
|
+
],
|
|
191
|
+
UnionTypeDefinition: ['description', 'name', 'directives', 'types'],
|
|
192
|
+
EnumTypeDefinition: ['description', 'name', 'directives', 'values'],
|
|
193
|
+
EnumValueDefinition: ['description', 'name', 'directives'],
|
|
194
|
+
InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],
|
|
195
|
+
DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],
|
|
196
|
+
SchemaExtension: ['directives', 'operationTypes'],
|
|
197
|
+
ScalarTypeExtension: ['name', 'directives'],
|
|
198
|
+
ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
|
|
199
|
+
InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
|
|
200
|
+
UnionTypeExtension: ['name', 'directives', 'types'],
|
|
201
|
+
EnumTypeExtension: ['name', 'directives', 'values'],
|
|
202
|
+
InputObjectTypeExtension: ['name', 'directives', 'fields'],
|
|
203
|
+
};
|
|
204
|
+
exports.QueryDocumentKeys = QueryDocumentKeys;
|
|
205
|
+
const kindValues = new Set(Object.keys(QueryDocumentKeys));
|
|
206
|
+
/**
|
|
207
|
+
* @internal
|
|
208
|
+
*/
|
|
209
|
+
|
|
210
|
+
function isNode(maybeNode) {
|
|
211
|
+
const maybeKind =
|
|
212
|
+
maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;
|
|
213
|
+
return typeof maybeKind === 'string' && kindValues.has(maybeKind);
|
|
214
|
+
}
|
|
215
|
+
/** Name */
|
|
216
|
+
|
|
217
|
+
let OperationTypeNode;
|
|
218
|
+
exports.OperationTypeNode = OperationTypeNode;
|
|
219
|
+
|
|
220
|
+
(function (OperationTypeNode) {
|
|
221
|
+
OperationTypeNode['QUERY'] = 'query';
|
|
222
|
+
OperationTypeNode['MUTATION'] = 'mutation';
|
|
223
|
+
OperationTypeNode['SUBSCRIPTION'] = 'subscription';
|
|
224
|
+
})(OperationTypeNode || (exports.OperationTypeNode = OperationTypeNode = {}));
|
package/language/ast.mjs
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contains a range of UTF-8 character offsets and token references that
|
|
3
|
+
* identify the region of the source from which the AST derived.
|
|
4
|
+
*/
|
|
5
|
+
export class Location {
|
|
6
|
+
/**
|
|
7
|
+
* The character offset at which this Node begins.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The character offset at which this Node ends.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The Token at which this Node begins.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The Token at which this Node ends.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The Source document the AST represents.
|
|
24
|
+
*/
|
|
25
|
+
constructor(startToken, endToken, source) {
|
|
26
|
+
this.start = startToken.start;
|
|
27
|
+
this.end = endToken.end;
|
|
28
|
+
this.startToken = startToken;
|
|
29
|
+
this.endToken = endToken;
|
|
30
|
+
this.source = source;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
get [Symbol.toStringTag]() {
|
|
34
|
+
return 'Location';
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
toJSON() {
|
|
38
|
+
return {
|
|
39
|
+
start: this.start,
|
|
40
|
+
end: this.end,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Represents a range of characters represented by a lexical token
|
|
46
|
+
* within a Source.
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
export class Token {
|
|
50
|
+
/**
|
|
51
|
+
* The kind of Token.
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The character offset at which this Node begins.
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The character offset at which this Node ends.
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The 1-indexed line number on which this Token appears.
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* The 1-indexed column number at which this Token begins.
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* For non-punctuation tokens, represents the interpreted value of the token.
|
|
72
|
+
*
|
|
73
|
+
* Note: is undefined for punctuation tokens, but typed as string for
|
|
74
|
+
* convenience in the parser.
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Tokens exist as nodes in a double-linked-list amongst all tokens
|
|
79
|
+
* including ignored tokens. <SOF> is always the first node and <EOF>
|
|
80
|
+
* the last.
|
|
81
|
+
*/
|
|
82
|
+
constructor(kind, start, end, line, column, value) {
|
|
83
|
+
this.kind = kind;
|
|
84
|
+
this.start = start;
|
|
85
|
+
this.end = end;
|
|
86
|
+
this.line = line;
|
|
87
|
+
this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
88
|
+
|
|
89
|
+
this.value = value;
|
|
90
|
+
this.prev = null;
|
|
91
|
+
this.next = null;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
get [Symbol.toStringTag]() {
|
|
95
|
+
return 'Token';
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
toJSON() {
|
|
99
|
+
return {
|
|
100
|
+
kind: this.kind,
|
|
101
|
+
value: this.value,
|
|
102
|
+
line: this.line,
|
|
103
|
+
column: this.column,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The list of all possible AST node types.
|
|
109
|
+
*/
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* @internal
|
|
113
|
+
*/
|
|
114
|
+
export const QueryDocumentKeys = {
|
|
115
|
+
Name: [],
|
|
116
|
+
Document: ['definitions'],
|
|
117
|
+
OperationDefinition: [
|
|
118
|
+
'name',
|
|
119
|
+
'variableDefinitions',
|
|
120
|
+
'directives',
|
|
121
|
+
'selectionSet',
|
|
122
|
+
],
|
|
123
|
+
VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],
|
|
124
|
+
Variable: ['name'],
|
|
125
|
+
SelectionSet: ['selections'],
|
|
126
|
+
Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],
|
|
127
|
+
Argument: ['name', 'value'],
|
|
128
|
+
FragmentSpread: ['name', 'directives'],
|
|
129
|
+
InlineFragment: ['typeCondition', 'directives', 'selectionSet'],
|
|
130
|
+
FragmentDefinition: [
|
|
131
|
+
'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0
|
|
132
|
+
'variableDefinitions',
|
|
133
|
+
'typeCondition',
|
|
134
|
+
'directives',
|
|
135
|
+
'selectionSet',
|
|
136
|
+
],
|
|
137
|
+
IntValue: [],
|
|
138
|
+
FloatValue: [],
|
|
139
|
+
StringValue: [],
|
|
140
|
+
BooleanValue: [],
|
|
141
|
+
NullValue: [],
|
|
142
|
+
EnumValue: [],
|
|
143
|
+
ListValue: ['values'],
|
|
144
|
+
ObjectValue: ['fields'],
|
|
145
|
+
ObjectField: ['name', 'value'],
|
|
146
|
+
Directive: ['name', 'arguments'],
|
|
147
|
+
NamedType: ['name'],
|
|
148
|
+
ListType: ['type'],
|
|
149
|
+
NonNullType: ['type'],
|
|
150
|
+
SchemaDefinition: ['description', 'directives', 'operationTypes'],
|
|
151
|
+
OperationTypeDefinition: ['type'],
|
|
152
|
+
ScalarTypeDefinition: ['description', 'name', 'directives'],
|
|
153
|
+
ObjectTypeDefinition: [
|
|
154
|
+
'description',
|
|
155
|
+
'name',
|
|
156
|
+
'interfaces',
|
|
157
|
+
'directives',
|
|
158
|
+
'fields',
|
|
159
|
+
],
|
|
160
|
+
FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],
|
|
161
|
+
InputValueDefinition: [
|
|
162
|
+
'description',
|
|
163
|
+
'name',
|
|
164
|
+
'type',
|
|
165
|
+
'defaultValue',
|
|
166
|
+
'directives',
|
|
167
|
+
],
|
|
168
|
+
InterfaceTypeDefinition: [
|
|
169
|
+
'description',
|
|
170
|
+
'name',
|
|
171
|
+
'interfaces',
|
|
172
|
+
'directives',
|
|
173
|
+
'fields',
|
|
174
|
+
],
|
|
175
|
+
UnionTypeDefinition: ['description', 'name', 'directives', 'types'],
|
|
176
|
+
EnumTypeDefinition: ['description', 'name', 'directives', 'values'],
|
|
177
|
+
EnumValueDefinition: ['description', 'name', 'directives'],
|
|
178
|
+
InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],
|
|
179
|
+
DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],
|
|
180
|
+
SchemaExtension: ['directives', 'operationTypes'],
|
|
181
|
+
ScalarTypeExtension: ['name', 'directives'],
|
|
182
|
+
ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
|
|
183
|
+
InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
|
|
184
|
+
UnionTypeExtension: ['name', 'directives', 'types'],
|
|
185
|
+
EnumTypeExtension: ['name', 'directives', 'values'],
|
|
186
|
+
InputObjectTypeExtension: ['name', 'directives', 'fields'],
|
|
187
|
+
};
|
|
188
|
+
const kindValues = new Set(Object.keys(QueryDocumentKeys));
|
|
189
|
+
/**
|
|
190
|
+
* @internal
|
|
191
|
+
*/
|
|
192
|
+
|
|
193
|
+
export function isNode(maybeNode) {
|
|
194
|
+
const maybeKind =
|
|
195
|
+
maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;
|
|
196
|
+
return typeof maybeKind === 'string' && kindValues.has(maybeKind);
|
|
197
|
+
}
|
|
198
|
+
/** Name */
|
|
199
|
+
|
|
200
|
+
export let OperationTypeNode;
|
|
201
|
+
|
|
202
|
+
(function (OperationTypeNode) {
|
|
203
|
+
OperationTypeNode['QUERY'] = 'query';
|
|
204
|
+
OperationTypeNode['MUTATION'] = 'mutation';
|
|
205
|
+
OperationTypeNode['SUBSCRIPTION'] = 'subscription';
|
|
206
|
+
})(OperationTypeNode || (OperationTypeNode = {}));
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Produces the value of a block string from its parsed raw value, similar to
|
|
3
|
+
* CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.
|
|
4
|
+
*
|
|
5
|
+
* This implements the GraphQL spec's BlockStringValue() static algorithm.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare function dedentBlockStringLines(
|
|
10
|
+
lines: ReadonlyArray<string>,
|
|
11
|
+
): Array<string>;
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare function isPrintableAsBlockString(value: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Print a block string in the indented block form by adding a leading and
|
|
18
|
+
* trailing blank line. However, if a block string starts with whitespace and is
|
|
19
|
+
* a single-line, adding a leading blank line would strip that whitespace.
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare function printBlockString(
|
|
24
|
+
value: string,
|
|
25
|
+
options?: {
|
|
26
|
+
minimize?: boolean;
|
|
27
|
+
},
|
|
28
|
+
): string;
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.dedentBlockStringLines = dedentBlockStringLines;
|
|
7
|
+
exports.isPrintableAsBlockString = isPrintableAsBlockString;
|
|
8
|
+
exports.printBlockString = printBlockString;
|
|
9
|
+
|
|
10
|
+
var _characterClasses = require('./characterClasses.js');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Produces the value of a block string from its parsed raw value, similar to
|
|
14
|
+
* CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.
|
|
15
|
+
*
|
|
16
|
+
* This implements the GraphQL spec's BlockStringValue() static algorithm.
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
function dedentBlockStringLines(lines) {
|
|
21
|
+
var _firstNonEmptyLine2;
|
|
22
|
+
|
|
23
|
+
let commonIndent = Number.MAX_SAFE_INTEGER;
|
|
24
|
+
let firstNonEmptyLine = null;
|
|
25
|
+
let lastNonEmptyLine = -1;
|
|
26
|
+
|
|
27
|
+
for (let i = 0; i < lines.length; ++i) {
|
|
28
|
+
var _firstNonEmptyLine;
|
|
29
|
+
|
|
30
|
+
const line = lines[i];
|
|
31
|
+
const indent = leadingWhitespace(line);
|
|
32
|
+
|
|
33
|
+
if (indent === line.length) {
|
|
34
|
+
continue; // skip empty lines
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
firstNonEmptyLine =
|
|
38
|
+
(_firstNonEmptyLine = firstNonEmptyLine) !== null &&
|
|
39
|
+
_firstNonEmptyLine !== void 0
|
|
40
|
+
? _firstNonEmptyLine
|
|
41
|
+
: i;
|
|
42
|
+
lastNonEmptyLine = i;
|
|
43
|
+
|
|
44
|
+
if (i !== 0 && indent < commonIndent) {
|
|
45
|
+
commonIndent = indent;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return lines // Remove common indentation from all lines but first.
|
|
50
|
+
.map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.
|
|
51
|
+
.slice(
|
|
52
|
+
(_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&
|
|
53
|
+
_firstNonEmptyLine2 !== void 0
|
|
54
|
+
? _firstNonEmptyLine2
|
|
55
|
+
: 0,
|
|
56
|
+
lastNonEmptyLine + 1,
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function leadingWhitespace(str) {
|
|
61
|
+
let i = 0;
|
|
62
|
+
|
|
63
|
+
while (
|
|
64
|
+
i < str.length &&
|
|
65
|
+
(0, _characterClasses.isWhiteSpace)(str.charCodeAt(i))
|
|
66
|
+
) {
|
|
67
|
+
++i;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return i;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
function isPrintableAsBlockString(value) {
|
|
77
|
+
if (value === '') {
|
|
78
|
+
return true; // empty string is printable
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
let isEmptyLine = true;
|
|
82
|
+
let hasIndent = false;
|
|
83
|
+
let hasCommonIndent = true;
|
|
84
|
+
let seenNonEmptyLine = false;
|
|
85
|
+
|
|
86
|
+
for (let i = 0; i < value.length; ++i) {
|
|
87
|
+
switch (value.codePointAt(i)) {
|
|
88
|
+
case 0x0000:
|
|
89
|
+
case 0x0001:
|
|
90
|
+
case 0x0002:
|
|
91
|
+
case 0x0003:
|
|
92
|
+
case 0x0004:
|
|
93
|
+
case 0x0005:
|
|
94
|
+
case 0x0006:
|
|
95
|
+
case 0x0007:
|
|
96
|
+
case 0x0008:
|
|
97
|
+
case 0x000b:
|
|
98
|
+
case 0x000c:
|
|
99
|
+
case 0x000e:
|
|
100
|
+
case 0x000f:
|
|
101
|
+
return false;
|
|
102
|
+
// Has non-printable characters
|
|
103
|
+
|
|
104
|
+
case 0x000d:
|
|
105
|
+
// \r
|
|
106
|
+
return false;
|
|
107
|
+
// Has \r or \r\n which will be replaced as \n
|
|
108
|
+
|
|
109
|
+
case 10:
|
|
110
|
+
// \n
|
|
111
|
+
if (isEmptyLine && !seenNonEmptyLine) {
|
|
112
|
+
return false; // Has leading new line
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
seenNonEmptyLine = true;
|
|
116
|
+
isEmptyLine = true;
|
|
117
|
+
hasIndent = false;
|
|
118
|
+
break;
|
|
119
|
+
|
|
120
|
+
case 9: // \t
|
|
121
|
+
|
|
122
|
+
case 32:
|
|
123
|
+
// <space>
|
|
124
|
+
hasIndent || (hasIndent = isEmptyLine);
|
|
125
|
+
break;
|
|
126
|
+
|
|
127
|
+
default:
|
|
128
|
+
hasCommonIndent && (hasCommonIndent = hasIndent);
|
|
129
|
+
isEmptyLine = false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (isEmptyLine) {
|
|
134
|
+
return false; // Has trailing empty lines
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (hasCommonIndent && seenNonEmptyLine) {
|
|
138
|
+
return false; // Has internal indent
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Print a block string in the indented block form by adding a leading and
|
|
145
|
+
* trailing blank line. However, if a block string starts with whitespace and is
|
|
146
|
+
* a single-line, adding a leading blank line would strip that whitespace.
|
|
147
|
+
*
|
|
148
|
+
* @internal
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
function printBlockString(value, options) {
|
|
152
|
+
const escapedValue = value.replace(/"""/g, '\\"""'); // Expand a block string's raw value into independent lines.
|
|
153
|
+
|
|
154
|
+
const lines = escapedValue.split(/\r\n|[\n\r]/g);
|
|
155
|
+
const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line
|
|
156
|
+
|
|
157
|
+
const forceLeadingNewLine =
|
|
158
|
+
lines.length > 1 &&
|
|
159
|
+
lines
|
|
160
|
+
.slice(1)
|
|
161
|
+
.every(
|
|
162
|
+
(line) =>
|
|
163
|
+
line.length === 0 ||
|
|
164
|
+
(0, _characterClasses.isWhiteSpace)(line.charCodeAt(0)),
|
|
165
|
+
); // Trailing triple quotes just looks confusing but doesn't force trailing new line
|
|
166
|
+
|
|
167
|
+
const hasTrailingTripleQuotes = escapedValue.endsWith('\\"""'); // Trailing quote (single or double) or slash forces trailing new line
|
|
168
|
+
|
|
169
|
+
const hasTrailingQuote = value.endsWith('"') && !hasTrailingTripleQuotes;
|
|
170
|
+
const hasTrailingSlash = value.endsWith('\\');
|
|
171
|
+
const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;
|
|
172
|
+
const printAsMultipleLines =
|
|
173
|
+
!(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability
|
|
174
|
+
(!isSingleLine ||
|
|
175
|
+
value.length > 70 ||
|
|
176
|
+
forceTrailingNewline ||
|
|
177
|
+
forceLeadingNewLine ||
|
|
178
|
+
hasTrailingTripleQuotes);
|
|
179
|
+
let result = ''; // Format a multi-line block quote to account for leading space.
|
|
180
|
+
|
|
181
|
+
const skipLeadingNewLine =
|
|
182
|
+
isSingleLine && (0, _characterClasses.isWhiteSpace)(value.charCodeAt(0));
|
|
183
|
+
|
|
184
|
+
if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {
|
|
185
|
+
result += '\n';
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
result += escapedValue;
|
|
189
|
+
|
|
190
|
+
if (printAsMultipleLines || forceTrailingNewline) {
|
|
191
|
+
result += '\n';
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
return '"""' + result + '"""';
|
|
195
|
+
}
|