🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

flow-estree

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flow-estree - npm Package Compare versions

Comparing version
0.0.0-reserved.0
to
0.319.0
dist/generated/HermesESTreeSelectorTypes.js.flow

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

+22
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
* @format
*/
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _predicates = require("./predicates");
Object.keys(_predicates).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (key in exports && exports[key] === _predicates[key]) return;
exports[key] = _predicates[key];
});

Sorry, the diff of this file is not supported yet

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
*/
'use strict';
/*::
import type {
ESNode,
Token,
MostTokens,
BlockComment,
LineComment,
AFunction,
PropertyDefinition,
PropertyDefinitionWithNonComputedName,
MethodDefinition,
MethodDefinitionConstructor,
MethodDefinitionWithNonComputedName,
MemberExpression,
MemberExpressionWithNonComputedName,
ObjectPropertyWithShorthandStaticName,
ObjectPropertyWithNonShorthandStaticName,
DestructuringObjectPropertyWithShorthandStaticName,
DestructuringObjectPropertyWithNonShorthandStaticName,
ClassMember,
ClassDeclaration,
ClassExpression,
Literal,
BigIntLiteral,
BooleanLiteral,
NullLiteral,
NumericLiteral,
RegExpLiteral,
StringLiteral,
Identifier,
EnumDefaultedMember,
Expression,
Statement,
} from './types';
*/
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {
isClass: true,
isPropertyDefinitionWithNonComputedName: true,
isClassMember: true,
isClassMemberWithNonComputedName: true,
isComment: true,
isFunction: true,
isMethodDefinitionWithNonComputedName: true,
isMemberExpressionWithNonComputedProperty: true,
isOptionalMemberExpressionWithNonComputedProperty: true,
isObjectPropertyWithShorthand: true,
isObjectPropertyWithNonComputedName: true,
isBigIntLiteral: true,
isBooleanLiteral: true,
isNullLiteral: true,
isNumericLiteral: true,
isRegExpLiteral: true,
isStringLiteral: true,
isExpression: true,
isStatement: true
};
exports.isBigIntLiteral = isBigIntLiteral;
exports.isBooleanLiteral = isBooleanLiteral;
exports.isClass = isClass;
exports.isClassMember = isClassMember;
exports.isClassMemberWithNonComputedName = isClassMemberWithNonComputedName;
exports.isComment = isComment;
exports.isExpression = isExpression;
exports.isFunction = isFunction;
exports.isMemberExpressionWithNonComputedProperty = isMemberExpressionWithNonComputedProperty;
exports.isMethodDefinitionWithNonComputedName = isMethodDefinitionWithNonComputedName;
exports.isNullLiteral = isNullLiteral;
exports.isNumericLiteral = isNumericLiteral;
exports.isObjectPropertyWithNonComputedName = isObjectPropertyWithNonComputedName;
exports.isObjectPropertyWithShorthand = isObjectPropertyWithShorthand;
exports.isOptionalMemberExpressionWithNonComputedProperty = isOptionalMemberExpressionWithNonComputedProperty;
exports.isPropertyDefinitionWithNonComputedName = isPropertyDefinitionWithNonComputedName;
exports.isRegExpLiteral = isRegExpLiteral;
exports.isStatement = isStatement;
exports.isStringLiteral = isStringLiteral;
var _predicates = require("./generated/predicates");
Object.keys(_predicates).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _predicates[key]) return;
exports[key] = _predicates[key];
});
function isClass(node
/*: ESNode */
)
/*: implies node is (ClassDeclaration | ClassExpression) */
{
return node.type === 'ClassDeclaration' || node.type === 'ClassExpression';
}
function isPropertyDefinitionWithNonComputedName(node
/*: ESNode */
)
/*: implies node is PropertyDefinitionWithNonComputedName */
{
return node.type === 'PropertyDefinition' && node.computed === false;
}
function isClassMember(node
/*: ESNode */
)
/*: implies node is ClassMember */
{
return node.type === 'PropertyDefinition' || node.type === 'MethodDefinition';
}
function isClassMemberWithNonComputedName(node
/*: ESNode */
)
/*: implies node is (PropertyDefinitionWithNonComputedName | MethodDefinitionConstructor | MethodDefinitionWithNonComputedName) */
{
return (node.type === 'PropertyDefinition' || node.type === 'MethodDefinition') && node.computed === false;
}
function isComment(node
/*: ESNode | Token */
)
/*: implies node is (MostTokens | BlockComment | LineComment) */
{
return node.type === 'Block' || node.type === 'Line';
}
function isFunction(node
/*: ESNode */
)
/*: implies node is AFunction */
{
return node.type === 'ArrowFunctionExpression' || node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression';
}
function isMethodDefinitionWithNonComputedName(node
/*: ESNode */
)
/*: implies node is (MethodDefinitionConstructor | MethodDefinitionWithNonComputedName) */
{
return node.type === 'MethodDefinition' && node.computed === false;
}
function isMemberExpressionWithNonComputedProperty(node
/*: ESNode */
)
/*: implies node is MemberExpressionWithNonComputedName */
{
return node.type === 'MemberExpression' && node.computed === false;
}
function isOptionalMemberExpressionWithNonComputedProperty(node
/*: ESNode */
)
/*: implies node is MemberExpressionWithNonComputedName */
{
return node.type === 'MemberExpression' && node.computed === false;
}
function isObjectPropertyWithShorthand(node
/*: ESNode */
)
/*: implies node is (ObjectPropertyWithShorthandStaticName | DestructuringObjectPropertyWithShorthandStaticName) */
{
return node.type === 'Property' && node.shorthand === true;
}
function isObjectPropertyWithNonComputedName(node
/*: ESNode */
)
/*: implies node is (ObjectPropertyWithNonShorthandStaticName | ObjectPropertyWithShorthandStaticName | DestructuringObjectPropertyWithNonShorthandStaticName | DestructuringObjectPropertyWithShorthandStaticName) */
{
return node.type === 'Property' && node.computed === false;
}
function isBigIntLiteral(node
/*: ESNode */
)
/*: implies node is BigIntLiteral */
{
return node.type === 'Literal' && node.literalType === 'bigint';
}
function isBooleanLiteral(node
/*: ESNode */
)
/*: implies node is BooleanLiteral */
{
return node.type === 'Literal' && node.literalType === 'boolean';
}
function isNullLiteral(node
/*: ESNode */
)
/*: implies node is NullLiteral */
{
return node.type === 'Literal' && node.literalType === 'null';
}
function isNumericLiteral(node
/*: ESNode */
)
/*: implies node is NumericLiteral */
{
return node.type === 'Literal' && node.literalType === 'numeric';
}
function isRegExpLiteral(node
/*: ESNode */
)
/*: implies node is RegExpLiteral */
{
return node.type === 'Literal' && node.literalType === 'regexp';
}
function isStringLiteral(node
/*: ESNode */
)
/*: implies node is StringLiteral */
{
return node.type === 'Literal' && node.literalType === 'string';
}
function isExpression(node
/*: ESNode */
)
/*: implies node is Expression */
{
return node.type === 'ThisExpression' || node.type === 'ArrayExpression' || node.type === 'ObjectExpression' || node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression' || node.type === 'YieldExpression' || node.type === 'Literal' || node.type === 'UnaryExpression' || node.type === 'UpdateExpression' || node.type === 'BinaryExpression' || node.type === 'AssignmentExpression' || node.type === 'LogicalExpression' || node.type === 'MemberExpression' || node.type === 'ConditionalExpression' || node.type === 'CallExpression' || node.type === 'NewExpression' || node.type === 'SequenceExpression' || node.type === 'TemplateLiteral' || node.type === 'TaggedTemplateExpression' || node.type === 'ClassExpression' || node.type === 'MetaProperty' || node.type === 'Identifier' || node.type === 'AwaitExpression' || node.type === 'ImportExpression' || node.type === 'ChainExpression' || node.type === 'TypeCastExpression' || node.type === 'AsExpression' || node.type === 'AsConstExpression' || node.type === 'JSXFragment' || node.type === 'JSXElement' || node.type === 'MatchExpression' || node.type === 'RecordExpression';
}
function isStatement(node
/*: ESNode */
)
/*: implies node is Statement */
{
return node.type === 'BlockStatement' || node.type === 'BreakStatement' || node.type === 'ClassDeclaration' || node.type === 'ContinueStatement' || node.type === 'DebuggerStatement' || node.type === 'DeclareClass' || node.type === 'DeclareVariable' || node.type === 'DeclareFunction' || node.type === 'DeclareInterface' || node.type === 'DeclareModule' || node.type === 'DeclareOpaqueType' || node.type === 'DeclareTypeAlias' || node.type === 'DoWhileStatement' || node.type === 'EmptyStatement' || node.type === 'EnumDeclaration' || node.type === 'ExpressionStatement' || node.type === 'ForInStatement' || node.type === 'ForOfStatement' || node.type === 'ForStatement' || node.type === 'FunctionDeclaration' || node.type === 'IfStatement' || node.type === 'InterfaceDeclaration' || node.type === 'LabeledStatement' || node.type === 'MatchStatement' || node.type === 'OpaqueType' || node.type === 'RecordDeclaration' || node.type === 'ReturnStatement' || node.type === 'SwitchStatement' || node.type === 'ThrowStatement' || node.type === 'TryStatement' || node.type === 'TypeAlias' || node.type === 'VariableDeclaration' || node.type === 'WhileStatement' || node.type === 'WithStatement';
}

