decaffeinate-coffeescript
Advanced tools
Sorry, the diff of this file is not supported yet
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="Encoding"> | ||
| <file url="PROJECT" charset="UTF-8" /> | ||
| </component> | ||
| </project> |
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="ProjectInspectionProfilesVisibleTreeState"> | ||
| <entry key="Project Default"> | ||
| <profile-state> | ||
| <expanded-state> | ||
| <State> | ||
| <id /> | ||
| </State> | ||
| <State> | ||
| <id>File Watchers</id> | ||
| </State> | ||
| <State> | ||
| <id>GeneralJavaScript</id> | ||
| </State> | ||
| <State> | ||
| <id>HTML</id> | ||
| </State> | ||
| <State> | ||
| <id>JavaScript</id> | ||
| </State> | ||
| <State> | ||
| <id>Node.jsJavaScript</id> | ||
| </State> | ||
| <State> | ||
| <id>XML</id> | ||
| </State> | ||
| </expanded-state> | ||
| <selected-state> | ||
| <State> | ||
| <id>AngularJS</id> | ||
| </State> | ||
| </selected-state> | ||
| </profile-state> | ||
| </entry> | ||
| </component> | ||
| </project> |
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="ProjectModuleManager"> | ||
| <modules> | ||
| <module fileurl="file://$PROJECT_DIR$/.idea/coffeescript.iml" filepath="$PROJECT_DIR$/.idea/coffeescript.iml" /> | ||
| </modules> | ||
| </component> | ||
| </project> |
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="VcsDirectoryMappings"> | ||
| <mapping directory="$PROJECT_DIR$" vcs="Git" /> | ||
| </component> | ||
| </project> |
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="ChangeListManager"> | ||
| <list default="true" id="e9da7dcf-d780-4805-a89f-29c8f50c8101" name="Default" comment="" /> | ||
| <ignored path="$PROJECT_DIR$/.tmp/" /> | ||
| <ignored path="$PROJECT_DIR$/temp/" /> | ||
| <ignored path="$PROJECT_DIR$/tmp/" /> | ||
| <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> | ||
| <option name="TRACKING_ENABLED" value="true" /> | ||
| <option name="SHOW_DIALOG" value="false" /> | ||
| <option name="HIGHLIGHT_CONFLICTS" value="true" /> | ||
| <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> | ||
| <option name="LAST_RESOLUTION" value="IGNORE" /> | ||
| </component> | ||
| <component name="CreatePatchCommitExecutor"> | ||
| <option name="PATCH_PATH" value="" /> | ||
| </component> | ||
| <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" /> | ||
| <component name="FileEditorManager"> | ||
| <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> | ||
| <file leaf-file-name="nodes.d.ts" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/lib/coffee-script/nodes.d.ts"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="480"> | ||
| <caret line="495" column="16" lean-forward="false" selection-start-line="495" selection-start-column="16" selection-end-line="495" selection-end-column="16" /> | ||
| <folding> | ||
| <element signature="e#0#28#0" expanded="true" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| </file> | ||
| <file leaf-file-name="nodes.js" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/lib/coffee-script/nodes.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="390"> | ||
| <caret line="2097" column="31" lean-forward="false" selection-start-line="2097" selection-start-column="31" selection-end-line="2097" selection-end-column="31" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| </file> | ||
| <file leaf-file-name="package.json" pinned="false" current-in-tab="true"> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="150"> | ||
| <caret line="10" column="27" lean-forward="false" selection-start-line="10" selection-start-column="27" selection-end-line="10" selection-end-column="27" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| </file> | ||
| </leaf> | ||
| </component> | ||
| <component name="FindInProjectRecents"> | ||
| <findStrings> | ||
| <find>./Scope</find> | ||
| <find>locationData</find> | ||
| <find>expressions</find> | ||
| <find>Parens</find> | ||
| <find>Bool</find> | ||
| <find>Access</find> | ||
| <find>Param</find> | ||
| <find>Param =</find> | ||
| <find>new Param</find> | ||
| </findStrings> | ||
| <dirStrings> | ||
| <dir>$PROJECT_DIR$</dir> | ||
| </dirStrings> | ||
| </component> | ||
| <component name="Git.Settings"> | ||
| <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> | ||
| </component> | ||
| <component name="IdeDocumentHistory"> | ||
| <option name="CHANGED_PATHS"> | ||
| <list> | ||
| <option value="$PROJECT_DIR$/lib/coffee-script/nodes.d.ts" /> | ||
| <option value="$PROJECT_DIR$/package.json" /> | ||
| </list> | ||
| </option> | ||
| </component> | ||
| <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" /> | ||
| <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER"> | ||
| <package-json value="$PROJECT_DIR$/package.json" /> | ||
| </component> | ||
| <component name="JsGulpfileManager"> | ||
| <detection-done>true</detection-done> | ||
| <sorting>DEFINITION_ORDER</sorting> | ||
| </component> | ||
| <component name="NodeModulesDirectoryManager"> | ||
| <handled-path value="$PROJECT_DIR$/node_modules" /> | ||
| </component> | ||
| <component name="ProjectFrameBounds"> | ||
| <option name="y" value="23" /> | ||
| <option name="width" value="1440" /> | ||
| <option name="height" value="872" /> | ||
| </component> | ||
| <component name="ProjectView"> | ||
| <navigator currentView="ProjectPane" proportions="" version="1"> | ||
| <flattenPackages /> | ||
| <showMembers /> | ||
| <showModules /> | ||
| <showLibraryContents /> | ||
| <hideEmptyPackages /> | ||
| <abbreviatePackageNames /> | ||
| <autoscrollToSource /> | ||
| <autoscrollFromSource /> | ||
| <sortByType /> | ||
| <manualOrder /> | ||
| <foldersAlwaysOnTop value="true" /> | ||
| </navigator> | ||
| <panes> | ||
| <pane id="Scratches" /> | ||
| <pane id="ProjectPane"> | ||
| <subPane> | ||
| <PATH> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="coffeescript" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | ||
| </PATH_ELEMENT> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="coffeescript" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | ||
| </PATH_ELEMENT> | ||
| </PATH> | ||
| <PATH> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="coffeescript" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | ||
| </PATH_ELEMENT> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="coffeescript" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | ||
| </PATH_ELEMENT> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="lib" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | ||
| </PATH_ELEMENT> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="coffee-script" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | ||
| </PATH_ELEMENT> | ||
| </PATH> | ||
| </subPane> | ||
| </pane> | ||
| <pane id="Scope" /> | ||
| </panes> | ||
| </component> | ||
| <component name="PropertiesComponent"> | ||
| <property name="settings.editor.selected.configurable" value="configurable.group.language" /> | ||
| <property name="settings.editor.splitter.proportion" value="0.2" /> | ||
| <property name="WebServerToolWindowFactoryState" value="false" /> | ||
| <property name="last_opened_file_path" value="$PROJECT_DIR$" /> | ||
| <property name="HbShouldOpenHtmlAsHb" value="" /> | ||
| <property name="nodejs_interpreter_path" value="/usr/local/opt/nvm/versions/node/v5.1.0/bin/node" /> | ||
| <property name="js.eslint.eslintPackage" value="/usr/local/opt/nvm/versions/node/v5.1.0/lib/node_modules/eslint" /> | ||
| <property name="js-jscs-nodeInterpreter" value="/usr/local/opt/nvm/versions/node/v5.1.0/bin/node" /> | ||
| </component> | ||
| <component name="RunManager"> | ||
| <configuration default="true" type="BashConfigurationType" factoryName="Bash"> | ||
| <option name="INTERPRETER_OPTIONS" value="" /> | ||
| <option name="INTERPRETER_PATH" value="/bin/bash" /> | ||
| <option name="WORKING_DIRECTORY" value="" /> | ||
| <option name="PARENT_ENVS" value="true" /> | ||
| <option name="SCRIPT_NAME" value="" /> | ||
| <option name="PARAMETERS" value="" /> | ||
| <module name="" /> | ||
| <envs /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="DartCommandLineRunConfigurationType" factoryName="Dart Command Line Application"> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="DartTestRunConfigurationType" factoryName="Dart Test"> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="JavaScriptTestRunnerKarma" factoryName="Karma"> | ||
| <config-file value="" /> | ||
| <node-interpreter value="project" /> | ||
| <envs /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor"> | ||
| <config-file value="" /> | ||
| <node-interpreter value="project" /> | ||
| <envs /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug"> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" path-to-node="project" working-dir=""> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="cucumber.js" factoryName="Cucumber.js"> | ||
| <option name="cucumberJsArguments" value="" /> | ||
| <option name="executablePath" /> | ||
| <option name="filePath" /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js"> | ||
| <node-interpreter>project</node-interpreter> | ||
| <node-options /> | ||
| <gulpfile /> | ||
| <tasks /> | ||
| <arguments /> | ||
| <envs /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="js.build_tools.npm" factoryName="npm"> | ||
| <command value="run" /> | ||
| <scripts /> | ||
| <node-interpreter value="project" /> | ||
| <envs /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="mocha-javascript-test-runner" factoryName="Mocha"> | ||
| <node-interpreter>project</node-interpreter> | ||
| <node-options /> | ||
| <working-directory /> | ||
| <pass-parent-env>true</pass-parent-env> | ||
| <envs /> | ||
| <ui /> | ||
| <extra-mocha-options /> | ||
| <test-kind>DIRECTORY</test-kind> | ||
| <test-directory /> | ||
| <recursive>false</recursive> | ||
| <method /> | ||
| </configuration> | ||
| </component> | ||
| <component name="ShelveChangesManager" show_recycled="false"> | ||
| <option name="remove_strategy" value="false" /> | ||
| </component> | ||
| <component name="SvnConfiguration"> | ||
| <configuration /> | ||
| </component> | ||
| <component name="TaskManager"> | ||
| <task active="true" id="Default" summary="Default task"> | ||
| <changelist id="e9da7dcf-d780-4805-a89f-29c8f50c8101" name="Default" comment="" /> | ||
| <created>1482167577504</created> | ||
| <option name="number" value="Default" /> | ||
| <option name="presentableId" value="Default" /> | ||
| <updated>1482167577504</updated> | ||
| <workItem from="1482167578703" duration="2408000" /> | ||
| <workItem from="1482261465795" duration="4403000" /> | ||
| <workItem from="1482750151744" duration="119000" /> | ||
| <workItem from="1482788563064" duration="2698000" /> | ||
| <workItem from="1483031688816" duration="6573000" /> | ||
| <workItem from="1483220154365" duration="850000" /> | ||
| </task> | ||
| <task id="LOCAL-00001" summary="fix: add missing `Base#locationData` property"> | ||
| <created>1482261684169</created> | ||
| <option name="number" value="00001" /> | ||
| <option name="presentableId" value="LOCAL-00001" /> | ||
| <option name="project" value="LOCAL" /> | ||
| <updated>1482261684169</updated> | ||
| </task> | ||
| <task id="LOCAL-00002" summary="fix: `Literal#value` is a string, not another node"> | ||
| <created>1482266733176</created> | ||
| <option name="number" value="00002" /> | ||
| <option name="presentableId" value="LOCAL-00002" /> | ||
| <option name="project" value="LOCAL" /> | ||
| <updated>1482266733176</updated> | ||
| </task> | ||
| <task id="LOCAL-00003" summary="fix: add missing `Block#expressions` property"> | ||
| <created>1482267766136</created> | ||
| <option name="number" value="00003" /> | ||
| <option name="presentableId" value="LOCAL-00003" /> | ||
| <option name="project" value="LOCAL" /> | ||
| <updated>1482267766136</updated> | ||
| </task> | ||
| <task id="LOCAL-00004" summary="fix: `Parens#body` is a block"> | ||
| <created>1482267976756</created> | ||
| <option name="number" value="00004" /> | ||
| <option name="presentableId" value="LOCAL-00004" /> | ||
| <option name="project" value="LOCAL" /> | ||
| <updated>1482267976756</updated> | ||
| </task> | ||
| <task id="LOCAL-00005" summary="fix: `Bool#val` is a string"> | ||
| <created>1482278933027</created> | ||
| <option name="number" value="00005" /> | ||
| <option name="presentableId" value="LOCAL-00005" /> | ||
| <option name="project" value="LOCAL" /> | ||
| <updated>1482278933027</updated> | ||
| </task> | ||
| <task id="LOCAL-00006" summary="fix: `Return#expression` may not be present"> | ||
| <created>1482788591071</created> | ||
| <option name="number" value="00006" /> | ||
| <option name="presentableId" value="LOCAL-00006" /> | ||
| <option name="project" value="LOCAL" /> | ||
| <updated>1482788591071</updated> | ||
| </task> | ||
| <task id="LOCAL-00007" summary="chore: bump version to 1.10.0-patch9"> | ||
| <created>1483030590392</created> | ||
| <option name="number" value="00007" /> | ||
| <option name="presentableId" value="LOCAL-00007" /> | ||
| <option name="project" value="LOCAL" /> | ||
| <updated>1483030590392</updated> | ||
| </task> | ||
| <task id="LOCAL-00008" summary="chore: bump version to 1.10.0-patch10"> | ||
| <created>1483222465299</created> | ||
| <option name="number" value="00008" /> | ||
| <option name="presentableId" value="LOCAL-00008" /> | ||
| <option name="project" value="LOCAL" /> | ||
| <updated>1483222465299</updated> | ||
| </task> | ||
| <option name="localTasksCounter" value="9" /> | ||
| <servers /> | ||
| </component> | ||
| <component name="TimeTrackingManager"> | ||
| <option name="totallyTimeSpent" value="17051000" /> | ||
| </component> | ||
| <component name="ToolWindowManager"> | ||
| <frame x="0" y="23" width="1440" height="872" extended-state="6" /> | ||
| <editor active="true" /> | ||
| <layout> | ||
| <window_info id="TypeScript" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> | ||
| <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> | ||
| <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32810616" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> | ||
| <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32891566" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> | ||
| <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> | ||
| <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> | ||
| </layout> | ||
| </component> | ||
| <component name="TypeScriptGeneratedFilesManager"> | ||
| <option name="processedProjectFiles" value="true" /> | ||
| </component> | ||
| <component name="VcsContentAnnotationSettings"> | ||
| <option name="myLimit" value="2678400000" /> | ||
| </component> | ||
| <component name="VcsManagerConfiguration"> | ||
| <MESSAGE value="fix: add missing `Base#locationData` property" /> | ||
| <MESSAGE value="fix: `Literal#value` is a string, not another node" /> | ||
| <MESSAGE value="fix: add missing `Block#expressions` property" /> | ||
| <MESSAGE value="fix: `Parens#body` is a block" /> | ||
| <MESSAGE value="fix: `Bool#val` is a string" /> | ||
| <MESSAGE value="fix: `Return#expression` may not be present" /> | ||
| <MESSAGE value="chore: bump version to 1.10.0-patch9" /> | ||
| <MESSAGE value="chore: bump version to 1.10.0-patch10" /> | ||
| <option name="LAST_COMMIT_MESSAGE" value="chore: bump version to 1.10.0-patch10" /> | ||
| </component> | ||
| <component name="XDebuggerManager"> | ||
| <breakpoint-manager /> | ||
| <watches-manager /> | ||
| </component> | ||
| <component name="editorHistoryManager"> | ||
| <entry file="file://$PROJECT_DIR$/lib/coffee-script/nodes.d.ts"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="0"> | ||
| <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding> | ||
| <element signature="e#0#28#0" expanded="true" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="150"> | ||
| <caret line="10" column="26" lean-forward="false" selection-start-line="10" selection-start-column="26" selection-end-line="10" selection-end-column="26" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/lib/coffee-script/nodes.d.ts"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="3390"> | ||
| <caret line="227" column="0" lean-forward="false" selection-start-line="227" selection-start-column="0" selection-end-line="227" selection-end-column="0" /> | ||
| <folding> | ||
| <element signature="e#0#28#0" expanded="true" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="0"> | ||
| <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/lib/coffee-script/nodes.d.ts"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="0"> | ||
| <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding> | ||
| <element signature="e#0#28#0" expanded="true" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="150"> | ||
| <caret line="10" column="26" lean-forward="false" selection-start-line="10" selection-start-column="26" selection-end-line="10" selection-end-column="26" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/lib/coffee-script/nodes.d.ts"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="0"> | ||
| <caret line="0" column="22" lean-forward="false" selection-start-line="0" selection-start-column="22" selection-end-line="0" selection-end-column="22" /> | ||
| <folding> | ||
| <element signature="e#0#28#0" expanded="true" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="0"> | ||
| <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/lib/coffee-script/nodes.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="390"> | ||
| <caret line="2097" column="31" lean-forward="false" selection-start-line="2097" selection-start-column="31" selection-end-line="2097" selection-end-column="31" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/lib/coffee-script/nodes.d.ts"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="480"> | ||
| <caret line="495" column="16" lean-forward="false" selection-start-line="495" selection-start-column="16" selection-end-line="495" selection-end-column="16" /> | ||
| <folding> | ||
| <element signature="e#0#28#0" expanded="true" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="150"> | ||
| <caret line="10" column="27" lean-forward="false" selection-start-line="10" selection-start-column="27" selection-end-line="10" selection-end-column="27" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| </component> | ||
| </project> |
| language: node_js | ||
| cache: | ||
| directories: | ||
| - node_modules | ||
| node_js: | ||
| - '6' | ||
| - '4' | ||
| before_script: | ||
| - npm prune |
| import SourceMap, { V3SourceMap } from './sourcemap'; | ||
| import { Token, LexerOptions } from './lexer'; | ||
| import { Block } from './nodes'; | ||
| export const VERSION: string; | ||
| export const FILE_EXTENSIONS: Array<string>; | ||
| interface CompileOptions { | ||
| header?: boolean; | ||
| shiftLine?: boolean; | ||
| // Source map options. | ||
| sourceMap?: boolean; | ||
| generatedFile?: string; | ||
| sourceRoot?: string; | ||
| sourceFiles?: Array<string>; | ||
| inline?: boolean; | ||
| } | ||
| type CompileResult = string | { | ||
| js: string, | ||
| sourceMap: SourceMap, | ||
| v3SourceMap: V3SourceMap, | ||
| }; | ||
| interface RunOptions extends CompileOptions { | ||
| filename?: string; | ||
| } | ||
| /** | ||
| * Compile CoffeeScript code to JavaScript, using the Coffee/Jison compiler. | ||
| * | ||
| * If `options.sourceMap` is specified, then `options.filename` must also be specified. All | ||
| * options that can be passed to `SourceMap#generate` may also be passed here. | ||
| * | ||
| * This returns a javascript string, unless `options.sourceMap` is passed, | ||
| * in which case this returns a `{js, v3SourceMap, sourceMap}` | ||
| * object, where sourceMap is a sourcemap.coffee#SourceMap object, handy for doing programatic | ||
| * lookups. | ||
| */ | ||
| export function compile(code: string, options?: CompileOptions): CompileResult; | ||
| /** | ||
| * Tokenize a string of CoffeeScript code, and return the array of tokens. | ||
| */ | ||
| export function tokens(code: string, options?: LexerOptions): Array<Token>; | ||
| /** | ||
| * Parse a string of CoffeeScript code or an array of lexed tokens, and | ||
| * return the AST. You can then compile it by calling `.compile()` on the root, | ||
| * or traverse it by using `.traverseChildren()` with a callback. | ||
| */ | ||
| export function nodes(source: string | Array<Token>, options?: LexerOptions): Block; | ||
| /** | ||
| * Compile and execute a string of CoffeeScript (on the server), correctly | ||
| * setting `__filename`, `__dirname`, and relative `require()`. | ||
| */ | ||
| export function run(code: string, options?: RunOptions); |
| import { LocationData } from './nodes'; | ||
| export type TokenType = | ||
| 'BIN?' | | ||
| 'BOOL' | | ||
| 'CALL_END' | | ||
| 'CALL_START' | | ||
| 'COMPARE' | | ||
| 'COMPOUND_ASSIGN' | | ||
| 'COMPOUND_ASSIGN' | | ||
| 'FOR' | | ||
| 'FORINSTANCEOF' | | ||
| 'FUNC_EXIST' | | ||
| 'HERESTRING' | | ||
| 'IDENTIFIER' | | ||
| 'IF' | | ||
| 'INDENT' | | ||
| 'INDEX_END' | | ||
| 'INDEX_SOAK' | | ||
| 'INDEX_START' | | ||
| 'INSTANCEOF' | | ||
| 'LEADING_WHEN' | | ||
| 'MATH' | | ||
| 'NEOSTRING' | | ||
| 'OUTDENT' | | ||
| 'OUTDENT' | | ||
| 'OWN' | | ||
| 'PARAM_END' | | ||
| 'PARAM_START' | | ||
| 'REGEX' | | ||
| 'REGEX_END' | | ||
| 'REGEX_START' | | ||
| 'RELATION' | | ||
| 'SHIFT' | | ||
| 'STATEMENT' | | ||
| 'STRING' | | ||
| 'STRING_END' | | ||
| 'STRING_START' | | ||
| 'TERMINATOR' | | ||
| 'TOKENS' | | ||
| 'UNARY' | | ||
| 'UNARY_MATH' | | ||
| 'UNLESS' | | ||
| 'WHEN' | | ||
| 'YIELD'; | ||
| export type Token = [ | ||
| TokenType, | ||
| // code | ||
| string, | ||
| LocationData | ||
| ]; | ||
| export interface LexerOptions { | ||
| literate?: boolean; | ||
| line?: number; | ||
| column?: number; | ||
| untilBalanced?: boolean; | ||
| rewrite?: boolean; | ||
| } | ||
| export class Lexer { | ||
| /** | ||
| * **tokenize** is the Lexer's main method. Scan by attempting to match tokens | ||
| * one at a time, using a regular expression anchored at the start of the | ||
| * remaining code, or a custom recursive token-matching method | ||
| * (for interpolations). When the next token has been recorded, we move forward | ||
| * within the code past the token, and begin again. | ||
| * | ||
| * Each tokenizing method is responsible for returning the number of characters | ||
| * it has consumed. | ||
| * | ||
| * Before returning the token stream, run it through the [Rewriter](rewriter.html). | ||
| */ | ||
| tokenize(code: string, opts?: LexerOptions): Array<Token>; | ||
| /** | ||
| * Preprocess the code to remove leading and trailing whitespace, carriage | ||
| * returns, etc. If we're lexing literate CoffeeScript, strip external Markdown | ||
| * by removing all lines that aren't indented by at least four spaces or a tab. | ||
| */ | ||
| clean(code: string): string; | ||
| } |
| import Scope from './scope'; | ||
| import { Token } from './lexer'; | ||
| export type LocationData = { | ||
| first_line: number, | ||
| first_column: number, | ||
| last_line: number, | ||
| last_column: number, | ||
| }; | ||
| export type CompileContext = { | ||
| level?: number, | ||
| indent?: string, | ||
| scope?: Scope, | ||
| sharedScope?: boolean, | ||
| }; | ||
| /** | ||
| * The various nodes defined below all compile to a collection of **CodeFragment** objects. | ||
| * A CodeFragments is a block of generated code, and the location in the source file where the code | ||
| * came from. CodeFragments can be assembled together into working code just by catting together | ||
| * all the CodeFragments' `code` snippets, in order. | ||
| */ | ||
| export class CodeFragment { | ||
| code: string; | ||
| locationData: LocationData; | ||
| type: string; | ||
| constructor(parent: Base, code: string); | ||
| } | ||
| /** | ||
| * The **Base** is the abstract base class for all nodes in the syntax tree. | ||
| * Each subclass implements the `compileNode` method, which performs the | ||
| * code generation for that node. To compile a node to JavaScript, | ||
| * call `compile` on it, which wraps `compileNode` in some generic extra smarts, | ||
| * to know when the generated code needs to be wrapped up in a closure. | ||
| * An options hash is passed and cloned throughout, containing information about | ||
| * the environment from higher in the tree (such as if a returned value is | ||
| * being requested by the surrounding function), information about the current | ||
| * scope, and indentation level. | ||
| */ | ||
| export class Base { | ||
| locationData: LocationData; | ||
| compile(o: CompileContext, lvl: number): string; | ||
| /** | ||
| * Common logic for determining whether to wrap this node in a closure before | ||
| * compiling it, or to compile directly. We need to wrap if this node is a | ||
| * *statement*, and it's not a *pureStatement*, and we're not at | ||
| * the top level of a block (which would be unnecessary), and we haven't | ||
| * already been asked to return the result (because statements know how to | ||
| * return results). | ||
| */ | ||
| compileToFragments(o: CompileContext, lvl: number): Array<CodeFragment>; | ||
| /** | ||
| * Statements converted into expressions via closure-wrapping share a scope | ||
| * object with their parent closure, to preserve the expected lexical scope. | ||
| */ | ||
| compileClosure(o: CompileContext): Array<CodeFragment>; | ||
| /** | ||
| * If the code generation wishes to use the result of a complex expression | ||
| * in multiple places, ensure that the expression is only ever evaluated once, | ||
| * by assigning it to a temporary variable. Pass a level to precompile. | ||
| * | ||
| * If `level` is passed, then returns `[val, ref]`, where `val` is the compiled value, and `ref` | ||
| * is the compiled reference. If `level` is not passed, this returns `[val, ref]` where | ||
| * the two values are raw nodes which have not been compiled. | ||
| */ | ||
| cache(o: CompileContext, lvl: number, isComplex: boolean): [Base, Base] | [Array<CodeFragment>, Base]; | ||
| cacheToCodeFragments(cachedValues: [CodeFragment, CodeFragment]): Array<CodeFragment>; | ||
| /** | ||
| * Construct a node that returns the current node's result. | ||
| * Note that this is overridden for smarter behavior for | ||
| * many statement nodes (e.g. If, For)... | ||
| */ | ||
| makeReturn(): Return; | ||
| makeReturn(res: string): Call; | ||
| /** | ||
| * Does this node, or any of its children, contain a node of a certain kind? | ||
| * Recursively traverses down the *children* nodes and returns the first one | ||
| * that verifies `pred`. Otherwise return undefined. `contains` does not cross | ||
| * scope boundaries. | ||
| */ | ||
| contains(pred: (node: Base) => boolean): Base | undefined; | ||
| /** | ||
| * Pull out the last non-comment node of a node list. | ||
| */ | ||
| lastNonComment<T extends Base>(list: Array<T>): T | null; | ||
| /** | ||
| * `toString` representation of the node, for inspecting the parse tree. | ||
| * This is what `coffee --nodes` prints out. | ||
| */ | ||
| toString(idt?: string, name?: string): string; | ||
| /** | ||
| * Passes each child to a function, breaking when the function returns `false`. | ||
| */ | ||
| eachChild(func: (child: Base) => boolean | undefined); | ||
| traverseChildren(crossScope: boolean, func: (child: Base) => boolean | undefined); | ||
| invert(): Base; | ||
| unwrapAll(): Base; | ||
| /** | ||
| * Default implementations of the common node properties and methods. Nodes | ||
| * will override these with custom logic, if needed. | ||
| */ | ||
| children: Array<string>; | ||
| isStatement(o?: CompileContext): boolean; | ||
| jumps(o?: CompileContext): boolean; | ||
| isComplex(): boolean; | ||
| isChainable(): boolean; | ||
| isAssignable(): boolean; | ||
| unwrap(): Base; | ||
| unfoldSoak(): Base | null; | ||
| /** | ||
| * Is this node used to assign a certain variable? | ||
| */ | ||
| assigns(name: string): boolean; | ||
| /** | ||
| * For this node and all descendents, set the location data to `locationData` | ||
| * if the location data is not already set. | ||
| */ | ||
| updateLocationDataIfMissing(locationData: LocationData); | ||
| /** | ||
| * Throw a SyntaxError associated with this node's location. | ||
| */ | ||
| error(message: string); | ||
| makeCode(code: string): CodeFragment; | ||
| wrapInBraces(fragments: Array<CodeFragment>): Array<CodeFragment>; | ||
| /** | ||
| * `fragmentsList` is an array of arrays of fragments. Each array in fragmentsList will be | ||
| * concatonated together, with `joinStr` added in between each, to produce a final flat array | ||
| * of fragments. | ||
| */ | ||
| joinFragmentArrays(fragmentsList: Array<Array<CodeFragment>>, joinStr: string): Array<CodeFragment>; | ||
| } | ||
| /** | ||
| * The block is the list of expressions that forms the body of an | ||
| * indented block of code -- the implementation of a function, a clause in an | ||
| * `if`, `switch`, or `try`, and so on... | ||
| */ | ||
| export class Block extends Base { | ||
| expressions: Array<Base>; | ||
| classBody?: boolean; | ||
| children: ['expressions'] | ||
| /** | ||
| * Tack an expression on to the end of this expression list. | ||
| */ | ||
| push(node: Base): this; | ||
| /** | ||
| * Remove and return the last expression of this expression list. | ||
| */ | ||
| pop(): Base | null; | ||
| /** | ||
| * Add an expression at the beginning of this expression list. | ||
| */ | ||
| unshift(node: Base): this; | ||
| /** | ||
| * If this Block consists of just a single node, unwrap it by pulling | ||
| * it back out. | ||
| */ | ||
| unwrap(): Base; | ||
| /** | ||
| * Is this an empty block of code? | ||
| */ | ||
| isEmpty(): boolean; | ||
| /** | ||
| * A Block node does not return its entire body, rather it | ||
| * ensures that the final expression is returned. | ||
| */ | ||
| // makeReturn(res: string): Return | ||
| /** | ||
| * If we happen to be the top-level **Block**, wrap everything in | ||
| * a safety closure, unless requested not to. | ||
| * It would be better not to generate them in the first place, but for now, | ||
| * clean up obvious double-parentheses. | ||
| */ | ||
| compileRoot(o: CompileContext): Array<CodeFragment>; | ||
| /** | ||
| * Compile the expressions body for the contents of a function, with | ||
| * declarations of all inner variables pushed up to the top. | ||
| */ | ||
| compileWithDeclarations(o: CompileContext): Array<CodeFragment>; | ||
| /** | ||
| * Wrap up the given nodes as a **Block**, unless it already happens | ||
| * to be one. | ||
| */ | ||
| static wrap(nodes: Array<Base>): Block; | ||
| constructor(nodes?: Array<Base>); | ||
| } | ||
| export class Literal extends Base { | ||
| value: string; | ||
| constructor(value: string); | ||
| } | ||
| export class Undefined extends Base {} | ||
| export class Null extends Base {} | ||
| export class Bool extends Base { | ||
| val: string; | ||
| constructor(val: string); | ||
| } | ||
| export class Return extends Base { | ||
| expression?: Base; | ||
| constructor(expression?: Base); | ||
| } | ||
| export class Value extends Base { | ||
| base: Base; | ||
| properties: Array<Access>; | ||
| constructor(base: Base, props: Array<Access>, tag: string); | ||
| /** | ||
| * Add a property (or *properties* ) `Access` to the list. | ||
| */ | ||
| add(props: Array<Access>): this; | ||
| hasProperties(): boolean; | ||
| bareLiteral(type: typeof Base): boolean; | ||
| /** | ||
| * Some boolean checks for the benefit of other nodes. | ||
| */ | ||
| isArray(): boolean; | ||
| isRange(): boolean; | ||
| isComplex(): boolean; | ||
| isAssignable(): boolean; | ||
| isSimpleNumber(): boolean; | ||
| isString(): boolean; | ||
| isRegex(): boolean; | ||
| isAtomic(): boolean | ||
| isNotCallable(): boolean | ||
| isStatement(): boolean; | ||
| assigns(): boolean; | ||
| jumps(): boolean; | ||
| isObject(onlyGenerated: boolean): boolean; | ||
| isSplice(): boolean; | ||
| looksStatic(className: string): boolean; | ||
| /** | ||
| * A reference has base part (`this` value) and name part. | ||
| * We cache them separately for compiling complex expressions. | ||
| * `a()[b()] ?= c` -> `(_base = a())[_name = b()] ? _base[_name] = c` | ||
| */ | ||
| cacheReference(o: CompileContext): [Base, Base]; | ||
| } | ||
| export class Comment extends Base { | ||
| comment: string; | ||
| constructor(comment: string); | ||
| } | ||
| /** | ||
| * Node for a function invocation. Takes care of converting `super()` calls into | ||
| * calls against the prototype's function of the same name. | ||
| */ | ||
| export class Call extends Base { | ||
| isNew: boolean; | ||
| isSuper: boolean; | ||
| variable: Base; | ||
| /** | ||
| * Tag this invocation as creating a new instance. | ||
| */ | ||
| newInstance(): Base; | ||
| /** | ||
| * Grab the reference to the superclass's implementation of the current | ||
| * method. | ||
| */ | ||
| superReference(o: CompileContext); | ||
| /** | ||
| * The appropriate `this` value for a `super` call. | ||
| */ | ||
| superThis(o: CompileContext); | ||
| /** | ||
| * If you call a function with a splat, it's converted into a JavaScript | ||
| * `.apply()` call to allow an array of arguments to be passed. | ||
| * If it's a constructor, then things get real tricky. We have to inject an | ||
| * inner constructor in order to be able to pass the varargs. | ||
| * | ||
| * splatArgs is an array of CodeFragments to put into the 'apply'. | ||
| */ | ||
| compileSplat(o: CompileContext, splatArgs: Array<CodeFragment>); | ||
| } | ||
| /** | ||
| * Node to extend an object's prototype with an ancestor object. | ||
| * After `goog.inherits` from the | ||
| * [Closure Library](http://closure-library.googlecode.com/svn/docs/closureGoogBase.js.html). | ||
| */ | ||
| export class Extends extends Base { | ||
| child: Base; | ||
| parent: Base; | ||
| constructor(child: Base, parent: Base); | ||
| } | ||
| /** | ||
| * A `.` access into a property of a value, or the `::` shorthand for | ||
| * an access into the object's prototype. | ||
| */ | ||
| export class Access extends Base { | ||
| name: Base; | ||
| soak: boolean; | ||
| // TODO | ||
| } | ||
| /** | ||
| * A `[ ... ]` indexed access into an array or object. | ||
| */ | ||
| export class Index extends Base { | ||
| index: Base; | ||
| constructor(index: Base); | ||
| } | ||
| /** | ||
| * A range literal. Ranges can be used to extract portions (slices) of arrays, | ||
| * to specify a range for comprehensions, or as a value, to be expanded into the | ||
| * corresponding array of integers at runtime. | ||
| */ | ||
| export class Range extends Base { | ||
| from: Base; | ||
| to: Base; | ||
| exclusive: boolean; | ||
| equals: boolean; | ||
| /** | ||
| * Compiles the range's source variables -- where it starts and where it ends. | ||
| * But only if they need to be cached to avoid double evaluation. | ||
| */ | ||
| compileVariables(o: CompileContext); | ||
| } | ||
| /** | ||
| * An array slice literal. Unlike JavaScript's `Array#slice`, the second parameter | ||
| * specifies the index of the end of the slice, just as the first parameter | ||
| * is the index of the beginning. | ||
| */ | ||
| export class Slice extends Base { | ||
| range: Range; | ||
| constructor(range: Range); | ||
| } | ||
| /** | ||
| * An object literal, nothing fancy. | ||
| */ | ||
| export class Obj extends Base { | ||
| objects: Array<Base>; | ||
| properties: Array<Base>; | ||
| generated: boolean; | ||
| } | ||
| /** | ||
| * An array literal. | ||
| */ | ||
| export class Arr extends Base { | ||
| objects: Array<Base>; | ||
| constructor(objs: Array<Base>); | ||
| } | ||
| /** | ||
| * The CoffeeScript class definition. | ||
| * Initialize a **Class** with its name, an optional superclass, and a | ||
| * list of prototype property assignments. | ||
| */ | ||
| export class Class extends Base { | ||
| variable: Base; | ||
| parent: Base | null; | ||
| body: Block; | ||
| boundFuncs: Array<Code>; | ||
| directives?: Array<Base>; | ||
| ctor?: Code; | ||
| /** | ||
| * Figure out the appropriate name for the constructor function of this class. | ||
| */ | ||
| determineName(): string; | ||
| /** | ||
| * For all `this`-references and bound functions in the class definition, | ||
| * `this` is the Class being constructed. | ||
| */ | ||
| setContext(name: string); | ||
| /** | ||
| * Ensure that all functions bound to the instance are proxied in the | ||
| * constructor. | ||
| */ | ||
| addBoundFunctions(o: CompileContext); | ||
| /** | ||
| * Merge the properties from a top-level object as prototypal properties | ||
| * on the class. | ||
| */ | ||
| addProperties(node: Base, name: string, o: CompileContext): Array<Base>; | ||
| /** | ||
| * Walk the body of the class, looking for prototype properties to be converted | ||
| * and tagging static assignments. | ||
| */ | ||
| walkBody(name: string, o: CompileContext); | ||
| /** | ||
| * `use strict` (and other directives) must be the first expression statement(s) | ||
| * of a function body. This method ensures the prologue is correctly positioned | ||
| * above the `constructor`. | ||
| */ | ||
| hoistDirectivePrologue(); | ||
| /** | ||
| * Make sure that a constructor is defined for the class, and properly | ||
| * configured. | ||
| */ | ||
| ensureConstructor(name: string); | ||
| } | ||
| type AssignOptions = { | ||
| param?: boolean; | ||
| subpattern?: boolean; | ||
| operatorToken?: Token; | ||
| }; | ||
| /** | ||
| * The **Assign** is used to assign a local variable to value, or to set the | ||
| * property of an object -- including within object literals. | ||
| */ | ||
| export class Assign extends Base { | ||
| constructor(variable: Base, value: Base, context: string | Array<string>, options: AssignOptions); | ||
| } | ||
| /** | ||
| * A function definition. This is the only node that creates a new Scope. | ||
| * When for the purposes of walking the contents of a function body, the Code | ||
| * has no *children* -- they're within the inner scope. | ||
| */ | ||
| export class Code extends Base { | ||
| params: Array<Base>; | ||
| body: Block; | ||
| bound: boolean; | ||
| isGenerator: boolean; | ||
| constructor(params?: Array<Base>, body?: Block, tag?: string); | ||
| makeScope(parentScope?: Scope): Scope; | ||
| } | ||
| /** | ||
| * A parameter in a function definition. Beyond a typical Javascript parameter, | ||
| * these parameters can also attach themselves to the context of the function, | ||
| * as well as be a splat, gathering up a group of parameters into an array. | ||
| */ | ||
| export class Param extends Base { | ||
| name: Base; | ||
| value: Base | null; | ||
| splat: boolean; | ||
| constructor(name: Base, value: Base, splat: boolean); | ||
| asReference(o: CompileContext); | ||
| } | ||
| /** | ||
| * A splat, either as a parameter to a function, an argument to a call, | ||
| * or as part of a destructuring assignment. | ||
| */ | ||
| export class Splat extends Base { | ||
| constructor(name: Base | string); | ||
| /** | ||
| * Utility function that converts an arbitrary number of elements, mixed with | ||
| * splats, to a proper array. | ||
| */ | ||
| static compileSplattedArray(o: CompileContext, list: Array<Base>, apply: boolean); | ||
| } | ||
| /** | ||
| * Used to skip values inside an array destructuring (pattern matching) or | ||
| * parameter list. | ||
| */ | ||
| export class Expansion extends Base { | ||
| asReference(o: CompileContext): this; | ||
| } | ||
| /** | ||
| * A while loop, the only sort of low-level loop exposed by CoffeeScript. From | ||
| * it, all other loops can be manufactured. Useful in cases where you need more | ||
| * flexibility or more speed than a comprehension can provide. | ||
| */ | ||
| export class While extends Base { | ||
| condition: Base; | ||
| guard: boolean; | ||
| body?: Base; | ||
| constructor(condition: Base, options?: { invert?: boolean, guard?: boolean }); | ||
| addBody(body: Base): this; | ||
| } | ||
| /** | ||
| * Simple Arithmetic and logical operations. Performs some conversion from | ||
| * CoffeeScript operations into their JavaScript equivalents. | ||
| */ | ||
| export class Op extends Base { | ||
| operator: string; | ||
| first: Base; | ||
| second: Base; | ||
| flip: boolean; | ||
| constructor(op: string, first: Base, second: Base, flip: boolean); | ||
| isSimpleNumber(): boolean; | ||
| isYield(): boolean; | ||
| isYieldReturn(): boolean; | ||
| isUnary(): boolean; | ||
| isChainable(): boolean; | ||
| /** | ||
| * Mimic Python's chained comparisons when multiple comparison operators are | ||
| * used sequentially. For example: | ||
| * | ||
| * bin/coffee -e 'console.log 50 < 65 > 10' | ||
| * true | ||
| */ | ||
| compileChain(o: CompileContext): Array<CodeFragment>; | ||
| /** | ||
| * Keep reference to the left expression, unless this an existential assignment | ||
| */ | ||
| compileExistence(o: CompileContext): Array<CodeFragment>; | ||
| /** | ||
| * Compile a unary **Op**. | ||
| */ | ||
| compileUnary(o: CompileContext): Array<CodeFragment>; | ||
| compileYield(o: CompileContext): Array<CodeFragment>; | ||
| compilePower(o: CompileContext): Array<CodeFragment>; | ||
| compileFloorDivision(o: CompileContext): Array<CodeFragment>; | ||
| compileModulo(o: CompileContext): Array<CodeFragment>; | ||
| } | ||
| export class In extends Base { | ||
| constructor(object: Base, array: Base); | ||
| compileOrTest(o: CompileContext): Array<CodeFragment>; | ||
| compileLoopTes(o: CompileContext): Array<CodeFragment>;t | ||
| } | ||
| /** | ||
| * A classic *try/catch/finally* block. | ||
| */ | ||
| export class Try extends Base { | ||
| attempt: Base; | ||
| errorVariable?: Base; | ||
| recovery?: Base; | ||
| ensure?: Base; | ||
| constructor(attempt: Base, errorVariable?: Base, recovery?: Base, ensure?: Base); | ||
| } | ||
| /** | ||
| * Simple node to throw an exception. | ||
| */ | ||
| export class Throw extends Base { | ||
| expression: Base; | ||
| constructor(expression: Base); | ||
| } | ||
| /** | ||
| * Checks a variable for existence -- not *null* and not *undefined*. This is | ||
| * similar to `.nil?` in Ruby, and avoids having to consult a JavaScript truth | ||
| * table. | ||
| */ | ||
| export class Existence extends Base { | ||
| expression: Base; | ||
| constructor(expression: Base); | ||
| } | ||
| /**An extra set of parentheses, specified explicitly in the source. At one time | ||
| * we tried to clean up the results by detecting and removing redundant | ||
| * parentheses, but no longer -- you can put in as many as you please. | ||
| * | ||
| * Parentheses are a good way to force any statement to become an expression. | ||
| */ | ||
| export class Parens extends Base { | ||
| body: Block; | ||
| constructor(body: Block); | ||
| } | ||
| type ForOptions = { | ||
| source: Base, | ||
| guard?: Base, | ||
| step?: Base, | ||
| name?: Base, | ||
| index?: Base, | ||
| }; | ||
| /** | ||
| * CoffeeScript's replacement for the *for* loop is our array and object | ||
| * comprehensions, that compile into *for* loops here. They also act as an | ||
| * expression, able to return the result of each filtered iteration. | ||
| * | ||
| * Unlike Python array comprehensions, they can be multi-line, and you can pass | ||
| * the current index of the loop as a second parameter. Unlike Ruby blocks, | ||
| * you can map and filter in a single pass. | ||
| */ | ||
| export class For extends While { | ||
| range: boolean; | ||
| body: Base; | ||
| own: boolean; | ||
| object: boolean; | ||
| returns: boolean; | ||
| name: Base; | ||
| index: Base; | ||
| pattern: boolean; | ||
| constructor(body: Base, source: ForOptions); | ||
| } | ||
| /** | ||
| * A JavaScript *switch* statement. Converts into a returnable expression on-demand. | ||
| */ | ||
| export class Switch extends Base { | ||
| subject: Base; | ||
| cases: Array<[ Base, Block ]>; | ||
| otherwise: Base; | ||
| constructor(subject: Base | null, cases: Array<[ Base, Block ]>, otherwise: Base); | ||
| } | ||
| /** | ||
| * *If/else* statements. Acts as an expression by pushing down requested returns | ||
| * to the last line of each clause. | ||
| * | ||
| * Single-expression **Ifs** are compiled into conditional operators if possible, | ||
| * because ternaries are already proper expressions, and don't need conversion. | ||
| */ | ||
| export class If extends Base { | ||
| condition: Base; | ||
| body?: Base; | ||
| elseBody?: Base; | ||
| isChain: boolean; | ||
| soak: boolean; | ||
| constructor(condition: Base, body: Base, options?: { soak: boolean }); | ||
| /** | ||
| * Rewrite a chain of **Ifs** to add a default case as the final *else*. | ||
| */ | ||
| addElse(elseBody: Base): this; | ||
| /** | ||
| * Compile the `If` as a regular *if-else* statement. Flattened chains | ||
| * force inner *else* bodies into statement form. | ||
| */ | ||
| compileStatement(o: CompileContext): Array<CodeFragment>; | ||
| /** | ||
| * Compile the `If` as a conditional operator. | ||
| */ | ||
| compileExpression(o: CompileContext): Array<CodeFragment>; | ||
| } |
| export default class Scope { | ||
| freeVariable(name: string, options?: { single?: boolean }); | ||
| } |
| export default class SourceMap { | ||
| sourceLocation(arg: [number, number]): [number, number] | null; | ||
| } | ||
| export interface V3SourceMap { | ||
| version: 3; | ||
| file: string; | ||
| sourceRoot: string; | ||
| sources: Array<string>; | ||
| sourcesContent: Array<string | null>; | ||
| names: Array<string>; | ||
| mappings: string; | ||
| } |
@@ -611,4 +611,14 @@ // Generated by CoffeeScript 1.10.0 | ||
| return new Op($2, $1, $3); | ||
| }), o('Expression LOGIC Expression', function() { | ||
| }), o('Expression & Expression', function() { | ||
| return new Op($2, $1, $3); | ||
| }), o('Expression ^ Expression', function() { | ||
| return new Op($2, $1, $3); | ||
| }), o('Expression | Expression', function() { | ||
| return new Op($2, $1, $3); | ||
| }), o('Expression && Expression', function() { | ||
| return new Op($2, $1, $3); | ||
| }), o('Expression || Expression', function() { | ||
| return new Op($2, $1, $3); | ||
| }), o('Expression BIN? Expression', function() { | ||
| return new Op($2, $1, $3); | ||
| }), o('Expression RELATION Expression', function() { | ||
@@ -632,3 +642,3 @@ if ($2.charAt(0) === '!') { | ||
| operators = [['left', '.', '?.', '::', '?::'], ['left', 'CALL_START', 'CALL_END'], ['nonassoc', '++', '--'], ['left', '?'], ['right', 'UNARY'], ['right', '**'], ['right', 'UNARY_MATH'], ['left', 'MATH'], ['left', '+', '-'], ['left', 'SHIFT'], ['left', 'RELATION'], ['left', 'COMPARE'], ['left', 'LOGIC'], ['nonassoc', 'INDENT', 'OUTDENT'], ['right', 'YIELD'], ['right', '=', ':', 'COMPOUND_ASSIGN', 'RETURN', 'THROW', 'EXTENDS'], ['right', 'FORIN', 'FOROF', 'BY', 'WHEN'], ['right', 'IF', 'ELSE', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'], ['left', 'POST_IF']]; | ||
| operators = [['left', '.', '?.', '::', '?::'], ['left', 'CALL_START', 'CALL_END'], ['nonassoc', '++', '--'], ['left', '?'], ['right', 'UNARY'], ['right', '**'], ['right', 'UNARY_MATH'], ['left', 'MATH'], ['left', '+', '-'], ['left', 'SHIFT'], ['left', 'RELATION'], ['left', 'COMPARE'], ['left', '&'], ['left', '^'], ['left', '|'], ['left', '&&'], ['left', '||'], ['left', 'BIN?'], ['nonassoc', 'INDENT', 'OUTDENT'], ['right', 'YIELD'], ['right', '=', ':', 'COMPOUND_ASSIGN', 'RETURN', 'THROW', 'EXTENDS'], ['right', 'FORIN', 'FOROF', 'BY', 'WHEN'], ['right', 'IF', 'ELSE', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'], ['left', 'POST_IF']]; | ||
@@ -635,0 +645,0 @@ tokens = []; |
| // Generated by CoffeeScript 1.10.0 | ||
| (function() { | ||
| var BOM, BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HERECOMMENT_ILLEGAL, HEREDOC_DOUBLE, HEREDOC_INDENT, HEREDOC_SINGLE, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDENTABLE_CLOSERS, INDEXABLE, INVALID_ESCAPE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LEADING_BLANK_LINE, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTI_DENT, NOT_REGEX, NUMBER, OPERATOR, POSSIBLY_DIVISION, REGEX, REGEX_FLAGS, REGEX_ILLEGAL, RELATION, RESERVED, Rewriter, SHIFT, SIMPLE_STRING_OMIT, STRICT_PROSCRIBED, STRING_DOUBLE, STRING_OMIT, STRING_SINGLE, STRING_START, TRAILING_BLANK_LINE, TRAILING_SPACES, UNARY, UNARY_MATH, VALID_FLAGS, WHITESPACE, compact, count, invertLiterate, key, locationDataToString, ref, ref1, repeat, starts, throwSyntaxError, | ||
| var BOM, BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HERECOMMENT_ILLEGAL, HEREDOC_DOUBLE, HEREDOC_INDENT, HEREDOC_SINGLE, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDENTABLE_CLOSERS, INDEXABLE, INVALID_ESCAPE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LEADING_BLANK_LINE, LINE_BREAK, LINE_CONTINUER, Lexer, MATH, MULTI_DENT, NOT_REGEX, NUMBER, OPERATOR, POSSIBLY_DIVISION, REGEX, REGEX_FLAGS, REGEX_ILLEGAL, RELATION, RESERVED, Rewriter, SHIFT, SIMPLE_STRING_OMIT, STRICT_PROSCRIBED, STRING_DOUBLE, STRING_OMIT, STRING_SINGLE, STRING_START, TRAILING_BLANK_LINE, TRAILING_SPACES, UNARY, UNARY_MATH, VALID_FLAGS, WHITESPACE, compact, count, invertLiterate, key, locationDataToString, ref, ref1, repeat, starts, throwSyntaxError, | ||
| indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; | ||
@@ -132,5 +132,2 @@ | ||
| return 'COMPARE'; | ||
| case '&&': | ||
| case '||': | ||
| return 'LOGIC'; | ||
| case 'true': | ||
@@ -142,2 +139,5 @@ case 'false': | ||
| return 'STATEMENT'; | ||
| case '&&': | ||
| case '||': | ||
| return id; | ||
| default: | ||
@@ -536,4 +536,4 @@ return tag; | ||
| tag = 'SHIFT'; | ||
| } else if (indexOf.call(LOGIC, value) >= 0 || value === '?' && (prev != null ? prev.spaced : void 0)) { | ||
| tag = 'LOGIC'; | ||
| } else if (value === '?' && (prev != null ? prev.spaced : void 0)) { | ||
| tag = 'BIN?'; | ||
| } else if (prev && !prev.spaced) { | ||
@@ -650,3 +650,8 @@ if (value === '(' && (ref5 = prev[0], indexOf.call(CALLABLE, ref5) >= 0)) { | ||
| firstToken[2].first_column -= delimiter.length; | ||
| lastToken[2].last_column += delimiter.length; | ||
| if (lastToken[1].substr(-1) === '\n') { | ||
| lastToken[2].last_line += 1; | ||
| lastToken[2].last_column = delimiter.length - 1; | ||
| } else { | ||
| lastToken[2].last_column += delimiter.length; | ||
| } | ||
| if (lastToken[1].length === 0) { | ||
@@ -801,3 +806,3 @@ lastToken[2].last_column -= 1; | ||
| var ref2; | ||
| return LINE_CONTINUER.test(this.chunk) || ((ref2 = this.tag()) === '\\' || ref2 === '.' || ref2 === '?.' || ref2 === '?::' || ref2 === 'UNARY' || ref2 === 'MATH' || ref2 === 'UNARY_MATH' || ref2 === '+' || ref2 === '-' || ref2 === 'YIELD' || ref2 === '**' || ref2 === 'SHIFT' || ref2 === 'RELATION' || ref2 === 'COMPARE' || ref2 === 'LOGIC' || ref2 === 'THROW' || ref2 === 'EXTENDS'); | ||
| return LINE_CONTINUER.test(this.chunk) || ((ref2 = this.tag()) === '\\' || ref2 === '.' || ref2 === '?.' || ref2 === '?::' || ref2 === 'UNARY' || ref2 === 'MATH' || ref2 === 'UNARY_MATH' || ref2 === '+' || ref2 === '-' || ref2 === 'YIELD' || ref2 === '**' || ref2 === 'SHIFT' || ref2 === 'RELATION' || ref2 === 'COMPARE' || ref2 === '&' || ref2 === '^' || ref2 === '|' || ref2 === '&&' || ref2 === '||' || ref2 === 'BIN?' || ref2 === 'THROW' || ref2 === 'EXTENDS'); | ||
| }; | ||
@@ -994,4 +999,2 @@ | ||
| LOGIC = ['&&', '||', '&', '|', '^']; | ||
| SHIFT = ['<<', '>>', '>>>']; | ||
@@ -998,0 +1001,0 @@ |
@@ -29,2 +29,3 @@ // Generated by CoffeeScript 1.10.0 | ||
| this.addLocationDataToGeneratedTokens(); | ||
| this.fixOutdentLocationData(); | ||
| return this.tokens; | ||
@@ -376,2 +377,19 @@ }; | ||
| Rewriter.prototype.fixOutdentLocationData = function() { | ||
| return this.scanTokens(function(token, i, tokens) { | ||
| var prevLocationData; | ||
| if (!(token[0] === 'OUTDENT' || (token.generated && token[0] === 'CALL_END') || (token.generated && token[0] === '}'))) { | ||
| return 1; | ||
| } | ||
| prevLocationData = tokens[i - 1][2]; | ||
| token[2] = { | ||
| first_line: prevLocationData.last_line, | ||
| first_column: prevLocationData.last_column, | ||
| last_line: prevLocationData.last_line, | ||
| last_column: prevLocationData.last_column | ||
| }; | ||
| return 1; | ||
| }); | ||
| }; | ||
| Rewriter.prototype.normalizeLines = function() { | ||
@@ -378,0 +396,0 @@ var action, condition, indent, outdent, starter; |
+2
-1
@@ -11,3 +11,3 @@ { | ||
| "author": "Jeremy Ashkenas", | ||
| "version": "1.10.0-patch1", | ||
| "version": "1.10.0-patch10", | ||
| "license": "MIT", | ||
@@ -21,2 +21,3 @@ "engines": { | ||
| "main": "./lib/coffee-script/coffee-script", | ||
| "types": "./lib/coffee-script/coffee-script.d.ts", | ||
| "bin": { | ||
@@ -23,0 +24,0 @@ "coffee": "./bin/coffee", |
Sorry, the diff of this file is too big to display
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 2 instances in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 3 instances in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 2 instances in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 3 instances in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
394601
16.83%39
44.44%8762
9.95%31
19.23%