@tinacms/app 1.1.0 → 1.1.2

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.
Files changed (136) hide show
  1. package/appFiles/node_modules/.package-lock.json +29 -28
  2. package/appFiles/node_modules/@babel/generator/lib/buffer.js +34 -10
  3. package/appFiles/node_modules/@babel/generator/lib/buffer.js.map +1 -1
  4. package/appFiles/node_modules/@babel/generator/lib/generators/classes.js +3 -4
  5. package/appFiles/node_modules/@babel/generator/lib/generators/classes.js.map +1 -1
  6. package/appFiles/node_modules/@babel/generator/lib/generators/expressions.js +7 -0
  7. package/appFiles/node_modules/@babel/generator/lib/generators/expressions.js.map +1 -1
  8. package/appFiles/node_modules/@babel/generator/lib/generators/methods.js +51 -8
  9. package/appFiles/node_modules/@babel/generator/lib/generators/methods.js.map +1 -1
  10. package/appFiles/node_modules/@babel/generator/lib/generators/modules.js +7 -10
  11. package/appFiles/node_modules/@babel/generator/lib/generators/modules.js.map +1 -1
  12. package/appFiles/node_modules/@babel/generator/lib/generators/types.js +2 -0
  13. package/appFiles/node_modules/@babel/generator/lib/generators/types.js.map +1 -1
  14. package/appFiles/node_modules/@babel/generator/lib/generators/typescript.js +2 -2
  15. package/appFiles/node_modules/@babel/generator/lib/generators/typescript.js.map +1 -1
  16. package/appFiles/node_modules/@babel/generator/lib/index.js +1 -1
  17. package/appFiles/node_modules/@babel/generator/lib/index.js.map +1 -1
  18. package/appFiles/node_modules/@babel/generator/lib/node/parentheses.js.map +1 -1
  19. package/appFiles/node_modules/@babel/generator/lib/printer.js +7 -0
  20. package/appFiles/node_modules/@babel/generator/lib/printer.js.map +1 -1
  21. package/appFiles/node_modules/@babel/generator/lib/source-map.js +40 -9
  22. package/appFiles/node_modules/@babel/generator/lib/source-map.js.map +1 -1
  23. package/appFiles/node_modules/@babel/generator/package.json +5 -5
  24. package/appFiles/node_modules/@babel/helper-function-name/lib/index.js +0 -31
  25. package/appFiles/node_modules/@babel/helper-function-name/lib/index.js.map +1 -1
  26. package/appFiles/node_modules/@babel/helper-function-name/package.json +3 -3
  27. package/appFiles/node_modules/@babel/parser/lib/index.js +1901 -1885
  28. package/appFiles/node_modules/@babel/parser/lib/index.js.map +1 -1
  29. package/appFiles/node_modules/@babel/parser/package.json +2 -2
  30. package/appFiles/node_modules/@babel/parser/typings/babel-parser.d.ts +12 -0
  31. package/appFiles/node_modules/@babel/runtime/helpers/applyDecs2203R.js +173 -170
  32. package/appFiles/node_modules/@babel/runtime/helpers/applyDecs2301.js +221 -0
  33. package/appFiles/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js +173 -170
  34. package/appFiles/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js +220 -0
  35. package/appFiles/node_modules/@babel/runtime/package.json +10 -1
  36. package/appFiles/node_modules/@babel/traverse/lib/path/modification.js.map +1 -1
  37. package/appFiles/node_modules/@babel/traverse/lib/visitors.js +11 -5
  38. package/appFiles/node_modules/@babel/traverse/lib/visitors.js.map +1 -1
  39. package/appFiles/node_modules/@babel/traverse/package.json +5 -5
  40. package/appFiles/node_modules/@babel/types/lib/asserts/generated/index.js +12 -7
  41. package/appFiles/node_modules/@babel/types/lib/asserts/generated/index.js.map +1 -1
  42. package/appFiles/node_modules/@babel/types/lib/ast-types/generated/index.js.map +1 -1
  43. package/appFiles/node_modules/@babel/types/lib/builders/generated/index.js +5 -5
  44. package/appFiles/node_modules/@babel/types/lib/builders/generated/index.js.map +1 -1
  45. package/appFiles/node_modules/@babel/types/lib/clone/cloneNode.js +2 -6
  46. package/appFiles/node_modules/@babel/types/lib/clone/cloneNode.js.map +1 -1
  47. package/appFiles/node_modules/@babel/types/lib/constants/generated/index.js +5 -4
  48. package/appFiles/node_modules/@babel/types/lib/constants/generated/index.js.map +1 -1
  49. package/appFiles/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +0 -3
  50. package/appFiles/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +1 -1
  51. package/appFiles/node_modules/@babel/types/lib/converters/toComputedKey.js +1 -2
  52. package/appFiles/node_modules/@babel/types/lib/converters/toComputedKey.js.map +1 -1
  53. package/appFiles/node_modules/@babel/types/lib/converters/toExpression.js +0 -3
  54. package/appFiles/node_modules/@babel/types/lib/converters/toExpression.js.map +1 -1
  55. package/appFiles/node_modules/@babel/types/lib/converters/toIdentifier.js +0 -3
  56. package/appFiles/node_modules/@babel/types/lib/converters/toIdentifier.js.map +1 -1
  57. package/appFiles/node_modules/@babel/types/lib/converters/toKeyAlias.js +0 -3
  58. package/appFiles/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +1 -1
  59. package/appFiles/node_modules/@babel/types/lib/converters/toSequenceExpression.js +0 -1
  60. package/appFiles/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +1 -1
  61. package/appFiles/node_modules/@babel/types/lib/converters/toStatement.js +0 -3
  62. package/appFiles/node_modules/@babel/types/lib/converters/toStatement.js.map +1 -1
  63. package/appFiles/node_modules/@babel/types/lib/converters/valueToNode.js +1 -9
  64. package/appFiles/node_modules/@babel/types/lib/converters/valueToNode.js.map +1 -1
  65. package/appFiles/node_modules/@babel/types/lib/definitions/core.js +21 -57
  66. package/appFiles/node_modules/@babel/types/lib/definitions/core.js.map +1 -1
  67. package/appFiles/node_modules/@babel/types/lib/definitions/deprecated-aliases.js +12 -0
  68. package/appFiles/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map +1 -0
  69. package/appFiles/node_modules/@babel/types/lib/definitions/experimental.js +0 -3
  70. package/appFiles/node_modules/@babel/types/lib/definitions/experimental.js.map +1 -1
  71. package/appFiles/node_modules/@babel/types/lib/definitions/flow.js +0 -1
  72. package/appFiles/node_modules/@babel/types/lib/definitions/flow.js.map +1 -1
  73. package/appFiles/node_modules/@babel/types/lib/definitions/index.js +10 -0
  74. package/appFiles/node_modules/@babel/types/lib/definitions/index.js.map +1 -1
  75. package/appFiles/node_modules/@babel/types/lib/definitions/typescript.js +6 -4
  76. package/appFiles/node_modules/@babel/types/lib/definitions/typescript.js.map +1 -1
  77. package/appFiles/node_modules/@babel/types/lib/definitions/utils.js +0 -2
  78. package/appFiles/node_modules/@babel/types/lib/definitions/utils.js.map +1 -1
  79. package/appFiles/node_modules/@babel/types/lib/index-legacy.d.ts +10 -3
  80. package/appFiles/node_modules/@babel/types/lib/index.d.ts +23 -6
  81. package/appFiles/node_modules/@babel/types/lib/index.js +9 -2
  82. package/appFiles/node_modules/@babel/types/lib/index.js.flow +8 -3
  83. package/appFiles/node_modules/@babel/types/lib/index.js.map +1 -1
  84. package/appFiles/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +1 -9
  85. package/appFiles/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +1 -1
  86. package/appFiles/node_modules/@babel/types/lib/modifications/inherits.js +0 -3
  87. package/appFiles/node_modules/@babel/types/lib/modifications/inherits.js.map +1 -1
  88. package/appFiles/node_modules/@babel/types/lib/modifications/removeProperties.js +1 -3
  89. package/appFiles/node_modules/@babel/types/lib/modifications/removeProperties.js.map +1 -1
  90. package/appFiles/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +0 -8
  91. package/appFiles/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +1 -1
  92. package/appFiles/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +2 -6
  93. package/appFiles/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +1 -1
  94. package/appFiles/node_modules/@babel/types/lib/traverse/traverseFast.js +1 -2
  95. package/appFiles/node_modules/@babel/types/lib/traverse/traverseFast.js.map +1 -1
  96. package/appFiles/node_modules/@babel/types/lib/utils/deprecationWarning.js +30 -0
  97. package/appFiles/node_modules/@babel/types/lib/utils/deprecationWarning.js.map +1 -0
  98. package/appFiles/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +0 -3
  99. package/appFiles/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +1 -1
  100. package/appFiles/node_modules/@babel/types/lib/utils/shallowEqual.js +1 -2
  101. package/appFiles/node_modules/@babel/types/lib/utils/shallowEqual.js.map +1 -1
  102. package/appFiles/node_modules/@babel/types/lib/validators/generated/index.js +11 -6
  103. package/appFiles/node_modules/@babel/types/lib/validators/generated/index.js.map +1 -1
  104. package/appFiles/node_modules/@babel/types/lib/validators/isBinding.js +2 -4
  105. package/appFiles/node_modules/@babel/types/lib/validators/isBinding.js.map +1 -1
  106. package/appFiles/node_modules/@babel/types/lib/validators/isLet.js +1 -2
  107. package/appFiles/node_modules/@babel/types/lib/validators/isLet.js.map +1 -1
  108. package/appFiles/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +1 -2
  109. package/appFiles/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +1 -1
  110. package/appFiles/node_modules/@babel/types/lib/validators/isReferenced.js +0 -21
  111. package/appFiles/node_modules/@babel/types/lib/validators/isReferenced.js.map +1 -1
  112. package/appFiles/node_modules/@babel/types/lib/validators/isScope.js +0 -1
  113. package/appFiles/node_modules/@babel/types/lib/validators/isScope.js.map +1 -1
  114. package/appFiles/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +1 -2
  115. package/appFiles/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +1 -1
  116. package/appFiles/node_modules/@babel/types/lib/validators/isType.js +0 -1
  117. package/appFiles/node_modules/@babel/types/lib/validators/isType.js.map +1 -1
  118. package/appFiles/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +0 -1
  119. package/appFiles/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +1 -1
  120. package/appFiles/node_modules/@babel/types/lib/validators/isVar.js +1 -2
  121. package/appFiles/node_modules/@babel/types/lib/validators/isVar.js.map +1 -1
  122. package/appFiles/node_modules/@babel/types/package.json +3 -3
  123. package/appFiles/node_modules/css-to-react-native/index.d.ts +17 -0
  124. package/appFiles/node_modules/css-to-react-native/index.js +15 -0
  125. package/appFiles/node_modules/css-to-react-native/package.json +2 -1
  126. package/appFiles/node_modules/css-to-react-native/src/__tests__/aspectRatio.js +23 -0
  127. package/appFiles/node_modules/css-to-react-native/src/transforms/aspectRatio.js +12 -0
  128. package/appFiles/node_modules/css-to-react-native/src/transforms/index.js +2 -0
  129. package/appFiles/src/App.tsx +3 -5
  130. package/appFiles/src/fields/rich-text/monaco/error-message.tsx +1 -1
  131. package/appFiles/src/fields/rich-text/monaco/mdx.js +13517 -8946
  132. package/appFiles/src/lib/machines/document-machine.ts +4 -9
  133. package/appFiles/src/lib/machines/query-machine.ts +0 -13
  134. package/appFiles/src/preview.tsx +23 -0
  135. package/dist/index.js +3 -1
  136. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"names":["VISITOR_KEYS","ALIAS_KEYS","FLIPPED_ALIAS_KEYS","NODE_FIELDS","BUILDER_KEYS","DEPRECATED_KEYS","NODE_PARENT_VALIDATIONS","getType","val","Array","isArray","validate","typeIs","typeName","assertNodeType","validateType","validateOptional","optional","validateOptionalType","arrayOf","elementType","chain","assertValueType","assertEach","arrayOfType","validateArrayOfType","callback","validator","node","key","i","length","subkey","v","process","env","BABEL_TYPES_8_BREAKING","validateChild","each","assertOneOf","values","indexOf","TypeError","JSON","stringify","oneOf","types","type","is","oneOfNodeTypes","assertNodeOrValueType","oneOfNodeOrValueTypes","valid","assertShape","shape","errors","property","Object","keys","validateField","error","push","message","join","shapeOf","assertOptionalChainStart","current","callee","object","fns","args","fn","chainOf","Error","validTypeOpts","validFieldKeys","store","defineAliasedType","aliases","opts","defined","inherits","slice","additional","filter","a","includes","unshift","defineType","fields","getOwnPropertyNames","field","def","default","visitor","builder","k","deprecatedAlias","concat","undefined","forEach","alias"],"sources":["../../src/definitions/utils.ts"],"sourcesContent":["import is from \"../validators/is\";\nimport { validateField, validateChild } from \"../validators/validate\";\nimport type * as t from \"..\";\n\nexport const VISITOR_KEYS: Record<string, string[]> = {};\nexport const ALIAS_KEYS: Partial<Record<NodeTypesWithoutComment, string[]>> =\n {};\nexport const FLIPPED_ALIAS_KEYS: Record<string, NodeTypesWithoutComment[]> = {};\nexport const NODE_FIELDS: Record<string, FieldDefinitions> = {};\nexport const BUILDER_KEYS: Record<string, string[]> = {};\nexport const DEPRECATED_KEYS: Record<string, NodeTypesWithoutComment> = {};\nexport const NODE_PARENT_VALIDATIONS: Record<string, Validator> = {};\n\nfunction getType(val: any) {\n if (Array.isArray(val)) {\n return \"array\";\n } else if (val === null) {\n return \"null\";\n } else {\n return typeof val;\n }\n}\n\ntype NodeTypesWithoutComment = t.Node[\"type\"] | keyof t.Aliases;\n\ntype NodeTypes = NodeTypesWithoutComment | t.Comment[\"type\"];\n\ntype PrimitiveTypes = ReturnType<typeof getType>;\n\ntype FieldDefinitions = {\n [x: string]: FieldOptions;\n};\n\ntype DefineTypeOpts = {\n fields?: FieldDefinitions;\n visitor?: Array<string>;\n aliases?: Array<string>;\n builder?: Array<string>;\n inherits?: NodeTypes;\n deprecatedAlias?: string;\n validate?: Validator;\n};\n\nexport type Validator = (\n | { type: PrimitiveTypes }\n | { each: Validator }\n | { chainOf: Validator[] }\n | { oneOf: any[] }\n | { oneOfNodeTypes: NodeTypes[] }\n | { oneOfNodeOrValueTypes: (NodeTypes | PrimitiveTypes)[] }\n | { shapeOf: { [x: string]: FieldOptions } }\n | {}\n) &\n ((node: t.Node, key: string, val: any) => void);\n\nexport type FieldOptions = {\n default?: string | number | boolean | [];\n optional?: boolean;\n validate?: Validator;\n};\n\nexport function validate(validate: Validator): FieldOptions {\n return { validate };\n}\n\nexport function typeIs(typeName: NodeTypes | NodeTypes[]) {\n return typeof typeName === \"string\"\n ? assertNodeType(typeName)\n : assertNodeType(...typeName);\n}\n\nexport function validateType(typeName: NodeTypes | NodeTypes[]) {\n return validate(typeIs(typeName));\n}\n\nexport function validateOptional(validate: Validator): FieldOptions {\n return { validate, optional: true };\n}\n\nexport function validateOptionalType(\n typeName: NodeTypes | NodeTypes[],\n): FieldOptions {\n return { validate: typeIs(typeName), optional: true };\n}\n\nexport function arrayOf(elementType: Validator): Validator {\n return chain(assertValueType(\"array\"), assertEach(elementType));\n}\n\nexport function arrayOfType(typeName: NodeTypes | NodeTypes[]) {\n return arrayOf(typeIs(typeName));\n}\n\nexport function validateArrayOfType(typeName: NodeTypes | NodeTypes[]) {\n return validate(arrayOfType(typeName));\n}\n\nexport function assertEach(callback: Validator): Validator {\n function validator(node: t.Node, key: string, val: any) {\n if (!Array.isArray(val)) return;\n\n for (let i = 0; i < val.length; i++) {\n const subkey = `${key}[${i}]`;\n const v = val[i];\n callback(node, subkey, v);\n if (process.env.BABEL_TYPES_8_BREAKING) validateChild(node, subkey, v);\n }\n }\n validator.each = callback;\n return validator;\n}\n\nexport function assertOneOf(...values: Array<any>): Validator {\n function validate(node: any, key: string, val: any) {\n if (values.indexOf(val) < 0) {\n throw new TypeError(\n `Property ${key} expected value to be one of ${JSON.stringify(\n values,\n )} but got ${JSON.stringify(val)}`,\n );\n }\n }\n\n validate.oneOf = values;\n\n return validate;\n}\n\nexport function assertNodeType(...types: NodeTypes[]): Validator {\n function validate(node: t.Node, key: string, val: any) {\n for (const type of types) {\n if (is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(val?.type)}`,\n );\n }\n\n validate.oneOfNodeTypes = types;\n\n return validate;\n}\n\nexport function assertNodeOrValueType(\n ...types: (NodeTypes | PrimitiveTypes)[]\n): Validator {\n function validate(node: t.Node, key: string, val: any) {\n for (const type of types) {\n if (getType(val) === type || is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(val?.type)}`,\n );\n }\n\n validate.oneOfNodeOrValueTypes = types;\n\n return validate;\n}\n\nexport function assertValueType(type: PrimitiveTypes): Validator {\n function validate(node: t.Node, key: string, val: any) {\n const valid = getType(val) === type;\n\n if (!valid) {\n throw new TypeError(\n `Property ${key} expected type of ${type} but got ${getType(val)}`,\n );\n }\n }\n\n validate.type = type;\n\n return validate;\n}\n\nexport function assertShape(shape: { [x: string]: FieldOptions }): Validator {\n function validate(node: t.Node, key: string, val: any) {\n const errors = [];\n for (const property of Object.keys(shape)) {\n try {\n validateField(node, property, val[property], shape[property]);\n } catch (error) {\n if (error instanceof TypeError) {\n errors.push(error.message);\n continue;\n }\n throw error;\n }\n }\n if (errors.length) {\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected to have the following:\\n${errors.join(\"\\n\")}`,\n );\n }\n }\n\n validate.shapeOf = shape;\n\n return validate;\n}\n\nexport function assertOptionalChainStart(): Validator {\n function validate(node: t.Node) {\n let current = node;\n while (node) {\n const { type } = current;\n if (type === \"OptionalCallExpression\") {\n if (current.optional) return;\n current = current.callee;\n continue;\n }\n\n if (type === \"OptionalMemberExpression\") {\n if (current.optional) return;\n current = current.object;\n continue;\n }\n\n break;\n }\n\n throw new TypeError(\n `Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${current?.type}`,\n );\n }\n\n return validate;\n}\n\nexport function chain(...fns: Array<Validator>): Validator {\n function validate(...args: Parameters<Validator>) {\n for (const fn of fns) {\n fn(...args);\n }\n }\n validate.chainOf = fns;\n\n if (\n fns.length >= 2 &&\n \"type\" in fns[0] &&\n fns[0].type === \"array\" &&\n !(\"each\" in fns[1])\n ) {\n throw new Error(\n `An assertValueType(\"array\") validator can only be followed by an assertEach(...) validator.`,\n );\n }\n\n return validate;\n}\n\nconst validTypeOpts = [\n \"aliases\",\n \"builder\",\n \"deprecatedAlias\",\n \"fields\",\n \"inherits\",\n \"visitor\",\n \"validate\",\n];\nconst validFieldKeys = [\"default\", \"optional\", \"validate\"];\n\nconst store = {} as Record<string, DefineTypeOpts>;\n\n// Wraps defineType to ensure these aliases are included.\nexport function defineAliasedType(...aliases: string[]) {\n return (type: string, opts: DefineTypeOpts = {}) => {\n let defined = opts.aliases;\n if (!defined) {\n if (opts.inherits) defined = store[opts.inherits].aliases?.slice();\n defined ??= [];\n opts.aliases = defined;\n }\n const additional = aliases.filter(a => !defined.includes(a));\n defined.unshift(...additional);\n return defineType(type, opts);\n };\n}\n\nexport default function defineType(type: string, opts: DefineTypeOpts = {}) {\n const inherits = (opts.inherits && store[opts.inherits]) || {};\n\n let fields = opts.fields;\n if (!fields) {\n fields = {};\n if (inherits.fields) {\n const keys = Object.getOwnPropertyNames(inherits.fields);\n for (const key of keys) {\n const field = inherits.fields[key];\n const def = field.default;\n if (\n Array.isArray(def) ? def.length > 0 : def && typeof def === \"object\"\n ) {\n throw new Error(\n \"field defaults can only be primitives or empty arrays currently\",\n );\n }\n fields[key] = {\n default: Array.isArray(def) ? [] : def,\n optional: field.optional,\n validate: field.validate,\n };\n }\n }\n }\n\n const visitor: Array<string> = opts.visitor || inherits.visitor || [];\n const aliases: Array<string> = opts.aliases || inherits.aliases || [];\n const builder: Array<string> =\n opts.builder || inherits.builder || opts.visitor || [];\n\n for (const k of Object.keys(opts)) {\n if (validTypeOpts.indexOf(k) === -1) {\n throw new Error(`Unknown type option \"${k}\" on ${type}`);\n }\n }\n\n if (opts.deprecatedAlias) {\n DEPRECATED_KEYS[opts.deprecatedAlias] = type as NodeTypesWithoutComment;\n }\n\n // ensure all field keys are represented in `fields`\n for (const key of visitor.concat(builder)) {\n fields[key] = fields[key] || {};\n }\n\n for (const key of Object.keys(fields)) {\n const field = fields[key];\n\n if (field.default !== undefined && builder.indexOf(key) === -1) {\n field.optional = true;\n }\n if (field.default === undefined) {\n field.default = null;\n } else if (!field.validate && field.default != null) {\n field.validate = assertValueType(getType(field.default));\n }\n\n for (const k of Object.keys(field)) {\n if (validFieldKeys.indexOf(k) === -1) {\n throw new Error(`Unknown field key \"${k}\" on ${type}.${key}`);\n }\n }\n }\n\n VISITOR_KEYS[type] = opts.visitor = visitor;\n BUILDER_KEYS[type] = opts.builder = builder;\n NODE_FIELDS[type] = opts.fields = fields;\n ALIAS_KEYS[type as NodeTypesWithoutComment] = opts.aliases = aliases;\n aliases.forEach(alias => {\n FLIPPED_ALIAS_KEYS[alias] = FLIPPED_ALIAS_KEYS[alias] || [];\n FLIPPED_ALIAS_KEYS[alias].push(type as NodeTypesWithoutComment);\n });\n\n if (opts.validate) {\n NODE_PARENT_VALIDATIONS[type] = opts.validate;\n }\n\n store[type] = opts;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["VISITOR_KEYS","ALIAS_KEYS","FLIPPED_ALIAS_KEYS","NODE_FIELDS","BUILDER_KEYS","DEPRECATED_KEYS","NODE_PARENT_VALIDATIONS","getType","val","Array","isArray","validate","typeIs","typeName","assertNodeType","validateType","validateOptional","optional","validateOptionalType","arrayOf","elementType","chain","assertValueType","assertEach","arrayOfType","validateArrayOfType","callback","validator","node","key","i","length","subkey","v","process","env","BABEL_TYPES_8_BREAKING","validateChild","each","assertOneOf","values","indexOf","TypeError","JSON","stringify","oneOf","types","type","is","oneOfNodeTypes","assertNodeOrValueType","oneOfNodeOrValueTypes","valid","assertShape","shape","errors","property","Object","keys","validateField","error","push","message","join","shapeOf","assertOptionalChainStart","current","callee","object","fns","args","fn","chainOf","Error","validTypeOpts","validFieldKeys","store","defineAliasedType","aliases","opts","defined","inherits","slice","additional","filter","a","includes","unshift","defineType","fields","getOwnPropertyNames","field","def","default","visitor","builder","k","deprecatedAlias","concat","undefined","forEach","alias"],"sources":["../../src/definitions/utils.ts"],"sourcesContent":["import is from \"../validators/is\";\nimport { validateField, validateChild } from \"../validators/validate\";\nimport type * as t from \"..\";\n\nexport const VISITOR_KEYS: Record<string, string[]> = {};\nexport const ALIAS_KEYS: Partial<Record<NodeTypesWithoutComment, string[]>> =\n {};\nexport const FLIPPED_ALIAS_KEYS: Record<string, NodeTypesWithoutComment[]> = {};\nexport const NODE_FIELDS: Record<string, FieldDefinitions> = {};\nexport const BUILDER_KEYS: Record<string, string[]> = {};\nexport const DEPRECATED_KEYS: Record<string, NodeTypesWithoutComment> = {};\nexport const NODE_PARENT_VALIDATIONS: Record<string, Validator> = {};\n\nfunction getType(val: any) {\n if (Array.isArray(val)) {\n return \"array\";\n } else if (val === null) {\n return \"null\";\n } else {\n return typeof val;\n }\n}\n\ntype NodeTypesWithoutComment = t.Node[\"type\"] | keyof t.Aliases;\n\ntype NodeTypes = NodeTypesWithoutComment | t.Comment[\"type\"];\n\ntype PrimitiveTypes = ReturnType<typeof getType>;\n\ntype FieldDefinitions = {\n [x: string]: FieldOptions;\n};\n\ntype DefineTypeOpts = {\n fields?: FieldDefinitions;\n visitor?: Array<string>;\n aliases?: Array<string>;\n builder?: Array<string>;\n inherits?: NodeTypes;\n deprecatedAlias?: string;\n validate?: Validator;\n};\n\nexport type Validator = (\n | { type: PrimitiveTypes }\n | { each: Validator }\n | { chainOf: Validator[] }\n | { oneOf: any[] }\n | { oneOfNodeTypes: NodeTypes[] }\n | { oneOfNodeOrValueTypes: (NodeTypes | PrimitiveTypes)[] }\n | { shapeOf: { [x: string]: FieldOptions } }\n | {}\n) &\n ((node: t.Node, key: string, val: any) => void);\n\nexport type FieldOptions = {\n default?: string | number | boolean | [];\n optional?: boolean;\n validate?: Validator;\n};\n\nexport function validate(validate: Validator): FieldOptions {\n return { validate };\n}\n\nexport function typeIs(typeName: NodeTypes | NodeTypes[]) {\n return typeof typeName === \"string\"\n ? assertNodeType(typeName)\n : assertNodeType(...typeName);\n}\n\nexport function validateType(typeName: NodeTypes | NodeTypes[]) {\n return validate(typeIs(typeName));\n}\n\nexport function validateOptional(validate: Validator): FieldOptions {\n return { validate, optional: true };\n}\n\nexport function validateOptionalType(\n typeName: NodeTypes | NodeTypes[],\n): FieldOptions {\n return { validate: typeIs(typeName), optional: true };\n}\n\nexport function arrayOf(elementType: Validator): Validator {\n return chain(assertValueType(\"array\"), assertEach(elementType));\n}\n\nexport function arrayOfType(typeName: NodeTypes | NodeTypes[]) {\n return arrayOf(typeIs(typeName));\n}\n\nexport function validateArrayOfType(typeName: NodeTypes | NodeTypes[]) {\n return validate(arrayOfType(typeName));\n}\n\nexport function assertEach(callback: Validator): Validator {\n function validator(node: t.Node, key: string, val: any) {\n if (!Array.isArray(val)) return;\n\n for (let i = 0; i < val.length; i++) {\n const subkey = `${key}[${i}]`;\n const v = val[i];\n callback(node, subkey, v);\n if (process.env.BABEL_TYPES_8_BREAKING) validateChild(node, subkey, v);\n }\n }\n validator.each = callback;\n return validator;\n}\n\nexport function assertOneOf(...values: Array<any>): Validator {\n function validate(node: any, key: string, val: any) {\n if (values.indexOf(val) < 0) {\n throw new TypeError(\n `Property ${key} expected value to be one of ${JSON.stringify(\n values,\n )} but got ${JSON.stringify(val)}`,\n );\n }\n }\n\n validate.oneOf = values;\n\n return validate;\n}\n\nexport function assertNodeType(...types: NodeTypes[]): Validator {\n function validate(node: t.Node, key: string, val: any) {\n for (const type of types) {\n if (is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(val?.type)}`,\n );\n }\n\n validate.oneOfNodeTypes = types;\n\n return validate;\n}\n\nexport function assertNodeOrValueType(\n ...types: (NodeTypes | PrimitiveTypes)[]\n): Validator {\n function validate(node: t.Node, key: string, val: any) {\n for (const type of types) {\n if (getType(val) === type || is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(val?.type)}`,\n );\n }\n\n validate.oneOfNodeOrValueTypes = types;\n\n return validate;\n}\n\nexport function assertValueType(type: PrimitiveTypes): Validator {\n function validate(node: t.Node, key: string, val: any) {\n const valid = getType(val) === type;\n\n if (!valid) {\n throw new TypeError(\n `Property ${key} expected type of ${type} but got ${getType(val)}`,\n );\n }\n }\n\n validate.type = type;\n\n return validate;\n}\n\nexport function assertShape(shape: { [x: string]: FieldOptions }): Validator {\n function validate(node: t.Node, key: string, val: any) {\n const errors = [];\n for (const property of Object.keys(shape)) {\n try {\n validateField(node, property, val[property], shape[property]);\n } catch (error) {\n if (error instanceof TypeError) {\n errors.push(error.message);\n continue;\n }\n throw error;\n }\n }\n if (errors.length) {\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected to have the following:\\n${errors.join(\"\\n\")}`,\n );\n }\n }\n\n validate.shapeOf = shape;\n\n return validate;\n}\n\nexport function assertOptionalChainStart(): Validator {\n function validate(node: t.Node) {\n let current = node;\n while (node) {\n const { type } = current;\n if (type === \"OptionalCallExpression\") {\n if (current.optional) return;\n current = current.callee;\n continue;\n }\n\n if (type === \"OptionalMemberExpression\") {\n if (current.optional) return;\n current = current.object;\n continue;\n }\n\n break;\n }\n\n throw new TypeError(\n `Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${current?.type}`,\n );\n }\n\n return validate;\n}\n\nexport function chain(...fns: Array<Validator>): Validator {\n function validate(...args: Parameters<Validator>) {\n for (const fn of fns) {\n fn(...args);\n }\n }\n validate.chainOf = fns;\n\n if (\n fns.length >= 2 &&\n \"type\" in fns[0] &&\n fns[0].type === \"array\" &&\n !(\"each\" in fns[1])\n ) {\n throw new Error(\n `An assertValueType(\"array\") validator can only be followed by an assertEach(...) validator.`,\n );\n }\n\n return validate;\n}\n\nconst validTypeOpts = [\n \"aliases\",\n \"builder\",\n \"deprecatedAlias\",\n \"fields\",\n \"inherits\",\n \"visitor\",\n \"validate\",\n];\nconst validFieldKeys = [\"default\", \"optional\", \"validate\"];\n\nconst store = {} as Record<string, DefineTypeOpts>;\n\n// Wraps defineType to ensure these aliases are included.\nexport function defineAliasedType(...aliases: string[]) {\n return (type: string, opts: DefineTypeOpts = {}) => {\n let defined = opts.aliases;\n if (!defined) {\n if (opts.inherits) defined = store[opts.inherits].aliases?.slice();\n defined ??= [];\n opts.aliases = defined;\n }\n const additional = aliases.filter(a => !defined.includes(a));\n defined.unshift(...additional);\n return defineType(type, opts);\n };\n}\n\nexport default function defineType(type: string, opts: DefineTypeOpts = {}) {\n const inherits = (opts.inherits && store[opts.inherits]) || {};\n\n let fields = opts.fields;\n if (!fields) {\n fields = {};\n if (inherits.fields) {\n const keys = Object.getOwnPropertyNames(inherits.fields);\n for (const key of keys) {\n const field = inherits.fields[key];\n const def = field.default;\n if (\n Array.isArray(def) ? def.length > 0 : def && typeof def === \"object\"\n ) {\n throw new Error(\n \"field defaults can only be primitives or empty arrays currently\",\n );\n }\n fields[key] = {\n default: Array.isArray(def) ? [] : def,\n optional: field.optional,\n validate: field.validate,\n };\n }\n }\n }\n\n const visitor: Array<string> = opts.visitor || inherits.visitor || [];\n const aliases: Array<string> = opts.aliases || inherits.aliases || [];\n const builder: Array<string> =\n opts.builder || inherits.builder || opts.visitor || [];\n\n for (const k of Object.keys(opts)) {\n if (validTypeOpts.indexOf(k) === -1) {\n throw new Error(`Unknown type option \"${k}\" on ${type}`);\n }\n }\n\n if (opts.deprecatedAlias) {\n DEPRECATED_KEYS[opts.deprecatedAlias] = type as NodeTypesWithoutComment;\n }\n\n // ensure all field keys are represented in `fields`\n for (const key of visitor.concat(builder)) {\n fields[key] = fields[key] || {};\n }\n\n for (const key of Object.keys(fields)) {\n const field = fields[key];\n\n if (field.default !== undefined && builder.indexOf(key) === -1) {\n field.optional = true;\n }\n if (field.default === undefined) {\n field.default = null;\n } else if (!field.validate && field.default != null) {\n field.validate = assertValueType(getType(field.default));\n }\n\n for (const k of Object.keys(field)) {\n if (validFieldKeys.indexOf(k) === -1) {\n throw new Error(`Unknown field key \"${k}\" on ${type}.${key}`);\n }\n }\n }\n\n VISITOR_KEYS[type] = opts.visitor = visitor;\n BUILDER_KEYS[type] = opts.builder = builder;\n NODE_FIELDS[type] = opts.fields = fields;\n ALIAS_KEYS[type as NodeTypesWithoutComment] = opts.aliases = aliases;\n aliases.forEach(alias => {\n FLIPPED_ALIAS_KEYS[alias] = FLIPPED_ALIAS_KEYS[alias] || [];\n FLIPPED_ALIAS_KEYS[alias].push(type as NodeTypesWithoutComment);\n });\n\n if (opts.validate) {\n NODE_PARENT_VALIDATIONS[type] = opts.validate;\n }\n\n store[type] = opts;\n}\n"],"mappings":"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"}