Sorry, the diff of this file is not supported yet

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
* @format
*/
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
* @format
*/
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _predicates = require("./predicates");
Object.keys(_predicates).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (key in exports && exports[key] === _predicates[key]) return;
exports[key] = _predicates[key];
});
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
*/
'use strict';
/*::
import type {
ESNode,
Token,
MostTokens,
BlockComment,
LineComment,
AFunction,
PropertyDefinition,
PropertyDefinitionWithNonComputedName,
MethodDefinition,
MethodDefinitionConstructor,
MethodDefinitionWithNonComputedName,
MemberExpression,
MemberExpressionWithNonComputedName,
ObjectPropertyWithShorthandStaticName,
ObjectPropertyWithNonShorthandStaticName,
DestructuringObjectPropertyWithShorthandStaticName,
DestructuringObjectPropertyWithNonShorthandStaticName,
ClassMember,
ClassDeclaration,
ClassExpression,
Literal,
BigIntLiteral,
BooleanLiteral,
NullLiteral,
NumericLiteral,
RegExpLiteral,
StringLiteral,
Identifier,
EnumDefaultedMember,
Expression,
Statement,
} from './types';
*/
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {
isClass: true,
isPropertyDefinitionWithNonComputedName: true,
isClassMember: true,
isClassMemberWithNonComputedName: true,
isComment: true,
isFunction: true,
isMethodDefinitionWithNonComputedName: true,
isMemberExpressionWithNonComputedProperty: true,
isOptionalMemberExpressionWithNonComputedProperty: true,
isObjectPropertyWithShorthand: true,
isObjectPropertyWithNonComputedName: true,
isBigIntLiteral: true,
isBooleanLiteral: true,
isNullLiteral: true,
isNumericLiteral: true,
isRegExpLiteral: true,
isStringLiteral: true,
isExpression: true,
isStatement: true
};
exports.isBigIntLiteral = isBigIntLiteral;
exports.isBooleanLiteral = isBooleanLiteral;
exports.isClass = isClass;
exports.isClassMember = isClassMember;
exports.isClassMemberWithNonComputedName = isClassMemberWithNonComputedName;
exports.isComment = isComment;
exports.isExpression = isExpression;
exports.isFunction = isFunction;
exports.isMemberExpressionWithNonComputedProperty = isMemberExpressionWithNonComputedProperty;
exports.isMethodDefinitionWithNonComputedName = isMethodDefinitionWithNonComputedName;
exports.isNullLiteral = isNullLiteral;
exports.isNumericLiteral = isNumericLiteral;
exports.isObjectPropertyWithNonComputedName = isObjectPropertyWithNonComputedName;
exports.isObjectPropertyWithShorthand = isObjectPropertyWithShorthand;
exports.isOptionalMemberExpressionWithNonComputedProperty = isOptionalMemberExpressionWithNonComputedProperty;
exports.isPropertyDefinitionWithNonComputedName = isPropertyDefinitionWithNonComputedName;
exports.isRegExpLiteral = isRegExpLiteral;
exports.isStatement = isStatement;
exports.isStringLiteral = isStringLiteral;
var _predicates = require("./generated/predicates");
Object.keys(_predicates).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _predicates[key]) return;
exports[key] = _predicates[key];
});
function isClass(node
/*: ESNode */
)
/*: implies node is (ClassDeclaration | ClassExpression) */
{
return node.type === 'ClassDeclaration' || node.type === 'ClassExpression';
}
function isPropertyDefinitionWithNonComputedName(node
/*: ESNode */
)
/*: implies node is PropertyDefinitionWithNonComputedName */
{
return node.type === 'PropertyDefinition' && node.computed === false;
}
function isClassMember(node
/*: ESNode */
)
/*: implies node is ClassMember */
{
return node.type === 'PropertyDefinition' || node.type === 'MethodDefinition';
}
function isClassMemberWithNonComputedName(node
/*: ESNode */
)
/*: implies node is (PropertyDefinitionWithNonComputedName | MethodDefinitionConstructor | MethodDefinitionWithNonComputedName) */
{
return (node.type === 'PropertyDefinition' || node.type === 'MethodDefinition') && node.computed === false;
}
function isComment(node
/*: ESNode | Token */
)
/*: implies node is (MostTokens | BlockComment | LineComment) */
{
return node.type === 'Block' || node.type === 'Line';
}
function isFunction(node
/*: ESNode */
)
/*: implies node is AFunction */
{
return node.type === 'ArrowFunctionExpression' || node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression';
}
function isMethodDefinitionWithNonComputedName(node
/*: ESNode */
)
/*: implies node is (MethodDefinitionConstructor | MethodDefinitionWithNonComputedName) */
{
return node.type === 'MethodDefinition' && node.computed === false;
}
function isMemberExpressionWithNonComputedProperty(node
/*: ESNode */
)
/*: implies node is MemberExpressionWithNonComputedName */
{
return node.type === 'MemberExpression' && node.computed === false;
}
function isOptionalMemberExpressionWithNonComputedProperty(node
/*: ESNode */
)
/*: implies node is MemberExpressionWithNonComputedName */
{
return node.type === 'MemberExpression' && node.computed === false;
}
function isObjectPropertyWithShorthand(node
/*: ESNode */
)
/*: implies node is (ObjectPropertyWithShorthandStaticName | DestructuringObjectPropertyWithShorthandStaticName) */
{
return node.type === 'Property' && node.shorthand === true;
}
function isObjectPropertyWithNonComputedName(node
/*: ESNode */
)
/*: implies node is (ObjectPropertyWithNonShorthandStaticName | ObjectPropertyWithShorthandStaticName | DestructuringObjectPropertyWithNonShorthandStaticName | DestructuringObjectPropertyWithShorthandStaticName) */
{
return node.type === 'Property' && node.computed === false;
}
function isBigIntLiteral(node
/*: ESNode */
)
/*: implies node is BigIntLiteral */
{
return node.type === 'Literal' && node.literalType === 'bigint';
}
function isBooleanLiteral(node
/*: ESNode */
)
/*: implies node is BooleanLiteral */
{
return node.type === 'Literal' && node.literalType === 'boolean';
}
function isNullLiteral(node
/*: ESNode */
)
/*: implies node is NullLiteral */
{
return node.type === 'Literal' && node.literalType === 'null';
}
function isNumericLiteral(node
/*: ESNode */
)
/*: implies node is NumericLiteral */
{
return node.type === 'Literal' && node.literalType === 'numeric';
}
function isRegExpLiteral(node
/*: ESNode */
)
/*: implies node is RegExpLiteral */
{
return node.type === 'Literal' && node.literalType === 'regexp';
}
function isStringLiteral(node
/*: ESNode */
)
/*: implies node is StringLiteral */
{
return node.type === 'Literal' && node.literalType === 'string';
}
function isExpression(node
/*: ESNode */
)
/*: implies node is Expression */
{
return node.type === 'ThisExpression' || node.type === 'ArrayExpression' || node.type === 'ObjectExpression' || node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression' || node.type === 'YieldExpression' || node.type === 'Literal' || node.type === 'UnaryExpression' || node.type === 'UpdateExpression' || node.type === 'BinaryExpression' || node.type === 'AssignmentExpression' || node.type === 'LogicalExpression' || node.type === 'MemberExpression' || node.type === 'ConditionalExpression' || node.type === 'CallExpression' || node.type === 'NewExpression' || node.type === 'SequenceExpression' || node.type === 'TemplateLiteral' || node.type === 'TaggedTemplateExpression' || node.type === 'ClassExpression' || node.type === 'MetaProperty' || node.type === 'Identifier' || node.type === 'AwaitExpression' || node.type === 'ImportExpression' || node.type === 'ChainExpression' || node.type === 'TypeCastExpression' || node.type === 'AsExpression' || node.type === 'AsConstExpression' || node.type === 'JSXFragment' || node.type === 'JSXElement' || node.type === 'MatchExpression' || node.type === 'RecordExpression';
}
function isStatement(node
/*: ESNode */
)
/*: implies node is Statement */
{
return node.type === 'BlockStatement' || node.type === 'BreakStatement' || node.type === 'ClassDeclaration' || node.type === 'ContinueStatement' || node.type === 'DebuggerStatement' || node.type === 'DeclareClass' || node.type === 'DeclareVariable' || node.type === 'DeclareFunction' || node.type === 'DeclareInterface' || node.type === 'DeclareModule' || node.type === 'DeclareOpaqueType' || node.type === 'DeclareTypeAlias' || node.type === 'DoWhileStatement' || node.type === 'EmptyStatement' || node.type === 'EnumDeclaration' || node.type === 'ExpressionStatement' || node.type === 'ForInStatement' || node.type === 'ForOfStatement' || node.type === 'ForStatement' || node.type === 'FunctionDeclaration' || node.type === 'IfStatement' || node.type === 'InterfaceDeclaration' || node.type === 'LabeledStatement' || node.type === 'MatchStatement' || node.type === 'OpaqueType' || node.type === 'RecordDeclaration' || node.type === 'ReturnStatement' || node.type === 'SwitchStatement' || node.type === 'ThrowStatement' || node.type === 'TryStatement' || node.type === 'TypeAlias' || node.type === 'VariableDeclaration' || node.type === 'WhileStatement' || node.type === 'WithStatement';
}
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
* @format
*/
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
* @format
* @generated
*/
/*
* !!! GENERATED FILE !!!
*
* DESIGN NOTE — please read before editing.
*
* This file is a VERBATIM MIRROR of upstream
* xplat/static_h/tools/hermes-parser/js/hermes-estree/src/types.js
* with our header swapped in. It is **not** schema-derived generation —
* the body is byte-for-byte from upstream after the upstream header is
* stripped. The `@generated` tag means "do not hand-edit" — to update,
* edit upstream's types.js (or upstream the change first) and re-run the
* regeneration command below.
*
* The codegen step ALSO performs a SCHEMA cross-check: every concrete
* NodeDef in `node_kinds.rs` must have a matching `export interface` or
* `export type` in upstream's types.js (or appear in
* `KNOWN_TYPES_WITHOUT_INTERFACE` in codegen.rs with attribution). On any
* drift, codegen FAILS the build with a non-zero exit and lists the
* missing kinds. There is no synthesis or soft-warning path — upstream
* already contains all Flow-only nodes today, so the cross-check exists
* solely to prevent future drift between the Rust SCHEMA and upstream.
*
* Schema-derivable per-node interfaces are NOT independently generated
* because upstream's interfaces carry hand-curated child unions (e.g.
* `Expression`, `Statement`, `BindingName`, `MemberExpression` refinement
* splits, `MethodDefinition` discriminator splits, per-property
* nullability) that the Rust schema does not encode and should not encode
* — the Rust schema is the source of truth for *binary serialization*
* between the Rust parser and the JS deserializer; the upstream Flow
* types are the source of truth for *consumer typings*. See
* `generate_estree_types` in `flow_parser_wasm/src/bin/codegen.rs` for
* the implementation.
*
* To regenerate (run from the fbsource root):
*
* buck run fbcode//flow/rust_port/crates/flow_parser_wasm:codegen -- \
* --estree-types > \
* fbcode/flow/packages/flow-estree/src/types.js
*
* To regenerate against a different upstream copy, set
* `HERMES_ESTREE_TYPES_JS` to an absolute path before invoking codegen.
*/
'use strict';
/**
*
* IMPORTANT NOTE
*
* This file intentionally uses interfaces and `+` for readonly.
*
* - `$ReadOnly` is an "evaluated" utility type in flow; meaning that flow does
* not actually calculate the resulting type until it is used. This creates
* a copy of the type at each usage site - ballooning memory and processing
* times.
* Usually this isn't a problem as a type might only be used one or two times
* - but in this giant circular-referencing graph that is the AST types, this
* causes check times for consumers to be awful.
*
* Thus instead we manually annotate properties with `+` to avoid the `$ReadOnly` type.
*
* - `...Type` spreads do not preserve the readonly-ness of the properties. If
* we used object literal types then we would have to `$ReadOnly` all spreads
* (see point 1). On the other hand extending an interface does preserve
* readonlyness of properties.
*
* Thus instead of object literals, we use interfaces.
*
*** Please ensure all properties are marked as readonly! ***
*/
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
* @format
* @generated
*/
/*
* !!! GENERATED FILE !!!
*
* DESIGN NOTE — please read before editing.
*
* This file is a VERBATIM MIRROR of upstream
* xplat/static_h/tools/hermes-parser/js/hermes-estree/src/types.js
* with our header swapped in. It is **not** schema-derived generation —
* the body is byte-for-byte from upstream after the upstream header is
* stripped. The `@generated` tag means "do not hand-edit" — to update,
* edit upstream's types.js (or upstream the change first) and re-run the
* regeneration command below.
*
* The codegen step ALSO performs a SCHEMA cross-check: every concrete
* NodeDef in `node_kinds.rs` must have a matching `export interface` or
* `export type` in upstream's types.js (or appear in
* `KNOWN_TYPES_WITHOUT_INTERFACE` in codegen.rs with attribution). On any
* drift, codegen FAILS the build with a non-zero exit and lists the
* missing kinds. There is no synthesis or soft-warning path — upstream
* already contains all Flow-only nodes today, so the cross-check exists
* solely to prevent future drift between the Rust SCHEMA and upstream.
*
* Schema-derivable per-node interfaces are NOT independently generated
* because upstream's interfaces carry hand-curated child unions (e.g.
* `Expression`, `Statement`, `BindingName`, `MemberExpression` refinement
* splits, `MethodDefinition` discriminator splits, per-property
* nullability) that the Rust schema does not encode and should not encode
* — the Rust schema is the source of truth for *binary serialization*
* between the Rust parser and the JS deserializer; the upstream Flow
* types are the source of truth for *consumer typings*. See
* `generate_estree_types` in `flow_parser_wasm/src/bin/codegen.rs` for
* the implementation.
*
* To regenerate (run from the fbsource root):
*
* buck run fbcode//flow/rust_port/crates/flow_parser_wasm:codegen -- \
* --estree-types > \
* fbcode/flow/packages/flow-estree/src/types.js
*
* To regenerate against a different upstream copy, set
* `HERMES_ESTREE_TYPES_JS` to an absolute path before invoking codegen.
*/
'use strict';
/**
*
* IMPORTANT NOTE
*
* This file intentionally uses interfaces and `+` for readonly.
*
* - `$ReadOnly` is an "evaluated" utility type in flow; meaning that flow does
* not actually calculate the resulting type until it is used. This creates
* a copy of the type at each usage site - ballooning memory and processing
* times.
* Usually this isn't a problem as a type might only be used one or two times
* - but in this giant circular-referencing graph that is the AST types, this
* causes check times for consumers to be awful.
*
* Thus instead we manually annotate properties with `+` to avoid the `$ReadOnly` type.
*
* - `...Type` spreads do not preserve the readonly-ness of the properties. If
* we used object literal types then we would have to `$ReadOnly` all spreads
* (see point 1). On the other hand extending an interface does preserve
* readonlyness of properties.
*
* Thus instead of object literals, we use interfaces.
*
*** Please ensure all properties are marked as readonly! ***
*/
Object.defineProperty(exports, "__esModule", {
value: true
});