@@ -42,7 +42,7 @@ interface BaseNode {
42
42
  extra?: Record<string, unknown>;
43
43
  }
44
44
 
45
- export type Node = Accessor | AnyTypeAnnotation | ArgumentPlaceholder | ArrayExpression | ArrayPattern | ArrayTypeAnnotation | ArrowFunctionExpression | AssignmentExpression | AssignmentPattern | AwaitExpression | BigIntLiteral | Binary | BinaryExpression | BindExpression | Block | BlockParent | BlockStatement | BooleanLiteral | BooleanLiteralTypeAnnotation | BooleanTypeAnnotation | BreakStatement | CallExpression | CatchClause | Class | ClassAccessorProperty | ClassBody | ClassDeclaration | ClassExpression | ClassImplements | ClassMethod | ClassPrivateMethod | ClassPrivateProperty | ClassProperty | CompletionStatement | Conditional | ConditionalExpression | ContinueStatement | DebuggerStatement | DecimalLiteral | Declaration | DeclareClass | DeclareExportAllDeclaration | DeclareExportDeclaration | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareOpaqueType | DeclareTypeAlias | DeclareVariable | DeclaredPredicate | Decorator | Directive | DirectiveLiteral | DoExpression | DoWhileStatement | EmptyStatement | EmptyTypeAnnotation | EnumBody | EnumBooleanBody | EnumBooleanMember | EnumDeclaration | EnumDefaultedMember | EnumMember | EnumNumberBody | EnumNumberMember | EnumStringBody | EnumStringMember | EnumSymbolBody | ExistsTypeAnnotation | ExportAllDeclaration | ExportDeclaration | ExportDefaultDeclaration | ExportDefaultSpecifier | ExportNamedDeclaration | ExportNamespaceSpecifier | ExportSpecifier | Expression | ExpressionStatement | ExpressionWrapper | File | Flow | FlowBaseAnnotation | FlowDeclaration | FlowPredicate | FlowType | For | ForInStatement | ForOfStatement | ForStatement | ForXStatement | Function | FunctionDeclaration | FunctionExpression | FunctionParent | FunctionTypeAnnotation | FunctionTypeParam | GenericTypeAnnotation | Identifier | IfStatement | Immutable | Import | ImportAttribute | ImportDeclaration | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | IndexedAccessType | InferredPredicate | InterfaceDeclaration | InterfaceExtends | InterfaceTypeAnnotation | InterpreterDirective | IntersectionTypeAnnotation | JSX | JSXAttribute | JSXClosingElement | JSXClosingFragment | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXFragment | JSXIdentifier | JSXMemberExpression | JSXNamespacedName | JSXOpeningElement | JSXOpeningFragment | JSXSpreadAttribute | JSXSpreadChild | JSXText | LVal | LabeledStatement | Literal | LogicalExpression | Loop | MemberExpression | MetaProperty | Method | Miscellaneous | MixedTypeAnnotation | ModuleDeclaration | ModuleExpression | ModuleSpecifier | NewExpression | Noop | NullLiteral | NullLiteralTypeAnnotation | NullableTypeAnnotation | NumberLiteral | NumberLiteralTypeAnnotation | NumberTypeAnnotation | NumericLiteral | ObjectExpression | ObjectMember | ObjectMethod | ObjectPattern | ObjectProperty | ObjectTypeAnnotation | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeInternalSlot | ObjectTypeProperty | ObjectTypeSpreadProperty | OpaqueType | OptionalCallExpression | OptionalIndexedAccessType | OptionalMemberExpression | ParenthesizedExpression | Pattern | PatternLike | PipelineBareFunction | PipelinePrimaryTopicReference | PipelineTopicExpression | Placeholder | Private | PrivateName | Program | Property | Pureish | QualifiedTypeIdentifier | RecordExpression | RegExpLiteral | RegexLiteral | RestElement | RestProperty | ReturnStatement | Scopable | SequenceExpression | SpreadElement | SpreadProperty | Standardized | Statement | StaticBlock | StringLiteral | StringLiteralTypeAnnotation | StringTypeAnnotation | Super | SwitchCase | SwitchStatement | SymbolTypeAnnotation | TSAnyKeyword | TSArrayType | TSAsExpression | TSBaseType | TSBigIntKeyword | TSBooleanKeyword | TSCallSignatureDeclaration | TSConditionalType | TSConstructSignatureDeclaration | TSConstructorType | TSDeclareFunction | TSDeclareMethod | TSEntityName | TSEnumDeclaration | TSEnumMember | TSExportAssignment | TSExpressionWithTypeArguments | TSExternalModuleReference | TSFunctionType | TSImportEqualsDeclaration | TSImportType | TSIndexSignature | TSIndexedAccessType | TSInferType | TSInstantiationExpression | TSInterfaceBody | TSInterfaceDeclaration | TSIntersectionType | TSIntrinsicKeyword | TSLiteralType | TSMappedType | TSMethodSignature | TSModuleBlock | TSModuleDeclaration | TSNamedTupleMember | TSNamespaceExportDeclaration | TSNeverKeyword | TSNonNullExpression | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSOptionalType | TSParameterProperty | TSParenthesizedType | TSPropertySignature | TSQualifiedName | TSRestType | TSSatisfiesExpression | TSStringKeyword | TSSymbolKeyword | TSThisType | TSTupleType | TSType | TSTypeAliasDeclaration | TSTypeAnnotation | TSTypeAssertion | TSTypeElement | TSTypeLiteral | TSTypeOperator | TSTypeParameter | TSTypeParameterDeclaration | TSTypeParameterInstantiation | TSTypePredicate | TSTypeQuery | TSTypeReference | TSUndefinedKeyword | TSUnionType | TSUnknownKeyword | TSVoidKeyword | TaggedTemplateExpression | TemplateElement | TemplateLiteral | Terminatorless | ThisExpression | ThisTypeAnnotation | ThrowStatement | TopicReference | TryStatement | TupleExpression | TupleTypeAnnotation | TypeAlias | TypeAnnotation | TypeCastExpression | TypeParameter | TypeParameterDeclaration | TypeParameterInstantiation | TypeScript | TypeofTypeAnnotation | UnaryExpression | UnaryLike | UnionTypeAnnotation | UpdateExpression | UserWhitespacable | V8IntrinsicIdentifier | VariableDeclaration | VariableDeclarator | Variance | VoidTypeAnnotation | While | WhileStatement | WithStatement | YieldExpression;
45
+ export type Node = Accessor | AnyTypeAnnotation | ArgumentPlaceholder | ArrayExpression | ArrayPattern | ArrayTypeAnnotation | ArrowFunctionExpression | AssignmentExpression | AssignmentPattern | AwaitExpression | BigIntLiteral | Binary | BinaryExpression | BindExpression | Block | BlockParent | BlockStatement | BooleanLiteral | BooleanLiteralTypeAnnotation | BooleanTypeAnnotation | BreakStatement | CallExpression | CatchClause | Class | ClassAccessorProperty | ClassBody | ClassDeclaration | ClassExpression | ClassImplements | ClassMethod | ClassPrivateMethod | ClassPrivateProperty | ClassProperty | CompletionStatement | Conditional | ConditionalExpression | ContinueStatement | DebuggerStatement | DecimalLiteral | Declaration | DeclareClass | DeclareExportAllDeclaration | DeclareExportDeclaration | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareOpaqueType | DeclareTypeAlias | DeclareVariable | DeclaredPredicate | Decorator | Directive | DirectiveLiteral | DoExpression | DoWhileStatement | EmptyStatement | EmptyTypeAnnotation | EnumBody | EnumBooleanBody | EnumBooleanMember | EnumDeclaration | EnumDefaultedMember | EnumMember | EnumNumberBody | EnumNumberMember | EnumStringBody | EnumStringMember | EnumSymbolBody | ExistsTypeAnnotation | ExportAllDeclaration | ExportDeclaration | ExportDefaultDeclaration | ExportDefaultSpecifier | ExportNamedDeclaration | ExportNamespaceSpecifier | ExportSpecifier | Expression | ExpressionStatement | ExpressionWrapper | File | Flow | FlowBaseAnnotation | FlowDeclaration | FlowPredicate | FlowType | For | ForInStatement | ForOfStatement | ForStatement | ForXStatement | Function | FunctionDeclaration | FunctionExpression | FunctionParent | FunctionTypeAnnotation | FunctionTypeParam | GenericTypeAnnotation | Identifier | IfStatement | Immutable | Import | ImportAttribute | ImportDeclaration | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportOrExportDeclaration | ImportSpecifier | IndexedAccessType | InferredPredicate | InterfaceDeclaration | InterfaceExtends | InterfaceTypeAnnotation | InterpreterDirective | IntersectionTypeAnnotation | JSX | JSXAttribute | JSXClosingElement | JSXClosingFragment | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXFragment | JSXIdentifier | JSXMemberExpression | JSXNamespacedName | JSXOpeningElement | JSXOpeningFragment | JSXSpreadAttribute | JSXSpreadChild | JSXText | LVal | LabeledStatement | Literal | LogicalExpression | Loop | MemberExpression | MetaProperty | Method | Miscellaneous | MixedTypeAnnotation | ModuleDeclaration | ModuleExpression | ModuleSpecifier | NewExpression | Noop | NullLiteral | NullLiteralTypeAnnotation | NullableTypeAnnotation | NumberLiteral | NumberLiteralTypeAnnotation | NumberTypeAnnotation | NumericLiteral | ObjectExpression | ObjectMember | ObjectMethod | ObjectPattern | ObjectProperty | ObjectTypeAnnotation | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeInternalSlot | ObjectTypeProperty | ObjectTypeSpreadProperty | OpaqueType | OptionalCallExpression | OptionalIndexedAccessType | OptionalMemberExpression | ParenthesizedExpression | Pattern | PatternLike | PipelineBareFunction | PipelinePrimaryTopicReference | PipelineTopicExpression | Placeholder | Private | PrivateName | Program | Property | Pureish | QualifiedTypeIdentifier | RecordExpression | RegExpLiteral | RegexLiteral | RestElement | RestProperty | ReturnStatement | Scopable | SequenceExpression | SpreadElement | SpreadProperty | Standardized | Statement | StaticBlock | StringLiteral | StringLiteralTypeAnnotation | StringTypeAnnotation | Super | SwitchCase | SwitchStatement | SymbolTypeAnnotation | TSAnyKeyword | TSArrayType | TSAsExpression | TSBaseType | TSBigIntKeyword | TSBooleanKeyword | TSCallSignatureDeclaration | TSConditionalType | TSConstructSignatureDeclaration | TSConstructorType | TSDeclareFunction | TSDeclareMethod | TSEntityName | TSEnumDeclaration | TSEnumMember | TSExportAssignment | TSExpressionWithTypeArguments | TSExternalModuleReference | TSFunctionType | TSImportEqualsDeclaration | TSImportType | TSIndexSignature | TSIndexedAccessType | TSInferType | TSInstantiationExpression | TSInterfaceBody | TSInterfaceDeclaration | TSIntersectionType | TSIntrinsicKeyword | TSLiteralType | TSMappedType | TSMethodSignature | TSModuleBlock | TSModuleDeclaration | TSNamedTupleMember | TSNamespaceExportDeclaration | TSNeverKeyword | TSNonNullExpression | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSOptionalType | TSParameterProperty | TSParenthesizedType | TSPropertySignature | TSQualifiedName | TSRestType | TSSatisfiesExpression | TSStringKeyword | TSSymbolKeyword | TSThisType | TSTupleType | TSType | TSTypeAliasDeclaration | TSTypeAnnotation | TSTypeAssertion | TSTypeElement | TSTypeLiteral | TSTypeOperator | TSTypeParameter | TSTypeParameterDeclaration | TSTypeParameterInstantiation | TSTypePredicate | TSTypeQuery | TSTypeReference | TSUndefinedKeyword | TSUnionType | TSUnknownKeyword | TSVoidKeyword | TaggedTemplateExpression | TemplateElement | TemplateLiteral | Terminatorless | ThisExpression | ThisTypeAnnotation | ThrowStatement | TopicReference | TryStatement | TupleExpression | TupleTypeAnnotation | TypeAlias | TypeAnnotation | TypeCastExpression | TypeParameter | TypeParameterDeclaration | TypeParameterInstantiation | TypeScript | TypeofTypeAnnotation | UnaryExpression | UnaryLike | UnionTypeAnnotation | UpdateExpression | UserWhitespacable | V8IntrinsicIdentifier | VariableDeclaration | VariableDeclarator | Variance | VoidTypeAnnotation | While | WhileStatement | WithStatement | YieldExpression;
46
46
 
47
47
  export interface ArrayExpression extends BaseNode {
48
48
  type: "ArrayExpression";
@@ -385,6 +385,7 @@ export interface AssignmentPattern extends BaseNode {
385
385
  left: Identifier | ObjectPattern | ArrayPattern | MemberExpression | TSAsExpression | TSSatisfiesExpression | TSTypeAssertion | TSNonNullExpression;
386
386
  right: Expression;
387
387
  decorators: Array<Decorator> | null;
388
+ optional: boolean | null;
388
389
  typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null;
389
390
  }
390
391
 
@@ -532,6 +533,7 @@ export interface ObjectPattern extends BaseNode {
532
533
  type: "ObjectPattern";
533
534
  properties: Array<RestElement | ObjectProperty>;
534
535
  decorators: Array<Decorator> | null;
536
+ optional: boolean | null;
535
537
  typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null;
536
538
  }
537
539
 
@@ -1646,6 +1648,7 @@ export interface TSTypeParameter extends BaseNode {
1646
1648
  constraint: TSType | null;
1647
1649
  default: TSType | null;
1648
1650
  name: string;
1651
+ const: boolean | null;
1649
1652
  in: boolean | null;
1650
1653
  out: boolean | null;
1651
1654
  }
@@ -1701,7 +1704,7 @@ export type Property = ObjectProperty | ClassProperty | ClassAccessorProperty |
1701
1704
  export type UnaryLike = UnaryExpression | SpreadElement;
1702
1705
  export type Pattern = AssignmentPattern | ArrayPattern | ObjectPattern;
1703
1706
  export type Class = ClassExpression | ClassDeclaration;
1704
- export type ModuleDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration;
1707
+ export type ImportOrExportDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration;
1705
1708
  export type ExportDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration;
1706
1709
  export type ModuleSpecifier = ExportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | ExportNamespaceSpecifier | ExportDefaultSpecifier;
1707
1710
  export type Accessor = ClassAccessorProperty;
@@ -1719,6 +1722,7 @@ export type TypeScript = TSParameterProperty | TSDeclareFunction | TSDeclareMeth
1719
1722
  export type TSTypeElement = TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSPropertySignature | TSMethodSignature | TSIndexSignature;
1720
1723
  export type TSType = TSAnyKeyword | TSBooleanKeyword | TSBigIntKeyword | TSIntrinsicKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSFunctionType | TSConstructorType | TSTypeReference | TSTypePredicate | TSTypeQuery | TSTypeLiteral | TSArrayType | TSTupleType | TSOptionalType | TSRestType | TSUnionType | TSIntersectionType | TSConditionalType | TSInferType | TSParenthesizedType | TSTypeOperator | TSIndexedAccessType | TSMappedType | TSLiteralType | TSExpressionWithTypeArguments | TSImportType;
1721
1724
  export type TSBaseType = TSAnyKeyword | TSBooleanKeyword | TSBigIntKeyword | TSIntrinsicKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSLiteralType;
1725
+ export type ModuleDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration;
1722
1726
 
1723
1727
  export interface Aliases {
1724
1728
  Standardized: Standardized;
@@ -1752,7 +1756,7 @@ export interface Aliases {
1752
1756
  UnaryLike: UnaryLike;
1753
1757
  Pattern: Pattern;
1754
1758
  Class: Class;
1755
- ModuleDeclaration: ModuleDeclaration;
1759
+ ImportOrExportDeclaration: ImportOrExportDeclaration;
1756
1760
  ExportDeclaration: ExportDeclaration;
1757
1761
  ModuleSpecifier: ModuleSpecifier;
1758
1762
  Accessor: Accessor;
@@ -1770,6 +1774,7 @@ export interface Aliases {
1770
1774
  TSTypeElement: TSTypeElement;
1771
1775
  TSType: TSType;
1772
1776
  TSBaseType: TSBaseType;
1777
+ ModuleDeclaration: ModuleDeclaration;
1773
1778
  }
1774
1779
 
1775
1780
  export function arrayExpression(elements?: Array<null | Expression | SpreadElement>): ArrayExpression;
@@ -2235,6 +2240,8 @@ export function isImportDefaultSpecifier(node: object | null | undefined, opts?:
2235
2240
  export function assertImportDefaultSpecifier(node: object | null | undefined, opts?: object | null): void;
2236
2241
  export function isImportNamespaceSpecifier(node: object | null | undefined, opts?: object | null): node is ImportNamespaceSpecifier;
2237
2242
  export function assertImportNamespaceSpecifier(node: object | null | undefined, opts?: object | null): void;
2243
+ export function isImportOrExportDeclaration(node: object | null | undefined, opts?: object | null): node is ImportOrExportDeclaration;
2244
+ export function assertImportOrExportDeclaration(node: object | null | undefined, opts?: object | null): void;
2238
2245
  export function isImportSpecifier(node: object | null | undefined, opts?: object | null): node is ImportSpecifier;
2239
2246
  export function assertImportSpecifier(node: object | null | undefined, opts?: object | null): void;
2240
2247
  export function isIndexedAccessType(node: object | null | undefined, opts?: object | null): node is IndexedAccessType;