Sorry, the diff of this file is not supported yet

+12
-7
{
"name": "flow-estree",
"version": "0.0.0-reserved.0",
"description": "Reserved package name for the Flow team to prepare for future publishes of the rust-port based toolchain.",
"version": "0.319.0",
"description": "Flow types for the Flow-ESTree spec produced by the Flow Rust parser, forked from hermes-estree.",
"homepage": "https://flow.org",

@@ -11,2 +11,10 @@ "license": "MIT",

},
"main": "dist/index.js",
"files": [
"dist",
"README.md"
],
"engines": {
"node": ">=18"
},
"repository": {

@@ -16,7 +24,4 @@ "type": "git",

},
"main": "index.js",
"files": [
"index.js",
"README.md"
]
"dependencies": {},
"devDependencies": {}
}
# flow-estree
This package name is reserved by the Flow team.
This placeholder package intentionally contains no implementation code.
Forked from `xplat/static_h/tools/hermes-parser/js/hermes-estree`. Most of `src/`
is generated from `fbcode/flow/rust_port/crates/flow_parser_wasm/src/node_kinds.rs` —
to regenerate run `fbcode/flow/rust_port/crates/flow_parser_wasm/regen.sh`.
'use strict';
throw new Error('This package name is reserved by the Flow team and does not contain implementation code.');