From 559e2c23030fdd7a9bdcd179b72143ec4c019a33 Mon Sep 17 00:00:00 2001 From: Andy Li Date: Sun, 27 Oct 2019 05:25:18 +0800 Subject: [PATCH] New upstream version 4.0.0 --- .github/FUNDING.yml | 4 + .merlin | 12 +- .vscode/schemas/define.schema.json | 68 + .vscode/schemas/meta.schema.json | 90 + .vscode/settings.json | 32 + .vscode/tasks.json | 51 + CONTRIBUTING.md | 50 + Makefile | 348 +- Makefile.version_extra | 2 +- Makefile.win | 37 +- README.md | 83 +- azure-pipelines.yml | 303 + extra/BUILDING.md | 79 + extra/CHANGES.txt | 523 +- extra/ImportAll.hx | 15 +- extra/all.hxml | 20 +- extra/azure-pipelines/build-linux.yml | 61 + extra/azure-pipelines/build-mac.yml | 46 + extra/azure-pipelines/build-windows.yml | 68 + .../install-neko-snapshot.yaml | 33 + extra/azure-pipelines/test-windows.yml | 87 + extra/choco/haxe.nuspec | 2 +- extra/doc.hxml | 8 +- extra/extract.hxml | 8 +- extra/haxelib_src/.dockerignore | 2 +- .../.ebextensions/autoscaling.config | 6 + .../.ebextensions/ignore4xx.config | 58 + extra/haxelib_src/.ebextensions/nginx.config | 4 +- extra/haxelib_src/.github/FUNDING.yml | 4 + extra/haxelib_src/.travis.yml | 39 +- extra/haxelib_src/.vscode/settings.json | 3 +- extra/haxelib_src/.vscode/tasks.json | 29 +- extra/haxelib_src/Dockerfile | 41 +- extra/haxelib_src/appveyor.yml | 9 +- extra/haxelib_src/client.hxml | 1 + extra/haxelib_src/client_legacy.hxml | 5 +- extra/haxelib_src/client_tests.hxml | 3 +- extra/haxelib_src/deploy.json | 1 - extra/haxelib_src/haxelib.json | 8 +- extra/haxelib_src/hx3compat/README.md | 4 + extra/haxelib_src/hx3compat/haxelib.json | 14 + .../std}/haxe/remoting/AMFConnection.hx | 4 +- .../std}/haxe/remoting/AsyncAdapter.hx | 2 +- .../std}/haxe/remoting/AsyncConnection.hx | 4 +- .../haxe/remoting/AsyncDebugConnection.hx | 4 +- .../std}/haxe/remoting/AsyncProxy.hx | 2 +- .../std}/haxe/remoting/Connection.hx | 4 +- .../hx3compat/std}/haxe/remoting/Context.hx | 2 +- .../std}/haxe/remoting/ContextAll.hx | 2 +- .../std}/haxe/remoting/DelayedConnection.hx | 4 +- .../std}/haxe/remoting/ExternalConnection.hx | 6 +- .../std}/haxe/remoting/FlashJsConnection.hx | 4 +- .../std}/haxe/remoting/HttpAsyncConnection.hx | 4 +- .../std}/haxe/remoting/HttpConnection.hx | 4 +- .../std}/haxe/remoting/LocalConnection.hx | 4 +- .../hx3compat/std}/haxe/remoting/Proxy.hx | 2 +- .../std}/haxe/remoting/SocketConnection.hx | 6 +- .../std}/haxe/remoting/SocketProtocol.hx | 2 +- .../std}/haxe/remoting/SocketWrapper.hx | 2 +- .../haxe/remoting/SyncSocketConnection.hx | 4 +- .../hx3compat/std}/haxe/unit/TestCase.hx | 0 .../hx3compat/std}/haxe/unit/TestResult.hx | 0 .../hx3compat/std}/haxe/unit/TestRunner.hx | 12 +- .../hx3compat/std}/haxe/unit/TestStatus.hx | 0 .../hx3compat/std}/haxe/web/Dispatch.hx | 2 +- .../hx3compat/std}/haxe/web/Request.hx | 0 .../haxelib_src/hx3compat/std}/js/JQuery.hx | 0 .../hx3compat/std}/js/SWFObject.hx | 0 .../hx3compat/std}/js/XMLSocket.hx | 2 +- .../hx3compat/std}/neko/net/Poll.hx | 2 +- .../hx3compat/std}/neko/net/ProxyDetect.hx | 2 +- .../hx3compat/std}/neko/net/ServerLoop.hx | 2 +- .../std}/neko/net/ThreadRemotingServer.hx | 2 +- .../hx3compat/std}/neko/net/ThreadServer.hx | 8 +- extra/haxelib_src/integration_tests.hxml | 3 +- extra/haxelib_src/libs.hxml | 32 + extra/haxelib_src/package.hxml | 1 + extra/haxelib_src/run.n | Bin 209105 -> 227519 bytes extra/haxelib_src/schema.json | 4 + extra/haxelib_src/server-start.hxml | 1 + extra/haxelib_src/server.hxml | 4 +- extra/haxelib_src/server_each.hxml | 2 + .../server_website_highlighter.hxml | 7 + extra/haxelib_src/src/Package.hx | 7 +- extra/haxelib_src/src/haxelib/Data.hx | 1 + extra/haxelib_src/src/haxelib/client/Main.hx | 613 +- extra/haxelib_src/src/haxelib/client/Util.hx | 55 + extra/haxelib_src/src/haxelib/client/Vcs.hx | 14 +- .../src/haxelib/server/FileStorage.hx | 11 +- extra/haxelib_src/src/haxelib/server/Repo.hx | 11 +- extra/haxelib_src/src/legacyhaxelib/Main.hx | 4 +- extra/haxelib_src/src/website/Util.hx | 65 + .../haxelib_src/src/website/api/ProjectApi.hx | 18 +- extra/haxelib_src/src/website/api/UserApi.hx | 2 +- .../controller/DocumentationController.hx | 4 +- .../src/website/controller/HomeController.hx | 59 +- .../website/controller/ProjectController.hx | 232 +- .../src/website/controller/RSSController.hx | 4 +- extra/haxelib_src/test/HaxelibTests.hx | 16 + extra/haxelib_src/test/IntegrationTests.hx | 37 +- extra/haxelib_src/test/Prepare.hx | 1 + extra/haxelib_src/test/RunCi.hx | 34 +- extra/haxelib_src/test/TestBase.hx | 40 +- .../test/libraries/UseGitDep/git-deps.hxml | 1 + .../libraries/libBadHaxelibJson/haxelib.json | 11 + .../haxelib_src/test/libraries/libBar/Run.hx | 6 + .../haxelib_src/test/libraries/libBar2/Run.hx | 6 + .../test/libraries/libBar2/RunN.hx | 6 + .../haxelib_src/test/libraries/libBar2/run.n | Bin 0 -> 15471 bytes .../test/libraries/libBaz/haxelib.json | 11 + .../test/libraries/libBaz/haxelib.xml | 7 + .../test/libraries/libBaz/tools/Main.hx | 7 + .../libraries/libDeep2/libDeep/bar/Bar.hx | 9 + .../libraries/libDeep2/libDeep/haxelib.json | 10 + .../libraries/libDeep3/libDeep/bar/Bar.hx | 9 + .../libraries/libDeep3/libDeep/haxelib.json | 10 + extra/haxelib_src/test/tests/TestGit.hx | 10 +- extra/haxelib_src/test/tests/TestHg.hx | 10 +- extra/haxelib_src/test/tests/TestInstall.hx | 33 +- .../test/tests/integration/TestOwner.hx | 65 + .../test/tests/integration/TestPath.hx | 15 + .../test/tests/integration/TestRun.hx | 31 + extra/haxelib_src/www/.htaccess | 26 +- extra/haxelib_src/www/bower.json | 23 - extra/haxelib_src/www/css/style.css | 136 +- .../creating-a-haxelib-package.md | 28 +- .../www/documentation-files/faq.md | 49 +- .../haxelibs-in-projects.md | 30 + .../www/documentation-files/index.md | 4 +- .../documentation-files/per-project-setup.md | 14 +- .../www/documentation-files/using-haxelib.md | 221 +- extra/haxelib_src/www/package-lock.json | 1686 +++ extra/haxelib_src/www/package.json | 17 + extra/haxelib_src/www/robots.txt | 1073 +- extra/haxelib_src/www/view/home/homepage.html | 169 +- .../www/view/home/projectList.html | 14 +- extra/haxelib_src/www/view/home/recent.html | 39 + extra/haxelib_src/www/view/home/search.html | 35 +- extra/haxelib_src/www/view/home/tagList.html | 46 +- .../www/view/home/tagProjectList.html | 19 +- extra/haxelib_src/www/view/layout.html | 183 +- extra/haxelib_src/www/view/project/file.html | 93 +- .../haxelib_src/www/view/project/version.html | 211 +- .../www/view/project/versionList.html | 81 +- extra/haxelib_src/www/view/user/list.html | 4 +- extra/haxelib_src/www/view/user/profile.html | 4 + extra/images/Readme.png | Bin 0 -> 8453 bytes extra/installer.nsi | 4 +- extra/release-checklist.txt | 37 +- haxe.hxproj | 436 - libs/.editorconfig | 11 - libs/.travis.yml | 28 - libs/Makefile | 25 +- libs/extc/Makefile | 14 +- libs/extc/extc.ml | 40 +- libs/extc/extc_stubs.c | 51 +- libs/extc/process_stubs.c | 12 +- libs/extlib-leftovers/Makefile | 35 + .../multiArray.ml | 0 .../multiArray.mli | 0 libs/{extlib => extlib-leftovers}/rbuffer.ml | 50 +- libs/{extlib => extlib-leftovers}/rbuffer.mli | 2 +- .../uChar.ml => extlib-leftovers/uCharExt.ml} | 0 .../uCharExt.mli} | 0 libs/{extlib => extlib-leftovers}/uTF8.ml | 34 +- libs/{extlib => extlib-leftovers}/uTF8.mli | 38 +- libs/extlib/IO.ml | 796 -- libs/extlib/IO.mli | 327 - libs/extlib/LICENSE | 521 - libs/extlib/META.txt | 3 - libs/extlib/Makefile | 52 - libs/extlib/README.txt | 56 - libs/extlib/base64.ml | 119 - libs/extlib/base64.mli | 57 - libs/extlib/bitSet.ml | 312 - libs/extlib/bitSet.mli | 101 - libs/extlib/dllist.ml | 287 - libs/extlib/dllist.mli | 182 - libs/extlib/dynArray.ml | 448 - libs/extlib/dynArray.mli | 281 - libs/extlib/enum.ml | 376 - libs/extlib/enum.mli | 201 - libs/extlib/extArray.ml | 165 - libs/extlib/extArray.mli | 129 - libs/extlib/extHashtbl.ml | 136 - libs/extlib/extHashtbl.mli | 89 - libs/extlib/extLib.ml | 43 - libs/extlib/extList.ml | 508 - libs/extlib/extList.mli | 238 - libs/extlib/extString.ml | 237 - libs/extlib/extString.mli | 180 - libs/extlib/global.ml | 40 - libs/extlib/global.mli | 58 - libs/extlib/install.ml | 218 - libs/extlib/odoc_style.css | 24 - libs/extlib/optParse.ml | 720 -- libs/extlib/optParse.mli | 466 - libs/extlib/option.ml | 49 - libs/extlib/option.mli | 53 - libs/extlib/pMap.ml | 197 - libs/extlib/pMap.mli | 92 - libs/extlib/refList.ml | 139 - libs/extlib/refList.mli | 201 - libs/extlib/sMap.ml | 169 - libs/extlib/sMap.mli | 83 - libs/extlib/std.ml | 185 - libs/extlib/std.mli | 69 - libs/extlib/unzip.ml | 449 - libs/extlib/unzip.mli | 45 - libs/ilib/Makefile | 18 +- libs/ilib/ilMeta.mli | 4 +- libs/ilib/ilMetaReader.ml | 45 +- libs/ilib/peReader.ml | 4 +- libs/javalib/Makefile | 14 +- libs/javalib/jReader.ml | 4 +- libs/neko/Makefile | 46 +- libs/neko/binast.ml | 6 +- libs/neko/nbytecode.ml | 4 +- libs/neko/nxml.ml | 12 +- libs/objsize/Makefile | 6 +- libs/ocamake/ocamake.dsp | 132 +- libs/ocamake/ocamake.dsw | 58 +- libs/ocamake/ocamake.html | 4 +- libs/pcre/Makefile | 7 +- libs/pcre/pcre.ml | 78 +- libs/swflib/Makefile | 162 +- libs/swflib/actionScript.ml | 4 +- libs/swflib/as3code.ml | 2 +- libs/swflib/as3parse.ml | 10 +- libs/swflib/png.ml | 33 +- libs/swflib/swfParser.ml | 106 +- libs/swflib/swfPic.ml | 15 +- libs/ttflib/Makefile | 18 +- libs/ttflib/main.ml | 274 +- libs/ttflib/tTFCanvasWriter.ml | 100 +- libs/ttflib/tTFData.ml | 710 +- libs/ttflib/tTFJsonWriter.ml | 98 +- libs/ttflib/tTFParser.ml | 1376 +-- libs/ttflib/tTFSwfWriter.ml | 420 +- libs/ttflib/tTFTools.ml | 550 +- libs/xml-light/META.in | 3 - libs/xml-light/Makefile | 116 - libs/xml-light/README | 79 - libs/xml-light/dtd.ml | 555 - libs/xml-light/dtd.mli | 175 - libs/xml-light/makedoc.bat | 2 - libs/xml-light/test.ml | 58 - libs/xml-light/xml.dsp | 102 - libs/xml-light/xml.dsw | 29 - libs/xml-light/xml.ml | 268 - libs/xml-light/xml.mli | 170 - libs/xml-light/xmlParser.ml | 185 - libs/xml-light/xmlParser.mli | 82 - libs/xml-light/xml_lexer.mli | 62 - libs/xml-light/xml_lexer.mll | 673 - libs/xml-light/xml_parser.mly | 96 - libs/ziplib/Makefile | 14 +- libs/ziplib/zip.ml | 61 +- libs/ziplib/zlib.ml | 22 +- libs/ziplib/zlib.mli | 10 +- opam | 45 +- src-json/define.json | 656 + src-json/meta.json | 1202 ++ src/{generators => codegen}/codegen.ml | 371 +- src/codegen/dotnet.ml | 1303 ++ .../gencommon/abstractImplementationFix.ml | 43 + src/codegen/gencommon/arrayDeclSynf.ml | 51 + .../gencommon/arraySpliceOptimization.ml | 40 + src/codegen/gencommon/castDetect.ml | 1262 ++ src/codegen/gencommon/classInstance.ml | 57 + src/codegen/gencommon/closuresToClass.ml | 1183 ++ src/codegen/gencommon/dynamicFieldAccess.ml | 132 + src/codegen/gencommon/dynamicOperators.ml | 190 + src/codegen/gencommon/enumToClass.ml | 302 + src/codegen/gencommon/enumToClass2.ml | 399 + src/codegen/gencommon/expressionUnwrap.ml | 638 + src/codegen/gencommon/filterClosures.ml | 86 + src/codegen/gencommon/fixOverrides.ml | 270 + src/codegen/gencommon/gencommon.ml | 1319 ++ src/codegen/gencommon/hardNullableSynf.ml | 284 + src/codegen/gencommon/initFunction.ml | 238 + src/codegen/gencommon/intDivisionSynf.ml | 89 + src/codegen/gencommon/interfaceProps.ml | 43 + .../gencommon/interfaceVarsDeleteModf.ml | 84 + src/codegen/gencommon/normalize.ml | 100 + src/codegen/gencommon/objectDeclMap.ml | 37 + .../gencommon/overloadingConstructor.ml | 444 + src/codegen/gencommon/realTypeParams.ml | 783 ++ src/codegen/gencommon/reflectionCFs.ml | 1528 +++ src/codegen/gencommon/renameTypeParameters.ml | 101 + src/codegen/gencommon/setHXGen.ml | 101 + src/codegen/gencommon/switchToIf.ml | 162 + src/codegen/gencommon/tArrayTransform.ml | 104 + .../gencommon/unnecessaryCastsRemoval.ml | 60 + .../unreachableCodeEliminationSynf.ml | 212 + src/{generators => codegen}/genxml.ml | 290 +- src/codegen/java.ml | 1222 ++ src/{typing => codegen}/overloads.ml | 88 +- src/codegen/swfLoader.ml | 663 + src/compiler/displayOutput.ml | 452 + src/compiler/main.ml | 1229 ++ src/compiler/server.ml | 819 ++ src/compiler/serverConfig.ml | 2 + src/compiler/serverMessage.ml | 190 + src/context/abstractCast.ml | 301 + src/context/common.ml | 1107 +- src/context/commonCache.ml | 84 + src/context/compilationServer.ml | 230 + src/context/display/deprecationCheck.ml | 96 + src/context/display/diagnostics.ml | 229 + src/context/display/display.ml | 321 + src/context/display/displayEmitter.ml | 180 + src/context/display/displayException.ml | 211 + src/context/display/displayFields.ml | 287 + src/context/display/displayJson.ml | 329 + src/context/display/displayPath.ml | 233 + src/context/display/displayToplevel.ml | 477 + src/context/display/documentSymbols.ml | 126 + src/context/display/findReferences.ml | 194 + src/context/display/importHandling.ml | 59 + src/context/display/statistics.ml | 280 + src/context/memory.ml | 289 + src/context/meta.ml | 430 - src/context/nativeLibraries.ml | 60 + src/context/nativeLibraryHandler.ml | 39 + src/context/purityState.ml | 67 + src/{ => context}/sourcemaps.ml | 2 +- src/context/typecore.ml | 654 + src/core/abstract.ml | 102 + src/{syntax => core}/ast.ml | 381 +- src/core/define.ml | 86 + src/core/display/completionItem.ml | 796 ++ src/core/display/displayPosition.ml | 64 + src/core/displayTypes.ml | 311 + src/core/error.ml | 294 + src/{ => core}/globals.ml | 26 +- src/core/json/genjson.ml | 710 ++ src/core/json/json.ml | 401 + src/core/json/jsonRequest.ml | 19 + src/core/json/jsonRpc.ml | 79 + src/core/json/jsonRpcSocket.ml | 7 + src/core/json/jsonrpc_handler.ml | 86 + src/core/meta.ml | 77 + src/core/numeric.ml | 74 + src/core/path.ml | 260 + src/core/socket.ml | 63 + src/core/stringError.ml | 73 + src/core/stringHelper.ml | 51 + src/core/texpr.ml | 558 + src/core/timer.ml | 183 + src/{typing => core}/type.ml | 1350 +- src/core/withType.ml | 31 + src/display/display.ml | 926 -- src/display/displayOutput.ml | 801 -- src/display/displayTypes.ml | 59 - src/filters/ES6Ctors.ml | 243 + src/filters/capturedVars.ml | 291 + src/filters/defaultArguments.ml | 158 + src/{optimization => filters}/filters.ml | 715 +- src/filters/filtersCommon.ml | 68 + src/filters/jsExceptions.ml | 212 + src/filters/localUsage.ml | 69 + src/filters/tryCatchWrapper.ml | 187 + src/filters/varLazifier.ml | 36 + src/generators/flashProps.ml | 60 + src/generators/genas3.ml | 193 +- src/generators/gencommon.ml | 10183 ---------------- src/generators/gencpp.ml | 1734 ++- src/generators/gencs.ml | 6347 ++++------ src/generators/genhl.ml | 1009 +- src/generators/genhxold.ml | 303 + src/generators/genjava.ml | 1969 +-- src/generators/genjs.ml | 1076 +- src/generators/genjvm.ml | 3094 +++++ src/generators/genlua.ml | 3820 +++--- src/generators/genneko.ml | 24 +- src/generators/genphp.ml | 2434 ---- src/generators/genphp7.ml | 1178 +- src/generators/genpy.ml | 320 +- src/generators/genswf.ml | 610 +- src/generators/genswf9.ml | 715 +- src/generators/hl2c.ml | 1003 +- src/generators/hlcode.ml | 102 +- src/generators/hlinterp.ml | 471 +- src/generators/hlopt.ml | 481 +- src/generators/jvm/jvmAttribute.ml | 248 + src/generators/jvm/jvmBuilder.ml | 89 + src/generators/jvm/jvmClass.ml | 188 + src/generators/jvm/jvmCode.ml | 566 + src/generators/jvm/jvmConstantPool.ml | 192 + src/generators/jvm/jvmData.ml | 294 + src/generators/jvm/jvmDebug.ml | 281 + src/generators/jvm/jvmGlobals.ml | 166 + src/generators/jvm/jvmMethod.ml | 844 ++ src/generators/jvm/jvmSignature.ml | 294 + src/generators/jvm/jvmVerificationTypeInfo.ml | 56 + src/generators/jvm/jvmWriter.ml | 341 + src/json.ml | 104 - src/macro/eval/bytes/evalBytesLower.ml | 23 + src/macro/eval/bytes/evalBytesUpper.ml | 24 + src/macro/eval/bytes/evalBytes_E_L79.ml | 41 + src/macro/eval/bytes/evalBytes_L1020.ml | 42 + src/macro/eval/bytes/evalBytes_U1021.ml | 44 + src/macro/eval/bytes/evalBytes_U79.ml | 40 + src/macro/eval/evalArray.ml | 202 + src/macro/eval/evalBytes.ml | 160 + src/macro/eval/evalContext.ml | 519 + src/macro/eval/evalDebug.ml | 123 + src/macro/eval/evalDebugMisc.ml | 416 + src/macro/eval/evalDebugSocket.ml | 796 ++ src/macro/eval/evalDecode.ml | 112 + src/macro/eval/evalEmitter.ml | 783 ++ src/macro/eval/evalEncode.ml | 292 + src/macro/eval/evalExceptions.ml | 174 + src/macro/eval/evalField.ml | 68 + src/macro/eval/evalHash.ml | 132 + src/macro/eval/evalJit.ml | 712 ++ src/macro/eval/evalJitContext.ml | 161 + src/macro/eval/evalMain.ml | 558 + src/macro/eval/evalMisc.ml | 256 + src/macro/eval/evalPrinting.ml | 147 + src/macro/eval/evalPrototype.ml | 362 + src/macro/eval/evalStdLib.ml | 3663 ++++++ src/macro/eval/evalString.ml | 282 + src/macro/eval/evalThread.ml | 92 + src/macro/eval/evalValue.ml | 263 + src/macro/hlmacro.ml | 554 - src/macro/interp.ml | 3103 ----- src/macro/macroApi.ml | 1062 +- src/main.ml | 966 -- src/optimization/analyzer.ml | 136 +- src/optimization/analyzerConfig.ml | 24 +- src/optimization/analyzerTexpr.ml | 491 +- src/optimization/analyzerTexprTransformer.ml | 135 +- src/optimization/analyzerTypes.ml | 11 +- src/optimization/dce.ml | 271 +- src/optimization/inline.ml | 830 ++ src/optimization/inlineConstructors.ml | 530 + src/optimization/optimizer.ml | 1100 +- src/optimization/optimizerTexpr.ml | 70 +- src/path.ml | 148 - src/prebuild/main.ml | 218 + src/server.ml | 637 - src/syntax/grammar.mly | 1558 +++ src/syntax/lexer.ml | 646 + src/syntax/lexer.mll | 436 - src/syntax/parser.ml | 1924 +-- src/syntax/parserEntry.ml | 452 + src/syntax/reification.ml | 398 + src/syntax/semver.ml | 114 + src/typing/abstract.ml | 67 - src/typing/calls.ml | 825 ++ src/typing/error.ml | 94 - src/typing/fields.ml | 623 + src/typing/finalization.ml | 166 + src/typing/forLoop.ml | 506 + src/typing/generic.ml | 309 + src/typing/instanceBuilder.ml | 103 + src/{macro => typing}/macroContext.ml | 434 +- src/typing/magicTypes.ml | 145 + src/typing/matcher.ml | 916 +- src/typing/nullSafety.ml | 1570 +++ src/typing/typecore.ml | 730 -- src/typing/typeload.ml | 4036 +----- src/typing/typeloadCheck.ml | 544 + src/typing/typeloadFields.ml | 1549 +++ src/typing/typeloadFunction.ml | 310 + src/typing/typeloadModule.ml | 995 ++ src/typing/typeloadParse.ml | 349 + src/typing/typer.ml | 3867 ++---- src/typing/typerBase.ml | 212 + src/typing/typerDisplay.ml | 633 + std/Any.hx | 13 +- std/Array.hx | 72 +- std/Class.hx | 6 +- std/Date.hx | 183 +- std/DateTools.hx | 136 +- std/EReg.hx | 34 +- std/Enum.hx | 5 +- std/EnumValue.hx | 33 +- std/IntIterator.hx | 12 +- std/Lambda.hx | 130 +- std/List.hx | 263 +- std/Map.hx | 150 +- std/Math.hx | 91 +- std/Reflect.hx | 55 +- std/Std.hx | 37 +- std/StdTypes.hx | 57 +- std/String.hx | 50 +- std/StringBuf.hx | 17 +- std/StringTools.hx | 463 +- std/Sys.hx | 123 +- std/Type.hx | 60 +- std/UInt.hx | 156 +- std/UnicodeString.hx | 443 + std/Xml.hx | 103 +- std/cpp/ArrayBase.hx | 19 +- std/cpp/AtomicInt.hx | 50 +- std/cpp/AutoCast.hx | 5 +- std/cpp/Callable.hx | 76 +- std/cpp/CastCharStar.hx | 22 +- std/cpp/Char.hx | 5 +- std/cpp/ConstCharStar.hx | 25 +- std/cpp/ConstPointer.hx | 67 +- std/cpp/ConstStar.hx | 12 +- std/cpp/EnumBase.hx | 79 +- std/cpp/ErrorConstants.hx | 40 + std/cpp/FILE.hx | 5 +- std/cpp/FastIterator.hx | 7 +- std/cpp/Finalizable.hx | 42 +- std/cpp/Float32.hx | 5 +- std/cpp/Float64.hx | 5 +- std/cpp/Function.hx | 63 +- std/cpp/Int16.hx | 5 +- std/cpp/Int32.hx | 5 +- std/cpp/Int64.hx | 5 +- std/cpp/Int8.hx | 5 +- std/cpp/Lib.hx | 83 +- std/cpp/Native.hx | 103 + std/cpp/NativeArc.hx | 35 +- std/cpp/NativeArray.hx | 112 +- std/cpp/NativeFile.hx | 99 +- std/cpp/NativeGc.hx | 86 +- std/cpp/NativeMath.hx | 66 +- std/cpp/NativeProcess.hx | 70 +- std/cpp/NativeRandom.hx | 47 +- std/cpp/NativeSocket.hx | 212 +- std/cpp/NativeSsl.hx | 170 +- std/cpp/NativeString.hx | 75 +- std/cpp/NativeSys.hx | 160 +- std/cpp/NativeXml.hx | 905 +- std/cpp/NativeXmlImport.cpp | 21 + std/cpp/Object.hx | 6 +- std/cpp/ObjectType.hx | 52 +- std/cpp/Pointer.hx | 93 +- std/cpp/Prime.hx | 159 +- std/cpp/Random.hx | 17 +- std/cpp/RawConstPointer.hx | 12 +- std/cpp/RawPointer.hx | 12 +- std/cpp/Reference.hx | 12 +- std/cpp/SizeT.hx | 8 +- std/cpp/Star.hx | 12 +- std/cpp/StdString.hx | 49 +- std/cpp/StdStringRef.hx | 38 +- std/cpp/Stdio.hx | 28 +- std/cpp/Stdlib.hx | 71 +- std/cpp/Struct.hx | 10 +- std/cpp/UInt16.hx | 5 +- std/cpp/UInt32.hx | 5 +- std/cpp/UInt64.hx | 5 +- std/cpp/UInt8.hx | 5 +- std/cpp/VarArg.hx | 11 +- std/cpp/VirtualArray.hx | 174 +- std/cpp/Void.hx | 8 +- std/cpp/_std/Date.hx | 103 +- std/cpp/_std/EReg.hx | 241 +- std/cpp/_std/Reflect.hx | 153 +- std/cpp/_std/Std.hx | 29 +- std/cpp/_std/StringBuf.hx | 122 +- std/cpp/_std/Sys.hx | 73 +- std/cpp/_std/Type.hx | 200 +- std/cpp/_std/haxe/Int64.hx | 563 +- std/cpp/_std/haxe/Log.hx | 49 + std/cpp/_std/haxe/Resource.hx | 16 +- std/cpp/_std/haxe/Utf8.hx | 70 +- std/cpp/_std/haxe/ds/IntMap.hx | 120 +- std/cpp/_std/haxe/ds/ObjectMap.hx | 119 +- std/cpp/_std/haxe/ds/StringMap.hx | 119 +- std/cpp/_std/haxe/ds/WeakMap.hx | 80 +- std/cpp/_std/haxe/zip/Compress.hx | 50 +- std/cpp/_std/haxe/zip/Uncompress.hx | 48 +- std/cpp/_std/sys/FileSystem.hx | 61 +- std/cpp/_std/sys/db/Mysql.hx | 193 +- std/cpp/_std/sys/db/Sqlite.hx | 142 +- std/cpp/_std/sys/io/File.hx | 38 +- std/cpp/_std/sys/io/FileInput.hx | 35 +- std/cpp/_std/sys/io/FileOutput.hx | 31 +- std/cpp/_std/sys/io/Process.hx | 74 +- std/cpp/_std/sys/net/Host.hx | 35 +- std/cpp/_std/sys/net/Socket.hx | 470 +- std/cpp/_std/sys/net/UdpSocket.hx | 26 +- std/cpp/_std/sys/ssl/Certificate.hx | 125 +- std/cpp/_std/sys/ssl/Digest.hx | 41 +- std/cpp/_std/sys/ssl/Key.hx | 53 +- std/cpp/_std/sys/ssl/Socket.hx | 265 +- std/cpp/_std/sys/thread/Deque.hx | 44 + std/cpp/_std/sys/thread/Lock.hx | 40 + std/cpp/_std/sys/thread/Mutex.hx | 44 + std/cpp/_std/sys/thread/Thread.hx | 58 + std/cpp/_std/sys/thread/Tls.hx | 45 + std/cpp/abi/Abi.hx | 7 +- std/cpp/abi/CDecl.hx | 7 +- std/cpp/abi/FastCall.hx | 7 +- std/cpp/abi/StdCall.hx | 7 +- std/cpp/abi/ThisCall.hx | 7 +- std/cpp/abi/Winapi.hx | 7 +- std/cpp/cppia/Host.hx | 72 +- std/cpp/cppia/HostClasses.hx | 445 +- std/cpp/cppia/Module.hx | 21 +- std/cpp/link/StaticMysql.hx | 21 +- std/cpp/link/StaticRegexp.hx | 21 +- std/cpp/link/StaticSqlite.hx | 21 +- std/cpp/link/StaticStd.hx | 21 +- std/cpp/link/StaticZlib.hx | 22 +- std/cpp/net/Poll.hx | 31 +- std/cpp/net/ThreadServer.hx | 695 +- std/cpp/objc/NSData.hx | 37 +- std/cpp/objc/NSDictionary.hx | 28 +- std/cpp/objc/NSError.hx | 9 +- std/cpp/objc/NSLog.hx | 17 +- std/cpp/objc/NSObject.hx | 27 +- std/cpp/objc/NSString.hx | 29 +- std/cpp/objc/ObjcBlock.hx | 5 +- std/cpp/objc/Protocol.hx | 7 +- std/cpp/rtti/FieldIntegerLookup.hx | 6 +- std/cpp/rtti/FieldNumericIntegerLookup.hx | 6 +- std/cpp/vm/Debugger.hx | 708 +- std/cpp/vm/Deque.hx | 21 +- std/cpp/vm/ExecutionTrace.hx | 31 +- std/cpp/vm/Gc.hx | 197 +- std/cpp/vm/Lock.hx | 18 +- std/cpp/vm/Mutex.hx | 21 +- std/cpp/vm/Profiler.hx | 24 +- std/cpp/vm/Thread.hx | 51 +- std/cpp/vm/Tls.hx | 25 +- std/cpp/vm/Unsafe.hx | 16 +- std/cpp/vm/WeakRef.hx | 32 +- std/cpp/zip/Compress.hx | 7 +- std/cpp/zip/Flush.hx | 7 +- std/cpp/zip/Uncompress.hx | 7 +- std/cs/Boot.hx | 18 +- std/cs/Constraints.hx | 55 + std/cs/Flags.hx | 75 +- std/cs/Lib.hx | 100 +- std/cs/NativeArray.hx | 34 +- std/cs/Out.hx | 7 +- std/cs/Pointer.hx | 100 +- std/cs/Ref.hx | 7 +- std/cs/StdTypes.hx | 163 +- std/cs/_std/Array.hx | 303 +- std/cs/_std/Date.hx | 137 +- std/cs/_std/EReg.hx | 88 +- std/cs/_std/Math.hx | 88 +- std/cs/_std/Reflect.hx | 108 +- std/cs/_std/Std.hx | 129 +- std/cs/_std/String.hx | 33 +- std/cs/_std/StringBuf.hx | 35 +- std/cs/_std/Sys.hx | 138 +- std/cs/_std/Type.hx | 247 +- std/cs/_std/haxe/Int64.hx | 177 +- std/cs/_std/haxe/Resource.hx | 16 +- std/cs/_std/haxe/ds/IntMap.hx | 419 +- std/cs/_std/haxe/ds/ObjectMap.hx | 348 +- std/cs/_std/haxe/ds/StringMap.hx | 344 +- std/cs/_std/haxe/ds/WeakMap.hx2 | 569 - std/cs/_std/sys/FileSystem.hx | 88 +- std/cs/_std/sys/db/Sqlite.hx | 36 +- std/cs/_std/sys/io/File.hx | 48 +- std/cs/_std/sys/io/FileInput.hx | 6 +- std/cs/_std/sys/io/FileOutput.hx | 6 +- std/cs/_std/sys/io/Process.hx | 39 +- std/cs/_std/sys/net/Host.hx | 48 +- std/cs/_std/sys/net/Socket.hx | 204 +- std/cs/_std/sys/thread/Deque.hx | 60 + std/cs/_std/sys/thread/Lock.hx | 79 + std/cs/_std/sys/thread/Mutex.hx | 43 + std/cs/_std/sys/thread/Thread.hx | 112 + std/cs/_std/sys/thread/Tls.hx | 45 + std/cs/db/AdoNet.hx | 232 +- std/cs/internal/BoxedPointer.hx | 14 +- std/cs/internal/Exceptions.hx | 29 +- std/cs/internal/FieldLookup.hx | 247 +- std/cs/internal/Function.hx | 50 +- std/cs/internal/HxObject.hx | 314 +- std/cs/internal/Null.hx | 27 +- std/cs/internal/Runtime.hx | 600 +- std/cs/internal/StringExt.hx | 136 +- std/cs/io/NativeInput.hx | 43 +- std/cs/io/NativeOutput.hx | 44 +- std/cs/types/Char16.hx | 3 +- std/cs/types/Int16.hx | 3 +- std/cs/types/Int64.hx | 4 +- std/cs/types/Int8.hx | 3 +- std/cs/types/UInt16.hx | 3 +- std/cs/types/UInt64.hx | 3 +- std/cs/types/UInt8.hx | 3 +- std/eval/Vector.hx | 34 + std/eval/_std/EReg.hx | 37 + .../Iterator.hx => eval/_std/StringBuf.hx} | 28 +- std/eval/_std/Sys.hx | 96 + std/eval/_std/haxe/Resource.hx | 30 + std/eval/_std/haxe/Utf8.hx | 39 + std/eval/_std/haxe/io/Bytes.hx | 58 + std/eval/_std/haxe/io/BytesBuffer.hx | 39 + std/eval/_std/haxe/io/BytesData.hx | 34 + std/eval/_std/haxe/zip/Compress.hx | 31 + std/eval/_std/haxe/zip/Uncompress.hx | 31 + std/eval/_std/sys/FileSystem.hx | 52 + std/eval/_std/sys/io/File.hx | 50 + std/eval/_std/sys/io/FileInput.hx | 39 + std/eval/_std/sys/io/FileOutput.hx | 39 + std/eval/_std/sys/io/Process.hx | 133 + std/eval/_std/sys/net/Host.hx | 53 + std/eval/_std/sys/net/Socket.hx | 211 + .../_std/sys/thread/Thread.hx} | 50 +- std/eval/vm/Context.hx | 64 + std/eval/vm/Gc.hx | 233 + std/eval/vm/NativeThread.hx | 79 + std/flash/AnyType.hx | 9 + std/flash/Boot.hx | 419 +- std/flash/Lib.hx | 68 +- std/flash/Memory.hx | 61 +- std/flash/NativeXml.hx | 364 +- std/flash/Vector.hx | 81 +- std/flash/_std/EReg.hx | 76 +- std/flash/_std/Reflect.hx | 178 +- std/flash/_std/Std.hx | 40 +- std/flash/_std/String.hx | 41 + std/flash/_std/Type.hx | 415 +- std/flash/_std/haxe/Http.hx | 107 + std/flash/_std/haxe/Json.hx | 29 +- .../_std/haxe/Log.hx} | 52 +- std/flash/_std/haxe/Resource.hx | 54 +- std/flash/_std/haxe/ds/IntMap.hx | 88 +- std/flash/_std/haxe/ds/ObjectMap.hx | 53 +- std/flash/_std/haxe/ds/StringMap.hx | 132 +- std/flash/_std/haxe/ds/UnsafeStringMap.hx | 85 +- std/flash/_std/haxe/ds/WeakMap.hx | 53 +- std/flash/_std/haxe/zip/Compress.hx | 27 +- std/flash/_std/haxe/zip/Uncompress.hx | 19 +- std/flash/accessibility/Accessibility.hx | 3 +- std/flash/accessibility/ISearchableText.hx | 3 +- .../accessibility/ISimpleTextSelection.hx | 6 +- std/flash/automation/AutomationAction.hx | 4 +- std/flash/automation/Configuration.hx | 7 +- .../automation/KeyboardAutomationAction.hx | 8 +- std/flash/automation/MouseAutomationAction.hx | 28 +- std/flash/automation/StageCapture.hx | 28 +- std/flash/automation/StageCaptureEvent.hx | 11 +- std/flash/concurrent/Condition.hx | 8 +- std/flash/concurrent/Mutex.hx | 5 +- std/flash/desktop/Clipboard.hx | 6 +- std/flash/desktop/ClipboardFormats.hx | 24 +- std/flash/desktop/ClipboardTransferMode.hx | 10 +- std/flash/display/AVM1Movie.hx | 2 +- std/flash/display/ActionScriptVersion.hx | 6 +- std/flash/display/Bitmap.hx | 12 +- std/flash/display/BitmapCompressColorSpace.hx | 11 +- std/flash/display/BitmapData.hx | 12 +- std/flash/display/BitmapEncodingColorSpace.hx | 10 +- std/flash/display/BlendMode.hx | 32 +- std/flash/display/CapsStyle.hx | 8 +- std/flash/display/ColorCorrection.hx | 8 +- std/flash/display/ColorCorrectionSupport.hx | 8 +- std/flash/display/DisplayObject.hx | 119 +- std/flash/display/DisplayObjectContainer.hx | 14 +- std/flash/display/FocusDirection.hx | 8 +- std/flash/display/FrameLabel.hx | 8 +- std/flash/display/GradientType.hx | 6 +- std/flash/display/Graphics.hx | 2 +- std/flash/display/GraphicsBitmapFill.hx | 2 +- std/flash/display/GraphicsGradientFill.hx | 14 +- std/flash/display/GraphicsPath.hx | 6 +- std/flash/display/GraphicsPathWinding.hx | 6 +- std/flash/display/GraphicsShaderFill.hx | 2 +- std/flash/display/GraphicsSolidFill.hx | 2 +- std/flash/display/GraphicsStroke.hx | 14 +- std/flash/display/GraphicsTrianglePath.hx | 6 +- std/flash/display/InteractiveObject.hx | 36 +- std/flash/display/InterpolationMethod.hx | 6 +- std/flash/display/JPEGCompressOptions.hx | 2 +- std/flash/display/JPEGEncoderOptions.hx | 2 +- std/flash/display/JPEGXRCompressOptions.hx | 2 +- std/flash/display/JPEGXREncoderOptions.hx | 2 +- std/flash/display/JointStyle.hx | 8 +- std/flash/display/LineScaleMode.hx | 10 +- std/flash/display/Loader.hx | 9 +- std/flash/display/LoaderInfo.hx | 71 +- std/flash/display/MovieClip.hx | 37 +- std/flash/display/NativeMenuItem.hx | 4 +- std/flash/display/PNGEncoderOptions.hx | 2 +- std/flash/display/PixelSnapping.hx | 8 +- std/flash/display/SWFVersion.hx | 24 +- std/flash/display/Scene.hx | 11 +- std/flash/display/Shader.hx | 11 +- std/flash/display/ShaderInput.hx | 20 +- std/flash/display/ShaderJob.hx | 19 +- std/flash/display/ShaderParameter.hx | 12 +- std/flash/display/ShaderParameterType.hx | 32 +- std/flash/display/ShaderPrecision.hx | 6 +- std/flash/display/Shape.hx | 3 +- std/flash/display/SimpleButton.hx | 32 +- std/flash/display/SpreadMethod.hx | 8 +- std/flash/display/Sprite.hx | 22 +- std/flash/display/Stage.hx | 94 +- std/flash/display/Stage3D.hx | 15 +- std/flash/display/StageAlign.hx | 18 +- std/flash/display/StageDisplayState.hx | 8 +- std/flash/display/StageQuality.hx | 18 +- std/flash/display/StageScaleMode.hx | 10 +- std/flash/display/StageWorker.hx | 2 +- std/flash/display/TriangleCulling.hx | 8 +- std/flash/display/Worker.hx | 2 +- std/flash/display3D/Context3D.hx | 32 +- std/flash/display3D/Context3DBlendFactor.hx | 22 +- std/flash/display3D/Context3DBufferUsage.hx | 6 +- std/flash/display3D/Context3DClearMask.hx | 8 +- std/flash/display3D/Context3DCompareMode.hx | 18 +- std/flash/display3D/Context3DFillMode.hx | 6 +- std/flash/display3D/Context3DMipFilter.hx | 8 +- std/flash/display3D/Context3DProfile.hx | 14 +- std/flash/display3D/Context3DProgramType.hx | 6 +- std/flash/display3D/Context3DRenderMode.hx | 6 +- std/flash/display3D/Context3DStencilAction.hx | 18 +- std/flash/display3D/Context3DTextureFilter.hx | 14 +- std/flash/display3D/Context3DTextureFormat.hx | 14 +- std/flash/display3D/Context3DTriangleFace.hx | 10 +- .../display3D/Context3DVertexBufferFormat.hx | 12 +- std/flash/display3D/Context3DWrapMode.hx | 10 +- std/flash/display3D/IndexBuffer3D.hx | 2 +- std/flash/display3D/Program3D.hx | 2 +- std/flash/display3D/textures/CubeTexture.hx | 2 +- .../display3D/textures/RectangleTexture.hx | 2 +- std/flash/display3D/textures/Texture.hx | 2 +- std/flash/display3D/textures/VideoTexture.hx | 8 +- std/flash/errors/DRMManagerError.hx | 3 +- std/flash/errors/Error.hx | 7 +- std/flash/events/AVDictionaryDataEvent.hx | 8 +- std/flash/events/AVHTTPStatusEvent.hx | 13 +- std/flash/events/AVLoadInfoEvent.hx | 5 +- std/flash/events/AVManifestLoadEvent.hx | 14 +- std/flash/events/AVPauseAtPeriodEndEvent.hx | 5 +- std/flash/events/AVPlayStateEvent.hx | 5 +- std/flash/events/AVStatusEvent.hx | 43 +- std/flash/events/AVStreamSwitchEvent.hx | 21 +- std/flash/events/AccelerometerEvent.hx | 18 +- std/flash/events/ActivityEvent.hx | 6 +- std/flash/events/AsyncErrorEvent.hx | 2 +- std/flash/events/AudioOutputChangeEvent.hx | 8 + std/flash/events/ContextMenuEvent.hx | 16 +- std/flash/events/DRMAuthenticateEvent.hx | 24 +- .../events/DRMAuthenticationCompleteEvent.hx | 14 +- .../events/DRMAuthenticationErrorEvent.hx | 14 +- std/flash/events/DRMDeviceGroupErrorEvent.hx | 18 +- std/flash/events/DRMDeviceGroupEvent.hx | 8 +- std/flash/events/DRMErrorEvent.hx | 17 +- std/flash/events/DRMLicenseRequestEvent.hx | 6 +- std/flash/events/DRMMetadataEvent.hx | 8 +- .../events/DRMReturnVoucherCompleteEvent.hx | 18 +- .../events/DRMReturnVoucherErrorEvent.hx | 18 +- std/flash/events/DRMStatusEvent.hx | 14 +- std/flash/events/DataEvent.hx | 8 +- std/flash/events/ErrorEvent.hx | 5 +- std/flash/events/Event.hx | 106 +- std/flash/events/EventPhase.hx | 8 +- std/flash/events/FocusEvent.hx | 24 +- std/flash/events/FullScreenEvent.hx | 10 +- std/flash/events/GameInputEvent.hx | 11 +- std/flash/events/GeolocationEvent.hx | 34 +- std/flash/events/GestureEvent.hx | 32 +- std/flash/events/GesturePhase.hx | 10 +- std/flash/events/HTTPStatusEvent.hx | 19 +- std/flash/events/IMEEvent.hx | 8 +- std/flash/events/IOErrorEvent.hx | 8 +- std/flash/events/KeyboardEvent.hx | 28 +- std/flash/events/MouseEvent.hx | 86 +- std/flash/events/NetDataEvent.hx | 8 +- std/flash/events/NetMonitorEvent.hx | 5 +- std/flash/events/NetStatusEvent.hx | 6 +- std/flash/events/OutputProgressEvent.hx | 10 +- std/flash/events/PressAndTapGestureEvent.hx | 16 +- std/flash/events/ProgressEvent.hx | 12 +- std/flash/events/SampleDataEvent.hx | 10 +- std/flash/events/SecurityErrorEvent.hx | 2 +- std/flash/events/ShaderEvent.hx | 14 +- std/flash/events/SoftKeyboardEvent.hx | 13 +- std/flash/events/SoftKeyboardTrigger.hx | 4 +- .../events/StageVideoAvailabilityEvent.hx | 9 +- std/flash/events/StageVideoEvent.hx | 16 +- std/flash/events/StatusEvent.hx | 10 +- std/flash/events/SyncEvent.hx | 6 +- std/flash/events/TextEvent.hx | 8 +- std/flash/events/ThrottleEvent.hx | 8 +- std/flash/events/ThrottleType.hx | 8 +- std/flash/events/TimerEvent.hx | 4 +- std/flash/events/TouchEvent.hx | 84 +- std/flash/events/TransformGestureEvent.hx | 32 +- std/flash/events/UncaughtErrorEvent.hx | 5 +- std/flash/events/VideoEvent.hx | 13 +- std/flash/events/VideoTextureEvent.hx | 10 +- std/flash/external/ExternalInterface.hx | 8 +- std/flash/filters/BevelFilter.hx | 50 +- std/flash/filters/BitmapFilterType.hx | 8 +- std/flash/filters/BlurFilter.hx | 14 +- std/flash/filters/ColorMatrixFilter.hx | 6 +- std/flash/filters/ConvolutionFilter.hx | 36 +- std/flash/filters/DisplacementMapFilter.hx | 38 +- .../filters/DisplacementMapFilterMode.hx | 10 +- std/flash/filters/DropShadowFilter.hx | 46 +- std/flash/filters/GlowFilter.hx | 34 +- std/flash/filters/GradientBevelFilter.hx | 46 +- std/flash/filters/GradientGlowFilter.hx | 46 +- std/flash/filters/ShaderFilter.hx | 20 +- std/flash/geom/ColorTransform.hx | 4 +- std/flash/geom/Matrix3D.hx | 11 +- std/flash/geom/Orientation3D.hx | 8 +- std/flash/geom/PerspectiveProjection.hx | 12 +- std/flash/geom/Point.hx | 3 +- std/flash/geom/Rectangle.hx | 28 +- std/flash/geom/Transform.hx | 25 +- std/flash/geom/Vector3D.hx | 12 +- std/flash/globalization/Collator.hx | 35 +- std/flash/globalization/CollatorMode.hx | 6 +- std/flash/globalization/CurrencyFormatter.hx | 61 +- .../globalization/CurrencyParseResult.hx | 8 +- std/flash/globalization/DateTimeFormatter.hx | 11 +- .../globalization/DateTimeNameContext.hx | 6 +- std/flash/globalization/DateTimeNameStyle.hx | 8 +- std/flash/globalization/DateTimeStyle.hx | 12 +- .../globalization/LastOperationStatus.hx | 36 +- std/flash/globalization/LocaleID.hx | 10 +- std/flash/globalization/NationalDigitsType.hx | 66 +- std/flash/globalization/NumberFormatter.hx | 51 +- std/flash/globalization/NumberParseResult.hx | 11 +- std/flash/globalization/StringTools.hx | 11 +- std/flash/media/AVABRParameters.hx | 22 +- std/flash/media/AVABRProfileInfo.hx | 9 +- std/flash/media/AVCaptionStyle.hx | 122 +- std/flash/media/AVCuePoint.hx | 6 +- std/flash/media/AVInsertionResult.hx | 6 +- std/flash/media/AVNetworkingParams.hx | 20 +- std/flash/media/AVPeriodInfo.hx | 30 +- std/flash/media/AVPlayState.hx | 21 +- std/flash/media/AVResult.hx | 205 +- std/flash/media/AVSegmentedSource.hx | 36 +- std/flash/media/AVStream.hx | 60 +- std/flash/media/AVTagData.hx | 6 +- std/flash/media/AVTimeline.hx | 24 +- std/flash/media/AVTrackInfo.hx | 30 +- std/flash/media/AVURLLoader.hx | 3 +- std/flash/media/AVURLStream.hx | 3 +- std/flash/media/AudioDecoder.hx | 12 +- std/flash/media/AudioDeviceManager.hx | 14 + std/flash/media/AudioOutputChangeReason.hx | 7 + std/flash/media/Camera.hx | 55 +- std/flash/media/H264Level.hx | 32 +- std/flash/media/H264Profile.hx | 4 +- std/flash/media/H264VideoStreamSettings.hx | 6 +- std/flash/media/ID3Info.hx | 2 +- std/flash/media/Microphone.hx | 65 +- std/flash/media/MicrophoneEnhancedMode.hx | 12 +- std/flash/media/MicrophoneEnhancedOptions.hx | 22 +- std/flash/media/Sound.hx | 21 +- std/flash/media/SoundChannel.hx | 15 +- std/flash/media/SoundCodec.hx | 10 +- std/flash/media/SoundMixer.hx | 16 +- std/flash/media/SoundTransform.hx | 26 +- std/flash/media/StageVideo.hx | 25 +- std/flash/media/StageVideoAvailability.hx | 4 +- .../media/StageVideoAvailabilityReason.hx | 10 +- std/flash/media/Video.hx | 14 +- std/flash/media/VideoCodec.hx | 6 +- std/flash/media/VideoStatus.hx | 6 +- std/flash/media/VideoStreamSettings.hx | 21 +- std/flash/net/FileFilter.hx | 14 +- std/flash/net/FileReference.hx | 21 +- std/flash/net/FileReferenceList.hx | 3 +- std/flash/net/GroupSpecifier.hx | 35 +- std/flash/net/LocalConnection.hx | 20 +- std/flash/net/NetConnection.hx | 54 +- std/flash/net/NetGroup.hx | 23 +- std/flash/net/NetGroupInfo.hx | 26 +- std/flash/net/NetGroupReceiveMode.hx | 4 +- std/flash/net/NetGroupReplicationStrategy.hx | 4 +- std/flash/net/NetGroupSendMode.hx | 4 +- std/flash/net/NetGroupSendResult.hx | 6 +- std/flash/net/NetStream.hx | 147 +- std/flash/net/NetStreamAppendBytesAction.hx | 6 +- std/flash/net/NetStreamInfo.hx | 77 +- std/flash/net/NetStreamMulticastInfo.hx | 59 +- std/flash/net/ObjectEncoding.hx | 10 +- std/flash/net/SecureSocket.hx | 9 +- std/flash/net/SharedObject.hx | 27 +- std/flash/net/SharedObjectFlushStatus.hx | 4 +- std/flash/net/Socket.hx | 21 +- std/flash/net/URLLoaderDataFormat.hx | 8 +- std/flash/net/URLRequest.hx | 26 +- std/flash/net/URLRequestHeader.hx | 2 +- std/flash/net/URLRequestMethod.hx | 12 +- std/flash/net/URLStream.hx | 24 +- std/flash/net/XMLSocket.hx | 7 +- std/flash/net/drm/AddToDeviceGroupSetting.hx | 6 +- std/flash/net/drm/AuthenticationMethod.hx | 4 +- std/flash/net/drm/DRMAuthenticationContext.hx | 3 +- std/flash/net/drm/DRMContentData.hx | 12 +- std/flash/net/drm/DRMDeviceGroup.hx | 15 +- std/flash/net/drm/DRMManager.hx | 11 +- std/flash/net/drm/DRMManagerSession.hx | 12 +- std/flash/net/drm/DRMPlaybackTimeWindow.hx | 9 +- std/flash/net/drm/DRMVoucher.hx | 27 +- .../net/drm/DRMVoucherDownloadContext.hx | 3 +- std/flash/net/drm/DRMVoucherStoreContext.hx | 3 +- std/flash/net/drm/LoadVoucherSetting.hx | 6 +- std/flash/net/drm/VoucherAccessInfo.hx | 17 +- std/flash/printing/PrintJob.hx | 18 +- std/flash/printing/PrintJobOrientation.hx | 6 +- std/flash/profiler/Telemetry.hx | 6 +- std/flash/sampler/ClassFactory.hx | 8 +- std/flash/sampler/DeleteObjectSample.hx | 6 +- std/flash/sampler/NewObjectSample.hx | 12 +- std/flash/sampler/Sample.hx | 4 +- std/flash/sampler/StackFrame.hx | 10 +- std/flash/security/CertificateStatus.hx | 18 +- std/flash/security/X500DistinguishedName.hx | 18 +- std/flash/security/X509Certificate.hx | 39 +- std/flash/sensors/Accelerometer.hx | 6 +- std/flash/sensors/Geolocation.hx | 6 +- std/flash/system/ApplicationDomain.hx | 15 +- std/flash/system/ApplicationInstaller.hx | 5 +- std/flash/system/ApplicationInstallerMode.hx | 8 +- std/flash/system/AuthorizedFeatures.hx | 6 +- std/flash/system/AuthorizedFeaturesLoader.hx | 7 +- std/flash/system/Capabilities.hx | 104 +- std/flash/system/ConnexionsClient.hx | 2 +- std/flash/system/IME.hx | 11 +- std/flash/system/IMEConversionMode.hx | 18 +- std/flash/system/ImageDecodingPolicy.hx | 6 +- std/flash/system/LoaderContext.hx | 4 +- std/flash/system/MessageChannel.hx | 8 +- std/flash/system/MessageChannelState.hx | 9 +- std/flash/system/Security.hx | 32 +- std/flash/system/SecurityDomain.hx | 6 +- std/flash/system/SecurityPanel.hx | 16 +- std/flash/system/System.hx | 25 +- std/flash/system/SystemUpdaterType.hx | 6 +- std/flash/system/TouchscreenType.hx | 8 +- std/flash/system/Worker.hx | 14 +- std/flash/system/WorkerDomain.hx | 8 +- std/flash/system/WorkerState.hx | 8 +- std/flash/text/AntiAliasType.hx | 6 +- std/flash/text/CSMSettings.hx | 2 +- std/flash/text/Font.hx | 9 +- std/flash/text/FontStyle.hx | 10 +- std/flash/text/FontType.hx | 8 +- std/flash/text/GridFitType.hx | 8 +- std/flash/text/StaticText.hx | 5 +- std/flash/text/StyleSheet.hx | 3 +- std/flash/text/TextColorType.hx | 6 +- std/flash/text/TextDisplayMode.hx | 8 +- std/flash/text/TextField.hx | 152 +- std/flash/text/TextFieldAutoSize.hx | 10 +- std/flash/text/TextFieldType.hx | 6 +- std/flash/text/TextFormat.hx | 76 +- std/flash/text/TextFormatAlign.hx | 14 +- std/flash/text/TextFormatDisplay.hx | 6 +- std/flash/text/TextInteractionMode.hx | 6 +- std/flash/text/TextRenderer.hx | 12 +- std/flash/text/TextSnapshot.hx | 3 +- std/flash/text/engine/BreakOpportunity.hx | 10 +- std/flash/text/engine/CFFHinting.hx | 6 +- std/flash/text/engine/ContentElement.hx | 29 +- std/flash/text/engine/DigitCase.hx | 8 +- std/flash/text/engine/DigitWidth.hx | 8 +- std/flash/text/engine/EastAsianJustifier.hx | 10 +- std/flash/text/engine/ElementFormat.hx | 74 +- std/flash/text/engine/FontDescription.hx | 30 +- std/flash/text/engine/FontLookup.hx | 6 +- std/flash/text/engine/FontMetrics.hx | 2 +- std/flash/text/engine/FontPosture.hx | 6 +- std/flash/text/engine/FontWeight.hx | 6 +- std/flash/text/engine/GraphicElement.hx | 14 +- std/flash/text/engine/GroupElement.hx | 5 +- std/flash/text/engine/JustificationStyle.hx | 8 +- std/flash/text/engine/Kerning.hx | 8 +- std/flash/text/engine/LigatureLevel.hx | 12 +- std/flash/text/engine/LineJustification.hx | 10 +- std/flash/text/engine/RenderingMode.hx | 6 +- std/flash/text/engine/SpaceJustifier.hx | 18 +- std/flash/text/engine/TabAlignment.hx | 10 +- std/flash/text/engine/TabStop.hx | 14 +- std/flash/text/engine/TextBaseline.hx | 16 +- std/flash/text/engine/TextBlock.hx | 50 +- std/flash/text/engine/TextElement.hx | 3 +- std/flash/text/engine/TextJustifier.hx | 7 +- std/flash/text/engine/TextLine.hx | 62 +- .../text/engine/TextLineCreationResult.hx | 10 +- std/flash/text/engine/TextLineMirrorRegion.hx | 20 +- std/flash/text/engine/TextLineValidity.hx | 10 +- std/flash/text/engine/TextRotation.hx | 12 +- std/flash/text/engine/TypographicCase.hx | 16 +- .../text/ime/CompositionAttributeRange.hx | 2 +- std/flash/text/ime/IIMEClient.hx | 15 +- std/flash/trace/Trace.hx | 14 +- std/flash/ui/ContextMenu.hx | 25 +- std/flash/ui/ContextMenuBuiltInItems.hx | 34 +- std/flash/ui/ContextMenuClipboardItems.hx | 22 +- std/flash/ui/ContextMenuItem.hx | 14 +- std/flash/ui/GameInput.hx | 6 +- std/flash/ui/GameInputControl.hx | 15 +- std/flash/ui/GameInputControlType.hx | 14 +- std/flash/ui/GameInputDevice.hx | 21 +- std/flash/ui/GameInputFinger.hx | 10 +- std/flash/ui/GameInputHand.hx | 8 +- std/flash/ui/KeyLocation.hx | 12 +- std/flash/ui/Keyboard.hx | 566 +- std/flash/ui/KeyboardType.hx | 8 +- std/flash/ui/Mouse.hx | 10 +- std/flash/ui/MouseCursor.hx | 10 +- std/flash/ui/MouseCursorData.hx | 14 +- std/flash/ui/Multitouch.hx | 20 +- std/flash/ui/MultitouchInputMode.hx | 8 +- std/flash/utils/ByteArray.hx | 27 +- std/flash/utils/CompressionAlgorithm.hx | 8 +- std/flash/utils/Endian.hx | 6 +- std/flash/utils/IDataInput.hx | 11 +- std/flash/utils/IDataOutput.hx | 8 +- std/flash/utils/Namespace.hx | 8 +- std/flash/utils/Object.hx | 3 +- std/flash/utils/ObjectInput.hx | 11 +- std/flash/utils/ObjectOutput.hx | 8 +- std/flash/utils/Proxy.hx | 2 +- std/flash/utils/QName.hx | 8 +- std/flash/utils/RegExp.hx | 22 +- std/flash/utils/SetIntervalTimer.hx | 6 +- std/flash/utils/Timer.hx | 14 +- std/flash/xml/XML.hx | 22 +- std/flash/xml/XMLList.hx | 2 +- std/flash/xml/XMLNode.hx | 16 +- std/flash/xml/XMLNodeType.hx | 16 +- std/flash/xml/XMLParser.hx | 2 +- std/flash/xml/XMLTag.hx | 18 +- std/haxe/CallStack.hx | 549 +- std/haxe/Constraints.hx | 36 +- std/haxe/DynamicAccess.hx | 53 +- std/haxe/EntryPoint.hx | 96 +- std/haxe/EnumFlags.hx | 30 +- std/haxe/EnumTools.hx | 53 +- std/haxe/Http.hx | 827 +- std/haxe/Int32.hx | 153 +- std/haxe/Int64.hx | 310 +- std/haxe/Int64Helper.hx | 35 +- std/haxe/Json.hx | 11 +- std/haxe/Log.hx | 124 +- std/haxe/MainLoop.hx | 101 +- std/haxe/PosInfos.hx | 19 +- std/haxe/Resource.hx | 49 +- std/haxe/Serializer.hx | 691 +- std/haxe/SysTools.hx | 106 + std/haxe/Template.hx | 511 +- std/haxe/Timer.hx | 132 +- std/haxe/Ucs2.hx | 49 +- std/haxe/Unserializer.hx | 652 +- std/haxe/Utf8.hx | 38 +- std/haxe/crypto/Adler32.hx | 28 +- std/haxe/crypto/Base64.hx | 52 +- std/haxe/crypto/BaseCode.hx | 69 +- std/haxe/crypto/Crc32.hx | 58 +- std/haxe/crypto/Hmac.hx | 47 +- std/haxe/crypto/Md5.hx | 272 +- std/haxe/crypto/Sha1.hx | 102 +- std/haxe/crypto/Sha224.hx | 342 +- std/haxe/crypto/Sha256.hx | 141 +- std/haxe/display/Display.hx | 518 + std/haxe/display/FsPath.hx | 33 + std/haxe/display/JsonModuleTypes.hx | 371 + std/haxe/display/Position.hx | 61 + std/haxe/display/Protocol.hx | 111 + std/haxe/display/Server.hx | 167 + std/haxe/ds/ArraySort.hx | 23 +- std/haxe/ds/BalancedTree.hx | 127 +- std/haxe/ds/Either.hx | 4 +- std/haxe/ds/EnumValueMap.hx | 25 +- std/haxe/ds/GenericStack.hx | 99 +- std/haxe/ds/HashMap.hx | 28 +- std/haxe/ds/IntMap.hx | 48 +- std/haxe/ds/List.hx | 313 + std/haxe/ds/ListSort.hx | 57 +- std/haxe/ds/Map.hx | 196 + std/haxe/ds/ObjectMap.hx | 34 +- std/haxe/ds/Option.hx | 4 +- std/haxe/ds/ReadOnlyArray.hx | 45 + std/haxe/ds/StringMap.hx | 47 +- std/haxe/ds/Vector.hx | 180 +- std/haxe/ds/WeakMap.hx | 29 +- std/haxe/extern/AsVar.hx | 6 +- std/haxe/extern/EitherType.hx | 7 +- std/haxe/extern/Rest.hx | 4 +- std/haxe/format/JsonParser.hx | 369 +- std/haxe/format/JsonPrinter.hx | 271 +- std/haxe/http/HttpBase.hx | 251 + std/haxe/http/HttpJs.hx | 160 + std/haxe/http/HttpMethod.hx | 84 + std/haxe/http/HttpNodeJs.hx | 119 + std/haxe/http/HttpStatus.hx | 68 + std/haxe/io/ArrayBufferView.hx | 82 +- std/haxe/io/BufferInput.hx | 27 +- std/haxe/io/Bytes.hx | 526 +- std/haxe/io/BytesBuffer.hx | 153 +- std/haxe/io/BytesData.hx | 65 +- std/haxe/io/BytesInput.hx | 183 +- std/haxe/io/BytesOutput.hx | 59 +- .../Environ.hx => haxe/io/Encoding.hx} | 21 +- std/haxe/io/Eof.hx | 10 +- std/haxe/io/Error.hx | 8 +- std/haxe/io/FPHelper.hx | 500 +- std/haxe/io/Float32Array.hx | 50 +- std/haxe/io/Float64Array.hx | 50 +- std/haxe/io/Input.hx | 173 +- std/haxe/io/Int32Array.hx | 50 +- std/haxe/io/Mime.hx | 321 + std/haxe/io/Output.hx | 144 +- std/haxe/io/Path.hx | 172 +- std/haxe/io/Scheme.hx | 18 + std/haxe/io/StringInput.hx | 13 +- std/haxe/io/UInt16Array.hx | 50 +- std/haxe/io/UInt32Array.hx | 50 +- std/haxe/io/UInt8Array.hx | 47 +- std/haxe/iterators/DynamicAccessIterator.hx | 52 + .../DynamicAccessKeyValueIterator.hx | 53 + std/haxe/iterators/MapKeyValueIterator.hx | 54 + std/haxe/iterators/StringIterator.hx | 55 + std/haxe/iterators/StringIteratorUnicode.hx | 73 + std/haxe/iterators/StringKeyValueIterator.hx | 55 + .../StringKeyValueIteratorUnicode.hx | 76 + std/haxe/macro/CompilationServer.hx | 40 +- std/haxe/macro/Compiler.hx | 342 +- std/haxe/macro/ComplexTypeTools.hx | 13 +- std/haxe/macro/Context.hl.hx | 243 - std/haxe/macro/Context.hx | 321 +- std/haxe/macro/ExampleJSGenerator.hx | 163 +- std/haxe/macro/Expr.hx | 321 +- std/haxe/macro/ExprTools.hx | 181 +- std/haxe/macro/Format.hx | 68 +- std/haxe/macro/JSGenApi.hx | 39 +- std/haxe/macro/MacroStringTools.hx | 38 +- std/haxe/macro/MacroType.hx | 6 +- std/haxe/macro/PositionTools.hx | 22 +- std/haxe/macro/Printer.hx | 640 +- std/haxe/macro/Tools.hx | 7 +- std/haxe/macro/Type.hx | 269 +- std/haxe/macro/TypeTools.hx | 275 +- std/haxe/macro/TypedExprTools.hx | 73 +- std/haxe/rtti/CType.hx | 418 +- std/haxe/rtti/Meta.hx | 53 +- std/haxe/rtti/Rtti.hx | 22 +- std/haxe/rtti/XmlParser.hx | 755 +- std/haxe/xml/Access.hx | 243 + std/haxe/xml/Check.hx | 470 +- std/haxe/xml/Fast.hx | 248 +- std/haxe/xml/Parser.hx | 239 +- std/haxe/xml/Printer.hx | 8 +- std/haxe/xml/Proxy.hx | 11 +- std/haxe/zip/Compress.hx | 17 +- std/haxe/zip/Entry.hx | 28 +- std/haxe/zip/FlushMode.hx | 3 +- std/haxe/zip/Huffman.hx | 98 +- std/haxe/zip/InflateImpl.hx | 412 +- std/haxe/zip/Reader.hx | 127 +- std/haxe/zip/Tools.hx | 13 +- std/haxe/zip/Uncompress.hx | 19 +- std/haxe/zip/Writer.hx | 147 +- std/hl/Abstract.hx | 6 +- std/hl/Api.hx | 37 +- std/hl/BaseType.hx | 43 +- std/hl/Boot.hx | 6 +- std/hl/Bytes.hx | 134 +- std/hl/BytesAccess.hx | 28 +- std/hl/F32.hx | 5 +- std/hl/F64.hx | 3 +- std/hl/Format.hx | 85 +- std/hl/Gc.hx | 77 +- std/hl/I64.hx | 25 + std/hl/NativeArray.hx | 36 +- std/hl/Profile.hx | 221 + std/hl/Ref.hx | 23 +- std/hl/Type.hx | 79 +- std/hl/UI.hx | 170 +- std/hl/UI16.hx | 3 +- std/hl/UI8.hx | 3 +- std/hl/_std/Date.hx | 120 +- std/hl/_std/EReg.hx | 120 +- std/hl/_std/Math.hx | 113 +- std/hl/_std/Reflect.hx | 117 +- std/hl/_std/Std.hx | 141 +- std/hl/_std/String.hx | 199 +- std/hl/_std/StringBuf.hx | 73 +- std/hl/_std/Sys.hx | 190 +- std/hl/_std/Type.hx | 217 +- std/hl/_std/UInt.hx | 24 +- std/hl/_std/haxe/Resource.hx | 29 +- std/hl/_std/haxe/crypto/Md5.hx | 37 + std/hl/_std/haxe/crypto/Sha1.hx | 37 + std/hl/_std/haxe/ds/IntMap.hx | 47 +- std/hl/_std/haxe/ds/ObjectMap.hx | 47 +- std/hl/_std/haxe/ds/StringMap.hx | 65 +- std/hl/_std/haxe/ds/Vector.hx | 11 +- std/hl/_std/haxe/io/Bytes.hx | 206 +- std/hl/_std/haxe/io/BytesBuffer.hx | 81 +- std/hl/_std/haxe/io/FPHelper.hx | 23 +- std/hl/_std/haxe/zip/Compress.hx | 42 +- std/hl/_std/haxe/zip/Uncompress.hx | 46 +- std/hl/_std/sys/FileSystem.hx | 118 +- std/hl/_std/sys/db/Connection.hx | 36 + std/hl/_std/sys/db/Mysql.hx | 250 + std/hl/_std/sys/db/ResultSet.hx | 36 + std/hl/_std/sys/db/Sqlite.hx | 303 +- std/hl/_std/sys/io/File.hx | 65 +- std/hl/_std/sys/io/FileInput.hx | 65 +- std/hl/_std/sys/io/FileOutput.hx | 55 +- std/hl/_std/sys/io/Process.hx | 145 +- std/hl/_std/sys/net/Host.hx | 39 +- std/hl/_std/sys/net/Socket.hx | 262 +- std/hl/_std/sys/net/UdpSocket.hx | 81 + std/hl/_std/sys/ssl/Certificate.hx | 182 +- std/hl/_std/sys/ssl/Context.hx | 98 + std/hl/_std/sys/ssl/Digest.hx | 59 +- std/hl/_std/sys/ssl/Key.hx | 60 +- std/hl/_std/sys/ssl/Lib.hx | 28 +- std/hl/_std/sys/ssl/Socket.hx | 278 +- std/hl/_std/sys/thread/Deque.hx | 52 + std/hl/_std/sys/thread/Lock.hx | 50 + std/hl/_std/sys/thread/Mutex.hx | 52 + std/hl/_std/sys/thread/Thread.hx | 68 + .../_std/sys/thread/Tls.hx} | 41 +- std/hl/hl_version | 1 + std/hl/types/ArrayBase.hx | 62 +- std/hl/types/ArrayBytes.hx | 246 +- std/hl/types/ArrayDyn.hx | 140 +- std/hl/types/ArrayObj.hx | 241 +- std/hl/types/BytesMap.hx | 43 +- std/hl/types/IntMap.hx | 43 +- std/hl/types/ObjectMap.hx | 43 +- std/hl/uv/Handle.hx | 40 + std/hl/uv/HandleData.hx | 25 + std/hl/uv/Loop.hx | 64 + std/hl/uv/Stream.hx | 70 + std/hl/uv/Tcp.hx | 72 + std/java/Boot.hx | 16 +- std/java/Init.hx | 33 + std/java/Lib.hx | 81 +- std/java/NativeArray.hx | 12 +- std/java/NativeString.hx | 99 + std/java/StdTypes.hx | 89 +- std/java/_std/Array.hx | 297 +- std/java/_std/Date.hx | 143 +- std/java/_std/EReg.hx | 105 +- std/java/_std/Math.hx | 30 +- std/java/_std/Reflect.hx | 72 +- std/java/_std/Std.hx | 92 +- std/java/_std/String.hx | 44 +- std/java/_std/StringBuf.hx | 39 +- std/java/_std/Sys.hx | 102 +- std/java/_std/Type.hx | 282 +- std/java/_std/haxe/Int64.hx | 179 +- std/java/_std/haxe/Resource.hx | 12 +- std/java/_std/haxe/ds/IntMap.hx | 479 +- std/java/_std/haxe/ds/ObjectMap.hx | 399 +- std/java/_std/haxe/ds/StringMap.hx | 416 +- std/java/_std/haxe/ds/WeakMap.hx | 438 +- std/java/_std/haxe/zip/Compress.hx | 26 +- std/java/_std/haxe/zip/Uncompress.hx | 36 +- std/java/_std/sys/FileSystem.hx | 67 +- std/java/_std/sys/db/Mysql.hx | 31 +- std/java/_std/sys/db/Sqlite.hx | 30 +- std/java/_std/sys/io/File.hx | 84 +- std/java/_std/sys/io/FileInput.hx | 80 +- std/java/_std/sys/io/FileOutput.hx | 81 +- std/java/_std/sys/io/Process.hx | 99 +- std/java/_std/sys/net/Host.hx | 33 +- std/java/_std/sys/net/Socket.hx | 130 +- std/java/_std/sys/thread/Deque.hx | 51 + std/java/_std/sys/thread/Lock.hx | 78 + std/java/_std/sys/thread/Mutex.hx | 46 + std/java/_std/sys/thread/Thread.hx | 111 + std/java/_std/sys/thread/Tls.hx | 43 + std/java/db/Jdbc.hx | 261 +- std/java/internal/Exceptions.hx | 49 +- std/java/internal/FieldLookup.hx | 72 +- std/java/internal/Function.hx | 44 +- std/java/internal/HxObject.hx | 246 +- std/java/internal/IEquatable.hx | 8 +- std/java/internal/Runtime.hx | 136 +- std/java/internal/StringExt.hx | 91 +- std/java/io/NativeInput.hx | 45 +- std/java/io/NativeOutput.hx | 44 +- std/java/lang/Boolean.hx | 50 +- std/java/lang/Byte.hx | 58 +- std/java/lang/Character.hx | 765 +- std/java/lang/Double.hx | 76 +- std/java/lang/Float.hx | 80 +- std/java/lang/Integer.hx | 92 +- std/java/lang/Long.hx | 92 +- std/java/lang/Short.hx | 60 +- std/java/net/SslSocket.hx | 14 +- std/java/types/Char16.hx | 5 +- std/java/types/Int16.hx | 5 +- std/java/types/Int8.hx | 5 +- std/java/vm/AtomicList.hx | 46 +- std/java/vm/Deque.hx | 75 +- std/java/vm/Gc.hx | 16 +- std/java/vm/Lock.hx | 86 +- std/java/vm/Mutex.hx | 43 +- std/java/vm/Thread.hx | 92 +- std/java/vm/Tls.hx | 29 +- std/js/Boot.hx | 325 +- std/js/Browser.hx | 62 +- std/js/Cookie.hx | 37 +- std/js/Error.hx | 55 +- std/js/Function.hx | 25 + std/js/JsIterator.hx | 26 + std/js/Lib.hx | 69 +- std/js/Object.hx | 27 + std/js/Promise.hx | 35 +- std/js/RegExp.hx | 28 +- std/js/Selection.hx | 49 +- std/js/Set.hx | 25 + std/js/Symbol.hx | 25 + std/js/Syntax.hx | 86 + std/js/_std/Array.hx | 79 +- std/js/_std/Date.hx | 44 +- std/js/_std/EReg.hx | 66 +- std/js/_std/HxOverrides.hx | 131 +- std/js/_std/Math.hx | 35 +- std/js/_std/Reflect.hx | 110 +- std/js/_std/Std.hx | 126 +- std/js/_std/String.hx | 39 +- std/js/_std/Type.hx | 393 +- std/js/_std/haxe/Json.hx | 37 +- std/js/_std/haxe/ds/IntMap.hx | 68 +- std/js/_std/haxe/ds/ObjectMap.hx | 90 +- std/js/_std/haxe/ds/StringMap.hx | 116 +- std/js/_std/haxe/io/ArrayBufferView.hx | 44 +- std/js/_std/haxe/io/Bytes.hx | 218 +- std/js/_std/haxe/io/BytesBuffer.hx | 127 + std/js/_std/haxe/io/Float32Array.hx | 53 +- std/js/_std/haxe/io/Float64Array.hx | 53 +- std/js/_std/haxe/io/Int32Array.hx | 54 +- std/js/_std/haxe/io/UInt16Array.hx | 52 +- std/js/_std/haxe/io/UInt32Array.hx | 52 +- std/js/_std/haxe/io/UInt8Array.hx | 52 +- std/js/html/AbortController.hx | 49 + std/js/html/AbortSignal.hx | 47 + std/js/html/AddEventListenerOptions.hx | 30 + std/js/html/AlignSetting.hx | 7 +- std/js/html/AnchorElement.hx | 16 +- std/js/html/Animation.hx | 65 +- std/js/html/AnimationEffect.hx | 40 + std/js/html/AnimationEffectTimingReadOnly.hx | 78 - std/js/html/AnimationEvent.hx | 5 +- std/js/html/AnimationEventInit.hx | 12 +- .../{CSSUnknownRule.hx => AnimationFilter.hx} | 9 +- std/js/html/AnimationPlayState.hx | 6 +- ...ectTiming.hx => AnimationPlaybackEvent.hx} | 20 +- std/js/html/AnimationPlaybackEventInit.hx | 30 + std/js/html/AnimationTimeline.hx | 5 +- std/js/html/AreaElement.hx | 10 +- std/js/html/ArrayBuffer.hx | 18 +- std/js/html/ArrayBufferView.hx | 20 +- std/js/html/AssignedNodesOptions.hx | 29 + std/js/html/Attr.hx | 46 +- std/js/html/Audio.hx | 5 +- std/js/html/AudioElement.hx | 5 +- std/js/html/AudioStreamTrack.hx | 5 +- std/js/html/AudioTrack.hx | 32 +- std/js/html/AudioTrackList.hx | 16 +- std/js/html/AutoKeyword.hx | 29 + std/js/html/BRElement.hx | 5 +- std/js/html/BarProp.hx | 5 +- std/js/html/BaseElement.hx | 5 +- std/js/html/BatteryManager.hx | 5 +- std/js/html/BeforeUnloadEvent.hx | 7 +- std/js/html/BinaryType.hx | 5 +- std/js/html/Blob.hx | 11 +- std/js/html/BlobEvent.hx | 44 + std/js/html/BlobEventInit.hx | 29 + std/js/html/BlobPropertyBag.hx | 9 +- std/js/html/BodyElement.hx | 8 +- std/js/html/BroadcastChannel.hx | 14 +- std/js/html/ButtonElement.hx | 31 +- std/js/html/CDATASection.hx | 7 +- std/js/html/CSS.hx | 15 +- std/js/html/CSSAnimation.hx | 5 +- ...ntRegistrationOptions.hx => CSSBoxType.hx} | 14 +- std/js/html/CSSConditionRule.hx | 42 + std/js/html/CSSCounterStyleRule.hx | 92 + std/js/html/CSSFontFaceRule.hx | 7 +- std/js/html/CSSFontFeatureValuesRule.hx | 32 + std/js/html/CSSGroupingRule.hx | 42 + std/js/html/CSSImportRule.hx | 7 +- std/js/html/{Rect.hx => CSSKeyframeRule.hx} | 22 +- std/js/html/CSSKeyframesRule.hx | 62 + std/js/html/CSSMediaRule.hx | 10 +- std/js/html/CSSMozDocumentRule.hx | 29 + std/js/html/CSSNamespaceRule.hx | 47 + std/js/html/CSSPageRule.hx | 12 +- std/js/html/CSSPrimitiveValue.hx | 225 - std/js/html/CSSPseudoElement.hx | 10 +- std/js/html/CSSRule.hx | 16 +- std/js/html/CSSRuleList.hx | 5 +- std/js/html/CSSStyleDeclaration.hx | 257 +- std/js/html/CSSStyleRule.hx | 15 +- std/js/html/CSSStyleSheet.hx | 33 +- std/js/html/CSSSupportsRule.hx | 36 + std/js/html/CSSTransition.hx | 5 +- std/js/html/CSSValue.hx | 78 - std/js/html/Cache.hx | 51 + std/js/html/CacheQueryOptions.hx | 32 + std/js/html/CacheStorage.hx | 66 + std/js/html/CacheStorageNamespace.hx | 30 + std/js/html/CanvasCaptureMediaStream.hx | 32 + std/js/html/CanvasElement.hx | 29 +- std/js/html/CanvasGradient.hx | 7 +- std/js/html/CanvasPattern.hx | 7 +- std/js/html/CanvasRenderingContext2D.hx | 109 +- std/js/html/CanvasWindingRule.hx | 5 +- std/js/html/CaretPosition.hx | 5 +- std/js/html/ChannelPixelLayout.hx | 34 + ...Event.hx => ChannelPixelLayoutDataType.hx} | 19 +- std/js/html/CharacterData.hx | 26 +- std/js/html/Client.hx | 20 +- std/js/html/ClientQueryOptions.hx | 9 +- std/js/html/ClientType.hx | 33 + std/js/html/Clients.hx | 26 +- std/js/html/Clipboard.hx | 62 + std/js/html/ClipboardEvent.hx | 5 +- std/js/html/ClipboardEventInit.hx | 10 +- std/js/html/CloseEvent.hx | 237 +- std/js/html/CloseEventInit.hx | 12 +- std/js/html/Comment.hx | 7 +- std/js/html/CompositeOperation.hx | 7 +- std/js/html/CompositionEvent.hx | 21 +- ...orEventInit.hx => CompositionEventInit.hx} | 10 +- ...agePortList.hx => ComputedEffectTiming.hx} | 16 +- std/js/html/Console.hx | 104 +- std/js/html/ConsoleInstance.hx | 154 + std/js/html/ConstrainBooleanParameters.hx | 30 + std/js/html/ConstrainDOMStringParameters.hx | 30 + std/js/html/ConstrainDoubleRange.hx | 32 + std/js/html/ConstrainLongRange.hx | 32 + std/js/html/ConvertCoordinateOptions.hx | 9 +- std/js/html/Coordinates.hx | 8 +- std/js/html/Crypto.hx | 13 +- std/js/html/CryptoKey.hx | 5 +- std/js/html/CustomEvent.hx | 8 +- std/js/html/CustomEventInit.hx | 8 +- std/js/html/DListElement.hx | 5 +- std/js/html/DOMElement.hx | 389 +- std/js/html/DOMError.hx | 11 +- std/js/html/DOMException.hx | 27 +- std/js/html/DOMImplementation.hx | 15 +- std/js/html/DOMMatrix.hx | 21 +- std/js/html/DOMMatrixReadOnly.hx | 115 +- std/js/html/DOMParser.hx | 10 +- std/js/html/DOMPoint.hx | 11 +- std/js/html/DOMPointInit.hx | 36 +- std/js/html/DOMPointReadOnly.hx | 23 +- std/js/html/DOMQuad.hx | 26 +- std/js/html/DOMQuadJSON.hx | 32 + std/js/html/DOMRect.hx | 8 +- std/js/html/DOMRectList.hx | 5 +- std/js/html/DOMRectReadOnly.hx | 8 +- std/js/html/DOMRequest.hx | 7 +- std/js/html/DOMRequestReadyState.hx | 5 +- std/js/html/DOMStringList.hx | 5 +- std/js/html/DOMStringMap.hx | 5 +- std/js/html/DOMTokenList.hx | 40 +- std/js/html/DataElement.hx | 5 +- std/js/html/DataListElement.hx | 5 +- std/js/html/DataTransfer.hx | 23 +- std/js/html/DataTransferItem.hx | 59 + std/js/html/DataTransferItemList.hx | 61 + std/js/html/DataView.hx | 30 +- std/js/html/DedicatedWorkerGlobalScope.hx | 26 +- .../{ContentElement.hx => DetailsElement.hx} | 24 +- std/js/html/DeviceAcceleration.hx | 6 +- std/js/html/DeviceAccelerationInit.hx | 11 +- std/js/html/DeviceMotionEvent.hx | 9 +- std/js/html/DeviceMotionEventInit.hx | 14 +- std/js/html/DeviceOrientationEvent.hx | 9 +- std/js/html/DeviceOrientationEventInit.hx | 14 +- std/js/html/DeviceRotationRate.hx | 18 +- std/js/html/DeviceRotationRateInit.hx | 11 +- std/js/html/DirectionSetting.hx | 5 +- std/js/html/Directory.hx | 14 +- std/js/html/DirectoryElement.hx | 5 +- std/js/html/DisplayNameOptions.hx | 30 + std/js/html/DisplayNameResult.hx | 31 + std/js/html/DivElement.hx | 5 +- std/js/html/Document.hx | 295 +- std/js/html/DocumentFragment.hx | 17 +- std/js/html/DocumentTimeline.hx | 7 +- std/js/html/DocumentTimelineOptions.hx | 29 + std/js/html/DocumentType.hx | 20 +- std/js/html/DragEvent.hx | 11 +- std/js/html/DragEventInit.hx | 8 +- std/js/html/EffectTiming.hx | 75 + std/js/html/Element.hx | 22 +- std/js/html/ElementCreationOptions.hx | 29 + std/js/html/EmbedElement.hx | 9 +- .../{CSSCharsetRule.hx => EndingTypes.hx} | 12 +- std/js/html/ErrorCallback.hx | 29 + std/js/html/ErrorEvent.hx | 5 +- std/js/html/ErrorEventInit.hx | 16 +- std/js/html/Event.hx | 40 +- std/js/html/EventInit.hx | 10 +- std/js/html/EventListener.hx | 14 +- std/js/html/EventListenerOptions.hx | 29 + std/js/html/EventModifierInit.hx | 32 +- std/js/html/EventSource.hx | 19 +- std/js/html/EventSourceInit.hx | 7 +- std/js/html/EventTarget.hx | 19 +- std/js/html/Exception.hx | 10 +- std/js/html/ExtendableEvent.hx | 7 +- std/js/html/ExtendableEventInit.hx | 6 +- std/js/html/ExtendableMessageEvent.hx | 7 +- std/js/html/ExtendableMessageEventInit.hx | 16 +- std/js/html/External.hx | 7 +- std/js/html/FetchEvent.hx | 29 +- std/js/html/FetchEventInit.hx | 10 +- ...LifecycleCallbacks.hx => FetchObserver.hx} | 17 +- std/js/html/FetchState.hx | 33 + std/js/html/FieldSetElement.hx | 48 +- std/js/html/File.hx | 15 +- ...ransactionEventInit.hx => FileCallback.hx} | 10 +- std/js/html/FileList.hx | 5 +- std/js/html/FileMode.hx | 5 +- std/js/html/FilePropertyBag.hx | 9 +- std/js/html/FileReader.hx | 30 +- std/js/html/FileReaderSync.hx | 7 +- std/js/html/FileSystem.hx | 47 + std/js/html/FileSystemDirectoryEntry.hx | 43 + std/js/html/FileSystemDirectoryReader.hx | 40 + std/js/html/FileSystemEntriesCallback.hx | 29 + std/js/html/FileSystemEntry.hx | 65 + std/js/html/FileSystemEntryCallback.hx | 29 + std/js/html/FileSystemFileEntry.hx | 39 + std/js/html/FileSystemFlags.hx | 45 + std/js/html/FillMode.hx | 7 +- std/js/html/Float32Array.hx | 24 +- std/js/html/Float64Array.hx | 24 +- std/js/html/FocusEvent.hx | 5 +- std/js/html/FocusEventInit.hx | 8 +- std/js/html/FontElement.hx | 24 +- std/js/html/FontFace.hx | 49 +- std/js/html/FontFaceDescriptors.hx | 20 +- std/js/html/FontFaceLoadStatus.hx | 5 +- std/js/html/FontFaceSet.hx | 34 +- std/js/html/FontFaceSetIterator.hx | 6 +- std/js/html/FontFaceSetIteratorResult.hx | 5 +- std/js/html/FontFaceSetLoadEvent.hx | 44 + std/js/html/FontFaceSetLoadEventInit.hx | 29 + std/js/html/FontFaceSetLoadStatus.hx | 5 +- std/js/html/FormData.hx | 30 +- std/js/html/FormDataIterator.hx | 6 +- std/js/html/FormElement.hx | 74 +- std/js/html/FrameElement.hx | 5 +- std/js/html/FrameSetElement.hx | 12 +- std/js/html/FrameType.hx | 5 +- std/js/html/Gamepad.hx | 7 +- std/js/html/GamepadButton.hx | 6 +- .../html/{CSSValueList.hx => GamepadEvent.hx} | 26 +- ...nterfaceWorkers.hx => GamepadEventInit.hx} | 9 +- std/js/html/GamepadMappingType.hx | 5 +- std/js/html/Geolocation.hx | 10 +- std/js/html/GetNotificationOptions.hx | 29 + std/js/html/GetRootNodeOptions.hx | 29 + std/js/html/GetUserMediaRequest.hx | 9 +- std/js/html/HRElement.hx | 5 +- std/js/html/HTMLAllCollection.hx | 5 +- std/js/html/HTMLCollection.hx | 5 +- std/js/html/HTMLDocument.hx | 169 +- std/js/html/HTMLFormControlsCollection.hx | 12 +- std/js/html/HTMLOptionsCollection.hx | 5 +- std/js/html/HTMLPropertiesCollection.hx | 8 +- std/js/html/HashChangeEvent.hx | 17 +- std/js/html/HashChangeEventInit.hx | 10 +- std/js/html/HeadElement.hx | 5 +- std/js/html/Headers.hx | 46 +- std/js/html/HeadersIterator.hx | 6 +- std/js/html/HeadingElement.hx | 7 +- std/js/html/History.hx | 23 +- std/js/html/HitRegionOptions.hx | 11 +- std/js/html/HtmlElement.hx | 5 +- std/js/html/IFrameElement.hx | 19 +- std/js/html/Image.hx | 5 +- std/js/html/ImageBitmap.hx | 5 +- std/js/html/ImageBitmapFormat.hx | 41 + std/js/html/ImageBitmapRenderingContext.hx | 8 +- std/js/html/ImageCapture.hx | 18 +- ...{AppletElement.hx => ImageCaptureError.hx} | 27 +- ...ansaction.hx => ImageCaptureErrorEvent.hx} | 17 +- std/js/html/ImageCaptureErrorEventInit.hx | 29 + std/js/html/ImageData.hx | 9 +- std/js/html/ImageElement.hx | 21 +- std/js/html/InputElement.hx | 21 +- std/js/html/InputEvent.hx | 5 +- std/js/html/InputEventInit.hx | 8 +- std/js/html/Int16Array.hx | 21 +- std/js/html/Int32Array.hx | 21 +- std/js/html/Int8Array.hx | 21 +- std/js/html/IntersectionObserver.hx | 74 + std/js/html/IntersectionObserverEntry.hx | 72 + std/js/html/IntersectionObserverInit.hx | 31 + .../{DOMTransactionEvent.hx => IntlUtils.hx} | 14 +- std/js/html/IterationCompositeOperation.hx | 5 +- std/js/html/KeyEvent.hx | 8 +- std/js/html/KeyboardEvent.hx | 25 +- std/js/html/KeyboardEventInit.hx | 22 +- std/js/html/KeyframeAnimationOptions.hx | 29 + std/js/html/KeyframeEffect.hx | 26 +- std/js/html/KeyframeEffectOptions.hx | 30 + std/js/html/KeyframeEffectReadOnly.hx | 62 - std/js/html/LIElement.hx | 7 +- std/js/html/LabelElement.hx | 5 +- std/js/html/LegendElement.hx | 5 +- std/js/html/LineAlignSetting.hx | 31 + std/js/html/LinkElement.hx | 19 +- std/js/html/LocalMediaStream.hx | 11 +- std/js/html/LocaleInfo.hx | 30 + std/js/html/Location.hx | 15 +- std/js/html/MapElement.hx | 5 +- std/js/html/MediaDeviceInfo.hx | 58 + std/js/html/MediaDeviceKind.hx | 31 + std/js/html/MediaDevices.hx | 49 + std/js/html/MediaElement.hx | 125 +- std/js/html/MediaError.hx | 46 +- std/js/html/MediaKeyStatusMapIterator.hx | 6 +- std/js/html/MediaList.hx | 5 +- std/js/html/MediaQueryList.hx | 38 +- std/js/html/MediaQueryListEvent.hx | 49 + std/js/html/MediaQueryListEventInit.hx | 30 + std/js/html/MediaRecorder.hx | 25 +- std/js/html/MediaRecorderErrorEvent.hx | 44 + std/js/html/MediaRecorderErrorEventInit.hx | 29 + std/js/html/MediaRecorderOptions.hx | 13 +- std/js/html/MediaSource.hx | 48 +- std/js/html/MediaSourceEndOfStreamError.hx | 5 +- std/js/html/MediaSourceReadyState.hx | 5 +- std/js/html/MediaStream.hx | 34 +- std/js/html/MediaStreamConstraints.hx | 28 +- std/js/html/MediaStreamError.hx | 6 +- std/js/html/MediaStreamEvent.hx | 44 + std/js/html/MediaStreamEventInit.hx | 29 + std/js/html/MediaStreamTrack.hx | 78 +- std/js/html/MediaStreamTrackEvent.hx | 44 + std/js/html/MediaStreamTrackEventInit.hx | 29 + std/js/html/MediaStreamTrackState.hx | 30 + std/js/html/MediaTrackConstraintSet.hx | 34 +- std/js/html/MediaTrackConstraints.hx | 8 +- std/js/html/MediaTrackSettings.hx | 87 + std/js/html/MediaTrackSupportedConstraints.hx | 117 + std/js/html/MenuElement.hx | 5 +- std/js/html/MenuItemElement.hx | 5 +- std/js/html/MessageChannel.hx | 5 +- std/js/html/MessageEvent.hx | 29 +- std/js/html/MessageEventInit.hx | 16 +- std/js/html/MessagePort.hx | 8 +- std/js/html/MetaElement.hx | 5 +- std/js/html/MeterElement.hx | 34 +- std/js/html/MimeType.hx | 28 +- std/js/html/MimeTypeArray.hx | 24 +- std/js/html/ModElement.hx | 9 +- std/js/html/MouseEvent.hx | 25 +- std/js/html/MouseEventInit.hx | 24 +- std/js/html/MouseScrollEvent.hx | 7 +- std/js/html/MutationEvent.hx | 7 +- std/js/html/MutationObserver.hx | 7 +- std/js/html/MutationObserverInit.hx | 56 +- std/js/html/MutationRecord.hx | 5 +- std/js/html/NamedNodeMap.hx | 13 +- std/js/html/NavigationType.hx | 32 + std/js/html/Navigator.hx | 63 +- std/js/html/Node.hx | 80 +- std/js/html/NodeFilter.hx | 47 +- std/js/html/NodeIterator.hx | 161 +- std/js/html/NodeList.hx | 7 +- std/js/html/Notification.hx | 27 +- std/js/html/NotificationDirection.hx | 5 +- std/js/html/NotificationEvent.hx | 16 +- std/js/html/NotificationEventInit.hx | 6 +- std/js/html/NotificationOptions.hx | 18 +- std/js/html/NotificationPermission.hx | 7 +- std/js/html/OListElement.hx | 5 +- std/js/html/ObjectElement.hx | 6 +- std/js/html/ObserverCallback.hx | 29 + .../html/OfflineAudioCompletionEventInit.hx | 29 + std/js/html/OptGroupElement.hx | 5 +- .../html/{RecordErrorEvent.hx => Option.hx} | 13 +- std/js/html/OptionElement.hx | 5 +- std/js/html/OptionalEffectTiming.hx | 36 + std/js/html/OrientationLockType.hx | 5 +- std/js/html/OrientationType.hx | 5 +- std/js/html/OutputElement.hx | 59 +- std/js/html/PageTransitionEvent.hx | 11 +- std/js/html/PageTransitionEventInit.hx | 9 +- std/js/html/PaintRequest.hx | 5 +- std/js/html/PaintRequestList.hx | 5 +- std/js/html/PaintWorkletGlobalScope.hx | 30 + std/js/html/ParagraphElement.hx | 9 +- std/js/html/ParamElement.hx | 5 +- std/js/html/Path2D.hx | 9 +- std/js/html/Performance.hx | 75 +- std/js/html/PerformanceEntry.hx | 10 +- std/js/html/PerformanceEntryFilterOptions.hx | 31 + std/js/html/PerformanceMark.hx | 7 +- std/js/html/PerformanceMeasure.hx | 7 +- std/js/html/PerformanceNavigation.hx | 83 +- std/js/html/PerformanceNavigationTiming.hx | 92 + std/js/html/PerformanceObserver.hx | 41 + std/js/html/PerformanceObserverEntryList.hx | 39 + std/js/html/PerformanceObserverInit.hx | 30 + std/js/html/PerformanceResourceTiming.hx | 86 +- ...ReadOnly.hx => PerformanceServerTiming.hx} | 29 +- std/js/html/PerformanceTiming.hx | 58 +- std/js/html/PermissionState.hx | 5 +- std/js/html/PermissionStatus.hx | 5 +- std/js/html/Permissions.hx | 17 +- std/js/html/PictureElement.hx | 5 +- std/js/html/PlaybackDirection.hx | 7 +- std/js/html/Plugin.hx | 21 +- std/js/html/PluginArray.hx | 11 +- std/js/html/PointerEvent.hx | 52 +- std/js/html/PointerEventInit.hx | 25 +- std/js/html/PopStateEvent.hx | 5 +- std/js/html/PopStateEventInit.hx | 8 +- std/js/html/PopupBlockedEvent.hx | 5 +- std/js/html/PopupBlockedEventInit.hx | 14 +- std/js/html/Position.hx | 6 +- std/js/html/PositionAlignSetting.hx | 32 + std/js/html/PositionError.hx | 5 +- std/js/html/PositionOptions.hx | 17 +- std/js/html/PreElement.hx | 5 +- std/js/html/ProcessingInstruction.hx | 8 +- std/js/html/ProgressElement.hx | 10 +- std/js/html/ProgressEvent.hx | 5 +- std/js/html/ProgressEventInit.hx | 12 +- ...tURLOptions.hx => PromiseNativeHandler.hx} | 7 +- std/js/html/PropertyNodeList.hx | 7 +- std/js/html/QuoteElement.hx | 5 +- std/js/html/RadioNodeList.hx | 5 +- std/js/html/Range.hx | 135 +- std/js/html/RecordingState.hx | 5 +- std/js/html/ReferrerPolicy.hx | 10 +- std/js/html/RegistrationOptions.hx | 30 + std/js/html/Request.hx | 49 +- std/js/html/RequestCache.hx | 8 +- std/js/html/RequestCredentials.hx | 5 +- std/js/html/RequestDestination.hx | 53 + std/js/html/RequestInit.hx | 26 +- std/js/html/RequestMode.hx | 5 +- std/js/html/RequestRedirect.hx | 5 +- std/js/html/Response.hx | 50 +- std/js/html/ResponseInit.hx | 11 +- std/js/html/ResponseType.hx | 7 +- std/js/html/Screen.hx | 7 +- std/js/html/ScreenOrientation.hx | 40 +- std/js/html/ScriptElement.hx | 7 +- std/js/html/ScrollAreaEvent.hx | 7 +- std/js/html/ScrollBehavior.hx | 31 + std/js/html/ScrollIntoViewOptions.hx | 10 +- std/js/html/ScrollLogicalPosition.hx | 32 + std/js/html/ScrollOptions.hx | 7 +- std/js/html/ScrollRestoration.hx | 5 +- std/js/html/ScrollSetting.hx | 30 + std/js/html/ScrollToOptions.hx | 10 +- std/js/html/SecurityPolicyViolationEvent.hx | 99 + ...SecurityPolicyViolationEventDisposition.hx | 30 + ...hx => SecurityPolicyViolationEventInit.hx} | 27 +- std/js/html/SelectElement.hx | 52 +- std/js/html/Selection.hx | 84 +- std/js/html/SelectionMode.hx | 5 +- std/js/html/ServiceWorker.hx | 5 +- std/js/html/ServiceWorkerContainer.hx | 75 + std/js/html/ServiceWorkerGlobalScope.hx | 36 +- std/js/html/ServiceWorkerRegistration.hx | 49 +- std/js/html/ServiceWorkerState.hx | 6 +- std/js/html/ServiceWorkerUpdateViaCache.hx | 31 + std/js/html/ShadowRoot.hx | 26 +- std/js/html/ShadowRootInit.hx | 29 + std/js/html/ShadowRootMode.hx | 30 + std/js/html/SharedWorker.hx | 8 +- std/js/html/SharedWorkerGlobalScope.hx | 12 +- std/js/html/SimpleGestureEvent.hx | 43 - std/js/html/SlotElement.hx | 47 + std/js/html/SourceBuffer.hx | 52 +- std/js/html/SourceBufferAppendMode.hx | 5 +- std/js/html/SourceBufferList.hx | 15 +- std/js/html/SourceElement.hx | 9 +- std/js/html/SpanElement.hx | 5 +- std/js/html/SpeechGrammar.hx | 5 +- std/js/html/SpeechGrammarList.hx | 11 +- std/js/html/SpeechRecognition.hx | 7 +- std/js/html/SpeechRecognitionAlternative.hx | 5 +- std/js/html/SpeechRecognitionError.hx | 5 +- std/js/html/SpeechRecognitionErrorCode.hx | 5 +- std/js/html/SpeechRecognitionErrorInit.hx | 10 +- std/js/html/SpeechRecognitionEvent.hx | 5 +- std/js/html/SpeechRecognitionEventInit.hx | 14 +- std/js/html/SpeechRecognitionResult.hx | 5 +- std/js/html/SpeechRecognitionResultList.hx | 5 +- std/js/html/SpeechSynthesis.hx | 10 +- std/js/html/SpeechSynthesisErrorCode.hx | 5 +- std/js/html/SpeechSynthesisErrorEvent.hx | 5 +- std/js/html/SpeechSynthesisErrorEventInit.hx | 6 +- std/js/html/SpeechSynthesisEvent.hx | 8 +- std/js/html/SpeechSynthesisEventInit.hx | 13 +- std/js/html/SpeechSynthesisUtterance.hx | 5 +- std/js/html/SpeechSynthesisVoice.hx | 9 +- std/js/html/Storage.hx | 17 +- std/js/html/StorageEstimate.hx | 45 + std/js/html/StorageEvent.hx | 9 +- std/js/html/StorageEventInit.hx | 16 +- std/js/html/StorageManager.hx | 56 + std/js/html/StorageType.hx | 31 + std/js/html/StyleElement.hx | 10 +- std/js/html/StyleSheet.hx | 5 +- std/js/html/StyleSheetList.hx | 5 +- std/js/html/SubtleCrypto.hx | 79 +- std/js/html/SupportedType.hx | 5 +- std/js/html/TableCaptionElement.hx | 5 +- std/js/html/TableCellElement.hx | 49 +- std/js/html/TableColElement.hx | 5 +- std/js/html/TableElement.hx | 11 +- std/js/html/TableRowElement.hx | 11 +- std/js/html/TableSectionElement.hx | 11 +- std/js/html/TemplateElement.hx | 16 +- std/js/html/Text.hx | 19 +- std/js/html/TextAreaElement.hx | 11 +- std/js/html/TextDecodeOptions.hx | 7 +- std/js/html/TextDecoder.hx | 19 +- std/js/html/TextDecoderOptions.hx | 8 +- std/js/html/TextEncoder.hx | 9 +- std/js/html/TextMetrics.hx | 5 +- std/js/html/TextTrack.hx | 48 +- std/js/html/TextTrackCue.hx | 5 +- std/js/html/TextTrackCueList.hx | 5 +- std/js/html/TextTrackKind.hx | 5 +- std/js/html/TextTrackList.hx | 5 +- std/js/html/TextTrackMode.hx | 5 +- std/js/html/TimeElement.hx | 5 +- std/js/html/TimeEvent.hx | 7 +- std/js/html/TimeRanges.hx | 9 +- std/js/html/TitleElement.hx | 5 +- std/js/html/Touch.hx | 53 +- std/js/html/TouchEvent.hx | 35 +- std/js/html/TouchEventInit.hx | 12 +- std/js/html/TouchInit.hx | 25 +- std/js/html/TouchList.hx | 10 +- std/js/html/TrackElement.hx | 23 +- std/js/html/TrackEvent.hx | 5 +- std/js/html/TrackEventInit.hx | 8 +- std/js/html/TransitionEvent.hx | 7 +- std/js/html/TransitionEventInit.hx | 12 +- std/js/html/TreeWalker.hx | 31 +- std/js/html/UIEvent.hx | 17 +- std/js/html/UIEventInit.hx | 10 +- std/js/html/UListElement.hx | 5 +- std/js/html/URL.hx | 16 +- std/js/html/URLSearchParams.hx | 31 +- std/js/html/URLSearchParamsIterator.hx | 6 +- std/js/html/Uint16Array.hx | 21 +- std/js/html/Uint32Array.hx | 21 +- std/js/html/Uint8Array.hx | 24 +- std/js/html/Uint8ClampedArray.hx | 21 +- std/js/html/UnknownElement.hx | 5 +- std/js/html/VTTCue.hx | 22 +- std/js/html/VTTRegion.hx | 8 +- std/js/html/ValidityState.hx | 10 +- std/js/html/VideoElement.hx | 5 +- std/js/html/VideoPlaybackQuality.hx | 5 +- std/js/html/VideoStreamTrack.hx | 5 +- std/js/html/VideoTrack.hx | 5 +- std/js/html/VideoTrackList.hx | 5 +- std/js/html/VisibilityState.hx | 5 +- std/js/html/VisualViewport.hx | 72 + std/js/html/WebSocket.hx | 49 +- std/js/html/WheelEvent.hx | 5 +- std/js/html/WheelEventInit.hx | 14 +- std/js/html/Window.hx | 351 +- std/js/html/WindowClient.hx | 23 +- std/js/html/Worker.hx | 14 +- std/js/html/WorkerDebuggerGlobalScope.hx | 11 +- std/js/html/WorkerGlobalScope.hx | 102 +- std/js/html/WorkerLocation.hx | 7 +- std/js/html/WorkerNavigator.hx | 6 +- std/js/html/WorkerOptions.hx | 29 + ...lePropertyBag.hx => WorkletGlobalScope.hx} | 12 +- std/js/html/XMLDocument.hx | 7 +- std/js/html/XMLHttpRequest.hx | 84 +- std/js/html/XMLHttpRequestEventTarget.hx | 12 +- std/js/html/XMLHttpRequestResponseType.hx | 12 +- std/js/html/XMLHttpRequestUpload.hx | 5 +- std/js/html/XMLSerializer.hx | 12 +- std/js/html/XPathEvaluator.hx | 14 +- std/js/html/XPathExpression.hx | 13 +- std/js/html/XPathNSResolver.hx | 6 +- std/js/html/XPathResult.hx | 30 +- std/js/html/XSLTProcessor.hx | 15 +- std/js/html/audio/AnalyserNode.hx | 15 +- std/js/html/audio/AnalyserOptions.hx | 32 + std/js/html/audio/AudioBuffer.hx | 17 +- std/js/html/audio/AudioBufferOptions.hx | 31 + std/js/html/audio/AudioBufferSourceNode.hx | 36 +- std/js/html/audio/AudioBufferSourceOptions.hx | 34 + std/js/html/audio/AudioContext.hx | 175 +- .../AudioContextOptions.hx} | 20 +- std/js/html/{ => audio}/AudioContextState.hx | 9 +- std/js/html/audio/AudioDestinationNode.hx | 9 +- std/js/html/audio/AudioListener.hx | 17 +- std/js/html/audio/AudioNode.hx | 29 +- std/js/html/audio/AudioNodeOptions.hx | 52 + std/js/html/audio/AudioParam.hx | 45 +- std/js/html/audio/AudioProcessingEvent.hx | 5 +- .../AudioScheduledSourceNode.hx} | 27 +- .../AudioWorkletGlobalScope.hx} | 21 +- .../AudioWorkletNodeOptions.hx} | 19 +- .../AudioWorkletProcessor.hx} | 16 +- std/js/html/audio/BaseAudioContext.hx | 190 + std/js/html/audio/BiquadFilterNode.hx | 153 +- std/js/html/audio/BiquadFilterOptions.hx | 33 + std/js/html/audio/BiquadFilterType.hx | 5 +- std/js/html/audio/ChannelCountMode.hx | 5 +- std/js/html/audio/ChannelInterpretation.hx | 5 +- std/js/html/audio/ChannelMergerNode.hx | 7 +- std/js/html/audio/ChannelMergerOptions.hx | 29 + std/js/html/audio/ChannelSplitterNode.hx | 7 +- std/js/html/audio/ChannelSplitterOptions.hx | 29 + std/js/html/audio/ConstantSourceNode.hx | 44 + std/js/html/audio/ConstantSourceOptions.hx | 29 + std/js/html/audio/ConvolverNode.hx | 9 +- std/js/html/audio/ConvolverOptions.hx | 30 + std/js/html/audio/DelayNode.hx | 9 +- std/js/html/audio/DelayOptions.hx | 30 + std/js/html/audio/DistanceModelType.hx | 5 +- std/js/html/audio/DynamicsCompressorNode.hx | 19 +- .../html/audio/DynamicsCompressorOptions.hx | 33 + std/js/html/audio/GainNode.hx | 11 +- std/js/html/audio/GainOptions.hx | 29 + std/js/html/audio/IIRFilterNode.hx | 39 + std/js/html/audio/IIRFilterOptions.hx | 30 + .../html/audio/MediaElementAudioSourceNode.hx | 7 +- .../audio/MediaElementAudioSourceOptions.hx | 29 + .../audio/MediaStreamAudioDestinationNode.hx | 7 +- .../html/audio/MediaStreamAudioSourceNode.hx | 9 +- .../audio/MediaStreamAudioSourceOptions.hx | 29 + .../html/audio/OfflineAudioCompletionEvent.hx | 12 +- std/js/html/audio/OfflineAudioContext.hx | 21 +- .../html/audio/OfflineAudioContextOptions.hx | 31 + std/js/html/audio/OscillatorNode.hx | 28 +- std/js/html/audio/OscillatorOptions.hx | 32 + std/js/html/audio/OscillatorType.hx | 5 +- std/js/html/audio/OverSampleType.hx | 5 +- std/js/html/audio/PannerNode.hx | 42 +- std/js/html/audio/PannerOptions.hx | 42 + std/js/html/audio/PanningModelType.hx | 5 +- std/js/html/audio/PeriodicWave.hx | 9 +- std/js/html/audio/PeriodicWaveConstraints.hx | 29 + std/js/html/audio/PeriodicWaveOptions.hx | 30 + std/js/html/audio/ScriptProcessorNode.hx | 5 +- std/js/html/audio/StereoPannerNode.hx | 7 +- std/js/html/audio/StereoPannerOptions.hx | 29 + std/js/html/audio/WaveShaperNode.hx | 9 +- std/js/html/audio/WaveShaperOptions.hx | 30 + std/js/html/compat/DataView.hx | 154 - std/js/html/compat/Float32Array.hx | 111 - std/js/html/compat/Float64Array.hx | 118 - std/js/html/compat/Uint8Array.hx | 102 - .../MediaEncryptedEvent.hx} | 17 +- std/js/html/eme/MediaKeyError.hx | 31 + std/js/html/eme/MediaKeyMessageEvent.hx | 49 + std/js/html/eme/MediaKeyMessageEventInit.hx | 30 + std/js/html/eme/MediaKeyMessageType.hx | 32 + std/js/html/eme/MediaKeyNeededEventInit.hx | 30 + std/js/html/eme/MediaKeySession.hx | 99 + std/js/html/eme/MediaKeySessionType.hx | 30 + std/js/html/eme/MediaKeyStatusMap.hx | 79 + std/js/html/eme/MediaKeySystemAccess.hx | 54 + .../html/eme/MediaKeySystemConfiguration.hx | 62 + .../html/eme/MediaKeySystemMediaCapability.hx | 30 + std/js/html/eme/MediaKeys.hx | 52 + std/js/html/eme/MediaKeysRequirement.hx | 31 + std/js/html/idb/Cursor.hx | 30 +- std/js/html/idb/CursorDirection.hx | 5 +- std/js/html/idb/CursorWithValue.hx | 5 +- std/js/html/idb/Database.hx | 21 +- std/js/html/idb/Factory.hx | 5 +- std/js/html/idb/FileHandle.hx | 15 +- std/js/html/idb/FileMetadataParameters.hx | 9 +- std/js/html/idb/FileRequest.hx | 5 +- std/js/html/idb/Index.hx | 25 +- std/js/html/idb/IndexParameters.hx | 11 +- std/js/html/idb/KeyRange.hx | 31 +- std/js/html/idb/MutableFile.hx | 7 +- std/js/html/idb/ObjectStore.hx | 56 +- std/js/html/idb/ObjectStoreParameters.hx | 9 +- std/js/html/idb/OpenDBOptions.hx | 9 +- std/js/html/idb/OpenDBRequest.hx | 7 +- std/js/html/idb/Request.hx | 9 +- std/js/html/idb/RequestReadyState.hx | 5 +- std/js/html/idb/Transaction.hx | 19 +- std/js/html/idb/TransactionMode.hx | 5 +- std/js/html/idb/VersionChangeEvent.hx | 13 +- std/js/html/idb/VersionChangeEventInit.hx | 10 +- std/js/html/midi/MIDIAccess.hx | 57 + std/js/html/midi/MIDIConnectionEvent.hx | 44 + std/js/html/midi/MIDIConnectionEventInit.hx | 29 + std/js/html/midi/MIDIInput.hx | 42 + std/js/html/midi/MIDIInputMap.hx | 52 + std/js/html/midi/MIDIMessageEvent.hx | 33 + std/js/html/midi/MIDIMessageEventInit.hx | 29 + std/js/html/midi/MIDIOptions.hx | 30 + .../MIDIOutput.hx} | 16 +- std/js/html/midi/MIDIOutputMap.hx | 52 + std/js/html/{RGBColor.hx => midi/MIDIPort.hx} | 29 +- std/js/html/midi/MIDIPortConnectionState.hx | 31 + std/js/html/midi/MIDIPortDeviceState.hx | 30 + std/js/html/midi/MIDIPortType.hx | 30 + std/js/html/push/PushEncryptionKeyName.hx | 30 + std/js/html/push/PushEvent.hx | 44 + std/js/html/push/PushEventInit.hx | 29 + std/js/html/push/PushManager.hx | 58 + std/js/html/push/PushMessageData.hx | 59 + std/js/html/push/PushPermissionState.hx | 31 + std/js/html/push/PushSubscription.hx | 69 + std/js/html/push/PushSubscriptionInit.hx | 33 + std/js/html/push/PushSubscriptionJSON.hx | 30 + std/js/html/push/PushSubscriptionKeys.hx | 30 + .../PushSubscriptionOptions.hx} | 14 +- .../html/push/PushSubscriptionOptionsInit.hx | 29 + std/js/html/rtc/AnswerOptions.hx | 6 +- std/js/html/rtc/BundlePolicy.hx | 31 + std/js/html/rtc/Certificate.hx | 5 +- std/js/html/rtc/Configuration.hx | 15 +- std/js/html/rtc/DTMFSender.hx | 41 + std/js/html/rtc/DTMFToneChangeEvent.hx | 44 + std/js/html/rtc/DTMFToneChangeEventInit.hx | 29 + std/js/html/rtc/DataChannel.hx | 23 +- .../DataChannelEvent.hx} | 39 +- std/js/html/rtc/DataChannelEventInit.hx | 29 + std/js/html/rtc/DataChannelInit.hx | 22 +- std/js/html/rtc/DataChannelState.hx | 7 +- std/js/html/rtc/DataChannelType.hx | 7 +- .../DegradationPreference.hx} | 15 +- std/js/html/rtc/FecParameters.hx | 29 + std/js/html/rtc/IceCandidate.hx | 16 +- std/js/html/rtc/IceCandidateInit.hx | 11 +- std/js/html/rtc/IceConnectionState.hx | 7 +- std/js/html/rtc/IceCredentialType.hx | 30 + std/js/html/rtc/IceGatheringState.hx | 7 +- .../IceServer.hx} | 17 +- std/js/html/rtc/IceTransportPolicy.hx | 30 + std/js/html/rtc/IdentityAssertion.hx | 9 +- std/js/html/rtc/IdentityAssertionResult.hx | 7 +- std/js/html/rtc/IdentityProvider.hx | 12 +- std/js/html/rtc/IdentityProviderDetails.hx | 30 + std/js/html/rtc/IdentityProviderOptions.hx | 31 + std/js/html/rtc/IdentityProviderRegistrar.hx | 6 +- std/js/html/rtc/IdentityValidationResult.hx | 5 +- std/js/html/rtc/OfferAnswerOptions.hx | 5 +- std/js/html/rtc/OfferOptions.hx | 13 +- std/js/html/rtc/PeerConnection.hx | 49 +- .../PeerConnectionIceEvent.hx} | 25 +- std/js/html/rtc/PeerConnectionIceEventInit.hx | 29 + std/js/html/rtc/PriorityType.hx | 32 + std/js/html/rtc/RtcpParameters.hx | 30 + std/js/html/rtc/RtpCodecParameters.hx | 33 + std/js/html/rtc/RtpContributingSource.hx | 31 + .../RtpEncodingParameters.hx} | 26 +- .../html/rtc/RtpHeaderExtensionParameters.hx | 31 + std/js/html/rtc/RtpParameters.hx | 13 +- std/js/html/rtc/RtpReceiver.hx | 35 +- std/js/html/rtc/RtpSender.hx | 28 +- std/js/html/rtc/RtpSynchronizationSource.hx | 29 + std/js/html/rtc/RtpTransceiver.hx | 69 + std/js/html/rtc/RtpTransceiverDirection.hx | 32 + std/js/html/rtc/RtpTransceiverInit.hx | 30 + std/js/html/rtc/RtxParameters.hx | 29 + std/js/html/rtc/SdpType.hx | 5 +- std/js/html/rtc/SessionDescription.hx | 12 +- std/js/html/rtc/SessionDescriptionInit.hx | 9 +- std/js/html/rtc/SignalingState.hx | 5 +- std/js/html/rtc/StatsReport.hx | 24 +- std/js/html/rtc/TrackEvent.hx | 59 + std/js/html/rtc/TrackEventInit.hx | 32 + std/js/html/svg/AElement.hx | 50 +- std/js/html/svg/Angle.hx | 25 +- std/js/html/svg/AnimateElement.hx | 5 +- std/js/html/svg/AnimateMotionElement.hx | 5 +- std/js/html/svg/AnimateTransformElement.hx | 5 +- std/js/html/svg/AnimatedAngle.hx | 5 +- std/js/html/svg/AnimatedBoolean.hx | 5 +- std/js/html/svg/AnimatedEnumeration.hx | 5 +- std/js/html/svg/AnimatedInteger.hx | 5 +- std/js/html/svg/AnimatedLength.hx | 5 +- std/js/html/svg/AnimatedLengthList.hx | 5 +- std/js/html/svg/AnimatedNumber.hx | 5 +- std/js/html/svg/AnimatedNumberList.hx | 5 +- .../html/svg/AnimatedPreserveAspectRatio.hx | 5 +- std/js/html/svg/AnimatedRect.hx | 5 +- std/js/html/svg/AnimatedString.hx | 7 +- std/js/html/svg/AnimatedTransformList.hx | 5 +- std/js/html/svg/AnimationElement.hx | 55 +- std/js/html/svg/BoundingBoxOptions.hx | 13 +- std/js/html/svg/CircleElement.hx | 31 +- std/js/html/svg/ClipPathElement.hx | 11 +- .../svg/ComponentTransferFunctionElement.hx | 40 +- std/js/html/svg/DefsElement.hx | 5 +- std/js/html/svg/DescElement.hx | 5 +- std/js/html/svg/Element.hx | 17 +- std/js/html/svg/EllipseElement.hx | 21 +- std/js/html/svg/FEBlendElement.hx | 24 +- std/js/html/svg/FEColorMatrixElement.hx | 24 +- std/js/html/svg/FEComponentTransferElement.hx | 16 +- std/js/html/svg/FECompositeElement.hx | 19 +- std/js/html/svg/FEConvolveMatrixElement.hx | 60 +- std/js/html/svg/FEDiffuseLightingElement.hx | 32 +- std/js/html/svg/FEDisplacementMapElement.hx | 32 +- std/js/html/svg/FEDistantLightElement.hx | 20 +- std/js/html/svg/FEDropShadowElement.hx | 36 +- std/js/html/svg/FEFloodElement.hx | 12 +- std/js/html/svg/FEFuncAElement.hx | 12 +- std/js/html/svg/FEFuncBElement.hx | 12 +- std/js/html/svg/FEFuncGElement.hx | 12 +- std/js/html/svg/FEFuncRElement.hx | 12 +- std/js/html/svg/FEGaussianBlurElement.hx | 28 +- std/js/html/svg/FEImageElement.hx | 16 +- std/js/html/svg/FEMergeElement.hx | 12 +- std/js/html/svg/FEMergeNodeElement.hx | 16 +- std/js/html/svg/FEMorphologyElement.hx | 31 +- std/js/html/svg/FEOffsetElement.hx | 24 +- std/js/html/svg/FEPointLightElement.hx | 24 +- std/js/html/svg/FESpecularLightingElement.hx | 36 +- std/js/html/svg/FESpotLightElement.hx | 32 +- std/js/html/svg/FETileElement.hx | 16 +- std/js/html/svg/FETurbulenceElement.hx | 36 +- std/js/html/svg/FilterElement.hx | 31 +- std/js/html/svg/ForeignObjectElement.hx | 21 +- std/js/html/svg/GElement.hx | 5 +- ...{AltGlyphElement.hx => GeometryElement.hx} | 30 +- std/js/html/svg/GradientElement.hx | 20 +- std/js/html/svg/GraphicsElement.hx | 30 +- std/js/html/svg/ImageElement.hx | 26 +- std/js/html/svg/Length.hx | 5 +- std/js/html/svg/LengthList.hx | 5 +- std/js/html/svg/LineElement.hx | 21 +- std/js/html/svg/LinearGradientElement.hx | 21 +- std/js/html/svg/MPathElement.hx | 5 +- std/js/html/svg/MarkerElement.hx | 5 +- std/js/html/svg/MaskElement.hx | 32 +- std/js/html/svg/Matrix.hx | 81 +- std/js/html/svg/MetadataElement.hx | 12 +- std/js/html/svg/Number.hx | 16 +- std/js/html/svg/NumberList.hx | 5 +- std/js/html/svg/PathElement.hx | 32 +- std/js/html/svg/PathSeg.hx | 5 +- std/js/html/svg/PathSegArcAbs.hx | 6 +- std/js/html/svg/PathSegArcRel.hx | 6 +- std/js/html/svg/PathSegClosePath.hx | 6 +- std/js/html/svg/PathSegCurvetoCubicAbs.hx | 6 +- std/js/html/svg/PathSegCurvetoCubicRel.hx | 6 +- .../html/svg/PathSegCurvetoCubicSmoothAbs.hx | 6 +- .../html/svg/PathSegCurvetoCubicSmoothRel.hx | 6 +- std/js/html/svg/PathSegCurvetoQuadraticAbs.hx | 6 +- std/js/html/svg/PathSegCurvetoQuadraticRel.hx | 6 +- .../svg/PathSegCurvetoQuadraticSmoothAbs.hx | 6 +- .../svg/PathSegCurvetoQuadraticSmoothRel.hx | 6 +- std/js/html/svg/PathSegLinetoAbs.hx | 6 +- std/js/html/svg/PathSegLinetoHorizontalAbs.hx | 6 +- std/js/html/svg/PathSegLinetoHorizontalRel.hx | 6 +- std/js/html/svg/PathSegLinetoRel.hx | 6 +- std/js/html/svg/PathSegLinetoVerticalAbs.hx | 6 +- std/js/html/svg/PathSegLinetoVerticalRel.hx | 6 +- std/js/html/svg/PathSegList.hx | 17 +- std/js/html/svg/PathSegMovetoAbs.hx | 6 +- std/js/html/svg/PathSegMovetoRel.hx | 6 +- std/js/html/svg/PatternElement.hx | 35 +- std/js/html/svg/Point.hx | 5 +- std/js/html/svg/PointList.hx | 5 +- std/js/html/svg/PolygonElement.hx | 5 +- std/js/html/svg/PolylineElement.hx | 5 +- std/js/html/svg/PreserveAspectRatio.hx | 5 +- std/js/html/svg/RadialGradientElement.hx | 24 +- std/js/html/svg/Rect.hx | 19 +- std/js/html/svg/RectElement.hx | 29 +- std/js/html/svg/SVGElement.hx | 128 +- std/js/html/svg/ScriptElement.hx | 13 +- std/js/html/svg/SetElement.hx | 5 +- std/js/html/svg/StopElement.hx | 9 +- std/js/html/svg/StringList.hx | 5 +- std/js/html/svg/StyleElement.hx | 18 +- std/js/html/svg/SwitchElement.hx | 5 +- std/js/html/svg/SymbolElement.hx | 5 +- std/js/html/svg/TSpanElement.hx | 7 +- std/js/html/svg/TextContentElement.hx | 72 +- std/js/html/svg/TextElement.hx | 5 +- std/js/html/svg/TextPathElement.hx | 24 +- std/js/html/svg/TextPositioningElement.hx | 27 +- std/js/html/svg/TitleElement.hx | 5 +- std/js/html/svg/Transform.hx | 5 +- std/js/html/svg/TransformList.hx | 5 +- std/js/html/svg/UnitTypes.hx | 12 +- std/js/html/svg/UseElement.hx | 23 +- std/js/html/svg/ViewElement.hx | 6 +- std/js/html/svg/ZoomAndPan.hx | 16 +- std/js/html/svg/ZoomEvent.hx | 35 - std/js/html/webgl/ActiveInfo.hx | 5 +- std/js/html/webgl/Buffer.hx | 5 +- std/js/html/webgl/ContextAttributes.hx | 20 +- std/js/html/webgl/ContextEvent.hx | 7 +- std/js/html/webgl/ContextEventInit.hx | 10 +- std/js/html/webgl/Extension.hx | 59 + .../webgl/ExtensionTextureHalfFloatLinear.hx | 37 - std/js/html/webgl/Framebuffer.hx | 5 +- std/js/html/webgl/GL.hx | 2 +- std/js/html/webgl/GL2.hx | 26 + std/js/html/webgl/PowerPreference.hx | 31 + std/js/html/webgl/Program.hx | 5 +- .../{ExtensionTextureFloat.hx => Query.hx} | 13 +- std/js/html/webgl/Renderbuffer.hx | 5 +- std/js/html/webgl/RenderingContext.hx | 570 +- .../{ExtensionFragDepth.hx => Sampler.hx} | 15 +- std/js/html/webgl/Shader.hx | 5 +- std/js/html/webgl/ShaderPrecisionFormat.hx | 5 +- std/js/html/webgl/Sync.hx | 36 + std/js/html/webgl/Texture.hx | 5 +- std/js/html/webgl/TimerQueryEXT.hx | 37 - ...aderTextureLod.hx => TransformFeedback.hx} | 15 +- std/js/html/webgl/UniformLocation.hx | 5 +- ...ementIndexUint.hx => VertexArrayObject.hx} | 13 +- std/js/html/webgl/WebGL2RenderingContext.hx | 1180 ++ .../ANGLEInstancedArrays.hx} | 11 +- .../EXTBlendMinmax.hx} | 15 +- .../webgl/extension/EXTColorBufferFloat.hx | 28 + .../EXTColorBufferHalfFloat.hx} | 23 +- .../EXTDisjointTimerQuery.hx} | 53 +- std/js/html/webgl/extension/EXTFragDepth.hx | 28 + .../webgl/extension/EXTShaderTextureLod.hx | 28 + .../EXTSrgb.hx} | 23 +- .../EXTTextureFilterAnisotropic.hx} | 15 +- .../webgl/extension/OESElementIndexUint.hx | 28 + .../OESStandardDerivatives.hx} | 11 +- .../html/webgl/extension/OESTextureFloat.hx | 28 + .../webgl/extension/OESTextureFloatLinear.hx | 28 + .../OESTextureHalfFloat.hx} | 11 +- .../extension/OESTextureHalfFloatLinear.hx | 28 + .../OESVertexArrayObject.hx} | 35 +- .../WEBGLColorBufferFloat.hx} | 23 +- .../extension/WEBGLCompressedTextureAstc.hx | 66 + .../WEBGLCompressedTextureAtc.hx} | 19 +- .../WEBGLCompressedTextureEtc.hx} | 55 +- .../WEBGLCompressedTextureEtc1.hx} | 11 +- .../WEBGLCompressedTexturePvrtc.hx} | 23 +- .../WEBGLCompressedTextureS3tc.hx} | 23 +- .../WEBGLCompressedTextureS3tcSrgb.hx | 57 + .../WEBGLDebugRendererInfo.hx} | 7 +- .../html/webgl/extension/WEBGLDebugShaders.hx | 29 + .../WEBGLDepthTexture.hx} | 11 +- .../WEBGLDrawBuffers.hx} | 23 +- .../html/webgl/extension/WEBGLLoseContext.hx | 30 + std/js/jquery/Callbacks.hx | 53 - std/js/jquery/Deferred.hx | 79 - std/js/jquery/Event.hx | 70 - std/js/jquery/Helper.hx | 16 - std/js/jquery/JQuery.hx | 1097 -- std/js/jquery/JqEltsIterator.hx | 21 - std/js/jquery/JqIterator.hx | 21 - std/js/jquery/JqXHR.hx | 46 - std/js/jquery/Promise.hx | 46 - .../{html/DOMCursor.hx => lib/ArrayBuffer.hx} | 46 +- std/js/lib/ArrayBufferView.hx | 36 + std/js/lib/BufferSource.hx | 42 + std/js/lib/DataView.hx | 58 + std/js/lib/Date.hx | 285 + .../haxe/zip/Compress.hx => js/lib/Error.hx} | 59 +- std/js/lib/Float32Array.hx | 266 + std/js/lib/Float64Array.hx | 266 + std/js/lib/Function.hx | 52 + std/js/lib/Int16Array.hx | 264 + std/js/lib/Int32Array.hx | 264 + std/js/lib/Int8Array.hx | 263 + std/js/lib/Intl.hx | 40 + std/js/lib/Iterator.hx | 32 + std/js/lib/Map.hx | 118 + std/js/lib/Math.hx | 251 + std/js/lib/Object.hx | 258 + std/js/lib/Promise.hx | 109 + std/js/lib/Proxy.hx | 120 + std/js/lib/Reflect.hx | 110 + std/js/lib/RegExp.hx | 47 + std/js/lib/Set.hx | 100 + std/js/lib/Symbol.hx | 63 + std/js/lib/Uint16Array.hx | 264 + std/js/lib/Uint32Array.hx | 264 + std/js/lib/Uint8Array.hx | 263 + std/js/lib/Uint8ClampedArray.hx | 265 + std/js/lib/WeakMap.hx | 66 + std/js/lib/WeakSet.hx | 59 + std/js/lib/WebAssembly.hx | 80 + std/js/lib/intl/Collator.hx | 183 + std/js/lib/intl/DateTimeFormat.hx | 386 + std/js/lib/intl/LocaleMatcher.hx | 27 + std/js/lib/intl/NumberFormat.hx | 283 + std/js/lib/intl/PluralRules.hx | 124 + std/js/lib/intl/RelativeTimeFormat.hx | 163 + std/js/lib/webassembly/CompileError.hx | 34 + std/js/lib/webassembly/Global.hx | 62 + std/js/lib/webassembly/Instance.hx | 43 + .../webassembly/LinkError.hx} | 23 +- std/js/lib/webassembly/Memory.hx | 63 + std/js/lib/webassembly/Module.hx | 72 + std/js/lib/webassembly/RuntimeError.hx | 34 + std/js/lib/webassembly/Table.hx | 81 + std/js/swfobject/SWFObject.hx | 128 - std/jvm/DynamicObject.hx | 93 + std/jvm/EmptyConstructor.hx | 27 + std/jvm/Enum.hx | 47 + .../_std/sys/net/Host.hx => jvm/Exception.hx} | 55 +- std/jvm/Jvm.hx | 531 + std/jvm/NativeTools.hx | 49 + .../internal/Iterator.hx => jvm/Object.hx} | 30 +- std/jvm/StringExt.hx | 129 + std/jvm/_std/Reflect.hx | 182 + std/jvm/_std/Std.hx | 111 + std/jvm/_std/String.hx | 76 + std/jvm/_std/Type.hx | 332 + .../annotation/ClassReflectionInformation.hx | 30 + .../annotation/EnumReflectionInformation.hx | 30 + .../EnumValueReflectionInformation.hx | 30 + std/lua/Bit.hx | 24 +- std/lua/Boot.hx | 475 +- std/lua/Coroutine.hx | 29 +- std/lua/Debug.hx | 111 +- std/lua/Ffi.hx | 41 +- std/lua/FileHandle.hx | 19 +- std/lua/HaxeIterator.hx | 22 +- std/lua/Io.hx | 84 +- std/lua/Jit.hx | 22 +- std/lua/Lib.hx | 62 +- std/lua/LocaleCategory.hx | 36 +- std/lua/Lua.hx | 127 +- std/lua/Math.hx | 82 +- std/lua/NativeIterator.hx | 14 +- std/lua/NativeStringTools.hx | 148 +- std/lua/Os.hx | 131 +- std/lua/Package.hx | 31 +- std/lua/PairTools.hx | 110 +- std/lua/Result.hx | 27 +- std/lua/Table.hx | 76 +- std/lua/TableTools.hx | 29 +- std/lua/Thread.hx | 7 +- std/lua/Time.hx | 27 +- std/lua/UserData.hx | 23 + std/lua/_lua/_hx_apply.lua | 6 - std/lua/_lua/_hx_apply_self.lua | 3 + std/lua/_lua/_hx_bind.lua | 14 + std/lua/_lua/_hx_bit.lua | 11 + std/lua/_lua/_hx_bit_clamp.lua | 10 + std/lua/_lua/_hx_box_mr.lua | 7 + std/lua/_lua/_hx_classes.lua | 18 +- std/lua/_lua/_hx_dyn_add.lua | 7 + std/lua/_lua/_hx_func_to_field.lua | 9 + std/lua/_lua/_hx_print.lua | 1 + std/lua/_lua/_hx_random_init.lua | 1 + std/lua/_lua/_hx_static_to_instance.lua | 13 + std/lua/_lua/_hx_table.lua | 12 + std/lua/_lua/_hx_wrap_if_string_field.lua | 11 + std/lua/_std/Array.hx | 217 +- std/lua/_std/Date.hx | 106 +- std/lua/_std/EReg.hx | 173 +- std/lua/_std/Math.hx | 120 +- std/lua/_std/Reflect.hx | 165 +- std/lua/_std/Std.hx | 75 +- std/lua/_std/String.hx | 140 +- std/lua/_std/StringBuf.hx | 70 +- std/lua/_std/Sys.hx | 109 +- std/lua/_std/Type.hx | 238 +- std/lua/_std/haxe/Json.hx | 9 +- std/lua/_std/haxe/Utf8.hx | 250 - std/lua/_std/haxe/ds/IntMap.hx | 83 +- std/lua/_std/haxe/ds/ObjectMap.hx | 101 +- std/lua/_std/haxe/ds/StringMap.hx | 108 +- std/lua/_std/sys/FileSystem.hx | 88 +- std/lua/_std/sys/io/File.hx | 48 +- std/lua/_std/sys/io/FileInput.hx | 52 +- std/lua/_std/sys/io/FileOutput.hx | 29 +- std/lua/_std/sys/io/Process.hx | 146 +- std/lua/_std/sys/net/Host.hx | 66 + std/lua/_std/sys/net/Socket.hx | 234 + std/lua/lib/lrexlib/Rex.hx | 83 +- std/lua/lib/luasocket/Socket.hx | 16 +- .../lib/luasocket/socket/AddrInfo.hx} | 13 +- std/lua/lib/luasocket/socket/Dns.hx | 28 + .../lib/luasocket/socket/ReceivePattern.hx | 28 + std/lua/lib/luasocket/socket/SelectResult.hx | 28 + std/lua/lib/luasocket/socket/ShutdownMode.hx | 29 + std/lua/lib/luasocket/socket/TcpClient.hx | 34 + std/lua/lib/luasocket/socket/TcpMaster.hx | 33 + std/lua/lib/luasocket/socket/TcpOption.hx | 30 + std/lua/lib/luasocket/socket/TcpServer.hx | 31 + std/lua/lib/luasocket/socket/TimeoutMode.hx | 28 + std/lua/lib/luautf8/Utf8.hx | 115 + std/lua/lib/luv/Async.hx | 8 +- std/lua/lib/luv/Check.hx | 11 +- std/lua/lib/luv/Handle.hx | 20 +- std/lua/lib/luv/Idle.hx | 10 +- std/lua/lib/luv/Loop.hx | 18 +- std/lua/lib/luv/Misc.hx | 115 +- std/lua/lib/luv/Pipe.hx | 21 +- std/lua/lib/luv/Poll.hx | 10 +- std/lua/lib/luv/Prepare.hx | 10 +- std/lua/lib/luv/Process.hx | 16 +- std/lua/lib/luv/Request.hx | 4 +- std/lua/lib/luv/Signal.hx | 11 +- std/lua/lib/luv/Stream.hx | 29 +- std/lua/lib/luv/Thread.hx | 14 +- std/lua/lib/luv/Timer.hx | 16 +- std/lua/lib/luv/Tty.hx | 17 +- std/lua/lib/luv/Work.hx | 8 +- std/lua/lib/luv/fs/FileDescriptor.hx | 2 +- std/lua/lib/luv/fs/FileSystem.hx | 273 +- std/lua/lib/luv/fs/FileSystemEvent.hx | 18 +- std/lua/lib/luv/fs/FileSystemPoll.hx | 13 +- std/lua/lib/luv/fs/Open.hx | 29 +- std/lua/lib/luv/net/Dns.hx | 21 +- std/lua/lib/luv/net/Tcp.hx | 26 +- std/lua/lib/luv/net/Udp.hx | 32 +- std/neko/Boot.hx | 107 +- std/neko/Lib.hx | 184 +- std/neko/NativeArray.hx | 27 +- std/neko/NativeString.hx | 17 +- std/neko/NativeXml.hx | 350 +- std/neko/Random.hx | 34 +- std/neko/Utf8.hx | 106 + std/neko/Web.hx | 266 +- std/neko/_std/Array.hx | 237 +- std/neko/_std/Date.hx | 116 +- std/neko/_std/EReg.hx | 171 +- std/neko/_std/Math.hx | 141 +- std/neko/_std/Reflect.hx | 160 +- std/neko/_std/Std.hx | 93 +- std/neko/_std/String.hx | 153 +- std/neko/_std/StringBuf.hx | 43 +- std/neko/_std/Sys.hx | 37 +- std/neko/_std/Type.hx | 2 +- std/neko/_std/haxe/Utf8.hx | 88 +- std/neko/_std/haxe/ds/IntMap.hx | 58 +- std/neko/_std/haxe/ds/ObjectMap.hx | 75 +- std/neko/_std/haxe/ds/StringMap.hx | 58 +- std/neko/_std/haxe/zip/Compress.hx | 39 +- std/neko/_std/haxe/zip/Uncompress.hx | 40 +- std/neko/_std/sys/FileSystem.hx | 70 +- std/neko/_std/sys/db/Mysql.hx | 142 +- std/neko/_std/sys/db/Sqlite.hx | 116 +- std/neko/_std/sys/io/File.hx | 46 +- std/neko/_std/sys/io/FileInput.hx | 50 +- std/neko/_std/sys/io/FileOutput.hx | 46 +- std/neko/_std/sys/io/Process.hx | 92 +- std/neko/_std/sys/net/Host.hx | 29 +- std/neko/_std/sys/net/Socket.hx | 195 +- std/neko/_std/sys/net/UdpSocket.hx | 29 +- std/neko/_std/sys/ssl/Certificate.hx | 153 +- std/neko/_std/sys/ssl/Digest.hx | 46 +- std/neko/_std/sys/ssl/Key.hx | 54 +- std/neko/_std/sys/ssl/Socket.hx | 309 +- std/neko/_std/sys/thread/Deque.hx | 49 + std/neko/_std/sys/thread/Lock.hx | 44 + std/neko/_std/sys/thread/Mutex.hx | 49 + std/neko/_std/sys/thread/Thread.hx | 124 + std/neko/_std/sys/thread/Tls.hx | 47 + std/neko/vm/Deque.hx | 44 +- std/neko/vm/Gc.hx | 19 +- std/neko/vm/Loader.hx | 62 +- std/neko/vm/Lock.hx | 36 +- std/neko/vm/Module.hx | 140 +- std/neko/vm/Mutex.hx | 50 +- std/neko/vm/Thread.hx | 115 +- std/neko/vm/Tls.hx | 41 +- std/neko/vm/Ui.hx | 49 +- std/neko/zip/Compress.hx | 7 +- std/neko/zip/Flush.hx | 7 +- std/neko/zip/Uncompress.hx | 7 +- std/php/{HException.hx => ArrayAccess.hx} | 21 +- std/php/Boot.hx | 1648 +-- std/php/BytesData.hx | 94 - std/php/Closure.hx | 34 + std/php/Const.hx | 427 + std/{php7 => php}/Error.hx | 32 +- std/{php7 => php}/ErrorException.hx | 25 +- std/php/Exception.hx | 34 +- std/php/Generator.hx | 91 + std/php/Global.hx | 1455 +++ std/php/IteratorAggregate.hx | 9 +- std/php/Lib.hx | 212 +- std/php/NativeArray.hx | 58 +- .../NativeAssocArray.hx} | 60 +- std/php/NativeIndexedArray.hx | 97 + std/php/NativeString.hx | 54 +- std/{php7 => php}/NativeStructArray.hx | 11 +- std/php/NativeXml.hx | 364 - std/php/Ref.hx | 30 + std/php/Resource.hx | 29 + std/php/RuntimeException.hx | 26 + std/{php7/NativeString.hx => php/Scalar.hx} | 13 +- std/php/Session.hx | 144 +- .../SessionHandlerInterface.hx} | 24 +- std/php/StdClass.hx | 29 + std/php/SuperGlobal.hx | 97 + std/php/Syntax.hx | 345 + .../Throwable.hx} | 38 +- std/php/Traversable.hx | 29 + std/php/Web.hx | 472 +- std/php/_polyfills.php | 53 + std/{php7 => php}/_std/Array.hx | 128 +- std/php/_std/Date.hx | 116 +- std/php/_std/EReg.hx | 198 +- std/php/_std/List.hx | 165 - std/php/_std/Math.hx | 127 +- std/php/_std/Reflect.hx | 191 +- std/php/_std/Std.hx | 73 +- std/php/_std/String.hx | 63 + std/php/_std/StringBuf.hx | 35 +- std/php/_std/StringTools.hx | 228 +- std/php/_std/Sys.hx | 143 +- std/php/_std/Type.hx | 438 +- std/{php7 => php}/_std/haxe/CallStack.hx | 100 +- std/php/_std/haxe/Json.hx | 124 +- std/php/_std/haxe/Resource.hx | 35 +- std/php/_std/haxe/Utf8.hx | 56 +- std/php/_std/haxe/crypto/Base64.hx | 75 + std/{php7 => php}/_std/haxe/crypto/Md5.hx | 13 +- std/{php7 => php}/_std/haxe/crypto/Sha1.hx | 11 +- std/{php7 => php}/_std/haxe/crypto/Sha224.hx | 11 +- std/{php7 => php}/_std/haxe/crypto/Sha256.hx | 11 +- std/php/_std/haxe/ds/IntMap.hx | 88 +- std/php/_std/haxe/ds/ObjectMap.hx | 80 +- std/php/_std/haxe/ds/StringMap.hx | 87 +- std/php/_std/haxe/ds/Vector.hx | 133 + std/php/_std/haxe/format/JsonParser.hx | 273 + std/php/_std/haxe/io/Bytes.hx | 169 + std/{php7 => php}/_std/haxe/io/BytesBuffer.hx | 54 +- std/{php7 => php}/_std/haxe/io/BytesData.hx | 48 +- std/{php7 => php}/_std/haxe/io/BytesInput.hx | 53 +- std/{php7 => php}/_std/haxe/io/BytesOutput.hx | 23 +- std/{php7 => php}/_std/haxe/io/FPHelper.hx | 26 +- .../haxe/iterators/StringIteratorUnicode.hx} | 65 +- .../StringKeyValueIteratorUnicode.hx | 67 + std/php/_std/haxe/xml/Parser.hx | 401 + std/php/_std/haxe/zip/Compress.hx | 26 +- std/php/_std/haxe/zip/Uncompress.hx | 27 +- std/php/_std/sys/FileSystem.hx | 131 +- std/php/_std/sys/db/Mysql.hx | 258 +- std/php/_std/sys/db/Sqlite.hx | 183 +- std/php/_std/sys/io/File.hx | 44 +- std/php/_std/sys/io/FileInput.hx | 86 +- std/php/_std/sys/io/FileOutput.hx | 68 +- std/php/_std/sys/io/Process.hx | 246 +- std/php/_std/sys/net/Host.hx | 34 +- std/php/_std/sys/net/Socket.hx | 211 +- std/php/db/Mysqli.hx | 100 + .../db/Mysqli_driver.hx} | 28 +- std/php/db/Mysqli_result.hx | 62 + std/php/db/Mysqli_stmt.hx | 57 + std/php/db/Mysqli_warning.hx | 32 + std/php/db/PDO.hx | 478 +- std/php/db/PDOException.hx | 30 + std/php/db/PDOStatement.hx | 48 + std/php/db/SQLite3.hx | 50 + std/php/db/SQLite3Result.hx | 36 + std/php/db/SQLite3Stmt.hx | 38 + std/{php7/_std/sys => php}/net/Socket.hx | 127 +- std/php/net/SslSocket.hx | 9 +- std/php/reflection/ReflectionClass.hx | 86 + .../reflection/ReflectionFunctionAbstract.hx | 55 + std/php/reflection/ReflectionMethod.hx | 56 + std/php/reflection/ReflectionProperty.hx | 49 + std/php/reflection/Reflector.hx | 28 + std/php7/ArrayAccess.hx | 13 - std/php7/Boot.hx | 890 -- std/php7/Closure.hx | 12 - std/php7/Const.hx | 312 - std/php7/Exception.hx | 42 - std/php7/Global.hx | 1200 -- std/php7/Lib.hx | 186 - std/php7/Ref.hx | 7 - std/php7/Resource.hx | 5 - std/php7/RuntimeException.hx | 4 - std/php7/Scalar.hx | 9 - std/php7/Session.hx | 171 - std/php7/SessionHandlerInterface.hx | 14 - std/php7/StdClass.hx | 7 - std/php7/SuperGlobal.hx | 60 - std/php7/Syntax.hx | 127 - std/php7/Throwable.hx | 16 - std/php7/Traversable.hx | 7 - std/php7/Web.hx | 420 - std/php7/_std/Date.hx | 96 - std/php7/_std/EReg.hx | 137 - std/php7/_std/Math.hx | 59 - std/php7/_std/Reflect.hx | 177 - std/php7/_std/Std.hx | 94 - std/php7/_std/StringTools.hx | 205 - std/php7/_std/Sys.hx | 148 - std/php7/_std/Type.hx | 361 - std/php7/_std/haxe/Json.hx | 114 - std/php7/_std/haxe/Resource.hx | 68 - std/php7/_std/haxe/Utf8.hx | 88 - std/php7/_std/haxe/ds/IntMap.hx | 98 - std/php7/_std/haxe/ds/ObjectMap.hx | 82 - std/php7/_std/haxe/ds/StringMap.hx | 74 - std/php7/_std/haxe/io/Bytes.hx | 206 - std/php7/_std/sys/FileSystem.hx | 112 - std/php7/_std/sys/db/Mysql.hx | 240 - std/php7/_std/sys/db/Sqlite.hx | 192 - std/php7/_std/sys/io/File.hx | 63 - std/php7/_std/sys/io/FileInput.hx | 87 - std/php7/_std/sys/io/FileOutput.hx | 76 - std/php7/_std/sys/io/Process.hx | 213 - std/php7/db/Mysqli.hx | 71 - std/php7/db/Mysqli_driver.hx | 16 - std/php7/db/Mysqli_result.hx | 40 - std/php7/db/Mysqli_stmt.hx | 35 - std/php7/db/Mysqli_warning.hx | 10 - std/php7/db/PDO.hx | 107 - std/php7/db/PDOException.hx | 8 - std/php7/db/PDOStatement.hx | 26 - std/php7/db/SQLite3.hx | 28 - std/php7/db/SQLite3Result.hx | 14 - std/php7/db/SQLite3Stmt.hx | 16 - std/php7/reflection/ReflectionClass.hx | 64 - .../reflection/ReflectionFunctionAbstract.hx | 35 - std/php7/reflection/ReflectionMethod.hx | 35 - std/php7/reflection/ReflectionProperty.hx | 28 - std/php7/reflection/Reflector.hx | 6 - std/python/Boot.hx | 343 +- std/python/Bytearray.hx | 30 +- std/python/Bytes.hx | 9 +- std/python/Dict.hx | 19 +- std/python/Exceptions.hx | 293 +- std/python/HaxeIterable.hx | 10 +- std/python/HaxeIterator.hx | 8 +- std/python/KwArgs.hx | 14 +- std/python/Lib.hx | 89 +- std/python/NativeArrayTools.hx | 15 +- std/python/NativeIterable.hx | 28 +- std/python/NativeIterator.hx | 24 +- std/python/NativeStringTools.hx | 28 +- std/python/Set.hx | 5 +- std/python/Syntax.hx | 77 +- std/python/Tuple.hx | 73 +- std/python/VarArgs.hx | 3 +- std/python/_std/Array.hx | 86 +- std/python/_std/Date.hx | 151 +- std/python/_std/EReg.hx | 74 +- std/python/_std/Math.hx | 90 +- std/python/_std/Reflect.hx | 91 +- std/python/_std/Std.hx | 128 +- std/python/_std/String.hx | 38 +- std/python/_std/StringBuf.hx | 15 +- std/python/_std/Sys.hx | 70 +- std/python/_std/Type.hx | 169 +- std/python/_std/haxe/Json.hx | 12 +- std/python/_std/haxe/Resource.hx | 17 +- std/python/_std/haxe/ds/IntMap.hx | 46 +- std/python/_std/haxe/ds/ObjectMap.hx | 42 +- std/python/_std/haxe/ds/StringMap.hx | 45 +- std/python/_std/sys/FileSystem.hx | 51 +- std/python/_std/sys/io/File.hx | 32 +- std/python/_std/sys/io/FileInput.hx | 47 +- std/python/_std/sys/io/FileOutput.hx | 49 +- std/python/_std/sys/io/Process.hx | 43 +- std/python/_std/sys/net/Host.hx | 31 +- std/python/_std/sys/net/Socket.hx | 431 +- std/python/internal/AnonObject.hx | 3 +- std/python/internal/ArrayImpl.hx | 102 +- std/python/internal/EnumImpl.hx | 9 +- std/python/internal/HxException.hx | 6 +- std/python/internal/HxOverrides.hx | 97 +- std/python/internal/Internal.hx | 94 +- std/python/internal/MethodClosure.hx | 37 + std/python/internal/StringImpl.hx | 62 +- std/python/internal/UBuiltins.hx | 48 +- std/python/io/FileBytesInput.hx | 7 +- std/python/io/FileBytesOutput.hx | 7 +- std/python/io/FileTextInput.hx | 5 +- std/python/io/FileTextOutput.hx | 7 +- std/python/io/IFileInput.hx | 13 +- std/python/io/IFileOutput.hx | 11 +- std/python/io/IInput.hx | 31 +- std/python/io/IOutput.hx | 39 +- std/python/io/IoTools.hx | 50 +- std/python/io/NativeBytesInput.hx | 26 +- std/python/io/NativeBytesOutput.hx | 24 +- std/python/io/NativeInput.hx | 33 +- std/python/io/NativeOutput.hx | 31 +- std/python/io/NativeTextInput.hx | 26 +- std/python/io/NativeTextOutput.hx | 23 +- std/python/lib/Builtins.hx | 178 +- std/python/lib/Codecs.hx | 5 +- std/python/lib/FileDescriptor.hx | 7 +- std/python/lib/FileObject.hx | 5 +- std/python/lib/Functools.hx | 8 +- std/python/lib/Glob.hx | 12 +- std/python/lib/Hashlib.hx | 106 + std/python/lib/Inspect.hx | 9 +- std/python/lib/Io.hx | 9 +- std/python/lib/Json.hx | 36 +- std/python/lib/Math.hx | 9 +- std/python/lib/Msvcrt.hx | 12 +- std/python/lib/Os.hx | 41 +- std/python/lib/Pprint.hx | 12 +- std/python/lib/Random.hx | 131 +- std/python/lib/Re.hx | 104 +- std/python/lib/Select.hx | 7 +- std/python/lib/Shutil.hx | 15 +- std/python/lib/Socket.hx | 288 + std/python/lib/Ssl.hx | 63 + std/python/lib/Subprocess.hx | 12 +- std/python/lib/Sys.hx | 11 +- std/python/lib/Tempfile.hx | 7 +- std/python/lib/Termios.hx | 17 +- std/python/lib/ThreadLowLevel.hx | 11 +- std/python/lib/Threading.hx | 7 +- std/python/lib/Time.hx | 12 +- std/python/lib/Timeit.hx | 25 +- std/python/lib/Traceback.hx | 5 +- std/python/lib/Tty.hx | 9 +- std/python/lib/codecs/Codec.hx | 3 +- std/python/lib/codecs/StreamReader.hx | 5 +- std/python/lib/codecs/StreamReaderWriter.hx | 6 +- std/python/lib/codecs/StreamWriter.hx | 6 +- std/python/lib/datetime/Datetime.hx | 61 +- std/python/lib/datetime/Timedelta.hx | 16 +- std/python/lib/datetime/Timezone.hx | 6 +- std/python/lib/datetime/Tzinfo.hx | 6 +- std/python/lib/io/BlockingIOError.hx | 7 +- std/python/lib/io/BufferedIOBase.hx | 20 +- std/python/lib/io/BufferedRWPair.hx | 9 +- std/python/lib/io/BufferedRandom.hx | 9 +- std/python/lib/io/BufferedReader.hx | 11 +- std/python/lib/io/BufferedWriter.hx | 8 +- std/python/lib/io/BytesIO.hx | 9 +- std/python/lib/io/FileIO.hx | 10 +- std/python/lib/io/IOBase.hx | 17 +- std/python/lib/io/RawIOBase.hx | 9 +- std/python/lib/io/StringIO.hx | 10 +- std/python/lib/io/TextIOBase.hx | 22 +- std/python/lib/io/TextIOWrapper.hx | 22 +- std/python/lib/io/UnsupportedOperation.hx | 9 +- std/python/lib/json/JSONDecoder.hx | 21 +- std/python/lib/json/JSONEncoder.hx | 26 +- std/python/lib/net/Address.hx | 6 +- std/python/lib/net/Socket.hx | 363 +- std/python/lib/os/Path.hx | 63 +- std/python/lib/socket/Address.hx | 25 + std/python/lib/socket/Socket.hx | 113 + std/python/lib/ssl/Purpose.hx | 30 + std/python/lib/ssl/SSLContext.hx | 50 + std/python/lib/ssl/SSLSession.hx | 27 + std/python/lib/ssl/SSLSocket.hx | 26 + std/python/lib/subprocess/Popen.hx | 73 +- std/python/lib/threading/Lock.hx | 11 +- std/python/lib/threading/RLock.hx | 11 +- std/python/lib/threading/Thread.hx | 33 +- std/python/lib/time/StructTime.hx | 12 +- std/python/lib/urllib/Parse.hx | 5 +- std/python/lib/xml/etree/ElementTree.hx | 40 +- std/python/net/SslSocket.hx | 58 + std/sys/FileStat.hx | 32 +- std/sys/FileSystem.hx | 62 +- std/sys/Http.hx | 498 + std/sys/db/Connection.hx | 25 +- std/sys/db/Manager.hx | 753 -- std/sys/db/Mysql.hx | 21 +- std/sys/db/Object.hx | 77 - std/sys/db/RecordInfos.hx | 89 - std/sys/db/RecordMacros.hx | 1428 --- std/sys/db/ResultSet.hx | 24 +- std/sys/db/Sqlite.hx | 16 +- std/sys/db/TableCreate.hx | 110 - std/sys/db/Transaction.hx | 70 - std/sys/db/Types.hx | 161 - std/sys/io/File.hx | 29 +- std/sys/io/FileInput.hx | 11 +- std/sys/io/FileOutput.hx | 9 +- std/sys/io/FileSeek.hx | 3 +- std/sys/io/Process.hx | 34 +- std/sys/net/Address.hx | 21 +- std/sys/net/Host.hx | 17 +- std/sys/net/Socket.hx | 63 +- std/sys/net/UdpSocket.hx | 16 +- std/sys/ssl/Certificate.hx | 70 +- std/sys/ssl/Digest.hx | 32 +- std/sys/ssl/DigestAlgorithm.hx | 25 +- std/sys/ssl/Key.hx | 30 +- std/sys/ssl/Socket.hx | 50 +- std/sys/thread/Deque.hx | 59 + std/sys/thread/Lock.hx | 80 + std/sys/thread/Mutex.hx | 59 + std/sys/thread/Thread.hx | 50 + std/sys/thread/Tls.hx | 45 + tests/Brewfile | 6 +- tests/RunCi.hx | 1318 +- tests/RunCi.hxml | 4 +- tests/TestMakefile.hxml | 2 +- tests/benchs/.vscode/settings.json | 21 + tests/benchs/.vscode/tasks.json | 13 + tests/benchs/build.hxml | 6 + tests/benchs/mandelbrot/compile-cpp.hxml | 4 +- tests/benchs/mandelbrot/compile-cppia.hxml | 4 +- tests/benchs/mandelbrot/compile-hl.hxml | 18 + tests/benchs/mandelbrot/compile-java.hxml | 4 +- tests/benchs/mandelbrot/compile-js.hxml | 4 +- tests/benchs/mandelbrot/compile-jvm.hxml | 9 + tests/benchs/mandelbrot/compile-macro.hxml | 7 + tests/benchs/mandelbrot/compile-neko.hxml | 4 +- tests/benchs/mandelbrot/compile-php.hxml | 4 +- tests/benchs/mtnetwork/MTNetwork.hx | 271 - tests/benchs/src/Macro.hx | 59 + tests/benchs/src/Main.hx | 17 + tests/benchs/src/TestCase.hx | 11 + tests/benchs/src/cases/Access.hx | 102 + tests/benchs/src/cases/Calls.hx | 146 + tests/benchs/src/cases/CharacterAccess.hx | 106 + tests/benchs/src/cases/CustomIterator.hx | 102 + tests/benchs/src/cases/Ds.hx | 131 + tests/benchs/src/cases/StringIterator.hx | 71 + tests/benchs/src/cases/StringScan.hx | 21 + tests/benchs/src/hxbenchmark/CaseResult.hx | 6 + tests/benchs/src/hxbenchmark/ResultPrinter.hx | 66 + tests/benchs/src/hxbenchmark/Suite.hx | 54 + tests/benchs/src/hxbenchmark/SuiteResult.hx | 6 + tests/display/.vscode/launch.json | 11 + tests/display/.vscode/settings.json | 11 + tests/display/.vscode/tasks.json | 13 + tests/display/build.hxml | 7 +- tests/display/src-shared/Marker.hx | 21 + tests/display/src/Diagnostic.hx | 29 + tests/display/src/DisplayTestCase.hx | 138 +- tests/display/src/DisplayTestContext.hx | 71 +- tests/display/src/File.hx | 63 +- tests/display/src/Macro.hx | 75 +- tests/display/src/Main.hx | 34 +- tests/display/src/ModuleSymbolEntry.hx | 33 +- tests/display/src/SignatureHelp.hx | 18 +- tests/display/src/Types.hx | 12 +- tests/display/src/cases/Abstract.hx | 43 +- .../display/src/cases/ArrayAccessSignature.hx | 117 + tests/display/src/cases/ArrowFunctions.hx | 43 + tests/display/src/cases/Basic.hx | 90 +- tests/display/src/cases/BuildMacro.hx | 34 +- tests/display/src/cases/Completion.hx | 62 +- tests/display/src/cases/DocumentSymbols.hx | 106 +- tests/display/src/cases/IImport.hx | 48 +- tests/display/src/cases/InMacro.hx | 36 + tests/display/src/cases/Issue4155.hx | 33 + tests/display/src/cases/Issue4345.hx | 35 + tests/display/src/cases/Issue5141.hx | 34 +- tests/display/src/cases/Issue5166.hx | 10 +- tests/display/src/cases/Issue5171.hx | 10 +- tests/display/src/cases/Issue5172.hx | 14 +- tests/display/src/cases/Issue5173.hx | 14 +- tests/display/src/cases/Issue5306.hx | 38 + tests/display/src/cases/Issue5649.hx | 13 + tests/display/src/cases/Issue5684.hx | 10 +- tests/display/src/cases/Issue5712.hx | 18 +- tests/display/src/cases/Issue5729.hx | 20 +- tests/display/src/cases/Issue5767.hx | 109 + tests/display/src/cases/Issue5775.hx | 12 +- tests/display/src/cases/Issue5796.hx | 16 +- tests/display/src/cases/Issue5967.hx | 15 + tests/display/src/cases/Issue5988.hx | 12 +- tests/display/src/cases/Issue5999.hx | 16 + tests/display/src/cases/Issue6004.hx | 16 + tests/display/src/cases/Issue6020.hx | 27 + tests/display/src/cases/Issue6029.hx | 4 +- tests/display/src/cases/Issue6068.hx | 23 +- tests/display/src/cases/Issue6227.hx | 19 + tests/display/src/cases/Issue6265.hx | 26 + tests/display/src/cases/Issue6275.hx | 20 + tests/display/src/cases/Issue6381.hx | 22 + tests/display/src/cases/Issue6396.hx | 20 + tests/display/src/cases/Issue6399.hx | 29 + tests/display/src/cases/Issue6405.hx | 27 + tests/display/src/cases/Issue6416.hx | 21 + tests/display/src/cases/Issue6417.hx | 17 + tests/display/src/cases/Issue6421.hx | 21 + tests/display/src/cases/Issue6422.hx | 18 + tests/display/src/cases/Issue6423.hx | 20 + tests/display/src/cases/Issue6434.hx | 20 + tests/display/src/cases/Issue6442.hx | 13 + tests/display/src/cases/Issue6740.hx | 26 + tests/display/src/cases/Issue6756.hx | 12 + tests/display/src/cases/Issue6779.hx | 18 + tests/display/src/cases/Issue6923.hx | 34 + tests/display/src/cases/Issue6943.hx | 14 + tests/display/src/cases/Issue6951.hx | 21 + tests/display/src/cases/Issue6997.hx | 17 + tests/display/src/cases/Issue7020.hx | 18 + tests/display/src/cases/Issue7022.hx | 16 + tests/display/src/cases/Issue7023.hx | 16 + tests/display/src/cases/Issue7027.hx | 11 + tests/display/src/cases/Issue7029.hx | 133 + tests/display/src/cases/Issue7046.hx | 12 + tests/display/src/cases/Issue7047.hx | 14 + tests/display/src/cases/Issue7050.hx | 14 + tests/display/src/cases/Issue7051.hx | 43 + tests/display/src/cases/Issue7053.hx | 188 + tests/display/src/cases/Issue7055.hx | 35 + tests/display/src/cases/Issue7057.hx | 17 + tests/display/src/cases/Issue7059.hx | 16 + tests/display/src/cases/Issue7060.hx | 14 + tests/display/src/cases/Issue7061.hx | 31 + tests/display/src/cases/Issue7063.hx | 19 + tests/display/src/cases/Issue7066.hx | 27 + tests/display/src/cases/Issue7068.hx | 33 + tests/display/src/cases/Issue7069.hx | 26 + tests/display/src/cases/Issue7071.hx | 19 + tests/display/src/cases/Issue7072.hx | 27 + tests/display/src/cases/Issue7075.hx | 26 + tests/display/src/cases/Issue7082.hx | 16 + tests/display/src/cases/Issue7084.hx | 34 + tests/display/src/cases/Issue7086.hx | 14 + tests/display/src/cases/Issue7089.hx | 18 + tests/display/src/cases/Issue7092.hx | 18 + tests/display/src/cases/Issue7098.hx | 16 + tests/display/src/cases/Issue7102.hx | 15 + tests/display/src/cases/Issue7111.hx | 14 + tests/display/src/cases/Issue7114.hx | 66 + tests/display/src/cases/Issue7133.hx | 16 + tests/display/src/cases/Issue7136.hx | 25 + tests/display/src/cases/Issue7137.hx | 32 + tests/display/src/cases/Issue7148.hx | 19 + tests/display/src/cases/Issue7158.hx | 14 + tests/display/src/cases/Issue7171.hx | 14 + tests/display/src/cases/Issue7172.hx | 35 + tests/display/src/cases/Issue7211.hx | 12 + tests/display/src/cases/Issue7219.hx | 60 + tests/display/src/cases/Issue7224.hx | 24 + tests/display/src/cases/Issue7248.hx | 19 + tests/display/src/cases/Issue7252.hx | 17 + tests/display/src/cases/Issue7281.hx | 47 + tests/display/src/cases/Issue7319.hx | 21 + tests/display/src/cases/Issue7320.hx | 63 + tests/display/src/cases/Issue7326.hx | 23 + tests/display/src/cases/Issue7327.hx | 71 + tests/display/src/cases/Issue7328.hx | 19 + tests/display/src/cases/Issue7471.hx | 11 + tests/display/src/cases/Issue7577.hx | 17 + tests/display/src/cases/Issue7627.hx | 19 + tests/display/src/cases/Issue7650.hx | 19 + tests/display/src/cases/Issue7751.hx | 12 + tests/display/src/cases/Issue7752.hx | 21 + tests/display/src/cases/Issue7761.hx | 21 + tests/display/src/cases/Issue7777.hx | 26 + tests/display/src/cases/Issue7877.hx | 15 + tests/display/src/cases/Issue7878.hx | 14 + tests/display/src/cases/Issue7906.hx | 24 + tests/display/src/cases/Issue7911.hx | 10 + tests/display/src/cases/Issue7932.hx | 19 + tests/display/src/cases/Issue7935.hx | 47 + tests/display/src/cases/Issue7937.hx | 18 + tests/display/src/cases/Issue7938.hx | 19 + tests/display/src/cases/Issue7939.hx | 17 + tests/display/src/cases/Issue7940.hx | 21 + tests/display/src/cases/Issue7943.hx | 27 + tests/display/src/cases/Issue7945.hx | 31 + tests/display/src/cases/Issue7946.hx | 31 + tests/display/src/cases/Issue7947.hx | 55 + tests/display/src/cases/Issue7972.hx | 20 + tests/display/src/cases/Issue7998.hx | 16 + tests/display/src/cases/Issue8007.hx | 23 + tests/display/src/cases/Issue8014.hx | 24 + tests/display/src/cases/Issue8046.hx | 18 + tests/display/src/cases/Issue8078.hx | 21 + tests/display/src/cases/Issue8180.hx | 25 + tests/display/src/cases/Issue8217.hx | 22 + tests/display/src/cases/Issue8345.hx | 21 + tests/display/src/cases/Issue8359.hx | 25 + tests/display/src/cases/Issue8383.hx | 15 + tests/display/src/cases/Issue8396.hx | 19 + tests/display/src/cases/Issue8420.hx | 16 + tests/display/src/cases/Issue8459.hx | 14 + tests/display/src/cases/Issue8558.hx | 25 + tests/display/src/cases/IssueTemplate.hx | 14 + tests/display/src/cases/Metadata.hx | 75 +- tests/display/src/cases/Override.hx | 56 + tests/display/src/cases/PropertyAccessors.hx | 16 +- tests/display/src/cases/Resuming.hx | 22 + tests/display/src/cases/Signature.hx | 203 +- tests/display/src/cases/StaticExtension.hx | 70 + .../display/src/cases/StructureCompletion.hx | 186 +- tests/display/src/cases/Super.hx | 30 +- tests/display/src/cases/Toplevel.hx | 280 +- tests/display/src/cases/Type.hx | 4 +- tests/display/src/cases/TypeHints.hx | 83 + tests/display/src/cases/VsHaxeIssue198.hx | 13 + .../display/src/cases/_issue5417/Issue5417.hx | 15 + tests/display/src/cases/import.hx | 3 + tests/display/src/import.hx | 1 + .../display/src/misc/ModuleWithPrivateType.hx | 4 + tests/display/src/misc/issue7098/Bar.hx | 9 + tests/display/src/misc/issue7777/Foo.hx | 11 + tests/display/src/misc/issue7777/Thing.hx | 5 + .../src/misc/issue7877/ProcessMacro.hx | 40 + .../src/misc/issue7877/ProcessedClass.hx | 9 + tests/display/src/misc/issue7911/Test.hx | 2 + tests/display/src/misc/issue7911/import.hx | 2 + tests/echoServer/EchoServer.hx | 6 + tests/echoServer/build.hxml | 2 + tests/echoServer/www/crossdomain.xml | 7 + tests/misc/README.md | 31 + tests/misc/compile.hxml | 4 +- .../compiler_loops/projects/Issue5189/Main.hx | 20 + .../projects/Issue5189/compile-fail.hxml | 1 + .../Issue5189/compile-fail.hxml.stderr | 3 + .../compiler_loops/projects/Issue5345/Main.hx | 5 + .../projects/Issue5345/Main2.hx | 6 + .../projects/Issue5345/Main3.hx | 6 + .../projects/Issue5345/compile-fail.hxml | 1 + .../Issue5345/compile-fail.hxml.stderr | 1 + .../projects/Issue5345/compile2-fail.hxml | 1 + .../Issue5345/compile2-fail.hxml.stderr | 1 + .../projects/Issue5345/compile3-fail.hxml | 1 + .../Issue5345/compile3-fail.hxml.stderr | 1 + .../projects/Issue5785/Main1.hx | 16 + .../projects/Issue5785/Main2.hx | 10 + .../projects/Issue5785/Main3.hx | 9 + .../projects/Issue5785/compile1.hxml | 1 + .../projects/Issue5785/compile2.hxml | 1 + .../projects/Issue5785/compile3.hxml | 1 + .../compiler_loops/projects/Issue6038/Main.hx | 14 + .../projects/Issue6038/compile.hxml | 1 + .../compiler_loops/projects/Issue7733/Main.hx | 11 + .../projects/Issue7733/compile.hxml | 1 + .../compiler_loops/projects/Issue8588/Main.hx | 9 + .../projects/Issue8588/Main2.hx | 9 + .../projects/Issue8588/Main3.hx | 9 + .../projects/Issue8588/Main4.hx | 9 + .../projects/Issue8588/Main5.hx | 9 + .../projects/Issue8588/compile-fail.hxml | 1 + .../Issue8588/compile-fail.hxml.stderr | 1 + .../projects/Issue8588/compile2-fail.hxml | 1 + .../Issue8588/compile2-fail.hxml.stderr | 1 + .../projects/Issue8588/compile3-fail.hxml | 1 + .../Issue8588/compile3-fail.hxml.stderr | 1 + .../projects/Issue8588/compile4-fail.hxml | 1 + .../Issue8588/compile4-fail.hxml.stderr | 1 + .../projects/Issue8588/compile5-fail.hxml | 1 + .../Issue8588/compile5-fail.hxml.stderr | 1 + tests/misc/compiler_loops/run.hxml | 3 + tests/misc/cppObjc/build.hxml | 5 +- tests/misc/{ => cs}/csTwoLibs/Lib1.hx | 0 tests/misc/{ => cs}/csTwoLibs/Main.hx | 0 tests/misc/cs/csTwoLibs/compile-1.hxml | 15 + tests/misc/{ => cs}/csTwoLibs/compile-2.hxml | 12 +- tests/misc/{ => cs}/csTwoLibs/compile-3.hxml | 12 +- tests/misc/{ => cs}/csTwoLibs/compile-4.hxml | 12 +- .../Issue3526/IncompatibleCombinations.hx | 28 + tests/misc/cs/projects/Issue3526/Main.hx | 72 + .../cs/projects/Issue3526/compile-7.3.hxml | 4 + tests/misc/cs/projects/Issue3526/compile.hxml | 2 + .../incompatible-combinations-fail.hxml | 4 + ...incompatible-combinations-fail.hxml.stderr | 8 + tests/misc/cs/projects/Issue3703/Main.hx | 15 + tests/misc/cs/projects/Issue3703/Test.hx | 15 + tests/misc/cs/projects/Issue3703/compile.hxml | 3 + tests/misc/cs/projects/Issue4002/Main.hx | 19 + tests/misc/cs/projects/Issue4002/compile.hxml | 3 + .../{ => cs}/projects/Issue4116/base/A.hx | 0 .../{ => cs}/projects/Issue4116/compile.hxml | 0 .../Issue4151/DynamicAudioNormalizerNET.dll | Bin 0 -> 48640 bytes .../projects/Issue4151/Main.hx} | 0 tests/misc/cs/projects/Issue4151/compile.hxml | 3 + tests/misc/cs/projects/Issue4598/Main.hx | 16 + tests/misc/cs/projects/Issue4598/Run.hx | 11 + tests/misc/cs/projects/Issue4598/compile.hxml | 4 + tests/misc/cs/projects/Issue4623/Main.hx | 59 + tests/misc/cs/projects/Issue4623/Run.hx | 11 + tests/misc/cs/projects/Issue4623/compile.hxml | 4 + tests/misc/cs/projects/Issue5434/Main.hx | 6 + tests/misc/cs/projects/Issue5434/compile.hxml | 2 + tests/misc/cs/projects/Issue5915/Test.hx | 20 + tests/misc/cs/projects/Issue5915/compile.hxml | 2 + tests/misc/cs/projects/Issue5953/Main.hx | 17 + tests/misc/cs/projects/Issue5953/Reduced.hx | 10 + tests/misc/cs/projects/Issue5953/compile.hxml | 3 + tests/misc/cs/projects/Issue6635/Main.hx | 13 + tests/misc/cs/projects/Issue6635/compile.hxml | 3 + .../cs/projects/Issue6635/compile.hxml.stderr | 0 tests/misc/cs/projects/Issue7875/Main.hx | 23 + tests/misc/cs/projects/Issue7875/compile.hxml | 3 + tests/misc/cs/projects/Issue8361/Main.hx | 22 + tests/misc/cs/projects/Issue8361/compile.hxml | 2 + tests/misc/cs/projects/Issue8366/Main.hx | 22 + tests/misc/cs/projects/Issue8366/compile.hxml | 3 + tests/misc/cs/projects/Issue8589/Main.hx | 10 + tests/misc/cs/projects/Issue8589/compile.hxml | 3 + .../cs/projects/Issue8589/compile.hxml.stderr | 0 tests/misc/cs/projects/Issue8664/Main.hx | 25 + tests/misc/cs/projects/Issue8664/compile.hxml | 2 + tests/misc/cs/run.hxml | 2 + tests/misc/csTwoLibs/compile-1.hxml | 15 - tests/misc/es6/Test.hx | 156 + tests/misc/es6/extern.js | 1 + tests/misc/es6/run.hxml | 4 + tests/misc/eventLoop/all.hxml | 6 +- tests/misc/java/projects/Issue2689/Main.hx | 9 + .../java/projects/Issue2689/compile-fail.hxml | 3 + .../Issue2689/compile-fail.hxml.stderr | 5 + tests/misc/java/projects/Issue8322/Main.hx | 7 + .../misc/java/projects/Issue8322/compile.hxml | 3 + tests/misc/java/projects/Issue8444/Main.hx | 15 + .../misc/java/projects/Issue8444/compile.hxml | 3 + tests/misc/java/run.hxml | 2 + .../luaDeadCode/stringReflection/Issue6276.hx | 21 + .../luaDeadCode/stringReflection/compile.hxml | 5 + .../misc/php/projects/Issue7725/compile.hxml | 17 + tests/misc/php/projects/Issue7725/run.php | 6 + tests/misc/php/projects/Issue7725/src/App1.hx | 7 + tests/misc/php/projects/Issue7725/src/App2.hx | 7 + .../misc/php/projects/Issue8249/compile.hxml | 4 + tests/misc/php/projects/Issue8249/src/Main.hx | 10 + .../misc/php/projects/Issue8851/compile.hxml | 5 + tests/misc/php/projects/Issue8851/src/Main.hx | 16 + tests/misc/php/run.hxml | 2 + tests/misc/projects/Issue1138/compile1.hxml | 6 +- tests/misc/projects/Issue1138/compile2.hxml | 6 +- .../projects/Issue1138/compile3-fail.hxml | 6 +- .../Issue1138/compile3-fail.hxml.stderr | 2 +- .../projects/Issue1138/compile4-fail.hxml | 4 +- .../Issue1138/compile4-fail.hxml.stderr | 2 +- .../projects/Issue1310/compile1-fail.hxml | 2 +- .../Issue1310/compile1-fail.hxml.stderr | 4 +- tests/misc/projects/Issue1968/compile.hxml | 2 +- .../projects/Issue1968/compile.hxml.stderr | 2 +- .../misc/projects/Issue2087/compile-fail.hxml | 2 +- .../Issue2087/compile-fail.hxml.stderr | 2 +- .../projects/Issue2148/compile1-fail.hxml | 2 +- .../Issue2148/compile1-fail.hxml.stderr | 4 +- .../projects/Issue2232/compile1-fail.hxml | 2 +- .../Issue2232/compile1-fail.hxml.stderr | 4 +- .../projects/Issue2232/compile2-fail.hxml | 2 +- .../Issue2232/compile2-fail.hxml.stderr | 2 +- .../Issue2263/import-completion.hxml.stderr | 4 +- .../Issue2263/type-completion.hxml.stderr | 4 +- .../Issue2472/compile-fail.hxml.stderr | 3 + tests/misc/projects/Issue2508/compile.hxml | 2 +- .../projects/Issue2508/compile.hxml.stderr | 20 +- .../misc/projects/Issue2538/compile-fail.hxml | 2 +- .../Issue2538/compile-fail.hxml.stderr | 2 +- .../Issue2969/compile-fail.hxml.stderr | 5 + tests/misc/projects/Issue2991/compile.hxml | 2 +- .../projects/Issue2991/compile.hxml.stderr | 2 +- tests/misc/projects/Issue2993/compile.hxml | 2 +- .../projects/Issue2993/compile.hxml.stderr | 2 +- tests/misc/projects/Issue2995/position.hxml | 2 +- .../projects/Issue2995/position.hxml.stderr | 2 +- tests/misc/projects/Issue2995/usage.hxml | 2 +- .../misc/projects/Issue2995/usage.hxml.stderr | 4 +- .../projects/Issue2996/compile1.hxml.stderr | 2 +- .../projects/Issue2996/compile2.hxml.stderr | 2 +- tests/misc/projects/Issue2997/Main.hx | 2 +- tests/misc/projects/Issue2997/compile1.hxml | 2 +- .../projects/Issue2997/compile1.hxml.stderr | 2 +- .../misc/projects/Issue3102/compile-each.hxml | 7 +- .../projects/Issue3102/compile2-each.hxml | 7 +- tests/misc/projects/Issue3129/compile.hxml | 3 +- tests/misc/projects/Issue3181/Main.hx | 8 + .../misc/projects/Issue3181/compile-fail.hxml | 3 + .../Issue3181/compile-fail.hxml.stderr | 1 + .../projects/Issue3192/compile1-fail.hxml | 2 +- .../Issue3192/compile1-fail.hxml.stderr | 6 +- .../Issue3238/default-value-fail.hxml.stderr | 2 +- .../Issue3238/non-extern-fail.hxml.stderr | 2 +- .../Issue3238/not-last-fail.hxml.stderr | 2 +- .../Issue3238/optional-fail.hxml.stderr | 2 +- tests/misc/projects/Issue3256/Main.hx | 10 - tests/misc/projects/Issue3256/compile.hxml | 1 - .../projects/Issue3256/compile.hxml.stderr | 4 - tests/misc/projects/Issue3261/Main.hx | 11 - tests/misc/projects/Issue3261/compile.hxml | 1 - .../projects/Issue3261/compile.hxml.stderr | 4 - .../Issue3300/test-cwd-fail.hxml.stderr | 1 + .../Issue3361/compile1-fail.hxml.stderr | 7 +- .../Issue3361/compile2-fail.hxml.stderr | 9 +- .../Issue3417/compile-fail.hxml.stderr | 6 +- .../Issue3457/compile-fail.hxml.stderr | 2 +- tests/misc/projects/Issue3542/compile.hxml | 2 +- tests/misc/projects/Issue3607/Main.hx | 24 + .../misc/projects/Issue3607/compile-fail.hxml | 1 + .../Issue3607/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue3621/Main1.hx | 2 +- .../misc/projects/Issue3621/compile-fail.hxml | 2 +- .../Issue3621/compile-fail.hxml.stderr | 2 +- .../Issue3678/compile-fail.hxml.stderr | 4 +- .../Issue3699/compile-var-fail.hxml.stderr | 3 +- .../Issue3710/compile-1-fail.hxml.stderr | 2 +- .../Issue3710/compile-2-fail.hxml.stderr | 2 +- .../misc/projects/Issue3714/compile-fail.hxml | 2 +- .../Issue3714/compile-fail.hxml.stderr | 2 +- .../Issue3726/compile-1-fail.hxml.stderr | 2 +- .../Issue3726/compile-2-fail.hxml.stderr | 2 +- .../Issue3781/compile-fail.hxml.stderr | 4 +- .../misc/projects/Issue3783/compile-fail.hxml | 2 +- .../Issue3783/compile-fail.hxml.stderr | 2 +- .../Issue3802/compile-fail.hxml.stderr | 2 +- tests/misc/projects/Issue3830/Main.hx | 12 - .../misc/projects/Issue3830/compile-fail.hxml | 2 +- .../Issue3830/compile-fail.hxml.stderr | 2 +- tests/misc/projects/Issue3830/compile.hxml | 2 - .../projects/Issue3830/compile.hxml.stderr | 3 - tests/misc/projects/Issue3911/Main1.hx | 7 - tests/misc/projects/Issue3911/Main2.hx | 7 - tests/misc/projects/Issue3911/Main3.hx | 7 - tests/misc/projects/Issue3911/compile1.hxml | 1 - .../projects/Issue3911/compile1.hxml.stderr | 3 - tests/misc/projects/Issue3911/compile2.hxml | 1 - .../projects/Issue3911/compile2.hxml.stderr | 3 - tests/misc/projects/Issue3911/compile3.hxml | 1 - .../projects/Issue3911/compile3.hxml.stderr | 3 - .../projects/Issue3931/compile2.hxml.stderr | 4 +- tests/misc/projects/Issue3956/compile.hxml | 3 +- .../misc/projects/Issue3975/compile-fail.hxml | 2 +- .../Issue3975/compile-fail.hxml.stderr | 4 +- .../projects/Issue4114/compile1-fail.hxml | 2 +- .../Issue4114/compile1-fail.hxml.stderr | 2 +- .../projects/Issue4114/compile2-fail.hxml | 2 +- tests/misc/projects/Issue4160/compile.hxml | 2 +- tests/misc/projects/Issue4218/build.hxml | 3 - .../misc/projects/Issue4247/compile-fail.hxml | 2 +- .../Issue4247/compile-fail.hxml.stderr | 2 +- .../misc/projects/Issue4250/compile-fail.hxml | 2 +- .../Issue4250/compile-fail.hxml.stderr | 8 +- tests/misc/projects/Issue4265/compile.hxml | 3 +- .../compile-abstract-fail.hxml.stderr | 2 +- .../Issue4293/compile-class-fail.hxml.stderr | 2 +- .../compile-enum-ctor-fail.hxml.stderr | 2 +- .../Issue4293/compile-enum-fail.hxml.stderr | 2 +- .../Issue4293/compile-field-fail.hxml.stderr | 2 +- .../compile-typedef-fail.hxml.stderr | 2 +- .../misc/projects/Issue4364/compile-fail.hxml | 2 +- .../Issue4364/compile-fail.hxml.stderr | 4 +- .../Issue4370/compile-fail.hxml.stderr | 2 +- .../misc/projects/Issue4378/compile-fail.hxml | 2 +- .../Issue4378/compile-fail.hxml.stderr | 7 +- tests/misc/projects/Issue4399/compile.hxml | 3 +- tests/misc/projects/Issue4404/compile1.hxml | 4 +- .../projects/Issue4448/compile1-fail.hxml | 2 +- .../Issue4448/compile1-fail.hxml.stderr | 6 +- tests/misc/projects/Issue4454/compile.hxml | 2 +- tests/misc/projects/Issue4456/compile.hxml | 3 +- tests/misc/projects/Issue4458/Main.hx | 7 + .../projects/Issue4458/compile-pass1.hxml | 2 + .../projects/Issue4458/compile-pass2.hxml | 2 + .../projects/Issue4458/compile1-fail.hxml | 2 + .../Issue4458/compile1-fail.hxml.stderr | 1 + .../projects/Issue4458/compile2-fail.hxml | 3 + .../Issue4458/compile2-fail.hxml.stderr | 1 + .../misc/projects/Issue4466/compile-fail.hxml | 2 +- .../Issue4466/compile-fail.hxml.stderr | 2 +- tests/misc/projects/Issue4540/Main.hx | 2 +- .../misc/projects/Issue4540/compile-fail.hxml | 2 +- .../Issue4540/compile-fail.hxml.stderr | 6 +- tests/misc/projects/Issue4563/compile.hxml | 3 +- .../misc/projects/Issue4580/compile-fail.hxml | 2 +- .../Issue4580/compile-fail.hxml.stderr | 2 +- .../projects/Issue4671/compile1-fail.hxml | 2 +- .../Issue4671/compile1-fail.hxml.stderr | 2 +- .../projects/Issue4671/compile2-fail.hxml | 2 +- .../Issue4671/compile2-fail.hxml.stderr | 2 +- tests/misc/projects/Issue4679/compile.hxml | 5 +- .../misc/projects/Issue4689/compile-fail.hxml | 2 +- .../Issue4689/compile-fail.hxml.stderr | 2 +- tests/misc/projects/Issue4712/compile.hxml | 2 +- tests/misc/projects/Issue4720/Main.hx | 17 +- tests/misc/projects/Issue4720/compile.hxml | 2 +- .../projects/Issue4720/compile.hxml.stderr | 42 +- tests/misc/projects/Issue4720/compile2.hxml | 3 + .../projects/Issue4720/compile2.hxml.stderr | 0 tests/misc/projects/Issue4723/Test.hx | 9 - tests/misc/projects/Issue4723/compile.hxml | 3 - tests/misc/projects/Issue4742/Main.hx | 2 +- .../misc/projects/Issue4742/compile-fail.hxml | 2 +- .../Issue4742/compile-fail.hxml.stderr | 2 +- .../projects/Issue4754/compile1-fail.hxml | 2 +- .../Issue4754/compile1-fail.hxml.stderr | 2 +- .../projects/Issue4761/compile1-fail.hxml | 2 +- .../Issue4761/compile1-fail.hxml.stderr | 2 +- .../projects/Issue4764/compile1-fail.hxml | 2 +- .../Issue4764/compile1-fail.hxml.stderr | 2 +- tests/misc/projects/Issue4766/Main1.hx | 2 +- .../projects/Issue4766/compile1-fail.hxml | 2 +- .../Issue4766/compile1-fail.hxml.stderr | 2 +- .../projects/Issue4775/compile1-fail.hxml | 2 +- .../Issue4775/compile1-fail.hxml.stderr | 4 +- tests/misc/projects/Issue4803/Main.hx | 14 +- .../misc/projects/Issue4803/compile-fail.hxml | 2 +- .../Issue4803/compile-fail.hxml.stderr | 17 +- .../projects/Issue4816/compile1-fail.hxml | 2 +- .../Issue4816/compile1-fail.hxml.stderr | 2 +- tests/misc/projects/Issue4825/compile.hxml | 2 +- tests/misc/projects/Issue4891/Main.hx | 8 + .../misc/projects/Issue4891/compile-fail.hxml | 2 + .../Issue4891/compile-fail.hxml.stderr | 2 + tests/misc/projects/Issue4904/Main.hx | 3 +- .../misc/projects/Issue4904/compile-fail.hxml | 2 +- .../Issue4904/compile-fail.hxml.stderr | 2 +- tests/misc/projects/Issue4907/Main.hx | 3 +- .../misc/projects/Issue4907/compile-fail.hxml | 2 +- .../Issue4907/compile-fail.hxml.stderr | 2 +- .../misc/projects/Issue4954/compile-fail.hxml | 2 +- .../Issue4954/compile-fail.hxml.stderr | 2 +- .../misc/projects/Issue4957/compile-fail.hxml | 2 +- .../Issue4957/compile-fail.hxml.stderr | 4 +- tests/misc/projects/Issue4982/Main.hx | 2 +- .../misc/projects/Issue4982/compile-fail.hxml | 2 +- .../Issue4982/compile-fail.hxml.stderr | 2 +- tests/misc/projects/Issue5005/compile.hxml | 2 +- tests/misc/projects/Issue5008/Main.hx | 17 + .../misc/projects/Issue5008/compile-fail.hxml | 1 + .../Issue5008/compile-fail.hxml.stderr | 4 + .../misc/projects/Issue5010/compile-fail.hxml | 2 +- tests/misc/projects/Issue5039/Main.hx | 5 + tests/misc/projects/Issue5039/Main2.hx | 6 + .../misc/projects/Issue5039/compile-fail.hxml | 2 + .../Issue5039/compile-fail.hxml.stderr | 1 + .../projects/Issue5039/compile2-fail.hxml | 2 + .../Issue5039/compile2-fail.hxml.stderr | 1 + .../projects/Issue5118/compile1.hxml.stderr | 4 +- .../projects/Issue5118/compile2.hxml.stderr | 2 +- tests/misc/projects/Issue5122/compile.hxml | 2 +- .../projects/Issue5122/compile.hxml.stderr | 2 +- .../projects/Issue5123/compile.hxml.stderr | 2 +- .../projects/Issue5125/compile.hxml.stderr | 2 +- .../misc/projects/Issue5126/compile-fail.hxml | 2 +- .../Issue5126/compile-fail.hxml.stderr | 2 +- .../projects/Issue5128/compile.hxml.stderr | 2 +- .../Issue5134/compile-fail.hxml.stderr | 2 +- tests/misc/projects/Issue5145/compile.hxml | 2 +- .../projects/Issue5152/compile.hxml.stderr | 2 +- tests/misc/projects/Issue5205/Main.hx | 9 + .../misc/projects/Issue5205/compile-fail.hxml | 1 + .../Issue5205/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue5206/Main.hx | 4 +- .../misc/projects/Issue5206/compile-fail.hxml | 2 +- .../Issue5206/compile-fail.hxml.stderr | 12 +- tests/misc/projects/Issue5268/Main.hx | 2 +- .../misc/projects/Issue5268/compile-fail.hxml | 2 +- tests/misc/projects/Issue5321/compile.hxml | 2 +- .../misc/projects/Issue5375/compile-fail.hxml | 2 +- .../Issue5375/compile-fail.hxml.stderr | 4 +- tests/misc/projects/Issue5525/Main.hx | 26 + .../misc/projects/Issue5525/compile-fail.hxml | 1 + .../Issue5525/compile-fail.hxml.stderr | 3 + tests/misc/projects/Issue5559/build.hxml | 4 +- .../misc/projects/Issue5644/compile-fail.hxml | 2 +- .../Issue5644/compile-fail.hxml.stderr | 2 +- tests/misc/projects/Issue5833/Main.hx | 2 +- .../misc/projects/Issue5833/compile-fail.hxml | 2 +- .../Issue5833/compile-fail.hxml.stderr | 2 +- tests/misc/projects/Issue5843/Data.hx | 8 + tests/misc/projects/Issue5843/Macro.hx | 45 + tests/misc/projects/Issue5843/Main.hx | 15 + tests/misc/projects/Issue5843/Transform.hx | 4 + tests/misc/projects/Issue5843/compile.hxml | 2 + tests/misc/projects/Issue5856/compile.hxml | 2 +- tests/misc/projects/Issue5871/Main.hx | 14 + tests/misc/projects/Issue5871/Main2.hx | 15 + .../Issue5871/parent-constructor-fail.hxml | 2 + .../parent-constructor-fail.hxml.stderr | 1 + .../Issue5871/parent-no-constructor-fail.hxml | 2 + .../parent-no-constructor-fail.hxml.stderr | 1 + tests/misc/projects/Issue5880/Main.hx | 18 + tests/misc/projects/Issue5880/Main2.hx | 18 + tests/misc/projects/Issue5880/Main3.hx | 17 + tests/misc/projects/Issue5880/Main4.hx | 18 + tests/misc/projects/Issue5880/Main5.hx | 21 + tests/misc/projects/Issue5880/MainSuccess.hx | 21 + .../misc/projects/Issue5880/compile-fail.hxml | 1 + .../Issue5880/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue5880/compile.hxml | 1 + .../projects/Issue5880/compile2-fail.hxml | 1 + .../Issue5880/compile2-fail.hxml.stderr | 1 + .../projects/Issue5880/compile3-fail.hxml | 1 + .../Issue5880/compile3-fail.hxml.stderr | 1 + .../projects/Issue5880/compile4-fail.hxml | 1 + .../Issue5880/compile4-fail.hxml.stderr | 2 + .../projects/Issue5880/compile5-fail.hxml | 1 + .../Issue5880/compile5-fail.hxml.stderr | 2 + .../misc/projects/Issue5888/compile-fail.hxml | 2 +- .../Issue5888/compile-fail.hxml.stderr | 2 +- tests/misc/projects/Issue5924/Main.hx | 21 + .../misc/projects/Issue5924/compile-fail.hxml | 2 + .../Issue5924/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue5940/Main.hx | 10 + .../misc/projects/Issue5940/compile-fail.hxml | 1 + .../Issue5940/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue5946/Main.hx | 13 + .../misc/projects/Issue5946/compile-fail.hxml | 1 + .../Issue5946/compile-fail.hxml.stderr | 4 + tests/misc/projects/Issue5949/Main.hx | 12 + .../misc/projects/Issue5949/compile-fail.hxml | 1 + .../Issue5949/compile-fail.hxml.stderr | 3 + tests/misc/projects/Issue5952/Main.hx | 14 + .../projects/Issue5952/compile1-fail.hxml | 2 + .../Issue5952/compile1-fail.hxml.stderr | 1 + tests/misc/projects/Issue6005/Main.hx | 11 + tests/misc/projects/Issue6005/compile1.hxml | 1 + .../projects/Issue6005/compile1.hxml.stderr | 3 + tests/misc/projects/Issue6006/Macro.hx | 27 + tests/misc/projects/Issue6006/Main.hx | 8 + tests/misc/projects/Issue6006/compile.hxml | 1 + tests/misc/projects/Issue6030/Main1.hx | 13 + .../misc/projects/Issue6030/compile-fail.hxml | 3 + .../Issue6030/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue6201/Main1.hx | 5 + tests/misc/projects/Issue6201/Main2.hx | 5 + .../Issue6201/compile1-fail.hxml.disabled | 1 + .../Issue6201/compile1-fail.hxml.stderr | 1 + .../projects/Issue6201/compile2-fail.hxml | 1 + .../Issue6201/compile2-fail.hxml.stderr | 1 + tests/misc/projects/Issue6226/Main.hx | 9 + tests/misc/projects/Issue6226/compile.hxml | 1 + .../projects/Issue6226/compile.hxml.stderr | 1 + tests/misc/projects/Issue6340/Main.hx | 13 + .../misc/projects/Issue6340/compile-fail.hxml | 1 + .../Issue6340/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue6402/Main.hx | 39 + tests/misc/projects/Issue6402/compile.hxml | 1 + .../projects/Issue6402/compile.hxml.stderr | 4 + tests/misc/projects/Issue6427/E.hx | 3 + tests/misc/projects/Issue6427/Main.hx | 6 + tests/misc/projects/Issue6427/T.hx | 2 + tests/misc/projects/Issue6427/compile.hxml | 2 + .../projects/Issue6427/compile.hxml.stderr | 1 + tests/misc/projects/Issue6443/Main.hx | 13 + tests/misc/projects/Issue6443/compile.hxml | 1 + .../projects/Issue6443/compile.hxml.stderr | 1 + tests/misc/projects/Issue6445/Main.hx | 9 + .../misc/projects/Issue6445/compile-fail.hxml | 2 + .../Issue6445/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue6525/Main.hx | 23 + .../misc/projects/Issue6525/compile-fail.hxml | 1 + .../Issue6525/compile-fail.hxml.stderr | 2 + .../misc/projects/Issue6525/pack/BasePack.hx | 12 + tests/misc/projects/Issue6525/pack/IPack.hx | 3 + tests/misc/projects/Issue6525/pack/Pvt.hx | 17 + .../Issue6525/pack/sub/AccessSubPvt.hx | 7 + .../projects/Issue6525/pack/sub/ExtSubPvt.hx | 5 + .../projects/Issue6525/pack/sub/SubPvt.hx | 6 + tests/misc/projects/Issue6542/Main.hx | 12 + .../misc/projects/Issue6542/compile-fail.hxml | 2 + .../Issue6542/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue6550/Main.hx | 8 + .../misc/projects/Issue6550/compile-fail.hxml | 2 + .../Issue6550/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue6583/Macro1.hx | 16 + tests/misc/projects/Issue6583/Macro2.hx | 12 + tests/misc/projects/Issue6583/Main.hx | 6 + tests/misc/projects/Issue6583/compile.hxml | 1 + .../projects/Issue6583/compile.hxml.stderr | 1 + tests/misc/projects/Issue6584/Main1.hx | 3 + tests/misc/projects/Issue6584/Main2.hx | 7 + tests/misc/projects/Issue6584/Main3.hx | 11 + tests/misc/projects/Issue6584/Main4.hx | 10 + tests/misc/projects/Issue6584/Main5.hx | 6 + .../projects/Issue6584/compile1-fail.hxml | 2 + .../Issue6584/compile1-fail.hxml.stderr | 1 + .../projects/Issue6584/compile2-fail.hxml | 2 + .../Issue6584/compile2-fail.hxml.stderr | 1 + .../projects/Issue6584/compile3-fail.hxml | 2 + .../Issue6584/compile3-fail.hxml.stderr | 1 + .../projects/Issue6584/compile4-fail.hxml | 2 + .../Issue6584/compile4-fail.hxml.stderr | 1 + .../projects/Issue6584/compile5-fail.hxml | 2 + .../Issue6584/compile5-fail.hxml.stderr | 2 + tests/misc/projects/Issue6622/Main1.hx | 22 + .../projects/Issue6622/compile1-fail.hxml | 2 + .../Issue6622/compile1-fail.hxml.stderr | 3 + tests/misc/projects/Issue6699/Main.hx | 16 + .../misc/projects/Issue6699/compile-fail.hxml | 2 + .../Issue6699/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue6707/Main.hx | 7 + .../misc/projects/Issue6707/compile-fail.hxml | 2 + .../Issue6707/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue6714/Main.hx | 19 + .../misc/projects/Issue6714/compile-fail.hxml | 2 + .../Issue6714/compile-fail.hxml.stderr | 2 + tests/misc/projects/Issue6757/Test.hx | 12 + .../misc/projects/Issue6757/compile-fail.hxml | 2 + .../Issue6757/compile-fail.hxml.stderr | 4 + tests/misc/projects/Issue6765/Main.hx | 10 + .../misc/projects/Issue6765/compile-fail.hxml | 2 + .../Issue6765/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue6772/Main.hx | 9 + tests/misc/projects/Issue6772/compile.hxml | 2 + tests/misc/projects/Issue6780/Main.hx | 6 + tests/misc/projects/Issue6780/compile.hxml | 3 + .../Issue6780/double quotes/Double.hx | 1 + .../Issue6780/single quotes/Single.hx | 1 + tests/misc/projects/Issue6790/Main.hx | 24 + tests/misc/projects/Issue6790/Mismatch.hx | 8 + .../misc/projects/Issue6790/compile-fail.hxml | 3 + .../Issue6790/compile-fail.hxml.stderr | 2 + tests/misc/projects/Issue6790/compile.hxml | 3 + .../projects/Issue6790/compile.hxml.stderr | 29 + tests/misc/projects/Issue6826/Main.hx | 7 + .../misc/projects/Issue6826/compile-fail.hxml | 2 + .../Issue6826/compile-fail.hxml.stderr | 2 + tests/misc/projects/Issue6841/Main.hx | 13 + tests/misc/projects/Issue6841/Test.hx | 19 + tests/misc/projects/Issue6841/compile.hxml | 1 + tests/misc/projects/Issue6846/Main.hx | 12 + tests/misc/projects/Issue6846/compile.hxml | 1 + .../projects/Issue6846/compile.hxml.stderr | 1 + tests/misc/projects/Issue6878/Main.hx | 13 + tests/misc/projects/Issue6878/Main1.hx | 8 + .../misc/projects/Issue6878/compile-fail.hxml | 2 + .../Issue6878/compile-fail.hxml.stderr | 2 + .../projects/Issue6878/compile1-fail.hxml | 2 + .../Issue6878/compile1-fail.hxml.stderr | 2 + tests/misc/projects/Issue6903/Main.hx | 9 + .../misc/projects/Issue6903/compile-fail.hxml | 1 + .../Issue6903/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue6922/Test.hx | 5 + tests/misc/projects/Issue6922/compile.hxml | 2 + tests/misc/projects/Issue6950/Main.hx | 11 + .../misc/projects/Issue6950/compile-fail.hxml | 2 + .../Issue6950/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue6965/Main.hx | 8 + .../misc/projects/Issue6965/compile-fail.hxml | 2 + .../Issue6965/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue6992/Main.hx | 7 + tests/misc/projects/Issue6992/compile.hxml | 3 + tests/misc/projects/Issue7017/Main.hx | 5 + tests/misc/projects/Issue7017/compile.hxml | 2 + .../projects/Issue7017/compile.hxml.stderr | 3 + tests/misc/projects/Issue7039/Main.hx | 6 + .../misc/projects/Issue7039/compile-fail.hxml | 2 + .../Issue7039/compile-fail.hxml.stderr | 3 + tests/misc/projects/Issue7076/Main.hx | 9 + .../misc/projects/Issue7076/compile-fail.hxml | 2 + .../Issue7076/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue7096/Main.hx | 7 + tests/misc/projects/Issue7096/compile.hxml | 2 + .../projects/Issue7096/compile.hxml.stderr | 1 + tests/misc/projects/Issue7108/Main.hx | 12 + .../misc/projects/Issue7108/compile-fail.hxml | 1 + .../Issue7108/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue7210/compile.hxml | 1 + .../projects/Issue7210/compile.hxml.stderr | 1 + tests/misc/projects/Issue7210/macro/Utils.hx | 8 + tests/misc/projects/Issue7227/Main.hx | 16 + .../misc/projects/Issue7227/compile-fail.hxml | 2 + .../Issue7227/compile-fail.hxml.stderr | 3 + tests/misc/projects/Issue7333/Main.hx | 13 + .../misc/projects/Issue7333/compile-fail.hxml | 2 + .../Issue7333/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue7363/Main.hx | 25 + .../misc/projects/Issue7363/compile-fail.hxml | 1 + .../Issue7363/compile-fail.hxml.stderr | 2 + tests/misc/projects/Issue7453/Main.hx | 7 + tests/misc/projects/Issue7453/Main.macro.hx | 3 + tests/misc/projects/Issue7453/compile.hxml | 4 + tests/misc/projects/Issue7526/Main.hx | 20 + .../misc/projects/Issue7526/compile-fail.hxml | 2 + .../Issue7526/compile-fail.hxml.stderr | 4 + tests/misc/projects/Issue7614/Main.hx | 13 + .../misc/projects/Issue7614/compile-fail.hxml | 1 + .../Issue7614/compile-fail.hxml.stderr | 3 + tests/misc/projects/Issue7638/Main.hx | 15 + .../misc/projects/Issue7638/compile-fail.hxml | 1 + .../Issue7638/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue7655/Main.hx | 28 + tests/misc/projects/Issue7655/Mismatch.hx | 8 + .../misc/projects/Issue7655/compile-fail.hxml | 3 + .../Issue7655/compile-fail.hxml.stderr | 2 + tests/misc/projects/Issue7655/compile.hxml | 3 + .../projects/Issue7655/compile.hxml.stderr | 29 + tests/misc/projects/Issue7734/Main.hx | 7 + .../misc/projects/Issue7734/compile-fail.hxml | 2 + .../Issue7734/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue7747/Main.hx | 13 + .../misc/projects/Issue7747/compile-fail.hxml | 2 + .../Issue7747/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue7752/Main.hx | 9 + tests/misc/projects/Issue7752/Main2.hx | 9 + .../misc/projects/Issue7752/compile-fail.hxml | 2 + .../Issue7752/compile-fail.hxml.stderr | 1 + .../projects/Issue7752/compile2-fail.hxml | 2 + .../Issue7752/compile2-fail.hxml.stderr | 1 + tests/misc/projects/Issue7796/Main.hx | 4 + tests/misc/projects/Issue7796/compile.hxml | 4 + tests/misc/projects/Issue7796/glsl2agal.swc | Bin 0 -> 658672 bytes tests/misc/projects/Issue7824/Main.hx | 16 + .../misc/projects/Issue7824/compile-fail.hxml | 2 + .../Issue7824/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue7905/Main.hx | 25 + tests/misc/projects/Issue7905/compile.hxml | 1 + .../projects/Issue7905/compile.hxml.stderr | 1 + tests/misc/projects/Issue7920/Main.hx | 6 + .../misc/projects/Issue7920/compile-fail.hxml | 1 + .../Issue7920/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue7921/Main.hx | 16 + .../misc/projects/Issue7921/compile-fail.hxml | 2 + .../Issue7921/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue7935/Main.hx | 5 + tests/misc/projects/Issue7935/Main2.hx | 5 + tests/misc/projects/Issue7935/Main3.hx | 5 + .../misc/projects/Issue7935/compile-fail.hxml | 2 + .../Issue7935/compile-fail.hxml.stderr | 1 + .../projects/Issue7935/compile2-fail.hxml | 2 + .../Issue7935/compile2-fail.hxml.stderr | 1 + .../projects/Issue7935/compile3-fail.hxml | 2 + .../Issue7935/compile3-fail.hxml.stderr | 1 + tests/misc/projects/Issue7936/compile.hxml | 44 + tests/misc/projects/Issue7936/run.js | 11 + .../misc/projects/Issue7936/src/Closures1.hx | 21 + .../misc/projects/Issue7936/src/Closures2.hx | 16 + .../misc/projects/Issue7936/src/ObjectMap1.hx | 9 + .../misc/projects/Issue7936/src/ObjectMap2.hx | 10 + tests/misc/projects/Issue7997/Main.hx | 8 + .../misc/projects/Issue7997/compile-fail.hxml | 1 + .../Issue7997/compile-fail.hxml.stderr | 2 + tests/misc/projects/Issue8019/Macro.hx | 34 + tests/misc/projects/Issue8019/Macro2.hx | 21 + tests/misc/projects/Issue8019/Main.hx | 15 + .../misc/projects/Issue8019/compile-fail.hxml | 1 + .../Issue8019/compile-fail.hxml.stderr | 18 + .../projects/Issue8019/compile2-fail.hxml | 1 + .../Issue8019/compile2-fail.hxml.stderr | 2 + .../projects/Issue8019/compile3-fail.hxml | 1 + .../Issue8019/compile3-fail.hxml.stderr | 3 + tests/misc/projects/Issue8088/Fail.hx | 14 + tests/misc/projects/Issue8088/Success.hx | 27 + .../misc/projects/Issue8088/compile-fail.hxml | 1 + .../Issue8088/compile-fail.hxml.stderr | 6 + tests/misc/projects/Issue8088/compile.hxml | 2 + tests/misc/projects/Issue8119/Main.hx | 5 + tests/misc/projects/Issue8119/Main2.hx | 5 + .../misc/projects/Issue8119/compile-fail.hxml | 1 + .../Issue8119/compile-fail.hxml.stderr | 1 + .../projects/Issue8119/compile2-fail.hxml | 1 + .../Issue8119/compile2-fail.hxml.stderr | 1 + tests/misc/projects/Issue8159/Macro.macro.hx | 5 + tests/misc/projects/Issue8159/Main.hx | 4 + tests/misc/projects/Issue8159/compile.hxml | 1 + tests/misc/projects/Issue8173/Main.hx | 12 + .../misc/projects/Issue8173/compile-fail.hxml | 1 + .../Issue8173/compile-fail.hxml.stderr | 2 + tests/misc/projects/Issue8191/U1.hx | 3 + tests/misc/projects/Issue8191/U2.hx | 3 + tests/misc/projects/Issue8191/U3.hx | 3 + tests/misc/projects/Issue8191/U4.hx | 3 + tests/misc/projects/Issue8191/U5.hx | 3 + tests/misc/projects/Issue8191/X1.hx | 3 + tests/misc/projects/Issue8191/X2.hx | 3 + .../misc/projects/Issue8191/compile-fail.hxml | 1 + .../Issue8191/compile-fail.hxml.stderr | 1 + .../projects/Issue8191/compile2-fail.hxml | 1 + .../Issue8191/compile2-fail.hxml.stderr | 1 + .../projects/Issue8191/compile3-fail.hxml | 1 + .../Issue8191/compile3-fail.hxml.stderr | 1 + .../projects/Issue8191/compile4-fail.hxml | 1 + .../Issue8191/compile4-fail.hxml.stderr | 1 + .../projects/Issue8191/compile5-fail.hxml | 1 + .../Issue8191/compile5-fail.hxml.stderr | 1 + .../projects/Issue8191/compile6-fail.hxml | 1 + .../Issue8191/compile6-fail.hxml.stderr | 1 + .../projects/Issue8191/compile7-fail.hxml | 1 + .../Issue8191/compile7-fail.hxml.stderr | 1 + .../misc/projects/Issue8202/Builder.macro.hx | 12 + tests/misc/projects/Issue8202/Main.hx | 6 + tests/misc/projects/Issue8202/compile.hxml | 1 + tests/misc/projects/Issue8205/Main.hx | 6 + .../misc/projects/Issue8205/compile-fail.hxml | 2 + .../Issue8205/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8219/Main.hx | 8 + .../misc/projects/Issue8219/compile-fail.hxml | 2 + .../Issue8219/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8231/Main.hx | 15 + tests/misc/projects/Issue8231/compile.hxml | 5 + tests/misc/projects/Issue8241/Main.hx | 8 + .../misc/projects/Issue8241/compile-fail.hxml | 2 + .../Issue8241/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8258/Main.hx | 5 + .../misc/projects/Issue8258/compile-fail.hxml | 1 + .../Issue8258/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8277/Main1.hx | 22 + tests/misc/projects/Issue8277/Main2.hx | 17 + .../projects/Issue8277/compile1-fail.hxml | 1 + .../Issue8277/compile1-fail.hxml.stderr | 1 + .../projects/Issue8277/compile2-fail.hxml | 1 + .../Issue8277/compile2-fail.hxml.stderr | 1 + tests/misc/projects/Issue8283/Main.hx | 16 + .../misc/projects/Issue8283/compile-fail.hxml | 1 + .../Issue8283/compile-fail.hxml.stderr | 4 + tests/misc/projects/Issue8303/Main.hx | 13 + tests/misc/projects/Issue8303/MainCatch.hx | 19 + .../misc/projects/Issue8303/compile-fail.hxml | 3 + .../Issue8303/compile-fail.hxml.stderr | 6 + tests/misc/projects/Issue8303/compile.hxml | 3 + tests/misc/projects/Issue8336/Main.hx | 16 + .../misc/projects/Issue8336/compile-fail.hxml | 1 + .../Issue8336/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8354/FailFrom.hx | 10 + tests/misc/projects/Issue8354/FailTo.hx | 10 + tests/misc/projects/Issue8354/Success.hx | 10 + tests/misc/projects/Issue8354/compile.hxml | 1 + .../projects/Issue8354/compile1-fail.hxml | 1 + .../Issue8354/compile1-fail.hxml.stderr | 1 + .../projects/Issue8354/compile2-fail.hxml | 1 + .../Issue8354/compile2-fail.hxml.stderr | 1 + tests/misc/projects/Issue8364/Main.hx | 15 + tests/misc/projects/Issue8364/compile.hxml | 4 + tests/misc/projects/Issue8393/Main.hx | 9 + tests/misc/projects/Issue8393/Main2.hx | 11 + .../misc/projects/Issue8393/compile-fail.hxml | 1 + .../Issue8393/compile-fail.hxml.stderr | 1 + .../Issue8393/compile2-fail.hxml.disabled | 2 + .../Issue8393/compile2-fail.hxml.stderr | 1 + tests/misc/projects/Issue8404/Main.hx | 13 + tests/misc/projects/Issue8404/compile.hxml | 1 + tests/misc/projects/Issue8466/Main.hx | 7 + tests/misc/projects/Issue8466/compile.hxml | 1 + tests/misc/projects/Issue8471/Macro.hx | 27 + tests/misc/projects/Issue8471/Macro2.hx | 35 + tests/misc/projects/Issue8471/compile.hxml | 2 + .../projects/Issue8471/compile.hxml.stderr | 3 + tests/misc/projects/Issue8471/compile2.hxml | 2 + .../projects/Issue8471/compile2.hxml.stderr | 5 + tests/misc/projects/Issue8488/Main.hx | 9 + .../misc/projects/Issue8488/compile-fail.hxml | 1 + .../Issue8488/compile-fail.hxml.stderr | 2 + tests/misc/projects/Issue8517/Fail.hx | 7 + tests/misc/projects/Issue8517/Foo.hx | 4 + tests/misc/projects/Issue8517/Macro.hx | 4 + tests/misc/projects/Issue8517/Main.hx | 5 + .../misc/projects/Issue8517/compile-fail.hxml | 1 + .../Issue8517/compile-fail.hxml.stderr | 4 + tests/misc/projects/Issue8517/compile.hxml | 1 + tests/misc/projects/Issue8527/Main.hx | 3 + .../misc/projects/Issue8527/compile-fail.hxml | 1 + .../Issue8527/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8530/Main.hx | 13 + tests/misc/projects/Issue8530/compile.hxml | 1 + tests/misc/projects/Issue8533/Main.hx | 36 + tests/misc/projects/Issue8533/Main.hx.txt | 36 + tests/misc/projects/Issue8533/compile.hxml | 1 + tests/misc/projects/Issue8534/Main.hx | 5 + .../misc/projects/Issue8534/compile-fail.hxml | 1 + .../Issue8534/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8550/Fail.hx | 7 + tests/misc/projects/Issue8550/Success.hx | 5 + .../misc/projects/Issue8550/compile-fail.hxml | 1 + .../Issue8550/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8550/compile.hxml | 1 + tests/misc/projects/Issue8551/Main.hx | 9 + .../misc/projects/Issue8551/compile-fail.hxml | 1 + .../Issue8551/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8565/Main.hx | 6 + .../misc/projects/Issue8565/compile-fail.hxml | 1 + .../Issue8565/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8567/compile.hxml | 3 + tests/misc/projects/Issue8567/src/Main.hx | 4 + tests/misc/projects/Issue8567/src/test.txt | 0 tests/misc/projects/Issue8579/Main.hx | 14 + .../misc/projects/Issue8579/compile-fail.hxml | 1 + .../Issue8579/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8608/Main.hx | 11 + .../misc/projects/Issue8608/compile-fail.hxml | 1 + .../Issue8608/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8618/Main.hx | 6 + tests/misc/projects/Issue8618/Main2.hx | 5 + tests/misc/projects/Issue8618/Main3.hx | 5 + tests/misc/projects/Issue8618/Main4.hx | 5 + .../misc/projects/Issue8618/NoClosureClass.hx | 6 + tests/misc/projects/Issue8618/NormalClass.hx | 6 + .../misc/projects/Issue8618/compile-fail.hxml | 1 + .../Issue8618/compile-fail.hxml.stderr | 2 + .../projects/Issue8618/compile2-fail.hxml | 1 + .../Issue8618/compile2-fail.hxml.stderr | 2 + .../projects/Issue8618/compile3-fail.hxml | 1 + .../Issue8618/compile3-fail.hxml.stderr | 2 + .../projects/Issue8618/compile4-fail.hxml | 1 + .../Issue8618/compile4-fail.hxml.stderr | 2 + tests/misc/projects/Issue8650/Main.hx | 6 + .../misc/projects/Issue8650/compile-fail.hxml | 2 + .../Issue8650/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8654/Arr.hx | 9 + tests/misc/projects/Issue8654/Check.hx | 50 + tests/misc/projects/Issue8654/compile.hxml | 2 + tests/misc/projects/Issue8677/Main.hx | 6 + .../misc/projects/Issue8677/compile-fail.hxml | 1 + .../Issue8677/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8697/Main.hx | 1 + tests/misc/projects/Issue8697/Main2.hx | 3 + .../misc/projects/Issue8697/compile-fail.hxml | 1 + .../Issue8697/compile-fail.hxml.stderr | 1 + .../projects/Issue8697/compile2-fail.hxml | 1 + .../Issue8697/compile2-fail.hxml.stderr | 1 + tests/misc/projects/Issue8704/Main.hx | 10 + .../misc/projects/Issue8704/compile-fail.hxml | 1 + .../Issue8704/compile-fail.hxml.stderr | 2 + tests/misc/projects/Issue8705/Main.hx | 12 + tests/misc/projects/Issue8705/compile.hxml | 1 + tests/misc/projects/Issue8750/Main.hx | 18 + tests/misc/projects/Issue8750/compile.hxml | 1 + tests/misc/projects/Issue8752/Main.hx | 11 + .../misc/projects/Issue8752/compile-fail.hxml | 1 + .../Issue8752/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8765/Main.hx | 7 + .../misc/projects/Issue8765/compile-fail.hxml | 1 + .../Issue8765/compile-fail.hxml.stderr | 1 + tests/misc/projects/Issue8790/Main.hx | 18 + .../misc/projects/Issue8790/compile-fail.hxml | 1 + .../Issue8790/compile-fail.hxml.stderr | 1 + tests/misc/projects/_semver/InvalidVersion.hx | 5 + tests/misc/projects/_semver/Main.hx | 38 + tests/misc/projects/_semver/compile-fail.hxml | 1 + .../projects/_semver/compile-fail.hxml.stderr | 1 + tests/misc/projects/_semver/compile.hxml | 1 + .../projects/display-package/compile1.hxml | 2 +- .../projects/display-package/compile2.hxml | 2 +- tests/misc/projects/display-type/compile.hxml | 2 +- .../projects/display-type/compile.hxml.stderr | 2 +- tests/misc/projects/es6/A.hx | 9 + tests/misc/projects/es6/B.hx | 10 + tests/misc/projects/es6/C.hx | 7 + tests/misc/projects/es6/D.hx | 9 + tests/misc/projects/es6/compile-a-fail.hxml | 3 + .../projects/es6/compile-a-fail.hxml.stderr | 1 + tests/misc/projects/es6/compile-b-fail.hxml | 3 + .../projects/es6/compile-b-fail.hxml.stderr | 1 + tests/misc/projects/es6/compile-c-fail.hxml | 3 + .../projects/es6/compile-c-fail.hxml.stderr | 1 + tests/misc/projects/es6/compile-d-fail.hxml | 3 + .../projects/es6/compile-d-fail.hxml.stderr | 1 + tests/misc/projects/issue5002/Macro.hx | 18 + tests/misc/projects/issue5002/Main.hx | 4 + tests/misc/projects/issue5002/Main2.hx | 107 + tests/misc/projects/issue5002/Main3.hx | 22 + tests/misc/projects/issue5002/Main4.hx | 13 + .../misc/projects/issue5002/compile-fail.hxml | 1 + .../issue5002/compile-fail.hxml.stderr | 4 + .../projects/issue5002/compile2-fail.hxml | 1 + .../issue5002/compile2-fail.hxml.stderr | 18 + .../projects/issue5002/compile3-fail.hxml | 1 + .../issue5002/compile3-fail.hxml.stderr | 6 + .../projects/issue5002/compile4-fail.hxml | 1 + .../issue5002/compile4-fail.hxml.stderr | 4 + .../{ => python}/projects/Issue4218/Main.hx | 0 .../misc/python/projects/Issue4218/build.hxml | 3 + tests/misc/python/projects/Issue8542/Main.hx | 9 + .../misc/python/projects/Issue8542/build.hxml | 3 + tests/misc/{ => python}/pythonImport/Main.hx | 18 +- tests/misc/python/pythonImport/compile.hxml | 3 + .../pythonImport/native_python/__init__.py | 0 .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 160 bytes .../__pycache__/__init__.pypy3-24.pyc | Bin 0 -> 168 bytes .../__pycache__/sample.cpython-36.pyc | Bin 0 -> 755 bytes .../__pycache__/sample.pypy3-24.pyc | Bin 0 -> 1220 bytes .../pythonImport/native_python/sample.py | 0 tests/misc/python/run.hxml | 2 + tests/misc/pythonImport/compile.hxml | 2 - tests/misc/src/Main.hx | 55 +- tests/misc/weakmap/compile-cs.hxml | 4 +- tests/misc/weakmap/compile-java.hxml | 2 +- tests/nullsafety/src/Validator.hx | 89 + tests/nullsafety/src/cases/TestAbstract.hx | 8 + tests/nullsafety/src/cases/TestLoose.hx | 102 + .../src/cases/TestSafeFieldInUnsafeClass.hx | 9 + tests/nullsafety/src/cases/TestStrict.hx | 942 ++ tests/nullsafety/test-js-es6.hxml | 3 + tests/nullsafety/test.hxml | 10 + tests/optimization/run.hxml | 8 +- tests/optimization/src/Macro.hx | 4 +- tests/optimization/src/Test.hx | 26 +- tests/optimization/src/TestAnalyzer.hx | 2 +- tests/optimization/src/TestJs.hx | 131 +- tests/optimization/src/TestLocalDce.hx | 123 +- tests/optimization/src/issues/Issue2236.hx | 3 +- tests/optimization/src/issues/Issue3524.hx | 25 + tests/optimization/src/issues/Issue3878.hx | 11 + tests/optimization/src/issues/Issue3881.hx | 28 + tests/optimization/src/issues/Issue4690.hx | 34 +- tests/optimization/src/issues/Issue5436.hx | 20 + tests/optimization/src/issues/Issue5477.hx | 2 +- tests/optimization/src/issues/Issue5509.hx | 2 +- tests/optimization/src/issues/Issue5582.hx | 16 + tests/optimization/src/issues/Issue5646.hx | 35 + tests/optimization/src/issues/Issue5745.hx | 6 +- tests/optimization/src/issues/Issue5855.hx | 6 +- tests/optimization/src/issues/Issue6015.hx | 2 +- tests/optimization/src/issues/Issue6047.hx | 23 + tests/optimization/src/issues/Issue6198.hx | 24 + tests/optimization/src/issues/Issue6229.hx | 27 + tests/optimization/src/issues/Issue6283.hx | 26 + tests/optimization/src/issues/Issue6296.hx | 17 + tests/optimization/src/issues/Issue6302.hx | 9 + tests/optimization/src/issues/Issue6338.hx | 27 + tests/optimization/src/issues/Issue6409.hx | 21 + tests/optimization/src/issues/Issue6715.hx | 91 + tests/optimization/src/issues/Issue7113.hx | 19 + tests/optimization/src/issues/Issue7704.hx | 25 + tests/optimization/src/issues/Issue8072.hx | 18 + tests/optimization/src/issues/Issue8128.hx | 15 + tests/optimization/src/issues/Issue8226.hx | 24 + tests/optimization/src/issues/Issue8770.hx | 20 + tests/optimization/src/issues/IssueInline.hx | 122 + tests/runci/Config.hx | 46 + tests/runci/Deployment.hx | 305 + tests/{ => runci}/Indexer.hx | 11 + tests/runci/Linux.hx | 22 + tests/runci/System.hx | 166 + tests/runci/TestTarget.hx | 19 + tests/runci/targets/As3.hx | 15 + tests/runci/targets/Cpp.hx | 84 + tests/runci/targets/Cs.hx | 92 + tests/runci/targets/Flash.hx | 167 + tests/runci/targets/Hl.hx | 80 + tests/runci/targets/Java.hx | 57 + tests/runci/targets/Js.hx | 113 + tests/runci/targets/Jvm.hx | 24 + tests/runci/targets/Lua.hx | 79 + tests/runci/targets/Macro.hx | 40 + tests/runci/targets/Neko.hx | 20 + tests/runci/targets/Php.hx | 80 + tests/runci/targets/Python.hx | 83 + tests/server/.vscode/launch.json | 16 + tests/server/.vscode/settings.json | 12 + tests/server/.vscode/tasks.json | 13 + tests/server/build.hxml | 7 + tests/server/src/AsyncMacro.hx | 53 + tests/server/src/DisplayTests.hx | 248 + tests/server/src/HaxeServerTestCase.hx | 189 + tests/server/src/Main.hx | 273 + tests/server/src/ReplaceRanges.hx | 204 + tests/server/src/Vfs.hx | 69 + tests/server/test/templates/BrokenSyntax.hx | 6 + tests/server/test/templates/BuildMacro.hx | 5 + tests/server/test/templates/BuiltClass.hx | 4 + tests/server/test/templates/Dependency.hx | 5 + tests/server/test/templates/Empty.hx | 3 + .../server/test/templates/GlobalBuildMacro.hx | 11 + tests/server/test/templates/HelloJvm.hx | 5 + tests/server/test/templates/HelloWorld.hx | 5 + tests/server/test/templates/Macro.hx | 8 + tests/server/test/templates/MacroMain.hx | 5 + .../test/templates/MutuallyDependent1.hx | 3 + .../test/templates/MutuallyDependent2.hx | 3 + tests/server/test/templates/Vector.hx | 14 + tests/server/test/templates/VectorInliner.hx | 5 + tests/server/test/templates/WithDependency.hx | 5 + .../test/templates/issues/Issue8368/Main.hx | 5 + .../templates/issues/Issue8368/MyMacro.hx | 8 + .../test/templates/issues/Issue8368/Type1.hx | 5 + .../test/templates/issues/Issue8368/Type2.hx | 5 + .../test/templates/issues/Issue8631/Init.hx | 5 + .../test/templates/issues/Issue8631/Macro.hx | 15 + .../test/templates/issues/Issue8631/Main.hx | 3 + .../test/templates/issues/Issue8738/Base.hx | 5 + .../test/templates/issues/Issue8738/Main1.hx | 9 + .../test/templates/issues/Issue8738/Main2.hx | 10 + .../test/templates/issues/Issue8738/Main3.hx | 6 + tests/sourcemaps/run.hxml | 4 + tests/sourcemaps/src/Test.hx | 87 + tests/sourcemaps/src/Validator.hx | 163 + tests/sourcemaps/src/cases/Trace.hx | 7 + tests/sourcemaps/src/cases/import.hx | 1 + tests/sourcemaps/src/validation/Exception.hx | 17 + tests/sourcemaps/src/validation/Lines.hx | 13 + tests/sourcemaps/src/validation/Target.hx | 6 + .../src/validation/ValidationError.hx | 17 + .../src/validation/ValidationReport.hx | 10 + tests/sys/compile-cpp.hxml | 11 +- tests/sys/compile-cs.hxml | 11 +- tests/sys/compile-each.hxml | 12 +- tests/sys/compile-hl.hxml | 13 +- tests/sys/compile-java.hxml | 11 +- tests/sys/compile-jvm.hxml | 22 + tests/sys/compile-lua.hxml | 11 +- tests/sys/compile-macro.hxml | 2 +- tests/sys/compile-neko.hxml | 9 +- tests/sys/compile-php.hxml | 13 +- tests/sys/compile-php7.hxml | 16 - tests/sys/compile-python.hxml | 13 +- tests/sys/compile.hxml | 1 - tests/sys/genTestRes.py | 82 + tests/sys/run.hxml | 5 +- tests/sys/src/ExitCode.hx | 14 +- tests/sys/src/FileNames.hx | 7 +- tests/sys/src/Main.hx | 34 +- tests/sys/src/TestArguments.hx | 42 +- tests/sys/src/TestCommandBase.hx | 49 +- tests/sys/src/TestFileSystem.hx | 80 +- tests/sys/src/TestSys.hx | 36 +- tests/sys/src/TestUnicode.hx | 425 + tests/sys/src/UnicodeSequences.hx | 139 + tests/sys/src/UtilityProcess.hx | 152 + tests/sys/src/io/TestFile.hx | 34 + tests/sys/src/io/TestFileInput.hx | 222 +- tests/sys/src/net/TestSocket.hx | 27 + tests/threads/build.hxml | 4 + tests/threads/res/tree1.txt | 29 + tests/threads/src/Main.hx | 13 + tests/threads/src/cases/DequeBrackets.hx | 85 + tests/threads/src/cases/Issue3767.hx | 51 + tests/threads/src/cases/Issue4878.hx | 32 + tests/threads/src/cases/Issue8063.hx | 19 + .../unit => threads/src/cases}/TestThreads.hx | 49 +- tests/threads/src/cases/WeirdTreeSum.hx | 180 + tests/threads/src/import.hx | 5 + tests/unit/.vscode/tasks.json | 13 + tests/unit/compile-as3.hxml | 9 +- tests/unit/compile-cpp.hxml | 3 +- tests/unit/compile-cppia-host.hxml | 9 +- tests/unit/compile-cppia.hxml | 3 +- tests/unit/compile-cs-travis.hxml | 9 +- tests/unit/compile-cs-unsafe-travis.hxml | 6 +- tests/unit/compile-cs-unsafe.hxml | 4 +- tests/unit/compile-cs.hxml | 4 +- tests/unit/compile-each.hxml | 19 +- tests/unit/compile-exe-runner.hxml | 4 +- tests/unit/compile-flash9.hxml | 12 +- tests/unit/compile-hl.hxml | 5 +- tests/unit/compile-java-runner.hxml | 4 +- tests/unit/compile-java.hxml | 9 +- tests/unit/compile-js.hxml | 7 - tests/unit/compile-jvm.hxml | 10 + tests/unit/compile-lua.hxml | 2 +- tests/unit/compile-macro.hxml | 2 +- tests/unit/compile-neko.hxml | 3 +- tests/unit/compile-php.hxml | 5 +- tests/unit/compile-php7.hxml | 5 - tests/unit/compile-python.hxml | 2 +- tests/unit/compile-remoting.hxml | 4 +- tests/unit/compile-saucelabs-runner.hxml | 6 +- tests/unit/compile.hxml | 2 +- tests/unit/native_swf/Lib.as | 17 + tests/unit/native_swf/Lib2.as | 4 + tests/unit/native_swf/NsCls.as | 15 + tests/unit/native_swf/PropClass.as | 13 + tests/unit/native_swf/PropIface.as | 6 + tests/unit/native_swf/ns1.as | 3 + tests/unit/native_swf/ns2.as | 3 + tests/unit/serializedValues.txt | 1 + tests/unit/src/Macro.hx | 12 + tests/unit/src/RootEnum.hx | 3 + tests/unit/src/RunSauceLabs.hx | 60 +- tests/unit/src/RunSerializerOutput.hx | 51 + tests/unit/src/scripthost/Issue8502.hx | 42 + tests/unit/src/unit/HelperMacros.hx | 73 +- tests/unit/src/unit/MyAbstract.hx | 5 +- tests/unit/src/unit/MyClass.hx | 37 +- tests/unit/src/unit/MySpodClass.hx | 110 - tests/unit/src/unit/Test.hx | 251 +- tests/unit/src/unit/TestArrowFunctions.hx | 149 + tests/unit/src/unit/TestBasetypes.hx | 8 +- tests/unit/src/unit/TestBytes.hx | 11 +- tests/unit/src/unit/TestCSharp.hx | 2 +- tests/unit/src/unit/TestCasts.hx | 41 + tests/unit/src/unit/TestDCE.hx | 32 +- tests/unit/src/unit/TestFieldVariance.hx | 124 + tests/unit/src/unit/TestGeneric.hx | 41 +- tests/unit/src/unit/TestHttp.hx | 87 + tests/unit/src/unit/TestIO.hx | 4 +- tests/unit/src/unit/TestInt64.hx | 29 +- tests/unit/src/unit/TestInterface.hx | 98 + tests/unit/src/unit/TestJQuery.hx | 39 - tests/unit/src/unit/TestJava.hx | 10 +- tests/unit/src/unit/TestJson.hx | 29 +- tests/unit/src/unit/TestKeyValueIterator.hx | 110 + tests/unit/src/unit/TestMacro.hx | 70 + tests/unit/src/unit/TestMain.hx | 112 +- tests/unit/src/unit/TestMapComprehension.hx | 36 + tests/unit/src/unit/TestMatch.hx | 16 +- tests/unit/src/unit/TestMisc.hx | 30 +- tests/unit/src/unit/TestNaN.hx | 49 + tests/unit/src/unit/TestNull.hx | 10 + tests/unit/src/unit/TestOps.hx | 3 + tests/unit/src/unit/TestPhp.hx | 213 +- tests/unit/src/unit/TestPython.hx | 32 +- tests/unit/src/unit/TestReflect.hx | 25 +- tests/unit/src/unit/TestRemoting.hx | 2 - tests/unit/src/unit/TestResource.hx | 6 +- tests/unit/src/unit/TestSerialize.hx | 3 +- .../src/unit/TestSerializerCrossTarget.hx | 108 + tests/unit/src/unit/TestSyntaxModule.hx | 56 + tests/unit/src/unit/TestType.hx | 19 +- tests/unit/src/unit/TestXML.hx | 33 +- tests/unit/src/unit/UnitBuilder.hx | 55 +- tests/unit/src/unit/hxcpp_issues/Issue192.hx | 4 +- tests/unit/src/unit/issues/Issue1810.hx | 2 +- tests/unit/src/unit/issues/Issue1827.hx | 4 +- tests/unit/src/unit/issues/Issue2085.hx | 2 +- tests/unit/src/unit/issues/Issue2086.hx | 3 + tests/unit/src/unit/issues/Issue2152.hx | 15 - tests/unit/src/unit/issues/Issue2224.hx | 2 + tests/unit/src/unit/issues/Issue2236.hx | 1 + tests/unit/src/unit/issues/Issue2380.hx | 2 +- .../src/unit/issues/Issue2508.hx.disabled | 20 - tests/unit/src/unit/issues/Issue2581.hx | 1 + tests/unit/src/unit/issues/Issue2633.hx | 2 +- tests/unit/src/unit/issues/Issue2648.hx | 1 + tests/unit/src/unit/issues/Issue2688.hx | 36 + tests/unit/src/unit/issues/Issue2750.hx | 5 +- tests/unit/src/unit/issues/Issue2754.hx | 3 - tests/unit/src/unit/issues/Issue2785.hx | 2 +- tests/unit/src/unit/issues/Issue2786.hx | 9 +- tests/unit/src/unit/issues/Issue2813.hx | 2 +- tests/unit/src/unit/issues/Issue2861.hx | 2 +- tests/unit/src/unit/issues/Issue2874.hx | 4 +- tests/unit/src/unit/issues/Issue2881.hx | 1 + tests/unit/src/unit/issues/Issue2914.hx | 8 +- tests/unit/src/unit/issues/Issue2939.hx | 3 +- tests/unit/src/unit/issues/Issue2951.hx | 3 +- tests/unit/src/unit/issues/Issue2957.hx | 1 + tests/unit/src/unit/issues/Issue2958.hx | 9 +- tests/unit/src/unit/issues/Issue2960.hx | 1 + tests/unit/src/unit/issues/Issue2980.hx | 1 + tests/unit/src/unit/issues/Issue2989.hx | 1 + tests/unit/src/unit/issues/Issue3005.hx | 1 + tests/unit/src/unit/issues/Issue3008.hx | 1 + tests/unit/src/unit/issues/Issue3024.hx | 1 + tests/unit/src/unit/issues/Issue3031.hx | 2 +- tests/unit/src/unit/issues/Issue3063.hx | 6 +- tests/unit/src/unit/issues/Issue3084.hx | 7 +- tests/unit/src/unit/issues/Issue3090.hx | 1 + tests/unit/src/unit/issues/Issue3110.hx | 2 + tests/unit/src/unit/issues/Issue3118.hx | 3 +- tests/unit/src/unit/issues/Issue3132.hx | 1 + tests/unit/src/unit/issues/Issue3133.hx | 1 + tests/unit/src/unit/issues/Issue3138.hx | 3 +- tests/unit/src/unit/issues/Issue3150.hx | 2 +- tests/unit/src/unit/issues/Issue3181.hx | 19 +- tests/unit/src/unit/issues/Issue3198.hx | 7 + tests/unit/src/unit/issues/Issue3280.hx | 2 +- tests/unit/src/unit/issues/Issue3345.hx | 26 +- tests/unit/src/unit/issues/Issue3348.hx | 8 +- tests/unit/src/unit/issues/Issue3383.hx | 1 + tests/unit/src/unit/issues/Issue3388.hx | 10 +- tests/unit/src/unit/issues/Issue3390.hx | 1 + tests/unit/src/unit/issues/Issue3400.hx | 1 + tests/unit/src/unit/issues/Issue3403.hx | 10 +- tests/unit/src/unit/issues/Issue3451.hx | 4 +- tests/unit/src/unit/issues/Issue3460.hx | 2 +- tests/unit/src/unit/issues/Issue3480.hx | 1 + tests/unit/src/unit/issues/Issue3486.hx | 3 + tests/unit/src/unit/issues/Issue3499.hx | 4 +- tests/unit/src/unit/issues/Issue3528.hx | 1 + tests/unit/src/unit/issues/Issue3539.hx | 21 + tests/unit/src/unit/issues/Issue3545.hx | 4 +- tests/unit/src/unit/issues/Issue3547.hx | 1 + tests/unit/src/unit/issues/Issue3557.hx | 26 - tests/unit/src/unit/issues/Issue3585.hx | 2 +- tests/unit/src/unit/issues/Issue3592.hx | 2 +- tests/unit/src/unit/issues/Issue3615.hx | 2 +- tests/unit/src/unit/issues/Issue3616.hx | 2 +- tests/unit/src/unit/issues/Issue3639.hx | 1 + tests/unit/src/unit/issues/Issue3649.hx | 3 +- tests/unit/src/unit/issues/Issue3665.hx | 3 +- tests/unit/src/unit/issues/Issue3713.hx | 1 + tests/unit/src/unit/issues/Issue3717.hx | 3 +- tests/unit/src/unit/issues/Issue3767.hx | 50 - tests/unit/src/unit/issues/Issue3771.hx | 4 +- tests/unit/src/unit/issues/Issue3777.hx | 3 +- tests/unit/src/unit/issues/Issue3781.hx | 1 + tests/unit/src/unit/issues/Issue3792.hx | 13 + tests/unit/src/unit/issues/Issue3804.hx | 1 + tests/unit/src/unit/issues/Issue3826.hx | 67 + tests/unit/src/unit/issues/Issue3844.hx | 1 + tests/unit/src/unit/issues/Issue3846.hx | 6 +- tests/unit/src/unit/issues/Issue3894.hx | 1 + tests/unit/src/unit/issues/Issue3935.hx | 2 + tests/unit/src/unit/issues/Issue3949.hx | 40 + tests/unit/src/unit/issues/Issue3979.hx | 4 +- tests/unit/src/unit/issues/Issue4051.hx | 4 +- tests/unit/src/unit/issues/Issue4076.hx | 1 + tests/unit/src/unit/issues/Issue4086.hx | 1 + tests/unit/src/unit/issues/Issue4103.hx | 3 +- tests/unit/src/unit/issues/Issue4122.hx | 3 +- tests/unit/src/unit/issues/Issue4138.hx | 37 - tests/unit/src/unit/issues/Issue4149.hx | 1 + tests/unit/src/unit/issues/Issue4196.hx | 2 +- .../src/unit/issues/Issue4203.hx.disabled | 29 - tests/unit/src/unit/issues/Issue4222.hx | 1 + tests/unit/src/unit/issues/Issue4232.hx | 4 +- tests/unit/src/unit/issues/Issue4246.hx | 1 + tests/unit/src/unit/issues/Issue4277.hx | 2 +- tests/unit/src/unit/issues/Issue4287.hx | 16 + tests/unit/src/unit/issues/Issue4310.hx | 1 + tests/unit/src/unit/issues/Issue4312.hx | 2 +- tests/unit/src/unit/issues/Issue4322.hx | 2 +- .../{Issue4327.hx.disabled => Issue4327.hx} | 0 tests/unit/src/unit/issues/Issue4329.hx | 1 + tests/unit/src/unit/issues/Issue4343.hx | 1 + tests/unit/src/unit/issues/Issue4397.hx | 1 + tests/unit/src/unit/issues/Issue4457.hx | 1 + tests/unit/src/unit/issues/Issue4481.hx | 21 + tests/unit/src/unit/issues/Issue4501.hx | 1 + .../issues/{Issue4581.hx => Issue4581.hx.wtf} | 0 tests/unit/src/unit/issues/Issue4591.hx | 1 + tests/unit/src/unit/issues/Issue4639.hx | 11 + tests/unit/src/unit/issues/Issue4644.hx | 3 +- tests/unit/src/unit/issues/Issue4649.hx | 14 + tests/unit/src/unit/issues/Issue4672.hx | 1 + tests/unit/src/unit/issues/Issue4677.hx | 2 +- tests/unit/src/unit/issues/Issue4695.hx | 6 +- tests/unit/src/unit/issues/Issue4703.hx | 1 + tests/unit/src/unit/issues/Issue4705.hx | 19 + tests/unit/src/unit/issues/Issue4751.hx | 2 + tests/unit/src/unit/issues/Issue4799.hx | 29 + tests/unit/src/unit/issues/Issue4819.hx | 6 +- tests/unit/src/unit/issues/Issue4843.hx | 1 + tests/unit/src/unit/issues/Issue4862.hx | 2 +- tests/unit/src/unit/issues/Issue4867.hx | 3 +- tests/unit/src/unit/issues/Issue4878.hx | 24 - tests/unit/src/unit/issues/Issue4886.hx | 2 +- tests/unit/src/unit/issues/Issue4904.hx | 3 +- tests/unit/src/unit/issues/Issue4918.hx | 1 + tests/unit/src/unit/issues/Issue4940.hx | 3 +- tests/unit/src/unit/issues/Issue4949.hx | 3 +- tests/unit/src/unit/issues/Issue4968.hx | 17 + tests/unit/src/unit/issues/Issue4973.hx | 8 +- tests/unit/src/unit/issues/Issue4986.hx | 1 + tests/unit/src/unit/issues/Issue4987.hx | 3 +- tests/unit/src/unit/issues/Issue4997.hx | 1 + tests/unit/src/unit/issues/Issue5009.hx | 10 + tests/unit/src/unit/issues/Issue5016.hx | 4 +- tests/unit/src/unit/issues/Issue5025.hx | 2 +- tests/unit/src/unit/issues/Issue5027.hx | 1 + tests/unit/src/unit/issues/Issue5031.hx | 1 + tests/unit/src/unit/issues/Issue5039.hx | 51 + tests/unit/src/unit/issues/Issue5073.hx | 3 +- tests/unit/src/unit/issues/Issue5078.hx | 2 + tests/unit/src/unit/issues/Issue5108.hx | 3 +- tests/unit/src/unit/issues/Issue5155.hx | 13 + tests/unit/src/unit/issues/Issue5160.hx | 9 + tests/unit/src/unit/issues/Issue5168.hx | 8 + tests/unit/src/unit/issues/Issue5179.hx | 5 +- tests/unit/src/unit/issues/Issue5255.hx | 7 + tests/unit/src/unit/issues/Issue5270.hx | 8 +- tests/unit/src/unit/issues/Issue5289.hx | 9 + tests/unit/src/unit/issues/Issue5303.hx | 1 + tests/unit/src/unit/issues/Issue5323.hx | 4 +- tests/unit/src/unit/issues/Issue5362.hx | 14 + tests/unit/src/unit/issues/Issue5384.hx | 21 + tests/unit/src/unit/issues/Issue5392.hx | 2 +- tests/unit/src/unit/issues/Issue5399.hx | 19 + tests/unit/src/unit/issues/Issue5432.hx | 2 +- tests/unit/src/unit/issues/Issue5449.hx | 19 + tests/unit/src/unit/issues/Issue5486.hx | 32 + tests/unit/src/unit/issues/Issue5493.hx | 12 + tests/unit/src/unit/issues/Issue5505.hx | 4 +- tests/unit/src/unit/issues/Issue5543.hx | 1 + tests/unit/src/unit/issues/Issue5544.hx | 2 +- tests/unit/src/unit/issues/Issue5556.hx | 4 +- tests/unit/src/unit/issues/Issue5565.hx | 6 +- tests/unit/src/unit/issues/Issue5572.hx | 6 +- tests/unit/src/unit/issues/Issue5584.hx | 2 + tests/unit/src/unit/issues/Issue5599.hx | 16 + tests/unit/src/unit/issues/Issue5608.hx | 4 +- tests/unit/src/unit/issues/Issue5691.hx | 31 + tests/unit/src/unit/issues/Issue5693.hx | 5 +- tests/unit/src/unit/issues/Issue5751.hx | 12 + tests/unit/src/unit/issues/Issue5757.hx | 14 +- tests/unit/src/unit/issues/Issue5783.hx | 1 + tests/unit/src/unit/issues/Issue5793.hx | 24 + tests/unit/src/unit/issues/Issue5816.hx | 13 + tests/unit/src/unit/issues/Issue5848.hx | 1 + tests/unit/src/unit/issues/Issue5851.hx | 1 + tests/unit/src/unit/issues/Issue5859.hx | 10 + tests/unit/src/unit/issues/Issue5862.hx | 107 + tests/unit/src/unit/issues/Issue5923.hx | 6 +- tests/unit/src/unit/issues/Issue6016.hx | 25 + tests/unit/src/unit/issues/Issue6036.hx | 33 + tests/unit/src/unit/issues/Issue6039.hx | 31 + tests/unit/src/unit/issues/Issue6059.hx | 36 + tests/unit/src/unit/issues/Issue6106.hx | 14 + tests/unit/src/unit/issues/Issue6133.hx | 18 + tests/unit/src/unit/issues/Issue6135.hx | 10 + tests/unit/src/unit/issues/Issue6145.hx | 11 + tests/unit/src/unit/issues/Issue6147.hx | 22 + tests/unit/src/unit/issues/Issue6169.hx | 18 + tests/unit/src/unit/issues/Issue6175.hx | 2 +- tests/unit/src/unit/issues/Issue6177.hx | 2 + tests/unit/src/unit/issues/Issue6211.hx | 9 + tests/unit/src/unit/issues/Issue6215.hx | 18 + tests/unit/src/unit/issues/Issue6224.hx | 13 + tests/unit/src/unit/issues/Issue6259.hx | 11 + tests/unit/src/unit/issues/Issue6266.hx | 9 + tests/unit/src/unit/issues/Issue6267.hx | 23 + tests/unit/src/unit/issues/Issue6276.hx | 44 + tests/unit/src/unit/issues/Issue6281.hx | 2 +- tests/unit/src/unit/issues/Issue6285.hx | 27 + tests/unit/src/unit/issues/Issue6290.hx | 34 + tests/unit/src/unit/issues/Issue6291.hx | 35 + tests/unit/src/unit/issues/Issue6298.hx | 27 + tests/unit/src/unit/issues/Issue6299.hx | 12 + tests/unit/src/unit/issues/Issue6315.hx | 25 + tests/unit/src/unit/issues/Issue6325.hx | 51 + tests/unit/src/unit/issues/Issue6342.hx | 32 + tests/unit/src/unit/issues/Issue6349.hx | 18 + tests/unit/src/unit/issues/Issue6369.hx | 7 + tests/unit/src/unit/issues/Issue6375.hx | 4 +- tests/unit/src/unit/issues/Issue6376.hx | 9 + tests/unit/src/unit/issues/Issue6379.hx | 13 + tests/unit/src/unit/issues/Issue6406.hx | 16 + tests/unit/src/unit/issues/Issue6413.hx | 30 + tests/unit/src/unit/issues/Issue6430.hx | 220 + tests/unit/src/unit/issues/Issue6446.hx | 23 + tests/unit/src/unit/issues/Issue6448.hx | 32 + tests/unit/src/unit/issues/Issue6449.hx | 14 + tests/unit/src/unit/issues/Issue6457.hx | 34 + tests/unit/src/unit/issues/Issue6480.hx | 19 + tests/unit/src/unit/issues/Issue6482.hx | 12 + tests/unit/src/unit/issues/Issue6486.hx | 23 + tests/unit/src/unit/issues/Issue6499.hx | 21 + tests/unit/src/unit/issues/Issue6503.hx | 11 + tests/unit/src/unit/issues/Issue6520.hx | 60 + tests/unit/src/unit/issues/Issue6531.hx | 45 + tests/unit/src/unit/issues/Issue6532.hx | 16 + tests/unit/src/unit/issues/Issue6533.hx | 36 + tests/unit/src/unit/issues/Issue6548.hx | 16 + tests/unit/src/unit/issues/Issue6549.hx | 32 + tests/unit/src/unit/issues/Issue6551.hx | 9 + tests/unit/src/unit/issues/Issue6555.hx | 14 + tests/unit/src/unit/issues/Issue6560.hx | 14 + tests/unit/src/unit/issues/Issue6561.hx | 19 + tests/unit/src/unit/issues/Issue6562.hx | 20 + tests/unit/src/unit/issues/Issue6587.hx | 13 + tests/unit/src/unit/issues/Issue6606.hx | 22 + tests/unit/src/unit/issues/Issue6609.hx | 18 + tests/unit/src/unit/issues/Issue6656.hx | 17 + tests/unit/src/unit/issues/Issue6660.hx | 31 + tests/unit/src/unit/issues/Issue6675.hx | 19 + tests/unit/src/unit/issues/Issue6703.hx | 25 + tests/unit/src/unit/issues/Issue6706.hx | 13 + tests/unit/src/unit/issues/Issue6707.hx | 19 + tests/unit/src/unit/issues/Issue6710.hx | 28 + tests/unit/src/unit/issues/Issue6711.hx | 35 + tests/unit/src/unit/issues/Issue6717.hx | 23 + tests/unit/src/unit/issues/Issue6722.hx | 23 + tests/unit/src/unit/issues/Issue6724.hx | 11 + tests/unit/src/unit/issues/Issue6751.hx | 21 + tests/unit/src/unit/issues/Issue6752.hx | 13 + tests/unit/src/unit/issues/Issue6754.hx | 9 + tests/unit/src/unit/issues/Issue6772.hx | 9 + tests/unit/src/unit/issues/Issue6776.hx | 19 + tests/unit/src/unit/issues/Issue6784.hx | 10 + tests/unit/src/unit/issues/Issue6801.hx | 44 + tests/unit/src/unit/issues/Issue6807.hx | 4 +- tests/unit/src/unit/issues/Issue6830.hx | 14 + tests/unit/src/unit/issues/Issue6833.hx | 37 + tests/unit/src/unit/issues/Issue6836.hx | 19 + tests/unit/src/unit/issues/Issue6845.hx | 17 + tests/unit/src/unit/issues/Issue6848.hx | 11 + tests/unit/src/unit/issues/Issue6859.hx | 14 - tests/unit/src/unit/issues/Issue6871.hx | 30 + tests/unit/src/unit/issues/Issue6873.hx | 12 + tests/unit/src/unit/issues/Issue6896.hx | 14 + tests/unit/src/unit/issues/Issue6942.hx | 42 + tests/unit/src/unit/issues/Issue6948.hx | 11 + tests/unit/src/unit/issues/Issue6952.hx | 24 + tests/unit/src/unit/issues/Issue6972.hx | 43 + tests/unit/src/unit/issues/Issue6979.hx | 18 + tests/unit/src/unit/issues/Issue7007.hx | 18 + tests/unit/src/unit/issues/Issue7032.hx | 15 + tests/unit/src/unit/issues/Issue7106.hx | 40 + tests/unit/src/unit/issues/Issue7115.hx | 100 + tests/unit/src/unit/issues/Issue7120.hx | 22 + tests/unit/src/unit/issues/Issue7132.hx | 9 + tests/unit/src/unit/issues/Issue7139.hx | 37 + tests/unit/src/unit/issues/Issue7142.hx | 24 + tests/unit/src/unit/issues/Issue7179.hx | 10 + tests/unit/src/unit/issues/Issue7182.hx | 17 + tests/unit/src/unit/issues/Issue7187.hx | 14 + tests/unit/src/unit/issues/Issue7207.hx | 7 + tests/unit/src/unit/issues/Issue7209.hx | 19 + tests/unit/src/unit/issues/Issue7220.hx | 19 + tests/unit/src/unit/issues/Issue7230.hx | 8 + tests/unit/src/unit/issues/Issue7233.hx | 18 + tests/unit/src/unit/issues/Issue7247.hx | 24 + tests/unit/src/unit/issues/Issue7286.hx | 18 + tests/unit/src/unit/issues/Issue7298.hx | 12 + tests/unit/src/unit/issues/Issue7332.hx | 15 + tests/unit/src/unit/issues/Issue7334.hx | 19 + tests/unit/src/unit/issues/Issue7335.hx | 32 + tests/unit/src/unit/issues/Issue7359.hx | 24 + tests/unit/src/unit/issues/Issue7367.hx | 21 + tests/unit/src/unit/issues/Issue7376.hx | 72 + tests/unit/src/unit/issues/Issue7388.hx | 11 + tests/unit/src/unit/issues/Issue7389.hx | 13 + tests/unit/src/unit/issues/Issue7391.hx | 14 + tests/unit/src/unit/issues/Issue7394.hx | 18 + tests/unit/src/unit/issues/Issue7443.hx | 7 + tests/unit/src/unit/issues/Issue7449.hx | 12 + tests/unit/src/unit/issues/Issue7466.hx | 8 + tests/unit/src/unit/issues/Issue7476.hx | 15 + tests/unit/src/unit/issues/Issue7492.hx | 10 + tests/unit/src/unit/issues/Issue7499.hx | 14 + tests/unit/src/unit/issues/Issue7531.hx | 16 + tests/unit/src/unit/issues/Issue7533.hx | 23 + tests/unit/src/unit/issues/Issue7536.hx | 9 + tests/unit/src/unit/issues/Issue7540.hx | 16 + tests/unit/src/unit/issues/Issue7546.hx | 13 + tests/unit/src/unit/issues/Issue7579.hx | 39 + tests/unit/src/unit/issues/Issue7590.hx | 12 + tests/unit/src/unit/issues/Issue7600.hx | 11 + tests/unit/src/unit/issues/Issue7603.hx | 19 + tests/unit/src/unit/issues/Issue7630.hx | 20 + tests/unit/src/unit/issues/Issue7642.hx | 20 + tests/unit/src/unit/issues/Issue7653.hx | 30 + tests/unit/src/unit/issues/Issue7659.hx | 18 + tests/unit/src/unit/issues/Issue7661.hx | 26 + tests/unit/src/unit/issues/Issue7671.hx | 49 + tests/unit/src/unit/issues/Issue7672.hx | 32 + tests/unit/src/unit/issues/Issue7674.hx | 16 + tests/unit/src/unit/issues/Issue7688.hx | 16 + tests/unit/src/unit/issues/Issue7716.hx | 9 + tests/unit/src/unit/issues/Issue7727.hx | 26 + tests/unit/src/unit/issues/Issue7728.hx | 22 + tests/unit/src/unit/issues/Issue7743.hx | 8 + tests/unit/src/unit/issues/Issue7827.hx | 22 + tests/unit/src/unit/issues/Issue7844.hx | 28 + tests/unit/src/unit/issues/Issue7867.hx | 16 + tests/unit/src/unit/issues/Issue7869.hx | 23 + tests/unit/src/unit/issues/Issue7883.hx | 17 + tests/unit/src/unit/issues/Issue7890.hx | 8 + tests/unit/src/unit/issues/Issue7903.hx | 43 + tests/unit/src/unit/issues/Issue7922.hx | 29 + tests/unit/src/unit/issues/Issue7981.hx | 16 + tests/unit/src/unit/issues/Issue8032.hx | 22 + tests/unit/src/unit/issues/Issue8050.hx | 21 + tests/unit/src/unit/issues/Issue8053.hx | 29 + tests/unit/src/unit/issues/Issue8075.hx | 14 + tests/unit/src/unit/issues/Issue8079.hx | 11 + tests/unit/src/unit/issues/Issue8101.hx | 15 + tests/unit/src/unit/issues/Issue8118.hx | 11 + tests/unit/src/unit/issues/Issue8185.hx | 18 + tests/unit/src/unit/issues/Issue8187.hx | 13 + tests/unit/src/unit/issues/Issue8188.hx | 51 + tests/unit/src/unit/issues/Issue8200.hx | 20 + tests/unit/src/unit/issues/Issue8203.hx | 16 + tests/unit/src/unit/issues/Issue8211.hx | 9 + tests/unit/src/unit/issues/Issue8212.hx | 12 + tests/unit/src/unit/issues/Issue8213.hx | 13 + tests/unit/src/unit/issues/Issue8218.hx | 56 + tests/unit/src/unit/issues/Issue8220.hx | 16 + tests/unit/src/unit/issues/Issue8221.hx | 19 + tests/unit/src/unit/issues/Issue8227.hx | 59 + tests/unit/src/unit/issues/Issue8240.hx | 13 + tests/unit/src/unit/issues/Issue8241.hx | 70 + tests/unit/src/unit/issues/Issue8242.hx | 14 + tests/unit/src/unit/issues/Issue8243.hx | 11 + tests/unit/src/unit/issues/Issue8248.hx | 39 + tests/unit/src/unit/issues/Issue8257.hx | 14 + tests/unit/src/unit/issues/Issue8261.hx | 19 + tests/unit/src/unit/issues/Issue8286.hx | 7 + tests/unit/src/unit/issues/Issue8296.hx | 20 + tests/unit/src/unit/issues/Issue8299.hx | 11 + tests/unit/src/unit/issues/Issue8337.hx | 17 + tests/unit/src/unit/issues/Issue8341.hx | 14 + tests/unit/src/unit/issues/Issue8343.hx | 40 + tests/unit/src/unit/issues/Issue8376.hx | 17 + tests/unit/src/unit/issues/Issue8425.hx | 14 + tests/unit/src/unit/issues/Issue8435.hx | 8 + tests/unit/src/unit/issues/Issue8489.hx | 15 + tests/unit/src/unit/issues/Issue8493.hx | 22 + tests/unit/src/unit/issues/Issue8502.hx | 54 + tests/unit/src/unit/issues/Issue8506.hx | 11 + tests/unit/src/unit/issues/Issue8513.hx | 12 + tests/unit/src/unit/issues/Issue8528.hx | 30 + tests/unit/src/unit/issues/Issue8537.hx | 27 + tests/unit/src/unit/issues/Issue8538.hx | 9 + tests/unit/src/unit/issues/Issue8549.hx | 17 + tests/unit/src/unit/issues/Issue8560.hx | 15 + tests/unit/src/unit/issues/Issue8700.hx | 11 + tests/unit/src/unit/issues/Issue8702.hx | 17 + tests/unit/src/unit/issues/Issue8710.hx | 18 + tests/unit/src/unit/issues/Issue8716.hx | 14 + tests/unit/src/unit/issues/Issue8740.hx | 19 + tests/unit/src/unit/issues/Issue8764.hx | 13 + tests/unit/src/unit/issues/Issue8779.hx | 25 + tests/unit/src/unit/issues/Issue8781.hx | 39 + tests/unit/src/unit/issues/Issue8791.hx | 12 + tests/unit/src/unit/issues/Issue8845.hx | 18 + tests/unit/src/unit/issues/Issue8859.hx | 16 + tests/unit/src/unit/issues/Issue8861.hx | 11 + tests/unit/src/unit/issues/Issue8869.hx | 13 + tests/unit/src/unit/issues/misc/ISSUE7716.hx | 10 + .../src/unit/issues/misc/Issue4306Macro.hx | 18 +- .../src/unit/issues/misc/Issue5009Assert.hx | 7 + .../src/unit/issues/misc/Issue5255Class.hx | 9 + .../src/unit/issues/misc/Issue6873Macro.hx | 26 + .../src/unit/issues/misc/Issue7466Macro.hx | 20 + .../src/unit/{ => spec}/TestSpecification.hx | 44 +- tests/unit/src/unit/spec/import.hx | 1 + tests/unit/src/unitstd/Array.unit.hx | 25 +- tests/unit/src/unitstd/Date.unit.hx | 168 +- tests/unit/src/unitstd/EReg.unit.hx | 13 +- .../{Https.unit.hx => Https.unit.hx.no} | 2 +- tests/unit/src/unitstd/InlineXml.unit.hx | 49 + tests/unit/src/unitstd/Lambda.unit.hx | 16 +- tests/unit/src/unitstd/List.unit.hx | 13 +- tests/unit/src/unitstd/Map.unit.hx | 160 +- tests/unit/src/unitstd/Math.unit.hx | 15 +- tests/unit/src/unitstd/Reflect.unit.hx | 23 +- tests/unit/src/unitstd/Ssl.unit.hx | 4 +- tests/unit/src/unitstd/Std.unit.hx | 13 +- tests/unit/src/unitstd/String.unit.hx | 33 +- tests/unit/src/unitstd/StringBuf.unit.hx | 17 + tests/unit/src/unitstd/StringTools.unit.hx | 29 +- tests/unit/src/unitstd/Sys.unit.hx | 3 - tests/unit/src/unitstd/Type.unit.hx | 17 +- tests/unit/src/unitstd/Unicode.unit.hx | 310 + tests/unit/src/unitstd/UnicodeString.unit.hx | 164 + .../src/unitstd/haxe/DynamicAccess.unit.hx | 29 + tests/unit/src/unitstd/haxe/Int32.unit.hx | 26 + tests/unit/src/unitstd/haxe/Log.unit.hx | 5 +- tests/unit/src/unitstd/haxe/Utf8.unit.hx | 29 +- tests/unit/src/unitstd/haxe/crypto/Crc32.hx | 2 - .../src/unitstd/haxe/crypto/Crc32.unit.hx | 2 + .../unit/src/unitstd/haxe/crypto/Hmac.unit.hx | 2 +- .../src/unitstd/haxe/ds/BalancedTree.unit.hx | 40 + .../src/unitstd/haxe/ds/EnumValueMap.unit.hx | 8 +- tests/unit/src/unitstd/haxe/ds/IntMap.unit.hx | 81 + .../src/unitstd/haxe/ds/ObjectMap.unit.hx | 11 +- .../src/unitstd/haxe/ds/StringMap.unit.hx | 76 + tests/unit/src/unitstd/haxe/ds/Vector.unit.hx | 21 +- .../unit/src/unitstd/haxe/ds/WeakMap.unit.hx | 15 +- .../src/unitstd/haxe/io/Float32Array.unit.hx | 32 +- .../src/unitstd/haxe/io/Float64Array.unit.hx | 23 +- .../src/unitstd/haxe/io/Int32Array.unit.hx | 23 +- tests/unit/src/unitstd/haxe/io/Path.unit.hx | 5 + .../src/unitstd/haxe/io/UInt16Array.unit.hx | 23 +- .../src/unitstd/haxe/io/UInt32Array.unit.hx | 23 +- .../src/unitstd/haxe/io/UInt8Array.unit.hx | 23 +- .../iterators/StringIteratorUnicode.unit.hx | 30 + .../StringKeyValueIteratorUnicode.unit.hx | 39 + .../haxe/macro/ComplexTypeTools.macro.unit.hx | 2 + .../src/unitstd/haxe/macro/ExprTools.unit.hx | 12 +- tests/unit/src/unitstd/haxe/rtti/Rtti.unit.hx | 10 +- .../src/unitstd/haxe/zip/Compress.unit.hx | 23 +- .../src/unitstd/haxe/zip/Uncompress.unit.hx | 32 + tests/unit/src/unitstd/sys/io/File.unit.hx | 45 + tests/unit/src/unitstd/sys/net/Socket.unit.hx | 70 + tests/unit/unit-js.html | 2 +- tests/unit/unit.hxproj | 1 + tests/unit/unit_hl.hxproj | 2 +- 4651 files changed, 195465 insertions(+), 122154 deletions(-) create mode 100644 .github/FUNDING.yml create mode 100644 .vscode/schemas/define.schema.json create mode 100644 .vscode/schemas/meta.schema.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 azure-pipelines.yml create mode 100644 extra/BUILDING.md create mode 100644 extra/azure-pipelines/build-linux.yml create mode 100644 extra/azure-pipelines/build-mac.yml create mode 100644 extra/azure-pipelines/build-windows.yml create mode 100644 extra/azure-pipelines/install-neko-snapshot.yaml create mode 100644 extra/azure-pipelines/test-windows.yml create mode 100644 extra/haxelib_src/.ebextensions/autoscaling.config create mode 100644 extra/haxelib_src/.ebextensions/ignore4xx.config create mode 100644 extra/haxelib_src/.github/FUNDING.yml create mode 100644 extra/haxelib_src/hx3compat/README.md create mode 100644 extra/haxelib_src/hx3compat/haxelib.json rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/AMFConnection.hx (95%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/AsyncAdapter.hx (97%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/AsyncConnection.hx (93%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/AsyncDebugConnection.hx (95%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/AsyncProxy.hx (96%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/Connection.hx (92%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/Context.hx (98%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/ContextAll.hx (97%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/DelayedConnection.hx (94%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/ExternalConnection.hx (96%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/FlashJsConnection.hx (96%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/HttpAsyncConnection.hx (94%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/HttpConnection.hx (96%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/LocalConnection.hx (96%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/Proxy.hx (96%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/SocketConnection.hx (96%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/SocketProtocol.hx (99%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/SocketWrapper.hx (98%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/remoting/SyncSocketConnection.hx (95%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/unit/TestCase.hx (100%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/unit/TestResult.hx (100%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/unit/TestRunner.hx (99%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/unit/TestStatus.hx (100%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/web/Dispatch.hx (98%) rename {std => extra/haxelib_src/hx3compat/std}/haxe/web/Request.hx (100%) rename {std => extra/haxelib_src/hx3compat/std}/js/JQuery.hx (100%) rename {std => extra/haxelib_src/hx3compat/std}/js/SWFObject.hx (100%) rename {std => extra/haxelib_src/hx3compat/std}/js/XMLSocket.hx (98%) rename {std => extra/haxelib_src/hx3compat/std}/neko/net/Poll.hx (98%) rename {std => extra/haxelib_src/hx3compat/std}/neko/net/ProxyDetect.hx (99%) rename {std => extra/haxelib_src/hx3compat/std}/neko/net/ServerLoop.hx (99%) rename {std => extra/haxelib_src/hx3compat/std}/neko/net/ThreadRemotingServer.hx (98%) rename {std => extra/haxelib_src/hx3compat/std}/neko/net/ThreadServer.hx (98%) create mode 100644 extra/haxelib_src/libs.hxml create mode 100644 extra/haxelib_src/server-start.hxml create mode 100644 extra/haxelib_src/server_website_highlighter.hxml create mode 100644 extra/haxelib_src/src/haxelib/client/Util.hx create mode 100644 extra/haxelib_src/src/website/Util.hx create mode 100644 extra/haxelib_src/test/libraries/UseGitDep/git-deps.hxml create mode 100644 extra/haxelib_src/test/libraries/libBadHaxelibJson/haxelib.json create mode 100644 extra/haxelib_src/test/libraries/libBar/Run.hx create mode 100644 extra/haxelib_src/test/libraries/libBar2/Run.hx create mode 100644 extra/haxelib_src/test/libraries/libBar2/RunN.hx create mode 100644 extra/haxelib_src/test/libraries/libBar2/run.n create mode 100644 extra/haxelib_src/test/libraries/libBaz/haxelib.json create mode 100644 extra/haxelib_src/test/libraries/libBaz/haxelib.xml create mode 100644 extra/haxelib_src/test/libraries/libBaz/tools/Main.hx create mode 100644 extra/haxelib_src/test/libraries/libDeep2/libDeep/bar/Bar.hx create mode 100644 extra/haxelib_src/test/libraries/libDeep2/libDeep/haxelib.json create mode 100644 extra/haxelib_src/test/libraries/libDeep3/libDeep/bar/Bar.hx create mode 100644 extra/haxelib_src/test/libraries/libDeep3/libDeep/haxelib.json create mode 100644 extra/haxelib_src/test/tests/integration/TestOwner.hx create mode 100644 extra/haxelib_src/test/tests/integration/TestPath.hx create mode 100644 extra/haxelib_src/test/tests/integration/TestRun.hx delete mode 100644 extra/haxelib_src/www/bower.json create mode 100644 extra/haxelib_src/www/documentation-files/haxelibs-in-projects.md create mode 100644 extra/haxelib_src/www/package-lock.json create mode 100644 extra/haxelib_src/www/package.json create mode 100644 extra/haxelib_src/www/view/home/recent.html create mode 100644 extra/images/Readme.png delete mode 100644 haxe.hxproj delete mode 100755 libs/.editorconfig delete mode 100644 libs/.travis.yml create mode 100644 libs/extlib-leftovers/Makefile rename libs/{extlib => extlib-leftovers}/multiArray.ml (100%) rename libs/{extlib => extlib-leftovers}/multiArray.mli (100%) rename libs/{extlib => extlib-leftovers}/rbuffer.ml (82%) rename libs/{extlib => extlib-leftovers}/rbuffer.mli (99%) rename libs/{extlib/uChar.ml => extlib-leftovers/uCharExt.ml} (100%) rename libs/{extlib/uChar.mli => extlib-leftovers/uCharExt.mli} (100%) rename libs/{extlib => extlib-leftovers}/uTF8.ml (95%) rename libs/{extlib => extlib-leftovers}/uTF8.mli (89%) delete mode 100644 libs/extlib/IO.ml delete mode 100644 libs/extlib/IO.mli delete mode 100644 libs/extlib/LICENSE delete mode 100644 libs/extlib/META.txt delete mode 100644 libs/extlib/Makefile delete mode 100644 libs/extlib/README.txt delete mode 100644 libs/extlib/base64.ml delete mode 100644 libs/extlib/base64.mli delete mode 100644 libs/extlib/bitSet.ml delete mode 100644 libs/extlib/bitSet.mli delete mode 100644 libs/extlib/dllist.ml delete mode 100644 libs/extlib/dllist.mli delete mode 100644 libs/extlib/dynArray.ml delete mode 100644 libs/extlib/dynArray.mli delete mode 100644 libs/extlib/enum.ml delete mode 100644 libs/extlib/enum.mli delete mode 100644 libs/extlib/extArray.ml delete mode 100755 libs/extlib/extArray.mli delete mode 100644 libs/extlib/extHashtbl.ml delete mode 100644 libs/extlib/extHashtbl.mli delete mode 100755 libs/extlib/extLib.ml delete mode 100644 libs/extlib/extList.ml delete mode 100755 libs/extlib/extList.mli delete mode 100644 libs/extlib/extString.ml delete mode 100644 libs/extlib/extString.mli delete mode 100644 libs/extlib/global.ml delete mode 100644 libs/extlib/global.mli delete mode 100644 libs/extlib/install.ml delete mode 100644 libs/extlib/odoc_style.css delete mode 100644 libs/extlib/optParse.ml delete mode 100644 libs/extlib/optParse.mli delete mode 100644 libs/extlib/option.ml delete mode 100644 libs/extlib/option.mli delete mode 100644 libs/extlib/pMap.ml delete mode 100644 libs/extlib/pMap.mli delete mode 100644 libs/extlib/refList.ml delete mode 100644 libs/extlib/refList.mli delete mode 100644 libs/extlib/sMap.ml delete mode 100644 libs/extlib/sMap.mli delete mode 100644 libs/extlib/std.ml delete mode 100644 libs/extlib/std.mli delete mode 100644 libs/extlib/unzip.ml delete mode 100644 libs/extlib/unzip.mli delete mode 100644 libs/xml-light/META.in delete mode 100644 libs/xml-light/Makefile delete mode 100644 libs/xml-light/README delete mode 100644 libs/xml-light/dtd.ml delete mode 100644 libs/xml-light/dtd.mli delete mode 100644 libs/xml-light/makedoc.bat delete mode 100644 libs/xml-light/test.ml delete mode 100644 libs/xml-light/xml.dsp delete mode 100644 libs/xml-light/xml.dsw delete mode 100644 libs/xml-light/xml.ml delete mode 100644 libs/xml-light/xml.mli delete mode 100644 libs/xml-light/xmlParser.ml delete mode 100644 libs/xml-light/xmlParser.mli delete mode 100644 libs/xml-light/xml_lexer.mli delete mode 100644 libs/xml-light/xml_lexer.mll delete mode 100644 libs/xml-light/xml_parser.mly create mode 100644 src-json/define.json create mode 100644 src-json/meta.json rename src/{generators => codegen}/codegen.ml (61%) create mode 100644 src/codegen/dotnet.ml create mode 100644 src/codegen/gencommon/abstractImplementationFix.ml create mode 100644 src/codegen/gencommon/arrayDeclSynf.ml create mode 100644 src/codegen/gencommon/arraySpliceOptimization.ml create mode 100644 src/codegen/gencommon/castDetect.ml create mode 100644 src/codegen/gencommon/classInstance.ml create mode 100644 src/codegen/gencommon/closuresToClass.ml create mode 100644 src/codegen/gencommon/dynamicFieldAccess.ml create mode 100644 src/codegen/gencommon/dynamicOperators.ml create mode 100644 src/codegen/gencommon/enumToClass.ml create mode 100644 src/codegen/gencommon/enumToClass2.ml create mode 100644 src/codegen/gencommon/expressionUnwrap.ml create mode 100644 src/codegen/gencommon/filterClosures.ml create mode 100644 src/codegen/gencommon/fixOverrides.ml create mode 100644 src/codegen/gencommon/gencommon.ml create mode 100644 src/codegen/gencommon/hardNullableSynf.ml create mode 100644 src/codegen/gencommon/initFunction.ml create mode 100644 src/codegen/gencommon/intDivisionSynf.ml create mode 100644 src/codegen/gencommon/interfaceProps.ml create mode 100644 src/codegen/gencommon/interfaceVarsDeleteModf.ml create mode 100644 src/codegen/gencommon/normalize.ml create mode 100644 src/codegen/gencommon/objectDeclMap.ml create mode 100644 src/codegen/gencommon/overloadingConstructor.ml create mode 100644 src/codegen/gencommon/realTypeParams.ml create mode 100644 src/codegen/gencommon/reflectionCFs.ml create mode 100644 src/codegen/gencommon/renameTypeParameters.ml create mode 100644 src/codegen/gencommon/setHXGen.ml create mode 100644 src/codegen/gencommon/switchToIf.ml create mode 100644 src/codegen/gencommon/tArrayTransform.ml create mode 100644 src/codegen/gencommon/unnecessaryCastsRemoval.ml create mode 100644 src/codegen/gencommon/unreachableCodeEliminationSynf.ml rename src/{generators => codegen}/genxml.ml (51%) create mode 100644 src/codegen/java.ml rename src/{typing => codegen}/overloads.ml (83%) create mode 100644 src/codegen/swfLoader.ml create mode 100644 src/compiler/displayOutput.ml create mode 100644 src/compiler/main.ml create mode 100644 src/compiler/server.ml create mode 100644 src/compiler/serverConfig.ml create mode 100644 src/compiler/serverMessage.ml create mode 100644 src/context/abstractCast.ml create mode 100644 src/context/commonCache.ml create mode 100644 src/context/compilationServer.ml create mode 100644 src/context/display/deprecationCheck.ml create mode 100644 src/context/display/diagnostics.ml create mode 100644 src/context/display/display.ml create mode 100644 src/context/display/displayEmitter.ml create mode 100644 src/context/display/displayException.ml create mode 100644 src/context/display/displayFields.ml create mode 100644 src/context/display/displayJson.ml create mode 100644 src/context/display/displayPath.ml create mode 100644 src/context/display/displayToplevel.ml create mode 100644 src/context/display/documentSymbols.ml create mode 100644 src/context/display/findReferences.ml create mode 100644 src/context/display/importHandling.ml create mode 100644 src/context/display/statistics.ml create mode 100644 src/context/memory.ml delete mode 100644 src/context/meta.ml create mode 100644 src/context/nativeLibraries.ml create mode 100644 src/context/nativeLibraryHandler.ml create mode 100644 src/context/purityState.ml rename src/{ => context}/sourcemaps.ml (98%) create mode 100644 src/context/typecore.ml create mode 100644 src/core/abstract.ml rename src/{syntax => core}/ast.ml (70%) create mode 100644 src/core/define.ml create mode 100644 src/core/display/completionItem.ml create mode 100644 src/core/display/displayPosition.ml create mode 100644 src/core/displayTypes.ml create mode 100644 src/core/error.ml rename src/{ => core}/globals.ml (64%) create mode 100644 src/core/json/genjson.ml create mode 100644 src/core/json/json.ml create mode 100644 src/core/json/jsonRequest.ml create mode 100644 src/core/json/jsonRpc.ml create mode 100644 src/core/json/jsonRpcSocket.ml create mode 100644 src/core/json/jsonrpc_handler.ml create mode 100644 src/core/meta.ml create mode 100644 src/core/numeric.ml create mode 100644 src/core/path.ml create mode 100644 src/core/socket.ml create mode 100644 src/core/stringError.ml create mode 100644 src/core/stringHelper.ml create mode 100644 src/core/texpr.ml create mode 100644 src/core/timer.ml rename src/{typing => core}/type.ml (71%) create mode 100644 src/core/withType.ml delete mode 100644 src/display/display.ml delete mode 100644 src/display/displayOutput.ml delete mode 100644 src/display/displayTypes.ml create mode 100644 src/filters/ES6Ctors.ml create mode 100644 src/filters/capturedVars.ml create mode 100644 src/filters/defaultArguments.ml rename src/{optimization => filters}/filters.ml (63%) create mode 100644 src/filters/filtersCommon.ml create mode 100644 src/filters/jsExceptions.ml create mode 100644 src/filters/localUsage.ml create mode 100644 src/filters/tryCatchWrapper.ml create mode 100644 src/filters/varLazifier.ml create mode 100644 src/generators/flashProps.ml delete mode 100644 src/generators/gencommon.ml create mode 100644 src/generators/genhxold.ml create mode 100644 src/generators/genjvm.ml delete mode 100644 src/generators/genphp.ml create mode 100644 src/generators/jvm/jvmAttribute.ml create mode 100644 src/generators/jvm/jvmBuilder.ml create mode 100644 src/generators/jvm/jvmClass.ml create mode 100644 src/generators/jvm/jvmCode.ml create mode 100644 src/generators/jvm/jvmConstantPool.ml create mode 100644 src/generators/jvm/jvmData.ml create mode 100644 src/generators/jvm/jvmDebug.ml create mode 100644 src/generators/jvm/jvmGlobals.ml create mode 100644 src/generators/jvm/jvmMethod.ml create mode 100644 src/generators/jvm/jvmSignature.ml create mode 100644 src/generators/jvm/jvmVerificationTypeInfo.ml create mode 100644 src/generators/jvm/jvmWriter.ml delete mode 100644 src/json.ml create mode 100644 src/macro/eval/bytes/evalBytesLower.ml create mode 100644 src/macro/eval/bytes/evalBytesUpper.ml create mode 100644 src/macro/eval/bytes/evalBytes_E_L79.ml create mode 100644 src/macro/eval/bytes/evalBytes_L1020.ml create mode 100644 src/macro/eval/bytes/evalBytes_U1021.ml create mode 100644 src/macro/eval/bytes/evalBytes_U79.ml create mode 100644 src/macro/eval/evalArray.ml create mode 100644 src/macro/eval/evalBytes.ml create mode 100644 src/macro/eval/evalContext.ml create mode 100644 src/macro/eval/evalDebug.ml create mode 100644 src/macro/eval/evalDebugMisc.ml create mode 100644 src/macro/eval/evalDebugSocket.ml create mode 100644 src/macro/eval/evalDecode.ml create mode 100644 src/macro/eval/evalEmitter.ml create mode 100644 src/macro/eval/evalEncode.ml create mode 100644 src/macro/eval/evalExceptions.ml create mode 100644 src/macro/eval/evalField.ml create mode 100644 src/macro/eval/evalHash.ml create mode 100644 src/macro/eval/evalJit.ml create mode 100644 src/macro/eval/evalJitContext.ml create mode 100644 src/macro/eval/evalMain.ml create mode 100644 src/macro/eval/evalMisc.ml create mode 100644 src/macro/eval/evalPrinting.ml create mode 100644 src/macro/eval/evalPrototype.ml create mode 100644 src/macro/eval/evalStdLib.ml create mode 100644 src/macro/eval/evalString.ml create mode 100644 src/macro/eval/evalThread.ml create mode 100644 src/macro/eval/evalValue.ml delete mode 100644 src/macro/hlmacro.ml delete mode 100644 src/macro/interp.ml delete mode 100644 src/main.ml create mode 100644 src/optimization/inline.ml create mode 100644 src/optimization/inlineConstructors.ml delete mode 100644 src/path.ml create mode 100644 src/prebuild/main.ml delete mode 100644 src/server.ml create mode 100644 src/syntax/grammar.mly create mode 100644 src/syntax/lexer.ml delete mode 100644 src/syntax/lexer.mll create mode 100644 src/syntax/parserEntry.ml create mode 100644 src/syntax/reification.ml create mode 100644 src/syntax/semver.ml delete mode 100644 src/typing/abstract.ml create mode 100644 src/typing/calls.ml delete mode 100644 src/typing/error.ml create mode 100644 src/typing/fields.ml create mode 100644 src/typing/finalization.ml create mode 100644 src/typing/forLoop.ml create mode 100644 src/typing/generic.ml create mode 100644 src/typing/instanceBuilder.ml rename src/{macro => typing}/macroContext.ml (62%) create mode 100644 src/typing/magicTypes.ml create mode 100644 src/typing/nullSafety.ml delete mode 100644 src/typing/typecore.ml create mode 100644 src/typing/typeloadCheck.ml create mode 100644 src/typing/typeloadFields.ml create mode 100644 src/typing/typeloadFunction.ml create mode 100644 src/typing/typeloadModule.ml create mode 100644 src/typing/typeloadParse.ml create mode 100644 src/typing/typerBase.ml create mode 100644 src/typing/typerDisplay.ml create mode 100644 std/UnicodeString.hx create mode 100644 std/cpp/ErrorConstants.hx create mode 100644 std/cpp/Native.hx create mode 100644 std/cpp/_std/haxe/Log.hx create mode 100644 std/cpp/_std/sys/thread/Deque.hx create mode 100644 std/cpp/_std/sys/thread/Lock.hx create mode 100644 std/cpp/_std/sys/thread/Mutex.hx create mode 100644 std/cpp/_std/sys/thread/Thread.hx create mode 100644 std/cpp/_std/sys/thread/Tls.hx create mode 100644 std/cs/Constraints.hx delete mode 100644 std/cs/_std/haxe/ds/WeakMap.hx2 create mode 100644 std/cs/_std/sys/thread/Deque.hx create mode 100644 std/cs/_std/sys/thread/Lock.hx create mode 100644 std/cs/_std/sys/thread/Mutex.hx create mode 100644 std/cs/_std/sys/thread/Thread.hx create mode 100644 std/cs/_std/sys/thread/Tls.hx create mode 100644 std/eval/Vector.hx create mode 100644 std/eval/_std/EReg.hx rename std/{cs/internal/Iterator.hx => eval/_std/StringBuf.hx} (75%) create mode 100644 std/eval/_std/Sys.hx create mode 100644 std/eval/_std/haxe/Resource.hx create mode 100644 std/eval/_std/haxe/Utf8.hx create mode 100644 std/eval/_std/haxe/io/Bytes.hx create mode 100644 std/eval/_std/haxe/io/BytesBuffer.hx create mode 100644 std/eval/_std/haxe/io/BytesData.hx create mode 100644 std/eval/_std/haxe/zip/Compress.hx create mode 100644 std/eval/_std/haxe/zip/Uncompress.hx create mode 100644 std/eval/_std/sys/FileSystem.hx create mode 100644 std/eval/_std/sys/io/File.hx create mode 100644 std/eval/_std/sys/io/FileInput.hx create mode 100644 std/eval/_std/sys/io/FileOutput.hx create mode 100644 std/eval/_std/sys/io/Process.hx create mode 100644 std/eval/_std/sys/net/Host.hx create mode 100644 std/eval/_std/sys/net/Socket.hx rename std/{php7/_std/StringBuf.hx => eval/_std/sys/thread/Thread.hx} (57%) create mode 100644 std/eval/vm/Context.hx create mode 100644 std/eval/vm/Gc.hx create mode 100644 std/eval/vm/NativeThread.hx create mode 100644 std/flash/AnyType.hx create mode 100644 std/flash/_std/String.hx create mode 100644 std/flash/_std/haxe/Http.hx rename std/{js/html/webgl/ExtensionLoseContext.hx => flash/_std/haxe/Log.hx} (54%) create mode 100644 std/flash/events/AudioOutputChangeEvent.hx create mode 100644 std/flash/media/AudioDeviceManager.hx create mode 100644 std/flash/media/AudioOutputChangeReason.hx create mode 100644 std/haxe/SysTools.hx create mode 100644 std/haxe/display/Display.hx create mode 100644 std/haxe/display/FsPath.hx create mode 100644 std/haxe/display/JsonModuleTypes.hx create mode 100644 std/haxe/display/Position.hx create mode 100644 std/haxe/display/Protocol.hx create mode 100644 std/haxe/display/Server.hx create mode 100644 std/haxe/ds/List.hx create mode 100644 std/haxe/ds/Map.hx create mode 100644 std/haxe/ds/ReadOnlyArray.hx create mode 100644 std/haxe/http/HttpBase.hx create mode 100644 std/haxe/http/HttpJs.hx create mode 100644 std/haxe/http/HttpMethod.hx create mode 100644 std/haxe/http/HttpNodeJs.hx create mode 100644 std/haxe/http/HttpStatus.hx rename std/{lua/lib/environ/Environ.hx => haxe/io/Encoding.hx} (79%) create mode 100644 std/haxe/io/Mime.hx create mode 100644 std/haxe/io/Scheme.hx create mode 100644 std/haxe/iterators/DynamicAccessIterator.hx create mode 100644 std/haxe/iterators/DynamicAccessKeyValueIterator.hx create mode 100644 std/haxe/iterators/MapKeyValueIterator.hx create mode 100644 std/haxe/iterators/StringIterator.hx create mode 100644 std/haxe/iterators/StringIteratorUnicode.hx create mode 100644 std/haxe/iterators/StringKeyValueIterator.hx create mode 100644 std/haxe/iterators/StringKeyValueIteratorUnicode.hx delete mode 100644 std/haxe/macro/Context.hl.hx create mode 100644 std/haxe/xml/Access.hx create mode 100644 std/hl/I64.hx create mode 100644 std/hl/Profile.hx create mode 100644 std/hl/_std/haxe/crypto/Md5.hx create mode 100644 std/hl/_std/haxe/crypto/Sha1.hx create mode 100644 std/hl/_std/sys/db/Connection.hx create mode 100644 std/hl/_std/sys/db/Mysql.hx create mode 100644 std/hl/_std/sys/db/ResultSet.hx create mode 100644 std/hl/_std/sys/net/UdpSocket.hx create mode 100644 std/hl/_std/sys/ssl/Context.hx create mode 100644 std/hl/_std/sys/thread/Deque.hx create mode 100644 std/hl/_std/sys/thread/Lock.hx create mode 100644 std/hl/_std/sys/thread/Mutex.hx create mode 100644 std/hl/_std/sys/thread/Thread.hx rename std/{php7/_std/haxe/zip/Uncompress.hx => hl/_std/sys/thread/Tls.hx} (66%) create mode 100644 std/hl/hl_version create mode 100644 std/hl/uv/Handle.hx create mode 100644 std/hl/uv/HandleData.hx create mode 100644 std/hl/uv/Loop.hx create mode 100644 std/hl/uv/Stream.hx create mode 100644 std/hl/uv/Tcp.hx create mode 100644 std/java/Init.hx create mode 100644 std/java/NativeString.hx create mode 100644 std/java/_std/sys/thread/Deque.hx create mode 100644 std/java/_std/sys/thread/Lock.hx create mode 100644 std/java/_std/sys/thread/Mutex.hx create mode 100644 std/java/_std/sys/thread/Thread.hx create mode 100644 std/java/_std/sys/thread/Tls.hx create mode 100644 std/js/Function.hx create mode 100644 std/js/JsIterator.hx create mode 100644 std/js/Object.hx create mode 100644 std/js/Set.hx create mode 100644 std/js/Symbol.hx create mode 100644 std/js/Syntax.hx create mode 100644 std/js/_std/haxe/io/BytesBuffer.hx create mode 100644 std/js/html/AbortController.hx create mode 100644 std/js/html/AbortSignal.hx create mode 100644 std/js/html/AddEventListenerOptions.hx create mode 100644 std/js/html/AnimationEffect.hx delete mode 100644 std/js/html/AnimationEffectTimingReadOnly.hx rename std/js/html/{CSSUnknownRule.hx => AnimationFilter.hx} (86%) rename std/js/html/{AnimationEffectTiming.hx => AnimationPlaybackEvent.hx} (59%) create mode 100644 std/js/html/AnimationPlaybackEventInit.hx create mode 100644 std/js/html/AssignedNodesOptions.hx create mode 100644 std/js/html/AutoKeyword.hx create mode 100644 std/js/html/BlobEvent.hx create mode 100644 std/js/html/BlobEventInit.hx rename std/js/html/{ElementRegistrationOptions.hx => CSSBoxType.hx} (82%) create mode 100644 std/js/html/CSSConditionRule.hx create mode 100644 std/js/html/CSSCounterStyleRule.hx create mode 100644 std/js/html/CSSFontFeatureValuesRule.hx create mode 100644 std/js/html/CSSGroupingRule.hx rename std/js/html/{Rect.hx => CSSKeyframeRule.hx} (55%) create mode 100644 std/js/html/CSSKeyframesRule.hx create mode 100644 std/js/html/CSSMozDocumentRule.hx create mode 100644 std/js/html/CSSNamespaceRule.hx delete mode 100644 std/js/html/CSSPrimitiveValue.hx create mode 100644 std/js/html/CSSSupportsRule.hx delete mode 100644 std/js/html/CSSValue.hx create mode 100644 std/js/html/Cache.hx create mode 100644 std/js/html/CacheQueryOptions.hx create mode 100644 std/js/html/CacheStorage.hx create mode 100644 std/js/html/CacheStorageNamespace.hx create mode 100644 std/js/html/CanvasCaptureMediaStream.hx create mode 100644 std/js/html/ChannelPixelLayout.hx rename std/js/html/{CommandEvent.hx => ChannelPixelLayoutDataType.hx} (75%) create mode 100644 std/js/html/ClientType.hx create mode 100644 std/js/html/Clipboard.hx rename std/js/html/{RecordErrorEventInit.hx => CompositionEventInit.hx} (85%) rename std/js/html/{MessagePortList.hx => ComputedEffectTiming.hx} (79%) create mode 100644 std/js/html/ConsoleInstance.hx create mode 100644 std/js/html/ConstrainBooleanParameters.hx create mode 100644 std/js/html/ConstrainDOMStringParameters.hx create mode 100644 std/js/html/ConstrainDoubleRange.hx create mode 100644 std/js/html/ConstrainLongRange.hx create mode 100644 std/js/html/DOMQuadJSON.hx create mode 100644 std/js/html/DataTransferItem.hx create mode 100644 std/js/html/DataTransferItemList.hx rename std/js/html/{ContentElement.hx => DetailsElement.hx} (57%) create mode 100644 std/js/html/DisplayNameOptions.hx create mode 100644 std/js/html/DisplayNameResult.hx create mode 100644 std/js/html/DocumentTimelineOptions.hx create mode 100644 std/js/html/EffectTiming.hx create mode 100644 std/js/html/ElementCreationOptions.hx rename std/js/html/{CSSCharsetRule.hx => EndingTypes.hx} (84%) create mode 100644 std/js/html/ErrorCallback.hx create mode 100644 std/js/html/EventListenerOptions.hx rename std/js/html/{LifecycleCallbacks.hx => FetchObserver.hx} (74%) create mode 100644 std/js/html/FetchState.hx rename std/js/html/{DOMTransactionEventInit.hx => FileCallback.hx} (85%) create mode 100644 std/js/html/FileSystem.hx create mode 100644 std/js/html/FileSystemDirectoryEntry.hx create mode 100644 std/js/html/FileSystemDirectoryReader.hx create mode 100644 std/js/html/FileSystemEntriesCallback.hx create mode 100644 std/js/html/FileSystemEntry.hx create mode 100644 std/js/html/FileSystemEntryCallback.hx create mode 100644 std/js/html/FileSystemFileEntry.hx create mode 100644 std/js/html/FileSystemFlags.hx create mode 100644 std/js/html/FontFaceSetLoadEvent.hx create mode 100644 std/js/html/FontFaceSetLoadEventInit.hx rename std/js/html/{CSSValueList.hx => GamepadEvent.hx} (54%) rename std/js/html/{DummyInterfaceWorkers.hx => GamepadEventInit.hx} (86%) create mode 100644 std/js/html/GetNotificationOptions.hx create mode 100644 std/js/html/GetRootNodeOptions.hx create mode 100644 std/js/html/ImageBitmapFormat.hx rename std/js/html/{AppletElement.hx => ImageCaptureError.hx} (71%) rename std/js/html/{DOMTransaction.hx => ImageCaptureErrorEvent.hx} (73%) create mode 100644 std/js/html/ImageCaptureErrorEventInit.hx create mode 100644 std/js/html/IntersectionObserver.hx create mode 100644 std/js/html/IntersectionObserverEntry.hx create mode 100644 std/js/html/IntersectionObserverInit.hx rename std/js/html/{DOMTransactionEvent.hx => IntlUtils.hx} (77%) create mode 100644 std/js/html/KeyframeAnimationOptions.hx create mode 100644 std/js/html/KeyframeEffectOptions.hx delete mode 100644 std/js/html/KeyframeEffectReadOnly.hx create mode 100644 std/js/html/LineAlignSetting.hx create mode 100644 std/js/html/LocaleInfo.hx create mode 100644 std/js/html/MediaDeviceInfo.hx create mode 100644 std/js/html/MediaDeviceKind.hx create mode 100644 std/js/html/MediaDevices.hx create mode 100644 std/js/html/MediaQueryListEvent.hx create mode 100644 std/js/html/MediaQueryListEventInit.hx create mode 100644 std/js/html/MediaRecorderErrorEvent.hx create mode 100644 std/js/html/MediaRecorderErrorEventInit.hx create mode 100644 std/js/html/MediaStreamEvent.hx create mode 100644 std/js/html/MediaStreamEventInit.hx create mode 100644 std/js/html/MediaStreamTrackEvent.hx create mode 100644 std/js/html/MediaStreamTrackEventInit.hx create mode 100644 std/js/html/MediaStreamTrackState.hx create mode 100644 std/js/html/MediaTrackSettings.hx create mode 100644 std/js/html/MediaTrackSupportedConstraints.hx create mode 100644 std/js/html/NavigationType.hx create mode 100644 std/js/html/ObserverCallback.hx create mode 100644 std/js/html/OfflineAudioCompletionEventInit.hx rename std/js/html/{RecordErrorEvent.hx => Option.hx} (78%) create mode 100644 std/js/html/OptionalEffectTiming.hx create mode 100644 std/js/html/PaintWorkletGlobalScope.hx create mode 100644 std/js/html/PerformanceEntryFilterOptions.hx create mode 100644 std/js/html/PerformanceNavigationTiming.hx create mode 100644 std/js/html/PerformanceObserver.hx create mode 100644 std/js/html/PerformanceObserverEntryList.hx create mode 100644 std/js/html/PerformanceObserverInit.hx rename std/js/html/{AnimationEffectReadOnly.hx => PerformanceServerTiming.hx} (52%) create mode 100644 std/js/html/PositionAlignSetting.hx rename std/js/html/{ObjectURLOptions.hx => PromiseNativeHandler.hx} (88%) create mode 100644 std/js/html/RegistrationOptions.hx create mode 100644 std/js/html/RequestDestination.hx create mode 100644 std/js/html/ScrollBehavior.hx create mode 100644 std/js/html/ScrollLogicalPosition.hx create mode 100644 std/js/html/ScrollSetting.hx create mode 100644 std/js/html/SecurityPolicyViolationEvent.hx create mode 100644 std/js/html/SecurityPolicyViolationEventDisposition.hx rename std/js/html/{AnimationEffectTimingProperties.hx => SecurityPolicyViolationEventInit.hx} (66%) create mode 100644 std/js/html/ServiceWorkerContainer.hx create mode 100644 std/js/html/ServiceWorkerUpdateViaCache.hx create mode 100644 std/js/html/ShadowRootInit.hx create mode 100644 std/js/html/ShadowRootMode.hx delete mode 100644 std/js/html/SimpleGestureEvent.hx create mode 100644 std/js/html/SlotElement.hx create mode 100644 std/js/html/StorageEstimate.hx create mode 100644 std/js/html/StorageManager.hx create mode 100644 std/js/html/StorageType.hx create mode 100644 std/js/html/VisualViewport.hx create mode 100644 std/js/html/WorkerOptions.hx rename std/js/html/{ChromeFilePropertyBag.hx => WorkletGlobalScope.hx} (82%) create mode 100644 std/js/html/audio/AnalyserOptions.hx create mode 100644 std/js/html/audio/AudioBufferOptions.hx create mode 100644 std/js/html/audio/AudioBufferSourceOptions.hx rename std/js/html/{webgl/ExtensionDebugShaders.hx => audio/AudioContextOptions.hx} (54%) rename std/js/html/{ => audio}/AudioContextState.hx (86%) create mode 100644 std/js/html/audio/AudioNodeOptions.hx rename std/js/html/{webgl/ExtensionTextureFloatLinear.hx => audio/AudioScheduledSourceNode.hx} (51%) rename std/js/html/{ComputedTimingProperties.hx => audio/AudioWorkletGlobalScope.hx} (71%) rename std/js/html/{NotifyPaintEvent.hx => audio/AudioWorkletNodeOptions.hx} (75%) rename std/js/html/{DesktopNotification.hx => audio/AudioWorkletProcessor.hx} (76%) create mode 100644 std/js/html/audio/BaseAudioContext.hx create mode 100644 std/js/html/audio/BiquadFilterOptions.hx create mode 100644 std/js/html/audio/ChannelMergerOptions.hx create mode 100644 std/js/html/audio/ChannelSplitterOptions.hx create mode 100644 std/js/html/audio/ConstantSourceNode.hx create mode 100644 std/js/html/audio/ConstantSourceOptions.hx create mode 100644 std/js/html/audio/ConvolverOptions.hx create mode 100644 std/js/html/audio/DelayOptions.hx create mode 100644 std/js/html/audio/DynamicsCompressorOptions.hx create mode 100644 std/js/html/audio/GainOptions.hx create mode 100644 std/js/html/audio/IIRFilterNode.hx create mode 100644 std/js/html/audio/IIRFilterOptions.hx create mode 100644 std/js/html/audio/MediaElementAudioSourceOptions.hx create mode 100644 std/js/html/audio/MediaStreamAudioSourceOptions.hx create mode 100644 std/js/html/audio/OfflineAudioContextOptions.hx create mode 100644 std/js/html/audio/OscillatorOptions.hx create mode 100644 std/js/html/audio/PannerOptions.hx create mode 100644 std/js/html/audio/PeriodicWaveConstraints.hx create mode 100644 std/js/html/audio/PeriodicWaveOptions.hx create mode 100644 std/js/html/audio/StereoPannerOptions.hx create mode 100644 std/js/html/audio/WaveShaperOptions.hx delete mode 100644 std/js/html/compat/DataView.hx delete mode 100644 std/js/html/compat/Float32Array.hx delete mode 100644 std/js/html/compat/Float64Array.hx delete mode 100644 std/js/html/compat/Uint8Array.hx rename std/js/html/{DesktopNotificationCenter.hx => eme/MediaEncryptedEvent.hx} (72%) create mode 100644 std/js/html/eme/MediaKeyError.hx create mode 100644 std/js/html/eme/MediaKeyMessageEvent.hx create mode 100644 std/js/html/eme/MediaKeyMessageEventInit.hx create mode 100644 std/js/html/eme/MediaKeyMessageType.hx create mode 100644 std/js/html/eme/MediaKeyNeededEventInit.hx create mode 100644 std/js/html/eme/MediaKeySession.hx create mode 100644 std/js/html/eme/MediaKeySessionType.hx create mode 100644 std/js/html/eme/MediaKeyStatusMap.hx create mode 100644 std/js/html/eme/MediaKeySystemAccess.hx create mode 100644 std/js/html/eme/MediaKeySystemConfiguration.hx create mode 100644 std/js/html/eme/MediaKeySystemMediaCapability.hx create mode 100644 std/js/html/eme/MediaKeys.hx create mode 100644 std/js/html/eme/MediaKeysRequirement.hx create mode 100644 std/js/html/midi/MIDIAccess.hx create mode 100644 std/js/html/midi/MIDIConnectionEvent.hx create mode 100644 std/js/html/midi/MIDIConnectionEventInit.hx create mode 100644 std/js/html/midi/MIDIInput.hx create mode 100644 std/js/html/midi/MIDIInputMap.hx create mode 100644 std/js/html/midi/MIDIMessageEvent.hx create mode 100644 std/js/html/midi/MIDIMessageEventInit.hx create mode 100644 std/js/html/midi/MIDIOptions.hx rename std/js/html/{XMLStylesheetProcessingInstruction.hx => midi/MIDIOutput.hx} (78%) create mode 100644 std/js/html/midi/MIDIOutputMap.hx rename std/js/html/{RGBColor.hx => midi/MIDIPort.hx} (62%) create mode 100644 std/js/html/midi/MIDIPortConnectionState.hx create mode 100644 std/js/html/midi/MIDIPortDeviceState.hx create mode 100644 std/js/html/midi/MIDIPortType.hx create mode 100644 std/js/html/push/PushEncryptionKeyName.hx create mode 100644 std/js/html/push/PushEvent.hx create mode 100644 std/js/html/push/PushEventInit.hx create mode 100644 std/js/html/push/PushManager.hx create mode 100644 std/js/html/push/PushMessageData.hx create mode 100644 std/js/html/push/PushPermissionState.hx create mode 100644 std/js/html/push/PushSubscription.hx create mode 100644 std/js/html/push/PushSubscriptionInit.hx create mode 100644 std/js/html/push/PushSubscriptionJSON.hx create mode 100644 std/js/html/push/PushSubscriptionKeys.hx rename std/js/html/{svg/Document.hx => push/PushSubscriptionOptions.hx} (79%) create mode 100644 std/js/html/push/PushSubscriptionOptionsInit.hx create mode 100644 std/js/html/rtc/BundlePolicy.hx create mode 100644 std/js/html/rtc/DTMFSender.hx create mode 100644 std/js/html/rtc/DTMFToneChangeEvent.hx create mode 100644 std/js/html/rtc/DTMFToneChangeEventInit.hx rename std/js/html/{ApplicationCache.hx => rtc/DataChannelEvent.hx} (53%) create mode 100644 std/js/html/rtc/DataChannelEventInit.hx rename std/js/html/{DummyInterface.hx => rtc/DegradationPreference.hx} (78%) create mode 100644 std/js/html/rtc/FecParameters.hx create mode 100644 std/js/html/rtc/IceCredentialType.hx rename std/js/html/{UncaughtRejectionObserver.hx => rtc/IceServer.hx} (77%) create mode 100644 std/js/html/rtc/IceTransportPolicy.hx create mode 100644 std/js/html/rtc/IdentityProviderDetails.hx create mode 100644 std/js/html/rtc/IdentityProviderOptions.hx rename std/js/html/{webgl/VertexArrayObjectOES.hx => rtc/PeerConnectionIceEvent.hx} (55%) create mode 100644 std/js/html/rtc/PeerConnectionIceEventInit.hx create mode 100644 std/js/html/rtc/PriorityType.hx create mode 100644 std/js/html/rtc/RtcpParameters.hx create mode 100644 std/js/html/rtc/RtpCodecParameters.hx create mode 100644 std/js/html/rtc/RtpContributingSource.hx rename std/js/html/{AudioChannel.hx => rtc/RtpEncodingParameters.hx} (72%) create mode 100644 std/js/html/rtc/RtpHeaderExtensionParameters.hx create mode 100644 std/js/html/rtc/RtpSynchronizationSource.hx create mode 100644 std/js/html/rtc/RtpTransceiver.hx create mode 100644 std/js/html/rtc/RtpTransceiverDirection.hx create mode 100644 std/js/html/rtc/RtpTransceiverInit.hx create mode 100644 std/js/html/rtc/RtxParameters.hx create mode 100644 std/js/html/rtc/TrackEvent.hx create mode 100644 std/js/html/rtc/TrackEventInit.hx rename std/js/html/svg/{AltGlyphElement.hx => GeometryElement.hx} (54%) delete mode 100644 std/js/html/svg/ZoomEvent.hx create mode 100644 std/js/html/webgl/Extension.hx delete mode 100644 std/js/html/webgl/ExtensionTextureHalfFloatLinear.hx create mode 100644 std/js/html/webgl/GL2.hx create mode 100644 std/js/html/webgl/PowerPreference.hx rename std/js/html/webgl/{ExtensionTextureFloat.hx => Query.hx} (66%) rename std/js/html/webgl/{ExtensionFragDepth.hx => Sampler.hx} (62%) create mode 100644 std/js/html/webgl/Sync.hx delete mode 100644 std/js/html/webgl/TimerQueryEXT.hx rename std/js/html/webgl/{ExtensionShaderTextureLod.hx => TransformFeedback.hx} (58%) rename std/js/html/webgl/{ExtensionElementIndexUint.hx => VertexArrayObject.hx} (66%) create mode 100644 std/js/html/webgl/WebGL2RenderingContext.hx rename std/js/html/webgl/{ExtensionInstancedArrays.hx => extension/ANGLEInstancedArrays.hx} (90%) rename std/js/html/webgl/{ExtensionBlendMinMax.hx => extension/EXTBlendMinmax.hx} (86%) create mode 100644 std/js/html/webgl/extension/EXTColorBufferFloat.hx rename std/js/html/webgl/{ExtensionColorBufferHalfFloat.hx => extension/EXTColorBufferHalfFloat.hx} (87%) rename std/js/html/webgl/{ExtensionDisjointTimerQuery.hx => extension/EXTDisjointTimerQuery.hx} (69%) create mode 100644 std/js/html/webgl/extension/EXTFragDepth.hx create mode 100644 std/js/html/webgl/extension/EXTShaderTextureLod.hx rename std/js/html/webgl/{ExtensionSRGB.hx => extension/EXTSrgb.hx} (83%) rename std/js/html/webgl/{ExtensionTextureFilterAnisotropic.hx => extension/EXTTextureFilterAnisotropic.hx} (79%) create mode 100644 std/js/html/webgl/extension/OESElementIndexUint.hx rename std/js/html/webgl/{ExtensionStandardDerivatives.hx => extension/OESStandardDerivatives.hx} (87%) create mode 100644 std/js/html/webgl/extension/OESTextureFloat.hx create mode 100644 std/js/html/webgl/extension/OESTextureFloatLinear.hx rename std/js/html/webgl/{ExtensionTextureHalfFloat.hx => extension/OESTextureHalfFloat.hx} (91%) create mode 100644 std/js/html/webgl/extension/OESTextureHalfFloatLinear.hx rename std/js/html/webgl/{ExtensionVertexArrayObject.hx => extension/OESVertexArrayObject.hx} (70%) rename std/js/html/webgl/{ExtensionColorBufferFloat.hx => extension/WEBGLColorBufferFloat.hx} (87%) create mode 100644 std/js/html/webgl/extension/WEBGLCompressedTextureAstc.hx rename std/js/html/webgl/{ExtensionCompressedTextureATC.hx => extension/WEBGLCompressedTextureAtc.hx} (83%) rename std/js/html/webgl/{ExtensionCompressedTextureES3.hx => extension/WEBGLCompressedTextureEtc.hx} (59%) rename std/js/html/webgl/{ExtensionCompressedTextureETC1.hx => extension/WEBGLCompressedTextureEtc1.hx} (90%) rename std/js/html/webgl/{ExtensionCompressedTexturePVRTC.hx => extension/WEBGLCompressedTexturePvrtc.hx} (82%) rename std/js/html/webgl/{ExtensionCompressedTextureS3TC.hx => extension/WEBGLCompressedTextureS3tc.hx} (77%) create mode 100644 std/js/html/webgl/extension/WEBGLCompressedTextureS3tcSrgb.hx rename std/js/html/webgl/{ExtensionDebugRendererInfo.hx => extension/WEBGLDebugRendererInfo.hx} (94%) create mode 100644 std/js/html/webgl/extension/WEBGLDebugShaders.hx rename std/js/html/webgl/{ExtensionDepthTexture.hx => extension/WEBGLDepthTexture.hx} (90%) rename std/js/html/webgl/{ExtensionDrawBuffers.hx => extension/WEBGLDrawBuffers.hx} (91%) create mode 100644 std/js/html/webgl/extension/WEBGLLoseContext.hx delete mode 100644 std/js/jquery/Callbacks.hx delete mode 100644 std/js/jquery/Deferred.hx delete mode 100644 std/js/jquery/Event.hx delete mode 100644 std/js/jquery/Helper.hx delete mode 100644 std/js/jquery/JQuery.hx delete mode 100644 std/js/jquery/JqEltsIterator.hx delete mode 100644 std/js/jquery/JqIterator.hx delete mode 100644 std/js/jquery/JqXHR.hx delete mode 100644 std/js/jquery/Promise.hx rename std/js/{html/DOMCursor.hx => lib/ArrayBuffer.hx} (57%) create mode 100644 std/js/lib/ArrayBufferView.hx create mode 100644 std/js/lib/BufferSource.hx create mode 100644 std/js/lib/DataView.hx create mode 100644 std/js/lib/Date.hx rename std/{php7/_std/haxe/zip/Compress.hx => js/lib/Error.hx} (57%) create mode 100644 std/js/lib/Float32Array.hx create mode 100644 std/js/lib/Float64Array.hx create mode 100644 std/js/lib/Function.hx create mode 100644 std/js/lib/Int16Array.hx create mode 100644 std/js/lib/Int32Array.hx create mode 100644 std/js/lib/Int8Array.hx create mode 100644 std/js/lib/Intl.hx create mode 100644 std/js/lib/Iterator.hx create mode 100644 std/js/lib/Map.hx create mode 100644 std/js/lib/Math.hx create mode 100644 std/js/lib/Object.hx create mode 100644 std/js/lib/Promise.hx create mode 100644 std/js/lib/Proxy.hx create mode 100644 std/js/lib/Reflect.hx create mode 100644 std/js/lib/RegExp.hx create mode 100644 std/js/lib/Set.hx create mode 100644 std/js/lib/Symbol.hx create mode 100644 std/js/lib/Uint16Array.hx create mode 100644 std/js/lib/Uint32Array.hx create mode 100644 std/js/lib/Uint8Array.hx create mode 100644 std/js/lib/Uint8ClampedArray.hx create mode 100644 std/js/lib/WeakMap.hx create mode 100644 std/js/lib/WeakSet.hx create mode 100644 std/js/lib/WebAssembly.hx create mode 100644 std/js/lib/intl/Collator.hx create mode 100644 std/js/lib/intl/DateTimeFormat.hx create mode 100644 std/js/lib/intl/LocaleMatcher.hx create mode 100644 std/js/lib/intl/NumberFormat.hx create mode 100644 std/js/lib/intl/PluralRules.hx create mode 100644 std/js/lib/intl/RelativeTimeFormat.hx create mode 100644 std/js/lib/webassembly/CompileError.hx create mode 100644 std/js/lib/webassembly/Global.hx create mode 100644 std/js/lib/webassembly/Instance.hx rename std/js/{html/ShadowElement.hx => lib/webassembly/LinkError.hx} (61%) create mode 100644 std/js/lib/webassembly/Memory.hx create mode 100644 std/js/lib/webassembly/Module.hx create mode 100644 std/js/lib/webassembly/RuntimeError.hx create mode 100644 std/js/lib/webassembly/Table.hx delete mode 100644 std/js/swfobject/SWFObject.hx create mode 100644 std/jvm/DynamicObject.hx create mode 100644 std/jvm/EmptyConstructor.hx create mode 100644 std/jvm/Enum.hx rename std/{php7/_std/sys/net/Host.hx => jvm/Exception.hx} (59%) create mode 100644 std/jvm/Jvm.hx create mode 100644 std/jvm/NativeTools.hx rename std/{java/internal/Iterator.hx => jvm/Object.hx} (76%) create mode 100644 std/jvm/StringExt.hx create mode 100644 std/jvm/_std/Reflect.hx create mode 100644 std/jvm/_std/Std.hx create mode 100644 std/jvm/_std/String.hx create mode 100644 std/jvm/_std/Type.hx create mode 100644 std/jvm/annotation/ClassReflectionInformation.hx create mode 100644 std/jvm/annotation/EnumReflectionInformation.hx create mode 100644 std/jvm/annotation/EnumValueReflectionInformation.hx delete mode 100644 std/lua/_lua/_hx_apply.lua create mode 100644 std/lua/_lua/_hx_apply_self.lua create mode 100644 std/lua/_lua/_hx_bind.lua create mode 100644 std/lua/_lua/_hx_bit.lua create mode 100644 std/lua/_lua/_hx_bit_clamp.lua create mode 100644 std/lua/_lua/_hx_box_mr.lua create mode 100644 std/lua/_lua/_hx_dyn_add.lua create mode 100644 std/lua/_lua/_hx_func_to_field.lua create mode 100644 std/lua/_lua/_hx_print.lua create mode 100644 std/lua/_lua/_hx_random_init.lua create mode 100644 std/lua/_lua/_hx_static_to_instance.lua create mode 100644 std/lua/_lua/_hx_table.lua create mode 100644 std/lua/_lua/_hx_wrap_if_string_field.lua delete mode 100644 std/lua/_std/haxe/Utf8.hx create mode 100644 std/lua/_std/sys/net/Host.hx create mode 100644 std/lua/_std/sys/net/Socket.hx rename std/{php7/net/SslSocket.hx => lua/lib/luasocket/socket/AddrInfo.hx} (86%) create mode 100644 std/lua/lib/luasocket/socket/Dns.hx create mode 100644 std/lua/lib/luasocket/socket/ReceivePattern.hx create mode 100644 std/lua/lib/luasocket/socket/SelectResult.hx create mode 100644 std/lua/lib/luasocket/socket/ShutdownMode.hx create mode 100644 std/lua/lib/luasocket/socket/TcpClient.hx create mode 100644 std/lua/lib/luasocket/socket/TcpMaster.hx create mode 100644 std/lua/lib/luasocket/socket/TcpOption.hx create mode 100644 std/lua/lib/luasocket/socket/TcpServer.hx create mode 100644 std/lua/lib/luasocket/socket/TimeoutMode.hx create mode 100644 std/lua/lib/luautf8/Utf8.hx create mode 100644 std/neko/Utf8.hx create mode 100644 std/neko/_std/sys/thread/Deque.hx create mode 100644 std/neko/_std/sys/thread/Lock.hx create mode 100644 std/neko/_std/sys/thread/Mutex.hx create mode 100644 std/neko/_std/sys/thread/Thread.hx create mode 100644 std/neko/_std/sys/thread/Tls.hx rename std/php/{HException.hx => ArrayAccess.hx} (76%) delete mode 100644 std/php/BytesData.hx create mode 100644 std/php/Closure.hx create mode 100644 std/php/Const.hx rename std/{php7 => php}/Error.hx (59%) rename std/{php7 => php}/ErrorException.hx (59%) create mode 100644 std/php/Generator.hx create mode 100644 std/php/Global.hx rename std/{php7/NativeArray.hx => php/NativeAssocArray.hx} (52%) create mode 100644 std/php/NativeIndexedArray.hx rename std/{php7 => php}/NativeStructArray.hx (89%) delete mode 100644 std/php/NativeXml.hx create mode 100644 std/php/Ref.hx create mode 100644 std/php/Resource.hx create mode 100644 std/php/RuntimeException.hx rename std/{php7/NativeString.hx => php/Scalar.hx} (82%) rename std/{php7/IteratorAggregate.hx => php/SessionHandlerInterface.hx} (70%) create mode 100644 std/php/StdClass.hx create mode 100644 std/php/SuperGlobal.hx create mode 100644 std/php/Syntax.hx rename std/{php7/NativeIndexedArray.hx => php/Throwable.hx} (62%) create mode 100644 std/php/Traversable.hx create mode 100644 std/php/_polyfills.php rename std/{php7 => php}/_std/Array.hx (66%) delete mode 100644 std/php/_std/List.hx create mode 100644 std/php/_std/String.hx rename std/{php7 => php}/_std/haxe/CallStack.hx (50%) create mode 100644 std/php/_std/haxe/crypto/Base64.hx rename std/{php7 => php}/_std/haxe/crypto/Md5.hx (81%) rename std/{php7 => php}/_std/haxe/crypto/Sha1.hx (85%) rename std/{php7 => php}/_std/haxe/crypto/Sha224.hx (85%) rename std/{php7 => php}/_std/haxe/crypto/Sha256.hx (85%) create mode 100644 std/php/_std/haxe/ds/Vector.hx create mode 100644 std/php/_std/haxe/format/JsonParser.hx create mode 100644 std/php/_std/haxe/io/Bytes.hx rename std/{php7 => php}/_std/haxe/io/BytesBuffer.hx (55%) rename std/{php7 => php}/_std/haxe/io/BytesData.hx (56%) rename std/{php7 => php}/_std/haxe/io/BytesInput.hx (61%) rename std/{php7 => php}/_std/haxe/io/BytesOutput.hx (74%) rename std/{php7 => php}/_std/haxe/io/FPHelper.hx (66%) rename std/{js/html/compat/ArrayBuffer.hx => php/_std/haxe/iterators/StringIteratorUnicode.hx} (52%) create mode 100644 std/php/_std/haxe/iterators/StringKeyValueIteratorUnicode.hx create mode 100644 std/php/_std/haxe/xml/Parser.hx create mode 100644 std/php/db/Mysqli.hx rename std/{php7/NativeAssocArray.hx => php/db/Mysqli_driver.hx} (68%) create mode 100644 std/php/db/Mysqli_result.hx create mode 100644 std/php/db/Mysqli_stmt.hx create mode 100644 std/php/db/Mysqli_warning.hx create mode 100644 std/php/db/PDOException.hx create mode 100644 std/php/db/PDOStatement.hx create mode 100644 std/php/db/SQLite3.hx create mode 100644 std/php/db/SQLite3Result.hx create mode 100644 std/php/db/SQLite3Stmt.hx rename std/{php7/_std/sys => php}/net/Socket.hx (51%) create mode 100644 std/php/reflection/ReflectionClass.hx create mode 100644 std/php/reflection/ReflectionFunctionAbstract.hx create mode 100644 std/php/reflection/ReflectionMethod.hx create mode 100644 std/php/reflection/ReflectionProperty.hx create mode 100644 std/php/reflection/Reflector.hx delete mode 100644 std/php7/ArrayAccess.hx delete mode 100644 std/php7/Boot.hx delete mode 100644 std/php7/Closure.hx delete mode 100644 std/php7/Const.hx delete mode 100644 std/php7/Exception.hx delete mode 100644 std/php7/Global.hx delete mode 100644 std/php7/Lib.hx delete mode 100644 std/php7/Ref.hx delete mode 100644 std/php7/Resource.hx delete mode 100644 std/php7/RuntimeException.hx delete mode 100644 std/php7/Scalar.hx delete mode 100644 std/php7/Session.hx delete mode 100644 std/php7/SessionHandlerInterface.hx delete mode 100644 std/php7/StdClass.hx delete mode 100644 std/php7/SuperGlobal.hx delete mode 100644 std/php7/Syntax.hx delete mode 100644 std/php7/Throwable.hx delete mode 100644 std/php7/Traversable.hx delete mode 100644 std/php7/Web.hx delete mode 100644 std/php7/_std/Date.hx delete mode 100644 std/php7/_std/EReg.hx delete mode 100644 std/php7/_std/Math.hx delete mode 100644 std/php7/_std/Reflect.hx delete mode 100644 std/php7/_std/Std.hx delete mode 100644 std/php7/_std/StringTools.hx delete mode 100644 std/php7/_std/Sys.hx delete mode 100644 std/php7/_std/Type.hx delete mode 100644 std/php7/_std/haxe/Json.hx delete mode 100644 std/php7/_std/haxe/Resource.hx delete mode 100644 std/php7/_std/haxe/Utf8.hx delete mode 100644 std/php7/_std/haxe/ds/IntMap.hx delete mode 100644 std/php7/_std/haxe/ds/ObjectMap.hx delete mode 100644 std/php7/_std/haxe/ds/StringMap.hx delete mode 100644 std/php7/_std/haxe/io/Bytes.hx delete mode 100644 std/php7/_std/sys/FileSystem.hx delete mode 100644 std/php7/_std/sys/db/Mysql.hx delete mode 100644 std/php7/_std/sys/db/Sqlite.hx delete mode 100644 std/php7/_std/sys/io/File.hx delete mode 100644 std/php7/_std/sys/io/FileInput.hx delete mode 100644 std/php7/_std/sys/io/FileOutput.hx delete mode 100644 std/php7/_std/sys/io/Process.hx delete mode 100644 std/php7/db/Mysqli.hx delete mode 100644 std/php7/db/Mysqli_driver.hx delete mode 100644 std/php7/db/Mysqli_result.hx delete mode 100644 std/php7/db/Mysqli_stmt.hx delete mode 100644 std/php7/db/Mysqli_warning.hx delete mode 100644 std/php7/db/PDO.hx delete mode 100644 std/php7/db/PDOException.hx delete mode 100644 std/php7/db/PDOStatement.hx delete mode 100644 std/php7/db/SQLite3.hx delete mode 100644 std/php7/db/SQLite3Result.hx delete mode 100644 std/php7/db/SQLite3Stmt.hx delete mode 100644 std/php7/reflection/ReflectionClass.hx delete mode 100644 std/php7/reflection/ReflectionFunctionAbstract.hx delete mode 100644 std/php7/reflection/ReflectionMethod.hx delete mode 100644 std/php7/reflection/ReflectionProperty.hx delete mode 100644 std/php7/reflection/Reflector.hx create mode 100644 std/python/internal/MethodClosure.hx create mode 100644 std/python/lib/Hashlib.hx create mode 100644 std/python/lib/Socket.hx create mode 100644 std/python/lib/Ssl.hx create mode 100644 std/python/lib/socket/Address.hx create mode 100644 std/python/lib/socket/Socket.hx create mode 100644 std/python/lib/ssl/Purpose.hx create mode 100644 std/python/lib/ssl/SSLContext.hx create mode 100644 std/python/lib/ssl/SSLSession.hx create mode 100644 std/python/lib/ssl/SSLSocket.hx create mode 100644 std/python/net/SslSocket.hx create mode 100644 std/sys/Http.hx delete mode 100644 std/sys/db/Manager.hx delete mode 100644 std/sys/db/Object.hx delete mode 100644 std/sys/db/RecordInfos.hx delete mode 100644 std/sys/db/RecordMacros.hx delete mode 100644 std/sys/db/TableCreate.hx delete mode 100644 std/sys/db/Transaction.hx delete mode 100644 std/sys/db/Types.hx create mode 100644 std/sys/thread/Deque.hx create mode 100644 std/sys/thread/Lock.hx create mode 100644 std/sys/thread/Mutex.hx create mode 100644 std/sys/thread/Thread.hx create mode 100644 std/sys/thread/Tls.hx create mode 100644 tests/benchs/.vscode/settings.json create mode 100644 tests/benchs/.vscode/tasks.json create mode 100644 tests/benchs/build.hxml create mode 100644 tests/benchs/mandelbrot/compile-hl.hxml create mode 100644 tests/benchs/mandelbrot/compile-jvm.hxml create mode 100644 tests/benchs/mandelbrot/compile-macro.hxml delete mode 100644 tests/benchs/mtnetwork/MTNetwork.hx create mode 100644 tests/benchs/src/Macro.hx create mode 100644 tests/benchs/src/Main.hx create mode 100644 tests/benchs/src/TestCase.hx create mode 100644 tests/benchs/src/cases/Access.hx create mode 100644 tests/benchs/src/cases/Calls.hx create mode 100644 tests/benchs/src/cases/CharacterAccess.hx create mode 100644 tests/benchs/src/cases/CustomIterator.hx create mode 100644 tests/benchs/src/cases/Ds.hx create mode 100644 tests/benchs/src/cases/StringIterator.hx create mode 100644 tests/benchs/src/cases/StringScan.hx create mode 100644 tests/benchs/src/hxbenchmark/CaseResult.hx create mode 100644 tests/benchs/src/hxbenchmark/ResultPrinter.hx create mode 100644 tests/benchs/src/hxbenchmark/Suite.hx create mode 100644 tests/benchs/src/hxbenchmark/SuiteResult.hx create mode 100644 tests/display/.vscode/launch.json create mode 100644 tests/display/.vscode/settings.json create mode 100644 tests/display/.vscode/tasks.json create mode 100644 tests/display/src-shared/Marker.hx create mode 100644 tests/display/src/Diagnostic.hx create mode 100644 tests/display/src/cases/ArrayAccessSignature.hx create mode 100644 tests/display/src/cases/ArrowFunctions.hx create mode 100644 tests/display/src/cases/InMacro.hx create mode 100644 tests/display/src/cases/Issue4155.hx create mode 100644 tests/display/src/cases/Issue4345.hx create mode 100644 tests/display/src/cases/Issue5306.hx create mode 100644 tests/display/src/cases/Issue5649.hx create mode 100644 tests/display/src/cases/Issue5767.hx create mode 100644 tests/display/src/cases/Issue5967.hx create mode 100644 tests/display/src/cases/Issue5999.hx create mode 100644 tests/display/src/cases/Issue6004.hx create mode 100644 tests/display/src/cases/Issue6020.hx create mode 100644 tests/display/src/cases/Issue6227.hx create mode 100644 tests/display/src/cases/Issue6265.hx create mode 100644 tests/display/src/cases/Issue6275.hx create mode 100644 tests/display/src/cases/Issue6381.hx create mode 100644 tests/display/src/cases/Issue6396.hx create mode 100644 tests/display/src/cases/Issue6399.hx create mode 100644 tests/display/src/cases/Issue6405.hx create mode 100644 tests/display/src/cases/Issue6416.hx create mode 100644 tests/display/src/cases/Issue6417.hx create mode 100644 tests/display/src/cases/Issue6421.hx create mode 100644 tests/display/src/cases/Issue6422.hx create mode 100644 tests/display/src/cases/Issue6423.hx create mode 100644 tests/display/src/cases/Issue6434.hx create mode 100644 tests/display/src/cases/Issue6442.hx create mode 100644 tests/display/src/cases/Issue6740.hx create mode 100644 tests/display/src/cases/Issue6756.hx create mode 100644 tests/display/src/cases/Issue6779.hx create mode 100644 tests/display/src/cases/Issue6923.hx create mode 100644 tests/display/src/cases/Issue6943.hx create mode 100644 tests/display/src/cases/Issue6951.hx create mode 100644 tests/display/src/cases/Issue6997.hx create mode 100644 tests/display/src/cases/Issue7020.hx create mode 100644 tests/display/src/cases/Issue7022.hx create mode 100644 tests/display/src/cases/Issue7023.hx create mode 100644 tests/display/src/cases/Issue7027.hx create mode 100644 tests/display/src/cases/Issue7029.hx create mode 100644 tests/display/src/cases/Issue7046.hx create mode 100644 tests/display/src/cases/Issue7047.hx create mode 100644 tests/display/src/cases/Issue7050.hx create mode 100644 tests/display/src/cases/Issue7051.hx create mode 100644 tests/display/src/cases/Issue7053.hx create mode 100644 tests/display/src/cases/Issue7055.hx create mode 100644 tests/display/src/cases/Issue7057.hx create mode 100644 tests/display/src/cases/Issue7059.hx create mode 100644 tests/display/src/cases/Issue7060.hx create mode 100644 tests/display/src/cases/Issue7061.hx create mode 100644 tests/display/src/cases/Issue7063.hx create mode 100644 tests/display/src/cases/Issue7066.hx create mode 100644 tests/display/src/cases/Issue7068.hx create mode 100644 tests/display/src/cases/Issue7069.hx create mode 100644 tests/display/src/cases/Issue7071.hx create mode 100644 tests/display/src/cases/Issue7072.hx create mode 100644 tests/display/src/cases/Issue7075.hx create mode 100644 tests/display/src/cases/Issue7082.hx create mode 100644 tests/display/src/cases/Issue7084.hx create mode 100644 tests/display/src/cases/Issue7086.hx create mode 100644 tests/display/src/cases/Issue7089.hx create mode 100644 tests/display/src/cases/Issue7092.hx create mode 100644 tests/display/src/cases/Issue7098.hx create mode 100644 tests/display/src/cases/Issue7102.hx create mode 100644 tests/display/src/cases/Issue7111.hx create mode 100644 tests/display/src/cases/Issue7114.hx create mode 100644 tests/display/src/cases/Issue7133.hx create mode 100644 tests/display/src/cases/Issue7136.hx create mode 100644 tests/display/src/cases/Issue7137.hx create mode 100644 tests/display/src/cases/Issue7148.hx create mode 100644 tests/display/src/cases/Issue7158.hx create mode 100644 tests/display/src/cases/Issue7171.hx create mode 100644 tests/display/src/cases/Issue7172.hx create mode 100644 tests/display/src/cases/Issue7211.hx create mode 100644 tests/display/src/cases/Issue7219.hx create mode 100644 tests/display/src/cases/Issue7224.hx create mode 100644 tests/display/src/cases/Issue7248.hx create mode 100644 tests/display/src/cases/Issue7252.hx create mode 100644 tests/display/src/cases/Issue7281.hx create mode 100644 tests/display/src/cases/Issue7319.hx create mode 100644 tests/display/src/cases/Issue7320.hx create mode 100644 tests/display/src/cases/Issue7326.hx create mode 100644 tests/display/src/cases/Issue7327.hx create mode 100644 tests/display/src/cases/Issue7328.hx create mode 100644 tests/display/src/cases/Issue7471.hx create mode 100644 tests/display/src/cases/Issue7577.hx create mode 100644 tests/display/src/cases/Issue7627.hx create mode 100644 tests/display/src/cases/Issue7650.hx create mode 100644 tests/display/src/cases/Issue7751.hx create mode 100644 tests/display/src/cases/Issue7752.hx create mode 100644 tests/display/src/cases/Issue7761.hx create mode 100644 tests/display/src/cases/Issue7777.hx create mode 100644 tests/display/src/cases/Issue7877.hx create mode 100644 tests/display/src/cases/Issue7878.hx create mode 100644 tests/display/src/cases/Issue7906.hx create mode 100644 tests/display/src/cases/Issue7911.hx create mode 100644 tests/display/src/cases/Issue7932.hx create mode 100644 tests/display/src/cases/Issue7935.hx create mode 100644 tests/display/src/cases/Issue7937.hx create mode 100644 tests/display/src/cases/Issue7938.hx create mode 100644 tests/display/src/cases/Issue7939.hx create mode 100644 tests/display/src/cases/Issue7940.hx create mode 100644 tests/display/src/cases/Issue7943.hx create mode 100644 tests/display/src/cases/Issue7945.hx create mode 100644 tests/display/src/cases/Issue7946.hx create mode 100644 tests/display/src/cases/Issue7947.hx create mode 100644 tests/display/src/cases/Issue7972.hx create mode 100644 tests/display/src/cases/Issue7998.hx create mode 100644 tests/display/src/cases/Issue8007.hx create mode 100644 tests/display/src/cases/Issue8014.hx create mode 100644 tests/display/src/cases/Issue8046.hx create mode 100644 tests/display/src/cases/Issue8078.hx create mode 100644 tests/display/src/cases/Issue8180.hx create mode 100644 tests/display/src/cases/Issue8217.hx create mode 100644 tests/display/src/cases/Issue8345.hx create mode 100644 tests/display/src/cases/Issue8359.hx create mode 100644 tests/display/src/cases/Issue8383.hx create mode 100644 tests/display/src/cases/Issue8396.hx create mode 100644 tests/display/src/cases/Issue8420.hx create mode 100644 tests/display/src/cases/Issue8459.hx create mode 100644 tests/display/src/cases/Issue8558.hx create mode 100644 tests/display/src/cases/IssueTemplate.hx create mode 100644 tests/display/src/cases/Override.hx create mode 100644 tests/display/src/cases/Resuming.hx create mode 100644 tests/display/src/cases/StaticExtension.hx create mode 100644 tests/display/src/cases/TypeHints.hx create mode 100644 tests/display/src/cases/VsHaxeIssue198.hx create mode 100644 tests/display/src/cases/_issue5417/Issue5417.hx create mode 100644 tests/display/src/cases/import.hx create mode 100644 tests/display/src/import.hx create mode 100644 tests/display/src/misc/ModuleWithPrivateType.hx create mode 100644 tests/display/src/misc/issue7098/Bar.hx create mode 100644 tests/display/src/misc/issue7777/Foo.hx create mode 100644 tests/display/src/misc/issue7777/Thing.hx create mode 100644 tests/display/src/misc/issue7877/ProcessMacro.hx create mode 100644 tests/display/src/misc/issue7877/ProcessedClass.hx create mode 100644 tests/display/src/misc/issue7911/Test.hx create mode 100644 tests/display/src/misc/issue7911/import.hx create mode 100644 tests/echoServer/EchoServer.hx create mode 100644 tests/echoServer/build.hxml create mode 100644 tests/echoServer/www/crossdomain.xml create mode 100644 tests/misc/README.md create mode 100644 tests/misc/compiler_loops/projects/Issue5189/Main.hx create mode 100644 tests/misc/compiler_loops/projects/Issue5189/compile-fail.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue5189/compile-fail.hxml.stderr create mode 100644 tests/misc/compiler_loops/projects/Issue5345/Main.hx create mode 100644 tests/misc/compiler_loops/projects/Issue5345/Main2.hx create mode 100644 tests/misc/compiler_loops/projects/Issue5345/Main3.hx create mode 100644 tests/misc/compiler_loops/projects/Issue5345/compile-fail.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue5345/compile-fail.hxml.stderr create mode 100644 tests/misc/compiler_loops/projects/Issue5345/compile2-fail.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue5345/compile2-fail.hxml.stderr create mode 100644 tests/misc/compiler_loops/projects/Issue5345/compile3-fail.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue5345/compile3-fail.hxml.stderr create mode 100644 tests/misc/compiler_loops/projects/Issue5785/Main1.hx create mode 100644 tests/misc/compiler_loops/projects/Issue5785/Main2.hx create mode 100644 tests/misc/compiler_loops/projects/Issue5785/Main3.hx create mode 100644 tests/misc/compiler_loops/projects/Issue5785/compile1.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue5785/compile2.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue5785/compile3.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue6038/Main.hx create mode 100644 tests/misc/compiler_loops/projects/Issue6038/compile.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue7733/Main.hx create mode 100644 tests/misc/compiler_loops/projects/Issue7733/compile.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue8588/Main.hx create mode 100644 tests/misc/compiler_loops/projects/Issue8588/Main2.hx create mode 100644 tests/misc/compiler_loops/projects/Issue8588/Main3.hx create mode 100644 tests/misc/compiler_loops/projects/Issue8588/Main4.hx create mode 100644 tests/misc/compiler_loops/projects/Issue8588/Main5.hx create mode 100644 tests/misc/compiler_loops/projects/Issue8588/compile-fail.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue8588/compile-fail.hxml.stderr create mode 100644 tests/misc/compiler_loops/projects/Issue8588/compile2-fail.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue8588/compile2-fail.hxml.stderr create mode 100644 tests/misc/compiler_loops/projects/Issue8588/compile3-fail.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue8588/compile3-fail.hxml.stderr create mode 100644 tests/misc/compiler_loops/projects/Issue8588/compile4-fail.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue8588/compile4-fail.hxml.stderr create mode 100644 tests/misc/compiler_loops/projects/Issue8588/compile5-fail.hxml create mode 100644 tests/misc/compiler_loops/projects/Issue8588/compile5-fail.hxml.stderr create mode 100644 tests/misc/compiler_loops/run.hxml rename tests/misc/{ => cs}/csTwoLibs/Lib1.hx (100%) rename tests/misc/{ => cs}/csTwoLibs/Main.hx (100%) create mode 100644 tests/misc/cs/csTwoLibs/compile-1.hxml rename tests/misc/{ => cs}/csTwoLibs/compile-2.hxml (52%) rename tests/misc/{ => cs}/csTwoLibs/compile-3.hxml (56%) rename tests/misc/{ => cs}/csTwoLibs/compile-4.hxml (60%) create mode 100644 tests/misc/cs/projects/Issue3526/IncompatibleCombinations.hx create mode 100644 tests/misc/cs/projects/Issue3526/Main.hx create mode 100644 tests/misc/cs/projects/Issue3526/compile-7.3.hxml create mode 100644 tests/misc/cs/projects/Issue3526/compile.hxml create mode 100644 tests/misc/cs/projects/Issue3526/incompatible-combinations-fail.hxml create mode 100644 tests/misc/cs/projects/Issue3526/incompatible-combinations-fail.hxml.stderr create mode 100644 tests/misc/cs/projects/Issue3703/Main.hx create mode 100644 tests/misc/cs/projects/Issue3703/Test.hx create mode 100644 tests/misc/cs/projects/Issue3703/compile.hxml create mode 100644 tests/misc/cs/projects/Issue4002/Main.hx create mode 100644 tests/misc/cs/projects/Issue4002/compile.hxml rename tests/misc/{ => cs}/projects/Issue4116/base/A.hx (100%) rename tests/misc/{ => cs}/projects/Issue4116/compile.hxml (100%) create mode 100644 tests/misc/cs/projects/Issue4151/DynamicAudioNormalizerNET.dll rename tests/misc/{pythonImport/native_python/__init__.py => cs/projects/Issue4151/Main.hx} (100%) create mode 100644 tests/misc/cs/projects/Issue4151/compile.hxml create mode 100644 tests/misc/cs/projects/Issue4598/Main.hx create mode 100644 tests/misc/cs/projects/Issue4598/Run.hx create mode 100644 tests/misc/cs/projects/Issue4598/compile.hxml create mode 100644 tests/misc/cs/projects/Issue4623/Main.hx create mode 100644 tests/misc/cs/projects/Issue4623/Run.hx create mode 100644 tests/misc/cs/projects/Issue4623/compile.hxml create mode 100644 tests/misc/cs/projects/Issue5434/Main.hx create mode 100644 tests/misc/cs/projects/Issue5434/compile.hxml create mode 100644 tests/misc/cs/projects/Issue5915/Test.hx create mode 100644 tests/misc/cs/projects/Issue5915/compile.hxml create mode 100644 tests/misc/cs/projects/Issue5953/Main.hx create mode 100644 tests/misc/cs/projects/Issue5953/Reduced.hx create mode 100644 tests/misc/cs/projects/Issue5953/compile.hxml create mode 100644 tests/misc/cs/projects/Issue6635/Main.hx create mode 100644 tests/misc/cs/projects/Issue6635/compile.hxml create mode 100644 tests/misc/cs/projects/Issue6635/compile.hxml.stderr create mode 100644 tests/misc/cs/projects/Issue7875/Main.hx create mode 100644 tests/misc/cs/projects/Issue7875/compile.hxml create mode 100644 tests/misc/cs/projects/Issue8361/Main.hx create mode 100644 tests/misc/cs/projects/Issue8361/compile.hxml create mode 100644 tests/misc/cs/projects/Issue8366/Main.hx create mode 100644 tests/misc/cs/projects/Issue8366/compile.hxml create mode 100644 tests/misc/cs/projects/Issue8589/Main.hx create mode 100644 tests/misc/cs/projects/Issue8589/compile.hxml create mode 100644 tests/misc/cs/projects/Issue8589/compile.hxml.stderr create mode 100644 tests/misc/cs/projects/Issue8664/Main.hx create mode 100644 tests/misc/cs/projects/Issue8664/compile.hxml create mode 100644 tests/misc/cs/run.hxml delete mode 100644 tests/misc/csTwoLibs/compile-1.hxml create mode 100644 tests/misc/es6/Test.hx create mode 100644 tests/misc/es6/extern.js create mode 100644 tests/misc/es6/run.hxml create mode 100644 tests/misc/java/projects/Issue2689/Main.hx create mode 100644 tests/misc/java/projects/Issue2689/compile-fail.hxml create mode 100644 tests/misc/java/projects/Issue2689/compile-fail.hxml.stderr create mode 100644 tests/misc/java/projects/Issue8322/Main.hx create mode 100644 tests/misc/java/projects/Issue8322/compile.hxml create mode 100644 tests/misc/java/projects/Issue8444/Main.hx create mode 100644 tests/misc/java/projects/Issue8444/compile.hxml create mode 100644 tests/misc/java/run.hxml create mode 100644 tests/misc/luaDeadCode/stringReflection/Issue6276.hx create mode 100644 tests/misc/luaDeadCode/stringReflection/compile.hxml create mode 100644 tests/misc/php/projects/Issue7725/compile.hxml create mode 100644 tests/misc/php/projects/Issue7725/run.php create mode 100644 tests/misc/php/projects/Issue7725/src/App1.hx create mode 100644 tests/misc/php/projects/Issue7725/src/App2.hx create mode 100644 tests/misc/php/projects/Issue8249/compile.hxml create mode 100644 tests/misc/php/projects/Issue8249/src/Main.hx create mode 100644 tests/misc/php/projects/Issue8851/compile.hxml create mode 100644 tests/misc/php/projects/Issue8851/src/Main.hx create mode 100644 tests/misc/php/run.hxml create mode 100644 tests/misc/projects/Issue2472/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue2969/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue3181/Main.hx create mode 100644 tests/misc/projects/Issue3181/compile-fail.hxml create mode 100644 tests/misc/projects/Issue3181/compile-fail.hxml.stderr delete mode 100644 tests/misc/projects/Issue3256/Main.hx delete mode 100644 tests/misc/projects/Issue3256/compile.hxml delete mode 100644 tests/misc/projects/Issue3256/compile.hxml.stderr delete mode 100644 tests/misc/projects/Issue3261/Main.hx delete mode 100644 tests/misc/projects/Issue3261/compile.hxml delete mode 100644 tests/misc/projects/Issue3261/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue3300/test-cwd-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue3607/Main.hx create mode 100644 tests/misc/projects/Issue3607/compile-fail.hxml create mode 100644 tests/misc/projects/Issue3607/compile-fail.hxml.stderr delete mode 100644 tests/misc/projects/Issue3830/Main.hx delete mode 100644 tests/misc/projects/Issue3830/compile.hxml delete mode 100644 tests/misc/projects/Issue3830/compile.hxml.stderr delete mode 100644 tests/misc/projects/Issue3911/Main1.hx delete mode 100644 tests/misc/projects/Issue3911/Main2.hx delete mode 100644 tests/misc/projects/Issue3911/Main3.hx delete mode 100644 tests/misc/projects/Issue3911/compile1.hxml delete mode 100644 tests/misc/projects/Issue3911/compile1.hxml.stderr delete mode 100644 tests/misc/projects/Issue3911/compile2.hxml delete mode 100644 tests/misc/projects/Issue3911/compile2.hxml.stderr delete mode 100644 tests/misc/projects/Issue3911/compile3.hxml delete mode 100644 tests/misc/projects/Issue3911/compile3.hxml.stderr delete mode 100644 tests/misc/projects/Issue4218/build.hxml create mode 100644 tests/misc/projects/Issue4458/Main.hx create mode 100644 tests/misc/projects/Issue4458/compile-pass1.hxml create mode 100644 tests/misc/projects/Issue4458/compile-pass2.hxml create mode 100644 tests/misc/projects/Issue4458/compile1-fail.hxml create mode 100644 tests/misc/projects/Issue4458/compile1-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue4458/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue4458/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue4720/compile2.hxml create mode 100644 tests/misc/projects/Issue4720/compile2.hxml.stderr delete mode 100644 tests/misc/projects/Issue4723/Test.hx delete mode 100644 tests/misc/projects/Issue4723/compile.hxml create mode 100644 tests/misc/projects/Issue4891/Main.hx create mode 100644 tests/misc/projects/Issue4891/compile-fail.hxml create mode 100644 tests/misc/projects/Issue4891/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5008/Main.hx create mode 100644 tests/misc/projects/Issue5008/compile-fail.hxml create mode 100644 tests/misc/projects/Issue5008/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5039/Main.hx create mode 100644 tests/misc/projects/Issue5039/Main2.hx create mode 100644 tests/misc/projects/Issue5039/compile-fail.hxml create mode 100644 tests/misc/projects/Issue5039/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5039/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue5039/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5205/Main.hx create mode 100644 tests/misc/projects/Issue5205/compile-fail.hxml create mode 100644 tests/misc/projects/Issue5205/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5525/Main.hx create mode 100644 tests/misc/projects/Issue5525/compile-fail.hxml create mode 100644 tests/misc/projects/Issue5525/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5843/Data.hx create mode 100644 tests/misc/projects/Issue5843/Macro.hx create mode 100644 tests/misc/projects/Issue5843/Main.hx create mode 100644 tests/misc/projects/Issue5843/Transform.hx create mode 100644 tests/misc/projects/Issue5843/compile.hxml create mode 100644 tests/misc/projects/Issue5871/Main.hx create mode 100644 tests/misc/projects/Issue5871/Main2.hx create mode 100644 tests/misc/projects/Issue5871/parent-constructor-fail.hxml create mode 100644 tests/misc/projects/Issue5871/parent-constructor-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5871/parent-no-constructor-fail.hxml create mode 100644 tests/misc/projects/Issue5871/parent-no-constructor-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5880/Main.hx create mode 100644 tests/misc/projects/Issue5880/Main2.hx create mode 100644 tests/misc/projects/Issue5880/Main3.hx create mode 100644 tests/misc/projects/Issue5880/Main4.hx create mode 100644 tests/misc/projects/Issue5880/Main5.hx create mode 100644 tests/misc/projects/Issue5880/MainSuccess.hx create mode 100644 tests/misc/projects/Issue5880/compile-fail.hxml create mode 100644 tests/misc/projects/Issue5880/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5880/compile.hxml create mode 100644 tests/misc/projects/Issue5880/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue5880/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5880/compile3-fail.hxml create mode 100644 tests/misc/projects/Issue5880/compile3-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5880/compile4-fail.hxml create mode 100644 tests/misc/projects/Issue5880/compile4-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5880/compile5-fail.hxml create mode 100644 tests/misc/projects/Issue5880/compile5-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5924/Main.hx create mode 100644 tests/misc/projects/Issue5924/compile-fail.hxml create mode 100644 tests/misc/projects/Issue5924/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5940/Main.hx create mode 100644 tests/misc/projects/Issue5940/compile-fail.hxml create mode 100644 tests/misc/projects/Issue5940/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5946/Main.hx create mode 100644 tests/misc/projects/Issue5946/compile-fail.hxml create mode 100644 tests/misc/projects/Issue5946/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5949/Main.hx create mode 100644 tests/misc/projects/Issue5949/compile-fail.hxml create mode 100644 tests/misc/projects/Issue5949/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue5952/Main.hx create mode 100644 tests/misc/projects/Issue5952/compile1-fail.hxml create mode 100644 tests/misc/projects/Issue5952/compile1-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6005/Main.hx create mode 100644 tests/misc/projects/Issue6005/compile1.hxml create mode 100644 tests/misc/projects/Issue6005/compile1.hxml.stderr create mode 100644 tests/misc/projects/Issue6006/Macro.hx create mode 100644 tests/misc/projects/Issue6006/Main.hx create mode 100644 tests/misc/projects/Issue6006/compile.hxml create mode 100644 tests/misc/projects/Issue6030/Main1.hx create mode 100644 tests/misc/projects/Issue6030/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6030/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6201/Main1.hx create mode 100644 tests/misc/projects/Issue6201/Main2.hx create mode 100644 tests/misc/projects/Issue6201/compile1-fail.hxml.disabled create mode 100644 tests/misc/projects/Issue6201/compile1-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6201/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue6201/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6226/Main.hx create mode 100644 tests/misc/projects/Issue6226/compile.hxml create mode 100644 tests/misc/projects/Issue6226/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue6340/Main.hx create mode 100644 tests/misc/projects/Issue6340/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6340/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6402/Main.hx create mode 100644 tests/misc/projects/Issue6402/compile.hxml create mode 100644 tests/misc/projects/Issue6402/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue6427/E.hx create mode 100644 tests/misc/projects/Issue6427/Main.hx create mode 100644 tests/misc/projects/Issue6427/T.hx create mode 100644 tests/misc/projects/Issue6427/compile.hxml create mode 100644 tests/misc/projects/Issue6427/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue6443/Main.hx create mode 100644 tests/misc/projects/Issue6443/compile.hxml create mode 100644 tests/misc/projects/Issue6443/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue6445/Main.hx create mode 100644 tests/misc/projects/Issue6445/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6445/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6525/Main.hx create mode 100644 tests/misc/projects/Issue6525/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6525/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6525/pack/BasePack.hx create mode 100644 tests/misc/projects/Issue6525/pack/IPack.hx create mode 100644 tests/misc/projects/Issue6525/pack/Pvt.hx create mode 100644 tests/misc/projects/Issue6525/pack/sub/AccessSubPvt.hx create mode 100644 tests/misc/projects/Issue6525/pack/sub/ExtSubPvt.hx create mode 100644 tests/misc/projects/Issue6525/pack/sub/SubPvt.hx create mode 100644 tests/misc/projects/Issue6542/Main.hx create mode 100644 tests/misc/projects/Issue6542/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6542/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6550/Main.hx create mode 100644 tests/misc/projects/Issue6550/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6550/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6583/Macro1.hx create mode 100644 tests/misc/projects/Issue6583/Macro2.hx create mode 100644 tests/misc/projects/Issue6583/Main.hx create mode 100644 tests/misc/projects/Issue6583/compile.hxml create mode 100644 tests/misc/projects/Issue6583/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue6584/Main1.hx create mode 100644 tests/misc/projects/Issue6584/Main2.hx create mode 100644 tests/misc/projects/Issue6584/Main3.hx create mode 100644 tests/misc/projects/Issue6584/Main4.hx create mode 100644 tests/misc/projects/Issue6584/Main5.hx create mode 100644 tests/misc/projects/Issue6584/compile1-fail.hxml create mode 100644 tests/misc/projects/Issue6584/compile1-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6584/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue6584/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6584/compile3-fail.hxml create mode 100644 tests/misc/projects/Issue6584/compile3-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6584/compile4-fail.hxml create mode 100644 tests/misc/projects/Issue6584/compile4-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6584/compile5-fail.hxml create mode 100644 tests/misc/projects/Issue6584/compile5-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6622/Main1.hx create mode 100644 tests/misc/projects/Issue6622/compile1-fail.hxml create mode 100644 tests/misc/projects/Issue6622/compile1-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6699/Main.hx create mode 100644 tests/misc/projects/Issue6699/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6699/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6707/Main.hx create mode 100644 tests/misc/projects/Issue6707/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6707/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6714/Main.hx create mode 100644 tests/misc/projects/Issue6714/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6714/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6757/Test.hx create mode 100644 tests/misc/projects/Issue6757/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6757/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6765/Main.hx create mode 100644 tests/misc/projects/Issue6765/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6765/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6772/Main.hx create mode 100644 tests/misc/projects/Issue6772/compile.hxml create mode 100644 tests/misc/projects/Issue6780/Main.hx create mode 100644 tests/misc/projects/Issue6780/compile.hxml create mode 100644 tests/misc/projects/Issue6780/double quotes/Double.hx create mode 100644 tests/misc/projects/Issue6780/single quotes/Single.hx create mode 100644 tests/misc/projects/Issue6790/Main.hx create mode 100644 tests/misc/projects/Issue6790/Mismatch.hx create mode 100644 tests/misc/projects/Issue6790/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6790/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6790/compile.hxml create mode 100644 tests/misc/projects/Issue6790/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue6826/Main.hx create mode 100644 tests/misc/projects/Issue6826/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6826/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6841/Main.hx create mode 100644 tests/misc/projects/Issue6841/Test.hx create mode 100644 tests/misc/projects/Issue6841/compile.hxml create mode 100644 tests/misc/projects/Issue6846/Main.hx create mode 100644 tests/misc/projects/Issue6846/compile.hxml create mode 100644 tests/misc/projects/Issue6846/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue6878/Main.hx create mode 100644 tests/misc/projects/Issue6878/Main1.hx create mode 100644 tests/misc/projects/Issue6878/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6878/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6878/compile1-fail.hxml create mode 100644 tests/misc/projects/Issue6878/compile1-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6903/Main.hx create mode 100644 tests/misc/projects/Issue6903/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6903/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6922/Test.hx create mode 100644 tests/misc/projects/Issue6922/compile.hxml create mode 100644 tests/misc/projects/Issue6950/Main.hx create mode 100644 tests/misc/projects/Issue6950/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6950/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6965/Main.hx create mode 100644 tests/misc/projects/Issue6965/compile-fail.hxml create mode 100644 tests/misc/projects/Issue6965/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue6992/Main.hx create mode 100644 tests/misc/projects/Issue6992/compile.hxml create mode 100644 tests/misc/projects/Issue7017/Main.hx create mode 100644 tests/misc/projects/Issue7017/compile.hxml create mode 100644 tests/misc/projects/Issue7017/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue7039/Main.hx create mode 100644 tests/misc/projects/Issue7039/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7039/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7076/Main.hx create mode 100644 tests/misc/projects/Issue7076/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7076/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7096/Main.hx create mode 100644 tests/misc/projects/Issue7096/compile.hxml create mode 100644 tests/misc/projects/Issue7096/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue7108/Main.hx create mode 100644 tests/misc/projects/Issue7108/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7108/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7210/compile.hxml create mode 100644 tests/misc/projects/Issue7210/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue7210/macro/Utils.hx create mode 100644 tests/misc/projects/Issue7227/Main.hx create mode 100644 tests/misc/projects/Issue7227/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7227/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7333/Main.hx create mode 100644 tests/misc/projects/Issue7333/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7333/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7363/Main.hx create mode 100644 tests/misc/projects/Issue7363/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7363/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7453/Main.hx create mode 100644 tests/misc/projects/Issue7453/Main.macro.hx create mode 100644 tests/misc/projects/Issue7453/compile.hxml create mode 100644 tests/misc/projects/Issue7526/Main.hx create mode 100644 tests/misc/projects/Issue7526/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7526/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7614/Main.hx create mode 100644 tests/misc/projects/Issue7614/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7614/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7638/Main.hx create mode 100644 tests/misc/projects/Issue7638/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7638/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7655/Main.hx create mode 100644 tests/misc/projects/Issue7655/Mismatch.hx create mode 100644 tests/misc/projects/Issue7655/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7655/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7655/compile.hxml create mode 100644 tests/misc/projects/Issue7655/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue7734/Main.hx create mode 100644 tests/misc/projects/Issue7734/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7734/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7747/Main.hx create mode 100644 tests/misc/projects/Issue7747/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7747/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7752/Main.hx create mode 100644 tests/misc/projects/Issue7752/Main2.hx create mode 100644 tests/misc/projects/Issue7752/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7752/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7752/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue7752/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7796/Main.hx create mode 100644 tests/misc/projects/Issue7796/compile.hxml create mode 100644 tests/misc/projects/Issue7796/glsl2agal.swc create mode 100644 tests/misc/projects/Issue7824/Main.hx create mode 100644 tests/misc/projects/Issue7824/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7824/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7905/Main.hx create mode 100644 tests/misc/projects/Issue7905/compile.hxml create mode 100644 tests/misc/projects/Issue7905/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue7920/Main.hx create mode 100644 tests/misc/projects/Issue7920/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7920/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7921/Main.hx create mode 100644 tests/misc/projects/Issue7921/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7921/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7935/Main.hx create mode 100644 tests/misc/projects/Issue7935/Main2.hx create mode 100644 tests/misc/projects/Issue7935/Main3.hx create mode 100644 tests/misc/projects/Issue7935/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7935/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7935/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue7935/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7935/compile3-fail.hxml create mode 100644 tests/misc/projects/Issue7935/compile3-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue7936/compile.hxml create mode 100644 tests/misc/projects/Issue7936/run.js create mode 100644 tests/misc/projects/Issue7936/src/Closures1.hx create mode 100644 tests/misc/projects/Issue7936/src/Closures2.hx create mode 100644 tests/misc/projects/Issue7936/src/ObjectMap1.hx create mode 100644 tests/misc/projects/Issue7936/src/ObjectMap2.hx create mode 100644 tests/misc/projects/Issue7997/Main.hx create mode 100644 tests/misc/projects/Issue7997/compile-fail.hxml create mode 100644 tests/misc/projects/Issue7997/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8019/Macro.hx create mode 100644 tests/misc/projects/Issue8019/Macro2.hx create mode 100644 tests/misc/projects/Issue8019/Main.hx create mode 100644 tests/misc/projects/Issue8019/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8019/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8019/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue8019/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8019/compile3-fail.hxml create mode 100644 tests/misc/projects/Issue8019/compile3-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8088/Fail.hx create mode 100644 tests/misc/projects/Issue8088/Success.hx create mode 100644 tests/misc/projects/Issue8088/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8088/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8088/compile.hxml create mode 100644 tests/misc/projects/Issue8119/Main.hx create mode 100644 tests/misc/projects/Issue8119/Main2.hx create mode 100644 tests/misc/projects/Issue8119/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8119/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8119/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue8119/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8159/Macro.macro.hx create mode 100644 tests/misc/projects/Issue8159/Main.hx create mode 100644 tests/misc/projects/Issue8159/compile.hxml create mode 100644 tests/misc/projects/Issue8173/Main.hx create mode 100644 tests/misc/projects/Issue8173/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8173/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8191/U1.hx create mode 100644 tests/misc/projects/Issue8191/U2.hx create mode 100644 tests/misc/projects/Issue8191/U3.hx create mode 100644 tests/misc/projects/Issue8191/U4.hx create mode 100644 tests/misc/projects/Issue8191/U5.hx create mode 100644 tests/misc/projects/Issue8191/X1.hx create mode 100644 tests/misc/projects/Issue8191/X2.hx create mode 100644 tests/misc/projects/Issue8191/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8191/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8191/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue8191/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8191/compile3-fail.hxml create mode 100644 tests/misc/projects/Issue8191/compile3-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8191/compile4-fail.hxml create mode 100644 tests/misc/projects/Issue8191/compile4-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8191/compile5-fail.hxml create mode 100644 tests/misc/projects/Issue8191/compile5-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8191/compile6-fail.hxml create mode 100644 tests/misc/projects/Issue8191/compile6-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8191/compile7-fail.hxml create mode 100644 tests/misc/projects/Issue8191/compile7-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8202/Builder.macro.hx create mode 100644 tests/misc/projects/Issue8202/Main.hx create mode 100644 tests/misc/projects/Issue8202/compile.hxml create mode 100644 tests/misc/projects/Issue8205/Main.hx create mode 100644 tests/misc/projects/Issue8205/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8205/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8219/Main.hx create mode 100644 tests/misc/projects/Issue8219/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8219/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8231/Main.hx create mode 100644 tests/misc/projects/Issue8231/compile.hxml create mode 100644 tests/misc/projects/Issue8241/Main.hx create mode 100644 tests/misc/projects/Issue8241/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8241/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8258/Main.hx create mode 100644 tests/misc/projects/Issue8258/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8258/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8277/Main1.hx create mode 100644 tests/misc/projects/Issue8277/Main2.hx create mode 100644 tests/misc/projects/Issue8277/compile1-fail.hxml create mode 100644 tests/misc/projects/Issue8277/compile1-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8277/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue8277/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8283/Main.hx create mode 100644 tests/misc/projects/Issue8283/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8283/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8303/Main.hx create mode 100644 tests/misc/projects/Issue8303/MainCatch.hx create mode 100644 tests/misc/projects/Issue8303/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8303/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8303/compile.hxml create mode 100644 tests/misc/projects/Issue8336/Main.hx create mode 100644 tests/misc/projects/Issue8336/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8336/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8354/FailFrom.hx create mode 100644 tests/misc/projects/Issue8354/FailTo.hx create mode 100644 tests/misc/projects/Issue8354/Success.hx create mode 100644 tests/misc/projects/Issue8354/compile.hxml create mode 100644 tests/misc/projects/Issue8354/compile1-fail.hxml create mode 100644 tests/misc/projects/Issue8354/compile1-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8354/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue8354/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8364/Main.hx create mode 100644 tests/misc/projects/Issue8364/compile.hxml create mode 100644 tests/misc/projects/Issue8393/Main.hx create mode 100644 tests/misc/projects/Issue8393/Main2.hx create mode 100644 tests/misc/projects/Issue8393/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8393/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8393/compile2-fail.hxml.disabled create mode 100644 tests/misc/projects/Issue8393/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8404/Main.hx create mode 100644 tests/misc/projects/Issue8404/compile.hxml create mode 100644 tests/misc/projects/Issue8466/Main.hx create mode 100644 tests/misc/projects/Issue8466/compile.hxml create mode 100644 tests/misc/projects/Issue8471/Macro.hx create mode 100644 tests/misc/projects/Issue8471/Macro2.hx create mode 100644 tests/misc/projects/Issue8471/compile.hxml create mode 100644 tests/misc/projects/Issue8471/compile.hxml.stderr create mode 100644 tests/misc/projects/Issue8471/compile2.hxml create mode 100644 tests/misc/projects/Issue8471/compile2.hxml.stderr create mode 100644 tests/misc/projects/Issue8488/Main.hx create mode 100644 tests/misc/projects/Issue8488/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8488/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8517/Fail.hx create mode 100644 tests/misc/projects/Issue8517/Foo.hx create mode 100644 tests/misc/projects/Issue8517/Macro.hx create mode 100644 tests/misc/projects/Issue8517/Main.hx create mode 100644 tests/misc/projects/Issue8517/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8517/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8517/compile.hxml create mode 100644 tests/misc/projects/Issue8527/Main.hx create mode 100644 tests/misc/projects/Issue8527/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8527/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8530/Main.hx create mode 100644 tests/misc/projects/Issue8530/compile.hxml create mode 100644 tests/misc/projects/Issue8533/Main.hx create mode 100644 tests/misc/projects/Issue8533/Main.hx.txt create mode 100644 tests/misc/projects/Issue8533/compile.hxml create mode 100644 tests/misc/projects/Issue8534/Main.hx create mode 100644 tests/misc/projects/Issue8534/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8534/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8550/Fail.hx create mode 100644 tests/misc/projects/Issue8550/Success.hx create mode 100644 tests/misc/projects/Issue8550/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8550/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8550/compile.hxml create mode 100644 tests/misc/projects/Issue8551/Main.hx create mode 100644 tests/misc/projects/Issue8551/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8551/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8565/Main.hx create mode 100644 tests/misc/projects/Issue8565/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8565/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8567/compile.hxml create mode 100644 tests/misc/projects/Issue8567/src/Main.hx create mode 100644 tests/misc/projects/Issue8567/src/test.txt create mode 100644 tests/misc/projects/Issue8579/Main.hx create mode 100644 tests/misc/projects/Issue8579/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8579/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8608/Main.hx create mode 100644 tests/misc/projects/Issue8608/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8608/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8618/Main.hx create mode 100644 tests/misc/projects/Issue8618/Main2.hx create mode 100644 tests/misc/projects/Issue8618/Main3.hx create mode 100644 tests/misc/projects/Issue8618/Main4.hx create mode 100644 tests/misc/projects/Issue8618/NoClosureClass.hx create mode 100644 tests/misc/projects/Issue8618/NormalClass.hx create mode 100644 tests/misc/projects/Issue8618/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8618/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8618/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue8618/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8618/compile3-fail.hxml create mode 100644 tests/misc/projects/Issue8618/compile3-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8618/compile4-fail.hxml create mode 100644 tests/misc/projects/Issue8618/compile4-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8650/Main.hx create mode 100644 tests/misc/projects/Issue8650/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8650/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8654/Arr.hx create mode 100644 tests/misc/projects/Issue8654/Check.hx create mode 100644 tests/misc/projects/Issue8654/compile.hxml create mode 100644 tests/misc/projects/Issue8677/Main.hx create mode 100644 tests/misc/projects/Issue8677/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8677/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8697/Main.hx create mode 100644 tests/misc/projects/Issue8697/Main2.hx create mode 100644 tests/misc/projects/Issue8697/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8697/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8697/compile2-fail.hxml create mode 100644 tests/misc/projects/Issue8697/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8704/Main.hx create mode 100644 tests/misc/projects/Issue8704/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8704/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8705/Main.hx create mode 100644 tests/misc/projects/Issue8705/compile.hxml create mode 100644 tests/misc/projects/Issue8750/Main.hx create mode 100644 tests/misc/projects/Issue8750/compile.hxml create mode 100644 tests/misc/projects/Issue8752/Main.hx create mode 100644 tests/misc/projects/Issue8752/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8752/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8765/Main.hx create mode 100644 tests/misc/projects/Issue8765/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8765/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/Issue8790/Main.hx create mode 100644 tests/misc/projects/Issue8790/compile-fail.hxml create mode 100644 tests/misc/projects/Issue8790/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/_semver/InvalidVersion.hx create mode 100644 tests/misc/projects/_semver/Main.hx create mode 100644 tests/misc/projects/_semver/compile-fail.hxml create mode 100644 tests/misc/projects/_semver/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/_semver/compile.hxml create mode 100644 tests/misc/projects/es6/A.hx create mode 100644 tests/misc/projects/es6/B.hx create mode 100644 tests/misc/projects/es6/C.hx create mode 100644 tests/misc/projects/es6/D.hx create mode 100644 tests/misc/projects/es6/compile-a-fail.hxml create mode 100644 tests/misc/projects/es6/compile-a-fail.hxml.stderr create mode 100644 tests/misc/projects/es6/compile-b-fail.hxml create mode 100644 tests/misc/projects/es6/compile-b-fail.hxml.stderr create mode 100644 tests/misc/projects/es6/compile-c-fail.hxml create mode 100644 tests/misc/projects/es6/compile-c-fail.hxml.stderr create mode 100644 tests/misc/projects/es6/compile-d-fail.hxml create mode 100644 tests/misc/projects/es6/compile-d-fail.hxml.stderr create mode 100644 tests/misc/projects/issue5002/Macro.hx create mode 100644 tests/misc/projects/issue5002/Main.hx create mode 100644 tests/misc/projects/issue5002/Main2.hx create mode 100644 tests/misc/projects/issue5002/Main3.hx create mode 100644 tests/misc/projects/issue5002/Main4.hx create mode 100644 tests/misc/projects/issue5002/compile-fail.hxml create mode 100644 tests/misc/projects/issue5002/compile-fail.hxml.stderr create mode 100644 tests/misc/projects/issue5002/compile2-fail.hxml create mode 100644 tests/misc/projects/issue5002/compile2-fail.hxml.stderr create mode 100644 tests/misc/projects/issue5002/compile3-fail.hxml create mode 100644 tests/misc/projects/issue5002/compile3-fail.hxml.stderr create mode 100644 tests/misc/projects/issue5002/compile4-fail.hxml create mode 100644 tests/misc/projects/issue5002/compile4-fail.hxml.stderr rename tests/misc/{ => python}/projects/Issue4218/Main.hx (100%) create mode 100644 tests/misc/python/projects/Issue4218/build.hxml create mode 100644 tests/misc/python/projects/Issue8542/Main.hx create mode 100644 tests/misc/python/projects/Issue8542/build.hxml rename tests/misc/{ => python}/pythonImport/Main.hx (67%) create mode 100644 tests/misc/python/pythonImport/compile.hxml create mode 100644 tests/misc/python/pythonImport/native_python/__init__.py create mode 100644 tests/misc/python/pythonImport/native_python/__pycache__/__init__.cpython-36.pyc create mode 100644 tests/misc/python/pythonImport/native_python/__pycache__/__init__.pypy3-24.pyc create mode 100644 tests/misc/python/pythonImport/native_python/__pycache__/sample.cpython-36.pyc create mode 100644 tests/misc/python/pythonImport/native_python/__pycache__/sample.pypy3-24.pyc rename tests/misc/{ => python}/pythonImport/native_python/sample.py (100%) create mode 100644 tests/misc/python/run.hxml delete mode 100644 tests/misc/pythonImport/compile.hxml create mode 100644 tests/nullsafety/src/Validator.hx create mode 100644 tests/nullsafety/src/cases/TestAbstract.hx create mode 100644 tests/nullsafety/src/cases/TestLoose.hx create mode 100644 tests/nullsafety/src/cases/TestSafeFieldInUnsafeClass.hx create mode 100644 tests/nullsafety/src/cases/TestStrict.hx create mode 100644 tests/nullsafety/test-js-es6.hxml create mode 100644 tests/nullsafety/test.hxml create mode 100644 tests/optimization/src/issues/Issue3524.hx create mode 100644 tests/optimization/src/issues/Issue3878.hx create mode 100644 tests/optimization/src/issues/Issue3881.hx create mode 100644 tests/optimization/src/issues/Issue5436.hx create mode 100644 tests/optimization/src/issues/Issue5582.hx create mode 100644 tests/optimization/src/issues/Issue5646.hx create mode 100644 tests/optimization/src/issues/Issue6047.hx create mode 100644 tests/optimization/src/issues/Issue6198.hx create mode 100644 tests/optimization/src/issues/Issue6229.hx create mode 100644 tests/optimization/src/issues/Issue6283.hx create mode 100644 tests/optimization/src/issues/Issue6296.hx create mode 100644 tests/optimization/src/issues/Issue6302.hx create mode 100644 tests/optimization/src/issues/Issue6338.hx create mode 100644 tests/optimization/src/issues/Issue6409.hx create mode 100644 tests/optimization/src/issues/Issue6715.hx create mode 100644 tests/optimization/src/issues/Issue7113.hx create mode 100644 tests/optimization/src/issues/Issue7704.hx create mode 100644 tests/optimization/src/issues/Issue8072.hx create mode 100644 tests/optimization/src/issues/Issue8128.hx create mode 100644 tests/optimization/src/issues/Issue8226.hx create mode 100644 tests/optimization/src/issues/Issue8770.hx create mode 100644 tests/optimization/src/issues/IssueInline.hx create mode 100644 tests/runci/Config.hx create mode 100644 tests/runci/Deployment.hx rename tests/{ => runci}/Indexer.hx (94%) create mode 100644 tests/runci/Linux.hx create mode 100644 tests/runci/System.hx create mode 100644 tests/runci/TestTarget.hx create mode 100644 tests/runci/targets/As3.hx create mode 100644 tests/runci/targets/Cpp.hx create mode 100644 tests/runci/targets/Cs.hx create mode 100644 tests/runci/targets/Flash.hx create mode 100644 tests/runci/targets/Hl.hx create mode 100644 tests/runci/targets/Java.hx create mode 100644 tests/runci/targets/Js.hx create mode 100644 tests/runci/targets/Jvm.hx create mode 100644 tests/runci/targets/Lua.hx create mode 100644 tests/runci/targets/Macro.hx create mode 100644 tests/runci/targets/Neko.hx create mode 100644 tests/runci/targets/Php.hx create mode 100644 tests/runci/targets/Python.hx create mode 100644 tests/server/.vscode/launch.json create mode 100644 tests/server/.vscode/settings.json create mode 100644 tests/server/.vscode/tasks.json create mode 100644 tests/server/build.hxml create mode 100644 tests/server/src/AsyncMacro.hx create mode 100644 tests/server/src/DisplayTests.hx create mode 100644 tests/server/src/HaxeServerTestCase.hx create mode 100644 tests/server/src/Main.hx create mode 100644 tests/server/src/ReplaceRanges.hx create mode 100644 tests/server/src/Vfs.hx create mode 100644 tests/server/test/templates/BrokenSyntax.hx create mode 100644 tests/server/test/templates/BuildMacro.hx create mode 100644 tests/server/test/templates/BuiltClass.hx create mode 100644 tests/server/test/templates/Dependency.hx create mode 100644 tests/server/test/templates/Empty.hx create mode 100644 tests/server/test/templates/GlobalBuildMacro.hx create mode 100644 tests/server/test/templates/HelloJvm.hx create mode 100644 tests/server/test/templates/HelloWorld.hx create mode 100644 tests/server/test/templates/Macro.hx create mode 100644 tests/server/test/templates/MacroMain.hx create mode 100644 tests/server/test/templates/MutuallyDependent1.hx create mode 100644 tests/server/test/templates/MutuallyDependent2.hx create mode 100644 tests/server/test/templates/Vector.hx create mode 100644 tests/server/test/templates/VectorInliner.hx create mode 100644 tests/server/test/templates/WithDependency.hx create mode 100644 tests/server/test/templates/issues/Issue8368/Main.hx create mode 100644 tests/server/test/templates/issues/Issue8368/MyMacro.hx create mode 100644 tests/server/test/templates/issues/Issue8368/Type1.hx create mode 100644 tests/server/test/templates/issues/Issue8368/Type2.hx create mode 100644 tests/server/test/templates/issues/Issue8631/Init.hx create mode 100644 tests/server/test/templates/issues/Issue8631/Macro.hx create mode 100644 tests/server/test/templates/issues/Issue8631/Main.hx create mode 100644 tests/server/test/templates/issues/Issue8738/Base.hx create mode 100644 tests/server/test/templates/issues/Issue8738/Main1.hx create mode 100644 tests/server/test/templates/issues/Issue8738/Main2.hx create mode 100644 tests/server/test/templates/issues/Issue8738/Main3.hx create mode 100644 tests/sourcemaps/run.hxml create mode 100644 tests/sourcemaps/src/Test.hx create mode 100644 tests/sourcemaps/src/Validator.hx create mode 100644 tests/sourcemaps/src/cases/Trace.hx create mode 100644 tests/sourcemaps/src/cases/import.hx create mode 100644 tests/sourcemaps/src/validation/Exception.hx create mode 100644 tests/sourcemaps/src/validation/Lines.hx create mode 100644 tests/sourcemaps/src/validation/Target.hx create mode 100644 tests/sourcemaps/src/validation/ValidationError.hx create mode 100644 tests/sourcemaps/src/validation/ValidationReport.hx create mode 100644 tests/sys/compile-jvm.hxml delete mode 100644 tests/sys/compile-php7.hxml create mode 100755 tests/sys/genTestRes.py create mode 100644 tests/sys/src/TestUnicode.hx create mode 100644 tests/sys/src/UnicodeSequences.hx create mode 100644 tests/sys/src/UtilityProcess.hx create mode 100644 tests/sys/src/io/TestFile.hx create mode 100644 tests/sys/src/net/TestSocket.hx create mode 100644 tests/threads/build.hxml create mode 100644 tests/threads/res/tree1.txt create mode 100644 tests/threads/src/Main.hx create mode 100644 tests/threads/src/cases/DequeBrackets.hx create mode 100644 tests/threads/src/cases/Issue3767.hx create mode 100644 tests/threads/src/cases/Issue4878.hx create mode 100644 tests/threads/src/cases/Issue8063.hx rename tests/{unit/src/unit => threads/src/cases}/TestThreads.hx (89%) create mode 100644 tests/threads/src/cases/WeirdTreeSum.hx create mode 100644 tests/threads/src/import.hx create mode 100644 tests/unit/.vscode/tasks.json create mode 100644 tests/unit/compile-jvm.hxml delete mode 100644 tests/unit/compile-php7.hxml create mode 100644 tests/unit/native_swf/Lib.as create mode 100644 tests/unit/native_swf/Lib2.as create mode 100644 tests/unit/native_swf/NsCls.as create mode 100644 tests/unit/native_swf/PropClass.as create mode 100644 tests/unit/native_swf/PropIface.as create mode 100644 tests/unit/native_swf/ns1.as create mode 100644 tests/unit/native_swf/ns2.as create mode 100644 tests/unit/serializedValues.txt create mode 100644 tests/unit/src/Macro.hx create mode 100644 tests/unit/src/RootEnum.hx create mode 100644 tests/unit/src/RunSerializerOutput.hx create mode 100644 tests/unit/src/scripthost/Issue8502.hx delete mode 100644 tests/unit/src/unit/MySpodClass.hx create mode 100644 tests/unit/src/unit/TestArrowFunctions.hx create mode 100644 tests/unit/src/unit/TestCasts.hx create mode 100644 tests/unit/src/unit/TestFieldVariance.hx create mode 100644 tests/unit/src/unit/TestHttp.hx create mode 100644 tests/unit/src/unit/TestInterface.hx delete mode 100644 tests/unit/src/unit/TestJQuery.hx create mode 100644 tests/unit/src/unit/TestKeyValueIterator.hx create mode 100644 tests/unit/src/unit/TestMacro.hx create mode 100644 tests/unit/src/unit/TestMapComprehension.hx create mode 100644 tests/unit/src/unit/TestNaN.hx create mode 100644 tests/unit/src/unit/TestNull.hx create mode 100644 tests/unit/src/unit/TestSerializerCrossTarget.hx create mode 100644 tests/unit/src/unit/TestSyntaxModule.hx delete mode 100644 tests/unit/src/unit/issues/Issue2152.hx delete mode 100644 tests/unit/src/unit/issues/Issue2508.hx.disabled create mode 100644 tests/unit/src/unit/issues/Issue2688.hx create mode 100644 tests/unit/src/unit/issues/Issue3539.hx delete mode 100644 tests/unit/src/unit/issues/Issue3557.hx delete mode 100644 tests/unit/src/unit/issues/Issue3767.hx create mode 100644 tests/unit/src/unit/issues/Issue3792.hx create mode 100644 tests/unit/src/unit/issues/Issue3826.hx create mode 100644 tests/unit/src/unit/issues/Issue3949.hx delete mode 100644 tests/unit/src/unit/issues/Issue4138.hx delete mode 100644 tests/unit/src/unit/issues/Issue4203.hx.disabled create mode 100644 tests/unit/src/unit/issues/Issue4287.hx rename tests/unit/src/unit/issues/{Issue4327.hx.disabled => Issue4327.hx} (100%) create mode 100644 tests/unit/src/unit/issues/Issue4481.hx rename tests/unit/src/unit/issues/{Issue4581.hx => Issue4581.hx.wtf} (100%) create mode 100644 tests/unit/src/unit/issues/Issue4639.hx create mode 100644 tests/unit/src/unit/issues/Issue4649.hx create mode 100644 tests/unit/src/unit/issues/Issue4705.hx create mode 100644 tests/unit/src/unit/issues/Issue4799.hx delete mode 100644 tests/unit/src/unit/issues/Issue4878.hx create mode 100644 tests/unit/src/unit/issues/Issue4968.hx create mode 100644 tests/unit/src/unit/issues/Issue5009.hx create mode 100644 tests/unit/src/unit/issues/Issue5039.hx create mode 100644 tests/unit/src/unit/issues/Issue5155.hx create mode 100644 tests/unit/src/unit/issues/Issue5160.hx create mode 100644 tests/unit/src/unit/issues/Issue5168.hx create mode 100644 tests/unit/src/unit/issues/Issue5255.hx create mode 100644 tests/unit/src/unit/issues/Issue5289.hx create mode 100644 tests/unit/src/unit/issues/Issue5362.hx create mode 100644 tests/unit/src/unit/issues/Issue5384.hx create mode 100644 tests/unit/src/unit/issues/Issue5399.hx create mode 100644 tests/unit/src/unit/issues/Issue5449.hx create mode 100644 tests/unit/src/unit/issues/Issue5486.hx create mode 100644 tests/unit/src/unit/issues/Issue5493.hx create mode 100644 tests/unit/src/unit/issues/Issue5599.hx create mode 100644 tests/unit/src/unit/issues/Issue5691.hx create mode 100644 tests/unit/src/unit/issues/Issue5751.hx create mode 100644 tests/unit/src/unit/issues/Issue5793.hx create mode 100644 tests/unit/src/unit/issues/Issue5816.hx create mode 100644 tests/unit/src/unit/issues/Issue5859.hx create mode 100644 tests/unit/src/unit/issues/Issue5862.hx create mode 100644 tests/unit/src/unit/issues/Issue6016.hx create mode 100644 tests/unit/src/unit/issues/Issue6036.hx create mode 100644 tests/unit/src/unit/issues/Issue6039.hx create mode 100644 tests/unit/src/unit/issues/Issue6059.hx create mode 100644 tests/unit/src/unit/issues/Issue6106.hx create mode 100644 tests/unit/src/unit/issues/Issue6133.hx create mode 100644 tests/unit/src/unit/issues/Issue6135.hx create mode 100644 tests/unit/src/unit/issues/Issue6145.hx create mode 100644 tests/unit/src/unit/issues/Issue6147.hx create mode 100644 tests/unit/src/unit/issues/Issue6169.hx create mode 100644 tests/unit/src/unit/issues/Issue6211.hx create mode 100644 tests/unit/src/unit/issues/Issue6215.hx create mode 100644 tests/unit/src/unit/issues/Issue6224.hx create mode 100644 tests/unit/src/unit/issues/Issue6259.hx create mode 100644 tests/unit/src/unit/issues/Issue6266.hx create mode 100644 tests/unit/src/unit/issues/Issue6267.hx create mode 100644 tests/unit/src/unit/issues/Issue6276.hx create mode 100644 tests/unit/src/unit/issues/Issue6285.hx create mode 100644 tests/unit/src/unit/issues/Issue6290.hx create mode 100644 tests/unit/src/unit/issues/Issue6291.hx create mode 100644 tests/unit/src/unit/issues/Issue6298.hx create mode 100644 tests/unit/src/unit/issues/Issue6299.hx create mode 100644 tests/unit/src/unit/issues/Issue6315.hx create mode 100644 tests/unit/src/unit/issues/Issue6325.hx create mode 100644 tests/unit/src/unit/issues/Issue6342.hx create mode 100644 tests/unit/src/unit/issues/Issue6349.hx create mode 100644 tests/unit/src/unit/issues/Issue6369.hx create mode 100644 tests/unit/src/unit/issues/Issue6376.hx create mode 100644 tests/unit/src/unit/issues/Issue6379.hx create mode 100644 tests/unit/src/unit/issues/Issue6406.hx create mode 100644 tests/unit/src/unit/issues/Issue6413.hx create mode 100644 tests/unit/src/unit/issues/Issue6430.hx create mode 100644 tests/unit/src/unit/issues/Issue6446.hx create mode 100644 tests/unit/src/unit/issues/Issue6448.hx create mode 100644 tests/unit/src/unit/issues/Issue6449.hx create mode 100644 tests/unit/src/unit/issues/Issue6457.hx create mode 100644 tests/unit/src/unit/issues/Issue6480.hx create mode 100644 tests/unit/src/unit/issues/Issue6482.hx create mode 100644 tests/unit/src/unit/issues/Issue6486.hx create mode 100644 tests/unit/src/unit/issues/Issue6499.hx create mode 100644 tests/unit/src/unit/issues/Issue6503.hx create mode 100644 tests/unit/src/unit/issues/Issue6520.hx create mode 100644 tests/unit/src/unit/issues/Issue6531.hx create mode 100644 tests/unit/src/unit/issues/Issue6532.hx create mode 100644 tests/unit/src/unit/issues/Issue6533.hx create mode 100644 tests/unit/src/unit/issues/Issue6548.hx create mode 100644 tests/unit/src/unit/issues/Issue6549.hx create mode 100644 tests/unit/src/unit/issues/Issue6551.hx create mode 100644 tests/unit/src/unit/issues/Issue6555.hx create mode 100644 tests/unit/src/unit/issues/Issue6560.hx create mode 100644 tests/unit/src/unit/issues/Issue6561.hx create mode 100644 tests/unit/src/unit/issues/Issue6562.hx create mode 100644 tests/unit/src/unit/issues/Issue6587.hx create mode 100644 tests/unit/src/unit/issues/Issue6606.hx create mode 100644 tests/unit/src/unit/issues/Issue6609.hx create mode 100644 tests/unit/src/unit/issues/Issue6656.hx create mode 100644 tests/unit/src/unit/issues/Issue6660.hx create mode 100644 tests/unit/src/unit/issues/Issue6675.hx create mode 100644 tests/unit/src/unit/issues/Issue6703.hx create mode 100644 tests/unit/src/unit/issues/Issue6706.hx create mode 100644 tests/unit/src/unit/issues/Issue6707.hx create mode 100644 tests/unit/src/unit/issues/Issue6710.hx create mode 100644 tests/unit/src/unit/issues/Issue6711.hx create mode 100644 tests/unit/src/unit/issues/Issue6717.hx create mode 100644 tests/unit/src/unit/issues/Issue6722.hx create mode 100644 tests/unit/src/unit/issues/Issue6724.hx create mode 100644 tests/unit/src/unit/issues/Issue6751.hx create mode 100644 tests/unit/src/unit/issues/Issue6752.hx create mode 100644 tests/unit/src/unit/issues/Issue6754.hx create mode 100644 tests/unit/src/unit/issues/Issue6772.hx create mode 100644 tests/unit/src/unit/issues/Issue6776.hx create mode 100644 tests/unit/src/unit/issues/Issue6784.hx create mode 100644 tests/unit/src/unit/issues/Issue6801.hx create mode 100644 tests/unit/src/unit/issues/Issue6830.hx create mode 100644 tests/unit/src/unit/issues/Issue6833.hx create mode 100644 tests/unit/src/unit/issues/Issue6836.hx create mode 100644 tests/unit/src/unit/issues/Issue6845.hx create mode 100644 tests/unit/src/unit/issues/Issue6848.hx delete mode 100644 tests/unit/src/unit/issues/Issue6859.hx create mode 100644 tests/unit/src/unit/issues/Issue6871.hx create mode 100644 tests/unit/src/unit/issues/Issue6873.hx create mode 100644 tests/unit/src/unit/issues/Issue6896.hx create mode 100644 tests/unit/src/unit/issues/Issue6942.hx create mode 100644 tests/unit/src/unit/issues/Issue6948.hx create mode 100644 tests/unit/src/unit/issues/Issue6952.hx create mode 100644 tests/unit/src/unit/issues/Issue6972.hx create mode 100644 tests/unit/src/unit/issues/Issue6979.hx create mode 100644 tests/unit/src/unit/issues/Issue7007.hx create mode 100644 tests/unit/src/unit/issues/Issue7032.hx create mode 100644 tests/unit/src/unit/issues/Issue7106.hx create mode 100644 tests/unit/src/unit/issues/Issue7115.hx create mode 100644 tests/unit/src/unit/issues/Issue7120.hx create mode 100644 tests/unit/src/unit/issues/Issue7132.hx create mode 100644 tests/unit/src/unit/issues/Issue7139.hx create mode 100644 tests/unit/src/unit/issues/Issue7142.hx create mode 100644 tests/unit/src/unit/issues/Issue7179.hx create mode 100644 tests/unit/src/unit/issues/Issue7182.hx create mode 100644 tests/unit/src/unit/issues/Issue7187.hx create mode 100644 tests/unit/src/unit/issues/Issue7207.hx create mode 100644 tests/unit/src/unit/issues/Issue7209.hx create mode 100644 tests/unit/src/unit/issues/Issue7220.hx create mode 100644 tests/unit/src/unit/issues/Issue7230.hx create mode 100644 tests/unit/src/unit/issues/Issue7233.hx create mode 100644 tests/unit/src/unit/issues/Issue7247.hx create mode 100644 tests/unit/src/unit/issues/Issue7286.hx create mode 100644 tests/unit/src/unit/issues/Issue7298.hx create mode 100644 tests/unit/src/unit/issues/Issue7332.hx create mode 100644 tests/unit/src/unit/issues/Issue7334.hx create mode 100644 tests/unit/src/unit/issues/Issue7335.hx create mode 100644 tests/unit/src/unit/issues/Issue7359.hx create mode 100644 tests/unit/src/unit/issues/Issue7367.hx create mode 100644 tests/unit/src/unit/issues/Issue7376.hx create mode 100644 tests/unit/src/unit/issues/Issue7388.hx create mode 100644 tests/unit/src/unit/issues/Issue7389.hx create mode 100644 tests/unit/src/unit/issues/Issue7391.hx create mode 100644 tests/unit/src/unit/issues/Issue7394.hx create mode 100644 tests/unit/src/unit/issues/Issue7443.hx create mode 100644 tests/unit/src/unit/issues/Issue7449.hx create mode 100644 tests/unit/src/unit/issues/Issue7466.hx create mode 100644 tests/unit/src/unit/issues/Issue7476.hx create mode 100644 tests/unit/src/unit/issues/Issue7492.hx create mode 100644 tests/unit/src/unit/issues/Issue7499.hx create mode 100644 tests/unit/src/unit/issues/Issue7531.hx create mode 100644 tests/unit/src/unit/issues/Issue7533.hx create mode 100644 tests/unit/src/unit/issues/Issue7536.hx create mode 100644 tests/unit/src/unit/issues/Issue7540.hx create mode 100644 tests/unit/src/unit/issues/Issue7546.hx create mode 100644 tests/unit/src/unit/issues/Issue7579.hx create mode 100644 tests/unit/src/unit/issues/Issue7590.hx create mode 100644 tests/unit/src/unit/issues/Issue7600.hx create mode 100644 tests/unit/src/unit/issues/Issue7603.hx create mode 100644 tests/unit/src/unit/issues/Issue7630.hx create mode 100644 tests/unit/src/unit/issues/Issue7642.hx create mode 100644 tests/unit/src/unit/issues/Issue7653.hx create mode 100644 tests/unit/src/unit/issues/Issue7659.hx create mode 100644 tests/unit/src/unit/issues/Issue7661.hx create mode 100644 tests/unit/src/unit/issues/Issue7671.hx create mode 100644 tests/unit/src/unit/issues/Issue7672.hx create mode 100644 tests/unit/src/unit/issues/Issue7674.hx create mode 100644 tests/unit/src/unit/issues/Issue7688.hx create mode 100644 tests/unit/src/unit/issues/Issue7716.hx create mode 100644 tests/unit/src/unit/issues/Issue7727.hx create mode 100644 tests/unit/src/unit/issues/Issue7728.hx create mode 100644 tests/unit/src/unit/issues/Issue7743.hx create mode 100644 tests/unit/src/unit/issues/Issue7827.hx create mode 100644 tests/unit/src/unit/issues/Issue7844.hx create mode 100644 tests/unit/src/unit/issues/Issue7867.hx create mode 100644 tests/unit/src/unit/issues/Issue7869.hx create mode 100644 tests/unit/src/unit/issues/Issue7883.hx create mode 100644 tests/unit/src/unit/issues/Issue7890.hx create mode 100644 tests/unit/src/unit/issues/Issue7903.hx create mode 100644 tests/unit/src/unit/issues/Issue7922.hx create mode 100644 tests/unit/src/unit/issues/Issue7981.hx create mode 100644 tests/unit/src/unit/issues/Issue8032.hx create mode 100644 tests/unit/src/unit/issues/Issue8050.hx create mode 100644 tests/unit/src/unit/issues/Issue8053.hx create mode 100644 tests/unit/src/unit/issues/Issue8075.hx create mode 100644 tests/unit/src/unit/issues/Issue8079.hx create mode 100644 tests/unit/src/unit/issues/Issue8101.hx create mode 100644 tests/unit/src/unit/issues/Issue8118.hx create mode 100644 tests/unit/src/unit/issues/Issue8185.hx create mode 100644 tests/unit/src/unit/issues/Issue8187.hx create mode 100644 tests/unit/src/unit/issues/Issue8188.hx create mode 100644 tests/unit/src/unit/issues/Issue8200.hx create mode 100644 tests/unit/src/unit/issues/Issue8203.hx create mode 100644 tests/unit/src/unit/issues/Issue8211.hx create mode 100644 tests/unit/src/unit/issues/Issue8212.hx create mode 100644 tests/unit/src/unit/issues/Issue8213.hx create mode 100644 tests/unit/src/unit/issues/Issue8218.hx create mode 100644 tests/unit/src/unit/issues/Issue8220.hx create mode 100644 tests/unit/src/unit/issues/Issue8221.hx create mode 100644 tests/unit/src/unit/issues/Issue8227.hx create mode 100644 tests/unit/src/unit/issues/Issue8240.hx create mode 100644 tests/unit/src/unit/issues/Issue8241.hx create mode 100644 tests/unit/src/unit/issues/Issue8242.hx create mode 100644 tests/unit/src/unit/issues/Issue8243.hx create mode 100644 tests/unit/src/unit/issues/Issue8248.hx create mode 100644 tests/unit/src/unit/issues/Issue8257.hx create mode 100644 tests/unit/src/unit/issues/Issue8261.hx create mode 100644 tests/unit/src/unit/issues/Issue8286.hx create mode 100644 tests/unit/src/unit/issues/Issue8296.hx create mode 100644 tests/unit/src/unit/issues/Issue8299.hx create mode 100644 tests/unit/src/unit/issues/Issue8337.hx create mode 100644 tests/unit/src/unit/issues/Issue8341.hx create mode 100644 tests/unit/src/unit/issues/Issue8343.hx create mode 100644 tests/unit/src/unit/issues/Issue8376.hx create mode 100644 tests/unit/src/unit/issues/Issue8425.hx create mode 100644 tests/unit/src/unit/issues/Issue8435.hx create mode 100644 tests/unit/src/unit/issues/Issue8489.hx create mode 100644 tests/unit/src/unit/issues/Issue8493.hx create mode 100644 tests/unit/src/unit/issues/Issue8502.hx create mode 100644 tests/unit/src/unit/issues/Issue8506.hx create mode 100644 tests/unit/src/unit/issues/Issue8513.hx create mode 100644 tests/unit/src/unit/issues/Issue8528.hx create mode 100644 tests/unit/src/unit/issues/Issue8537.hx create mode 100644 tests/unit/src/unit/issues/Issue8538.hx create mode 100644 tests/unit/src/unit/issues/Issue8549.hx create mode 100644 tests/unit/src/unit/issues/Issue8560.hx create mode 100644 tests/unit/src/unit/issues/Issue8700.hx create mode 100644 tests/unit/src/unit/issues/Issue8702.hx create mode 100644 tests/unit/src/unit/issues/Issue8710.hx create mode 100644 tests/unit/src/unit/issues/Issue8716.hx create mode 100644 tests/unit/src/unit/issues/Issue8740.hx create mode 100644 tests/unit/src/unit/issues/Issue8764.hx create mode 100644 tests/unit/src/unit/issues/Issue8779.hx create mode 100644 tests/unit/src/unit/issues/Issue8781.hx create mode 100644 tests/unit/src/unit/issues/Issue8791.hx create mode 100644 tests/unit/src/unit/issues/Issue8845.hx create mode 100644 tests/unit/src/unit/issues/Issue8859.hx create mode 100644 tests/unit/src/unit/issues/Issue8861.hx create mode 100644 tests/unit/src/unit/issues/Issue8869.hx create mode 100644 tests/unit/src/unit/issues/misc/ISSUE7716.hx create mode 100644 tests/unit/src/unit/issues/misc/Issue5009Assert.hx create mode 100644 tests/unit/src/unit/issues/misc/Issue5255Class.hx create mode 100644 tests/unit/src/unit/issues/misc/Issue6873Macro.hx create mode 100644 tests/unit/src/unit/issues/misc/Issue7466Macro.hx rename tests/unit/src/unit/{ => spec}/TestSpecification.hx (77%) create mode 100644 tests/unit/src/unit/spec/import.hx rename tests/unit/src/unitstd/{Https.unit.hx => Https.unit.hx.no} (75%) create mode 100644 tests/unit/src/unitstd/InlineXml.unit.hx delete mode 100644 tests/unit/src/unitstd/Sys.unit.hx create mode 100644 tests/unit/src/unitstd/Unicode.unit.hx create mode 100644 tests/unit/src/unitstd/UnicodeString.unit.hx delete mode 100644 tests/unit/src/unitstd/haxe/crypto/Crc32.hx create mode 100644 tests/unit/src/unitstd/haxe/crypto/Crc32.unit.hx create mode 100644 tests/unit/src/unitstd/haxe/ds/IntMap.unit.hx create mode 100644 tests/unit/src/unitstd/haxe/ds/StringMap.unit.hx create mode 100644 tests/unit/src/unitstd/haxe/iterators/StringIteratorUnicode.unit.hx create mode 100644 tests/unit/src/unitstd/haxe/iterators/StringKeyValueIteratorUnicode.unit.hx create mode 100644 tests/unit/src/unitstd/haxe/zip/Uncompress.unit.hx create mode 100644 tests/unit/src/unitstd/sys/io/File.unit.hx create mode 100644 tests/unit/src/unitstd/sys/net/Socket.unit.hx diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..2481fa5c --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,4 @@ +# These are supported funding model platforms + +open_collective: haxe +custom: ['https://haxe.org/foundation/support-plans.html', 'https://haxe.org/foundation/donate.html'] diff --git a/.merlin b/.merlin index b303a900..7c9eaf64 100644 --- a/.merlin +++ b/.merlin @@ -1,4 +1,14 @@ S src/** -B src/** +B _build/src/** S libs/** B libs/** +B +threads +PKG ptmap +PKG sedlex +PKG extlib +PKG camlzip +PKG xml-light +PKG sha +FLG -safe-string +FLG -w -3 +FLG -w -40 \ No newline at end of file diff --git a/.vscode/schemas/define.schema.json b/.vscode/schemas/define.schema.json new file mode 100644 index 00000000..1d902d1a --- /dev/null +++ b/.vscode/schemas/define.schema.json @@ -0,0 +1,68 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "markdownDescription": "OCaml name of the define." + }, + "define": { + "type": "string", + "markdownDescription": "Actual name of the define as it's used in `-D` on the CLI and in Haxe code." + }, + "doc": { + "type": "string", + "markdownDescription": "Documentation for the define that is shown in `--help-defines`." + }, + "platforms": { + "type": "array", + "markdownDescription": "Platforms on which this define has an effect.", + "minItems": 1, + "items": { + "enum": [ + "js", + "lua", + "neko", + "flash", + "php", + "cpp", + "cs", + "java", + "python", + "hl", + "eval" + ] + } + }, + "params": { + "type": "array", + "markdownDescription": "Parameters this define takes.", + "minItems": 1, + "items": { + "type": "string" + } + }, + "devcomment": { + "type": "string", + "markdownDescription": "Internal comment that is not exposed." + }, + "links": { + "type": "array", + "markdownDescription": "Relevant URLs.", + "minItems": 1, + "items": { + "type": "string", + "format": "uri" + } + } + }, + "required": [ + "name", + "define", + "doc" + ] + } +} \ No newline at end of file diff --git a/.vscode/schemas/meta.schema.json b/.vscode/schemas/meta.schema.json new file mode 100644 index 00000000..b2dee205 --- /dev/null +++ b/.vscode/schemas/meta.schema.json @@ -0,0 +1,90 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "markdownDescription": "OCaml name of the meta." + }, + "metadata": { + "type": "string", + "markdownDescription": "Actual name of the meta as it's used in Haxe code." + }, + "doc": { + "type": "string", + "markdownDescription": "Documentation for the meta that is shown in `--help-metas` and IDE hints." + }, + "platforms": { + "type": "array", + "markdownDescription": "Platforms on which this meta has an effect.", + "minItems": 1, + "items": { + "enum": [ + "js", + "lua", + "neko", + "flash", + "php", + "cpp", + "cs", + "java", + "python", + "hl", + "eval" + ] + } + }, + "params": { + "type": "array", + "markdownDescription": "Parameters this meta takes.", + "minItems": 1, + "items": { + "type": "string" + } + }, + "devcomment": { + "type": "string", + "markdownDescription": "Internal comment that is not exposed." + }, + "internal": { + "type": "boolean", + "markdownDescription": "Whether this define is for internal use only, in which case it is not exposed to the CLI and the `--display` protocol." + }, + "targets": { + "type": "array", + "markdownDescription": "On what the meta can be used.", + "minItems": 1, + "items": { + "enum": [ + "TClass", + "TClassField", + "TAbstract", + "TAbstractField", + "TEnum", + "TTypedef", + "TExpr", + "TTypeParameter", + "TAnyField" + ] + } + }, + "links": { + "type": "array", + "markdownDescription": "Relevant URLs.", + "minItems": 1, + "items": { + "type": "string", + "format": "uri" + } + } + }, + "required": [ + "name", + "metadata", + "doc" + ] + } +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..3b6ceacf --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,32 @@ +{ + "files.associations": { + "*.mly": "ocaml", + "*.ml": "ocaml", + "Makefile.*": "makefile" + }, + "[ocaml]": { + "editor.tabSize": 4 + }, + "files.exclude": { + "**/_build": true + }, + "reason.server.languages": [ + "ocaml" + ], + "haxe.diagnosticsPathFilter": "${workspaceRoot}/std", + "npm.autoDetect": "off", + "json.schemas": [ + { + "fileMatch": [ + "src-json/define.json" + ], + "url": "./.vscode/schemas/define.schema.json" + }, + { + "fileMatch": [ + "src-json/meta.json" + ], + "url": "./.vscode/schemas/meta.schema.json" + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000..5e0f5a75 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,51 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "make: haxe", + "type": "shell", + "command": "make ADD_REVISION=1 -s -j haxe", + "windows": { + "command": "make ADD_REVISION=1 -f Makefile.win -s -j haxe" + }, + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "make: libs", + "type": "shell", + "command": "make -s -j libs", + "windows": { + "command": "make -f Makefile.win -s -j libs" + }, + "problemMatcher": [] + }, + { + "label": "make: haxelib", + "type": "shell", + "command": "make -s haxelib", + "windows": { + "command": "make -f Makefile.win -s haxelib" + }, + "problemMatcher": ["$haxe", "$haxe-absolute"] + }, + { + "label": "make: all", + "type": "shell", + "command": "make s -j libs && make ADD_REVISION=1 -s -j haxe && make -s haxelib", + "windows": { + "command": "make -f Makefile.win -s -j libs && make ADD_REVISION=1 -f Makefile.win -s -j haxe && make -f Makefile.win -s haxelib" + }, + "problemMatcher": ["$haxe", "$haxe-absolute"] + }, + { + "label": "make: clean", + "type": "shell", + "command": "make clean", + "problemMatcher": [] + } + ] +} \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6c63e8b0..48183c80 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,6 +15,56 @@ This repository is about the Haxe compiler itself and the Haxe standard library. * Something on api.haxe.org: For content this is probably the right repository. If it's about the representation, try instead. * Something else on haxe.org: +## Submitting a Pull-Request + +Thank you for your interest in contributing to Haxe! Haxe is a +community-driven project and your help is vital and appreciated! + +When preparing to submit a pull-request, please make your PR as easy +as possible for core devs to evaluate and merge. To that end: + + * In your PR comments, include: + + * the reason for your proposed changes (What problem are you fixing?) + * some possible solutions, and rationale for the one you chose + * a summary of the code changes in your PR + * any pros and cons to note about the solution you implemented + * links to any relevant GitHub issues, PR's, and/or forum + discussions + + * If you've found and fixed a bug, have you also included a + corresponding test for it? + * Does your code formatting match that of the rest of the project? + * If your changes require updates to the documentation, does your PR + include those as well? + +Please also bear the following in mind: + + * Evaluating PR's takes time and effort. Even taking a look at a PR + in order to request more info or clarification is not zero-cost. + * Most members of the core team are volunteers too, and at any given time + are typically already busy working on other areas of Haxe. + * It's no fun providing negative feedback to a PR. The better you + can craft and champion your PR, the more likely it is to be + speedily evaluated. + + +## Debugging Hints + +### Using a debugger + +To debug the Haxe compiler, you can use either a system debugger (`gdb`/`lldb`), or [ocamldebug](http://caml.inria.fr/pub/docs/manual-ocaml/debugger.html). `ocamldebug` provides a better debugging experience. To use it, compile with `make BYTECODE=1`. + +### Using printf + +To print information about a type, you can add the following before most lines: + +```ocaml +Printf.printf "%s\n" (s_type_kind t); +``` + +There are lots of other stringifying functions, search for "Printing" in `src/core/type.ml` and scroll down to find them. + ## Other remarks: - Sometimes people try to be particularly helpful by not only including broken parts in their code, but also "similar" code which is working. More often than not this is more distracting than helpful. If you want to highlight something like this, consider adding the working code commented out. diff --git a/Makefile b/Makefile index b846a069..15693ee6 100644 --- a/Makefile +++ b/Makefile @@ -8,73 +8,69 @@ # - use 'make -f Makefile.win' to build for Windows # - use 'make MSVC=1 -f Makefile.win' to build for Windows with OCaml/MSVC # -.SUFFIXES : .ml .mli .cmo .cmi .cmx .mll .mly +.SUFFIXES : .ml .mli .cmo .cmi .cmx .mly -INSTALL_DIR=$(DESTDIR)/usr +INSTALL_DIR=/usr/local INSTALL_BIN_DIR=$(INSTALL_DIR)/bin INSTALL_LIB_DIR=$(INSTALL_DIR)/lib/haxe -INSTALL_STD_DIR=$(INSTALL_LIB_DIR)/std +INSTALL_STD_DIR=$(INSTALL_DIR)/share/haxe/std PACKAGE_OUT_DIR=out INSTALLER_TMP_DIR=installer PACKAGE_SRC_EXTENSION=.tar.gz +MAKEFILENAME?=Makefile PLATFORM?=unix -OUTPUT=haxe +HAXE_OUTPUT=haxe +HAXELIB_OUTPUT=haxelib +PREBUILD_OUTPUT=prebuild EXTENSION= -OCAMLOPT?=ocamlopt -OCAMLC?=ocamlc LFLAGS= STATICLINK?=0 -CFLAGS= -bin-annot -ALL_CFLAGS= $(CFLAGS) -g -w -3 -I libs/extlib -I libs/extc -I libs/neko -I libs/javalib -I libs/ziplib -I libs/swflib -I libs/xml-light -I libs/ttflib -I libs/ilib -I libs/objsize -I libs/pcre \ - -I src -I src/context -I src/generators -I src/macro -I src/optimization -I src/syntax -I src/typing -I src/display +# Configuration -LIBS=unix str libs/extlib/extLib libs/xml-light/xml-light libs/swflib/swflib \ - libs/extc/extc libs/neko/neko libs/javalib/java libs/ziplib/zip \ - libs/ttflib/ttf libs/ilib/il libs/objsize/objsize libs/pcre/pcre +# Modules in these directories should only depend on modules that are in directories to the left +HAXE_DIRECTORIES=core core/json core/display syntax context context/display codegen codegen/gencommon generators generators/jvm optimization filters macro macro/eval macro/eval/bytes typing compiler +EXTLIB_LIBS=extlib-leftovers extc neko javalib swflib ttflib ilib objsize pcre ziplib +OCAML_LIBS=unix str threads dynlink +OPAM_LIBS=sedlex.ppx xml-light extlib ptmap sha +FINDLIB_LIBS=$(OCAML_LIBS) +FINDLIB_LIBS+=$(OPAM_LIBS) -ifneq ($(STATICLINK),0) -LIB_PARAMS= -cclib '-Wl,-Bstatic -lpcre -lz -Wl,-Bdynamic ' +# Includes, packages and compiler -else -LIB_PARAMS?= -cclib -lpcre -cclib -lz +HAXE_INCLUDES=$(HAXE_DIRECTORIES:%=-I _build/src/%) +EXTLIB_INCLUDES=$(EXTLIB_LIBS:%=-I libs/%) +ALL_INCLUDES=$(EXTLIB_INCLUDES) $(HAXE_INCLUDES) +FINDLIB_PACKAGES=$(FINDLIB_LIBS:%=-package %) +CFLAGS= +ALL_CFLAGS=-bin-annot -safe-string -thread -g -w -3 -w -40 $(CFLAGS) $(ALL_INCLUDES) $(FINDLIB_PACKAGES) -endif - -NATIVE_LIBS=-cclib libs/extc/extc_stubs.o -cclib libs/extc/process_stubs.o -cclib libs/objsize/c_objsize.o -cclib libs/pcre/pcre_stubs.o -ccopt -L/usr/local/lib $(LIB_PARAMS) +MESSAGE_FILTER=sed -e 's/_build\/src\//src\//' tmp.tmp ifeq ($(BYTECODE),1) TARGET_FLAG = bytecode - COMPILER = $(OCAMLC) + COMPILER = ocamlfind ocamlc LIB_EXT = cma MODULE_EXT = cmo NATIVE_LIB_FLAG = -custom else TARGET_FLAG = native - COMPILER = $(OCAMLOPT) + COMPILER = ocamlfind ocamlopt LIB_EXT = cmxa MODULE_EXT = cmx + OCAMLDEP_FLAGS = -native endif -CC_CMD = $(COMPILER) $(ALL_CFLAGS) -c $< - -CC_PARSER_CMD = $(COMPILER) -pp camlp4o $(ALL_CFLAGS) -c src/syntax/parser.ml +CC_CMD = ($(COMPILER) $(ALL_CFLAGS) -c $< 2>tmp.tmp && $(MESSAGE_FILTER)) || ($(MESSAGE_FILTER) && exit 1) -RELDIR=../../.. +# Meta information -MODULES=json version globals path context/meta syntax/ast display/displayTypes typing/type typing/error \ - syntax/lexer context/common generators/genxml \ - syntax/parser typing/abstract typing/typecore display/display optimization/optimizerTexpr \ - optimization/optimizer typing/overloads typing/typeload sourcemaps generators/codegen generators/gencommon generators/genas3 \ - generators/gencpp generators/genjs generators/genneko generators/genphp generators/genphp7 generators/genswf9 \ - generators/genswf generators/genjava generators/gencs generators/genpy macro/macroApi macro/interp generators/hlcode generators/hlopt generators/hlinterp generators/hl2c \ - generators/genlua \ - optimization/dce optimization/analyzerConfig optimization/analyzerTypes optimization/analyzerTexpr \ - optimization/analyzerTexprTransformer optimization/analyzer generators/genhl \ - optimization/filters macro/hlmacro macro/macroContext typing/typer typing/matcher display/displayOutput server main +BUILD_DIRECTORIES := $(HAXE_DIRECTORIES:%=_build/src/%) +HAXE_SRC := $(wildcard $(HAXE_DIRECTORIES:%=src/%/*.ml)) +BUILD_SRC := $(HAXE_SRC:%=_build/%) ADD_REVISION?=0 @@ -88,7 +84,8 @@ COMMIT_DATE=$(shell \ fi \ ) PACKAGE_FILE_NAME=haxe_$(COMMIT_DATE)_$(COMMIT_SHA) -HAXE_VERSION=$(shell $(OUTPUT) -version 2>&1 | awk '{print $$1;}') +HAXE_VERSION=$(shell $(CURDIR)/$(HAXE_OUTPUT) -version 2>&1 | awk '{print $$1;}') +HAXE_VERSION_SHORT=$(shell echo "$(HAXE_VERSION)" | grep -oE "^[0-9]+\.[0-9]+\.[0-9]+") # using $(CURDIR) on Windows will not work since it might be a Cygwin path ifdef SYSTEMROOT @@ -97,188 +94,128 @@ else export HAXE_STD_PATH=$(CURDIR)/std endif -all: libs haxe tools - -libs: - make -C libs/extlib OCAMLOPT=$(OCAMLOPT) OCAMLC=$(OCAMLC) $(TARGET_FLAG) - make -C libs/extc OCAMLOPT=$(OCAMLOPT) OCAMLC=$(OCAMLC) $(TARGET_FLAG) - make -C libs/neko OCAMLOPT=$(OCAMLOPT) OCAMLC=$(OCAMLC) $(TARGET_FLAG) - make -C libs/javalib OCAMLOPT=$(OCAMLOPT) OCAMLC=$(OCAMLC) $(TARGET_FLAG) - make -C libs/ilib OCAMLOPT=$(OCAMLOPT) OCAMLC=$(OCAMLC) $(TARGET_FLAG) - make -C libs/ziplib OCAMLOPT=$(OCAMLOPT) OCAMLC=$(OCAMLC) $(TARGET_FLAG) - make -C libs/swflib OCAMLOPT=$(OCAMLOPT) OCAMLC=$(OCAMLC) $(TARGET_FLAG) - make -C libs/xml-light OCAMLOPT=$(OCAMLOPT) OCAMLC=$(OCAMLC) $(TARGET_FLAG) - make -C libs/ttflib OCAMLOPT=$(OCAMLOPT) OCAMLC=$(OCAMLC) $(TARGET_FLAG) - make -C libs/objsize OCAMLOPT=$(OCAMLOPT) OCAMLC=$(OCAMLC) $(TARGET_FLAG) - make -C libs/pcre OCAMLOPT=$(OCAMLOPT) OCAMLC=$(OCAMLC) $(TARGET_FLAG) - -haxe: $(MODULES:%=src/%.$(MODULE_EXT)) - $(COMPILER) -o $(OUTPUT) $(NATIVE_LIBS) $(NATIVE_LIB_FLAG) $(LFLAGS) $(LIBS:=.$(LIB_EXT)) $(MODULES:%=src/%.$(MODULE_EXT)) - -haxelib: - (cd $(CURDIR)/extra/haxelib_src && $(CURDIR)/$(OUTPUT) client.hxml && nekotools boot run.n) - mv extra/haxelib_src/run$(EXTENSION) haxelib$(EXTENSION) +# Native libraries -tools: haxelib - -install: uninstall - mkdir -p $(INSTALL_BIN_DIR) - mkdir -p $(INSTALL_LIB_DIR)/lib - cp -rf std $(INSTALL_STD_DIR) - cp -rf extra $(INSTALL_LIB_DIR) - cp haxe $(INSTALL_LIB_DIR) - ln -s $(INSTALL_LIB_DIR)/haxe $(INSTALL_BIN_DIR)/haxe - cp haxelib $(INSTALL_LIB_DIR) - ln -s $(INSTALL_LIB_DIR)/haxelib $(INSTALL_BIN_DIR)/haxelib - chmod -R a+rx $(INSTALL_LIB_DIR) - chmod 777 $(INSTALL_LIB_DIR)/lib - chmod a+rx $(INSTALL_BIN_DIR)/haxe $(INSTALL_BIN_DIR)/haxelib - -# will install native version of the tools instead of script ones -install_tools: tools - cp haxelib ${INSTALL_BIN_DIR}/haxelib - chmod a+rx $(INSTALL_BIN_DIR)/haxelib - -uninstall: - rm -rf $(INSTALL_BIN_DIR)/haxe $(INSTALL_BIN_DIR)/haxelib - if [ -d "$(INSTALL_LIB_DIR)/lib" ] && find "$(INSTALL_LIB_DIR)/lib" -mindepth 1 -print -quit | grep -q .; then \ - echo "The local haxelib repo at $(INSTALL_LIB_DIR)/lib will not be removed. Remove it manually if you want."; \ - find $(INSTALL_LIB_DIR)/ ! -name 'lib' -mindepth 1 -maxdepth 1 -exec rm -rf {} +; \ - else \ - rm -rf $(INSTALL_LIB_DIR); \ - fi +ifneq ($(STATICLINK),0) + LIB_PARAMS= -cclib '-Wl,-Bstatic -lpcre -lz -Wl,-Bdynamic ' +else + LIB_PARAMS?= -cclib -lpcre -cclib -lz +endif +NATIVE_LIBS=-thread -cclib libs/extc/extc_stubs.o -cclib libs/extc/process_stubs.o -cclib libs/objsize/c_objsize.o -cclib libs/pcre/pcre_stubs.o -ccopt -L/usr/local/lib $(LIB_PARAMS) # Modules -# context - -src/context/common.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/display/displayTypes.$(MODULE_EXT) libs/ilib/il.$(LIB_EXT) - -src/context/meta.$(MODULE_EXT): src/globals.$(MODULE_EXT) - -# display - -src/display/display.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/path.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/typing/typecore.$(MODULE_EXT) src/syntax/parser.$(MODULE_EXT) src/display/displayTypes.$(MODULE_EXT) - -src/display/displayTypes.$(MODULE_EXT) : src/globals.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -src/display/displayOutput.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/typing/typer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/display/display.$(MODULE_EXT) - -# sourcemaps - -src/sourcemaps.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -# generators - -src/generators/codegen.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/generators/genxml.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -src/generators/genas3.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -src/generators/gencommon.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/typing/error.$(MODULE_EXT) src/typing/overloads.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) libs/ilib/il.$(LIB_EXT) - -src/generators/gencpp.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -src/generators/gencs.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/generators/gencommon.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) libs/ilib/il.$(LIB_EXT) - -src/generators/genjava.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/generators/gencommon.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -src/generators/genjs.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -src/generators/genneko.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) +-include Makefile.modules -src/generators/genlua.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) +# Rules -src/generators/genphp.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -src/generators/genpy.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -src/generators/genswf.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/generators/genswf9.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -src/generators/hlinterp.$(MODULE_EXT): src/context/common.$(MODULE_EXT) src/generators/hlcode.$(MODULE_EXT) src/macro/interp.$(MODULE_EXT) src/generators/hlopt.$(MODULE_EXT) src/macro/macroApi.$(MODULE_EXT) - -src/generators/genphp7.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/sourcemaps.$(MODULE_EXT) - -src/generators/hl2c.$(MODULE_EXT): src/generators/hlcode.$(MODULE_EXT) src/context/common.$(MODULE_EXT) - -src/generators/hlopt.$(MODULE_EXT): src/generators/hlcode.$(MODULE_EXT) - -src/generators/genhl.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/generators/hlcode.$(MODULE_EXT) src/generators/hlinterp.$(MODULE_EXT) src/generators/hl2c.$(MODULE_EXT) src/generators/hlopt.$(MODULE_EXT) - -src/generators/genswf9.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -src/generators/genxml.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - -# macro - -src/macro/interp.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/typing/error.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/generators/genneko.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/generators/genswf.$(MODULE_EXT) src/generators/genjava.$(MODULE_EXT) src/generators/gencs.$(MODULE_EXT) src/syntax/parser.$(MODULE_EXT) libs/ilib/il.$(LIB_EXT) src/macro/macroApi.$(MODULE_EXT) libs/pcre/pcre.$(LIB_EXT) - -src/macro/macroContext.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/typing/error.$(MODULE_EXT) src/optimization/optimizerTexpr.$(MODULE_EXT) src/typing/overloads.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/typeload.$(MODULE_EXT) src/typing/typecore.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/parser.$(MODULE_EXT) src/optimization/optimizer.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/macro/interp.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/optimization/filters.$(MODULE_EXT) src/generators/genjs.$(MODULE_EXT) src/display/display.$(MODULE_EXT) src/macro/hlmacro.$(MODULE_EXT) src/macro/macroApi.$(MODULE_EXT) - -src/macro/hlmacro.$(MODULE_EXT): src/generators/hlinterp.$(MODULE_EXT) src/generators/genhl.$(MODULE_EXT) src/macro/macroApi.$(MODULE_EXT) - -src/macro/macroApi.$(MODULE_EXT): src/generators/genjs.$(MODULE_EXT) src/generators/gencs.$(MODULE_EXT) src/generators/genjava.$(MODULE_EXT) src/syntax/parser.$(MODULE_EXT) - -# optimization - -src/optimization/analyzer.$(MODULE_EXT): src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/optimization/optimizer.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/optimization/analyzerConfig.$(MODULE_EXT) src/optimization/analyzerTypes.$(MODULE_EXT) src/optimization/analyzerTexpr.$(MODULE_EXT) src/optimization/analyzerTexprTransformer.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) - -src/optimization/analyzerConfig.$(MODULE_EXT): src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/context/common.$(MODULE_EXT) - -src/optimization/analyzerTexpr.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/typing/error.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/optimization/analyzerConfig.$(MODULE_EXT) src/optimization/optimizerTexpr.$(MODULE_EXT) src/generators/genphp7.$(MODULE_EXT) +all: libs haxe tools -src/optimization/analyzerTexprTransformer.$(MODULE_EXT): src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/typing/error.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/optimization/analyzerConfig.$(MODULE_EXT) src/optimization/analyzerTypes.$(MODULE_EXT) src/optimization/analyzerTexpr.$(MODULE_EXT) +libs: + $(foreach lib,$(EXTLIB_LIBS),$(MAKE) -C libs/$(lib) $(TARGET_FLAG) &&) true -src/optimization/analyzerTypes.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/optimization/analyzerConfig.$(MODULE_EXT) +_build/%:% + mkdir -p $(dir $@) + cp $< $@ -src/optimization/dce.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/typing/typecore.$(MODULE_EXT) src/typing/error.$(MODULE_EXT) src/path.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) +build_dirs: + @mkdir -p $(BUILD_DIRECTORIES) -src/optimization/filters.$(MODULE_EXT): src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/typing/error.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/optimization/analyzer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/optimization/dce.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/typing/typecore.$(MODULE_EXT) +_build/src/syntax/grammar.ml:src/syntax/grammar.mly + camlp5o -impl $< -o $@ -src/optimization/optimizer.$(MODULE_EXT): src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/optimization/optimizerTexpr.$(MODULE_EXT) src/display/display.$(MODULE_EXT) src/typing/typecore.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/parser.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) +_build/src/compiler/version.ml: FORCE +ifneq ($(ADD_REVISION),0) + $(MAKE) -f Makefile.version_extra -s --no-print-directory ADD_REVISION=$(ADD_REVISION) BRANCH=$(BRANCH) COMMIT_SHA=$(COMMIT_SHA) COMMIT_DATE=$(COMMIT_DATE) > _build/src/compiler/version.ml +else + echo let version_extra = None > _build/src/compiler/version.ml +endif -src/optimization/optimizerTexpr.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) +_build/src/core/defineList.ml: src-json/define.json prebuild + ./$(PREBUILD_OUTPUT) define $< > $@ -# syntax +_build/src/core/metaList.ml: src-json/meta.json prebuild + ./$(PREBUILD_OUTPUT) meta $< > $@ -src/syntax/ast.$(MODULE_EXT): src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) +build_src: | $(BUILD_SRC) _build/src/syntax/grammar.ml _build/src/compiler/version.ml _build/src/core/defineList.ml _build/src/core/metaList.ml -src/syntax/lexer.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/syntax/lexer.ml src/syntax/ast.$(MODULE_EXT) +prebuild: _build/src/core/json/json.ml _build/src/prebuild/main.ml + $(COMPILER) -safe-string -linkpkg -g -o $(PREBUILD_OUTPUT) -package sedlex.ppx -package extlib -I _build/src/core/json _build/src/core/json/json.ml _build/src/prebuild/main.ml -src/syntax/parser.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/path.$(MODULE_EXT) src/syntax/parser.ml src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) - $(CC_PARSER_CMD) +haxe: build_src + $(MAKE) -f $(MAKEFILENAME) build_pass_1 + $(MAKE) -f $(MAKEFILENAME) build_pass_2 + $(MAKE) -f $(MAKEFILENAME) build_pass_3 + $(MAKE) -f $(MAKEFILENAME) build_pass_4 -# typing +build_pass_1: + printf MODULES= > Makefile.modules + ls -1 $(HAXE_DIRECTORIES:%=_build/src/%/*.ml) | tr '\n' ' ' >> Makefile.modules -src/typing/abstract.$(MODULE_EXT): src/context/meta.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/typing/error.$(MODULE_EXT) +build_pass_2: + printf MODULES= > Makefile.modules + ocamlfind ocamldep -sort -slash $(HAXE_INCLUDES) $(MODULES) | sed -e "s/\.ml//g" >> Makefile.modules -src/typing/error.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) +build_pass_3: + ocamlfind ocamldep -slash $(OCAMLDEP_FLAGS) $(HAXE_INCLUDES) $(MODULES:%=%.ml) > Makefile.dependencies -src/typing/matcher.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/typing/error.$(MODULE_EXT) src/optimization/optimizer.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/typing/typecore.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/typing/typer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) +build_pass_4: $(MODULES:%=%.$(MODULE_EXT)) + $(COMPILER) -safe-string -linkpkg -g -o $(HAXE_OUTPUT) $(NATIVE_LIBS) $(NATIVE_LIB_FLAG) $(LFLAGS) $(FINDLIB_PACKAGES) $(EXTLIB_INCLUDES) $(EXTLIB_LIBS:=.$(LIB_EXT)) $(MODULES:%=%.$(MODULE_EXT)) -src/typing/overloads.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) +kill_exe_win: +ifdef SYSTEMROOT + -@taskkill /F /IM haxe.exe 2>/dev/null +endif -src/typing/type.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/json.$(MODULE_EXT) +plugin: +ifeq ($(BYTECODE),1) + $(CC_CMD) $(PLUGIN).ml +else + $(COMPILER) $(ALL_CFLAGS) -shared -o $(PLUGIN).cmxs $(PLUGIN).ml +endif -src/typing/typecore.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) +# Only use if you have only changed gencpp.ml +quickcpp: build_src build_pass_4 copy_haxetoolkit -src/typing/typeload.$(MODULE_EXT): src/globals.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/optimization/optimizerTexpr.$(MODULE_EXT) src/typing/overloads.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/typecore.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/parser.$(MODULE_EXT) src/optimization/optimizer.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/json.$(MODULE_EXT) src/display/display.$(MODULE_EXT) +CPP_OS := $(shell uname) +ifeq ($(CPP_OS),Linux) +copy_haxetoolkit: + sudo cp haxe /usr/bin/haxe +else +copy_haxetoolkit: /cygdrive/c/HaxeToolkit/haxe/haxe.exe +/cygdrive/c/HaxeToolkit/haxe/haxe.exe:haxe.exe + cp $< $@ +endif -src/typing/typer.$(MODULE_EXT): src/typing/abstract.$(MODULE_EXT) src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/typing/error.$(MODULE_EXT) src/optimization/optimizerTexpr.$(MODULE_EXT) src/typing/overloads.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/typeload.$(MODULE_EXT) src/typing/typecore.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/parser.$(MODULE_EXT) src/optimization/optimizer.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/macro/interp.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/optimization/filters.$(MODULE_EXT) src/generators/genjs.$(MODULE_EXT) src/display/display.$(MODULE_EXT) src/macro/macroContext.$(MODULE_EXT) +haxelib: + (cd $(CURDIR)/extra/haxelib_src && $(CURDIR)/$(HAXE_OUTPUT) client.hxml && nekotools boot run.n) + mv extra/haxelib_src/run$(EXTENSION) $(HAXELIB_OUTPUT) -# main +tools: haxelib -src/main.$(MODULE_EXT): src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/typing/error.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/path.$(MODULE_EXT) src/optimization/filters.$(MODULE_EXT) src/typing/matcher.$(MODULE_EXT) src/typing/typer.$(MODULE_EXT) src/typing/typeload.$(MODULE_EXT) src/typing/typecore.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/parser.$(MODULE_EXT) src/optimization/optimizer.$(MODULE_EXT) src/syntax/lexer.$(MODULE_EXT) src/macro/interp.$(MODULE_EXT) src/generators/genxml.$(MODULE_EXT) src/generators/genswf.$(MODULE_EXT) src/generators/genphp.$(MODULE_EXT) src/generators/genphp7.$(MODULE_EXT) src/generators/genneko.$(MODULE_EXT) src/generators/genjs.$(MODULE_EXT) src/generators/genlua.$(MODULE_EXT) src/generators/gencpp.$(MODULE_EXT) src/generators/genas3.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/generators/codegen.$(MODULE_EXT) src/generators/genjava.$(MODULE_EXT) src/generators/gencs.$(MODULE_EXT) src/generators/genpy.$(MODULE_EXT) src/generators/genhl.$(MODULE_EXT) src/display/display.$(MODULE_EXT) src/server.$(MODULE_EXT) src/display/displayOutput.$(MODULE_EXT) libs/ilib/il.$(LIB_EXT) +install: uninstall + mkdir -p "$(DESTDIR)$(INSTALL_BIN_DIR)" + cp $(HAXE_OUTPUT) $(HAXELIB_OUTPUT) "$(DESTDIR)$(INSTALL_BIN_DIR)" + mkdir -p "$(DESTDIR)$(INSTALL_STD_DIR)" + cp -r std/* "$(DESTDIR)$(INSTALL_STD_DIR)" -src/globals.$(MODULE_EXT): src/version.$(MODULE_EXT) +uninstall: + rm -rf $(DESTDIR)$(INSTALL_BIN_DIR)/$(HAXE_OUTPUT) $(DESTDIR)$(INSTALL_BIN_DIR)/$(HAXELIB_OUTPUT) + if [ -d "$(DESTDIR)$(INSTALL_LIB_DIR)/lib" ] && find "$(DESTDIR)$(INSTALL_LIB_DIR)/lib" -mindepth 1 -print -quit | grep -q .; then \ + echo "The local haxelib repo at $(DESTDIR)$(INSTALL_LIB_DIR)/lib will not be removed. Remove it manually if you want."; \ + find $(DESTDIR)$(INSTALL_LIB_DIR)/ ! -name 'lib' -mindepth 1 -maxdepth 1 -exec rm -rf {} +; \ + else \ + rm -rf $(DESTDIR)$(INSTALL_LIB_DIR); \ + fi + rm -rf $(DESTDIR)$(INSTALL_STD_DIR) -src/path.$(MODULE_EXT): src/globals.$(MODULE_EXT) +opam_install: + opam install $(OPAM_LIBS) camlp5 ocamlfind --yes -src/server.$(MODULE_EXT): src/context/meta.$(MODULE_EXT) src/globals.$(MODULE_EXT) src/path.$(MODULE_EXT) src/typing/typer.$(MODULE_EXT) src/typing/typeload.$(MODULE_EXT) src/typing/typecore.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/syntax/parser.$(MODULE_EXT) src/typing/typecore.$(MODULE_EXT) src/typing/type.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/context/common.$(MODULE_EXT) src/syntax/parser.$(MODULE_EXT) src/syntax/ast.$(MODULE_EXT) src/display/displayOutput.$(MODULE_EXT) +# Dependencies -src/version.$(MODULE_EXT): - $(MAKE) -f Makefile.version_extra -s --no-print-directory ADD_REVISION=$(ADD_REVISION) BRANCH=$(BRANCH) COMMIT_SHA=$(COMMIT_SHA) COMMIT_DATE=$(COMMIT_DATE) > src/version.ml - $(COMPILER) $(ALL_CFLAGS) -c src/version.ml +-include Makefile.dependencies # Package @@ -294,7 +231,7 @@ package_unix: rm -rf $(PACKAGE_FILE_NAME) $(PACKAGE_FILE_NAME).tar.gz # Copy the package contents to $(PACKAGE_FILE_NAME) mkdir -p $(PACKAGE_FILE_NAME) - cp -r $(OUTPUT) haxelib$(EXTENSION) std extra/LICENSE.txt extra/CONTRIB.txt extra/CHANGES.txt $(PACKAGE_FILE_NAME) + cp -r $(HAXE_OUTPUT) $(HAXELIB_OUTPUT) std extra/LICENSE.txt extra/CONTRIB.txt extra/CHANGES.txt $(PACKAGE_FILE_NAME) # archive tar -zcf $(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_bin.tar.gz $(PACKAGE_FILE_NAME) rm -r $(PACKAGE_FILE_NAME) @@ -302,23 +239,25 @@ package_unix: package_bin: package_$(PLATFORM) xmldoc: - haxelib path hxcpp || haxelib git hxcpp https://github.com/HaxeFoundation/hxcpp - haxelib path hxjava || haxelib git hxjava https://github.com/HaxeFoundation/hxjava - haxelib path hxcs || haxelib git hxcs https://github.com/HaxeFoundation/hxcs - cd extra && haxe doc.hxml + cd extra && \ + $(CURDIR)/$(HAXELIB_OUTPUT) newrepo && \ + $(CURDIR)/$(HAXELIB_OUTPUT) git hxcpp https://github.com/HaxeFoundation/hxcpp && \ + $(CURDIR)/$(HAXELIB_OUTPUT) git hxjava https://github.com/HaxeFoundation/hxjava && \ + $(CURDIR)/$(HAXELIB_OUTPUT) git hxcs https://github.com/HaxeFoundation/hxcs && \ + PATH="$(CURDIR):$(PATH)" $(CURDIR)/$(HAXE_OUTPUT) doc.hxml $(INSTALLER_TMP_DIR): mkdir -p $(INSTALLER_TMP_DIR) $(INSTALLER_TMP_DIR)/neko-osx64.tar.gz: $(INSTALLER_TMP_DIR) - wget http://nekovm.org/media/neko-2.1.0-osx64.tar.gz -O installer/neko-osx64.tar.gz + wget -nv http://nekovm.org/media/neko-2.1.0-osx64.tar.gz -O installer/neko-osx64.tar.gz # Installer package_installer_mac: $(INSTALLER_TMP_DIR)/neko-osx64.tar.gz package_unix $(eval OUTFILE := $(shell pwd)/$(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_installer.tar.gz) $(eval PACKFILE := $(shell pwd)/$(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_bin.tar.gz) - $(eval VERSION := $(shell haxe -version 2>&1)) + $(eval VERSION := $(shell $(CURDIR)/$(HAXE_OUTPUT) -version 2>&1)) $(eval NEKOVER := $(shell neko -version 2>&1)) bash -c "rm -rf $(INSTALLER_TMP_DIR)/{resources,pkg,tgz,haxe.tar.gz}" mkdir $(INSTALLER_TMP_DIR)/resources @@ -364,27 +303,19 @@ package_installer_mac: $(INSTALLER_TMP_DIR)/neko-osx64.tar.gz package_unix clean: clean_libs clean_haxe clean_tools clean_package clean_libs: - make -C libs/extlib clean - make -C libs/extc clean - make -C libs/neko clean - make -C libs/ziplib clean - make -C libs/javalib clean - make -C libs/ilib clean - make -C libs/swflib clean - make -C libs/xml-light clean - make -C libs/ttflib clean - make -C libs/objsize clean - make -C libs/pcre clean + $(foreach lib,$(EXTLIB_LIBS),$(MAKE) -C libs/$(lib) clean &&) true clean_haxe: - rm -f -r $(MODULES:%=src/%.obj) $(MODULES:%=src/%.o) $(MODULES:%=src/%.cmx) $(MODULES:%=src/%.cmi) $(MODULES:%=src/%.cmo) $(MODULES:%=src/%.cmt) src/syntax/lexer.ml src/version.ml $(OUTPUT) + rm -f -r _build $(HAXE_OUTPUT) $(PREBUILD_OUTPUT) clean_tools: - rm -f $(OUTPUT) haxelib + rm -f $(HAXE_OUTPUT) $(PREBUILD_OUTPUT) $(HAXELIB_OUTPUT) clean_package: rm -rf $(PACKAGE_OUT_DIR) +FORCE: + # SUFFIXES .ml.cmx: @@ -393,7 +324,4 @@ clean_package: .ml.cmo: $(CC_CMD) -.mll.ml: - ocamllex $< - -.PHONY: haxe libs version.cmx version.cmo haxelib +.PHONY: haxe libs haxelib diff --git a/Makefile.version_extra b/Makefile.version_extra index 991233b6..f423bf99 100644 --- a/Makefile.version_extra +++ b/Makefile.version_extra @@ -5,7 +5,7 @@ all: ; ifneq ($(ADD_REVISION),0) - $(info let version_extra = Some "(git build $(BRANCH) @ $(COMMIT_SHA))") + $(info let version_extra = Some ("git build $(BRANCH)","$(COMMIT_SHA)")) else $(info let version_extra = None) endif \ No newline at end of file diff --git a/Makefile.win b/Makefile.win index 343e2d55..098d6f46 100644 --- a/Makefile.win +++ b/Makefile.win @@ -1,10 +1,16 @@ PLATFORM=win +MAKEFILENAME=Makefile.win include Makefile -OUTPUT=haxe.exe +HAXE_OUTPUT=haxe.exe +HAXELIB_OUTPUT=haxelib.exe +PREBUILD_OUTPUT=prebuild.exe EXTENSION=.exe PACKAGE_SRC_EXTENSION=.zip +ARCH?=32 -OCAMLOPT=ocamlopt.opt +ifeq ($(ARCH),64) +NEKO_ARCH_STR=64 +endif kill: -@taskkill /F /IM haxe.exe @@ -28,15 +34,17 @@ FILTER=sed 's/File "\([^"]\+\)", line \([0-9]\+\), \(.*\)/\1(\2): \3/' tmp.cmi endif ifeq (${FD_OUTPUT}, 1) -FILTER=sed '/File/{ N; s/File "\([^"]\+\)", line \([0-9]\+\), characters \([0-9-]\+\):[\r\n]*\(.*\)/\1:\2: characters \3 : \4/ }' tmp.cmi +FILTER=sed -e '/File/{ N; s/File "\([^"]\+\)", line \([0-9]\+\), characters \([0-9-]\+\):[\r\n]*\(.*\)/\1:\2: characters \3 : \4/ }' -e 's/_build\/src\//src\//' tmp.cmi endif ifdef FILTER -CC_CMD=($(OCAMLOPT) $(ALL_CFLAGS) -c $< 2>tmp.cmi && $(FILTER)) || ($(FILTER) && exit 1) -CC_PARSER_CMD=($(OCAMLOPT) -pp camlp4o $(ALL_CFLAGS) -c src/syntax/parser.ml 2>tmp.cmi && $(FILTER)) || ($(FILTER) && exit 1) +CC_CMD=($(COMPILER) $(ALL_CFLAGS) -c $< 2>tmp.cmi && $(FILTER)) || ($(FILTER) && exit 1) endif -PACKAGE_FILES=$(OUTPUT) haxelib$(EXTENSION) std "$$(cygpath -w "$$(which zlib1.dll)")" "$$(cygpath -w "$$(which libpcre-1.dll)")" +PACKAGE_FILES=$(HAXE_OUTPUT) $(HAXELIB_OUTPUT) std "$$(cygcheck $(CURDIR)/$(HAXE_OUTPUT) | grep zlib1.dll | sed -e 's/^\s*//')" "$$(cygcheck $(CURDIR)/$(HAXE_OUTPUT) | grep libpcre-1.dll | sed -e 's/^\s*//')" + +echo_package_files: + echo $(PACKAGE_FILES) package_win: mkdir -p out @@ -57,17 +65,16 @@ package_choco: mkdir -p OUTPUT 7z x -y out/$(PACKAGE_FILE_NAME)_bin.zip -oout > log.txt || type log.txt mv out/$(PACKAGE_FILE_NAME) out/choco - sed -e 's/@SNAPSHOT_VERSION@/$(HAXE_VERSION)-SNAP$(COMMIT_DATE)/g' extra/choco/haxe.nuspec > out/choco/haxe.nuspec + sed -e 's/@SNAPSHOT_VERSION@/$(HAXE_VERSION_SHORT)-SNAP$(COMMIT_DATE)/g' extra/choco/haxe.nuspec > out/choco/haxe.nuspec cd out/choco && choco pack mv out/choco/haxe.*.nupkg out rm -rf out/choco $(INSTALLER_TMP_DIR)/neko-win.zip: $(INSTALLER_TMP_DIR) - wget http://nekovm.org/media/neko-2.1.0-win.zip -O installer/neko-win.zip + wget -nv https://nekovm.org/media/neko-2.2.0-win$(NEKO_ARCH_STR).zip -O installer/neko-win.zip package_installer_win: $(INSTALLER_TMP_DIR)/neko-win.zip package_win $(eval OUTFILE := $(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_installer.zip) - $(eval VERSION := $(shell haxe -version 2>&1 | cut -d ' ' -f1)) rm -rf $(INSTALLER_TMP_DIR)/resources # neko mkdir $(INSTALLER_TMP_DIR)/resources @@ -78,17 +85,19 @@ package_installer_win: $(INSTALLER_TMP_DIR)/neko-win.zip package_win 7z x -y $(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_bin.zip -o$(INSTALLER_TMP_DIR)/resources mv $(INSTALLER_TMP_DIR)/resources/haxe* $(INSTALLER_TMP_DIR)/resources/haxe # haxesetup.exe - haxelib path hxcpp || haxelib install hxcpp - cd extra; haxelib run hxcpp build-haxesetup.xml + cd extra && \ + $(CURDIR)/$(HAXELIB_OUTPUT) newrepo && \ + $(CURDIR)/$(HAXELIB_OUTPUT) install hxcpp --quiet && \ + $(CURDIR)/$(HAXELIB_OUTPUT) run hxcpp build-haxesetup.xml cp extra/haxesetup.exe $(INSTALLER_TMP_DIR)/resources/haxe # extra cp extra/*.nsi $(INSTALLER_TMP_DIR) cp extra/*.nsh $(INSTALLER_TMP_DIR) cp -rf extra/images $(INSTALLER_TMP_DIR) # nsis - sed -i "s/%%VERSION%%/$(VERSION)/g" $(INSTALLER_TMP_DIR)/installer.nsi - sed -i "s/%%VERSTRING%%/$(VERSION)/g" $(INSTALLER_TMP_DIR)/installer.nsi - sed -i "s/%%VERLONG%%/$(VERSION)/g" $(INSTALLER_TMP_DIR)/installer.nsi + sed -i "s/%%VERSION%%/$(HAXE_VERSION_SHORT)/g" $(INSTALLER_TMP_DIR)/installer.nsi + sed -i "s/%%VERSTRING%%/$(HAXE_VERSION)/g" $(INSTALLER_TMP_DIR)/installer.nsi + sed -i "s/%%VERLONG%%/$(HAXE_VERSION)/g" $(INSTALLER_TMP_DIR)/installer.nsi cd $(INSTALLER_TMP_DIR) && makensis installer.nsi 7z a -r -tzip $(OUTFILE) $(INSTALLER_TMP_DIR)/*.exe dir $(PACKAGE_OUT_DIR) diff --git a/README.md b/README.md index a85db2d9..21c57647 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,15 @@ +

+ +

-# [Haxe logo](https://haxe.org) - [The Cross-Platform Toolkit](https://haxe.org) -[![TravisCI Build Status](https://travis-ci.org/HaxeFoundation/haxe.svg?branch=development)](https://travis-ci.org/HaxeFoundation/haxe) -[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/HaxeFoundation/haxe?branch=development&svg=true)](https://ci.appveyor.com/project/HaxeFoundation/haxe) -[![SauceLabs Test Status](https://saucelabs.com/buildstatus/haxe)](https://saucelabs.com/u/haxe) -[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/HaxeFoundation/haxe?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +

+ Azure Pipelines Build Status + SauceLabs Test Status + Gitter + Discord +

+ +# Haxe is an open source toolkit that allows you to easily build cross-platform tools and applications that target many mainstream platforms. The Haxe toolkit includes: @@ -13,21 +19,22 @@ Haxe is an open source toolkit that allows you to easily build cross-platform to Haxe allows you to compile for the following targets: - * ActionScript 3 + * JavaScript * C++ * C# - * Flash * Java - * JavaScript - * NekoVM - * PHP - * Python * Lua - * [HashLink](http://hashlink.haxe.org/) + * PHP + * Python 3 + * [HashLink](https://hashlink.haxe.org/) + * [NekoVM](https://nekovm.org/) + * Flash (SWF Bytecode) + * ActionScript 3 + * And its own [interpreter](https://haxe.org/blog/eval/) -You can try Haxe directly from your browser at [try.haxe.org](http://try.haxe.org)! +You can try Haxe directly from your browser at [try.haxe.org](https://try.haxe.org)! -For more information about Haxe, head to the [offical Haxe website](https://haxe.org). +For more information about Haxe, head to the [official Haxe website](https://haxe.org). ## License @@ -55,45 +62,45 @@ Automated development builds are available from [build.haxe.org](http://build.ha ## Building from source - 1. Clone the repository using git. Be sure to initialize and fetch the submodules. - - git clone --recursive git://github.com/HaxeFoundation/haxe.git - cd haxe - - 2. Follow the [documentation on building Haxe for your platform](https://haxe.org/documentation/introduction/building-haxe.html). +See [extra/BUILDING.md](extra/BUILDING.md). ## Using Haxe -For information on on using Haxe, consult the [Haxe documentation](https://haxe.org/documentation/): +For information on using Haxe, consult the [Haxe documentation](https://haxe.org/documentation/): * [Haxe Introduction](https://haxe.org/documentation/introduction/), an introduction to the Haxe toolkit * [The Haxe Manual](https://haxe.org/manual/), the reference manual for the Haxe language - * [Haxe Code Cookbook](http://code.haxe.org), code snippets / learning resource - * [Haxe API](http://api.haxe.org), documentation for the Haxe standard and native APIs - * [Haxelib](https://lib.haxe.org), a repository of Haxe libraries for a variety of needs + * [Haxe Code Cookbook](https://code.haxe.org), code snippets / learning resource + * [Haxe API](https://api.haxe.org), documentation for the Haxe standard and native APIs + * [Haxelib](https://lib.haxe.org), Haxelib is the package manager for the Haxe Toolkit. ## Community You can get help and talk with fellow Haxers from around the world via: - * [Haxe on Stack Overflow](http://stackoverflow.com/questions/tagged/haxe) - * the [official Haxe Google Group](https://groups.google.com/forum/#!forum/haxelang) - * [#Haxe on Twitter](https://twitter.com/hashtag/haxe?src=hash) - * the [Haxe IRC chatroom](http://unic0rn.github.io/tiramisu/haxe), #haxe on chat.freenode.net + * [Haxe Community Forum](http://community.haxe.org) + * [Haxe on Stack Overflow](https://stackoverflow.com/questions/tagged/haxe) + * [Haxe Gitter chatroom](https://gitter.im/HaxeFoundation/haxe/) + * [Haxe Discord server](https://discordapp.com/invite/0uEuWH3spjck73Lo) + * [#haxe on Twitter](https://twitter.com/hashtag/haxe?src=hash) -:+1: Get notified of the latest Haxe news, follow us on [Twitter](https://twitter.com/haxelang), [Facebook](https://www.facebook.com/haxe.org) or [Google+](https://plus.google.com/+HaxeOrg) +:+1: Get notified of the latest Haxe news, follow us on [Twitter](https://twitter.com/haxelang), [Facebook](https://www.facebook.com/haxe.org) and don't forget to read the [Haxe roundups](https://haxe.io/). ## Version compatibility -Haxe | neko ----- | ----- -2.* | 1.* -3.0.0 | 2.0.0 -3.1.3 | 2.0.0 -3.2.0 | 2.0.0 -3.3.0 | 2.1.0 -3.4.0 | 2.1.0 - +Haxe | Neko | SWF | Python | HL | PHP | Lua | +---- | ---- | ---- | ---- | ---- | ---- | ---- | +2.* | 1.* | 8-10 | - | - | - | - | +3.0.0 | 2.0.0 | | - | - | 5.1+ | - | +3.2.0 | | 12-14 | 3.2+ | - | | - | +3.3.0 | 2.1.0 | 21 | | - | | 5.1, 5.2, 5.3, LuaJIT 2.0, 2.1 | +3.4.0 | | | | 1.1 | 5.4+ and 7.0+ (with `-D php7`) | | +4.0.0-preview.1 | | | | 1.2 | 7.0+ | | +4.0.0-preview.3 | | | | 1.3 | | | +4.0.0-preview.4 | | | | 1.6 | | | +4.0.0-preview.5 | | | | 1.8 | | | +4.0.0-rc.1 | | | | 1.9 | | | +4.0.0-rc.3 | | | | 1.10 | | | ## Contributing diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 00000000..9a4326b1 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,303 @@ +variables: + - group: variables-haxe + - name: AZURE_PIPELINES_REPO_URL + value: $(Build.Repository.Uri) + - name: AZURE_PIPELINES_BRANCH + value: $(Build.SourceBranchName) + +stages: + - stage: StageTest + jobs: + - template: extra/azure-pipelines/build-linux.yml + parameters: + name: BuildLinux + + - template: extra/azure-pipelines/build-mac.yml + parameters: + name: BuildMac + + - template: extra/azure-pipelines/build-windows.yml + parameters: + name: BuildWin64 + arch: '64' + + - template: extra/azure-pipelines/build-windows.yml + parameters: + name: BuildWin32 + arch: '32' + + - job: TestLinux + dependsOn: BuildLinux + pool: + vmImage: 'ubuntu-16.04' + strategy: + matrix: + macro: + TEST: macro + neko: + TEST: neko + hl: + TEST: hl + APT_PACKAGES: cmake ninja-build + cpp: + TEST: cpp + HXCPP_COMPILE_CACHE: ~/hxcache + APT_PACKAGES: gcc-multilib g++-multilib + java: + TEST: java,jvm + cs: + TEST: cs + js: + TEST: js + SAUCE: 1 + SAUCE_TUNNEL_ID: $(Agent.JobName) + SAUCE_BUILD: $(Build.BuildNumber) + php: + TEST: php + flash: + TEST: flash9,as3 + APT_PACKAGES: libglib2.0 libfreetype6 xvfb + DISPLAY: ':99.0' + AUDIODEV: 'null' + python: + TEST: python + lua: + TEST: lua + APT_PACKAGES: ncurses-dev + steps: + - checkout: self + fetchDepth: 20 + - template: extra/azure-pipelines/install-neko-snapshot.yaml + parameters: + platform: linux64 + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: 'linuxBinaries' + targetPath: linuxBinaries + - script: | + set -ex + tar -xf linuxBinaries/*_bin.tar.gz -C linuxBinaries --strip-components=1 + sudo mkdir -p /usr/local/bin/ + sudo mkdir -p /usr/local/share/haxe/ + sudo ln -s `pwd`/linuxBinaries/haxe /usr/local/bin/haxe + sudo ln -s `pwd`/linuxBinaries/haxelib /usr/local/bin/haxelib + sudo ln -s `pwd`/linuxBinaries/std /usr/local/share/haxe/std + displayName: Setup Haxe + - script: haxe -version + displayName: Print Haxe version + - script: | + set -ex + mkdir ~/haxelib + haxelib setup ~/haxelib + displayName: Setup haxelib + - script: | + set -ex + sudo apt update -qqy + sudo apt install -qqy $APT_PACKAGES + condition: and(succeeded(), variables['APT_PACKAGES']) + displayName: Install apt packages + - script: haxe RunCi.hxml + workingDirectory: $(Build.SourcesDirectory)/tests + env: + ${{ if variables['SAUCE_ACCESS_KEY'] }}: + SAUCE_ACCESS_KEY: $(SAUCE_ACCESS_KEY) + displayName: Test + + - job: TestMac + dependsOn: BuildMac + pool: + vmImage: 'macOS-10.13' + strategy: + matrix: + macro: + TEST: macro + neko: + TEST: neko + hl: + TEST: hl + BREW_PACKAGES: ninja + cpp: + TEST: cpp + HXCPP_COMPILE_CACHE: ~/hxcache + java: + TEST: java,jvm + cs: + TEST: cs + js: + TEST: js + php: + TEST: php + flash: + TEST: flash9,as3 + python: + TEST: python + lua: + TEST: lua + steps: + - checkout: self + fetchDepth: 20 + - template: extra/azure-pipelines/install-neko-snapshot.yaml + parameters: + platform: mac + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: 'macBinaries' + targetPath: macBinaries + - script: | + set -ex + tar -xf macBinaries/*_bin.tar.gz -C macBinaries --strip-components=1 + sudo mkdir -p /usr/local/bin/ + sudo mkdir -p /usr/local/share/haxe/ + sudo ln -s `pwd`/macBinaries/haxe /usr/local/bin/haxe + sudo ln -s `pwd`/macBinaries/haxelib /usr/local/bin/haxelib + sudo ln -s `pwd`/macBinaries/std /usr/local/share/haxe/std + displayName: Setup Haxe + - script: haxe -version + displayName: Print Haxe version + - script: | + set -ex + mkdir ~/haxelib + haxelib setup ~/haxelib + displayName: Setup haxelib + - script: brew install $BREW_PACKAGES + condition: and(succeeded(), variables['BREW_PACKAGES']) + displayName: Install homebrew packages + - script: haxe RunCi.hxml + workingDirectory: $(Build.SourcesDirectory)/tests + displayName: Test + + - template: extra/azure-pipelines/test-windows.yml + parameters: + name: TestWin64 + arch: '64' + + - template: extra/azure-pipelines/test-windows.yml + parameters: + name: TestWin32 + arch: '32' + + - stage: StageDeploy + condition: and(succeeded(), not(variables['System.PullRequest.PullRequestId'])) + jobs: + - job: S3 + condition: and(succeeded(), variables['HXBUILDS_AWS_ACCESS_KEY_ID'], variables['HXBUILDS_S3ADDR']) + pool: + vmImage: 'ubuntu-16.04' + steps: + - checkout: self + fetchDepth: 20 + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: 'linuxBinaries' + targetPath: linuxBinaries + displayName: Download linuxBinaries + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: 'macBinaries' + targetPath: macBinaries + displayName: Download macBinaries + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: 'win64Binaries' + targetPath: win64Binaries + displayName: Download win64Binaries + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: 'win32Binaries' + targetPath: win32Binaries + displayName: Download win32Binaries + - template: extra/azure-pipelines/install-neko-snapshot.yaml + parameters: + platform: linux64 + - script: | + set -ex + tar -xf linuxBinaries/*_bin.tar.gz -C linuxBinaries --strip-components=1 + sudo mkdir -p /usr/local/bin/ + sudo mkdir -p /usr/local/share/haxe/ + sudo ln -s `pwd`/linuxBinaries/haxe /usr/local/bin/haxe + sudo ln -s `pwd`/linuxBinaries/haxelib /usr/local/bin/haxelib + sudo ln -s `pwd`/linuxBinaries/std /usr/local/share/haxe/std + displayName: Setup Haxe + - script: | + set -ex + sudo apt-get update -qqy + sudo apt-get install -qqy awscli + displayName: "Install awscli" + - script: | + set -ex + COMMIT_HASH=`git rev-parse HEAD` + COMMIT_HASH_SHORT=${COMMIT_HASH:0:7} + COMMIT_DATE=`TZ=UTC git show --quiet --date='format-local:%Y-%m-%d' --format="%cd"` + FILE_NAME=haxe_${COMMIT_DATE}_$(Build.SourceBranchName)_${COMMIT_HASH_SHORT} + aws s3 cp linuxBinaries/*_bin.tar.gz $(HXBUILDS_S3ADDR)/haxe/linux64/${FILE_NAME}.tar.gz + aws s3 cp macBinaries/*_bin.tar.gz $(HXBUILDS_S3ADDR)/haxe/mac/${FILE_NAME}.tar.gz + aws s3 cp macBinaries/*_installer.tar.gz $(HXBUILDS_S3ADDR)/haxe/mac-installer/${FILE_NAME}.tar.gz + aws s3 cp win64Binaries/*_bin.zip $(HXBUILDS_S3ADDR)/haxe/windows64/${FILE_NAME}.zip + aws s3 cp win64Binaries/*_installer.zip $(HXBUILDS_S3ADDR)/haxe/windows64-installer/${FILE_NAME}.zip + aws s3 cp win64Binaries/*.nupkg $(HXBUILDS_S3ADDR)/haxe/windows64-choco/ + aws s3 cp win32Binaries/*_bin.zip $(HXBUILDS_S3ADDR)/haxe/windows/${FILE_NAME}.zip + aws s3 cp win32Binaries/*_installer.zip $(HXBUILDS_S3ADDR)/haxe/windows-installer/${FILE_NAME}.zip + aws s3 cp win32Binaries/*.nupkg $(HXBUILDS_S3ADDR)/haxe/windows-choco/ + env: + AWS_ACCESS_KEY_ID: $(HXBUILDS_AWS_ACCESS_KEY_ID) + AWS_SECRET_ACCESS_KEY: $(HXBUILDS_AWS_SECRET_ACCESS_KEY) + displayName: Upload binaries + - script: | + set -ex + aws s3 cp linuxBinaries/*_bin.tar.gz $(HXBUILDS_S3ADDR)/haxe/linux64/haxe_latest.tar.gz + aws s3 cp macBinaries/*_bin.tar.gz $(HXBUILDS_S3ADDR)/haxe/mac/haxe_latest.tar.gz + aws s3 cp macBinaries/*_installer.tar.gz $(HXBUILDS_S3ADDR)/haxe/mac-installer/haxe_latest.tar.gz + aws s3 cp win64Binaries/*_bin.zip $(HXBUILDS_S3ADDR)/haxe/windows64/haxe_latest.zip + aws s3 cp win64Binaries/*_installer.zip $(HXBUILDS_S3ADDR)/haxe/windows64-installer/haxe_latest.zip + aws s3 cp win32Binaries/*_bin.zip $(HXBUILDS_S3ADDR)/haxe/windows/haxe_latest.zip + aws s3 cp win32Binaries/*_installer.zip $(HXBUILDS_S3ADDR)/haxe/windows-installer/haxe_latest.zip + + # Chocolatey packages have to be named with version number, + # so let's use web redirection to keep the original file name. + [[ "$HXBUILDS_S3ADDR" =~ s3://([^/]+)(.*) ]] && HXBUILDS_S3BUCKET="${BASH_REMATCH[1]}" && HXBUILDS_S3PATH="${BASH_REMATCH[2]}" + [[ `echo win64Binaries/*.nupkg` =~ win64Binaries/(.+) ]] && FILE_NAME="${BASH_REMATCH[1]}" + aws s3 cp $(HXBUILDS_S3ADDR)/haxe/windows64-choco/${FILE_NAME} $(HXBUILDS_S3ADDR)/haxe/windows64-choco/haxe_latest.nupkg --acl public-read --website-redirect "${HXBUILDS_S3PATH}/haxe/windows64-choco/${FILE_NAME}" + [[ `echo win32Binaries/*.nupkg` =~ win32Binaries/(.+) ]] && FILE_NAME="${BASH_REMATCH[1]}" + aws s3 cp $(HXBUILDS_S3ADDR)/haxe/windows-choco/${FILE_NAME} $(HXBUILDS_S3ADDR)/haxe/windows-choco/haxe_latest.nupkg --acl public-read --website-redirect "${HXBUILDS_S3PATH}/haxe/windows-choco/${FILE_NAME}" + env: + AWS_ACCESS_KEY_ID: $(HXBUILDS_AWS_ACCESS_KEY_ID) + AWS_SECRET_ACCESS_KEY: $(HXBUILDS_AWS_SECRET_ACCESS_KEY) + condition: and(succeeded(), eq(variables['Build.SourceBranchName'], 'development')) + displayName: Update "latest" + + - job: ApiHaxeOrg + condition: and(succeeded(), variables['GHP_USERNAME'], variables['GHP_EMAIL']) + pool: + vmImage: 'ubuntu-16.04' + steps: + - checkout: none + - template: extra/azure-pipelines/install-neko-snapshot.yaml + parameters: + platform: linux64 + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: 'linuxBinaries' + targetPath: linuxBinaries + displayName: Download linuxBinaries + - script: | + set -ex + tar -xf linuxBinaries/*_bin.tar.gz -C linuxBinaries --strip-components=1 + sudo mkdir -p /usr/local/bin/ + sudo mkdir -p /usr/local/share/haxe/ + sudo ln -s `pwd`/linuxBinaries/haxe /usr/local/bin/haxe + sudo ln -s `pwd`/linuxBinaries/haxelib /usr/local/bin/haxelib + sudo ln -s `pwd`/linuxBinaries/std /usr/local/share/haxe/std + displayName: Setup Haxe + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: 'xmldoc' + targetPath: xmldoc + displayName: Download xmldoc + - script: | + set -ex + LOCAL="`pwd`/extra/api.haxe.org" + git clone "${GHP_REMOTE}" "${LOCAL}" + haxe --cwd "${LOCAL}" --run ImportXml "`pwd`/xmldoc" + env: + GHP_REMOTE: $(GHP_REMOTE) + displayName: Deploy to api.haxe.org \ No newline at end of file diff --git a/extra/BUILDING.md b/extra/BUILDING.md new file mode 100644 index 00000000..18c80933 --- /dev/null +++ b/extra/BUILDING.md @@ -0,0 +1,79 @@ +# Building Haxe from source + +## Obtaining the source + +The Haxe compiler source files are hosted on GitHub under the [HaxeFoundation account](https://github.com/HaxeFoundation). The [Haxe repository](https://github.com/HaxeFoundation/haxe) has several submodules, so cloning it should be done with the `--recursive` flag like so: + +``` +git clone --recursive https://github.com/HaxeFoundation/haxe.git +``` + +Alternatively, source .zip archives or tarballs can be obtained from the [GitHub Haxe release overview](https://github.com/HaxeFoundation/haxe/releases). However, the git submodules are not included, so you will have to manually place the source code of [submodules](https://github.com/HaxeFoundation/haxe/blob/development/.gitmodules) into appropriate sub-folders. + +## Setting up OCaml + +The Haxe compiler is written in OCaml, so you have to set up an OCaml development environment. In addition, we make use of a number of OCaml libraries. We recommend using OPAM, which is an OCaml package manager that can also manage OCaml installations. + +The Haxe compiler requires OCaml version 4.02 or higher. Since some of the OCaml libraries Haxe depends on were uploaded in the OPAM 2 format, you should use OPAM 2.x instead of OPAM 1.x. + +To install OPAM on Unix (e.g. Mac, Linux) systems, follow the [instruction given by OPAM](https://opam.ocaml.org/doc/Install.html). On Windows, we recommend using the [Cygwin/MinGW-based OPAM environment provided by fdopen](https://fdopen.github.io/opam-repository-mingw/installation/), choose the 64-bit versions of everything, also make sure to [use the OPAM 2 version](https://github.com/fdopen/opam-repository-mingw/issues/48). + +In case you messed up the OPAM installation, you can uninstall OPAM and remove `~/.opam`, which contains the OCaml switches (OCaml compilers and libraries), and start over. + +Also note that since OPAM 2 on Linux will try to use bubblewrap, which uses Linux user namespaces, which might not be available on environments like Docker or Windows Subsystem for Linux (WSL). In case of encountering related errors, use `--disable-sandboxing` during `opam init`. + +## Installing dependencies + +You need to install some native libraries as well as some OCaml libraries. + + * Native libraries + * PCRE + * zlib + * Neko (for building haxelib) + * OCaml libraries + * listed in the `opam` file at the repository root + +To install the native libraries, use the appropriate system package manager. + + * Mac OS X + * Use [Homebrew](https://brew.sh/), `brew install zlib pcre`. + * Debian / Ubuntu + * `sudo apt install libpcre3-dev zlib1g-dev`. + * Windows (Cygwin) + * Run the Cygwin [setup-x86_64.exe](https://cygwin.com/install.html) against the Cygwin installation directory. Install `make`, `git`, `zlib-devel`, `libpcre-devel`, `mingw64-x86_64-gcc-core`, `mingw64-x86_64-zlib`, and `mingw64-x86_64-pcre`. You may need to select "Not Installed" in the dropdown list to see the packages. Copy `zlib1.dll` and `libpcre-1.dll` from `path/to/cygwin/usr/x86_64-w64-mingw32/sys-root/mingw/bin` to the checked out Haxe source directory. + * Install Neko by either + * Download the [Neko binaries](https://nekovm.org/download/), and add the extracted directory to the beginning of PATH. + * Install the [Chocolatey Neko package](https://chocolatey.org/packages/neko). + +To install the OCaml libraries, use OPAM as follows: + +```sh +# pin the haxe package to the checked out Haxe source directory +opam pin add haxe path/to/haxe --kind=path --no-action + +# install the haxe package dependencies (as listed in the `opam` file) +opam install haxe --deps-only +``` + +## Compile + +In the checked out Haxe source directory, +```sh +# On Unix +make + +# On Windows (Cygwin) +make -f Makefile.win +``` + +## Install + +Generally, you should remove any existing Haxe installation to avoid conflict. You should at least make sure that the `HAXE_STD_PATH` environment variable is not set. + +To install the freshly built Haxe, + + * On Unix (e.g. Mac and Linux), + ```sh + sudo make install + ``` + * On Windows, add the checked out Haxe source directory to the beginning of PATH. diff --git a/extra/CHANGES.txt b/extra/CHANGES.txt index 9467aad8..3ef50ef6 100644 --- a/extra/CHANGES.txt +++ b/extra/CHANGES.txt @@ -1,20 +1,519 @@ -2018-02-21: 3.4.7 +2019-10-26: 4.0.0 + + General improvements: + + js : updated externs for `Float32Array` and `Float64Array` (#8864) + php : added array access to `php.NativeStructArray` (#8893) + + Bugfixes: + + cs : fixed "This expression may be invalid" false warning (#8589) + php : fixed iterator fields on maps being removed (#8851) + php : fixed `-2147483648` as init value for static vars (#5289) + python : fixed modulo by a negative number (#8845) + java : fixed backslash escaping on `EReg.replace` (#3430) + lua : fixed `EReg.map` for unicode (#8861) + hl : fixed sqlite connection on OSX/Linux (#8878) + +2019-09-12: 4.0.0-rc.5 + + General improvements and optimizations: + + eval: improved performance of regular expressions (#8693) + + Bugfixes: + + all: fixed regression, which caused compiler to crash on enum abstracts with explicit casting (#8765) + all: fixed regression of macro `@:from` methods on abstracts (#8779) + all: fixed switching on `this` (#8781) + +2019-09-04: 4.0.0-rc.4 + + Standard Library: + + all : added Map.clear (#8681) + all : improved Date API (#8508) + all : added JSON-RPC protocol types to haxe.display package (#8610) + all : added default timeout to HTTP sockets (#8646) + macro : added Context.info (#8478) + macro : added Context.getMessages and Context.filterMessages (#8471) + macro : added function kind to EFunction (#8653) + macro : added string literal kind to CString (#8668) + flash : added flash.AnyType (#8549) + + General improvements and optimizations: + + all : allowed enum constructors without arguments as static inline var (#8187) + all : improved handling of default values when inlining (#8397) + all : made various improvements to the display API as usual + all : detect invalid #tokens in inactive code (#7108) + all : allowed function types in @:generic (#3697) + all : improved --help-defines and --help-metas + all : improved overall file finding (#8202) + all : improved server reaction to added and removed files (#8451) + all : improved memory handling of the compilation server (8727) + all : improved handling of native libraries on the compilation server (#8629) + all : support partial completion results (#8642) + all : improved support of hovering over inactive conditional compilation blocks + all : improved completion support in .platform.hx files + all : support hovering conditional compilation identifiers + all : improved and unified identifier checks for names, fields and types (#8708) + all : improved --times performance (#8733) + all : remove some redundant cast expressions (#8725) + all : added --server-connect (#8730) + lua : improved -D lua-vanilla + js : improved HTML externs + + Bugfixes : + + all : fixed various position and replace ranges in the display API + all : fixed compiler hang related to @:arrayAccess (#5525) + all : fixed bug regarding abstract `this` modification in inline methods (#8454) + all : fixed `from Dynamic` on abstracts (#8425) + all : fixed overeager recursive inline check (#8489) + all : fixed the pattern matcher allowing inexhaustive switches in value-places (#8277) + all : fixed pattern matcher allowing invalid abstract unification (#8579) + all : fixed local variable type information being lost on the compilation server (#8511) + all : don't generate return expressions in Void lambda functions (#6503) + all : fixed unification of recursive typedefs again (#8523) + all : fixed various hangs related to abstracts (#8588) + all : fixed various GADT-related problems (#7672) + all : fixed macro `@:from` methods allowing any return type (#8463) + macro : fixed Sys.programPath assertion failure (#8466) + js : fixed typed array APIs (#8422) + java : fixed Std.is on non-reference and unrelated types (#5168) + java/macro : fixed null-pointer exception in Reflect.getProperty (#4934) + java/jvm : fix switch on null string (#4481) + jvm : fixed boxed vs. unboxed comparison (#8577) + jvm : generate toplevel types to haxe.root like genjava does (#8590) + jvm : improved 32bit support (#8601) + cs/python : fixed various issues with code generation + cs : fixed NativeArray casting (#3949) + +2019-06-13: 4.0.0-rc.3 + + New features: + + all : added JVM target + + General improvements and optimizations: + + all : create temp vars in pattern matcher to avoid duplicate access (#8064) + all : support parsing dots in conditional compilation, e.g. `#if target.sys` + all : added `@:bypassAccessor` + all : improved various aspects of the display API + all : properly error on `@:op(a = b)` (#6903) + all : made `@:using` actually work + all : properly disallowed some modifier combinations related to `final` (#8335) + all : support `@:pure(false)` on variable fields (#8338) + flash : updated Flash externs to version 32.0 (now using `final`, `enum abstract` and `haxe.extern.Rest`) + flash : rework support for native Flash properties (#8241) + php : improved performance of various parser implementations (#8083) + cs : support .NET core target (#8391) + cs : generate native type parameter constraints (#8311, #7863) + + Standard Library: + + all : added StringTools.contains (#7608) + all : turned sys.thread.Thread into abstracts (#8130) + all : introduced `Std.downcast` as replacement for `Std.instance` (#8301) + all : introduced `UnicodeString`, deprecated `haxe.Utf8` (#8298) + java : added java.NativeString (#8163) + cs : added sys.thread implementations (#8166) + js : moved various classes to js.lib (#7390) + + Bugfixes + + all : fixed issue with `@:generic` type parameters not being bound to Dynamic (#8102) + all : fixed various issues related to `@:structInit` + all : fixed top-down inference on abstract setters (#7674) + all : fixed DCE issue related to closures (#8200) + all : fixed and restricted various Unicode-related issues in String literals + all : fixed various priority issues regarding loops and iterators + all : fixed cast handling in try-catch expressions (#8257) + all : fixed `inline new` handling (#8240) + all : fixed pattern matcher issue with wildcards in or-patterns (#8296) + all : fixed `@:allow(package)` allowing too much (#8306) + all : fixed various issues with startIndex handling on String.indexOf and String.lastIndexOf + all : fixed infinite recursion related to printing of objects with circular references (#8113) + sys : fixed various Unicode issues (#8135) + macro : fixed Array.pop handling (#8075) + macro : fixed assertion failure when throwing exception (#8039) + macro : fixed various uncatchable exceptions being thrown + php : error on case-insensitive name clashes (#8219) + lua : fixed issue where Process output occasionally is missing some data + hl : fixed various String Unicode issues + java : fixed null exception in CallStack.exceptionStack (#8322) + js : fixed code generation issue related to negative abstract values (#8318) + flash : fix various issues, including native `protected` handling and method overloading + + Removals: + + all : remove support for `@:fakeEnum` enums + all : disallowed `\x` with values > 0x7F (#8141) + all : consistently disallowed metadata in lambda function arguments (#7800) + all : removed `--gen-hx-classes` (#8237) + +2019-03-22: 4.0.0-rc.2 + + New features: + + all : added strictness settings for the null-safety checker, using loose checking by default (#7811) + js : added ES6 class generation with `-D js-es=6` (#7806) + + General improvements and optimizations: + + all : inherit `@:native` for overriden methods (#7844) + all : standardized identifiers allowed in markup literals (#7558) + all : show typo suggestions when declaring `override` field (#7847) + all : improved parser error messages (#7912) + all : improved diagnostics of syntax errors (#7940) + all : improved positions of `switch` and `case` expressions (#7947) + all : allow parsing `#if (a.b)` (#8005) + eval : improved performance of various string operations (#7982) + eval : fixed many error positions + eval : greatly improved debugger interaction (#7839) + eval : properly support threads when debugging (#7991) + eval : improved handling of capture variables (#8017) + js : generate dot-access for "keyword" field names (#7645) + js : optimized run-time type checking against interfaces (#7834) + js : skip generation of interfaces when no run-time type checking needed (#7843) + + Standard Library: + + all : unified various Thread APIs in sys.thread (#7999) + all : moved typed arrays from `js.html` to `js.lib` (#7894) + all : added `iterator()` to `haxe.DynamicAccess` (#7892) + all : added `keyValueIterator()` to `haxe.DynamicAccess` (#7769) + eval : completed Thread API + + Bugfixes: + + all : fixed argument default value checking for externs (#7752) + all : fixed optional status of overloaded arguments with default values (#7794) + all : fixed DCE compilation server state issue (#7805) + all : fixed compilation server module dependency issue related to macros (#7448) + all : fixed call-site inlining on abstracts (#7886) + all : fixed Constructible not checking constraints properly (#6714) + all : fixed @:structInit not being compatible with `final` fields (#7182) + all : fixed capture variables being allowed in `.match` (#7921) + all : fixed infinite recursion on `@:generic` field access (#6430) + all : fixed `-D no-deprecation-warnings` for typedefs and enums + js : fixed bad stack handling on `Map` constraint checks (#7781) + js : fixed DCE issues related to haxe.CallStack (#7908) + cpp : fixed Socket flags not being preserved (#7989) + lua : fixed broken output when compiling through the compilation server (#7851) + lua : fixed `StringTools.fastCodeAt` with `-D lua-vanilla` (#7589) + lua : fixed `@:expose` for classes inside packages (#7849) + +2019-02-01: 4.0.0-rc.1 + + New features: + + all : added experimental null-safety feature through `--macro nullSafety("package")` (#7717) + + General improvements and optimizations: + + all : improved unification error messages (#7547) + all : added `haxe4` define + all : do not require semicolon for markup literals (#7438) + all : made `@:expose` imply `@:keep` (#7695) + all : unified cast, catch and Std.is behavior of null-values (#7532) + macro : static variables are now always re-initialized when using the compilation server (#5746) + macro : support `@:persistent` to keep macro static values across compilations + js : improve js.Promise extern: now `then` callback argument types can be properly inferred (#7644) + + Bugfixes: + + all : fixed various pattern matching problems + all : fixed various wrong positions when encoding data to macros + all : specified String.indexOf with out-of-bounds indices (#7601) + all : fixed various problems related to DCE and feature-handling (#7694) + all : fixed bad unary operator optimization (#7704) + js : fixed syntax problem related to `instanceof` (#7653) + flash : fixed var field access on interfaces being uncast (#7727) + cpp : fixed various issues related to casts + cpp : fixed some leftover unicode issues + php : fixed class naming conflicts (#7716) + eval : fixed Socket.setTimeout (#7682) + eval : fixed int switch bug related to overflows + + Removals: + + macro : deprecated Context.registerModuleReuseCall and onMacroContextReused (#5746) + +2018-10-13: 4.0.0-preview.5 + New features: + + all : support Unicode strings properly on all targets + all : support `for (key => value in e)` syntax for key-value iterators + all : added keyValueIterator to Map and its implementations + all : support loop-unrolling on `for (i in 0...5)` (#7365) + all : added support for write-mode `@:op(a.b)` + all : support `inline call()` and `inline new` expressions (#7425) + all : support `@:using` on type declarations (#7462) + all : support markup literal strings but require them to be macro-processed (#7438) + all : allow enum values without arguments as default function argument values (#7439) + lua : add -D lua-vanilla, which emits code with reduced functionality but no additional lib dependencies + + General improvements and optimizations: + + all : [breaking] reserved `operator` and `overload` as keywords (#7413) + all : made `final` on structure fields invariant (#7039) + all : [breaking] disallowed static variables that have no type-hint and expression (#6440) + all : added display/typeDefinition to display protocol (#7266) + all : fixed various display-related problems + all : made parser in display mode much more tolerant + all : allowed assigning `[]` where `Map` is expected (#7426) + all : unified various parts of the String API across all targets + php : Optimized haxe.ds.Vector (VectorData is not Array anymore) + php : Optimized `Map.copy()` and `Array.copy()` + php : Optimized iterators of `Map` and native arrays. + php : Support native PHP generators. See `php.Syntax.yield()` and `php.Generator` + js : updated HTML externs + eval : improved object prototype field handling (#7393) + eval : optimized int switches (#7481) + eval : improved IntMap and StringMap performance + eval : improved performance of instance calls + + Removals : + + all : disallowed get_x/set_x property syntax, use get/set instead (#4699) + all : disallowed default values on interface variables (#4087) + all : disallowed `implements Dynamic` on non-extern classes (#6191) + all : warn about expressions in extern non-inline fields (#5898) + all : removed `-D use-rtti-doc`, always store documentation instead (#7493) + all : disallowed macro-in-macro calls (#7496) + js : removed jQuery and swfobject externs (#7494) Bugfixes: - all : fixed a compilation failure if output directory starts with a slash (#6844) + all : fix GC compacting too often in server mode + all : [breaking] `function () { }(e)` is no longer parsed as a call (#5854) + all : fixed various minor inlining issues + all : disallowed `return null` from Void-functions (#7198) + all : fixed various pattern matching problems + all : fixed compiler hang in display mode (#7236) + all : fixed the XML printer trimming CDATA content (#7454) + all : fixed invalid visibility unification with statics (#7527) + php : Escape `$` in field names of anonymous objects (#7230) + php : Generate `switch` as `if...else if...else...` to avoid loose comparison (#7257) + cs : fixed bad evaluation order in structures (#7531) + eval : fixed various problems with the debugger + eval : fixed Vector.fromArrayCopy (#7492) + eval : fixed bad string conversions on invalid + operations + + Standard Library: + + all : [breaking] made Lambda functions return Array instead of List (#7097) + all : added haxe.iterators package + all : improved StringTools.lpad/rpad/htmlEscape implementation + +2018-06-12: 4.0.0-preview.4 + + New features: + + all : added JSON-RPC-based display protocol + all : allow `enum abstract` syntax instead of `@:enum abstract` (#4282) + all : allow `extern` on fields instead of `@:extern` + all : support signature completion on incomplete structures (#5767) + all : support auto-numbering and auto-stringification in enum abstracts (#7139) + all : support `Type1 & Type2` intersection syntax for type parameter constraints and structures (#7127) + + General improvements and optimizations: + + all : reworked CLI usage/help output (#6862) + all : implemented `for` loop unrolling (#3784) + all : metadata can now use `.`, e.g. `@:a.b`. This is represented as a string (#3959) + all : [breaking] disallow static extensions through abstract field casts (#5924) + all : [breaking] disallow static extensions on implicit `this` (#6036) + all : allow true and false expressions as type parameters (#6958) + all : improved display support in many areas + all : support `override |` completion + all : make display/references and display/toplevel actually work sometimes + all : allow `var ?x` and `final ?x` parsing in structures (#6947) + all : improved overall robustness of the parser in display mode + all : allow `@:commutative` on non-static abstract functions (#5599) + js : added externs for js.Date (#6855) + js : respect `-D source-map` flag to generate source maps in release builds + js : enums are now generated as objects instead of arrays (#6350) + eval : improved debugger, support conditional breakpoints + + Removals: + + all : moved haxe.remoting to hx3compat + js : moved js.XMLSocket to hx3compat + neko : moved neko.net to hx3compat + all : removed support for `T:(A, B)` constraint syntax + + Bugfixes: + + all : fixed various issues with diagnostics + all : fixed fields with default values for `@:structInit` classes (#5449) + all : fixed `Null` inconsistency in if/ternary expressions (#6955) + all : fixed visibility check related to private constructors of sibling classes (#6957) + all : fixed @:generic naming (#6968) + all : fixed handling of type parameters in local functions (#6560) + all : fixed resolution order between `untyped` and type parameters (#7113) + all : fixed unification behavior in try/catch expressions (#7120) + all : fixed field type being lost for Int expressions on Float fields (#7132) + all : cleaned up `inline` handling (#7155) + display : fixed completion in packages starting with underscore (#5417) + php : fixed Reflect.callMethod with classes as first argument (#7106) + eval : fixed internal exception surfacing in some context calls (#7007) + eval : fixed Type.enumEq (#6710) + flash : fixed silently swallowing exceptions in getters/setters when invoked with Reflect methods (#5460, #6871) + + Standard Library: + + all : added `resize` to Array (#6869) + all : [breaking] removed `return this` from some haxe.Http methods (#6980) + +2018-02-23: 4.0.0-preview.3 + + See full commit history at https://github.com/HaxeFoundation/haxe/compare/4.0.0-preview.2...4.0.0-preview.3, notable changes below: + + New features: + + all : added new function type syntax (`(a:Int, b:String)->Void`) (#6645) + all : added column to StackItem.FilePos (#6665) + all : added `-D warn-var-shadowing` + all : added haxe.Log.formatOutput (#6738) + js : added js.Syntax class for generating unsupported JavaScript syntax in a type-safe analyzer-friendly way + js : added js.Map and js.Set and js.JsIterator extern definitions (ES6) + hl : added hl.Format.digest, use it for native Sha1/Md5 + + General improvements and optimizations: + + all : made all non-warning/non-error compiler messages output to stdout (#4480) + all : make DCE keep constructor if any instance field is kept (#6690) + all : make `final` in structures use class notation + display : added `this` and `super` to toplevel completion (#6051) + php : implemented direct method comparison. No need to use `Reflect.compareMethods()` + php : added `php.Syntax.code()` instead of deprecated `untyped __php__()` (#6708) + php : added methods to `php.Syntax` for each php operator: `??`, `?:`, `**` etc. (#6708) + python : add ssl support for http requests + python : improve Sys.print(ln) code generation (#6184) + js : generate faster code for `x.iterator()` calls (#6669) + js : rework exception handling, added js.Lib.getOriginalException (#6713) + js : generate `value instanceof MyClass` instead of `Std.is(value, MyClass)` (#6687) + js : use lazy getter for HaxeError.message instead of calling String(val) in the ctor (#6754) + + Removals: + + php : removed `php.Syntax.binop()` (#6708) + + Deprecations: + + php : deprecated support for `untyped __php__`, `untyped __call__` etc. Use `php.Syntax` instead. + + Bugfixes: + + all : delay interface accessor generation properly (#6225, #6672) + all : fixed unbound variable error in anonymous functions (#6674) + all : fixed abstract `@:to` used when `from` is available in a specific case (#6751) + all : sys.Http: fix chunked encoding handling (#6763) + all : fix some invalid Json being accepted by haxe.format.JsonParser (#6734) + all : fixed haxe.format.JsonPrinter for instances of classes to make it produce consistent result across targets (#6801) all : fixed autogenerated constructor for extending @:structInit classes (#6822, #6078) - display : fixed completion in import.hx files (#6022) - php : fixed List.pop() for sequential pops (#6859) + js : fixed saving setter to `tmp` var before invocation (#6672) + lua : fix toString behavior in the case of -0 (#6652) + lua : properly bind field functions when passed as arguments (#6722) + php : don't fail on generating import aliases for classes with the similar names (#6680) + php : fixed `Sys.environment()` to also return variables set by `Sys.putEnv()` + php : fixed `sys.net.Socket.bind()` (#6693) + php : fixed appending "sqlite:" prefix to the names of files created by `sys.db.Sqlite.open()` (#6692) + php : made php.Lib.objectOfAssociativeArray() recursive (#6698) + php : fixed php error on parsing expressions like `a == b == c` (#6720) + php : fixed multiple file uploads in php.Web.parseMultiPart() (#4173) + php : fixed an issue with "Object" used as a class name for PHP 7.2 (it's a new keyword in php) (#6838) + eval : don't lose dynamic function inits from parent classes (#6660) + cs : fix order-dependent enum type parameter issue (#6016) + +2017-10-08: 4.0.0-preview.2 + + New features: + + all : added final keyword (#6596) + + General improvements and optimizations: + + all : replaced some occurrences of List with Array + all : changed haxe.xml.Fast to an abstract + all : improved optimization when comparing against `null` + all : added support for `case var x` syntax and detect possible typos (#6608) + php : changed `--php-prefix`, `--php-front` and `--php-lib` to `-D php-prefix=`, `-D php-front=` and `-D php-lib=` respectively + + Removals: + + all : moved haxe.unit to hx3compat + all : moved haxe.web.Request to hx3compat + php : dropped php5 support; minimum supported php version is 7.0 now + + Bugfixes: + + all : fixed issue with various functions not being displayed in macro context (#6000) + all : fixed invalid static extension lookup on `super` (#3607) + all : fixed typing error when constructing enums with abstracts over functions (#6609) + all : fixed bug that skipped checking @:from typing in some cases (#6564) + all : fixed Int64 parsing of negative numbers that end in a zero (#5493) + all : fixed top-down inference when constructing enums (#6606) + eval : fixed bug with equality handling + eval : fixed issue with file creation not defaulting to binary + eval : fixed invalid override detection (#6583) + eval : fixed infinite recursion when printing arrays/vectors + cs/java : fixed DCE bug that would lose toString method of thrown objects + php/python : fixed some bit operators for Int32 (#5938) + php : fixed accessing `static inline var` via reflection (#6630) + php : fixed Math.min() and Math.max() for NAN on PHP 7.1.9 and 7.1.10 + js : fixed js syntax error for `value.iterator--` (#6637) -2018-02-12: 3.4.6 + Standard Library: + + macro : added have.display.Position and PositionTools.toRange (#6599) + all : moved List to haxe.ds (#6610) + +2017-09-12: 4.0.0-preview.1 + + New features: + + all : reworked macro interpreter + all : added support for arrow functions + + General improvements and optimizations: + + js : improved generation of `break` inside `switch` inside loops (#4964) + cs : improved generation of enum classes (#6119) + sys : the `database` parameter of `Mysql.connect` is now optional + js : updated jQuery extern (js.jquery.*) for jQuery 1.12.4 / 3.2.1 support. + Makefile : default Unix installation location $(INSTALL_DIR) changed from /usr to /usr/local. + Makefile : default Unix std location $(INSTALL_STD_DIR) changed from $(INSTALL_LIB_DIR)/std to $(INSTALL_DIR)/share/haxe/std. + + Removals: + + all : removed --eval command line argument + sys : SPOD (sys.db.Object, sys.db.Manager and friends) was moved into a separate library `record-macros` (https://github.com/HaxeFoundation/record-macros) + js : js.JQuery and js.SWFObject were moved into hx3compat library (https://github.com/HaxeFoundation/hx3compat), + it's recommended to use more modern js.jquery.JQuery and js.swfobject.SWFObject classes. + all : moved haxe.web.Dispatch into hx3compat library (https://github.com/HaxeFoundation/hx3compat). Bugfixes: - all : fixed a bug when Haxe compiler couldn't find std lib on Linux if executed by another program - all : fixed "Unix.Unix_error" compiler failure if output directory contains a trailing slash (#6212, #6768) - php7 : fixed an issue with "Object" used as a class name for PHP 7.2 (it's a new keyword in php) (#6838) - as3 : fixed "inifinite recursion" compiler error for classes named "Object" + php7: fix Reflect.field() for strings (#6276) + php7: fix `@:enum abstract` generation without `-dce full` (#6175) + php7: fix using enum constructor with arguments as a call argument (#6177) + php7: fix `null` property access (#6281) + php7: fix setting values in a map stored in another map (#6257) + php7: fix haxe.io.Input.readAll() with disabled analyzer optimizations (#6387) + php/php7: fixed accessing enum constructors on enum type stored to a variable (#6159) + php/php7: fix "cannot implement previously implemented interface" (#6208) + php: fix invoking functions stored in dynamic static vars (#6158) + php: fix field access on `new MyClass()` expressions wrapped in a `cast` (#6294) + + Standard Library: + + all : added `EReg.escape` (#5098) + all : `BalancedTree implements `haxe.Constraints.IMap` (#6231) 2018-01-31: 3.4.5 @@ -935,7 +1434,7 @@ cpp : Fix socket sellect passing _s cpp : Throw error when match count does not match regex cpp : Improve register capture in GC - cpp : Fix Dynamic interger compare + cpp : Fix Dynamic integer compare cpp : Implement makeVarArgs cpp : Fix toString for nulls in Enums and Arrays cpp : Added initial Android support @@ -1169,7 +1668,7 @@ set all private+protected names from SWF lib to public (allow override+reflect) flash9 : use findprop instead of findpropstrict for 'this' access (allow dynamic) don't allow nullness changes in overrided/implemented - prevent typing hole with overriden polymorphic methods + prevent typing hole with overridden polymorphic methods added neko.vm.Mutex and neko.vm.Deque (included in neko 1.7.1) added package remapping using --remap @@ -1426,7 +1925,7 @@ 2007-01-28: 1.11 changed StringBuf.add implementation added haxe.Firebug - allowed variable return type for overriden/implemented methods + allowed variable return type for overridden/implemented methods display error position in front of each error line improved error messages when optional arguments not matched added neko.io.Path diff --git a/extra/ImportAll.hx b/extra/ImportAll.hx index 5e2ad853..22e3f49a 100644 --- a/extra/ImportAll.hx +++ b/extra/ImportAll.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -38,10 +38,8 @@ class ImportAll { haxe.macro.Compiler.define("macro"); } switch( pack ) { - case "php7": - if( !Context.defined("php7") ) return; case "php": - if( !Context.defined("php") || Context.defined("php7") ) return; + if( !Context.defined("php") ) return; case "neko": if( !Context.defined("neko") ) return; case "js": @@ -54,8 +52,12 @@ class ImportAll { return; case "sys": if(!isSysTarget()) return; + case "sys.thread": + if ( !Context.defined("target.threaded") ) return; case "java": if( !Context.defined("java") ) return; + case "jvm": + if( !Context.defined("jvm") ) return; case "cs": if( !Context.defined("cs") ) return; case "python": @@ -68,7 +70,7 @@ class ImportAll { if( !Context.defined("eval") ) return; case "ssl": if (!Context.defined("neko") && !Context.defined("cpp")) return; - case "tools", "build-tool": return; + case "tools", "build-tool", "jar-tool": return; } for( p in Context.getClassPath() ) { if( p == "/" ) @@ -98,9 +100,6 @@ class ImportAll { case "neko.vm.Ui" | "sys.db.Sqlite" | "sys.db.Mysql" if ( Context.defined("interp") ): continue; case "sys.db.Sqlite" | "sys.db.Mysql" | "cs.db.AdoNet" if ( Context.defined("cs") ): continue; } - if( Context.defined("php7") && cl.indexOf("php7.") == 0 ) { - cl = "php." + cl.substr("php7.".length); - } Context.getModule(cl); } else if( sys.FileSystem.isDirectory(p + "/" + file) ) run(full); diff --git a/extra/all.hxml b/extra/all.hxml index 73f38e22..1fbb6e39 100644 --- a/extra/all.hxml +++ b/extra/all.hxml @@ -15,13 +15,7 @@ -swf all9.swf -xml flash9.xml --swf-version 11.4 - ---next - --D php7 --php all_php7 --xml php7.xml +--swf-version 11.4 --next @@ -32,19 +26,21 @@ -cpp all_cpp -xml cpp.xml --D xmldoc -D HXCPP_MULTI_THREADED --next -java all_java -xml java.xml --D xmldoc + +--next +-java all_jvm +-D jvm +-xml jvm.xml --next -cs all_cs -D unsafe -xml cs.xml --D xmldoc --next -python all_python @@ -54,6 +50,10 @@ -hl all_hl -xml hl.xml +--next +--interp +-xml interp.xml + --next -xml cross.xml diff --git a/extra/azure-pipelines/build-linux.yml b/extra/azure-pipelines/build-linux.yml new file mode 100644 index 00000000..74993edf --- /dev/null +++ b/extra/azure-pipelines/build-linux.yml @@ -0,0 +1,61 @@ +parameters: + name: 'BuildLinux' + vmImage: 'ubuntu-16.04' + +jobs: + - job: ${{ parameters.name }} + pool: + vmImage: ${{ parameters.vmImage }} + variables: + OPAMYES: 1 + ADD_REVISION: 1 + steps: + - checkout: self + submodules: recursive + - script: | + set -ex + sudo add-apt-repository ppa:avsm/ppa -y # provides newer version of OCaml and OPAM + sudo apt-get update -qqy + sudo apt-get install -qqy ocaml-nox camlp5 opam libpcre3-dev zlib1g-dev libgtk2.0-dev ninja-build + displayName: Install dependencies + - template: install-neko-snapshot.yaml + parameters: + platform: linux64 + - script: | + set -ex + opam init + opam update + opam pin add haxe . --no-action + opam install haxe --deps-only + opam list + ocamlopt -v + displayName: Install OCaml libraries + - script: | + set -ex + opam config exec -- make -s STATICLINK=1 libs + opam config exec -- make -s STATICLINK=1 prebuild + opam config exec -- make -s -j`nproc` STATICLINK=1 haxe + opam config exec -- make -s haxelib + make -s package_bin + ls -l out + ldd -v ./haxe + ldd -v ./haxelib + displayName: Build Haxe + - task: PublishPipelineArtifact@0 + inputs: + artifactName: 'linuxBinaries' + targetPath: out + - script: | + set -ex + make -s xmldoc + cat >extra/doc/info.json <&1') + & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'opam update --yes 2>&1') + & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam pin add haxe . --kind=path --no-action --yes 2>&1') + & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'opam install haxe --deps-only --yes 2>&1') + & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'opam list') + & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'ocamlopt -v') + displayName: Install OCaml and OCaml libraries + - powershell: Write-Host "##vso[task.prependpath]${env:CYG_ROOT}/usr/$(MINGW_ARCH)-w64-mingw32/sys-root/mingw/bin" + displayName: Expose mingw dll files + - powershell: | + Set-PSDebug -Trace 1 + & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win libs prebuild 2>&1') + & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win -j`nproc` haxe 2>&1') + & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win haxelib 2>&1') + & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -f Makefile.win echo_package_files package_bin package_installer_win package_choco 2>&1') + dir out + & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxe.exe') + & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxelib.exe') + displayName: Build Haxe + - task: PublishPipelineArtifact@0 + inputs: + artifactName: 'win$(ARCH)Binaries' + targetPath: out \ No newline at end of file diff --git a/extra/azure-pipelines/install-neko-snapshot.yaml b/extra/azure-pipelines/install-neko-snapshot.yaml new file mode 100644 index 00000000..7086a28f --- /dev/null +++ b/extra/azure-pipelines/install-neko-snapshot.yaml @@ -0,0 +1,33 @@ +parameters: + platform: '' # can be linux64, mac, windows, or windows64 + +steps: + - ${{ if startsWith(parameters.platform, 'windows') }}: + - powershell: | + Invoke-WebRequest https://build.haxe.org/builds/neko/${{parameters.platform}}/neko_latest.zip -OutFile $(Agent.TempDirectory)/neko_latest.zip + Expand-Archive $(Agent.TempDirectory)/neko_latest.zip -DestinationPath $(Agent.TempDirectory) + $NEKOPATH = Get-ChildItem $(Agent.TempDirectory)/neko-*-* + Write-Host "##vso[task.prependpath]$NEKOPATH" + Write-Host "##vso[task.setvariable variable=NEKOPATH]$NEKOPATH" + displayName: Install Neko using snapshot from S3 + - ${{ if not(startsWith(parameters.platform, 'windows')) }}: + - bash: | + set -ex + DOWNLOADDIR=$(Agent.TempDirectory) + curl -sSL https://build.haxe.org/builds/neko/${{parameters.platform}}/neko_latest.tar.gz -o $(Agent.TempDirectory)/neko_latest.tar.gz + tar -xf $(Agent.TempDirectory)/neko_latest.tar.gz -C $(Agent.TempDirectory) + NEKOPATH=`echo $(Agent.TempDirectory)/neko-*-*` + sudo mkdir -p /usr/local/bin + sudo mkdir -p /usr/local/lib/neko + sudo ln -s $NEKOPATH/{neko,nekoc,nekoml,nekotools} /usr/local/bin/ + sudo ln -s $NEKOPATH/libneko.* /usr/local/lib/ + sudo ln -s $NEKOPATH/*.ndll /usr/local/lib/neko/ + set +x + echo "##vso[task.prependpath]$NEKOPATH" + echo "##vso[task.setvariable variable=NEKOPATH]$NEKOPATH" + displayName: Install Neko using snapshot from S3 + - ${{ if eq(parameters.platform, 'linux64') }}: + - bash: sudo ldconfig + displayName: ldconfig + - script: neko -version 2>&1 + displayName: Print Neko version \ No newline at end of file diff --git a/extra/azure-pipelines/test-windows.yml b/extra/azure-pipelines/test-windows.yml new file mode 100644 index 00000000..bbb84d66 --- /dev/null +++ b/extra/azure-pipelines/test-windows.yml @@ -0,0 +1,87 @@ +parameters: + name: 'TestWindows' + vmImage: 'windows-2019' + arch: '64' # or '32' + +jobs: + - job: ${{ parameters.name }} + dependsOn: BuildWin${{ parameters.arch }} + pool: + vmImage: ${{ parameters.vmImage }} + variables: + HAXELIB_ROOT: C:/haxelib + strategy: + matrix: + # https://github.com/HaxeFoundation/haxe/issues/8600 + ${{ if eq(parameters.arch, '64') }}: + macro: + TEST: macro + neko: + TEST: neko + hl: + TEST: hl + cpp: + TEST: cpp + HXCPP_COMPILE_CACHE: C:/hxcache + java: + # https://github.com/HaxeFoundation/haxe/issues/8601 + ${{ if eq(parameters.arch, '64') }}: + TEST: java,jvm + ${{ if eq(parameters.arch, '32') }}: + TEST: java + cs: + TEST: cs + js: + TEST: js + php: + TEST: php + # TODO. flash has never been enabled on our AppVeyor builds. + # flash: + # TEST: flash9,as3 + python: + TEST: python + # TODO. Lua has never been enabled on our AppVeyor builds. + # lua: + # TEST: lua + steps: + - checkout: self + fetchDepth: 20 + - template: install-neko-snapshot.yaml + parameters: + ${{ if eq(parameters.arch, '64') }}: + platform: windows64 + ${{ if eq(parameters.arch, '32') }}: + platform: windows + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: 'win${{ parameters.arch }}Binaries' + targetPath: win${{ parameters.arch }}Binaries + - powershell: | + Set-PSDebug -Trace 1 + 7z x win${{ parameters.arch }}Binaries/*_bin.zip -owin${{ parameters.arch }}Binaries + $dir = Get-ChildItem win${{ parameters.arch }}Binaries/* -Name -Directory + Rename-Item win${{ parameters.arch }}Binaries/$dir haxe + $dir = '' + ( get-location ) + '\win${{ parameters.arch }}Binaries\haxe' + dir $dir + Set-PSDebug -Trace 0 + Write-Host "##vso[task.prependpath]$dir" + displayName: Setup Haxe + - script: haxe -version + displayName: Print Haxe version + - task: UsePythonVersion@0 + inputs: + versionSpec: '3.7' + - powershell: | + Set-PSDebug -Trace 1 + $pypath = python -c "import sys; print(sys.executable)" + $py3path = $pypath.replace("python.exe","python3.exe") + cmd /c mklink $py3path $pypath + python3 -V + displayName: "Make Python 3 be available as python3 in the cmdline" + - script: | + mkdir "$(HAXELIB_ROOT)" + haxelib setup "$(HAXELIB_ROOT)" + displayName: Setup haxelib + - script: haxe RunCi.hxml + workingDirectory: $(Build.SourcesDirectory)/tests + displayName: Test diff --git a/extra/choco/haxe.nuspec b/extra/choco/haxe.nuspec index e4cf4c79..b7d3c87e 100644 --- a/extra/choco/haxe.nuspec +++ b/extra/choco/haxe.nuspec @@ -18,7 +18,7 @@ Haxe is an open source toolkit based on a modern, high level, strictly typed programming language, a cross-compiler, a complete cross-platform standard library and ways to access each platform's native capabilities. Haxe is an open source toolkit based on a modern, high level, strictly typed programming language, a cross-compiler, a complete cross-platform standard library and ways to access each platform's native capabilities. -This package will install haxe and haxelib. After installation, you should run `haxelib setup <path>`, where `<path>` is the haxelib repository folder for placing third-party libraries. The folder should be created manually before running the command. +This package will install haxe and haxelib. After installation, you should run `haxelib setup %path%;`, where `%path%` is the haxelib repository folder for placing third-party libraries. The folder should be created manually before running the command. https://github.com/HaxeFoundation/haxe/blob/master/extra/CHANGES.txt haxe programming development foss cross-platform diff --git a/extra/doc.hxml b/extra/doc.hxml index 96569b6c..fa8b5321 100644 --- a/extra/doc.hxml +++ b/extra/doc.hxml @@ -1,6 +1,6 @@ --no-output --macro ImportAll.run() --dce no +--dce no -D doc-gen --each @@ -17,7 +17,7 @@ -swf all9.swf -xml doc/flash.xml --swf-version 11.4 +--swf-version 11.4 --next @@ -28,24 +28,20 @@ -cpp all_cpp -xml doc/cpp.xml --D xmldoc -D HXCPP_MULTI_THREADED --next -java all_java -xml doc/java.xml --D xmldoc --next -cs all_cs -D unsafe -xml doc/cs.xml --D xmldoc --next -python all_py -xml doc/python.xml --D xmldoc --next --interp diff --git a/extra/extract.hxml b/extra/extract.hxml index e0b3f077..427a2d90 100644 --- a/extra/extract.hxml +++ b/extra/extract.hxml @@ -4,9 +4,9 @@ # - Run haxe extract.hxml # - Restore removed haxe/std/flash/DIR directories # - Copy directories from hxclasses/flash to haxe/std/flash, overwriting restored ones --debug --swf-lib library.swf +--debug +--swf-lib library.swf -swf test.swf --swf-version 15 +--swf-version 15 --macro patchTypes("../extra/extract.patch") ---gen-hx-classes +-D gen-hx-classes diff --git a/extra/haxelib_src/.dockerignore b/extra/haxelib_src/.dockerignore index fb14f4b5..21b8b671 100644 --- a/extra/haxelib_src/.dockerignore +++ b/extra/haxelib_src/.dockerignore @@ -3,4 +3,4 @@ deploy bin test deploy_key -www/bower_components \ No newline at end of file +www/node_modules/ diff --git a/extra/haxelib_src/.ebextensions/autoscaling.config b/extra/haxelib_src/.ebextensions/autoscaling.config new file mode 100644 index 00000000..fe2c312f --- /dev/null +++ b/extra/haxelib_src/.ebextensions/autoscaling.config @@ -0,0 +1,6 @@ +Resources: + AWSEBAutoScalingGroup: + Type: "AWS::AutoScaling::AutoScalingGroup" + Properties: + HealthCheckType: ELB + HealthCheckGracePeriod: 60 diff --git a/extra/haxelib_src/.ebextensions/ignore4xx.config b/extra/haxelib_src/.ebextensions/ignore4xx.config new file mode 100644 index 00000000..e974a0fa --- /dev/null +++ b/extra/haxelib_src/.ebextensions/ignore4xx.config @@ -0,0 +1,58 @@ +# Ignore 4xx errors which we get a bunch of those in +# the file browser version switcher - e.g. when viewing the +# README.md file of version 1.0.0, there are links to the +# same file in other versions, but it may be absent, thus +# a 404 error. +# We don't want elastic beanstalk replace instances because +# of those 404 errors. +# See https://stackoverflow.com/a/49606726/267998 +files: + "/tmp/custom-site-nginx.conf": + mode: "000664" + owner: root + group: root + content: | + map $http_upgrade $connection_upgrade { + default "upgrade"; + "" ""; + } + + # Elastic Beanstalk Modification(EB_INCLUDE) + # Custom config + # HTTP 4xx ignored. + map $status $loggable { + ~^[4] 0; + default 1; + } + + server { + listen 80; + + gzip on; + gzip_comp_level 4; + gzip_types text/html text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; + + if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") { + set $year $1; + set $month $2; + set $day $3; + set $hour $4; + } + access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd if=$loggable; + + access_log /var/log/nginx/access.log; + + location / { + proxy_pass http://docker; + proxy_http_version 1.1; + + proxy_set_header Connection $connection_upgrade; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + } +container_commands: + override_beanstalk_nginx: + command: "mv -f /tmp/custom-site-nginx.conf /etc/nginx/sites-available/elasticbeanstalk-nginx-docker-proxy.conf" \ No newline at end of file diff --git a/extra/haxelib_src/.ebextensions/nginx.config b/extra/haxelib_src/.ebextensions/nginx.config index 45a6a0d9..72e246fd 100644 --- a/extra/haxelib_src/.ebextensions/nginx.config +++ b/extra/haxelib_src/.ebextensions/nginx.config @@ -1,7 +1,7 @@ files: "/etc/nginx/conf.d/proxy.conf" : - mode: "000755" + mode: "000664" owner: root group: root content: | - client_max_body_size 800M; \ No newline at end of file + client_max_body_size 800M; diff --git a/extra/haxelib_src/.github/FUNDING.yml b/extra/haxelib_src/.github/FUNDING.yml new file mode 100644 index 00000000..2481fa5c --- /dev/null +++ b/extra/haxelib_src/.github/FUNDING.yml @@ -0,0 +1,4 @@ +# These are supported funding model platforms + +open_collective: haxe +custom: ['https://haxe.org/foundation/support-plans.html', 'https://haxe.org/foundation/donate.html'] diff --git a/extra/haxelib_src/.travis.yml b/extra/haxelib_src/.travis.yml index 1a840eca..58ec6ed9 100644 --- a/extra/haxelib_src/.travis.yml +++ b/extra/haxelib_src/.travis.yml @@ -1,5 +1,5 @@ sudo: required -dist: trusty +dist: xenial language: haxe env: @@ -7,14 +7,7 @@ env: # deploy_key_decrypt - secure: "cWYcbB7z97sW4yZtz9qcYrEhFZktNjQMOraPm7Vy0FsCMqb4r314Fk8rJze+yDbOKGdsIz6VNHE8nlsQN3EgGiVFJnF8xv6GAlfHPuaVomP2vO7W0A+l7xVy2/326MQJP8JoMgdebDi71yxKeEhYA+mVliI9qql9yfD2YOBmilQ=" -install_docker: &install_docker - - sudo apt-get update -qq - - docker --version - # https://docs.travis-ci.com/user/docker/#Using-Docker-Compose - - sudo rm -f /usr/local/bin/docker-compose - - curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > docker-compose - - chmod +x docker-compose - - sudo mv docker-compose /usr/local/bin +.before_install: &before_install # https://github.com/travis-ci/travis-ci/issues/7008 - sudo /etc/init.d/mysql stop || true @@ -26,7 +19,7 @@ matrix: env: - USE_DOCKER=1 services: [docker] - before_install: *install_docker + before_install: *before_install # haxe 3.4.4 - os: linux haxe: 3.4.4 @@ -34,21 +27,21 @@ matrix: - USE_DOCKER=1 - DEPLOY=1 services: [docker] - before_install: *install_docker + before_install: *before_install # haxe 3.2.1 - os: linux haxe: 3.2.1 env: - USE_DOCKER=1 services: [docker] - before_install: *install_docker + before_install: *before_install # haxe 3.1.3 - os: linux haxe: 3.1.3 env: - USE_DOCKER=1 services: [docker] - before_install: *install_docker + before_install: *before_install # Mac - os: osx haxe: development @@ -58,31 +51,27 @@ matrix: haxe: 3.2.1 - os: osx haxe: 3.1.3 - # Allow Haxe development to fail. - allow_failures: - - haxe: development install: - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew update; fi - - npm -g install bower - - haxelib newrepo || mkdir -p .haxelib && haxelib setup .haxelib - - yes | travis_retry haxelib -notimeout install all - - yes | travis_retry haxelib -notimeout install tora + - neko run.n setup haxelib_global + - haxe libs.hxml # copy aws.ndll to the right place - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then - sudo cp $(haxelib config)/aws-sdk-neko/*/ndll/Mac64/aws.ndll ${NEKOPATH}/aws.ndll; + sudo cp $(neko run.n config)/aws-sdk-neko/*/ndll/Mac64/aws.ndll ${NEKOPATH}/aws.ndll; fi; - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then - sudo cp $(haxelib config)/aws-sdk-neko/*/ndll/Linux64/aws.ndll ${NEKOPATH}/aws.ndll; + sudo cp $(neko run.n config)/aws-sdk-neko/*/ndll/Linux64/aws.ndll ${NEKOPATH}/aws.ndll; fi; - - haxelib list - - haxelib run tora > /dev/null 2>&1 & + - neko run.n list + - neko run.n version + - neko run.n run tora > ~/tora.log 2>&1 & script: # run our CI script - - haxe ci.hxml + - haxe ci.hxml || (echo "[BUILD FAILED]" && echo "Tora log:" && cat ~/tora.log && false) deploy: skip_cleanup: true diff --git a/extra/haxelib_src/.vscode/settings.json b/extra/haxelib_src/.vscode/settings.json index fffce17a..a1f14056 100644 --- a/extra/haxelib_src/.vscode/settings.json +++ b/extra/haxelib_src/.vscode/settings.json @@ -1,5 +1,6 @@ { - "haxe.displayConfigurations": [ + "haxe.configurations": [ + ["client_tests.hxml"], ["client.hxml"], ["server_each.hxml", "-neko", "repo.n"] ] diff --git a/extra/haxelib_src/.vscode/tasks.json b/extra/haxelib_src/.vscode/tasks.json index 6a789b94..9b6b3ba6 100644 --- a/extra/haxelib_src/.vscode/tasks.json +++ b/extra/haxelib_src/.vscode/tasks.json @@ -1,18 +1,13 @@ { - "version": "0.1.0", - "command": "haxe", - "args": ["client.hxml"], - "problemMatcher": { - "owner": "haxe", - "pattern": { - "regexp": "^(.+):(\\d+): (?:lines \\d+-(\\d+)|character(?:s (\\d+)-| )(\\d+)) : (?:(Warning) : )?(.*)$", - "file": 1, - "line": 2, - "endLine": 3, - "column": 4, - "endColumn": 5, - "severity": 6, - "message": 7 - } - } -} + "version": "2.0.0", + "tasks": [ + { + "type": "hxml", + "file": "client.hxml", + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} \ No newline at end of file diff --git a/extra/haxelib_src/Dockerfile b/extra/haxelib_src/Dockerfile index 944b4f12..5951e065 100644 --- a/extra/haxelib_src/Dockerfile +++ b/extra/haxelib_src/Dockerfile @@ -1,53 +1,56 @@ # Build haxelib server as a Docker container. -# Note that it doesn't contain a MySQL database, +# Note that it doesn't contain a MySQL database, # which need to be launched seperately. See test/docker-compose.yml on how to launch one. -FROM ubuntu:trusty +FROM ubuntu:bionic -# apt-get dependencies of bower -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y python-software-properties software-properties-common \ +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common \ && add-apt-repository ppa:haxe/releases -y \ - && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ + && apt-get update && apt-get upgrade -y \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y \ apache2 \ neko-dev \ haxe \ - npm \ - nodejs-legacy \ + curl \ git \ libcurl4-gnutls-dev \ + && curl -sL https://deb.nodesource.com/setup_8.x | bash - \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y \ + nodejs \ && rm -r /var/lib/apt/lists/* # apache httpd RUN rm -rf /var/www/html \ && mkdir -p /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/www/html \ - && chown -R www-data:www-data /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/www/html + && chown -R www-data:www-data /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/www/html RUN a2enmod rewrite RUN a2enmod proxy RUN a2enmod proxy_http +RUN a2dismod mpm_event +RUN a2enmod mpm_prefork RUN mv /etc/apache2/apache2.conf /etc/apache2/apache2.conf.dist && rm /etc/apache2/conf-enabled/* /etc/apache2/sites-enabled/* COPY apache2.conf /etc/apache2/apache2.conf RUN { \ - echo 'LoadModule neko_module /usr/lib/neko/mod_neko2.ndll'; \ - echo 'LoadModule tora_module /usr/lib/neko/mod_tora2.ndll'; \ + echo 'LoadModule neko_module /usr/lib/x86_64-linux-gnu/neko/mod_neko2.ndll'; \ + echo 'LoadModule tora_module /usr/lib/x86_64-linux-gnu/neko/mod_tora2.ndll'; \ echo 'AddHandler tora-handler .n'; \ } > /etc/apache2/mods-enabled/tora.conf \ && apachectl stop -RUN npm -g install bower - # haxelib -ENV HAXELIB_PATH /src/.haxelib -RUN mkdir /haxelib && haxelib setup /haxelib +ENV HAXELIB_PATH /src/haxelib_global +RUN mkdir -p ${HAXELIB_PATH} && haxelib setup ${HAXELIB_PATH} WORKDIR /src -COPY .haxelib /src/.haxelib -RUN cp ${HAXELIB_PATH}/aws-sdk-neko/*/ndll/Linux64/aws.ndll /usr/lib/neko/aws.ndll; +COPY libs.hxml run.n /src/ +RUN haxe libs.hxml +RUN cp ${HAXELIB_PATH}/aws-sdk-neko/*/ndll/Linux64/aws.ndll /usr/lib/x86_64-linux-gnu/neko/aws.ndll; COPY server*.hxml /src/ -COPY www/bower.json /src/www/ -WORKDIR /src/www -RUN bower install --allow-root +COPY www/package*.json /src/www/ +WORKDIR /src/www/ +RUN npm install --unsafe-perm COPY www /src/www/ COPY src/legacyhaxelib/.htaccess /src/www/legacy/ diff --git a/extra/haxelib_src/appveyor.yml b/extra/haxelib_src/appveyor.yml index e6871ef5..46753b9b 100644 --- a/extra/haxelib_src/appveyor.yml +++ b/extra/haxelib_src/appveyor.yml @@ -4,15 +4,14 @@ services: - mysql install: - - npm -g install bower + - ps: Set-Service wuauserv -StartupType Manual - cinst haxe -y - cinst nssm -y - cinst curl -y - RefreshEnv - - haxelib setup %HOME%/haxelib_repo - - haxelib install all --always - - haxelib install tora - - haxelib list + - neko run.n setup haxelib_global + - haxe libs.hxml + - neko run.n list build: off diff --git a/extra/haxelib_src/client.hxml b/extra/haxelib_src/client.hxml index 97b705ed..832c75d7 100644 --- a/extra/haxelib_src/client.hxml +++ b/extra/haxelib_src/client.hxml @@ -1,3 +1,4 @@ -cp src +-cp hx3compat/std -neko run.n -main haxelib.client.Main diff --git a/extra/haxelib_src/client_legacy.hxml b/extra/haxelib_src/client_legacy.hxml index bfd5fd59..89e1d106 100644 --- a/extra/haxelib_src/client_legacy.hxml +++ b/extra/haxelib_src/client_legacy.hxml @@ -1,3 +1,4 @@ --cp src --neko bin/legacyhaxelib.n +-cp src +-cp hx3compat/std +-neko bin/legacyhaxelib.n -main legacyhaxelib.Main \ No newline at end of file diff --git a/extra/haxelib_src/client_tests.hxml b/extra/haxelib_src/client_tests.hxml index 756c0943..3d687131 100644 --- a/extra/haxelib_src/client_tests.hxml +++ b/extra/haxelib_src/client_tests.hxml @@ -3,5 +3,4 @@ -lib hx3compat -main HaxelibTests -debug --neko bin/test.n --cmd neko bin/test.n \ No newline at end of file +-neko bin/test.n \ No newline at end of file diff --git a/extra/haxelib_src/deploy.json b/extra/haxelib_src/deploy.json index d064590b..520ea50b 100644 --- a/extra/haxelib_src/deploy.json +++ b/extra/haxelib_src/deploy.json @@ -1,7 +1,6 @@ { "files": [ "api/", - "bower_components/", "css/", "documentation-files/", "img/", diff --git a/extra/haxelib_src/haxelib.json b/extra/haxelib_src/haxelib.json index e23f974b..4f3ba68d 100644 --- a/extra/haxelib_src/haxelib.json +++ b/extra/haxelib_src/haxelib.json @@ -1,11 +1,11 @@ { "name": "haxelib", - "url" : "http://haxe.org/haxelib", + "url" : "https://lib.haxe.org/documentation/", "license": "GPL", "tags": ["haxelib", "core"], "description": "The haxelib client", "classPath": "src", - "version": "3.3.0", - "releasenote": "Initial release for Haxe 3.3", - "contributors": ["back2dos", "ncannasse", "jason", "Simn", "nadako"] + "version": "4.0.0", + "releasenote": " * Added `haxelib libpath` command (#407)\n * Allow forcing proxy configuration if proxy test failed (#411)\n * Use version specified by `-lib library:1.2.3` even if currently active one is `dev`\n * Strip comments from extraParams.hxml for `haxelib path` (#439)\n * Automatically retry failing downloads 3 times\n * Allow environment variables in dev paths using `%VAR_NAME%` syntax. E.g.: `/path/to/%MY_ENV_VAR%/lib`\n * Handle HAXELIB_NO_SSL environment variable to disable https on requests to haxelib server (#448)\n * Added `--skip-dependencies` option (#343)\n * Look for `.haxelib` local repo recursively up along the directories tree (#292)", + "contributors": ["HaxeFoundation", "back2dos", "ncannasse", "jason", "Simn", "nadako", "andyli"] } diff --git a/extra/haxelib_src/hx3compat/README.md b/extra/haxelib_src/hx3compat/README.md new file mode 100644 index 00000000..1f3bb03e --- /dev/null +++ b/extra/haxelib_src/hx3compat/README.md @@ -0,0 +1,4 @@ +hx3compat +========= + +Haxe 4 compatibility lib for haxe 3 diff --git a/extra/haxelib_src/hx3compat/haxelib.json b/extra/haxelib_src/hx3compat/haxelib.json new file mode 100644 index 00000000..18a9ae34 --- /dev/null +++ b/extra/haxelib_src/hx3compat/haxelib.json @@ -0,0 +1,14 @@ +{ + "name": "hx3compat", + "url": "https://github.com/HaxeFoundation/hx3compat", + "license": "BSD", + "tags": ["cross"], + "description": "Some haxe 3 types for easier migration to haxe 4.", + "version": "1.0.0", + "releasenote": "Initial", + "contributors": ["Simn"], + "dependencies": { + + }, + "classPath": "std" +} \ No newline at end of file diff --git a/std/haxe/remoting/AMFConnection.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/AMFConnection.hx similarity index 95% rename from std/haxe/remoting/AMFConnection.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/AMFConnection.hx index 984704c1..e9acae3e 100644 --- a/std/haxe/remoting/AMFConnection.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/AMFConnection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,7 +24,7 @@ package haxe.remoting; /** Allows a connection to an AMF Remoting server such as Flash Media Server or AMFPHP. */ -class AMFConnection implements AsyncConnection implements Dynamic { +class AMFConnection implements AsyncConnection { var __data : { error : Dynamic -> Void, diff --git a/std/haxe/remoting/AsyncAdapter.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncAdapter.hx similarity index 97% rename from std/haxe/remoting/AsyncAdapter.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncAdapter.hx index abbd2ead..530d623d 100644 --- a/std/haxe/remoting/AsyncAdapter.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncAdapter.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/std/haxe/remoting/AsyncConnection.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncConnection.hx similarity index 93% rename from std/haxe/remoting/AsyncConnection.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncConnection.hx index 90e515e0..47acaae7 100644 --- a/std/haxe/remoting/AsyncConnection.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncConnection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,7 +24,7 @@ package haxe.remoting; /** For asynchronous connections, where the results are events that will be resolved later in the execution process. */ -interface AsyncConnection implements Dynamic { +interface AsyncConnection { function resolve( name : String ) : AsyncConnection; function call( params : Array, ?result : Dynamic -> Void ) : Void; diff --git a/std/haxe/remoting/AsyncDebugConnection.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncDebugConnection.hx similarity index 95% rename from std/haxe/remoting/AsyncDebugConnection.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncDebugConnection.hx index f6ae1d50..ecd6586e 100644 --- a/std/haxe/remoting/AsyncDebugConnection.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncDebugConnection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -21,7 +21,7 @@ */ package haxe.remoting; -class AsyncDebugConnection implements AsyncConnection implements Dynamic { +class AsyncDebugConnection implements AsyncConnection { var __path : Array; var __cnx : AsyncConnection; diff --git a/std/haxe/remoting/AsyncProxy.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncProxy.hx similarity index 96% rename from std/haxe/remoting/AsyncProxy.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncProxy.hx index dafa0a26..32e30cd2 100644 --- a/std/haxe/remoting/AsyncProxy.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/AsyncProxy.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/std/haxe/remoting/Connection.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/Connection.hx similarity index 92% rename from std/haxe/remoting/Connection.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/Connection.hx index 91177bb3..70a7ca72 100644 --- a/std/haxe/remoting/Connection.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/Connection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -21,7 +21,7 @@ */ package haxe.remoting; -interface Connection implements Dynamic { +interface Connection { function resolve( name : String ) : Connection; function call( params : Array ) : Dynamic; diff --git a/std/haxe/remoting/Context.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/Context.hx similarity index 98% rename from std/haxe/remoting/Context.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/Context.hx index d42f8e99..40ba56fa 100644 --- a/std/haxe/remoting/Context.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/Context.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/std/haxe/remoting/ContextAll.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/ContextAll.hx similarity index 97% rename from std/haxe/remoting/ContextAll.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/ContextAll.hx index f8b7c2aa..a6f182cf 100644 --- a/std/haxe/remoting/ContextAll.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/ContextAll.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/std/haxe/remoting/DelayedConnection.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/DelayedConnection.hx similarity index 94% rename from std/haxe/remoting/DelayedConnection.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/DelayedConnection.hx index ccc84e28..d5477ce4 100644 --- a/std/haxe/remoting/DelayedConnection.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/DelayedConnection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -21,7 +21,7 @@ */ package haxe.remoting; -class DelayedConnection implements AsyncConnection implements Dynamic { +class DelayedConnection implements AsyncConnection { public var connection(get,set) : AsyncConnection; diff --git a/std/haxe/remoting/ExternalConnection.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/ExternalConnection.hx similarity index 96% rename from std/haxe/remoting/ExternalConnection.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/ExternalConnection.hx index d8801531..fa1bd34b 100644 --- a/std/haxe/remoting/ExternalConnection.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/ExternalConnection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,7 +25,7 @@ package haxe.remoting; Synchronous communications between Flash and Javascript. **/ @:expose -class ExternalConnection implements Connection implements Dynamic { +class ExternalConnection implements Connection { var __data : { name : String, ctx : Context, #if js flash : String #end }; var __path : Array; @@ -50,7 +50,7 @@ class ExternalConnection implements Connection implements Dynamic { return s.split("\\").join("\\\\"); } #else - static inline function escapeString(s) { + static inline function escapeString(s:String) { return s; } #end diff --git a/std/haxe/remoting/FlashJsConnection.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/FlashJsConnection.hx similarity index 96% rename from std/haxe/remoting/FlashJsConnection.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/FlashJsConnection.hx index 316732cd..162a465b 100644 --- a/std/haxe/remoting/FlashJsConnection.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/FlashJsConnection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -21,7 +21,7 @@ */ package haxe.remoting; -class FlashJsConnection #if flash implements AsyncConnection implements Dynamic #end { +class FlashJsConnection #if flash implements AsyncConnection #end { #if flash diff --git a/std/haxe/remoting/HttpAsyncConnection.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/HttpAsyncConnection.hx similarity index 94% rename from std/haxe/remoting/HttpAsyncConnection.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/HttpAsyncConnection.hx index 99091f51..1a0baa39 100644 --- a/std/haxe/remoting/HttpAsyncConnection.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/HttpAsyncConnection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,7 +24,7 @@ package haxe.remoting; /** Allows an asynchronous connection to the given URL which should link to a Haxe server application. */ -class HttpAsyncConnection implements AsyncConnection implements Dynamic { +class HttpAsyncConnection implements AsyncConnection { var __data : { url : String, error : Dynamic -> Void }; var __path : Array; diff --git a/std/haxe/remoting/HttpConnection.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/HttpConnection.hx similarity index 96% rename from std/haxe/remoting/HttpConnection.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/HttpConnection.hx index efcbecdc..22aee3de 100644 --- a/std/haxe/remoting/HttpConnection.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/HttpConnection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,7 +24,7 @@ package haxe.remoting; /** Allows a synchronous connection to the given URL which should link to a Haxe server application. */ -class HttpConnection implements Connection implements Dynamic { +class HttpConnection implements Connection { public static var TIMEOUT = 10.; diff --git a/std/haxe/remoting/LocalConnection.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/LocalConnection.hx similarity index 96% rename from std/haxe/remoting/LocalConnection.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/LocalConnection.hx index 7b534976..939ce57b 100644 --- a/std/haxe/remoting/LocalConnection.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/LocalConnection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,7 +24,7 @@ package haxe.remoting; /** Allows communications to a different application that runs on the same client device */ -class LocalConnection implements AsyncConnection implements Dynamic { +class LocalConnection implements AsyncConnection { static var ID = 0; diff --git a/std/haxe/remoting/Proxy.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/Proxy.hx similarity index 96% rename from std/haxe/remoting/Proxy.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/Proxy.hx index 7a8e5491..3b6ffc7c 100644 --- a/std/haxe/remoting/Proxy.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/Proxy.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/std/haxe/remoting/SocketConnection.hx b/extra/haxelib_src/hx3compat/std/haxe/remoting/SocketConnection.hx similarity index 96% rename from std/haxe/remoting/SocketConnection.hx rename to extra/haxelib_src/hx3compat/std/haxe/remoting/SocketConnection.hx index 2e64f879..00b8b17e 100644 --- a/std/haxe/remoting/SocketConnection.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/remoting/SocketConnection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,7 +25,7 @@ import haxe.remoting.SocketProtocol.Socket; /** Allows remoting communications over a socket connection */ -class SocketConnection implements AsyncConnection implements Dynamic { +class SocketConnection implements AsyncConnection { var __path : Array; var __data : { @@ -111,7 +111,7 @@ class SocketConnection implements AsyncConnection implements Dynamic { +class SyncSocketConnection implements Connection { var __path : Array; var __proto : SocketProtocol; diff --git a/std/haxe/unit/TestCase.hx b/extra/haxelib_src/hx3compat/std/haxe/unit/TestCase.hx similarity index 100% rename from std/haxe/unit/TestCase.hx rename to extra/haxelib_src/hx3compat/std/haxe/unit/TestCase.hx diff --git a/std/haxe/unit/TestResult.hx b/extra/haxelib_src/hx3compat/std/haxe/unit/TestResult.hx similarity index 100% rename from std/haxe/unit/TestResult.hx rename to extra/haxelib_src/hx3compat/std/haxe/unit/TestResult.hx diff --git a/std/haxe/unit/TestRunner.hx b/extra/haxelib_src/hx3compat/std/haxe/unit/TestRunner.hx similarity index 99% rename from std/haxe/unit/TestRunner.hx rename to extra/haxelib_src/hx3compat/std/haxe/unit/TestRunner.hx index 7473d780..5bf58728 100644 --- a/std/haxe/unit/TestRunner.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/unit/TestRunner.hx @@ -24,16 +24,16 @@ import Reflect; /** This class runs unit test cases and prints the result. - + ```haxe var r = new haxe.unit.TestRunner(); r.add(new MyTestCase()); // add other TestCases here - + // finally, run the tests r.run(); ``` - + @see **/ class TestRunner { @@ -50,7 +50,7 @@ class TestRunner { /** Prints the given object/value. - + * Flash outputs the result in a new `TextField` on stage. * JavaScript outputs the result using `console.log`. * Other targets use native `print` to output the result. @@ -96,7 +96,7 @@ class TestRunner { untyped __java__("java.lang.System.out.print(str)"); #elseif python python.Lib.print(v); - #elseif (hl || lua) + #elseif (hl || lua || eval) Sys.print(Std.string(v)); #end } @@ -119,7 +119,7 @@ class TestRunner { /** Runs the unit tests and prints the results. - + @return `true` if the unit test succesfully executed the test cases. **/ public function run() : Bool { diff --git a/std/haxe/unit/TestStatus.hx b/extra/haxelib_src/hx3compat/std/haxe/unit/TestStatus.hx similarity index 100% rename from std/haxe/unit/TestStatus.hx rename to extra/haxelib_src/hx3compat/std/haxe/unit/TestStatus.hx diff --git a/std/haxe/web/Dispatch.hx b/extra/haxelib_src/hx3compat/std/haxe/web/Dispatch.hx similarity index 98% rename from std/haxe/web/Dispatch.hx rename to extra/haxelib_src/hx3compat/std/haxe/web/Dispatch.hx index 47526fb4..3cb92e37 100644 --- a/std/haxe/web/Dispatch.hx +++ b/extra/haxelib_src/hx3compat/std/haxe/web/Dispatch.hx @@ -416,7 +416,7 @@ class Dispatch { var str = serialize(fields); i.meta.add("dispatchConfig", [ { expr : EConst(CString(str)), pos : p } ], p); } - return { expr : EUntyped ({ expr : ECall({ expr : EField(Context.makeExpr(Dispatch,p),"extractConfig"), pos : p },[obj]), pos : p }), pos : p }; + return { expr : EUntyped ({ expr : ECall({ expr : EField(macro haxe.web.Dispatch,"extractConfig"), pos : p },[obj]), pos : p }), pos : p }; default: Context.error("Configuration should be an anonymous object",p); } diff --git a/std/haxe/web/Request.hx b/extra/haxelib_src/hx3compat/std/haxe/web/Request.hx similarity index 100% rename from std/haxe/web/Request.hx rename to extra/haxelib_src/hx3compat/std/haxe/web/Request.hx diff --git a/std/js/JQuery.hx b/extra/haxelib_src/hx3compat/std/js/JQuery.hx similarity index 100% rename from std/js/JQuery.hx rename to extra/haxelib_src/hx3compat/std/js/JQuery.hx diff --git a/std/js/SWFObject.hx b/extra/haxelib_src/hx3compat/std/js/SWFObject.hx similarity index 100% rename from std/js/SWFObject.hx rename to extra/haxelib_src/hx3compat/std/js/SWFObject.hx diff --git a/std/js/XMLSocket.hx b/extra/haxelib_src/hx3compat/std/js/XMLSocket.hx similarity index 98% rename from std/js/XMLSocket.hx rename to extra/haxelib_src/hx3compat/std/js/XMLSocket.hx index db867530..7e6af67c 100644 --- a/std/js/XMLSocket.hx +++ b/extra/haxelib_src/hx3compat/std/js/XMLSocket.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/std/neko/net/Poll.hx b/extra/haxelib_src/hx3compat/std/neko/net/Poll.hx similarity index 98% rename from std/neko/net/Poll.hx rename to extra/haxelib_src/hx3compat/std/neko/net/Poll.hx index dff7373e..e388ccc5 100644 --- a/std/neko/net/Poll.hx +++ b/extra/haxelib_src/hx3compat/std/neko/net/Poll.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/std/neko/net/ProxyDetect.hx b/extra/haxelib_src/hx3compat/std/neko/net/ProxyDetect.hx similarity index 99% rename from std/neko/net/ProxyDetect.hx rename to extra/haxelib_src/hx3compat/std/neko/net/ProxyDetect.hx index 02cd55f9..8b1b157c 100644 --- a/std/neko/net/ProxyDetect.hx +++ b/extra/haxelib_src/hx3compat/std/neko/net/ProxyDetect.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/std/neko/net/ServerLoop.hx b/extra/haxelib_src/hx3compat/std/neko/net/ServerLoop.hx similarity index 99% rename from std/neko/net/ServerLoop.hx rename to extra/haxelib_src/hx3compat/std/neko/net/ServerLoop.hx index 60abf8b4..07c9853f 100644 --- a/std/neko/net/ServerLoop.hx +++ b/extra/haxelib_src/hx3compat/std/neko/net/ServerLoop.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/std/neko/net/ThreadRemotingServer.hx b/extra/haxelib_src/hx3compat/std/neko/net/ThreadRemotingServer.hx similarity index 98% rename from std/neko/net/ThreadRemotingServer.hx rename to extra/haxelib_src/hx3compat/std/neko/net/ThreadRemotingServer.hx index 3eb55db2..471315aa 100644 --- a/std/neko/net/ThreadRemotingServer.hx +++ b/extra/haxelib_src/hx3compat/std/neko/net/ThreadRemotingServer.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/std/neko/net/ThreadServer.hx b/extra/haxelib_src/hx3compat/std/neko/net/ThreadServer.hx similarity index 98% rename from std/neko/net/ThreadServer.hx rename to extra/haxelib_src/hx3compat/std/neko/net/ThreadServer.hx index a5f1ddc1..996237d6 100644 --- a/std/neko/net/ThreadServer.hx +++ b/extra/haxelib_src/hx3compat/std/neko/net/ThreadServer.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2018 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,7 +37,7 @@ private typedef ClientInfos = { } /** - The ThreadServer can be used to easily create a multithreaded server where each thread polls multiple connections. + The ThreadServer can be used to easily create a multithreaded server where each thread polls multiple connections. To use it, at a minimum you must override or rebind clientConnected, readClientMessage, and clientMessage and you must define your Client and Message. **/ class ThreadServer { @@ -174,7 +174,7 @@ class ThreadServer { } } - function doClientDisconnected(s,c) { + function doClientDisconnected(s:sys.net.Socket,c) { try s.close() catch( e : Dynamic ) {}; clientDisconnected(c); } @@ -329,7 +329,7 @@ class ThreadServer { /** Called when data has been read from a socket. This method should try to extract a message from the buffer. - The available data resides in buf, starts at pos, and is len bytes wide. Return the new message and the number of bytes read from the buffer. + The available data resides in buf, starts at pos, and is len bytes wide. Return the new message and the number of bytes read from the buffer. If no message could be read, return null. **/ public dynamic function readClientMessage( c : Client, buf : haxe.io.Bytes, pos : Int, len : Int ) : { msg : Message, bytes : Int } { diff --git a/extra/haxelib_src/integration_tests.hxml b/extra/haxelib_src/integration_tests.hxml index fb1748bb..51450131 100644 --- a/extra/haxelib_src/integration_tests.hxml +++ b/extra/haxelib_src/integration_tests.hxml @@ -2,5 +2,4 @@ -cp test -lib hx3compat -main IntegrationTests --neko bin/integration_tests.n --cmd neko bin/integration_tests.n \ No newline at end of file +-neko bin/integration_tests.n \ No newline at end of file diff --git a/extra/haxelib_src/libs.hxml b/extra/haxelib_src/libs.hxml new file mode 100644 index 00000000..f4295a01 --- /dev/null +++ b/extra/haxelib_src/libs.hxml @@ -0,0 +1,32 @@ +-cmd curl -sSLk https://lib.haxe.org/files/3.0/tink_core-1,23,0.zip -o haxelib_global/tink_core.zip && neko run.n install --always --skip-dependencies haxelib_global/tink_core.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/tink_core-1,0,0-rc,11.zip -o haxelib_global/tink_core.zip && neko run.n install --always --skip-dependencies haxelib_global/tink_core.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/tink_macro-0,6,4.zip -o haxelib_global/tink_macro.zip && neko run.n install --always --skip-dependencies haxelib_global/tink_macro.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/promhx-1,1,0.zip -o haxelib_global/promhx.zip && neko run.n install --always --skip-dependencies haxelib_global/promhx.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/asynctools-0,1,0.zip -o haxelib_global/asynctools.zip && neko run.n install --always --skip-dependencies haxelib_global/asynctools.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/aws-sdk-neko-0,2,0.zip -o haxelib_global/aws-sdk-neko.zip && neko run.n install --always --skip-dependencies haxelib_global/aws-sdk-neko.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/buddy-2,8,1.zip -o haxelib_global/buddy.zip && neko run.n install --always --skip-dependencies haxelib_global/buddy.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/cleversort-1,0,3.zip -o haxelib_global/cleversort.zip && neko run.n install --always --skip-dependencies haxelib_global/cleversort.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/compiletime-2,6,0.zip -o haxelib_global/compiletime.zip && neko run.n install --always --skip-dependencies haxelib_global/compiletime.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/compiletime-2,8,0.zip -o haxelib_global/compiletime.zip && neko run.n install --always --skip-dependencies haxelib_global/compiletime.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/hscript-2,3,0.zip -o haxelib_global/hscript.zip && neko run.n install --always --skip-dependencies haxelib_global/hscript.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/erazor-1,0,1.zip -o haxelib_global/erazor.zip && neko run.n install --always --skip-dependencies haxelib_global/erazor.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/html-haxe-code-highlighter-0,1,2.zip -o haxelib_global/html-haxe-code-highlighter.zip && neko run.n install --always --skip-dependencies haxelib_global/html-haxe-code-highlighter.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/hx2compat-1,0,2.zip -o haxelib_global/hx2compat.zip && neko run.n install --always --skip-dependencies haxelib_global/hx2compat.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/hx3compat-1,0,3.zip -o haxelib_global/hx3compat.zip && neko run.n install --always --skip-dependencies haxelib_global/hx3compat.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/markdown-1,0,0.zip -o haxelib_global/markdown.zip && neko run.n install --always --skip-dependencies haxelib_global/markdown.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/mcli-0,1,7.zip -o haxelib_global/mcli.zip && neko run.n install --always --skip-dependencies haxelib_global/mcli.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/mconsole-1,6,0.zip -o haxelib_global/mconsole.zip && neko run.n install --always --skip-dependencies haxelib_global/mconsole.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/minject-2,0,0-rc,1.zip -o haxelib_global/minject.zip && neko run.n install --always --skip-dependencies haxelib_global/minject.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/mockatoo-3,2,1.zip -o haxelib_global/mockatoo.zip && neko run.n install --always --skip-dependencies haxelib_global/mockatoo.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/mtwin-1,6,0.zip -o haxelib_global/mtwin.zip && neko run.n install --always --skip-dependencies haxelib_global/mtwin.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/PBKDF2-1,0,0.zip -o haxelib_global/PBKDF2.zip && neko run.n install --always --skip-dependencies haxelib_global/PBKDF2.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/record-macros-1,0,0-alpha.zip -o haxelib_global/record-macros.zip && neko run.n install --always --skip-dependencies haxelib_global/record-macros.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/tora-1,8,1.zip -o haxelib_global/tora.zip && neko run.n install --always --skip-dependencies haxelib_global/tora.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/ufront-mvc-1,1,0.zip -o haxelib_global/ufront-mvc.zip && neko run.n install --always --skip-dependencies haxelib_global/ufront-mvc.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/ufront-orm-1,1,0.zip -o haxelib_global/ufront-orm.zip && neko run.n install --always --skip-dependencies haxelib_global/ufront-orm.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/ufront-easyauth-1,0,0.zip -o haxelib_global/ufront-easyauth.zip && neko run.n install --always --skip-dependencies haxelib_global/ufront-easyauth.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/ufront-mail-1,0,0-rc,4.zip -o haxelib_global/ufront-mail.zip && neko run.n install --always --skip-dependencies haxelib_global/ufront-mail.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/ufront-ufadmin-1,0,0-beta,14.zip -o haxelib_global/ufront-ufadmin.zip && neko run.n install --always --skip-dependencies haxelib_global/ufront-ufadmin.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/ufront-uftasks-1,0,0-beta,15.zip -o haxelib_global/ufront-uftasks.zip && neko run.n install --always --skip-dependencies haxelib_global/ufront-uftasks.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/ufront-2,0,0.zip -o haxelib_global/ufront.zip && neko run.n install --always --skip-dependencies haxelib_global/ufront.zip +-cmd curl -sSLk https://lib.haxe.org/files/3.0/utest-1,9,6.zip -o haxelib_global/utest.zip && neko run.n install --always --skip-dependencies haxelib_global/utest.zip diff --git a/extra/haxelib_src/package.hxml b/extra/haxelib_src/package.hxml index c5e4ebba..9d6a5186 100755 --- a/extra/haxelib_src/package.hxml +++ b/extra/haxelib_src/package.hxml @@ -1,2 +1,3 @@ -cp src +-cp hx3compat/std --run Package \ No newline at end of file diff --git a/extra/haxelib_src/run.n b/extra/haxelib_src/run.n index 73828aff6d46869062378dcdfd710d53a1aebe7c..9d5147339386a993653abe8022e07e9701ebb08b 100644 GIT binary patch literal 227519 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

j=~kZ@kY)%^8FgAlPHRs>#1u065q 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

?ynBNE5C41ivr8 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 literal 209105 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 diff --git a/extra/haxelib_src/schema.json b/extra/haxelib_src/schema.json index 6e20db78..4faf9e65 100644 --- a/extra/haxelib_src/schema.json +++ b/extra/haxelib_src/schema.json @@ -22,6 +22,10 @@ "description": "Folder in the package which contains the source files for this project", "type": "string" }, + "main": { + "description": "A class to run on `haxelib run libraryname` command.\nRelative to library root. E.g. to run `tools/Main.hx` the value should be `tools.Main`.\nDefault value since Haxe 4: Run", + "type": "string" + }, "contributors": { "description": "List of project contributors that are allowed to upload to haxelib", "type": "array", diff --git a/extra/haxelib_src/server-start.hxml b/extra/haxelib_src/server-start.hxml new file mode 100644 index 00000000..08b95fb6 --- /dev/null +++ b/extra/haxelib_src/server-start.hxml @@ -0,0 +1 @@ +-cmd nekotools server -rewrite -d www \ No newline at end of file diff --git a/extra/haxelib_src/server.hxml b/extra/haxelib_src/server.hxml index 55a1e32b..8edfae5f 100644 --- a/extra/haxelib_src/server.hxml +++ b/extra/haxelib_src/server.hxml @@ -1,7 +1,9 @@ # The new haxelib website (on the same 3.0 repo) +server_website_highlighter.hxml +--next server_website.hxml --next server_tasks.hxml --next -server_api.hxml \ No newline at end of file +server_api.hxml diff --git a/extra/haxelib_src/server_each.hxml b/extra/haxelib_src/server_each.hxml index 6ad2995a..94ca08e8 100644 --- a/extra/haxelib_src/server_each.hxml +++ b/extra/haxelib_src/server_each.hxml @@ -1,4 +1,5 @@ -cp src +-cp hx3compat/std -lib ufront -lib ufront-mail:1.0.0-rc.4 -lib ufront-ufadmin @@ -7,6 +8,7 @@ -lib cleversort -lib aws-sdk-neko:0.2.0 -lib record-macros +-lib html-haxe-code-highlighter:0.1.2 -D server -D getter_support # https://github.com/HaxeFoundation/haxe/issues/4903 diff --git a/extra/haxelib_src/server_website_highlighter.hxml b/extra/haxelib_src/server_website_highlighter.hxml new file mode 100644 index 00000000..35db03c6 --- /dev/null +++ b/extra/haxelib_src/server_website_highlighter.hxml @@ -0,0 +1,7 @@ +# generate code highlighter +-lib html-haxe-code-highlighter:0.1.2 +-js www/js/highlighter.js +-main highlighter.Highlighter +-D highlighter_standalone +-D analyzer-optimize +-dce full \ No newline at end of file diff --git a/extra/haxelib_src/src/Package.hx b/extra/haxelib_src/src/Package.hx index 3703e6e1..3fdd2d19 100644 --- a/extra/haxelib_src/src/Package.hx +++ b/extra/haxelib_src/src/Package.hx @@ -68,10 +68,15 @@ class Package { v; } var json:Infos = haxe.Json.parse(sys.io.File.getContent("haxelib.json")); - if (!runVersion.startsWith(json.version + " ")) { + + // Version output examples: + // - 3.4.0 + // - 3.4.0 (6b9c8851036fb012c0e188bc27da07999b663b4f - dirty) + if (!runVersion.startsWith(json.version)) { Sys.println('Error: Version in haxelib.json (${json.version}) does not match `neko run.n version` ($runVersion)'); Sys.exit(1); } + if (runVersion.indexOf("dirty") >= 0) { Sys.println('Error: run.n was compiled with dirty source'); Sys.exit(1); diff --git a/extra/haxelib_src/src/haxelib/Data.hx b/extra/haxelib_src/src/haxelib/Data.hx index 98799ae5..2f4e2273 100644 --- a/extra/haxelib_src/src/haxelib/Data.hx +++ b/extra/haxelib_src/src/haxelib/Data.hx @@ -49,6 +49,7 @@ typedef ProjectInfos = { var desc : String; var website : String; var owner : String; + var contributors : Array<{ name:String, fullname:String }>; var license : String; var curversion : String; var downloads : Int; diff --git a/extra/haxelib_src/src/haxelib/client/Main.hx b/extra/haxelib_src/src/haxelib/client/Main.hx index 3f039668..997e33c2 100644 --- a/extra/haxelib_src/src/haxelib/client/Main.hx +++ b/extra/haxelib_src/src/haxelib/client/Main.hx @@ -21,6 +21,7 @@ */ package haxelib.client; +import haxelib.client.Util.*; import haxe.crypto.Md5; import haxe.*; import haxe.ds.*; @@ -54,8 +55,10 @@ class ProgressOut extends haxe.io.Output { var o : haxe.io.Output; var cur : Int; + var curReadable : Float; var startSize : Int; var max : Null; + var maxReadable : Null; var start : Float; public function new(o, currentSize) { @@ -67,10 +70,20 @@ class ProgressOut extends haxe.io.Output { function report(n) { cur += n; + + var tag : String = ((max != null ? max : cur) / 1000000) > 1 ? "MB" : "KB"; + + curReadable = tag == "MB" ? cur / 1000000 : cur / 1000; + curReadable = Math.round( curReadable * 100 ) / 100; // 12.34 precision. + if( max == null ) - Sys.print(cur+" bytes\r"); - else - Sys.print(cur+"/"+max+" ("+Std.int((cur*100.0)/max)+"%)\r"); + Sys.print('${curReadable} ${tag}\r'); + else { + maxReadable = tag == "MB" ? max / 1000000 : max / 1000; + maxReadable = Math.round( maxReadable * 100 ) / 100; // 12.34 precision. + + Sys.print('${curReadable}${tag} / ${maxReadable}${tag} (${Std.int((cur*100.0)/max)}%)\r'); + } } public override function writeByte(c) { @@ -87,12 +100,18 @@ class ProgressOut extends haxe.io.Output { public override function close() { super.close(); o.close(); + var time = Timer.stamp() - start; var downloadedBytes = cur - startSize; - var speed = (downloadedBytes / time) / 1024; + var speed = (downloadedBytes / time) / 1000; time = Std.int(time * 10) / 10; speed = Std.int(speed * 10) / 10; - Sys.print("Download complete : "+downloadedBytes+" bytes in "+time+"s ("+speed+"KB/s)\n"); + + var tag : String = (downloadedBytes / 1000000) > 1 ? "MB" : "KB"; + var readableBytes : Float = (tag == "MB") ? downloadedBytes / 1000000 : downloadedBytes / 1000; + readableBytes = Math.round( readableBytes * 100 ) / 100; // 12.34 precision. + + Sys.println('Download complete: ${readableBytes}${tag} in ${time}s (${speed}KB/s)'); } public override function prepare(m) { @@ -140,11 +159,13 @@ class Main { static var REPNAME = "lib"; static var REPODIR = ".haxelib"; static var SERVER = { + protocol : "https", host : "lib.haxe.org", - port : 80, + port : 443, dir : "", url : "index.n", apiVersion : "3.0", + noSsl : false }; static var IS_WINDOWS = (Sys.systemName() == "Windows"); @@ -156,45 +177,6 @@ class Main { var isHaxelibRun : Bool; var alreadyUpdatedVcsDependencies:Map = new Map(); - macro static function rethrow(e) { - return if (haxe.macro.Context.defined("neko")) - macro neko.Lib.rethrow(e); - else - macro throw e; - } - - macro static function getHaxelibVersion() { - var haxelibJson:Infos = Json.parse(File.getContent("haxelib.json")); - return macro $v{haxelibJson.version}; - } - - macro static function getHaxelibVersionLong() { - var version:String = VERSION; - var p; - try { - //get commit sha - p = new sys.io.Process("git", ["rev-parse", "HEAD"]); - var sha = p.stdout.readAll().toString().trim(); - p.close(); - - //check to see if there is changes, staged or not - p = new sys.io.Process("git", ["status", "--porcelain"]); - var changes = p.stdout.readAll().toString().trim(); - p.close(); - - version += switch(changes) { - case "": - ' ($sha)'; - case _: - ' ($sha - dirty)'; - } - return macro $v{version}; - } catch(e:Dynamic) { - if (p != null) p.close(); - return macro $v{version}; - } - } - function new() { args = Sys.args(); isHaxelibRun = (Sys.getEnv("HAXELIB_RUN_NAME") == HAXELIB_LIBNAME); @@ -213,7 +195,8 @@ class Main { addCommand("info", info, "list information on a given library", Information); addCommand("user", user, "list information on a given user", Information); addCommand("config", config, "print the repository path", Information, false); - addCommand("path", path, "give paths to libraries", Information, false); + addCommand("path", path, "give paths to libraries' sources and necessary build definitions", Information, false); + addCommand("libpath", libpath, "returns the root path of a library", Information, false); addCommand("version", version, "print the currently used haxelib version", Information, false); addCommand("help", usage, "display this list of options", Information, false); @@ -238,16 +221,39 @@ class Main { initSite(); } + function retry(func:Void -> R, numTries:Int = 3) { + var hasRetried = false; + + while (numTries-- > 0) { + try { + var result = func(); + + if (hasRetried) print("retry sucessful"); + + return result; + } catch (e:Dynamic) { + if ( e == "Blocked") { + print("Failed. Triggering retry due to HTTP timeout"); + hasRetried = true; + } + else { + throw 'Failed with error: $e'; + } + } + } + throw 'Failed due to HTTP timeout after multiple retries'; + } + function checkUpdate() { - var latest = try site.getLatestVersion(HAXELIB_LIBNAME) catch (_:Dynamic) null; + var latest = try retry(site.getLatestVersion.bind(HAXELIB_LIBNAME)) catch (_:Dynamic) null; if (latest != null && latest > VERSION) print('\nA new version ($latest) of haxelib is available.\nDo `haxelib --global update $HAXELIB_LIBNAME` to get the latest version.\n'); } function initSite() { - siteUrl = "http://" + SERVER.host + ":" + SERVER.port + "/" + SERVER.dir; + siteUrl = SERVER.protocol + "://" + SERVER.host + ":" + SERVER.port + "/" + SERVER.dir; var remotingUrl = siteUrl + "api/" + SERVER.apiVersion + "/" + SERVER.url; - site = new SiteProxy(haxe.remoting.HttpConnection.urlConnect(remotingUrl).api); + site = new SiteProxy(haxe.remoting.HttpConnection.urlConnect(remotingUrl).resolve("api")); } function param( name, ?passwd ) { @@ -258,6 +264,7 @@ class Main { var s = new StringBuf(); do switch Sys.getChar(false) { case 10, 13: break; + case 0: // ignore (windows bug) case c: s.addChar(c); } while (true); @@ -278,12 +285,23 @@ class Main { } function version() { - print(VERSION_LONG); + var params = paramOpt(); + if ( params == null ) + print(VERSION_LONG); + else { + Sys.stderr().writeString('no parameters expected, got: ${params}\n'); + Sys.exit(1); + } } function usage() { var cats = []; - var maxLength = 0; + var maxLength = Lambda.fold(Reflect.fields(ABOUT_SETTINGS), function(opt, max) { + var fullOption = '--' + ~/([A-Z])/g.replace(opt, "-$1").toLowerCase(); + var len = fullOption.length; + return len > max ? len : max; + }, 0); + for( c in commands ) { if (c.name.length > maxLength) maxLength = c.name.length; if (c.cat.match(Deprecated(_))) continue; @@ -292,7 +310,7 @@ class Main { else cats[i].push(c); } - print('Haxe Library Manager $VERSION - (c)2006-2017 Haxe Foundation'); + print('Haxe Library Manager $VERSION - (c)2006-2019 Haxe Foundation'); print(" Usage: haxelib [command] [options]"); for (cat in cats) { @@ -303,8 +321,10 @@ class Main { } print(" Available switches"); - for (f in Reflect.fields(ABOUT_SETTINGS)) - print(' --' + f.rpad(' ', maxLength-2) + ": " + Reflect.field(ABOUT_SETTINGS, f)); + for (f in Reflect.fields(ABOUT_SETTINGS)) { + var option = ~/([A-Z])/g.replace(f, "-$1").toLowerCase().rpad(' ', maxLength-2); + print(' --' + option + ": " + Reflect.field(ABOUT_SETTINGS, f)); + } } static var ABOUT_SETTINGS = { global : "force global repo if a local one exists", @@ -314,6 +334,7 @@ class Main { always : "answer all questions with yes", never : "answer all questions with no", system : "run bundled haxelib version instead of latest update", + skipDependencies : "do not install dependencies", } var settings: { @@ -324,6 +345,7 @@ class Main { never : Bool, global : Bool, system : Bool, + skipDependencies : Bool, }; function process() { argcur = 0; @@ -336,6 +358,7 @@ class Main { flat: false, global: false, system: false, + skipDependencies: false, }; function parseSwitch(s:String) { @@ -348,6 +371,34 @@ class Main { None; } + var remoteIsSet = false; + function setupRemote(path:String) { + var r = ~/^(?:(https?):\/\/)?([^:\/]+)(?::([0-9]+))?\/?(.*)$/; + if( !r.match(path) ) + throw "Invalid repository format '"+path+"'"; + SERVER.protocol = switch (r.matched(1)) { + case null: + SERVER.noSsl ? "http" : "https"; + case protocol: + protocol; + } + SERVER.host = r.matched(2); + SERVER.port = switch (r.matched(3)) { + case null: + switch (SERVER.protocol) { + case "https": 443; + case "http": 80; + case protocol: throw 'unknown default port for $protocol'; + } + case portStr: + Std.parseInt(portStr); + } + SERVER.dir = r.matched(4); + if (SERVER.dir.length > 0 && !SERVER.dir.endsWith("/")) SERVER.dir += "/"; + initSite(); + remoteIsSet = true; + } + while ( argcur < args.length) { var a = args[argcur++]; switch( a ) { @@ -369,22 +420,15 @@ class Main { case "-notimeout": haxe.remoting.HttpConnection.TIMEOUT = 0; case "-R": - var path = args[argcur++]; - var r = ~/^(http:\/\/)?([^:\/]+)(:[0-9]+)?\/?(.*)$/; - if( !r.match(path) ) - throw "Invalid repository format '"+path+"'"; - SERVER.host = r.matched(2); - if( r.matched(3) != null ) - SERVER.port = Std.parseInt(r.matched(3).substr(1)); - SERVER.dir = r.matched(4); - if (SERVER.dir.length > 0 && !SERVER.dir.endsWith("/")) SERVER.dir += "/"; - initSite(); + setupRemote(args[argcur++]); case "--debug": settings.debug = true; settings.quiet = false; case "--quiet": settings.debug = false; settings.quiet = true; + case "--skip-dependencies": + settings.skipDependencies = true; case parseSwitch(_) => Some(s) if (Reflect.hasField(settings, s)): //if (!Reflect.hasField(settings, s)) { //print('unknown switch $a'); @@ -398,13 +442,24 @@ class Main { rest.push(a); } } + if(!remoteIsSet) { + switch(Sys.getEnv("HAXELIB_REMOTE")) { + case null: + case path: setupRemote(path); + } + } if (!isHaxelibRun && !settings.system) { var rep = try getGlobalRepository() catch (_:Dynamic) null; if (rep != null && FileSystem.exists(rep + HAXELIB_LIBNAME)) { argcur = 0; // send all arguments - doRun(rep, HAXELIB_LIBNAME, null); - return; + try { + doRun(rep, HAXELIB_LIBNAME, null); + return; + } catch(e:Dynamic) { + Sys.println('Warning: failed to run updated haxelib: $e'); + Sys.println('Warning: resorting to system haxelib...'); + } } } @@ -446,9 +501,10 @@ class Main { print("Host "+SERVER.host+" was not found"); print("Please ensure that your internet connection is on"); print("If you don't have an internet connection or if you are behing a proxy"); - print("please download manually the file from http://lib.haxe.org/files/3.0/"); + print("please download manually the file from https://lib.haxe.org/files/3.0/"); print("and run 'haxelib local ' to install the Library."); print("You can also setup the proxy with 'haxelib proxy'."); + print(haxe.CallStack.toString(haxe.CallStack.exceptionStack())); Sys.exit(1); } if( e == "Blocked" ) { @@ -483,7 +539,7 @@ class Main { function search() { var word = param("Search word"); - var l = site.search(word); + var l = retry(site.search.bind(word)); for( s in l ) print(s.name); print(l.length+" libraries found"); @@ -491,7 +547,7 @@ class Main { function info() { var prj = param("Library name"); - var inf = site.infos(prj); + var inf = retry(site.infos.bind(prj)); print("Name: "+inf.name); print("Tags: "+inf.tags.join(", ")); print("Desc: "+inf.desc); @@ -508,7 +564,7 @@ class Main { function user() { var uname = param("User name"); - var inf = site.user(uname); + var inf = retry(site.user.bind(uname)); print("Id: "+inf.name); print("Name: "+inf.fullname); print("Mail: "+inf.email); @@ -532,7 +588,7 @@ class Main { if( pass != pass2 ) throw "Password does not match"; pass = Md5.encode(pass); - site.register(name,pass,email,fullname); + retry(site.register.bind(name,pass,email,fullname)); return pass; } @@ -588,18 +644,18 @@ class Main { } while ( infos.contributors.indexOf(user) == -1 ); var password; - if( site.isNewUser(user) ) { + if( retry(site.isNewUser.bind(user)) ) { print("This is your first submission as '"+user+"'"); print("Please enter the following information for registration"); password = doRegister(user); } else { password = readPassword(user); } - site.checkDeveloper(infos.name,user); + retry(site.checkDeveloper.bind(infos.name,user)); // check dependencies validity for( d in infos.dependencies ) { - var infos = site.infos(d.name); + var infos = retry(site.infos.bind(d.name)); if( d.version == "" ) continue; var found = false; @@ -614,17 +670,17 @@ class Main { // check if this version already exists - var sinfos = try site.infos(infos.name) catch( _ : Dynamic ) null; + var sinfos = try retry(site.infos.bind(infos.name)) catch( _ : Dynamic ) null; if( sinfos != null ) for( v in sinfos.versions ) if( v.name == infos.version && !ask("You're about to overwrite existing version '"+v.name+"', please confirm") ) throw "Aborted"; // query a submit id that will identify the file - var id = site.getSubmitId(); + var id = retry(site.getSubmitId.bind()); // directly send the file data over Http - var h = createHttpRequest("http://"+SERVER.host+":"+SERVER.port+"/"+SERVER.url); + var h = createHttpRequest(SERVER.protocol+"://"+SERVER.host+":"+SERVER.port+"/"+SERVER.url); h.onError = function(e) throw e; h.onData = print; @@ -642,14 +698,14 @@ class Main { if (haxe.remoting.HttpConnection.TIMEOUT != 0) // don't ignore -notimeout haxe.remoting.HttpConnection.TIMEOUT = 1000; // ask the server to register the sent file - var msg = site.processSubmit(id,user,password); + var msg = retry(site.processSubmit.bind(id,user,password)); print(msg); } function readPassword(user:String, prompt = "Password"):String { var password = Md5.encode(param(prompt,true)); var attempts = 5; - while (!site.checkPassword(user, password)) { + while (!retry(site.checkPassword.bind(user, password))) { print('Invalid password for $user'); if (--attempts == 0) throw 'Failed to input correct password'; @@ -680,7 +736,7 @@ class Main { doInstallFile(rep, prj, true, true); return; } - + if ( prj.endsWith("haxelib.json") ) { installFromHaxelibJson( rep, prj); @@ -689,7 +745,7 @@ class Main { } // Name provided that wasn't a local hxml or zip, so try to install it from server - var inf = site.infos(prj); + var inf = retry(site.infos.bind(prj)); var reqversion = paramOpt(); var version = getVersion(inf, reqversion); doInstall(rep,inf.name,version,version == inf.getLatest()); @@ -720,10 +776,11 @@ class Main { var libsToInstall = new Map(); function processHxml(path) { - var hxml = sys.io.File.getContent(path); + var hxml = normalizeHxml(sys.io.File.getContent(path)); var lines = hxml.split("\n"); for (l in lines) { l = l.trim(); + for (target in targets.keys()) if (l.startsWith(target)) { var lib = targets[target]; @@ -731,9 +788,10 @@ class Main { libsToInstall[lib] = { name: lib, version: null, type:"haxelib", url: null, branch: null, subDir: null } } - if (l.startsWith("-lib")) + var libraryFlagEReg = ~/^(-lib|-L|--library)\b/; + if (libraryFlagEReg.match(l)) { - var key = l.substr(5).trim(); + var key = libraryFlagEReg.matchedRight().trim(); var parts = ~/:/.split(key); var libName = parts[0]; var libVersion:String = null; @@ -741,12 +799,12 @@ class Main { var url:String = null; var subDir:String = null; var type:String; - + if ( parts.length > 1 ) { if ( parts[1].startsWith("git:") ) { - + type = "git"; var urlParts = parts[1].substr(4).split("#"); url = urlParts[0]; @@ -776,7 +834,7 @@ class Main { } processHxml(path); - if (libsToInstall.empty()) + if (Lambda.empty(libsToInstall)) return; // Check the version numbers are all good @@ -789,7 +847,7 @@ class Main { // Do not check git repository infos continue; } - var inf = site.infos(l.name); + var inf = retry(site.infos.bind(l.name)); l.version = getVersion(inf, l.version); } @@ -812,7 +870,7 @@ class Main { } } } - + function installFromHaxelibJson( rep:String, path:String ) { doInstallDependencies(rep, Data.readData(File.getContent(path), false).dependencies); @@ -831,51 +889,99 @@ class Main { } } - function doInstall( rep, project, version, setcurrent ) { - // check if exists already - if( FileSystem.exists(rep+Data.safe(project)+"/"+Data.safe(version)) ) { - print("You already have "+project+" version "+version+" installed"); - setCurrent(rep,project,version,true); - return; - } + // strip comments, trim whitespace from each line and remove empty lines + function normalizeHxml(hxmlContents: String) { + return ~/\r?\n/g.split(hxmlContents).map(StringTools.trim).filter(function(line) { + return line != "" && !line.startsWith("#"); + }).join('\n'); + } - // download to temporary file - var filename = Data.fileName(project,version); - var filepath = rep+filename; - var out = try File.append(filepath,true) catch (e:Dynamic) throw 'Failed to write to $filepath: $e'; + // maxRedirect set to 20, which is most browsers' default value according to https://stackoverflow.com/a/36041063/267998 + function download(fileUrl:String, outPath:String, maxRedirect = 20):Void { + var out = try File.append(outPath,true) catch (e:Dynamic) throw 'Failed to write to $outPath: $e'; out.seek(0, SeekEnd); - var h = createHttpRequest(siteUrl+Data.REPOSITORY+"/"+filename); + var h = createHttpRequest(fileUrl); var currentSize = out.tell(); if (currentSize > 0) h.addHeader("range", "bytes="+currentSize + "-"); - var progress = if (settings.quiet == false ) + var progress = if (settings != null && settings.quiet == false ) new ProgressOut(out, currentSize); else out; - var has416Status = false; + var httpStatus = -1; + var redirectedLocation = null; h.onStatus = function(status) { - // 416 Requested Range Not Satisfiable, which means that we probably have a fully downloaded file already - if (status == 416) has416Status = true; + httpStatus = status; + switch (httpStatus) { + case 301, 302, 307, 308: + switch (h.responseHeaders.get("Location")) { + case null: + throw 'Request to $fileUrl responded with $httpStatus, ${h.responseHeaders}'; + case location: + redirectedLocation = location; + } + default: + // TODO? + } }; h.onError = function(e) { progress.close(); - // if we reached onError, because of 416 status code, it's probably okay and we should try unzipping the file - if (!has416Status) { - FileSystem.deleteFile(filepath); - throw e; + switch(httpStatus) { + case 416: + // 416 Requested Range Not Satisfiable, which means that we probably have a fully downloaded file already + // if we reached onError, because of 416 status code, it's probably okay and we should try unzipping the file + default: + FileSystem.deleteFile(outPath); + throw e; } }; + h.customRequest(false, progress); + + if (redirectedLocation != null) { + FileSystem.deleteFile(outPath); + + if (maxRedirect > 0) { + download(redirectedLocation, outPath, maxRedirect - 1); + } else { + throw "Too many redirects."; + } + } + } + + function doInstall( rep, project, version, setcurrent ) { + // check if exists already + if( FileSystem.exists(Path.join([rep, Data.safe(project), Data.safe(version)])) ) { + print("You already have "+project+" version "+version+" installed"); + setCurrent(rep,project,version,true); + return; + } + + // download to temporary file + var filename = Data.fileName(project,version); + var filepath = Path.join([rep, filename]); + print("Downloading "+filename+"..."); - h.customRequest(false,progress); - doInstallFile(rep,filepath, setcurrent); + var maxRetry = 3; + var fileUrl = Path.join([siteUrl, Data.REPOSITORY, filename]); + for (i in 0...maxRetry) { + try { + download(fileUrl, filepath); + break; + } catch (e:Dynamic) { + print('Failed to download ${fileUrl}. (${i+1}/${maxRetry})\n${e}'); + Sys.sleep(1); + } + } + + doInstallFile(rep, filepath, setcurrent); try { - site.postInstall(project, version); + retry(site.postInstall.bind(project, version)); } catch (e:Dynamic) {} } @@ -958,6 +1064,8 @@ class Main { } function doInstallDependencies( rep:String, dependencies:Array ) { + if( settings.skipDependencies ) return; + for( d in dependencies ) { if( d.version == "" ) { var pdir = rep + Data.safe(d.name); @@ -969,12 +1077,13 @@ class Main { } if( d.version == "" && d.type == DependencyType.Haxelib ) - d.version = site.getLatestVersion(d.name); + d.version = retry(site.getLatestVersion.bind(d.name)); print("Installing dependency "+d.name+" "+d.version); switch d.type { case Haxelib: - doInstall(rep, d.name, d.version, false); + var info = retry(site.infos.bind(d.name)); + doInstall(rep, info.name, d.version, false); case Git: useVcs(VcsID.Git, function(vcs) doVcsInstall(rep, vcs, d.name, d.url, d.branch, d.subDir, d.version)); case Mercurial: @@ -983,8 +1092,8 @@ class Main { } } - static public function getConfigFile():String { - var home = null; + static public function getHomePath():String{ + var home:String = null; if (IS_WINDOWS) { home = Sys.getEnv("USERPROFILE"); if (home == null) { @@ -1000,7 +1109,11 @@ class Main { if (home == null) throw "Could not determine home path. Please ensure that HOME environment variable is set."; } - return Path.addTrailingSlash(home) + ".haxelib"; + return home; + } + + static public function getConfigFile():String { + return Path.addTrailingSlash( getHomePath() ) + ".haxelib"; } function getGlobalRepositoryPath(create = false):String { @@ -1052,12 +1165,28 @@ class Main { } function getRepository():String { - if (!settings.global && FileSystem.exists(REPODIR) && FileSystem.isDirectory(REPODIR)) - return Path.addTrailingSlash(FileSystem.fullPath(REPODIR)); + if (!settings.global) + return switch getLocalRepository() { + case null: getGlobalRepository(); + case repo: Path.addTrailingSlash(FileSystem.fullPath(repo)); + } else return getGlobalRepository(); } + function getLocalRepository():Null { + var dir = Path.removeTrailingSlashes(Sys.getCwd()); + while (dir != null) { + var repo = Path.addTrailingSlash(dir) + REPODIR; + if(FileSystem.exists(repo) && FileSystem.isDirectory(repo)) { + return repo; + } else { + dir = new Path(dir).dir; + } + } + return null; + } + function getGlobalRepository():String { var rep = getGlobalRepositoryPath(true); if (!FileSystem.exists(rep)) @@ -1080,10 +1209,22 @@ class Main { } var line = param("Path"); - if (line != "") + if (line != "") { + var splitLine = line.split("/"); + if(splitLine[0] == "~") { + var home = getHomePath(); + + for(i in 1...splitLine.length) { + home += "/" + splitLine[i]; + } + line = home; + } + rep = line; + } + - rep = try FileSystem.fullPath(rep) catch (_:Dynamic) rep; + rep = try absolutePath(rep) catch (e:Dynamic) rep; if (isSamePath(rep, configFile)) throw "Can't use "+rep+" because it is reserved for config file"; @@ -1098,12 +1239,20 @@ class Main { print(getRepository()); } - function getCurrent( dir ) { - return (FileSystem.exists(dir+"/.dev")) ? "dev" : File.getContent(dir + "/.current").trim(); + function getCurrent( proj, dir ) { + return try { getDev(dir); return "dev"; } catch( e : Dynamic ) try File.getContent(dir + "/.current").trim() catch( e : Dynamic ) throw "Library "+proj+" is not installed : run 'haxelib install "+proj+"'"; } function getDev( dir ) { - return File.getContent(dir + "/.dev").trim(); + var path = File.getContent(dir + "/.dev").trim(); + path = ~/%([A-Za-z0-9_]+)%/g.map(path,function(r) { + var env = Sys.getEnv(r.matched(1)); + return env == null ? "" : env; + }); + var filters = try Sys.getEnv("HAXELIB_DEV_FILTER").split(";") catch( e : Dynamic ) null; + if( filters != null && !filters.exists(function(flt) return StringTools.startsWith(path.toLowerCase().split("\\").join("/"),flt.toLowerCase().split("\\").join("/"))) ) + throw "This .dev is filtered"; + return path; } function list() { @@ -1117,7 +1266,7 @@ class Main { if( p.charAt(0) == "." ) continue; - var current = try getCurrent(rep + p) catch(e:Dynamic) continue; + var current = try getCurrent("", rep + p) catch(e:Dynamic) continue; var dev = try getDev(rep + p) catch( e : Dynamic ) null; var semvers = []; @@ -1220,16 +1369,19 @@ class Main { var success = vcs.update(p); state.updated = success; + if(success) + print(p + " was updated"); Sys.setCwd(oldCwd); } else { - var latest = try site.getLatestVersion(p) catch( e : Dynamic ) { Sys.println(e); return; }; + var latest = try retry(site.getLatestVersion.bind(p)) catch( e : Dynamic ) { Sys.println(e); return; }; if( !FileSystem.exists(pdir+"/"+Data.safe(latest)) ) { if( state.prompt ) { if (!ask("Update "+p+" to "+latest)) return; } - doInstall(state.rep, p, latest,true); + var info = retry(site.infos.bind(p)); + doInstall(state.rep, info.name, latest,true); state.updated = true; } else setCurrent(state.rep, p, latest, true); @@ -1278,8 +1430,10 @@ class Main { var vdir = pdir + "/" + Data.safe(version); if( !FileSystem.exists(vdir) ){ print("Library "+prj+" version "+version+" is not installed"); - if(ask("Would you like to install it?")) - doInstall(rep, prj, version, true); + if(ask("Would you like to install it?")) { + var info = retry(site.infos.bind(prj)); + doInstall(rep, info.name, version, true); + } return; } if( File.getContent(pdir + "/.current").trim() == version ) @@ -1290,14 +1444,16 @@ class Main { print("Library "+prj+" current version is now "+version); } - function checkRec( rep : String, prj : String, version : String, l : List<{ project : String, version : String, dir : String, info : Infos }> ) { + function checkRec( rep : String, prj : String, version : String, l : List<{ project : String, version : String, dir : String, info : Infos }>, ?returnDependencies : Bool = true ) { var pdir = rep + Data.safe(prj); - if( !FileSystem.exists(pdir) ) - throw "Library "+prj+" is not installed : run 'haxelib install "+prj+"'"; - var version = if( version != null ) version else getCurrent(pdir); + var explicitVersion = version != null; + var version = if( version != null ) version else getCurrent(prj, pdir); var dev = try getDev(pdir) catch (_:Dynamic) null; - var vdir = if (dev != null) dev else pdir + "/" + Data.safe(version); + var vdir = pdir + "/" + Data.safe(version); + + if( dev != null && (!explicitVersion || !FileSystem.exists(vdir)) ) + vdir = dev; if( !FileSystem.exists(vdir) ) throw "Library "+prj+" version "+version+" is not installed"; @@ -1306,14 +1462,16 @@ class Main { if( p.project == prj ) { if( p.version == version ) return; - throw "Library "+prj+" has two version included "+version+" and "+p.version; + throw "Library "+prj+" has two versions included : "+version+" and "+p.version; } var json = try File.getContent(vdir+"/"+Data.JSON) catch( e : Dynamic ) null; - var inf = Data.readData(json,false); + var inf = Data.readData(json, json != null); l.add({ project : prj, version : version, dir : Path.addTrailingSlash(vdir), info: inf }); - for( d in inf.dependencies ) - if( !Lambda.exists(l, function(e) return e.project == d.name) ) - checkRec(rep,d.name,if( d.version == "" ) null else d.version,l); + if( returnDependencies ) { + for( d in inf.dependencies ) + if( !Lambda.exists(l, function(e) return e.project == d.name) ) + checkRec(rep,d.name,if( d.version == "" ) null else d.version,l); + } } function path() { @@ -1321,7 +1479,11 @@ class Main { var list = new List(); while( argcur < args.length ) { var a = args[argcur++].split(":"); - checkRec(rep, a[0],a[1],list); + try { + checkRec(rep, a[0], a[1], list); + } catch(e:Dynamic) { + throw 'Cannot process $a: $e'; + } } for( d in list ) { var ndir = d.dir + "ndll"; @@ -1329,8 +1491,7 @@ class Main { Sys.println('-L $ndir/'); try { - var f = File.getContent(d.dir + "extraParams.hxml"); - Sys.println(f.trim()); + Sys.println(normalizeHxml(File.getContent(d.dir + "extraParams.hxml"))); } catch(_:Dynamic) {} var dir = d.dir; @@ -1344,6 +1505,16 @@ class Main { } } + function libpath( ) { + var rep = getRepository(); + while( argcur < args.length ) { + var a = args[argcur++].split(":"); + var results = new List(); + checkRec(rep, a[0], a[1], results, false); + if( !results.isEmpty() ) Sys.println(results.first().dir); + } + } + function dev() { var rep = getRepository(); var project = param("Library"); @@ -1405,58 +1576,50 @@ class Main { } function doVcsInstall(rep:String, vcs:Vcs, libName:String, url:String, branch:String, subDir:String, version:String) { - + var proj = rep + Data.safe(libName); var libPath = proj + "/" + vcs.directory; - - var jsonPath = libPath + "/haxelib.json"; - + + function doVcsClone() { + print("Installing " +libName + " from " +url + ( branch != null ? " branch: " + branch : "" )); + try { + vcs.clone(libPath, url, branch, version); + } catch(error:VcsError) { + deleteRec(libPath); + var message = switch(error) { + case VcsUnavailable(vcs): + 'Could not use ${vcs.executable}, please make sure it is installed and available in your PATH.'; + case CantCloneRepo(vcs, repo, stderr): + 'Could not clone ${vcs.name} repository' + (stderr != null ? ":\n" + stderr : "."); + case CantCheckoutBranch(vcs, branch, stderr): + 'Could not checkout branch, tag or path "$branch": ' + stderr; + case CantCheckoutVersion(vcs, version, stderr): + 'Could not checkout tag "$version": ' + stderr; + }; + throw message; + } + } + if ( FileSystem.exists(proj + "/" + Data.safe(vcs.directory)) ) { print("You already have "+libName+" version "+vcs.directory+" installed."); - + var wasUpdated = this.alreadyUpdatedVcsDependencies.exists(libName); var currentBranch = if (wasUpdated) this.alreadyUpdatedVcsDependencies.get(libName) else null; - + if (branch != null && (!wasUpdated || (wasUpdated && currentBranch != branch)) && ask("Overwrite branch: " + (currentBranch == null?"":"\"" + currentBranch + "\"") + " with \"" + branch + "\"")) { deleteRec(libPath); - this.alreadyUpdatedVcsDependencies.set(libName, branch); + doVcsClone(); } - else + else if (!wasUpdated) { - if (!wasUpdated) - { - print("Updating " + libName+" version " + vcs.directory + " ..."); - this.alreadyUpdatedVcsDependencies.set(libName, branch); - updateByName(rep, libName); - setCurrent(rep, libName, vcs.directory, true); - - if(FileSystem.exists(jsonPath)) - doInstallDependencies(rep, Data.readData(File.getContent(jsonPath), false).dependencies); - } - return; + print("Updating " + libName+" version " + vcs.directory + " ..."); + updateByName(rep, libName); } - } - - print("Installing " +libName + " from " +url + ( branch != null ? " branch: " + branch : "" )); - - try { - vcs.clone(libPath, url, branch, version); - } catch(error:VcsError) { - deleteRec(libPath); - var message = switch(error) { - case VcsUnavailable(vcs): - 'Could not use ${vcs.executable}, please make sure it is installed and available in your PATH.'; - case CantCloneRepo(vcs, repo, stderr): - 'Could not clone ${vcs.name} repository' + (stderr != null ? ":\n" + stderr : "."); - case CantCheckoutBranch(vcs, branch, stderr): - 'Could not checkout branch, tag or path "$branch": ' + stderr; - case CantCheckoutVersion(vcs, version, stderr): - 'Could not checkout tag "$version": ' + stderr; - }; - throw message; + } else { + doVcsClone(); } // finish it! @@ -1471,6 +1634,7 @@ class Main { this.alreadyUpdatedVcsDependencies.set(libName, branch); + var jsonPath = libPath + "/haxelib.json"; if(FileSystem.exists(jsonPath)) doInstallDependencies(rep, Data.readData(File.getContent(jsonPath), false).dependencies); } @@ -1483,13 +1647,26 @@ class Main { doRun(rep, temp[0], temp[1]); } + function haxeVersion():SemVer { + if(__haxeVersion == null) { + var p = new Process('haxe', ['--version']); + if(p.exitCode() != 0) { + throw 'Cannot get haxe version: ${p.stderr.readAll().toString()}'; + } + var str = p.stdout.readAll().toString(); + __haxeVersion = SemVer.ofString(str.split('+')[0]); + } + return __haxeVersion; + } + static var __haxeVersion:SemVer; + function doRun( rep:String, project:String, version:String ) { var pdir = rep + Data.safe(project); if( !FileSystem.exists(pdir) ) throw "Library "+project+" is not installed"; pdir += "/"; if (version == null) - version = getCurrent(pdir); + version = getCurrent(project, pdir); var dev = try getDev(pdir) catch ( e : Dynamic ) null; var vdir = dev != null ? dev : pdir + Data.safe(version); @@ -1503,24 +1680,15 @@ class Main { Sys.setCwd(vdir); var callArgs = - if (infos.main == null) { - if( !FileSystem.exists('$vdir/run.n') ) - throw 'Library $project version $version does not have a run script'; + if (infos.main != null) { + runScriptArgs(project, infos.main, infos.dependencies); + } else if(FileSystem.exists('$vdir/run.n')) { ["neko", vdir + "/run.n"]; + } else if(FileSystem.exists('$vdir/Run.hx')) { + runScriptArgs(project, 'Run', infos.dependencies); } else { - var deps = infos.dependencies.toArray(); - deps.push( { name: project, version: DependencyVersion.DEFAULT } ); - var args = []; - for (d in deps) { - args.push('-lib'); - args.push(d.name + if (d.version == '') '' else ':${d.version}'); - } - args.unshift('haxe'); - args.push('--run'); - args.push(infos.main); - args; + throw 'Library $project version $version does not have a run script'; } - for (i in argcur...args.length) callArgs.push(args[i]); @@ -1530,6 +1698,24 @@ class Main { Sys.exit(Sys.command(cmd, callArgs)); } + function runScriptArgs(project:String, main:String, dependencies:Dependencies):Array { + var deps = dependencies.toArray(); + deps.push( { name: project, version: DependencyVersion.DEFAULT } ); + var args = []; + // TODO: change comparison to '4.0.0' upon Haxe 4.0 release + if(settings.global && SemVer.compare(haxeVersion(), SemVer.ofString('4.0.0-rc.5')) >= 0) { + args.push('--haxelib-global'); + } + for (d in deps) { + args.push('-lib'); + args.push(d.name + if (d.version == '') '' else ':${d.version}'); + } + args.unshift('haxe'); + args.push('--run'); + args.push(main); + return args; + } + function proxy() { var rep = getRepository(); var host = param("Proxy host"); @@ -1551,9 +1737,10 @@ class Main { }; Http.PROXY = proxy; print("Testing proxy..."); - try Http.requestUrl("http://www.google.com") catch( e : Dynamic ) { - print("Proxy connection failed"); - return; + try Http.requestUrl(SERVER.protocol + "://lib.haxe.org") catch( e : Dynamic ) { + if(!ask("Proxy connection failed. Use it anyway")) { + return; + } } File.saveContent(rep + "/.proxy", haxe.Serializer.run(proxy)); print("Proxy setup done"); @@ -1583,7 +1770,7 @@ class Main { } function newRepo() { - var path = #if (haxe_ver >= 3.2) FileSystem.absolutePath(REPODIR) #else REPODIR #end; + var path = absolutePath(REPODIR); var created = FsUtils.safeDir(path, true); if (created) print('Local repository created ($path)'); @@ -1592,7 +1779,7 @@ class Main { } function deleteRepo() { - var path = #if (haxe_ver >= 3.2) FileSystem.absolutePath(REPODIR) #else REPODIR #end; + var path = absolutePath(REPODIR); var deleted = FsUtils.deleteRec(path); if (deleted) print('Local repository deleted ($path)'); @@ -1606,9 +1793,31 @@ class Main { Sys.println(str); static function main() { - new Main().process(); + switch(Sys.getEnv("HAXELIB_NO_SSL")) { + case "1", "true": + SERVER.noSsl = true; + SERVER.protocol = "http"; + case _: + } + try { + new Main().process(); + } catch(e:Dynamic) { + for(arg in Sys.args()) { + if(arg == '--debug') { + Util.rethrow(e); + } + } + Sys.stderr().writeString(Std.string(e) + '\n'); + } } + // haxe 3.1.3 doesn't have FileSystem.absolutePath() + static function absolutePath(path:String) { + if (StringTools.startsWith(path, '/') || path.charAt(1) == ':' || StringTools.startsWith(path, '\\\\')) { + return path; + } + return haxe.io.Path.join([Sys.getCwd(), path]); + } // deprecated commands function local() { diff --git a/extra/haxelib_src/src/haxelib/client/Util.hx b/extra/haxelib_src/src/haxelib/client/Util.hx new file mode 100644 index 00000000..9eb5165b --- /dev/null +++ b/extra/haxelib_src/src/haxelib/client/Util.hx @@ -0,0 +1,55 @@ +package haxelib.client; + +using StringTools; + +class Util { + + macro static public function rethrow(e) { + return if (haxe.macro.Context.defined("neko")) + macro neko.Lib.rethrow(e); + else + macro throw e; + } + + #if macro + static function readVersionFromHaxelibJson() { + return haxe.Json.parse(sys.io.File.getContent("haxelib.json")).version; + } + #end + + macro static public function getHaxelibVersion() { + return macro $v{readVersionFromHaxelibJson()}; + } + + macro static public function getHaxelibVersionLong() { + var version:String = readVersionFromHaxelibJson(); + var p; + try { + //check if the .git folder exist + //prevent getting the git info of a parent directory + if (!sys.FileSystem.isDirectory(".git")) + throw "Not a git repo."; + + //get commit sha + p = new sys.io.Process("git", ["rev-parse", "HEAD"]); + var sha = p.stdout.readAll().toString().trim(); + p.close(); + + //check to see if there is changes, staged or not + p = new sys.io.Process("git", ["status", "--porcelain"]); + var changes = p.stdout.readAll().toString().trim(); + p.close(); + + version += switch(changes) { + case "": + ' ($sha)'; + case _: + ' ($sha - dirty)'; + } + return macro $v{version}; + } catch(e:Dynamic) { + if (p != null) p.close(); + return macro $v{version}; + } + } +} \ No newline at end of file diff --git a/extra/haxelib_src/src/haxelib/client/Vcs.hx b/extra/haxelib_src/src/haxelib/client/Vcs.hx index 31c393e3..9abd5941 100644 --- a/extra/haxelib_src/src/haxelib/client/Vcs.hx +++ b/extra/haxelib_src/src/haxelib/client/Vcs.hx @@ -134,7 +134,7 @@ class Vcs implements IVcs { switch (commandResult) { case {code: 0}: //pass case {code: code, out:out}: - if (!settings.debug) + if (!settings.debug) Sys.stderr().writeString(out); Sys.exit(code); } @@ -243,11 +243,11 @@ class Git extends Vcs { override public function update(libName:String):Bool { if ( - command(executable, ["diff", "--exit-code"]).code != 0 + command(executable, ["diff", "--exit-code", "--no-ext-diff"]).code != 0 || - command(executable, ["diff", "--cached", "--exit-code"]).code != 0 + command(executable, ["diff", "--cached", "--exit-code", "--no-ext-diff"]).code != 0 ) { - if (Cli.ask("Reset changes to " + libName + " " + name + " repo so we can pull latest version?")) { + if (Cli.ask("Reset changes to " + libName + " " + name + " repo so we can pull latest version")) { sure(command(executable, ["reset", "--hard"])); } else { if (!settings.quiet) @@ -286,7 +286,7 @@ class Git extends Vcs { Sys.setCwd(libPath); - + if (version != null && version != "") { var ret = command(executable, ["checkout", "tags/" + version]); if (ret.code != 0) @@ -328,7 +328,7 @@ class Mercurial extends Vcs { override public function update(libName:String):Bool { command(executable, ["pull"]); var summary = command(executable, ["summary"]).out; - var diff = command(executable, ["diff", "-U", "2", "--git", "--subrepos"]); + var diff = command(executable, ["diff", "-U", "2", "--git", "--subrepos", "--no-ext-diff"]); var status = command(executable, ["status"]); // get new pulled changesets: @@ -345,7 +345,7 @@ class Mercurial extends Vcs { if (diff.code + status.code + diff.out.length + status.out.length != 0) { if (!settings.quiet) Sys.println(diff.out); - if (Cli.ask("Reset changes to " + libName + " " + name + " repo so we can update to latest version?")) { + if (Cli.ask("Reset changes to " + libName + " " + name + " repo so we can update to latest version")) { sure(command(executable, ["update", "--clean"])); } else { changed = false; diff --git a/extra/haxelib_src/src/haxelib/server/FileStorage.hx b/extra/haxelib_src/src/haxelib/server/FileStorage.hx index 97922d68..371b6860 100644 --- a/extra/haxelib_src/src/haxelib/server/FileStorage.hx +++ b/extra/haxelib_src/src/haxelib/server/FileStorage.hx @@ -210,16 +210,17 @@ class S3FileStorage extends FileStorage { assertRelative(file); var s3Path = Path.join(['s3://${bucketName}', file]); var localFile:AbsPath = Path.join([localPath, file]); + FileSystem.createDirectory(Path.directory(localFile)); if (!FileSystem.exists(localFile)) { var request = transferClient.downloadFile(localFile, bucketName, file); while (!request.isDone()) { Sys.sleep(0.01); } - switch (request.getFailure()) { - case null: - //pass - case failure: - throw 'failed to download ${s3Path} to ${localPath}\n${failure}'; + if (!request.completedSuccessfully()) { + throw 'failed to download ${s3Path} to ${localFile}\n${request.getFailure()}'; + } + if (!FileSystem.exists(localFile)) { + throw 'failed to download ${s3Path} to ${localFile}'; } } return f(localFile); diff --git a/extra/haxelib_src/src/haxelib/server/Repo.hx b/extra/haxelib_src/src/haxelib/server/Repo.hx index 2bbf2fac..b9d3abcc 100644 --- a/extra/haxelib_src/src/haxelib/server/Repo.hx +++ b/extra/haxelib_src/src/haxelib/server/Repo.hx @@ -73,6 +73,7 @@ class Repo implements SiteApi { date : v.date }], owner : p.ownerObj.name, + contributors : [for (d in Developer.manager.search( $project==p.id)) {name: d.userObj.name, fullname: d.userObj.fullname}], website : p.website, license : p.license, downloads : totalDownloads, @@ -171,6 +172,10 @@ class Repo implements SiteApi { // create project if needed if( p == null ) { + if( devs[0].name != user ) { + throw 'A new project should be submitted by its owner, which is the first user in the contributors field (${devs[0].name})'; + } + p = new Project(); p.name = infos.name; p.description = infos.description; @@ -206,6 +211,7 @@ class Repo implements SiteApi { var otags = Tag.manager.search({ project : p.id }); var curtags = otags.map(function(t) return t.tag).join(":"); + var ownerChanged = devs[0].id != p.ownerObj.id; var devsChanged = (pdevs.length != devs.length); if (!devsChanged) { // same length, check whether elements are the same for (d in pdevs) { @@ -218,12 +224,15 @@ class Repo implements SiteApi { } // update public infos - if( devsChanged || infos.description != p.description || p.website != infos.url || p.license != infos.license || tags.join(":") != curtags ) { + if( ownerChanged || devsChanged || infos.description != p.description || p.website != infos.url || p.license != infos.license || tags.join(":") != curtags ) { if( u.id != p.ownerObj.id ) throw "Only project owner can modify project infos"; p.description = infos.description; p.website = infos.url; p.license = infos.license; + if( ownerChanged ) { + p.ownerObj = devs[0]; + } p.update(); if( devsChanged ) { for( d in pdevs ) diff --git a/extra/haxelib_src/src/legacyhaxelib/Main.hx b/extra/haxelib_src/src/legacyhaxelib/Main.hx index 45c04f38..5286c605 100644 --- a/extra/haxelib_src/src/legacyhaxelib/Main.hx +++ b/extra/haxelib_src/src/legacyhaxelib/Main.hx @@ -154,7 +154,7 @@ class Main { function initSite() { siteUrl = "http://"+SERVER.host+":"+SERVER.port+"/"+SERVER.dir+'/'; - site = new SiteProxy(haxe.remoting.HttpConnection.urlConnect(siteUrl+SERVER.url).api); + site = new SiteProxy(haxe.remoting.HttpConnection.urlConnect(siteUrl+SERVER.url).resolve("api")); } function param( name, ?passwd ) { @@ -952,7 +952,7 @@ class Main { var code = p.exitCode(); return { code:code, out: code == 0 ? p.stdout.readAll().toString() : p.stderr.readAll().toString() }; } - + function proxy() { var rep = getRepository(); var host = param("Proxy host"); diff --git a/extra/haxelib_src/src/website/Util.hx b/extra/haxelib_src/src/website/Util.hx new file mode 100644 index 00000000..f77737db --- /dev/null +++ b/extra/haxelib_src/src/website/Util.hx @@ -0,0 +1,65 @@ +package website; + +/** + * @author Mark Knol + */ +class Util { + private static var _MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + + public static function escape(str:String) return StringTools.htmlEscape(str, true); + + /** + Outputs to "xx-Jan 2019" (accurate=true) or "xx days/weeks ago" (accurate=false) + @param date should be format "yyyy-mm-dd" + **/ + public static function formatDate(date:String, accurate:Bool = false) { + var split = date.split("-"); + var target:Date = new Date(Std.parseInt(split[0]), Std.parseInt(split[1]) - 1, Std.parseInt(split[2]), 0, 0, 0); + + if (!accurate) { // loose date format + var minuteInMs = 1000 * 60; + var hourInMs = minuteInMs * 60; + var dayInMs = hourInMs * 24; + + var targetTime = target.getTime(); + + var now = Date.now().getTime(); + var remainingMs = now - targetTime; + + var days = Math.floor(remainingMs / dayInMs); + var years = Std.int(days / 356); + var months = Std.int(days / 30.4167); // should be accurate enough + var weeks = Std.int(days / 7); + + if (years == 0) { + if (months < 2) { + if (weeks < 1) { + if (days == 0) return 'today'; + if (days == 1) return '$days day ago'; + return '$days days ago'; + } else { + if (weeks == 1) return '$weeks week ago'; + else return '$weeks weeks ago'; + } + } else { + return '$months months ago'; + } + } else { + return years > 1 ? '$years years ago' : '$years year ago'; + } + } else { + var month = _MONTHS[target.getMonth()]; + var date = target.getDate(); + var day = if (date < 10) '0$date' else '$date'; + return '$day-$month ${target.getFullYear()}'; + } + } + + public static function syntaxHighlightHTML(code:String):String { + var html = code; + html = ~/(("|')(.+?)?\2)/g.replace(html, "$1"); + html = ~/(<\\?)(.+?)(\/|\s|>)/g.replace(html, "$1$2$3"); + + return html; + } +} \ No newline at end of file diff --git a/extra/haxelib_src/src/website/api/ProjectApi.hx b/extra/haxelib_src/src/website/api/ProjectApi.hx index 095e78bc..c47d1b97 100644 --- a/extra/haxelib_src/src/website/api/ProjectApi.hx +++ b/extra/haxelib_src/src/website/api/ProjectApi.hx @@ -31,8 +31,8 @@ class ProjectApi extends UFApi { @inject public var cacheCnx:UFCacheConnectionSync; /** Extensions that should be loaded as a text file. **/ - public static var textExtensions:Array = ["md","txt","hx","hxml","json","xml","htaccess"]; - public static var imgExtensions:Array = ["jpg","jpeg","gif","png"]; + public static var textExtensions:Array = ["md","txt","hx","hxml","json","xml","htaccess","yml","gitignore","conf","html","mtt","htm","js","css","less","scss"]; + public static var imgExtensions:Array = ["jpg","jpeg","gif","png","svg","ico"]; /** Load the ProjectInfos for the given project. @@ -69,9 +69,9 @@ class ProjectApi extends UFApi { // Exact match! It's a file, not a directory. Now, check the type and load it. fileInfo = if ( textExtensions.indexOf(extension)>-1 ) - Text( Reader.unzip(entry).toString(), extension ); + Text( Reader.unzip(entry).toString(), extension, entry.fileSize ); else if ( imgExtensions.indexOf(extension)>-1 ) - Image( Reader.unzip(entry), extension ); + Image( Reader.unzip(entry), extension, entry.fileSize ); else Binary( entry.fileSize ); break; @@ -97,7 +97,11 @@ class ProjectApi extends UFApi { if ( fileInfo!=null ) Success( fileInfo ); else Failure( HttpError.pageNotFound() ); } - catch ( e:Dynamic ) return Failure( Error.withData('Failed to get file information for $path in $projectName ($version)',e) ); + catch ( e:Dynamic ) return Failure( Error.withData( + 'Failed to get file information for $path in $projectName ($version)', + Std.string(e) + "\n" + + haxe.CallStack.toString(haxe.CallStack.exceptionStack()) + ) ); } /** @@ -227,9 +231,9 @@ class ProjectApi extends UFApi { **/ enum FileInformation { /** A text file, with it's String content and extension. **/ - Text( content:String, extension:String ); + Text( content:String, extension:String, size:Int ); /** A text file, with it's Bytes content and extension. **/ - Image( content:Bytes, extension:String ); + Image( content:Bytes, extension:String, size:Int ); /** A binary file that we can't display, together with it's size. **/ Binary( size:Int ); /** A directory listing, with separate arrays for subdirs and files. **/ diff --git a/extra/haxelib_src/src/website/api/UserApi.hx b/extra/haxelib_src/src/website/api/UserApi.hx index f156d510..7a23051d 100644 --- a/extra/haxelib_src/src/website/api/UserApi.hx +++ b/extra/haxelib_src/src/website/api/UserApi.hx @@ -25,7 +25,7 @@ class UserApi extends UFApi { var projects = [for (j in projectJoins) j.projectObj]; projects.cleverSort( -_.downloads ); - return Success( new Pair(user,projects) ); + return Success( new Pair(user, projects) ); } catch ( e:Dynamic ) return Failure( Error.withData('Failed to fetch user profile for $username', e) ); } diff --git a/extra/haxelib_src/src/website/controller/DocumentationController.hx b/extra/haxelib_src/src/website/controller/DocumentationController.hx index 3017caf2..528fa0a3 100644 --- a/extra/haxelib_src/src/website/controller/DocumentationController.hx +++ b/extra/haxelib_src/src/website/controller/DocumentationController.hx @@ -29,7 +29,9 @@ class DocumentationController extends Controller { pages.set( "/documentation/", "Getting Started" ); pages.set( "/documentation/using-haxelib/", "Using Haxelib" ); pages.set( "/documentation/creating-a-haxelib-package/", "Creating a Haxelib" ); - // pages.set( "/documentation/faq/", "FAQ" ); + pages.set( "/documentation/per-project-setup/", "Per project setup" ); + pages.set( "/documentation/haxelibs-in-projects/", "Adding libraries to projects" ); + pages.set( "/documentation/faq/", "FAQ" ); // pages.set( "/documentation/api/", "API" ); return pages; } diff --git a/extra/haxelib_src/src/website/controller/HomeController.hx b/extra/haxelib_src/src/website/controller/HomeController.hx index f35faafa..c60ee4ca 100644 --- a/extra/haxelib_src/src/website/controller/HomeController.hx +++ b/extra/haxelib_src/src/website/controller/HomeController.hx @@ -20,7 +20,7 @@ class HomeController extends Controller { @inject public function init( ctx:HttpContext ) { // All MVC actions come through HomeController (our index controller) first, so this is a good place to set global template variables. var r = ctx.request; - var url = 'http://'+r.hostName+r.uri; + var url = 'https://'+r.hostName+r.uri; if ( r.queryString!="" ) { url += '?'+r.queryString; } @@ -31,20 +31,38 @@ class HomeController extends Controller { ViewResult.globalValues.set( "documentationPages", DocumentationController.getDocumentationPages() ); ViewResult.globalValues.set( "description", "Haxe is an open source toolkit based on a modern, high level, strictly typed programming language." ); ViewResult.globalValues.set( "searchTerm", ctx.session.get('searchTerm') ); + ViewResult.globalValues.set( "escape", Util.escape); + ViewResult.globalValues.set( "formatDate", Util.formatDate); + ViewResult.globalValues.set( "extension", Path.extension); + ViewResult.globalValues.set( "min", Math.min); + ViewResult.globalValues.set( "max", Math.max); } @:route("/") public function homepage() { - var latestProjects = projectListApi.latest( 7 ).sure(); - var users = userApi.getUserList().sure().splice(0, 10); - var tags = projectListApi.getTagList( 20 ).sure(); + var allProjects = projectListApi.all().sure(); + + var latestProjects = projectListApi.latest( 12 * 3 ).sure() ; + var popularProjects = prepareProjectList( projectListApi.all().sure() ); + var users = userApi.getUserList().sure(); + var tags = projectListApi.getTagList( 25 ).sure(); + + var hasRecentProject = new Map(); + latestProjects = [for (p in latestProjects) { + if (p.p !=null && !hasRecentProject.exists(p.p.name)) { + hasRecentProject.set(p.p.name, true); + p; + } + }]; + return new ViewResult({ title: "Haxelib - the Haxe package manager", description: "Haxelib is a tool that enables sharing libraries and code in the Haxe ecosystem.", pageUrl: context.request.uri, - latestProjects: latestProjects, - users: users, - escape: function(str:String) return StringTools.htmlEscape(str, true), + latestProjects: function(offset:Int, total:Int) return [for (i in offset...offset+total) latestProjects[i]], + popularProjects: function(offset:Int, total:Int) return [for (i in offset...offset+total) popularProjects[i]], + users: function(offset:Int, total:Int) return [for (i in offset...offset+total) users[i]], + tags: tags, exampleCode: CompileTime.readFile( "website/homepage-example.txt" ), useWrapper: false, @@ -54,6 +72,19 @@ class HomeController extends Controller { @:route("/p/*") public var projectController:ProjectController; + @:route("/recent/") + public function recent() { + var latestProjects = projectListApi.latest( 100 ).sure(); + + latestProjects = [for (p in latestProjects) if (p.p != null ) p]; + + return new ViewResult({ + title: "Recent updates - the Haxe package manager", + description: "List of the most recent changes of Haxe libraries.", + projects: latestProjects, + }); + } + @:route("/u/*") public var userController:UserController; @@ -107,10 +138,13 @@ class HomeController extends Controller { return new ViewResult({ title: 'Haxelib Tags', - description: 'The 50 most popular tags for projects on Haxelib, sorted by the number of projects', + description: 'Projects of popular tags on Haxelib', tags: tagList, - escape: function(str:String) return StringTools.htmlEscape(str, true), tagCloud: tagCloud, + taggedProjects: function(tagName:String, offset:Int, total:Int) { + var projects = prepareProjectList( projectListApi.byTag( tagName ).sure() ); + return [for (i in offset...offset + total) projects[i]]; + } }); } @@ -171,13 +205,14 @@ class HomeController extends Controller { return result; } - static function prepareProjectList( list:Array ):Array<{ name:String, author:String, description:String, version:String, downloads:Int }> { + static function prepareProjectList( list:Array ):Array<{ name:String, user:User, author:String, description:String, version:Version, downloads:Int }> { return [for (p in list) if (p != null && p.ownerObj != null && p.versionObj != null) { name: p.name, + user: p.ownerObj, author: p.ownerObj.name, description: p.description, - version: p.versionObj.toSemver(), - downloads: p.downloads + version: p.versionObj, + downloads: p.downloads, }]; } diff --git a/extra/haxelib_src/src/website/controller/ProjectController.hx b/extra/haxelib_src/src/website/controller/ProjectController.hx index d199fe38..22eff994 100644 --- a/extra/haxelib_src/src/website/controller/ProjectController.hx +++ b/extra/haxelib_src/src/website/controller/ProjectController.hx @@ -1,8 +1,11 @@ package website.controller; +import haxe.DynamicAccess; +import haxe.Json; import haxelib.SemVer; import ufront.MVC; import website.api.ProjectApi; +import highlighter.Highlighter; import haxe.ds.Option; import markdown.AST; import Markdown; @@ -11,6 +14,7 @@ using haxe.io.Path; using CleverSort; using Lambda; using DateTools; +using StringTools; class ProjectController extends Controller { @@ -26,6 +30,7 @@ class ProjectController extends Controller { public function versionList( projectName:String ) { var info = projectApi.projectInfo( projectName ).sure(); info.versions.sort(function(v1, v2) return SemVer.compare(v2.name, v1.name)); + return new ViewResult({ title: 'All versions of $projectName', description: info.desc, @@ -35,41 +40,9 @@ class ProjectController extends Controller { info: info, }); } - - @:route("/$projectName/$semver") - public function version( projectName:String, ?semver:String ) { - var info = projectApi.projectInfo( projectName ).sure(); - if ( semver==null ) - semver = info.curversion; - var currentVersion = info.versions.find( function(v) return v.name==semver ); - if ( currentVersion==null ) - throw HttpError.pageNotFound(); - - var downloadUrl = '/p/$projectName/$semver/download/'; - - var readmeHTML = switch projectApi.readContentFromZip( projectName, semver, "README.md" ) { - case Success(Some(readme)): markdownToHtml(readme, '/p/$projectName/$semver/raw-files/'); - case Success(None): ""; // No README. - case Failure(err): - ufError( err.message ); - ufError( err.toString() ); - ""; - } - - return new ViewResult({ - title: '$projectName ($semver)', - project: projectName, - description: '${currentVersion.comments} - ${info.desc}', - allVersions: info.versions, - version: semver, - versionDate: Date.fromString(currentVersion.date).format('%F'), - info: info, - downloadUrl: downloadUrl, - readme: readmeHTML, - }, "version.html"); - } - + function markdownToHtml(markdown:String, prefix:String) { + // this function is basically a copy of Markdown.markdownToHtml // default md->html rendering function, but it adds a filter that // fixes relative URLs in IMG tags @@ -80,7 +53,17 @@ class ProjectController extends Controller { document.parseRefLinks(lines); var blocks = document.parseLines(lines); for (block in blocks) block.accept(imgSrcfixer); // fix relative image links - return Markdown.renderHtml(blocks); + + var html = Markdown.renderHtml(blocks); + + // prefix relative image urls in generated html (for plain -tags) + var regexp = ~/$e'; } @@ -106,48 +89,102 @@ class ProjectController extends Controller { var filePath = rest.join("/"); var downloadLink = baseUri+'$projectName/$semver/raw-files/$filePath'; var info = projectApi.projectInfo( projectName ).sure(); + + if ( semver==null ) + semver = info.curversion; + var currentVersion = info.versions.find( function(v) return v.name==semver ); + if ( currentVersion==null ) + throw HttpError.pageNotFound(); + var data:TemplateData = { title: 'Viewing $filePath on $projectName:$semver', project: projectName, description: info.desc, info: info, + allVersions: info.versions, + versionDate: Date.fromString(currentVersion.date).format('%F'), version: semver, + size: null, fileParts: rest, filePath: filePath, + fileExt: Path.extension(filePath), downloadLink: downloadLink, + icon: function(file:String) { + return switch Path.extension(file) { + case "zip"|"rar"|"tar.gx": "file-archive-o"; + case "pdf": "file-pdf-o"; + case "hx"|"hxml": "file-code-o"; + case "jpg"|"jpeg"|"gif"|"png"|"svg"|"ico": "file-image-o"; + case "txt"|"md"|"mdown"|"markdown": "file-text-o"; + case other: "file-o"; + } + }, type: "download", }; - + switch projectApi.getInfoForPath( projectName, semver, filePath ).sure() { case Directory(dirs,files): data["type"] = "directory"; data["dirListing"] = dirs; data["fileListing"] = files; data["currentDir"] = baseUri+'$projectName/$semver/files/$filePath'.removeTrailingSlashes(); - case Text(str,ext): + case Text(str,ext,size): if ( ["md","mdown","markdown"].indexOf(ext)>-1 ) { - str = Markdown.markdownToHtml( str ); + str = markdownToHtml( str, '/p/$projectName/$semver/raw-files/' ); + str = str.replace("", ">"); + + try { + str = switch (ext) { + case "xml","html","htm","mtt": + Util.syntaxHighlightHTML(str); + case "hx": + Highlighter.syntaxHighlightHaxe(str); + case "hxml": + Highlighter.syntaxHighlightHXML(str); + default: + str; + }; + } catch(e:Dynamic) { + // don't throw error when there is highlighting issue + // just don't highlight it + } } + data["fileContent"] = str; - data["extension"] = ext; + data["size"] = getSize(size); data["highlightLanguage"] = ext; - case Image(bytes,ext): + + case Image(bytes,ext,size): data["filename"] = rest[rest.length-1]; data["type"] = "img"; + data["size"] = getSize(size); + case Binary(size): data["filename"] = rest[rest.length-1]; - var sizeInKb = Math.round(size/1024*10) / 10; - data["size"] = sizeInKb + "kb"; + data["size"] = getSize(size); } var vr = new ViewResult( data ); vr.helpers["extensionAllowed"] = function(file:String) return ProjectApi.textExtensions.has(file.extension().toLowerCase()); return vr; } + + static function getSize(size:Int) { + if (size == null) return null; + var kb = Math.round(size / 1024 * 10) / 10; + if (kb > 1000) { + return (Math.round(kb / 100) / 10) + "mb"; + } else { + return kb + "kb"; + } + } // TODO: write some tests... @:route("/$projectName/$semver/raw-files/*") @@ -161,6 +198,116 @@ class ProjectController extends Controller { throw HttpError.pageNotFound(); } } + + @:route("/$projectName/$semver/readme/") + public function readme( projectName:String, semver:String ) { + return getVersion(projectName, semver, "readme"); + } + + @:route("/$projectName/$semver/license/") + public function license( projectName:String, semver:String ) { + return getVersion(projectName, semver, "license"); + } + + @:route("/$projectName/$semver/releasenotes/") + public function releasenotes( projectName:String, semver:String ) { + return getVersion(projectName, semver, "releasenotes"); + } + + @:route("/$projectName/$semver/changelog/") + public function changelog( projectName:String, semver:String ) { + return getVersion(projectName, semver, "changelog"); + } + + @:route("/$projectName/$semver/") + public function version( projectName:String, ?semver:String ) { + return getVersion(projectName, semver); + } + + private function getVersion( projectName:String, ?semver:String, ?type:String ) { + var info = projectApi.projectInfo( projectName ).sure(); + if ( semver==null ) + semver = info.curversion; + var currentVersion = info.versions.find( function(v) return v.name==semver ); + if ( currentVersion==null ) + throw HttpError.pageNotFound(); + + var downloadUrl = '/p/$projectName/$semver/download/'; + + function getHTML(files:Array) { + for(file in files) { + switch projectApi.readContentFromZip( projectName, semver, file, false ) { + case Success(Some(readme)): return markdownToHtml(readme, '/p/$projectName/$semver/raw-files/'); + case Success(None): // No file found. + case Failure(err): + // ufError( err.message ); + // ufError( err.toString() ); + }; + } + return null; + } + + // TODO: would be nice to have this data in database instead of from the zip + var haxeLibJson:Any = switch (projectApi.readContentFromZip(projectName, semver, "haxelib.json", false)) { + case Success(Some(haxelibJson)): Json.parse(haxelibJson); // it + case _: null; + } + var dependencies:DynamicAccess = haxeLibJson != null && Reflect.hasField(haxeLibJson, "dependencies") ? Reflect.field(haxeLibJson, "dependencies") : { }; + var dependencies = [for (dep in dependencies.keys()) { + name: dep, + version: if (dependencies.get(dep).length > 0) dependencies.get(dep) else null, + }]; + + var semverCommas = semver.replace(".", ","); + + var changelog = getHTML([ + for (changelog in ["releases", "changelog"]) + for (extension in [".md", ".txt", ""]) + for (p in ['$changelog$extension', '$projectName/$changelog$extension', '$semverCommas/$changelog$extension']) + p + ]); + + var readme = getHTML([for (extension in [".md", ".txt", ""]) + for (p in ['README$extension', '$projectName/README$extension', '$semverCommas/README$extension']) + p + ]); + + var license = getHTML([ + for (extension in [".md", ".txt", ""]) + for (p in ['LICENSE$extension', '$projectName/LICENSE$extension', '$semverCommas/LICENSE$extension']) + p + ]); + + var releaseNotes = currentVersion.comments; + + // whitelist type, fall back to readme. unless there is no readme, then go to releasenotes tab + if (!(type == 'license' || type == 'changelog' || type == 'releasenotes' || type == 'changelog' || type == 'readme')) { + type = "readme"; + if (readme == null) type = "releasenotes"; + } + + return new ViewResult({ + title: '$projectName ($semver)', + project: projectName, + description: '${currentVersion.comments} - ${info.desc}', + allVersions: info.versions, + version: semver, + versionDate: Date.fromString(currentVersion.date).format('%F'), + info: info, + downloadUrl: downloadUrl, + type: type, + changelog:changelog, + readme:readme, + license:license, + releaseNotes:releaseNotes, + hasReleaseNotes: currentVersion.comments != null && currentVersion.comments.length > 0, + hasReadme: readme != null, + hasChangelog: changelog != null, + hasLicense: license != null, + dependencies: dependencies, + }, "version.html"); + } + } private class MarkdownImgRelativeSrcFixer implements NodeVisitor { @@ -184,3 +331,4 @@ private class MarkdownImgRelativeSrcFixer implements NodeVisitor { public function visitText(text:TextNode):Void {} public function visitElementAfter(element:ElementNode):Void {} } + diff --git a/extra/haxelib_src/src/website/controller/RSSController.hx b/extra/haxelib_src/src/website/controller/RSSController.hx index 1f6cd8e1..222cf145 100644 --- a/extra/haxelib_src/src/website/controller/RSSController.hx +++ b/extra/haxelib_src/src/website/controller/RSSController.hx @@ -46,7 +46,7 @@ class RSSController extends Controller { // Set some variables we'll use. Sys.setTimeLocale( "en_US.UTF8" ); var hostName = context.request.hostName; - var url = "http://"+hostName; + var url = "https://"+hostName; var num = releases.length; // Create the RSS document and headers. @@ -56,7 +56,7 @@ class RSSController extends Controller { rss.set( "xmlns:dc", "http://purl.org/dc/elements/1.1/" ); var channel = createChild( rss, "channel" ); var link = createChild( channel, "atom:link" ); - link.set( "href", 'http://$hostName/rss/' ); + link.set( "href", 'https://$hostName/rss/' ); link.set( "rel", "self" ); link.set( "type", "application/rss+xml" ); createChildWithContent( channel, "title", 'Latest Haxelib Releases ($hostName)' ); diff --git a/extra/haxelib_src/test/HaxelibTests.hx b/extra/haxelib_src/test/HaxelibTests.hx index 51306f95..a5ec9acb 100644 --- a/extra/haxelib_src/test/HaxelibTests.hx +++ b/extra/haxelib_src/test/HaxelibTests.hx @@ -1,3 +1,4 @@ +import haxe.io.Path; import haxelib.client.Vcs.VcsID; import haxe.unit.TestRunner; import sys.*; @@ -29,6 +30,19 @@ class HaxelibTests { return exitCode == 0; } + static public function deleteDirectory(dir:String) { + if (!FileSystem.exists(dir)) return; + var exitCode = switch (Sys.systemName()) { + case "Windows": + Sys.command("rmdir", ["/S", "/Q", StringTools.replace(FileSystem.fullPath(dir), "/", "\\")]); + case _: + Sys.command("rm", ["-rf", dir]); + } + if (exitCode != 0) { + throw 'unable to delete $dir'; + } + } + static function main():Void { var r = new TestRunner(); @@ -41,12 +55,14 @@ class HaxelibTests { if (isCI || cmdSucceed("hg", ["version"])) { // Hg impl. suports tags & revs. Here "78edb4b" is a first revision "initial import" at that repo: + TestHg.init(); r.add(new TestHg()); } else { Sys.println("hg not found."); } if (isCI || cmdSucceed("git", ["version"])) { // Git impl. suports only tags. Here "0.9.2" is a first revision too ("initial import"): + TestGit.init(); r.add(new TestGit()); } else { Sys.println("git not found."); diff --git a/extra/haxelib_src/test/IntegrationTests.hx b/extra/haxelib_src/test/IntegrationTests.hx index a12645d2..c3b1e319 100644 --- a/extra/haxelib_src/test/IntegrationTests.hx +++ b/extra/haxelib_src/test/IntegrationTests.hx @@ -7,6 +7,13 @@ import haxelib.*; using StringTools; using IntegrationTests; +typedef UserRegistration = { + user:String, + email:String, + fullname:String, + pw:String +} + class IntegrationTests extends TestBase { static var projectRoot:String = Sys.getCwd(); var haxelibBin:String = Path.join([projectRoot, "run.n"]); @@ -35,18 +42,30 @@ class IntegrationTests extends TestBase { originalRepo; }; static public var repo(default, never) = "repo_integration_tests"; - static public var bar(default, never) = { + static public var bar(default, never):UserRegistration = { user: "Bar", email: "bar@haxe.org", fullname: "Bar", pw: "barpassword", }; - static public var foo(default, never) = { + static public var foo(default, never):UserRegistration = { user: "Foo", email: "foo@haxe.org", fullname: "Foo", pw: "foopassword", }; + static public var deepAuthor(default, never):UserRegistration = { + user: "DeepAuthor", + email: "deep@haxe.org", + fullname: "Jonny Deep", + pw: "deep thought" + } + static public var anotherGuy(default, never):UserRegistration = { + user: "AnotherGuy", + email: "another@email.com", + fullname: "Another Guy", + pw: "some other pw" + } public var clientVer(get, null):SemVer; var clientVer_inited = false; function get_clientVer() { @@ -57,7 +76,7 @@ class IntegrationTests extends TestBase { var r = haxelib(["version"]).result(); if (r.code == 0) SemVer.ofString(switch(r.out.trim()) { - case _.split(" ") => [v] | [v, _]: v; + case _.split(" ") => parts: parts[0]; case v: v; }); else if (r.out.indexOf("3.1.0-rc.4") >= 0) @@ -92,6 +111,10 @@ class IntegrationTests extends TestBase { assertEquals(0, r.code, pos); } + function assertFail(r:{out:String, err:String, code:Int}, ?pos:haxe.PosInfos):Void { + assertTrue(r.code != 0, pos); + } + function assertNoError(f:Void->Void):Void { f(); assertTrue(true); @@ -158,10 +181,7 @@ class IntegrationTests extends TestBase { } static public function haxelibSetup(path:String):Void { - var p = new Process("haxelib", ["setup", path]); - if (p.exitCode() != 0) - throw "unable to set haxelib repo to " + path; - p.close(); + HaxelibTests.runCommand("haxelib", ["setup", path]); } static function main():Void { @@ -177,7 +197,10 @@ class IntegrationTests extends TestBase { runner.add(new tests.integration.TestSet()); runner.add(new tests.integration.TestInfo()); runner.add(new tests.integration.TestUser()); + runner.add(new tests.integration.TestOwner()); runner.add(new tests.integration.TestDev()); + runner.add(new tests.integration.TestRun()); + runner.add(new tests.integration.TestPath()); var success = runner.run(); if (!success) { diff --git a/extra/haxelib_src/test/Prepare.hx b/extra/haxelib_src/test/Prepare.hx index d17a4aad..cc12b5ba 100644 --- a/extra/haxelib_src/test/Prepare.hx +++ b/extra/haxelib_src/test/Prepare.hx @@ -45,6 +45,7 @@ class Prepare { for (item in FileSystem.readDirectory(libsPath)) { var path = Path.join([libsPath, item]); if (FileSystem.isDirectory(path)) { + trace('Preparing $item'); zipDir(path, 'test/libraries/${item}.zip'); } } diff --git a/extra/haxelib_src/test/RunCi.hx b/extra/haxelib_src/test/RunCi.hx index 13504c7d..07838163 100644 --- a/extra/haxelib_src/test/RunCi.hx +++ b/extra/haxelib_src/test/RunCi.hx @@ -84,6 +84,7 @@ class RunCi { static function testClient():Void { runCommand("haxe", ["client_tests.hxml"]); + runCommand("neko", ["bin/test.n"]); } static function testServer():Void { @@ -157,8 +158,12 @@ Listen 2000 Options Indexes FollowSymLinks AllowOverride All +' + (switch (systemName()) { + case "Windows": ''; + case _: ' Order allow,deny - Allow from all + Allow from all'; +}) + ' Require all granted '; @@ -184,7 +189,7 @@ Listen 2000 pass: user.pass, host: "localhost", port: 3306, - #if (haxe_ver < 4.0) database: "", #end + #if (haxe_ver < 4.0) database: "mysql", #end }); cnx.request('create user if not exists \'${dbConfig.user}\'@\'localhost\' identified by \'${dbConfig.pass}\';'); cnx.request('create database if not exists ${dbConfig.database};'); @@ -202,7 +207,7 @@ Listen 2000 case "Windows": configDb(); - download("https://www.apachelounge.com/download/VC15/binaries/httpd-2.4.29-Win32-VC15.zip", "bin/httpd.zip"); + download("https://home.apache.org/~steffenal/VC15/binaries/httpd-2.4.41-win32-VC15.zip", "bin/httpd.zip"); runCommand("7z", ["x", "bin\\httpd.zip", "-obin\\httpd"]); writeApacheConf("bin\\httpd\\Apache24\\conf\\httpd.conf"); @@ -238,9 +243,9 @@ Listen 2000 println("===================="); } case "Mac": - runCommand("brew", ["install", "httpd", "mysql"]); + runCommand("brew", ["install", "httpd", "mysql@5.7"]); - runCommand("mysql.server", ["start"]); + runCommand("brew", ["services", "start", "mysql@5.7"]); configDb(); @@ -273,7 +278,7 @@ Listen 2000 writeApacheConf("haxelib.conf"); runCommand("sudo", ["ln", "-s", Path.join([Sys.getCwd(), "haxelib.conf"]), "/etc/apache2/conf-enabled/haxelib.conf"]); - + runCommand("sudo", ["service", "apache2", "restart"]); Sys.sleep(2.5); @@ -297,7 +302,7 @@ Listen 2000 } Sys.setCwd("www"); - runCommand("bower", ["install"]); + runCommand("npm", ["install"]); Sys.setCwd(".."); Sys.putEnv("HAXELIB_SERVER", HAXELIB_SERVER); @@ -308,7 +313,7 @@ Listen 2000 switch (systemName()) { case "Mac": runCommand("apachectl", ["stop"]); - runCommand("mysql.server", ["stop"]); + runCommand("brew", ["services", "stop", "mysql@5.7"]); case _: //pass } @@ -347,7 +352,7 @@ Listen 2000 break; } - if (Timer.stamp() - t > 120) { + if (Timer.stamp() - t > 9 * 60) { throw "server is not reachable..."; } @@ -370,8 +375,10 @@ Listen 2000 runCommand("haxe", ["integration_tests.hxml", "-D", "system_haxelib"]); case _: runCommand("haxe", ["integration_tests.hxml"]); + runCommand("neko", ["bin/integration_tests.n"]); runCommand("haxe", ["integration_tests.hxml", "-D", "system_haxelib"]); } + runCommand("neko", ["bin/integration_tests.n"]); } if (Sys.getEnv("CI") != null && Sys.getEnv("USE_DOCKER") == null) { runWithLocalServer(test); @@ -464,16 +471,15 @@ Listen 2000 compileLegacyClient(); compileLegacyServer(); - // the server can only be compiled with haxe 3.2+ + // the server can only be compiled with haxe 3.4+ // haxe 3.1.3 bundles haxelib client 3.1.0-rc.4, which is not upgradable to later haxelib // so there is no need to test the client either #if (haxe_ver >= 3.2) compileClient(); testClient(); - compileServer(); #end - // buddy is only compatiable with haxe 3.4+ - #if (haxe_ver >= 3.4) + #if ((haxe_ver >= 3.4) && (haxe_ver < 4)) + compileServer(); testServer(); #end @@ -482,7 +488,7 @@ Listen 2000 case "Windows", "Linux": integrationTests(); case "Mac": - #if (haxe_ver >= 3.2) + #if ((haxe_ver >= 3.4) && (haxe_ver < 4)) integrationTests(); #end case _: diff --git a/extra/haxelib_src/test/TestBase.hx b/extra/haxelib_src/test/TestBase.hx index 56674e45..e22ff837 100644 --- a/extra/haxelib_src/test/TestBase.hx +++ b/extra/haxelib_src/test/TestBase.hx @@ -5,10 +5,33 @@ import haxe.unit.*; class TestBase extends TestCase { static var haxelibPath = FileSystem.fullPath("run.n"); - public function runHaxelib(args:Array) { + public function runHaxelib(args:Array, printProgress = false) { var p = new Process("neko", [haxelibPath].concat(args)); - var stdout = p.stdout.readAll().toString(); - var stderr = p.stderr.readAll().toString(); + var stdout = ''; + var stderr = ''; + var eofCount = 0; + var c; + while (eofCount < 2) { + eofCount = 0; + try { + c = p.stdout.readByte(); + if (printProgress) Sys.stdout().writeByte(c); + stdout += String.fromCharCode(c); + } catch(e:Eof) { + eofCount++; + } + try { + c = p.stderr.readByte(); + if (printProgress) Sys.stderr().writeByte(c); + stderr += String.fromCharCode(c); + } catch(e:Eof) { + eofCount++; + } + } + if (printProgress) { + Sys.stdout().flush(); + Sys.stderr().flush(); + } var exitCode = p.exitCode(); p.close(); return { @@ -19,15 +42,6 @@ class TestBase extends TestCase { } public function deleteDirectory(dir:String):Void { - if (!FileSystem.exists(dir)) return; - var exitCode = switch (Sys.systemName()) { - case "Windows": - Sys.command("rmdir", ["/S", "/Q", StringTools.replace(FileSystem.fullPath(dir), "/", "\\")]); - case _: - Sys.command("rm", ["-rf", dir]); - } - if (exitCode != 0) { - throw 'unable to delete $dir'; - } + HaxelibTests.deleteDirectory(dir); } } diff --git a/extra/haxelib_src/test/libraries/UseGitDep/git-deps.hxml b/extra/haxelib_src/test/libraries/UseGitDep/git-deps.hxml new file mode 100644 index 00000000..b1906d68 --- /dev/null +++ b/extra/haxelib_src/test/libraries/UseGitDep/git-deps.hxml @@ -0,0 +1 @@ +-lib hx.signal:git:https://github.com/fzzr-/hx.signal.git#0.9.3 \ No newline at end of file diff --git a/extra/haxelib_src/test/libraries/libBadHaxelibJson/haxelib.json b/extra/haxelib_src/test/libraries/libBadHaxelibJson/haxelib.json new file mode 100644 index 00000000..d70772fc --- /dev/null +++ b/extra/haxelib_src/test/libraries/libBadHaxelibJson/haxelib.json @@ -0,0 +1,11 @@ +{ + "name": "BadHaxelibJson", + "url" : "http://example.org", + "license": "GPL", + "tags": ["bar", "test"], + "description": "This project is an example of an haxelib project", + "version": "1.0.0", + "releasenote": "Initial release, everything is working correctly", + "contributors": ["BadHaxelibJson"], + "dependencies": {,} +} \ No newline at end of file diff --git a/extra/haxelib_src/test/libraries/libBar/Run.hx b/extra/haxelib_src/test/libraries/libBar/Run.hx new file mode 100644 index 00000000..278db817 --- /dev/null +++ b/extra/haxelib_src/test/libraries/libBar/Run.hx @@ -0,0 +1,6 @@ +class Run { + static public function main() { + Sys.print('Bar Run.hx script'); + } +} + diff --git a/extra/haxelib_src/test/libraries/libBar2/Run.hx b/extra/haxelib_src/test/libraries/libBar2/Run.hx new file mode 100644 index 00000000..8e73f6c5 --- /dev/null +++ b/extra/haxelib_src/test/libraries/libBar2/Run.hx @@ -0,0 +1,6 @@ +class Run { + static public function main() { + Sys.print('Bar2 Run.hx script'); + } +} + diff --git a/extra/haxelib_src/test/libraries/libBar2/RunN.hx b/extra/haxelib_src/test/libraries/libBar2/RunN.hx new file mode 100644 index 00000000..6fcce336 --- /dev/null +++ b/extra/haxelib_src/test/libraries/libBar2/RunN.hx @@ -0,0 +1,6 @@ +class Run { + static public function main() { + Sys.print('Bar2 run.n script'); + } +} + diff --git a/extra/haxelib_src/test/libraries/libBar2/run.n b/extra/haxelib_src/test/libraries/libBar2/run.n new file mode 100644 index 0000000000000000000000000000000000000000..fc02bdfb55df39beb0db5d88247eaff9e4657da5 GIT binary patch literal 15471 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 literal 0 HcmV?d00001 diff --git a/extra/haxelib_src/test/libraries/libBaz/haxelib.json b/extra/haxelib_src/test/libraries/libBaz/haxelib.json new file mode 100644 index 00000000..367e91d4 --- /dev/null +++ b/extra/haxelib_src/test/libraries/libBaz/haxelib.json @@ -0,0 +1,11 @@ +{ + "name": "Baz", + "url" : "http://example.org", + "license": "GPL", + "tags": ["baz", "test"], + "description": "This project is an example of an haxelib project", + "version": "0.1.0-alpha.0", + "releasenote": "Initial release, everything is working correctly", + "contributors": ["Baz"], + "main": "tools.Main" +} \ No newline at end of file diff --git a/extra/haxelib_src/test/libraries/libBaz/haxelib.xml b/extra/haxelib_src/test/libraries/libBaz/haxelib.xml new file mode 100644 index 00000000..f3b38c97 --- /dev/null +++ b/extra/haxelib_src/test/libraries/libBaz/haxelib.xml @@ -0,0 +1,7 @@ + + + + + This project is an example of an haxelib project + Initial release, everything is working correctly + \ No newline at end of file diff --git a/extra/haxelib_src/test/libraries/libBaz/tools/Main.hx b/extra/haxelib_src/test/libraries/libBaz/tools/Main.hx new file mode 100644 index 00000000..9bd88875 --- /dev/null +++ b/extra/haxelib_src/test/libraries/libBaz/tools/Main.hx @@ -0,0 +1,7 @@ +package tools; + +class Main { + static function main() { + Sys.print('Baz tools.Main script'); + } +} \ No newline at end of file diff --git a/extra/haxelib_src/test/libraries/libDeep2/libDeep/bar/Bar.hx b/extra/haxelib_src/test/libraries/libDeep2/libDeep/bar/Bar.hx new file mode 100644 index 00000000..2936374c --- /dev/null +++ b/extra/haxelib_src/test/libraries/libDeep2/libDeep/bar/Bar.hx @@ -0,0 +1,9 @@ +package bar; + +class Bar { + + static function new() { + trace("new Bar"); + } + +} \ No newline at end of file diff --git a/extra/haxelib_src/test/libraries/libDeep2/libDeep/haxelib.json b/extra/haxelib_src/test/libraries/libDeep2/libDeep/haxelib.json new file mode 100644 index 00000000..826f0be4 --- /dev/null +++ b/extra/haxelib_src/test/libraries/libDeep2/libDeep/haxelib.json @@ -0,0 +1,10 @@ +{ + "name": "Deep", + "url" : "http://example.org", + "license": "Public", + "tags": ["deep", "test"], + "description": "This project's zip contains a folder that holds the lib.", + "version": "1.0.1", + "releasenote": "AnotherGuy took over the ownership.", + "contributors": ["AnotherGuy", "DeepAuthor"] +} \ No newline at end of file diff --git a/extra/haxelib_src/test/libraries/libDeep3/libDeep/bar/Bar.hx b/extra/haxelib_src/test/libraries/libDeep3/libDeep/bar/Bar.hx new file mode 100644 index 00000000..2936374c --- /dev/null +++ b/extra/haxelib_src/test/libraries/libDeep3/libDeep/bar/Bar.hx @@ -0,0 +1,9 @@ +package bar; + +class Bar { + + static function new() { + trace("new Bar"); + } + +} \ No newline at end of file diff --git a/extra/haxelib_src/test/libraries/libDeep3/libDeep/haxelib.json b/extra/haxelib_src/test/libraries/libDeep3/libDeep/haxelib.json new file mode 100644 index 00000000..1c2d7486 --- /dev/null +++ b/extra/haxelib_src/test/libraries/libDeep3/libDeep/haxelib.json @@ -0,0 +1,10 @@ +{ + "name": "Deep", + "url" : "http://example.org", + "license": "Public", + "tags": ["deep", "test"], + "description": "This project's zip contains a folder that holds the lib.", + "version": "1.0.2", + "releasenote": "Removed DeepAuthor in contributors, add Foo.", + "contributors": ["AnotherGuy", "Foo"] +} \ No newline at end of file diff --git a/extra/haxelib_src/test/tests/TestGit.hx b/extra/haxelib_src/test/tests/TestGit.hx index 6cceea46..4417ee7d 100644 --- a/extra/haxelib_src/test/tests/TestGit.hx +++ b/extra/haxelib_src/test/tests/TestGit.hx @@ -1,9 +1,17 @@ package tests; +import sys.FileSystem; import haxelib.client.Vcs; class TestGit extends TestVcs { + static inline var REPO_PATH = 'test/repo/git'; + + static public function init() { + HaxelibTests.deleteDirectory(REPO_PATH); + HaxelibTests.runCommand('git', ['clone', 'https://github.com/fzzr-/hx.signal.git', REPO_PATH]); + } + public function new():Void { - super(VcsID.Git, "Git", "https://github.com/fzzr-/hx.signal.git", "0.9.2"); + super(VcsID.Git, "Git", FileSystem.fullPath(REPO_PATH), "0.9.2"); } } \ No newline at end of file diff --git a/extra/haxelib_src/test/tests/TestHg.hx b/extra/haxelib_src/test/tests/TestHg.hx index c4c8c2d0..d5a953f1 100644 --- a/extra/haxelib_src/test/tests/TestHg.hx +++ b/extra/haxelib_src/test/tests/TestHg.hx @@ -1,9 +1,17 @@ package tests; +import sys.FileSystem; import haxelib.client.Vcs; class TestHg extends TestVcs { + static inline var REPO_PATH = 'test/repo/hg'; + + static public function init() { + HaxelibTests.deleteDirectory(REPO_PATH); + HaxelibTests.runCommand('hg', ['clone', 'https://bitbucket.org/fzzr/hx.signal', REPO_PATH]); + } + public function new():Void { - super(VcsID.Hg, "Mercurial", "https://bitbucket.org/fzzr/hx.signal", "78edb4b"); + super(VcsID.Hg, "Mercurial", FileSystem.fullPath(REPO_PATH), "78edb4b"); } } \ No newline at end of file diff --git a/extra/haxelib_src/test/tests/TestInstall.hx b/extra/haxelib_src/test/tests/TestInstall.hx index 9cb6bdd7..3b726b87 100644 --- a/extra/haxelib_src/test/tests/TestInstall.hx +++ b/extra/haxelib_src/test/tests/TestInstall.hx @@ -20,7 +20,7 @@ class TestInstall extends TestBase //--------------- constructor ---------------// - public function new() + public function new() { super(); this.repo = Path.join([Sys.getCwd(), "test", REPO]); @@ -33,11 +33,11 @@ class TestInstall extends TestBase { origRepo = ~/\r?\n/.split(runHaxelib(["config"]).stdout)[0]; origRepo = Path.normalize(origRepo); - + if (runHaxelib(["setup", repo]).exitCode != 0) { throw "haxelib setup failed"; } - + CWD = Sys.getCwd(); var dir = Path.join([CWD, REPO_ROOT, PROJECT_FOLDER]); Sys.setCwd(dir); @@ -47,12 +47,12 @@ class TestInstall extends TestBase { // restore original CWD: Sys.setCwd(CWD); - + if (runHaxelib(["setup", origRepo]).exitCode != 0) { throw "haxelib setup failed"; } deleteDirectory(repo); - + } //----------------- tests -------------------// @@ -61,22 +61,31 @@ class TestInstall extends TestBase { var r = runHaxelib(["install", "haxelib.json"]); assertTrue(r.exitCode == 0); - + checkLibrary(getLibraryName()); } - + public function testInstallHaxelibDependencyWithTag():Void { var r = runHaxelib(["install", "tag_haxelib.json"]); assertTrue(r.exitCode == 0); - + var lib = getLibraryName(); checkLibrary(lib); - + // if that repo "README.md" was added in tag/rev.: "0.9.3" assertFalse(FileSystem.exists(Path.join([lib, "git", "README.md"]))); } - + + public function testReinstallHxml() { + var r = runHaxelib(["install", "git-deps.hxml", "--always"]); + assertEquals(0, r.exitCode); + var r = runHaxelib(["install", "git-deps.hxml", "--always"]); + assertEquals(0, r.exitCode); + var r = runHaxelib(["path", "hx.signal"]); + assertEquals(0, r.exitCode); + } + function getLibraryName():String { var haxelibFile = File.read("haxelib.json", false); @@ -84,14 +93,14 @@ class TestInstall extends TestBase haxelibFile.close(); return details.dependencies.toArray()[0].name; } - + function checkLibrary(lib:String):Void { // Library folder exists var libFolder = Path.join([repo, lib]); assertTrue(FileSystem.exists(libFolder)); assertTrue(FileSystem.isDirectory(libFolder)); - + // Library version is set to git var current = File.read(Path.join([libFolder, ".current"]), false); assertTrue(current.readAll().toString() == "git"); diff --git a/extra/haxelib_src/test/tests/integration/TestOwner.hx b/extra/haxelib_src/test/tests/integration/TestOwner.hx new file mode 100644 index 00000000..ab78daae --- /dev/null +++ b/extra/haxelib_src/test/tests/integration/TestOwner.hx @@ -0,0 +1,65 @@ +package tests.integration; + +import haxe.io.*; +import IntegrationTests.*; +using IntegrationTests; + +class TestOwner extends IntegrationTests { + function test():Void { + { + var r = haxelib(["register", deepAuthor.user, deepAuthor.email, deepAuthor.fullname, deepAuthor.pw, deepAuthor.pw]).result(); + assertSuccess(r); + } + { + var r = haxelib(["register", anotherGuy.user, anotherGuy.email, anotherGuy.fullname, anotherGuy.pw, anotherGuy.pw]).result(); + assertSuccess(r); + } + { + var r = haxelib(["register", foo.user, foo.email, foo.fullname, foo.pw, foo.pw]).result(); + assertSuccess(r); + } + + + /* + Only the owner can submit the first version. + */ + + { + var r = haxelib(["submit", Path.join([IntegrationTests.projectRoot, "test/libraries/libDeep.zip"]), anotherGuy.user, anotherGuy.pw]).result(); + assertFail(r); + } + + { + var r = haxelib(["submit", Path.join([IntegrationTests.projectRoot, "test/libraries/libDeep.zip"]), deepAuthor.user, deepAuthor.pw]).result(); + assertSuccess(r); + } + + /* + Only the owner can change ownership. + */ + + { + var r = haxelib(["submit", Path.join([IntegrationTests.projectRoot, "test/libraries/libDeep2.zip"]), anotherGuy.user, anotherGuy.pw]).result(); + assertFail(r); + } + + { + var r = haxelib(["submit", Path.join([IntegrationTests.projectRoot, "test/libraries/libDeep2.zip"]), deepAuthor.user, deepAuthor.pw]).result(); + assertSuccess(r); + } + + /* + Only the owner can change contributors. + */ + + { + var r = haxelib(["submit", Path.join([IntegrationTests.projectRoot, "test/libraries/libDeep3.zip"]), foo.user, foo.pw]).result(); + assertFail(r); + } + + { + var r = haxelib(["submit", Path.join([IntegrationTests.projectRoot, "test/libraries/libDeep3.zip"]), anotherGuy.user, anotherGuy.pw]).result(); + assertSuccess(r); + } + } +} \ No newline at end of file diff --git a/extra/haxelib_src/test/tests/integration/TestPath.hx b/extra/haxelib_src/test/tests/integration/TestPath.hx new file mode 100644 index 00000000..58d14c37 --- /dev/null +++ b/extra/haxelib_src/test/tests/integration/TestPath.hx @@ -0,0 +1,15 @@ +package tests.integration; + +import haxe.io.Path; +using IntegrationTests; + +class TestPath extends IntegrationTests { +#if !system_haxelib + function testMain():Void { + var r = haxelib(["dev", "BadHaxelibJson", Path.join([IntegrationTests.projectRoot, "test/libraries/libBadHaxelibJson"])]).result(); + assertSuccess(r); + var r = haxelib(["path", "BadHaxelibJson"]).result(); + assertFail(r); + } +#end +} \ No newline at end of file diff --git a/extra/haxelib_src/test/tests/integration/TestRun.hx b/extra/haxelib_src/test/tests/integration/TestRun.hx new file mode 100644 index 00000000..c226859a --- /dev/null +++ b/extra/haxelib_src/test/tests/integration/TestRun.hx @@ -0,0 +1,31 @@ +package tests.integration; + +import haxe.io.Path; +using IntegrationTests; + +class TestRun extends IntegrationTests { +#if (haxe_ver >= 4.0) + function testMain():Void { + var r = haxelib(["dev", "Baz", Path.join([IntegrationTests.projectRoot, "test/libraries/libBaz"])]).result(); + assertSuccess(r); + var r = haxelib(["run", "Baz"]).result(); + assertSuccess(r); + assertEquals('Baz tools.Main script', r.out); + } + + function testMain_noValueButRunHxExists():Void { + var r = haxelib(["dev", "Bar", Path.join([IntegrationTests.projectRoot, "test/libraries/libBar"])]).result(); + assertSuccess(r); + var r = haxelib(["run", "Bar"]).result(); + assertSuccess(r); + assertEquals('Bar Run.hx script', r.out); + } +#end + function testRunN_preferredOverRunHx():Void { + var r = haxelib(["dev", "Bar2", Path.join([IntegrationTests.projectRoot, "test/libraries/libBar2"])]).result(); + assertSuccess(r); + var r = haxelib(["run", "Bar2"]).result(); + assertSuccess(r); + assertEquals('Bar2 run.n script', r.out); + } +} \ No newline at end of file diff --git a/extra/haxelib_src/www/.htaccess b/extra/haxelib_src/www/.htaccess index b9b20dd8..48acf195 100644 --- a/extra/haxelib_src/www/.htaccess +++ b/extra/haxelib_src/www/.htaccess @@ -4,19 +4,37 @@ DirectoryIndex index.n index.php index.html RewriteEngine On +# Redirect http to https +RewriteBase / +RewriteCond %{HTTPS} !=on +RewriteCond %{HTTP:X-Forwarded-Proto} !https +RewriteCond %{HTTP_HOST} !^localhost(:[0-9]+)?$ +RewriteCond %{REQUEST_URI} !index\.n/?$ +RewriteCond %{REQUEST_URI} !^/api/ +RewriteCond %{REQUEST_URI} !^/files/ +RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L,QSA] + # /files are stored in S3 +# for recent versions of haxelib client, which send UA, use https, and support redirection +RewriteBase / +RewriteCond %{HTTPS} =on [OR] +RewriteCond %{HTTP:X-Forwarded-Proto} =https +RewriteCond %{ENV:HAXELIB_CDN} !^$ +RewriteCond %{HTTP_USER_AGENT} !^$ +RewriteRule "^files/(.*)$" "https://%{ENV:HAXELIB_CDN}/files/$1" [L,R=302] + +# for older versions of haxelib client RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f -RewriteCond %{ENV:HAXELIB_S3BUCKET} !^$ -RewriteCond %{ENV:AWS_DEFAULT_REGION} !^$ -RewriteRule "^files/(.*)$" "http://%{ENV:HAXELIB_S3BUCKET}.s3-%{ENV:AWS_DEFAULT_REGION}.amazonaws.com/files/$1" [P] +RewriteCond %{ENV:HAXELIB_CDN} !^$ +RewriteRule "^files/(.*)$" "http://%{ENV:HAXELIB_CDN}/files/$1" [P] # Rewrite rules to send Haxe remoting calls on "/" to "haxelib1/". If it matches, that's [L], the last rule - go their immediately. RewriteBase / RewriteCond %{HTTP:X-Haxe-Remoting}: 1 -RewriteRule ^index.n$ legacy/index.n [L] +RewriteRule ^index\.n$ legacy/index.n [L] # Enable rewrite for the new site's pages, only if the file or dir doesn't exist diff --git a/extra/haxelib_src/www/bower.json b/extra/haxelib_src/www/bower.json deleted file mode 100644 index 730bbc82..00000000 --- a/extra/haxelib_src/www/bower.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "haxelib-server", - "homepage": "https://github.com/HaxeFoundation/haxelib", - "description": "Haxelib server", - "keywords": [ - "haxe", - "haxelib" - ], - "license": "MIT", - "private": true, - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ], - "dependencies": { - "jquery": "^1.12.2", - "bootstrap": "^3.3.6", - "font-awesome": "^4.5.0" - } -} diff --git a/extra/haxelib_src/www/css/style.css b/extra/haxelib_src/www/css/style.css index 07a68efc..2aafc365 100644 --- a/extra/haxelib_src/www/css/style.css +++ b/extra/haxelib_src/www/css/style.css @@ -3,13 +3,14 @@ **/ * { margin: 0; + box-sizing:border-box; } html, body { height: 100%; } .page-wrap { margin-bottom: 0; /* equal to footer height */ - flex: 1 0 auto; + flex: 1 0 auto; } .page-wrap:after { content: ""; @@ -233,6 +234,13 @@ a.anch { } } +/** + Error page +**/ +.error-data { + white-space: pre; +} + /** Billboard / head on homepage **/ @@ -383,30 +391,35 @@ html pre, html pre code { line-height: 20px; white-space: pre; overflow-x: auto; + tab-size: 20px; } -pre, div.pre { - color: #333; - background-color: #f3f3f3; - border: 1px solid #bbb; - margin: 15px; - padding: 5px; - padding-left: 20px; +code.prettyprint { + display: block; + color: #333; + padding: 0.5em; +} +code.prettyprint .type { + color: #0086b3; } -pre .kwd, div.pre .kwd { - color: #008; +code.prettyprint .kwd { + color: #00a; } -pre .val, div.pre .val { - color: #448; +code.prettyprint .val { + color: #44a; } -pre .str, div.pre .str { - color: #800; +code.prettyprint .str, code.prettyprint .str .kwd, code.prettyprint .str .val, code.prettyprint .str .type { + color: #a00; } -pre .cmt, div.pre .cmt { - color: #080; +code.prettyprint .cmt { + color: #998; + font-style: italic; } -/* Make sure keywords inside comments are not highlighted*/ -pre .cmt .kwd, pre .cmt .str, pre .cmt .val { - color: #080; +code.prettyprint .ereg, code.prettyprint .ereg .type { + color: #f01; +} +/* Make sure keywords inside comments are not highlighted */ +code.prettyprint .cmt .kwd, code.prettyprint .cmt .str, code.prettyprint .cmt .val, code.prettyprint .cmt .type { + color: #998; } /** @@ -682,17 +695,47 @@ h2 i.fa, h3 i.fa, h4 i.fa, h5 i.fa { margin: 0; padding-left: 0; } -.breadcrumb > li:first-child { - padding-left: 0; +.panel.file-list { + margin-bottom: 20px; + border: 1px solid #ddd; + border-radius: 4px; + box-shadow: 0 1px 1px rgba(0,0,0,.05); } -pre.panel-body { - margin: 0; +.panel .btn-toolbar.pull-right { + margin-right:10px; + margin-top: 5px; +} +.panel .btn-toolbar li{ + padding-left:0; +} +.panel-disabled.panel-body { + background-color:#f5f5f5; + padding:1em 2em 2em 2em; +} + +.breadcrumb li:not(:first-child):before { + content: "/"; + display:inline-block; + padding-right: 10px; +} + +.panel-body { border: none; background: white; + width:100%; + padding:1em; +} +.panel-body pre { + border-color:#ddd; + background:#fcfcfc; } + /** Project lists. **/ .project-list small { font-weight: normal; + color:#999; + display:inline-block; + width:100px; } /** Homepage Banner **/ .section.homepage-banner { @@ -748,6 +791,17 @@ pre.panel-body { } } +.project-details table td { + padding-top:0.5em; + padding-bottom:0.5em; + word-break:break-all; +} + +.project-details table tr:first-child td { + border:0; + padding-top:0; +} + table .img-circle { max-width:none; } @@ -784,6 +838,38 @@ pre.example .comment { float:left; margin-right:10px; } -.user { - clear:both; + +.popular-libs-list .title, .popular-libs-list .title { + font-size:21px; +} + +.well form, .well .control-group { + margin:0; +} + +.file-list .dropdown-menu { + max-height: 20em; + overflow-y: auto; +} + +.file-list .list-group a { + display:block; + padding: 6px 3px; + line-height: 20px; +} +.file-list .list-group a:not(:first-child) { + border-top: 1px solid #eaecef; } +.file-list .list-group .fa { + padding-right:10px; +} +.file-list .list-group a:hover { + background:#f0f0f0; +} +.tag-list h3 a { + text-decoration:none; +} + +.description { + word-break: break-word; +} \ No newline at end of file diff --git a/extra/haxelib_src/www/documentation-files/creating-a-haxelib-package.md b/extra/haxelib_src/www/documentation-files/creating-a-haxelib-package.md index 5589f8af..1684d036 100644 --- a/extra/haxelib_src/www/documentation-files/creating-a-haxelib-package.md +++ b/extra/haxelib_src/www/documentation-files/creating-a-haxelib-package.md @@ -14,8 +14,9 @@ Each Haxe library requires a `haxelib.json` file in which the following attribut * version: The version string of the library. This is detailed in [Versioning](#versioning). * classPath: The path string to the source files. * releasenote: The release notes of the current version. -* contributors: An array of user names which identify contributors to the library that are allowed to upload to haxelib. -* dependencies: An object describing the dependencies of the library. This is detailed in [Dependencies](haxelib-json-dependencies.md). +* contributors: An array of user names which identify contributors to the library that are allowed to upload to haxelib. The first user will be defined as the owner, who is the only one that can change description, url, license, contributors, and ownership (by changing who come first in contributors). +* dependencies (optional): An object describing the dependencies of the library. This is detailed in [Dependencies](#dependencies). +* main (optional): A class to run on `haxelib run libraryname` command. Relative to library root. E.g. to run `tools/Main.hx` the value should be `tools.Main`. Default value since Haxe 4: `Run` The following JSON is a simple example of a haxelib.json: @@ -33,7 +34,8 @@ The following JSON is a simple example of a haxelib.json: "dependencies": { "tink_macro": "", "nme": "3.5.5" - } + }, + "main": "tools.Main" } ``` @@ -80,6 +82,26 @@ Examples: * "1.0.0-rc.2": The 2nd release candidate for 1.0.0 * "1.0.0": The final release! + + +### Dependencies + +As of Haxe 3.1.0, haxelib supports only exact version matching for dependencies. Dependencies are defined as part of the [haxelib.json](haxelib-json.md), with the library name serving as key and the expected version (if required) as value in the format described in [Versioning](#versioning). + +We have seen an example of this when introducing haxelib.json: + +```haxe +"dependencies": { + "tink_macros": "", + "nme": "3.5.5" +} +``` + +This adds two dependencies to the given Haxe library: + +1. The library "tink_macros" can be used in any version. Haxelib will then always try to use the latest version. +2. The library "nme" is required in version "3.5.5". Haxelib will make sure that this exact version is used, avoiding potential breaking changes with future versions. + ### extraParams.hxml If you add a file named `extraParams.hxml` to your library root (at the same level as `haxelib.json`), these parameters will be automatically added to the compilation parameters when someone use your library with `-lib`. diff --git a/extra/haxelib_src/www/documentation-files/faq.md b/extra/haxelib_src/www/documentation-files/faq.md index 5be8f1bb..f17a9555 100644 --- a/extra/haxelib_src/www/documentation-files/faq.md +++ b/extra/haxelib_src/www/documentation-files/faq.md @@ -1,3 +1,50 @@ # FAQ -More information to go here... + +### How do I change my password? +At the moment there is no way to change your password using the website or command-line. Please contact contact@haxe.org with the emailaddress of your account. + +--- + +### How to use `haxelib` on the command line +Check out [using haxelib](/documentation/using-haxelib/). + +--- + +### Can a project have multiple contributors? +Yes, just add multiple usernames in the contributors list (`"contributors": ["Juraj","Jason","Nicolas"],`) and make a new release. This will allow multiple users to submit. + +--- + +### How do I transfer ownership of a haxelib? +Haxelib only sees contributors, so you can add the new "owner" and remove the old one and make a new release. + +--- + +### How to make a haxelib.json file? +Check out [creating a haxelib package](/documentation/creating-a-haxelib-package/). + +--- + +### How do I validate my haxelib.json file? +If you want to be sure if the haxelib json file is correct, try using `haxelib submit`. This will validate if the data is correct. Press ctrl+c to terminate the actual submission. + +--- + +### How do I get a readme/changelog/license tab on my haxelib project page? +Add a "README.md", "CHANGELOG.md" and/or "LICENSE.md" markdown file in your zip file that is submitted. + +--- + +### Why doesn't my project have stats graph? +The project stats graph is only shown when the project has more than one release. + +--- + +### How do I remove my haxelib? +At the moment there is no way to remove a library from the registry, because this could break existing projects. If there serious issues like vulnerabilities or copyright infringements, please contact contact@haxe.orgs with the emailaddress of your account. + +--- + +### Where can I report haxelib issues? +Go to . diff --git a/extra/haxelib_src/www/documentation-files/haxelibs-in-projects.md b/extra/haxelib_src/www/documentation-files/haxelibs-in-projects.md new file mode 100644 index 00000000..8bc3148f --- /dev/null +++ b/extra/haxelib_src/www/documentation-files/haxelibs-in-projects.md @@ -0,0 +1,30 @@ +# Adding libraries to Haxe projects + +When the haxelib is installed, it is ready to be used it code. This is a matter of adding `--library libraryname` (or `-L libraryname`) to the [compiler arguments](https://haxe.org/manual/compiler-usage.html). + +``` +haxe --main Main --library libraryname --js bin/main.js +``` + +The same parameters you pass to the compiler can be stored in a [hxml file](https://haxe.org/manual/compiler-usage-hxml.html): + +``` +--main Main +--library libraryname +--js bin/main.js +``` +


+ +## Using Haxelib in OpenFL + +When using OpenFL, add `` tags in the project.xml to include Haxe libraries: + +```xml + +``` + +To specify a version: + +```xml + +``` diff --git a/extra/haxelib_src/www/documentation-files/index.md b/extra/haxelib_src/www/documentation-files/index.md index 6445b5b2..7f78691e 100644 --- a/extra/haxelib_src/www/documentation-files/index.md +++ b/extra/haxelib_src/www/documentation-files/index.md @@ -6,7 +6,7 @@ A basic Haxe library is a collection of `.hx` files. That is, libraries are dist ### Using with Haxe -Any installed Haxe library can be made available to the compiler through the `-lib ` argument. This is very similiar to the `-cp ` argument, but expects a library name instead of a directory path. These commands are explained thoroughly in [Compiler Usage](http://haxe.org/manual/compiler-usage.html). +Any installed Haxe library can be made available to the compiler through the `--library ` (or `-L `) argument. This is very similiar to the `--class-path ` argument, but expects a library name instead of a directory path. These commands are explained thoroughly in [Compiler Usage](http://haxe.org/manual/compiler-usage.html). For our exemplary usage we chose a very simple Haxe library called "random". It provides a set of static convenience methods to achieve various random effects, such as picking a random element from an array. @@ -19,6 +19,6 @@ class Main { } ``` -Compiling this without any `-lib` argument causes an error message along the lines of `Unknown identifier : Random`. This shows that installed Haxe libraries are not available to the compiler by default unless they are explicitly added. A working command line for above program is `haxe -lib random -main Main --interp`. +Compiling this without any `--library` argument causes an error message along the lines of `Unknown identifier : Random`. This shows that installed Haxe libraries are not available to the compiler by default unless they are explicitly added. A working command line for above program is `haxe --library random --main Main --interp`. If the compiler emits an error `Error: Library random is not installed : run 'haxelib install random'` the library has to be installed via the `haxelib` command first. As the error message suggests, this is achieved through `haxelib install random`. We will learn more about the `haxelib` command in [Using Haxelib](/documentation/using-haxelib/). diff --git a/extra/haxelib_src/www/documentation-files/per-project-setup.md b/extra/haxelib_src/www/documentation-files/per-project-setup.md index d8fcf99b..bd0306c5 100644 --- a/extra/haxelib_src/www/documentation-files/per-project-setup.md +++ b/extra/haxelib_src/www/documentation-files/per-project-setup.md @@ -1,7 +1,3 @@ -TODO: this needs editing and adding to the website - - - ## Per-project setup Currently haxelib has two ways to have project local setups. @@ -11,16 +7,15 @@ Currently haxelib has two ways to have project local setups. ### Using haxelib newrepo -When using `haxelib newrepo` you can have a project-local haxelib repository. This feature is quite new and a little rough around the edges. +When using `haxelib newrepo` you can have a project-local haxelib repository. Caveats: - libraries get downloaded for each project -- if you mistakenly run a haxelib command in a subdirectory of your project, it will be executed on the global repo ([to be fixed](https://github.com/HaxeFoundation/haxelib/issues/292)) ### Using haxelib install all -Haxe allows you to define specific versions of the libraries you want to use with `-lib :`. If you make sure to use this in all your hxmls, then `haxelib install all --always` (the `--always` avoiding you being prompted for confirmation) will be able to ensure the libraries your project needs are available in the necessary versions. If in fact you run this in a checkout hook, your get to track your dependencies in your git repo (some other VCSs should allow for a similar setup), allowing you to have a well defined and replicable setup for any state (commit/branch/etc.). +Haxe allows you to define specific versions of the libraries you want to use with `--library :`. If you make sure to use this in all your hxmls, then `haxelib install all --always` (the `--always` avoiding you being prompted for confirmation) will be able to ensure the libraries your project needs are available in the necessary versions. If in fact you run this in a checkout hook, your get to track your dependencies in your git repo (some other VCSs should allow for a similar setup), allowing you to have a well defined and replicable setup for any state (commit/branch/etc.). Disadvantages: @@ -32,9 +27,10 @@ Advantages: - as pointed out above, this approach allows defining a *versionable* and *replicable* state. - you don't have to download libraries for each project, which does make a difference for heavy weights like openfl and hxcpp -#### Sidestepping haxelib git issues +#### Using haxelib with git versions -Because you cannot specify git versions with `-lib` paremeters, we suggest using git submodules instead, as again they provide an adequate way of definining a *versionable* and *replicable* state. +You can specify git versions with `--library libname:git:https://github.com/user/repo#branch` branch can be a branch or a specific commit SHA. +As alternative, you might use git submodules instead, they also provide an adequate way of definining a *versionable* and *replicable* state. ### Combining both approaches diff --git a/extra/haxelib_src/www/documentation-files/using-haxelib.md b/extra/haxelib_src/www/documentation-files/using-haxelib.md index cf5251f5..72bc75f9 100644 --- a/extra/haxelib_src/www/documentation-files/using-haxelib.md +++ b/extra/haxelib_src/www/documentation-files/using-haxelib.md @@ -1,6 +1,6 @@ # Using Haxelib -If the `haxelib` command is executed without any arguments, it prints an exhaustive list of all available arguments. +If the `haxelib` command is executed without any arguments, it prints an exhaustive list of all available arguments. The following commands are available: @@ -24,6 +24,7 @@ The following commands are available:
  • user
  • config
  • path
  • +
  • libpath
  • version
  • help
  • @@ -77,98 +78,123 @@ The following commands are available: +Also, following environment variables affect haxelib behavior if set: - - -## Basic + + +# Basic -#### `haxelib install` +## haxelib install +Installs the given project. You can optionally specify a specific version to be installed. By default, latest released version will be installed. +### haxelib install [project-name] +Installs latests released version of the library. ``` -haxelib install [project-name] [version] -haxelib install actuate # Install latest version -haxelib install actuate 1.8.2 # Install specific version +haxelib install actuate ``` -> Install the given project. You can optionally specify a specific version to be installed. By default, latest released version will be installed. - +### haxelib install [project-name] [version] +Installs a specific version of the library. ``` -haxelib install [library-file] -haxelib install actuate.zip # Install from zip file +haxelib install actuate 1.8.2 ``` -> Install the project contained in the zip file. - +### haxelib install all +Install all dependencies in all hxml files ``` -haxelib install [hxml-file] -haxelib install build.hxml # Install all dependencies listed in hxml file +haxelib install all ``` -> Install all the dependencies from a hxml file. +### haxelib install [hxml-file] +Install all dependencies listed in hxml file ``` -haxelib install all # Install all dependencies in all hxml files +haxelib install build.hxml ``` -> Install all the dependencies from all hxml files in the current directory. - +### haxelib install [library-file] +Install the project contained in the zip file. +``` +haxelib install actuate.zip +``` -#### `haxelib update` +## haxelib update [project-name] +Update a single library to the latest version. ``` -haxelib update [project-name] haxelib update minject ``` -> Update a single library to the latest version. +### haxelib update +Update all the installed projects to their latest version. This command prompts a confirmation for each updating project. ``` haxelib update ``` -> Update all the installed projects to their latest version. This command prompts a confirmation for each updating project. + +## haxelib remove - +Remove a complete project or only a specified version if specified. +Note: this doesn't remove the library from the registry but from the machine it is installed on. -#### `haxelib remove` +### haxelib remove [project-name] +Remove all versions of the project ``` -haxelib remove [project-name] [version] -haxelib remove format # Remove all versions -haxelib remove format 3.1.2 # Remove the specified version +haxelib remove format ``` -> Remove a complete project or only a specified version if specified. - +### haxelib remove [project-name] [version] +Remove the specified version +``` +haxelib remove format 3.1.2 +``` -#### `haxelib list` +## haxelib list [search] + +List all the installed projects and their versions. For each project, the version surrounded by brackets is the current one. + +### haxelib list + +List all installed projects ``` -haxelib list [search] -haxelib list # List all installed projects -haxelib list ufront # List all projects with "ufront" in their name +haxelib list ``` -> List all the installed projects and their versions. For each project, the version surrounded by brackets is the current one. +### haxelib list [search] +List all projects with "ufront" in their name +``` +haxelib list ufront +``` -#### `haxelib set` +### haxelib set ``` haxelib set [project-name] [version] @@ -181,13 +207,13 @@ haxelib set tink_core 1.0.0-rc.8 -## Information +# Information -#### `haxelib search` +### haxelib search ``` haxelib search [word] @@ -200,7 +226,7 @@ haxelib search tween -#### `haxelib info` +### haxelib info ``` haxelib info [project-name] @@ -213,7 +239,7 @@ haxelib info openfl -#### `haxelib user` +### haxelib user ``` haxelib user [user-name] @@ -226,7 +252,7 @@ haxelib user jason -#### `haxelib config` +### haxelib config ``` haxelib config @@ -240,7 +266,7 @@ haxelib config -#### `haxelib path` +### haxelib path ``` haxelib path [project-name[:version]...] @@ -249,8 +275,19 @@ haxelib path hscript:2.0.0 haxelib path hscript erazor buddy haxelib path hscript erazor buddy:1.0.0 ``` +Example output : +``` +haxelib path openfl hxcpp format +--macro openfl._internal.utils.ExtraParams.include() +/usr/local/lib/haxe/lib/openfl/6.5.3/ +-D openfl=6.5.3 +/usr/local/lib/haxe/lib/hxcpp/git/ +-D hxcpp=3.4.0 +/usr/local/lib/haxe/lib/format/3,3,0/ +-D format=3.3.0 +``` -> Prints the path to one or more libraries, as well as any dependencies and compiler definitions required by those libraries. +> Prints the source paths to one or more libraries, as well as any dependencies and compiler definitions required by those libraries. > > You can specify a version by appending `:version` to the library name. If no version is specified the set version is used. > @@ -260,9 +297,36 @@ haxelib path hscript erazor buddy:1.0.0 + + +### haxelib libpath + +``` +haxelib libpath [project-name[:version]...] +haxelib libpath hscript +haxelib libpath hscript:2.0.0 +haxelib libpath hscript erazor buddy +haxelib libpath hscript erazor buddy:1.0.0 +``` +Example output : +``` +haxelib libpath hxcpp format hscript +/usr/local/lib/haxe/lib/hxcpp/git/ +/usr/local/lib/haxe/lib/format/3,3,0/ +/usr/local/lib/haxe/lib/hxcpp/2,1,1/ +``` + +> Prints the root path of one or more libraries. Will output 1 path per line. +> +> You can specify a version by appending `:version` to the library name. If no version is specified the set version is used. +> +> If a [development](#dev) version is set it'll be used even if a version is specified. + + + -#### `haxelib version` +### haxelib version ``` haxelib version @@ -276,7 +340,7 @@ haxelib version -#### `haxelib help` +### haxelib help ``` haxelib help @@ -288,18 +352,18 @@ haxelib help -## Development +# Development -#### `haxelib submit` +## haxelib submit ``` haxelib submit [project.zip] haxelib submit detox.zip -haxelib sumbit +haxelib submit ``` > Submits a zip package to Haxelib so other users can install it. @@ -316,7 +380,7 @@ haxelib sumbit -#### `haxelib register` +### haxelib register ``` haxelib register [username] [email] [fullname] [password] [passwordconfirmation] @@ -330,7 +394,7 @@ haxelib register [username] [email] [fullname] [password] [passwordconfirmation] -#### `haxelib dev` +### haxelib dev ``` haxelib dev [project-name] [directory] @@ -348,7 +412,7 @@ haxelib dev starling # Cancel dev, use installed version. -#### `haxelib git` +### haxelib git ``` haxelib git [project-name] [git-clone-path] [branch] @@ -367,7 +431,7 @@ haxelib git minject git@github.com:massiveinteractive/minject.git v2 # -#### `haxelib hg` +### haxelib hg ``` haxelib hg [project-name] [mercurial-clone-path] [branch] @@ -381,13 +445,13 @@ haxelib hg [project-name] [mercurial-clone-path] [branch] -## Miscellaneous +# Miscellaneous -#### `haxelib setup` +### haxelib setup ``` haxelib setup [path] @@ -401,7 +465,7 @@ haxelib setup [path] -#### `haxelib newrepo` +### haxelib newrepo ``` haxelib newrepo @@ -417,7 +481,7 @@ haxelib newrepo -#### `haxelib deleterepo` +### haxelib deleterepo ``` haxelib deleterepo @@ -431,7 +495,7 @@ haxelib deleterepo -#### `haxelib convertxml` +### haxelib convertxml ``` haxelib convertxml @@ -442,7 +506,7 @@ haxelib convertxml -#### `haxelib run` +### haxelib run ``` haxelib run [project-name[:version]] [parameters] @@ -461,7 +525,7 @@ haxelib run openfl create DisplayingABitmap -#### `haxelib proxy` +### haxelib proxy ``` haxelib proxy [host port [username password]] @@ -488,7 +552,7 @@ otherwise they'll be passed as arguments to the library. -#### `haxelib --flat` +### haxelib --flat ``` haxelib --flat @@ -500,7 +564,7 @@ haxelib --flat -#### `haxelib --always` +### haxelib --always ``` haxelib --always @@ -512,7 +576,7 @@ haxelib --always -#### `haxelib --system` +### haxelib --system ``` haxelib --system @@ -526,7 +590,7 @@ haxelib --system -#### `haxelib --debug` +### haxelib --debug ``` haxelib --debug @@ -538,7 +602,7 @@ haxelib --debug -#### `haxelib --quiet` +### haxelib --quiet ``` haxelib --quiet @@ -550,7 +614,7 @@ haxelib --quiet -#### `haxelib --never` +### haxelib --never ``` haxelib --never @@ -562,7 +626,7 @@ haxelib --never -#### `haxelib --global` +### haxelib --global ``` haxelib --global @@ -574,7 +638,7 @@ haxelib --global -## Parameters +# Parameters @@ -585,7 +649,7 @@ otherwise they'll be passed as arguments to the library. -#### `haxelib -cwd` +### haxelib -cwd ``` haxelib -cwd [dir] @@ -597,7 +661,7 @@ haxelib -cwd [dir] -#### `haxelib -no-timeout` +### haxelib -no-timeout ``` haxelib -no-timeout @@ -609,10 +673,25 @@ haxelib -no-timeout -#### `haxelib -R` +### haxelib -R ``` haxelib -R [host:port[/dir]] ``` > Allow the usage of a custom Haxelib server instead of `lib.haxe.org`. + + + +# Environment Variables + + + +## HAXELIB_NO_SSL + +If `HAXELIB_NO_SSL` is set to `1` or `true`, then haxelib client will use http instead of https. + +## HAXELIB_REMOTE + +`HAXELIB_REMOTE` may contain a url to a custom Haxelib server instead of `https://lib.haxe.org/`. +However, if -R command line argument is provided, then `HAXELIB_REMOTE` is ignored. \ No newline at end of file diff --git a/extra/haxelib_src/www/package-lock.json b/extra/haxelib_src/www/package-lock.json new file mode 100644 index 00000000..19e76d73 --- /dev/null +++ b/extra/haxelib_src/www/package-lock.json @@ -0,0 +1,1686 @@ +{ + "name": "haxelib-server", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", + "dev": true + }, + "bl": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "dev": true, + "requires": { + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz", + "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=", + "dev": true, + "requires": { + "base64-js": "0.0.8", + "ieee754": "1.1.12", + "isarray": "1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "1.1.0", + "buffer-fill": "1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caw": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", + "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==", + "dev": true, + "requires": { + "get-proxy": "2.1.0", + "isurl": "1.0.0", + "tunnel-agent": "0.6.0", + "url-to-options": "1.0.1" + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dev": true, + "requires": { + "graceful-readlink": "1.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "config-chain": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", + "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", + "dev": true, + "requires": { + "ini": "1.3.5", + "proto-list": "1.2.4" + } + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "copyfiles": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.0.0.tgz", + "integrity": "sha512-NSSJdwCH27/hEiBlhkXYWh3AaPo8IATxLX5XtJQgknOvOehrREtETsGd/BNr2vuj0URgKBC/50PNRM3yShQGJQ==", + "dev": true, + "requires": { + "glob": "7.1.2", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "noms": "0.0.0", + "through2": "2.0.3", + "yargs": "11.1.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decompress": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz", + "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", + "dev": true, + "requires": { + "decompress-tar": "4.1.1", + "decompress-tarbz2": "4.1.1", + "decompress-targz": "4.1.1", + "decompress-unzip": "4.0.1", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "pify": "2.3.0", + "strip-dirs": "2.1.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "1.0.1" + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dev": true, + "requires": { + "file-type": "5.2.0", + "is-stream": "1.1.0", + "tar-stream": "1.6.1" + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dev": true, + "requires": { + "decompress-tar": "4.1.1", + "file-type": "6.2.0", + "is-stream": "1.1.0", + "seek-bzip": "1.0.5", + "unbzip2-stream": "1.2.5" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "dev": true + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "dev": true, + "requires": { + "decompress-tar": "4.1.1", + "file-type": "5.2.0", + "is-stream": "1.1.0" + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "dev": true, + "requires": { + "file-type": "3.9.0", + "get-stream": "2.3.1", + "pify": "2.3.0", + "yauzl": "2.10.0" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", + "dev": true + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "download": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", + "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==", + "dev": true, + "requires": { + "caw": "2.0.1", + "content-disposition": "0.5.2", + "decompress": "4.2.0", + "ext-name": "5.0.0", + "file-type": "5.2.0", + "filenamify": "2.1.0", + "get-stream": "3.0.0", + "got": "7.1.0", + "make-dir": "1.3.0", + "p-event": "1.3.0", + "pify": "3.0.0" + } + }, + "download-cli": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/download-cli/-/download-cli-1.1.1.tgz", + "integrity": "sha512-Q8NPjnYKGYLKTzmS8QyrLz9QbDat17WKkIc21lzNxhUotsAweaSSjh1f/Lp50k1Tpc86/6ikFtGoHRrsuWFAfA==", + "dev": true, + "requires": { + "download": "6.2.5", + "meow": "3.7.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "dev": true, + "requires": { + "mime-db": "1.35.0" + } + }, + "ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "dev": true, + "requires": { + "ext-list": "2.2.2", + "sort-keys-length": "1.0.1" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "1.2.0" + } + }, + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "dev": true + }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", + "dev": true + }, + "filenamify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz", + "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==", + "dev": true, + "requires": { + "filename-reserved-regex": "2.0.0", + "strip-outer": "1.0.1", + "trim-repeated": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-proxy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", + "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==", + "dev": true, + "requires": { + "npm-conf": "1.1.3" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "requires": { + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-plain-obj": "1.1.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.1", + "p-cancelable": "0.3.0", + "p-timeout": "1.2.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "url-parse-lax": "1.0.0", + "url-to-options": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "dev": true + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dev": true, + "requires": { + "has-symbol-support-x": "1.4.2" + } + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=", + "dev": true + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dev": true, + "requires": { + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" + } + }, + "jquery": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz", + "integrity": "sha1-AeHfuikP5z3rp3zurLD5ui/sngw=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "mime-db": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", + "dev": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "1.0.34" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" + } + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "requires": { + "config-chain": "1.1.11", + "pify": "3.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, + "p-event": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", + "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=", + "dev": true, + "requires": { + "p-timeout": "1.2.1" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.3.0" + } + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "dev": true, + "requires": { + "p-finally": "1.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.2" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "dev": true, + "requires": { + "commander": "2.8.1" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "1.1.0" + } + }, + "sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "dev": true, + "requires": { + "sort-keys": "1.1.2" + } + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dev": true, + "requires": { + "is-natural-number": "4.0.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } + }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "tar-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.1.tgz", + "integrity": "sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==", + "dev": true, + "requires": { + "bl": "1.2.2", + "buffer-alloc": "1.2.0", + "end-of-stream": "1.4.1", + "fs-constants": "1.0.0", + "readable-stream": "2.3.6", + "to-buffer": "1.1.1", + "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.6", + "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + } + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "unbzip2-stream": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz", + "integrity": "sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==", + "dev": true, + "requires": { + "buffer": "3.6.0", + "through": "2.3.8" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "1.0.4" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "dev": true, + "requires": { + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "0.2.13", + "fd-slicer": "1.1.0" + } + } + } +} diff --git a/extra/haxelib_src/www/package.json b/extra/haxelib_src/www/package.json new file mode 100644 index 00000000..ce9831a6 --- /dev/null +++ b/extra/haxelib_src/www/package.json @@ -0,0 +1,17 @@ +{ + "name": "haxelib-server", + "description": "Haxelib server", + "scripts": { + "postinstall": "download https://stackpath.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js --out js && download https://stackpath.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css --out css && copyfiles -f node_modules/jquery/dist/jquery.min.js js" + }, + "keywords": [], + "author": "Haxe Foundation", + "license": "MIT", + "private": true, + "devDependencies": { + "copyfiles": "^2.0.0", + "download-cli": "^1.1.1", + "jquery": "^1.12.4" + }, + "dependencies": {} +} diff --git a/extra/haxelib_src/www/robots.txt b/extra/haxelib_src/www/robots.txt index 27a4026c..bee18f1e 100644 --- a/extra/haxelib_src/www/robots.txt +++ b/extra/haxelib_src/www/robots.txt @@ -1,7 +1,1078 @@ User-agent: * Disallow: /api/ -Disallow: /bower_components/ Disallow: /files/ Disallow: /tmp/ Disallow: /p/*/*/files/ +Disallow: /p/*/*/raw-files/ Disallow: /p/*/*/download/ + + +# https://github.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker/blob/V3.2018.06.1119/robots.txt/robots.txt + +### Version Information # +################################################### +### Version: V3.2018.06.1119 +### Updated: Thu Jun 28 16:29:29 SAST 2018 +### Bad Bot Count: 528 +################################################### +### Version Information ## + +User-agent: * +Disallow: /wp-admin/ +Allow: /wp-admin/admin-ajax.php +User-agent: 360Spider +Disallow:/ +User-agent: 404checker +Disallow:/ +User-agent: 404enemy +Disallow:/ +User-agent: 80legs +Disallow:/ +User-agent: Abonti +Disallow:/ +User-agent: Aboundex +Disallow:/ +User-agent: Acunetix +Disallow:/ +User-agent: ADmantX +Disallow:/ +User-agent: AfD-Verbotsverfahren +Disallow:/ +User-agent: AhrefsBot +Disallow:/ +User-agent: AIBOT +Disallow:/ +User-agent: AiHitBot +Disallow:/ +User-agent: Aipbot +Disallow:/ +User-agent: Alexibot +Disallow:/ +User-agent: Alligator +Disallow:/ +User-agent: AllSubmitter +Disallow:/ +User-agent: AlphaBot +Disallow:/ +User-agent: Anarchie +Disallow:/ +User-agent: Apexoo +Disallow:/ +User-agent: ASPSeek +Disallow:/ +User-agent: Asterias +Disallow:/ +User-agent: Attach +Disallow:/ +User-agent: autoemailspider +Disallow:/ +User-agent: BackDoorBot +Disallow:/ +User-agent: Backlink-Ceck +Disallow:/ +User-agent: backlink-check +Disallow:/ +User-agent: BacklinkCrawler +Disallow:/ +User-agent: BackStreet +Disallow:/ +User-agent: BackWeb +Disallow:/ +User-agent: Badass +Disallow:/ +User-agent: Bandit +Disallow:/ +User-agent: Barkrowler +Disallow:/ +User-agent: BatchFTP +Disallow:/ +User-agent: Battleztar Bazinga +Disallow:/ +User-agent: BBBike +Disallow:/ +User-agent: BDCbot +Disallow:/ +User-agent: BDFetch +Disallow:/ +User-agent: BetaBot +Disallow:/ +User-agent: Bigfoot +Disallow:/ +User-agent: Bitacle +Disallow:/ +User-agent: Blackboard +Disallow:/ +User-agent: Black Hole +Disallow:/ +User-agent: BlackWidow +Disallow:/ +User-agent: BLEXBot +Disallow:/ +User-agent: Blow +Disallow:/ +User-agent: BlowFish +Disallow:/ +User-agent: Boardreader +Disallow:/ +User-agent: Bolt +Disallow:/ +User-agent: BotALot +Disallow:/ +User-agent: Brandprotect +Disallow:/ +User-agent: Brandwatch +Disallow:/ +User-agent: Bubing +Disallow:/ +User-agent: Buddy +Disallow:/ +User-agent: BuiltBotTough +Disallow:/ +User-agent: BuiltWith +Disallow:/ +User-agent: Bullseye +Disallow:/ +User-agent: BunnySlippers +Disallow:/ +User-agent: BuzzSumo +Disallow:/ +User-agent: Calculon +Disallow:/ +User-agent: CATExplorador +Disallow:/ +User-agent: CazoodleBot +Disallow:/ +User-agent: CCBot +Disallow:/ +User-agent: Cegbfeieh +Disallow:/ +User-agent: CheeseBot +Disallow:/ +User-agent: CherryPicker +Disallow:/ +User-agent: ChinaClaw +Disallow:/ +User-agent: Chlooe +Disallow:/ +User-agent: Claritybot +Disallow:/ +User-agent: Cliqzbot +Disallow:/ +User-agent: Cloud mapping +Disallow:/ +User-agent: coccocbot-web +Disallow:/ +User-agent: Cogentbot +Disallow:/ +User-agent: cognitiveseo +Disallow:/ +User-agent: Collector +Disallow:/ +User-agent: com.plumanalytics +Disallow:/ +User-agent: Copier +Disallow:/ +User-agent: CopyRightCheck +Disallow:/ +User-agent: Copyscape +Disallow:/ +User-agent: Cosmos +Disallow:/ +User-agent: Craftbot +Disallow:/ +User-agent: crawler4j +Disallow:/ +User-agent: crawler.feedback +Disallow:/ +User-agent: CrazyWebCrawler +Disallow:/ +User-agent: Crescent +Disallow:/ +User-agent: CSHttp +Disallow:/ +User-agent: Curious +Disallow:/ +User-agent: Custo +Disallow:/ +User-agent: DatabaseDriverMysqli +Disallow:/ +User-agent: DataCha0s +Disallow:/ +User-agent: DBLBot +Disallow:/ +User-agent: demandbase-bot +Disallow:/ +User-agent: Demon +Disallow:/ +User-agent: Deusu +Disallow:/ +User-agent: Devil +Disallow:/ +User-agent: Digincore +Disallow:/ +User-agent: DigitalPebble +Disallow:/ +User-agent: DIIbot +Disallow:/ +User-agent: Dirbuster +Disallow:/ +User-agent: Disco +Disallow:/ +User-agent: Discobot +Disallow:/ +User-agent: Discoverybot +Disallow:/ +User-agent: DittoSpyder +Disallow:/ +User-agent: DnyzBot +Disallow:/ +User-agent: DomainAppender +Disallow:/ +User-agent: DomainCrawler +Disallow:/ +User-agent: DomainSigmaCrawler +Disallow:/ +User-agent: DomainStatsBot +Disallow:/ +User-agent: Dotbot +Disallow:/ +User-agent: Download Wonder +Disallow:/ +User-agent: Dragonfly +Disallow:/ +User-agent: Drip +Disallow:/ +User-agent: DTS Agent +Disallow:/ +User-agent: EasyDL +Disallow:/ +User-agent: Ebingbong +Disallow:/ +User-agent: eCatch +Disallow:/ +User-agent: ECCP/1.0 +Disallow:/ +User-agent: Ecxi +Disallow:/ +User-agent: EirGrabber +Disallow:/ +User-agent: EMail Siphon +Disallow:/ +User-agent: EMail Wolf +Disallow:/ +User-agent: EroCrawler +Disallow:/ +User-agent: evc-batch +Disallow:/ +User-agent: Evil +Disallow:/ +User-agent: Exabot +Disallow:/ +User-agent: Express WebPictures +Disallow:/ +User-agent: ExtLinksBot +Disallow:/ +User-agent: Extractor +Disallow:/ +User-agent: ExtractorPro +Disallow:/ +User-agent: Extreme Picture Finder +Disallow:/ +User-agent: EyeNetIE +Disallow:/ +User-agent: Ezooms +Disallow:/ +User-agent: FDM +Disallow:/ +User-agent: FemtosearchBot +Disallow:/ +User-agent: FHscan +Disallow:/ +User-agent: Fimap +Disallow:/ +User-agent: Firefox/7.0 +Disallow:/ +User-agent: FlashGet +Disallow:/ +User-agent: Flunky +Disallow:/ +User-agent: Foobot +Disallow:/ +User-agent: Freeuploader +Disallow:/ +User-agent: FrontPage +Disallow:/ +User-agent: Fyrebot +Disallow:/ +User-agent: GalaxyBot +Disallow:/ +User-agent: Genieo +Disallow:/ +User-agent: GermCrawler +Disallow:/ +User-agent: Getintent +Disallow:/ +User-agent: GetRight +Disallow:/ +User-agent: GetWeb +Disallow:/ +User-agent: Gigablast +Disallow:/ +User-agent: Gigabot +Disallow:/ +User-agent: G-i-g-a-b-o-t +Disallow:/ +User-agent: Go-Ahead-Got-It +Disallow:/ +User-agent: Gotit +Disallow:/ +User-agent: GoZilla +Disallow:/ +User-agent: Go!Zilla +Disallow:/ +User-agent: Grabber +Disallow:/ +User-agent: GrabNet +Disallow:/ +User-agent: Grafula +Disallow:/ +User-agent: GrapeFX +Disallow:/ +User-agent: GrapeshotCrawler +Disallow:/ +User-agent: GridBot +Disallow:/ +User-agent: GT::WWW +Disallow:/ +User-agent: Haansoft +Disallow:/ +User-agent: HaosouSpider +Disallow:/ +User-agent: Harvest +Disallow:/ +User-agent: Havij +Disallow:/ +User-agent: HEADMasterSEO +Disallow:/ +User-agent: Heritrix +Disallow:/ +User-agent: Hloader +Disallow:/ +User-agent: HMView +Disallow:/ +User-agent: HTMLparser +Disallow:/ +User-agent: HTTP::Lite +Disallow:/ +User-agent: HTTrack +Disallow:/ +User-agent: Humanlinks +Disallow:/ +User-agent: HybridBot +Disallow:/ +User-agent: Iblog +Disallow:/ +User-agent: IDBot +Disallow:/ +User-agent: Id-search +Disallow:/ +User-agent: IlseBot +Disallow:/ +User-agent: Image Fetch +Disallow:/ +User-agent: Image Sucker +Disallow:/ +User-agent: IndeedBot +Disallow:/ +User-agent: Indy Library +Disallow:/ +User-agent: InfoNaviRobot +Disallow:/ +User-agent: InfoTekies +Disallow:/ +User-agent: instabid +Disallow:/ +User-agent: Intelliseek +Disallow:/ +User-agent: InterGET +Disallow:/ +User-agent: Internet Ninja +Disallow:/ +User-agent: InternetSeer +Disallow:/ +User-agent: internetVista monitor +Disallow:/ +User-agent: ips-agent +Disallow:/ +User-agent: Iria +Disallow:/ +User-agent: IRLbot +Disallow:/ +User-agent: Iskanie +Disallow:/ +User-agent: IstellaBot +Disallow:/ +User-agent: JamesBOT +Disallow:/ +User-agent: Jbrofuzz +Disallow:/ +User-agent: JennyBot +Disallow:/ +User-agent: JetCar +Disallow:/ +User-agent: JikeSpider +Disallow:/ +User-agent: JOC Web Spider +Disallow:/ +User-agent: Joomla +Disallow:/ +User-agent: Jorgee +Disallow:/ +User-agent: JustView +Disallow:/ +User-agent: Jyxobot +Disallow:/ +User-agent: Kenjin Spider +Disallow:/ +User-agent: Keyword Density +Disallow:/ +User-agent: Kozmosbot +Disallow:/ +User-agent: Lanshanbot +Disallow:/ +User-agent: Larbin +Disallow:/ +User-agent: LeechFTP +Disallow:/ +User-agent: LeechGet +Disallow:/ +User-agent: LexiBot +Disallow:/ +User-agent: Lftp +Disallow:/ +User-agent: LibWeb +Disallow:/ +User-agent: Libwhisker +Disallow:/ +User-agent: Lightspeedsystems +Disallow:/ +User-agent: Likse +Disallow:/ +User-agent: Linkdexbot +Disallow:/ +User-agent: LinkextractorPro +Disallow:/ +User-agent: LinkpadBot +Disallow:/ +User-agent: LinkScan +Disallow:/ +User-agent: LinksManager +Disallow:/ +User-agent: LinkWalker +Disallow:/ +User-agent: LinqiaMetadataDownloaderBot +Disallow:/ +User-agent: LinqiaRSSBot +Disallow:/ +User-agent: LinqiaScrapeBot +Disallow:/ +User-agent: Lipperhey +Disallow:/ +User-agent: Litemage_walker +Disallow:/ +User-agent: Lmspider +Disallow:/ +User-agent: LNSpiderguy +Disallow:/ +User-agent: Ltx71 +Disallow:/ +User-agent: lwp-request +Disallow:/ +User-agent: LWP::Simple +Disallow:/ +User-agent: lwp-trivial +Disallow:/ +User-agent: Magnet +Disallow:/ +User-agent: Mag-Net +Disallow:/ +User-agent: magpie-crawler +Disallow:/ +User-agent: Mail.RU_Bot +Disallow:/ +User-agent: Majestic12 +Disallow:/ +User-agent: MarkMonitor +Disallow:/ +User-agent: MarkWatch +Disallow:/ +User-agent: Masscan +Disallow:/ +User-agent: Mass Downloader +Disallow:/ +User-agent: Mata Hari +Disallow:/ +User-agent: MauiBot +Disallow:/ +User-agent: Meanpathbot +Disallow:/ +User-agent: mediawords +Disallow:/ +User-agent: MegaIndex.ru +Disallow:/ +User-agent: Metauri +Disallow:/ +User-agent: MFC_Tear_Sample +Disallow:/ +User-agent: Microsoft Data Access +Disallow:/ +User-agent: Microsoft URL Control +Disallow:/ +User-agent: MIDown tool +Disallow:/ +User-agent: MIIxpc +Disallow:/ +User-agent: Mister PiX +Disallow:/ +User-agent: MJ12bot +Disallow:/ +User-agent: Mojeek +Disallow:/ +User-agent: Morfeus Fucking Scanner +Disallow:/ +User-agent: Mr.4x3 +Disallow:/ +User-agent: MSFrontPage +Disallow:/ +User-agent: MSIECrawler +Disallow:/ +User-agent: Msrabot +Disallow:/ +User-agent: MS Web Services Client Protocol +Disallow:/ +User-agent: muhstik-scan +Disallow:/ +User-agent: Musobot +Disallow:/ +User-agent: Name Intelligence +Disallow:/ +User-agent: Nameprotect +Disallow:/ +User-agent: Navroad +Disallow:/ +User-agent: NearSite +Disallow:/ +User-agent: Needle +Disallow:/ +User-agent: Nessus +Disallow:/ +User-agent: NetAnts +Disallow:/ +User-agent: Netcraft +Disallow:/ +User-agent: netEstate NE Crawler +Disallow:/ +User-agent: NetLyzer +Disallow:/ +User-agent: NetMechanic +Disallow:/ +User-agent: NetSpider +Disallow:/ +User-agent: Nettrack +Disallow:/ +User-agent: Net Vampire +Disallow:/ +User-agent: Netvibes +Disallow:/ +User-agent: NetZIP +Disallow:/ +User-agent: NextGenSearchBot +Disallow:/ +User-agent: Nibbler +Disallow:/ +User-agent: NICErsPRO +Disallow:/ +User-agent: Niki-bot +Disallow:/ +User-agent: Nikto +Disallow:/ +User-agent: NimbleCrawler +Disallow:/ +User-agent: Ninja +Disallow:/ +User-agent: Nmap +Disallow:/ +User-agent: NPbot +Disallow:/ +User-agent: Nutch +Disallow:/ +User-agent: oBot +Disallow:/ +User-agent: Octopus +Disallow:/ +User-agent: Offline Explorer +Disallow:/ +User-agent: Offline Navigator +Disallow:/ +User-agent: Openfind +Disallow:/ +User-agent: OpenLinkProfiler +Disallow:/ +User-agent: Openvas +Disallow:/ +User-agent: OrangeBot +Disallow:/ +User-agent: OrangeSpider +Disallow:/ +User-agent: OutclicksBot +Disallow:/ +User-agent: OutfoxBot +Disallow:/ +User-agent: PageAnalyzer +Disallow:/ +User-agent: Page Analyzer +Disallow:/ +User-agent: PageGrabber +Disallow:/ +User-agent: page scorer +Disallow:/ +User-agent: PageScorer +Disallow:/ +User-agent: Panscient +Disallow:/ +User-agent: Papa Foto +Disallow:/ +User-agent: Pavuk +Disallow:/ +User-agent: pcBrowser +Disallow:/ +User-agent: PECL::HTTP +Disallow:/ +User-agent: PeoplePal +Disallow:/ +User-agent: PHPCrawl +Disallow:/ +User-agent: Picscout +Disallow:/ +User-agent: Picsearch +Disallow:/ +User-agent: PictureFinder +Disallow:/ +User-agent: Pimonster +Disallow:/ +User-agent: Pi-Monster +Disallow:/ +User-agent: Pixray +Disallow:/ +User-agent: PleaseCrawl +Disallow:/ +User-agent: plumanalytics +Disallow:/ +User-agent: Pockey +Disallow:/ +User-agent: POE-Component-Client-HTTP +Disallow:/ +User-agent: Probethenet +Disallow:/ +User-agent: ProPowerBot +Disallow:/ +User-agent: ProWebWalker +Disallow:/ +User-agent: Psbot +Disallow:/ +User-agent: Pump +Disallow:/ +User-agent: PxBroker +Disallow:/ +User-agent: PyCurl +Disallow:/ +User-agent: QueryN Metasearch +Disallow:/ +User-agent: Quick-Crawler +Disallow:/ +User-agent: RankActive +Disallow:/ +User-agent: RankActiveLinkBot +Disallow:/ +User-agent: RankFlex +Disallow:/ +User-agent: RankingBot +Disallow:/ +User-agent: RankingBot2 +Disallow:/ +User-agent: Rankivabot +Disallow:/ +User-agent: RankurBot +Disallow:/ +User-agent: RealDownload +Disallow:/ +User-agent: Reaper +Disallow:/ +User-agent: RebelMouse +Disallow:/ +User-agent: Recorder +Disallow:/ +User-agent: RedesScrapy +Disallow:/ +User-agent: ReGet +Disallow:/ +User-agent: RepoMonkey +Disallow:/ +User-agent: Ripper +Disallow:/ +User-agent: RocketCrawler +Disallow:/ +User-agent: Rogerbot +Disallow:/ +User-agent: SalesIntelligent +Disallow:/ +User-agent: SBIder +Disallow:/ +User-agent: ScanAlert +Disallow:/ +User-agent: Scanbot +Disallow:/ +User-agent: scan.lol +Disallow:/ +User-agent: Scrapy +Disallow:/ +User-agent: Screaming +Disallow:/ +User-agent: ScreenerBot +Disallow:/ +User-agent: Searchestate +Disallow:/ +User-agent: SearchmetricsBot +Disallow:/ +User-agent: Semrush +Disallow:/ +User-agent: SemrushBot +Disallow:/ +User-agent: SEOkicks +Disallow:/ +User-agent: SEOlyticsCrawler +Disallow:/ +User-agent: Seomoz +Disallow:/ +User-agent: SEOprofiler +Disallow:/ +User-agent: seoscanners +Disallow:/ +User-agent: SEOstats +Disallow:/ +User-agent: sexsearcher +Disallow:/ +User-agent: Seznam +Disallow:/ +User-agent: SeznamBot +Disallow:/ +User-agent: Shodan +Disallow:/ +User-agent: Siphon +Disallow:/ +User-agent: SISTRIX +Disallow:/ +User-agent: Sitebeam +Disallow:/ +User-agent: SiteExplorer +Disallow:/ +User-agent: Siteimprove +Disallow:/ +User-agent: SiteLockSpider +Disallow:/ +User-agent: SiteSnagger +Disallow:/ +User-agent: SiteSucker +Disallow:/ +User-agent: Site Sucker +Disallow:/ +User-agent: Sitevigil +Disallow:/ +User-agent: Slackbot-LinkExpanding +Disallow:/ +User-agent: SlySearch +Disallow:/ +User-agent: SmartDownload +Disallow:/ +User-agent: SMTBot +Disallow:/ +User-agent: Snake +Disallow:/ +User-agent: Snapbot +Disallow:/ +User-agent: Snoopy +Disallow:/ +User-agent: SocialRankIOBot +Disallow:/ +User-agent: Sogou web spider +Disallow:/ +User-agent: Sosospider +Disallow:/ +User-agent: Sottopop +Disallow:/ +User-agent: SpaceBison +Disallow:/ +User-agent: Spammen +Disallow:/ +User-agent: SpankBot +Disallow:/ +User-agent: Spanner +Disallow:/ +User-agent: Spbot +Disallow:/ +User-agent: Spinn3r +Disallow:/ +User-agent: SputnikBot +Disallow:/ +User-agent: Sqlmap +Disallow:/ +User-agent: Sqlworm +Disallow:/ +User-agent: Sqworm +Disallow:/ +User-agent: Steeler +Disallow:/ +User-agent: Stripper +Disallow:/ +User-agent: Sucker +Disallow:/ +User-agent: Sucuri +Disallow:/ +User-agent: SuperBot +Disallow:/ +User-agent: SuperHTTP +Disallow:/ +User-agent: Surfbot +Disallow:/ +User-agent: SurveyBot +Disallow:/ +User-agent: Suzuran +Disallow:/ +User-agent: Swiftbot +Disallow:/ +User-agent: sysscan +Disallow:/ +User-agent: Szukacz +Disallow:/ +User-agent: T0PHackTeam +Disallow:/ +User-agent: T8Abot +Disallow:/ +User-agent: tAkeOut +Disallow:/ +User-agent: Teleport +Disallow:/ +User-agent: TeleportPro +Disallow:/ +User-agent: Telesoft +Disallow:/ +User-agent: Telesphoreo +Disallow:/ +User-agent: Telesphorep +Disallow:/ +User-agent: The Intraformant +Disallow:/ +User-agent: TheNomad +Disallow:/ +User-agent: TightTwatBot +Disallow:/ +User-agent: Titan +Disallow:/ +User-agent: Toata +Disallow:/ +User-agent: Toweyabot +Disallow:/ +User-agent: Trendiction +Disallow:/ +User-agent: Trendictionbot +Disallow:/ +User-agent: trendiction.com +Disallow:/ +User-agent: trendiction.de +Disallow:/ +User-agent: True_Robot +Disallow:/ +User-agent: Turingos +Disallow:/ +User-agent: Turnitin +Disallow:/ +User-agent: TurnitinBot +Disallow:/ +User-agent: TwengaBot +Disallow:/ +User-agent: Twice +Disallow:/ +User-agent: Typhoeus +Disallow:/ +User-agent: UnisterBot +Disallow:/ +User-agent: URLy.Warning +Disallow:/ +User-agent: URLy Warning +Disallow:/ +User-agent: Vacuum +Disallow:/ +User-agent: Vagabondo +Disallow:/ +User-agent: VB Project +Disallow:/ +User-agent: VCI +Disallow:/ +User-agent: VeriCiteCrawler +Disallow:/ +User-agent: VidibleScraper +Disallow:/ +User-agent: Virusdie +Disallow:/ +User-agent: VoidEYE +Disallow:/ +User-agent: Voil +Disallow:/ +User-agent: Voltron +Disallow:/ +User-agent: Wallpapers/3.0 +Disallow:/ +User-agent: WallpapersHD +Disallow:/ +User-agent: WASALive-Bot +Disallow:/ +User-agent: WBSearchBot +Disallow:/ +User-agent: Webalta +Disallow:/ +User-agent: WebAuto +Disallow:/ +User-agent: Web Auto +Disallow:/ +User-agent: WebBandit +Disallow:/ +User-agent: WebCollage +Disallow:/ +User-agent: Web Collage +Disallow:/ +User-agent: WebCopier +Disallow:/ +User-agent: WEBDAV +Disallow:/ +User-agent: WebEnhancer +Disallow:/ +User-agent: Web Enhancer +Disallow:/ +User-agent: WebFetch +Disallow:/ +User-agent: Web Fetch +Disallow:/ +User-agent: WebFuck +Disallow:/ +User-agent: Web Fuck +Disallow:/ +User-agent: WebGo IS +Disallow:/ +User-agent: WebImageCollector +Disallow:/ +User-agent: WebLeacher +Disallow:/ +User-agent: WebmasterWorldForumBot +Disallow:/ +User-agent: webmeup-crawler +Disallow:/ +User-agent: WebPix +Disallow:/ +User-agent: Web Pix +Disallow:/ +User-agent: WebReaper +Disallow:/ +User-agent: WebSauger +Disallow:/ +User-agent: Web Sauger +Disallow:/ +User-agent: Webshag +Disallow:/ +User-agent: WebsiteExtractor +Disallow:/ +User-agent: WebsiteQuester +Disallow:/ +User-agent: Website Quester +Disallow:/ +User-agent: Webster +Disallow:/ +User-agent: WebStripper +Disallow:/ +User-agent: WebSucker +Disallow:/ +User-agent: Web Sucker +Disallow:/ +User-agent: WebWhacker +Disallow:/ +User-agent: WebZIP +Disallow:/ +User-agent: WeSEE +Disallow:/ +User-agent: Whack +Disallow:/ +User-agent: Whacker +Disallow:/ +User-agent: Whatweb +Disallow:/ +User-agent: Who.is Bot +Disallow:/ +User-agent: Widow +Disallow:/ +User-agent: WinHTTrack +Disallow:/ +User-agent: WiseGuys Robot +Disallow:/ +User-agent: WISENutbot +Disallow:/ +User-agent: Wonderbot +Disallow:/ +User-agent: Woobot +Disallow:/ +User-agent: Wotbox +Disallow:/ +User-agent: Wprecon +Disallow:/ +User-agent: WPScan +Disallow:/ +User-agent: WWW-Collector-E +Disallow:/ +User-agent: WWW-Mechanize +Disallow:/ +User-agent: WWW::Mechanize +Disallow:/ +User-agent: WWWOFFLE +Disallow:/ +User-agent: x09Mozilla +Disallow:/ +User-agent: x22Mozilla +Disallow:/ +User-agent: Xaldon_WebSpider +Disallow:/ +User-agent: Xaldon WebSpider +Disallow:/ +User-agent: Xenu +Disallow:/ +User-agent: xpymep1.exe +Disallow:/ +User-agent: YoudaoBot +Disallow:/ +User-agent: Zade +Disallow:/ +User-agent: Zauba +Disallow:/ +User-agent: zauba.io +Disallow:/ +User-agent: Zermelo +Disallow:/ +User-agent: Zeus +Disallow:/ +User-agent: zgrab +Disallow:/ +User-agent: Zitebot +Disallow:/ +User-agent: ZmEu +Disallow:/ +User-agent: ZumBot +Disallow:/ +User-agent: ZyBorg +Disallow:/ diff --git a/extra/haxelib_src/www/view/home/homepage.html b/extra/haxelib_src/www/view/home/homepage.html index d2b11ddd..eefb07fd 100644 --- a/extra/haxelib_src/www/view/home/homepage.html +++ b/extra/haxelib_src/www/view/home/homepage.html @@ -7,13 +7,13 @@

    @@ -26,92 +26,97 @@

    - -
    - -
    -
    -

    Popular tags

    - + }
    -
    -

    Recently updated

    -
    - @for( update in latestProjects ) { + } +
    + + See more recent updates + +
    + +

    Popular libraries

    + -
    -

    Popular contributors

    -
    - @for( u in users ) { + } +
    + + See all haxelibs +
    + +

    Popular contributors

    +
    +
    + @for( i in 0...4) { +
    + @for( u in users(i*4, 4) ) { + @if (u != null){

    - Avatar of @u.user.name + Avatar of @u.user.name @u.user.fullname
    (@u.projects.length projects)

    } + }
    -
    - -
    - -
    - -

    Many libraries are just one haxelib install away. This example demonstrates some of all haxelib commands.

    - -
    @exampleCode
    - -
    -
    -
    -
    -
    - -
    -
    -

    All libraries are free

    -

    Every month, more than thousand developers use haxelib to find, share, and reuse code — and assemble it in powerful new ways. - Enjoy Haxe; It is great!

    -
    -
    -

    Explore Haxe

    -

    -

    Haxe Manual

    -

    Haxe Code Cookbook

    -

    Haxe API documentation

    -

    You can try Haxe in the browser! try.haxe.org

    -

    -
    -
    -

    Join us on Github!

    -

    Haxe is being developed on GitHub. Feel free to contribute or report issues to our projects.

    -

    Haxe on Github

    + }
    + See all contributors + +
    + +

    Many libraries are just one haxelib install away. This example demonstrates some of all haxelib commands.

    + +
    @exampleCode
    +
    - - -
    \ No newline at end of file diff --git a/extra/haxelib_src/www/view/home/projectList.html b/extra/haxelib_src/www/view/home/projectList.html index 9121cbcd..c181af9c 100644 --- a/extra/haxelib_src/www/view/home/projectList.html +++ b/extra/haxelib_src/www/view/home/projectList.html @@ -1,6 +1,18 @@

    @title

    @description

    +
    + +
    + @@ -18,7 +30,7 @@
    @@@p.author - + } diff --git a/extra/haxelib_src/www/view/home/recent.html b/extra/haxelib_src/www/view/home/recent.html new file mode 100644 index 00000000..25a3f809 --- /dev/null +++ b/extra/haxelib_src/www/view/home/recent.html @@ -0,0 +1,39 @@ +

    Latest updates

    +

    @description

    + +
    + +
    +
    + + + +
    +
    + +
    + +@{ var prevDate = null;} +
    @p.description@p.version@p.version.name
    @formatDate(p.version.date)
    @p.downloads
    +@for (update in projects) { + @{ var curDate = formatDate(update.v.date); } + @if(prevDate != curDate) { + + + + + + + } + + + + + + + @{prevDate = curDate;} +} +

    @curDate

    ProjectChangesVersion
    + @update.p.name + + @if (update.v.comments != null && update.v.comments.length > 0){@escape(update.v.comments)}@update.v.name
    @formatDate(update.v.date, true)
    diff --git a/extra/haxelib_src/www/view/home/search.html b/extra/haxelib_src/www/view/home/search.html index 133421e9..d5a2efda 100644 --- a/extra/haxelib_src/www/view/home/search.html +++ b/extra/haxelib_src/www/view/home/search.html @@ -1,19 +1,18 @@

    @title

    - - - - -

    @description

    +
    + +
    + @if (projects!=null && projects.length>0) { @@ -32,7 +31,7 @@
    (By @@@p.author) - + } @@ -41,8 +40,7 @@ } else if (projects!=null && projects.length==0) { -

    No search results found.

    -
    +

    No search results found.

    }
    @@ -53,4 +51,7 @@ else if (projects!=null && projects.length==0) {


    -
    + +@if (projects!=null && projects.length==0) { +

     

    +} diff --git a/extra/haxelib_src/www/view/home/tagList.html b/extra/haxelib_src/www/view/home/tagList.html index 59f069d7..81e2697b 100644 --- a/extra/haxelib_src/www/view/home/tagList.html +++ b/extra/haxelib_src/www/view/home/tagList.html @@ -1,21 +1,51 @@ +

    @title

    +

    @description

    +
    + +
    +
    + + + +
    +
    + +
    +

    All Tags

    -

    @title

    -

    @description

    -
    - @for (t in tagCloud) { - @escape(t.tag) +
    + @for (i in 0...min(tags.length, 10)) { + @{var t = tags[i];} +

    @escape(t.tag)

    +
    + @for( i in 0...3) { +
    + @for( p in taggedProjects(t.tag, i * 3, 3) ) { +

    + @p.name
    + + @p.version.name  updated @formatDate(p.version.date) + +

    + } +
    + } +
    + More haxelibs tagged with "@escape(t.tag)" (@t.count) +
    }
    + \ No newline at end of file diff --git a/extra/haxelib_src/www/view/home/tagProjectList.html b/extra/haxelib_src/www/view/home/tagProjectList.html index 8684d1f3..eb1d675e 100644 --- a/extra/haxelib_src/www/view/home/tagProjectList.html +++ b/extra/haxelib_src/www/view/home/tagProjectList.html @@ -1,4 +1,19 @@ +

    Tagged with @currentTag

    +

    @description

    + +
    + +
    +
    + + + +
    +
    + +
    +

    All Tags

    @@ -9,8 +24,6 @@
    -

    Tagged with @currentTag

    -

    @description

    @p.description@p.version@p.version.name
    @formatDate(p.version.date)
    @p.downloads
    @@ -29,7 +42,7 @@
    @@@p.author - + } diff --git a/extra/haxelib_src/www/view/layout.html b/extra/haxelib_src/www/view/layout.html index f9648efa..bc23baeb 100644 --- a/extra/haxelib_src/www/view/layout.html +++ b/extra/haxelib_src/www/view/layout.html @@ -5,34 +5,34 @@ @title - + - - - + + + - - - + + + - + - - + + - + - - + + @@ -41,62 +41,75 @@ + +
    @if( useWrapper ) { @@ -111,19 +124,47 @@ }
    +
    +
    + +
    +
    +

    All libraries are free

    +

    Every month, more than a thousand developers use Haxelib to find, share, and reuse code — and assemble it in powerful new ways. + Enjoy Haxe; It is great!

    +
    +
    +

    Explore Haxe

    +

    +

    Haxe Manual

    +

    Haxe Code Cookbook

    +

    Haxe API documentation

    +

    You can try Haxe in the browser! try.haxe.org

    +

    +
    +
    +

    Join us on GitHub!

    +

    Haxe is being developed on GitHub. Feel free to contribute or report issues to our projects.

    +

    Haxe on GitHub

    +
    +
    +
    +
    + - - - + + + diff --git a/extra/haxelib_src/www/view/project/file.html b/extra/haxelib_src/www/view/project/file.html index 29984068..e5e4be1b 100644 --- a/extra/haxelib_src/www/view/project/file.html +++ b/extra/haxelib_src/www/view/project/file.html @@ -1,11 +1,19 @@ -

    @project @version

    -

    @info.desc

    -
    +
    +

    @project

    +

    @info.desc
    @info.website

    +
    + + + +
    - @if( type=="text" && extension=="hx" ) { View API Docs } - @if( type!="directory" ) { Download } + @if( type!="directory" && (type=="text" || type=="markdown" || type=="img")) { Download }
    - @if ( type=="directory" ) { - - -
    - @for (dir in dirListing) { @dir/ } - @for (file in fileListing) { @file } -
    - } - else if ( type=="text" ) { - -
    @fileContent
    - - - } - else if ( type=="markdown" ) { -
    - @fileContent -
    - } - else if ( type=="img" ) { - -
    - Viewing image @filename... sorry we don't have a better description -
    - } - else { - - - } + @if ( type=="directory" ) { +
    + +
    + @for (dir in dirListing) { @dir/ } + @for (file in fileListing) { @file} +
    +
    + } + else if ( type=="text" ) { +
    +

    @fileParts[fileParts.length-1]

    + +
    @fileContent
    + +
    + } + else if ( type=="markdown" ) { +
    @fileContent
    + } + else if ( type=="img" ) { +
    +

    @fileParts[fileParts.length-1]

    + + @filename +
    + } + else { +
    +

    @fileParts[fileParts.length-1]

    +

    This file cannot be viewed

    + + Download @filename (@size) +
    + } +
    diff --git a/extra/haxelib_src/www/view/project/version.html b/extra/haxelib_src/www/view/project/version.html index 7c351842..82487b3f 100644 --- a/extra/haxelib_src/www/view/project/version.html +++ b/extra/haxelib_src/www/view/project/version.html @@ -1,66 +1,150 @@ +
    +

    @project

    +

    @info.desc
    @info.website

    +
    - +
    - - -

    @project @version

    -

    @info.desc

    -

    Released @versionDate.

    - - -

    + + @if (false) {} + @if( version!=info.curversion ) { +

    This is not the latest stable version of @project. See version @info.curversion for the latest version.

    + } + + @if (false) {}

    To install, run:

    -
    haxelib install @project @version
    +
    haxelib install @project @version 

    See using Haxelib in Haxelib documentation for more information.

    +
    - - + - -

    - @if( version!=info.curversion ) { -

    This is not the latest stable version of @project. See version @info.curversion for the latest version.

    + @if (type == "readme") { + @if (false) {} + @if (hasReadme) { +
    +
    +

    README.md

    +
    +
    + @readme +
    +
    + } + } + + @if (type == "releasenotes") { +
    + @if (hasReleaseNotes) { +

    @project @version Release notes

    +

    @escape(releaseNotes)

    + } +
    + } + + @if (type == "changelog") { + @if (false) {} + @if (hasChangelog) { +
    +
    +

    CHANGELOG.md

    +
    +
    + @changelog +
    +
    + } + } + + + @if (type == "license") { + @if (false) {} + @if (hasLicense) { +
    +
    +

    LICENSE.md

    +
    +
    + @license +
    +
    + } } -
    - - -
    + @if (false) {} +
    @p.description@p.version@p.version.name @p.downloads
    - - - - + + - - - + + + + + @if (dependencies.length > 0) { + + + + } + + + + @if (info.tags != null && info.tags.length > 0) { - + + + } + +
    Maintainer@info.owner
    Website@info.website
    + Contributors
    +
    - + @for(d in info.contributors) { + @d.name
    + }
    Current version@info.curversion
    StatisticsInstalled @info.downloads times
    License@info.license
    Version
    @version
    Published
    @formatDate(versionDate)
    + Dependencies +
      + @for (dep in dependencies) { + @if (dep.version != null) { +
    • @dep.name (@dep.version)
    • + } + else { +
    • @dep.name
    • + } + } +
    +
    License
    @info.license
    Tags +
      + @for( t in info.tags ) { +
    • @t
    • + } +
    +
    @@ -69,28 +153,29 @@
    -
    +@if (info.website.indexOf("github.com") > -1) { +@{var githubInfo = info.website.split("github.com/").pop().split("/");} +@{var githubUser = githubInfo[0];} +@{var githubRepo = githubInfo[1];} + } + + diff --git a/extra/haxelib_src/www/view/project/versionList.html b/extra/haxelib_src/www/view/project/versionList.html index 3404d05e..a8368d9a 100644 --- a/extra/haxelib_src/www/view/project/versionList.html +++ b/extra/haxelib_src/www/view/project/versionList.html @@ -1,21 +1,70 @@ +
    -

    @project All Versions

    -

    @info.desc

    - -

    -

    @info.website

    +

    @project

    +

    @info.desc
    @info.website

    + + +@if (allVersions.length > 1) { +
    + + + +} + - + - - + + @@ -23,19 +72,13 @@ - - - - - - - }
    VersionVersion Release NotesInstallDownloadsInstallDownloads
    @v.name -
    @v.date.substr(0,10) +
    @formatDate(v.date)
    @escape(v.comments) haxelib install @project @v.name @v.downloads
    + \ No newline at end of file diff --git a/extra/haxelib_src/www/view/user/list.html b/extra/haxelib_src/www/view/user/list.html index 2d0cdf1e..f55a99ba 100644 --- a/extra/haxelib_src/www/view/user/list.html +++ b/extra/haxelib_src/www/view/user/list.html @@ -1,6 +1,6 @@

    @title

    - +
    @@ -8,7 +8,7 @@ - @for (u in list) { + @for (u in list) { diff --git a/extra/haxelib_src/www/view/user/profile.html b/extra/haxelib_src/www/view/user/profile.html index 72ac08bb..9e775a47 100644 --- a/extra/haxelib_src/www/view/user/profile.html +++ b/extra/haxelib_src/www/view/user/profile.html @@ -1,3 +1,7 @@ + +
    User
    Avatar of @u.user.name @u.user.name
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ConstantDescription
    CSS_ATTRThe value is an attr() function. The value can be obtained by using the getStringValue() method.
    CSS_CMThe value is a length in centimeters. The value can be obtained by using the getFloatValue() method.
    CSS_COUNTERThe value is a counter or counters function. The value can be obtained by using the getCounterValue() method.
    CSS_DEGThe value is an angle in degrees. The value can be obtained by using the getFloatValue() method.
    CSS_DIMENSIONThe value is a number with an unknown dimension. The value can be obtained by using the getFloatValue() method.
    CSS_EMSThe value is a length in em units. The value can be obtained by using the getFloatValue() method.
    CSS_EXSThe value is a length in ex units. The value can be obtained by using the getFloatValue() method.
    CSS_GRADThe value is an angle in grads. The value can be obtained by using the getFloatValue() method.
    CSS_HZThe value is a frequency in Hertz. The value can be obtained by using the getFloatValue method.
    CSS_IDENTThe value is an identifier. The value can be obtained by using the getStringValue() method.
    CSS_INThe value is a length in inches. The value can be obtained by using the getFloatValue() method.
    CSS_KHZThe value is a frequency in Kilohertz. The value can be obtained by using the getFloatValue() method.
    CSS_MMThe value is a length in millimeters. The value can be obtained by using the getFloatValue() method.
    CSS_MSThe value is a time in milliseconds. The value can be obtained by using the getFloatValue() method.
    CSS_NUMBERThe value is a simple number. The value can be obtained by using the getFloatValue() method.
    CSS_PCThe value is a length in picas. The value can be obtained by using the getFloatValue() method.
    CSS_PERCENTAGEThe value is a percentage. The value can be obtained by using the getFloatValue() method.
    CSS_PTThe value is a length in points. The value can be obtained by using the getFloatValue() method.
    CSS_PXThe value is a length in pixels. The value can be obtained by using the getFloatValue() method.
    CSS_RADThe value is an angle in radians. The value can be obtained by using the getFloatValue() method.
    CSS_RECTThe value is a shape function. The value can be obtained by using the getRectValue() method.
    CSS_RGBCOLORThe value is an color. The value can be obtained by using the getRGBColorValue() method.
    CSS_SThe value is a time in seconds. The value can be obtained by using the getFloatValue() method.
    CSS_STRINGThe value is a string. The value can be obtained by using the getStringValue() method.
    CSS_UNKNOWNThe value is not a recognized CSS2 value. The value can only be obtained by using the CSSValue.cssText attribute.
    CSS_URIThe value is a uri. The value can be obtained by using the getStringValue() method.
    - - **/ - var primitiveType(default,null) : Int; - - /** @throws DOMError */ - - /** - A method to set the float value with a specified unit. If the property attached with this value can not accept the specified unit or the float value, the value will be unchanged and a `DOMException` will be raised. - **/ - function setFloatValue( unitType : Int, floatValue : Float ) : Void; - /** @throws DOMError */ - - /** - This method is used to get a float value in a specified unit. If this CSS value doesn't contain a float value or can't be converted into the specified unit, a `DOMException` is raised. - **/ - function getFloatValue( unitType : Int ) : Float; - /** @throws DOMError */ - - /** - A method to set the string value with the specified unit. If the property attached to this value can't accept the specified unit or the string value, the value will be unchanged and a `DOMException` will be raised. - **/ - function setStringValue( stringType : Int, stringValue : String ) : Void; - /** @throws DOMError */ - - /** - This method is used to get the string value. If the CSS value doesn't contain a string value, a `DOMException` is raised. - **/ - function getStringValue() : String; - /** @throws DOMError */ - - /** - This method is used to get the counter value. If this CSS value doesn't contain a counter value, a `DOMException` is raised. Modification to the corresponding style property can be achieved using the `Counter` interface. - **/ - function getCounterValue() : Dynamic/*MISSING Counter*/; - /** @throws DOMError */ - - /** - This method is used to get the Rect value. If this CSS value doesn't contain a rect value, a `DOMException` is raised. Modification to the corresponding style property can be achieved using the `Rect` interface. - **/ - function getRectValue() : Rect; - /** @throws DOMError */ - - /** - This method is used to get the RGB color. If this CSS value doesn't contain a RGB color value, a `DOMException` is raised. Modification to the corresponding style property can be achieved using the `RGBColor` interface. - **/ - function getRGBColorValue() : RGBColor; -} \ No newline at end of file diff --git a/std/js/html/CSSPseudoElement.hx b/std/js/html/CSSPseudoElement.hx index 5a72edc0..0ac3c8ea 100644 --- a/std/js/html/CSSPseudoElement.hx +++ b/std/js/html/CSSPseudoElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,12 +25,12 @@ package js.html; @:native("CSSPseudoElement") -extern class CSSPseudoElement -{ +extern class CSSPseudoElement { var type(default,null) : String; var parentElement(default,null) : Element; /** @throws DOMError */ - function animate( frames : Dynamic, ?options : haxe.extern.EitherType ) : Animation; - function getAnimations() : Array; + @:overload( function( keyframes : Dynamic, ?options : KeyframeAnimationOptions) : Animation {} ) + function animate( keyframes : Dynamic, ?options : Float ) : Animation; + function getAnimations( ?filter : AnimationFilter ) : Array; } \ No newline at end of file diff --git a/std/js/html/CSSRule.hx b/std/js/html/CSSRule.hx index fefc8aab..acd7e888 100644 --- a/std/js/html/CSSRule.hx +++ b/std/js/html/CSSRule.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,7 +20,7 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from cssrule.webidl. Do not edit! +// This file is generated from mozilla\CSSRule.webidl. Do not edit! package js.html; @@ -32,19 +32,23 @@ package js.html; @see **/ @:native("CSSRule") -extern class CSSRule -{ - static inline var UNKNOWN_RULE : Int = 0; +extern class CSSRule { static inline var STYLE_RULE : Int = 1; static inline var CHARSET_RULE : Int = 2; static inline var IMPORT_RULE : Int = 3; static inline var MEDIA_RULE : Int = 4; static inline var FONT_FACE_RULE : Int = 5; static inline var PAGE_RULE : Int = 6; + static inline var NAMESPACE_RULE : Int = 10; + static inline var KEYFRAMES_RULE : Int = 7; + static inline var KEYFRAME_RULE : Int = 8; + static inline var COUNTER_STYLE_RULE : Int = 11; + static inline var SUPPORTS_RULE : Int = 12; + static inline var FONT_FEATURE_VALUES_RULE : Int = 14; var type(default,null) : Int; var cssText : String; - var parentStyleSheet(default,null) : CSSStyleSheet; var parentRule(default,null) : CSSRule; + var parentStyleSheet(default,null) : CSSStyleSheet; } \ No newline at end of file diff --git a/std/js/html/CSSRuleList.hx b/std/js/html/CSSRuleList.hx index 9f77b36a..78a6f477 100644 --- a/std/js/html/CSSRuleList.hx +++ b/std/js/html/CSSRuleList.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("CSSRuleList") -extern class CSSRuleList implements ArrayAccess -{ +extern class CSSRuleList implements ArrayAccess { var length(default,null) : Int; function item( index : Int ) : CSSRule; diff --git a/std/js/html/CSSStyleDeclaration.hx b/std/js/html/CSSStyleDeclaration.hx index b44b68bd..22a1cc07 100644 --- a/std/js/html/CSSStyleDeclaration.hx +++ b/std/js/html/CSSStyleDeclaration.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("CSSStyleDeclaration") -extern class CSSStyleDeclaration implements ArrayAccess -{ +extern class CSSStyleDeclaration implements ArrayAccess { var cssText : String; var length(default,null) : Int; var parentRule(default,null) : CSSRule; @@ -78,6 +77,8 @@ extern class CSSStyleDeclaration implements ArrayAccess var background :String; /** Shorthand for the "background-attachment" CSS property. */ var backgroundAttachment :String; + /** Shorthand for the "background-blend-mode" CSS property. */ + var backgroundBlendMode :String; /** Shorthand for the "background-clip" CSS property. */ var backgroundClip :String; /** Shorthand for the "background-color" CSS property. */ @@ -88,8 +89,16 @@ extern class CSSStyleDeclaration implements ArrayAccess var backgroundOrigin :String; /** Shorthand for the "background-position" CSS property. */ var backgroundPosition :String; + /** Shorthand for the "background-position-x" CSS property. */ + var backgroundPositionX :String; + /** Shorthand for the "background-position-y" CSS property. */ + var backgroundPositionY :String; /** Shorthand for the "background-repeat" CSS property. */ var backgroundRepeat :String; + /** Shorthand for the "background-repeat-x" CSS property. */ + var backgroundRepeatX :String; + /** Shorthand for the "background-repeat-y" CSS property. */ + var backgroundRepeatY :String; /** Shorthand for the "background-size" CSS property. */ var backgroundSize :String; /** Shorthand for the "baseline-shift" CSS property. */ @@ -98,6 +107,8 @@ extern class CSSStyleDeclaration implements ArrayAccess var binding :String; /** Shorthand for the "bleed" CSS property. */ var bleed :String; + /** Shorthand for the "block-size" CSS property. */ + var blockSize :String; /** Shorthand for the "bookmark-label" CSS property. */ var bookmarkLabel :String; /** Shorthand for the "bookmark-level" CSS property. */ @@ -106,6 +117,22 @@ extern class CSSStyleDeclaration implements ArrayAccess var bookmarkState :String; /** Shorthand for the "border" CSS property. */ var border :String; + /** Shorthand for the "border-block-end" CSS property. */ + var borderBlockEnd :String; + /** Shorthand for the "border-block-end-color" CSS property. */ + var borderBlockEndColor :String; + /** Shorthand for the "border-block-end-style" CSS property. */ + var borderBlockEndStyle :String; + /** Shorthand for the "border-block-end-width" CSS property. */ + var borderBlockEndWidth :String; + /** Shorthand for the "border-block-start" CSS property. */ + var borderBlockStart :String; + /** Shorthand for the "border-block-start-color" CSS property. */ + var borderBlockStartColor :String; + /** Shorthand for the "border-block-start-style" CSS property. */ + var borderBlockStartStyle :String; + /** Shorthand for the "border-block-start-width" CSS property. */ + var borderBlockStartWidth :String; /** Shorthand for the "border-bottom" CSS property. */ var borderBottom :String; /** Shorthand for the "border-bottom-color" CSS property. */ @@ -134,6 +161,22 @@ extern class CSSStyleDeclaration implements ArrayAccess var borderImageSource :String; /** Shorthand for the "border-image-width" CSS property. */ var borderImageWidth :String; + /** Shorthand for the "border-inline-end" CSS property. */ + var borderInlineEnd :String; + /** Shorthand for the "border-inline-end-color" CSS property. */ + var borderInlineEndColor :String; + /** Shorthand for the "border-inline-end-style" CSS property. */ + var borderInlineEndStyle :String; + /** Shorthand for the "border-inline-end-width" CSS property. */ + var borderInlineEndWidth :String; + /** Shorthand for the "border-inline-start" CSS property. */ + var borderInlineStart :String; + /** Shorthand for the "border-inline-start-color" CSS property. */ + var borderInlineStartColor :String; + /** Shorthand for the "border-inline-start-style" CSS property. */ + var borderInlineStartStyle :String; + /** Shorthand for the "border-inline-start-width" CSS property. */ + var borderInlineStartWidth :String; /** Shorthand for the "border-left" CSS property. */ var borderLeft :String; /** Shorthand for the "border-left-color" CSS property. */ @@ -188,8 +231,12 @@ extern class CSSStyleDeclaration implements ArrayAccess var breakBefore :String; /** Shorthand for the "break-inside" CSS property. */ var breakInside :String; + /** Shorthand for the "buffered-rendering" CSS property. */ + var bufferedRendering :String; /** Shorthand for the "caption-side" CSS property. */ var captionSide :String; + /** Shorthand for the "caret-color" CSS property. */ + var caretColor :String; /** Shorthand for the "chains" CSS property. */ var chains :String; /** Shorthand for the "clear" CSS property. */ @@ -202,8 +249,14 @@ extern class CSSStyleDeclaration implements ArrayAccess var clipRule :String; /** Shorthand for the "color" CSS property. */ var color :String; + /** Shorthand for the "color-adjust" CSS property. */ + var colorAdjust :String; + /** Shorthand for the "color-interpolation" CSS property. */ + var colorInterpolation :String; /** Shorthand for the "color-interpolation-filters" CSS property. */ var colorInterpolationFilters :String; + /** Shorthand for the "color-rendering" CSS property. */ + var colorRendering :String; /** Shorthand for the "column-count" CSS property. */ var columnCount :String; /** Shorthand for the "column-fill" CSS property. */ @@ -236,6 +289,8 @@ extern class CSSStyleDeclaration implements ArrayAccess var counterSet :String; /** Shorthand for the "crop" CSS property. */ var crop :String; + /** Shorthand for the "css-float" CSS property. */ + var cssFloat :String; /** Shorthand for the "cue" CSS property. */ var cue :String; /** Shorthand for the "cue-after" CSS property. */ @@ -244,6 +299,12 @@ extern class CSSStyleDeclaration implements ArrayAccess var cueBefore :String; /** Shorthand for the "cursor" CSS property. */ var cursor :String; + /** Shorthand for the "cx" CSS property. */ + var cx :String; + /** Shorthand for the "cy" CSS property. */ + var cy :String; + /** Shorthand for the "d" CSS property. */ + var d :String; /** Shorthand for the "direction" CSS property. */ var direction :String; /** Shorthand for the "display" CSS property. */ @@ -260,6 +321,12 @@ extern class CSSStyleDeclaration implements ArrayAccess var elevation :String; /** Shorthand for the "empty-cells" CSS property. */ var emptyCells :String; + /** Shorthand for the "fill" CSS property. */ + var fill :String; + /** Shorthand for the "fill-opacity" CSS property. */ + var fillOpacity :String; + /** Shorthand for the "fill-rule" CSS property. */ + var fillRule :String; /** Shorthand for the "filter" CSS property. */ var filter :String; /** Shorthand for the "flex" CSS property. */ @@ -290,6 +357,8 @@ extern class CSSStyleDeclaration implements ArrayAccess var flowInto :String; /** Shorthand for the "font" CSS property. */ var font :String; + /** Shorthand for the "font-display" CSS property. */ + var fontDisplay :String; /** Shorthand for the "font-family" CSS property. */ var fontFamily :String; /** Shorthand for the "font-feature-settings" CSS property. */ @@ -298,6 +367,8 @@ extern class CSSStyleDeclaration implements ArrayAccess var fontKerning :String; /** Shorthand for the "font-language-override" CSS property. */ var fontLanguageOverride :String; + /** Shorthand for the "font-optical-sizing" CSS property. */ + var fontOpticalSizing :String; /** Shorthand for the "font-size" CSS property. */ var fontSize :String; /** Shorthand for the "font-size-adjust" CSS property. */ @@ -322,8 +393,12 @@ extern class CSSStyleDeclaration implements ArrayAccess var fontVariantNumeric :String; /** Shorthand for the "font-variant-position" CSS property. */ var fontVariantPosition :String; + /** Shorthand for the "font-variation-settings" CSS property. */ + var fontVariationSettings :String; /** Shorthand for the "font-weight" CSS property. */ var fontWeight :String; + /** Shorthand for the "gap" CSS property. */ + var gap :String; /** Shorthand for the "grid" CSS property. */ var grid :String; /** Shorthand for the "grid-area" CSS property. */ @@ -338,12 +413,18 @@ extern class CSSStyleDeclaration implements ArrayAccess var gridColumn :String; /** Shorthand for the "grid-column-end" CSS property. */ var gridColumnEnd :String; + /** Shorthand for the "grid-column-gap" CSS property. */ + var gridColumnGap :String; /** Shorthand for the "grid-column-start" CSS property. */ var gridColumnStart :String; + /** Shorthand for the "grid-gap" CSS property. */ + var gridGap :String; /** Shorthand for the "grid-row" CSS property. */ var gridRow :String; /** Shorthand for the "grid-row-end" CSS property. */ var gridRowEnd :String; + /** Shorthand for the "grid-row-gap" CSS property. */ + var gridRowGap :String; /** Shorthand for the "grid-row-start" CSS property. */ var gridRowStart :String; /** Shorthand for the "grid-template" CSS property. */ @@ -364,6 +445,8 @@ extern class CSSStyleDeclaration implements ArrayAccess var icon :String; /** Shorthand for the "image-orientation" CSS property. */ var imageOrientation :String; + /** Shorthand for the "image-rendering" CSS property. */ + var imageRendering :String; /** Shorthand for the "image-resolution" CSS property. */ var imageResolution :String; /** Shorthand for the "ime-mode" CSS property. */ @@ -372,6 +455,10 @@ extern class CSSStyleDeclaration implements ArrayAccess var initialLetters :String; /** Shorthand for the "inline-box-align" CSS property. */ var inlineBoxAlign :String; + /** Shorthand for the "inline-size" CSS property. */ + var inlineSize :String; + /** Shorthand for the "isolation" CSS property. */ + var isolation :String; /** Shorthand for the "justify-content" CSS property. */ var justifyContent :String; /** Shorthand for the "justify-items" CSS property. */ @@ -412,18 +499,34 @@ extern class CSSStyleDeclaration implements ArrayAccess var listStyleType :String; /** Shorthand for the "margin" CSS property. */ var margin :String; + /** Shorthand for the "margin-block-end" CSS property. */ + var marginBlockEnd :String; + /** Shorthand for the "margin-block-start" CSS property. */ + var marginBlockStart :String; /** Shorthand for the "margin-bottom" CSS property. */ var marginBottom :String; + /** Shorthand for the "margin-inline-end" CSS property. */ + var marginInlineEnd :String; + /** Shorthand for the "margin-inline-start" CSS property. */ + var marginInlineStart :String; /** Shorthand for the "margin-left" CSS property. */ var marginLeft :String; /** Shorthand for the "margin-right" CSS property. */ var marginRight :String; /** Shorthand for the "margin-top" CSS property. */ var marginTop :String; + /** Shorthand for the "marker" CSS property. */ + var marker :String; + /** Shorthand for the "marker-end" CSS property. */ + var markerEnd :String; + /** Shorthand for the "marker-mid" CSS property. */ + var markerMid :String; /** Shorthand for the "marker-offset" CSS property. */ var markerOffset :String; /** Shorthand for the "marker-side" CSS property. */ var markerSide :String; + /** Shorthand for the "marker-start" CSS property. */ + var markerStart :String; /** Shorthand for the "marks" CSS property. */ var marks :String; /** Shorthand for the "mask" CSS property. */ @@ -442,12 +545,20 @@ extern class CSSStyleDeclaration implements ArrayAccess var maskBoxWidth :String; /** Shorthand for the "mask-clip" CSS property. */ var maskClip :String; + /** Shorthand for the "mask-composite" CSS property. */ + var maskComposite :String; /** Shorthand for the "mask-image" CSS property. */ var maskImage :String; + /** Shorthand for the "mask-mode" CSS property. */ + var maskMode :String; /** Shorthand for the "mask-origin" CSS property. */ var maskOrigin :String; /** Shorthand for the "mask-position" CSS property. */ var maskPosition :String; + /** Shorthand for the "mask-position-x" CSS property. */ + var maskPositionX :String; + /** Shorthand for the "mask-position-y" CSS property. */ + var maskPositionY :String; /** Shorthand for the "mask-repeat" CSS property. */ var maskRepeat :String; /** Shorthand for the "mask-size" CSS property. */ @@ -456,16 +567,30 @@ extern class CSSStyleDeclaration implements ArrayAccess var maskSourceType :String; /** Shorthand for the "mask-type" CSS property. */ var maskType :String; + /** Shorthand for the "max-block-size" CSS property. */ + var maxBlockSize :String; /** Shorthand for the "max-height" CSS property. */ var maxHeight :String; + /** Shorthand for the "max-inline-size" CSS property. */ + var maxInlineSize :String; /** Shorthand for the "max-lines" CSS property. */ var maxLines :String; /** Shorthand for the "max-width" CSS property. */ var maxWidth :String; + /** Shorthand for the "max-zoom" CSS property. */ + var maxZoom :String; + /** Shorthand for the "min-block-size" CSS property. */ + var minBlockSize :String; /** Shorthand for the "min-height" CSS property. */ var minHeight :String; + /** Shorthand for the "min-inline-size" CSS property. */ + var minInlineSize :String; /** Shorthand for the "min-width" CSS property. */ var minWidth :String; + /** Shorthand for the "min-zoom" CSS property. */ + var minZoom :String; + /** Shorthand for the "mix-blend-mode" CSS property. */ + var mixBlendMode :String; /** Shorthand for the "move-to" CSS property. */ var moveTo :String; /** Shorthand for the "nav-down" CSS property. */ @@ -482,10 +607,28 @@ extern class CSSStyleDeclaration implements ArrayAccess var objectFit :String; /** Shorthand for the "object-position" CSS property. */ var objectPosition :String; + /** Shorthand for the "offset" CSS property. */ + var offset :String; + /** Shorthand for the "offset-block-end" CSS property. */ + var offsetBlockEnd :String; + /** Shorthand for the "offset-block-start" CSS property. */ + var offsetBlockStart :String; + /** Shorthand for the "offset-distance" CSS property. */ + var offsetDistance :String; + /** Shorthand for the "offset-inline-end" CSS property. */ + var offsetInlineEnd :String; + /** Shorthand for the "offset-inline-start" CSS property. */ + var offsetInlineStart :String; + /** Shorthand for the "offset-path" CSS property. */ + var offsetPath :String; + /** Shorthand for the "offset-rotate" CSS property. */ + var offsetRotate :String; /** Shorthand for the "opacity" CSS property. */ var opacity :String; /** Shorthand for the "order" CSS property. */ var order :String; + /** Shorthand for the "orientation" CSS property. */ + var orientation :String; /** Shorthand for the "orphans" CSS property. */ var orphans :String; /** Shorthand for the "outline" CSS property. */ @@ -500,16 +643,32 @@ extern class CSSStyleDeclaration implements ArrayAccess var outlineWidth :String; /** Shorthand for the "overflow" CSS property. */ var overflow :String; + /** Shorthand for the "overflow-anchor" CSS property. */ + var overflowAnchor :String; /** Shorthand for the "overflow-wrap" CSS property. */ var overflowWrap :String; /** Shorthand for the "overflow-x" CSS property. */ var overflowX :String; /** Shorthand for the "overflow-y" CSS property. */ var overflowY :String; + /** Shorthand for the "overscroll-behavior" CSS property. */ + var overscrollBehavior :String; + /** Shorthand for the "overscroll-behavior-x" CSS property. */ + var overscrollBehaviorX :String; + /** Shorthand for the "overscroll-behavior-y" CSS property. */ + var overscrollBehaviorY :String; /** Shorthand for the "padding" CSS property. */ var padding :String; + /** Shorthand for the "padding-block-end" CSS property. */ + var paddingBlockEnd :String; + /** Shorthand for the "padding-block-start" CSS property. */ + var paddingBlockStart :String; /** Shorthand for the "padding-bottom" CSS property. */ var paddingBottom :String; + /** Shorthand for the "padding-inline-end" CSS property. */ + var paddingInlineEnd :String; + /** Shorthand for the "padding-inline-start" CSS property. */ + var paddingInlineStart :String; /** Shorthand for the "padding-left" CSS property. */ var paddingLeft :String; /** Shorthand for the "padding-right" CSS property. */ @@ -526,6 +685,8 @@ extern class CSSStyleDeclaration implements ArrayAccess var pageBreakInside :String; /** Shorthand for the "page-policy" CSS property. */ var pagePolicy :String; + /** Shorthand for the "paint-order" CSS property. */ + var paintOrder :String; /** Shorthand for the "pause" CSS property. */ var pause :String; /** Shorthand for the "pause-after" CSS property. */ @@ -540,14 +701,24 @@ extern class CSSStyleDeclaration implements ArrayAccess var pitch :String; /** Shorthand for the "pitch-range" CSS property. */ var pitchRange :String; + /** Shorthand for the "place-content" CSS property. */ + var placeContent :String; + /** Shorthand for the "place-items" CSS property. */ + var placeItems :String; + /** Shorthand for the "place-self" CSS property. */ + var placeSelf :String; /** Shorthand for the "play-during" CSS property. */ var playDuring :String; + /** Shorthand for the "pointer-events" CSS property. */ + var pointerEvents :String; /** Shorthand for the "position" CSS property. */ var position :String; /** Shorthand for the "presentation-level" CSS property. */ var presentationLevel :String; /** Shorthand for the "quotes" CSS property. */ var quotes :String; + /** Shorthand for the "r" CSS property. */ + var r :String; /** Shorthand for the "region-fragment" CSS property. */ var regionFragment :String; /** Shorthand for the "resize" CSS property. */ @@ -566,18 +737,42 @@ extern class CSSStyleDeclaration implements ArrayAccess var rotation :String; /** Shorthand for the "rotation-point" CSS property. */ var rotationPoint :String; + /** Shorthand for the "row-gap" CSS property. */ + var rowGap :String; /** Shorthand for the "ruby-align" CSS property. */ var rubyAlign :String; /** Shorthand for the "ruby-merge" CSS property. */ var rubyMerge :String; /** Shorthand for the "ruby-position" CSS property. */ var rubyPosition :String; + /** Shorthand for the "rx" CSS property. */ + var rx :String; + /** Shorthand for the "ry" CSS property. */ + var ry :String; + /** Shorthand for the "scroll-behavior" CSS property. */ + var scrollBehavior :String; + /** Shorthand for the "scroll-snap-coordinate" CSS property. */ + var scrollSnapCoordinate :String; + /** Shorthand for the "scroll-snap-destination" CSS property. */ + var scrollSnapDestination :String; + /** Shorthand for the "scroll-snap-points-x" CSS property. */ + var scrollSnapPointsX :String; + /** Shorthand for the "scroll-snap-points-y" CSS property. */ + var scrollSnapPointsY :String; + /** Shorthand for the "scroll-snap-type" CSS property. */ + var scrollSnapType :String; + /** Shorthand for the "scroll-snap-type-x" CSS property. */ + var scrollSnapTypeX :String; + /** Shorthand for the "scroll-snap-type-y" CSS property. */ + var scrollSnapTypeY :String; /** Shorthand for the "shape-image-threshold" CSS property. */ var shapeImageThreshold :String; - /** Shorthand for the "shape-outside" CSS property. */ - var shapeOutside :String; /** Shorthand for the "shape-margin" CSS property. */ var shapeMargin :String; + /** Shorthand for the "shape-outside" CSS property. */ + var shapeOutside :String; + /** Shorthand for the "shape-rendering" CSS property. */ + var shapeRendering :String; /** Shorthand for the "size" CSS property. */ var size :String; /** Shorthand for the "speak" CSS property. */ @@ -592,10 +787,32 @@ extern class CSSStyleDeclaration implements ArrayAccess var speakPunctuation :String; /** Shorthand for the "speech-rate" CSS property. */ var speechRate :String; + /** Shorthand for the "src" CSS property. */ + var src :String; + /** Shorthand for the "stop-color" CSS property. */ + var stopColor :String; + /** Shorthand for the "stop-opacity" CSS property. */ + var stopOpacity :String; /** Shorthand for the "stress" CSS property. */ var stress :String; /** Shorthand for the "string-set" CSS property. */ var stringSet :String; + /** Shorthand for the "stroke" CSS property. */ + var stroke :String; + /** Shorthand for the "stroke-dasharray" CSS property. */ + var strokeDasharray :String; + /** Shorthand for the "stroke-dashoffset" CSS property. */ + var strokeDashoffset :String; + /** Shorthand for the "stroke-linecap" CSS property. */ + var strokeLinecap :String; + /** Shorthand for the "stroke-linejoin" CSS property. */ + var strokeLinejoin :String; + /** Shorthand for the "stroke-miterlimit" CSS property. */ + var strokeMiterlimit :String; + /** Shorthand for the "stroke-opacity" CSS property. */ + var strokeOpacity :String; + /** Shorthand for the "stroke-width" CSS property. */ + var strokeWidth :String; /** Shorthand for the "tab-size" CSS property. */ var tabSize :String; /** Shorthand for the "table-layout" CSS property. */ @@ -604,6 +821,8 @@ extern class CSSStyleDeclaration implements ArrayAccess var textAlign :String; /** Shorthand for the "text-align-last" CSS property. */ var textAlignLast :String; + /** Shorthand for the "text-anchor" CSS property. */ + var textAnchor :String; /** Shorthand for the "text-combine-upright" CSS property. */ var textCombineUpright :String; /** Shorthand for the "text-decoration" CSS property. */ @@ -614,6 +833,8 @@ extern class CSSStyleDeclaration implements ArrayAccess var textDecorationLine :String; /** Shorthand for the "text-decoration-skip" CSS property. */ var textDecorationSkip :String; + /** Shorthand for the "text-decoration-skip-ink" CSS property. */ + var textDecorationSkipInk :String; /** Shorthand for the "text-decoration-style" CSS property. */ var textDecorationStyle :String; /** Shorthand for the "text-emphasis" CSS property. */ @@ -634,8 +855,12 @@ extern class CSSStyleDeclaration implements ArrayAccess var textOrientation :String; /** Shorthand for the "text-overflow" CSS property. */ var textOverflow :String; + /** Shorthand for the "text-rendering" CSS property. */ + var textRendering :String; /** Shorthand for the "text-shadow" CSS property. */ var textShadow :String; + /** Shorthand for the "text-size-adjust" CSS property. */ + var textSizeAdjust :String; /** Shorthand for the "text-space-collapse" CSS property. */ var textSpaceCollapse :String; /** Shorthand for the "text-transform" CSS property. */ @@ -646,8 +871,12 @@ extern class CSSStyleDeclaration implements ArrayAccess var textWrap :String; /** Shorthand for the "top" CSS property. */ var top :String; + /** Shorthand for the "touch-action" CSS property. */ + var touchAction :String; /** Shorthand for the "transform" CSS property. */ var transform :String; + /** Shorthand for the "transform-box" CSS property. */ + var transformBox :String; /** Shorthand for the "transform-origin" CSS property. */ var transformOrigin :String; /** Shorthand for the "transform-style" CSS property. */ @@ -664,6 +893,14 @@ extern class CSSStyleDeclaration implements ArrayAccess var transitionTimingFunction :String; /** Shorthand for the "unicode-bidi" CSS property. */ var unicodeBidi :String; + /** Shorthand for the "unicode-range" CSS property. */ + var unicodeRange :String; + /** Shorthand for the "user-select" CSS property. */ + var userSelect :String; + /** Shorthand for the "user-zoom" CSS property. */ + var userZoom :String; + /** Shorthand for the "vector-effect" CSS property. */ + var vectorEffect :String; /** Shorthand for the "vertical-align" CSS property. */ var verticalAlign :String; /** Shorthand for the "visibility" CSS property. */ @@ -706,17 +943,21 @@ extern class CSSStyleDeclaration implements ArrayAccess var wrapThrough :String; /** Shorthand for the "writing-mode" CSS property. */ var writingMode :String; + /** Shorthand for the "x" CSS property. */ + var x :String; + /** Shorthand for the "y" CSS property. */ + var y :String; /** Shorthand for the "z-index" CSS property. */ var zIndex :String; + /** Shorthand for the "zoom" CSS property. */ + var zoom :String; function item( index : Int ) : String; /** @throws DOMError */ function getPropertyValue( property : String ) : String; - /** @throws DOMError */ - function getPropertyCSSValue( property : String ) : CSSValue; function getPropertyPriority( property : String ) : String; /** @throws DOMError */ - function setProperty( property : String, value : String, ?priority : String = "" ) : Void; + function setProperty( property : String, value : String, priority : String = "" ) : Void; /** @throws DOMError */ function removeProperty( property : String ) : String; } \ No newline at end of file diff --git a/std/js/html/CSSStyleRule.hx b/std/js/html/CSSStyleRule.hx index f94707ef..1fc1d7c9 100644 --- a/std/js/html/CSSStyleRule.hx +++ b/std/js/html/CSSStyleRule.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,7 +20,7 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from cssrule.webidl. Do not edit! +// This file is generated from mozilla\CSSStyleRule.webidl. Do not edit! package js.html; @@ -32,9 +32,16 @@ package js.html; @see **/ @:native("CSSStyleRule") -extern class CSSStyleRule extends CSSRule -{ +extern class CSSStyleRule extends CSSRule { + + /** + Gets the textual representation of the selector for this rule, e.g. `"h1,h2"`. + **/ var selectorText : String; + + /** + Returns the `CSSStyleDeclaration` object for the rule. + **/ var style(default,null) : CSSStyleDeclaration; } \ No newline at end of file diff --git a/std/js/html/CSSStyleSheet.hx b/std/js/html/CSSStyleSheet.hx index d6a03461..6ed72d44 100644 --- a/std/js/html/CSSStyleSheet.hx +++ b/std/js/html/CSSStyleSheet.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,13 +32,34 @@ package js.html; @see **/ @:native("CSSStyleSheet") -extern class CSSStyleSheet extends StyleSheet -{ +extern class CSSStyleSheet extends StyleSheet { + + /** + If this style sheet is imported into the document using an `@import` rule, the `ownerRule` property will return that `CSSImportRule`, otherwise it returns `null`. + **/ var ownerRule(default,null) : CSSRule; + + /** + Returns a live `CSSRuleList`, listing the `CSSRule` objects in the style sheet. + + This is normally used to access individual rules like this: + + `   styleSheet.cssRules[i] // where i = 0..cssRules.length-1` + + To add or remove items in `cssRules`, use the `CSSStyleSheet`'s `deleteRule()` and `insertRule()` methods, described below. + **/ var cssRules(default,null) : CSSRuleList; - /** @throws DOMError */ - function insertRule( rule : String, index : Int ) : Int; - /** @throws DOMError */ + + /** + Inserts a new rule at the specified position in the style sheet, given the textual representation of the rule. + @throws DOMError + **/ + function insertRule( rule : String, index : Int = 0 ) : Int; + + /** + Deletes a rule at the specified position from the style sheet. + @throws DOMError + **/ function deleteRule( index : Int ) : Void; } \ No newline at end of file diff --git a/std/js/html/CSSSupportsRule.hx b/std/js/html/CSSSupportsRule.hx new file mode 100644 index 00000000..e708dd47 --- /dev/null +++ b/std/js/html/CSSSupportsRule.hx @@ -0,0 +1,36 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\CSSSupportsRule.webidl. Do not edit! + +package js.html; + +/** + The `CSSSupportsRule` interface describes an object representing a single CSS `@supports` at-rule. It implements the `CSSConditionRule` interface, and therefore the `CSSRule` and `CSSGroupingRule` interfaces with a type value of `12` (`CSSRule.SUPPORTS_RULE`). + + Documentation [CSSSupportsRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("CSSSupportsRule") +extern class CSSSupportsRule extends CSSConditionRule { +} \ No newline at end of file diff --git a/std/js/html/CSSTransition.hx b/std/js/html/CSSTransition.hx index 0fc88083..336547aa 100644 --- a/std/js/html/CSSTransition.hx +++ b/std/js/html/CSSTransition.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,8 +25,7 @@ package js.html; @:native("CSSTransition") -extern class CSSTransition extends Animation -{ +extern class CSSTransition extends Animation { var transitionProperty(default,null) : String; } \ No newline at end of file diff --git a/std/js/html/CSSValue.hx b/std/js/html/CSSValue.hx deleted file mode 100644 index 0f3aea68..00000000 --- a/std/js/html/CSSValue.hx +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C)2005-2017 Haxe Foundation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -// This file is generated from mozilla\CSSValue.webidl. Do not edit! - -package js.html; - -/** - The `CSSValue` interface represents the current computed value of a CSS property. - - Documentation [CSSValue](https://developer.mozilla.org/en-US/docs/Web/API/CSSValue) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSValue$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). - - @see -**/ -@:native("CSSValue") -extern class CSSValue -{ - static inline var CSS_INHERIT : Int = 0; - static inline var CSS_PRIMITIVE_VALUE : Int = 1; - static inline var CSS_VALUE_LIST : Int = 2; - static inline var CSS_CUSTOM : Int = 3; - - - /** - A `DOMString` representing the current value. - **/ - var cssText : String; - - /** - An unsigned short representing a code defining the type of the value. Possible values are: - - - - - - - - - - - - - - - - - - - - - - - -
    ConstantDescription
    CSS_CUSTOMThe value is a custom value.
    CSS_INHERITThe value is inherited and the cssText contains "inherit".
    CSS_PRIMITIVE_VALUEThe value is a primitive value and an instance of the CSSPrimitiveValue interface can be obtained by using binding-specific casting methods on this instance of the CSSValue interface.
    CSS_VALUE_LISTThe value is a CSSValue list and an instance of the CSSValueList interface can be obtained by using binding-specific casting methods on this instance of the CSSValue interface.
    - - **/ - var cssValueType(default,null) : Int; - -} \ No newline at end of file diff --git a/std/js/html/Cache.hx b/std/js/html/Cache.hx new file mode 100644 index 00000000..93b9bd6d --- /dev/null +++ b/std/js/html/Cache.hx @@ -0,0 +1,51 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\Cache.webidl. Do not edit! + +package js.html; + +import js.lib.Promise; + +/** + The `Cache` interface provides a storage mechanism for `Request` / `Response` object pairs that are cached, for example as part of the `ServiceWorker` life cycle. Note that the `Cache` interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec. + + Documentation [Cache](https://developer.mozilla.org/en-US/docs/Web/API/Cache) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Cache$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("Cache") +extern class Cache { + @:overload( function( request : String, ?options : CacheQueryOptions) : Promise {} ) + function match( request : Request, ?options : CacheQueryOptions ) : Promise; + @:overload( function( ?request : String, ?options : CacheQueryOptions) : Promise> {} ) + function matchAll( ?request : Request, ?options : CacheQueryOptions ) : Promise>; + @:overload( function( request : String) : Promise {} ) + function add( request : Request ) : Promise; + function addAll( requests : Array> ) : Promise; + @:overload( function( request : String, response : Response) : Promise {} ) + function put( request : Request, response : Response ) : Promise; + @:overload( function( request : String, ?options : CacheQueryOptions) : Promise {} ) + function delete( request : Request, ?options : CacheQueryOptions ) : Promise; + @:overload( function( ?request : String, ?options : CacheQueryOptions) : Promise> {} ) + function keys( ?request : Request, ?options : CacheQueryOptions ) : Promise>; +} \ No newline at end of file diff --git a/std/js/html/CacheQueryOptions.hx b/std/js/html/CacheQueryOptions.hx new file mode 100644 index 00000000..95ff2936 --- /dev/null +++ b/std/js/html/CacheQueryOptions.hx @@ -0,0 +1,32 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\Cache.webidl. Do not edit! + +package js.html; + +typedef CacheQueryOptions = { + var ?cacheName : String; + var ?ignoreMethod : Bool; + var ?ignoreSearch : Bool; + var ?ignoreVary : Bool; +} \ No newline at end of file diff --git a/std/js/html/CacheStorage.hx b/std/js/html/CacheStorage.hx new file mode 100644 index 00000000..8a7546b0 --- /dev/null +++ b/std/js/html/CacheStorage.hx @@ -0,0 +1,66 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\CacheStorage.webidl. Do not edit! + +package js.html; + +import js.lib.Promise; + +/** + The `CacheStorage` interface represents the storage for `Cache` objects. + + Documentation [CacheStorage](https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("CacheStorage") +extern class CacheStorage { + /** @throws DOMError */ + function new( namespace : CacheStorageNamespace, principal : Dynamic/*MISSING Principal*/ ) : Void; + + /** + Checks if a given `Request` is a key in any of the `Cache` objects that the `CacheStorage` object tracks, and returns a `Promise` that resolves to that match. + **/ + @:overload( function( request : String, ?options : CacheQueryOptions) : Promise {} ) + function match( request : Request, ?options : CacheQueryOptions ) : Promise; + + /** + Returns a `Promise` that resolves to `true` if a `Cache` object matching the `cacheName` exists. + **/ + function has( cacheName : String ) : Promise; + + /** + Returns a `Promise` that resolves to the `Cache` object matching the `cacheName` (a new cache is created if it doesn't already exist.) + **/ + function open( cacheName : String ) : Promise; + + /** + Finds the `Cache` object matching the `cacheName`, and if found, deletes the `Cache` object and returns a `Promise` that resolves to `true`. If no `Cache` object is found, it returns `false`. + **/ + function delete( cacheName : String ) : Promise; + + /** + Returns a `Promise` that will resolve with an array containing strings corresponding to all of the named `Cache` objects tracked by the `CacheStorage`. Use this method to iterate over a list of all the `Cache` objects. + **/ + function keys() : Promise>; +} \ No newline at end of file diff --git a/std/js/html/CacheStorageNamespace.hx b/std/js/html/CacheStorageNamespace.hx new file mode 100644 index 00000000..4a5ed31e --- /dev/null +++ b/std/js/html/CacheStorageNamespace.hx @@ -0,0 +1,30 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\CacheStorage.webidl. Do not edit! + +package js.html; + +enum abstract CacheStorageNamespace(String) { + var CONTENT = "content"; + var CHROME = "chrome"; +} \ No newline at end of file diff --git a/std/js/html/CanvasCaptureMediaStream.hx b/std/js/html/CanvasCaptureMediaStream.hx new file mode 100644 index 00000000..935314fb --- /dev/null +++ b/std/js/html/CanvasCaptureMediaStream.hx @@ -0,0 +1,32 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\CanvasCaptureMediaStream.webidl. Do not edit! + +package js.html; + +@:native("CanvasCaptureMediaStream") +extern class CanvasCaptureMediaStream extends MediaStream { + var canvas(default,null) : CanvasElement; + + function requestFrame() : Void; +} \ No newline at end of file diff --git a/std/js/html/CanvasElement.hx b/std/js/html/CanvasElement.hx index ca6b006a..205485fc 100644 --- a/std/js/html/CanvasElement.hx +++ b/std/js/html/CanvasElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("HTMLCanvasElement") -extern class CanvasElement extends Element -{ +extern class CanvasElement extends Element { /** Is a positive `integer` reflecting the `width` HTML attribute of the `canvas` element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of `300` is used. @@ -45,24 +44,30 @@ extern class CanvasElement extends Element **/ var height : Int; - /** @throws DOMError */ /** - Returns a drawing context on the canvas, or null if the context ID is not supported. A drawing context lets you draw on the canvas. Calling getContext with `"2d"` returns a `CanvasRenderingContext2D` object, whereas calling it with `"experimental-webgl"` (or `"webgl"`) returns a `WebGLRenderingContext` object. This context is only available on browsers that implement WebGL. + Returns a drawing context on the canvas, or null if the context ID is not supported. A drawing context lets you draw on the canvas. Calling getContext with `"2d"` returns a `CanvasRenderingContext2D` object, whereas calling it with `"webgl"` (or `"experimental-webgl"`) returns a `WebGLRenderingContext` object. This context is only available on browsers that implement WebGL. + @throws DOMError **/ - function getContext( contextId : String, ?contextOptions : Dynamic ) : Dynamic/*MISSING nsISupports*/; - /** @throws DOMError */ + function getContext( contextId : String, ?contextOptions : Dynamic ) : Dynamic; /** Returns a data-URL containing a representation of the image in the format specified by the `type` parameter (defaults to `png`). The returned image is in a resolution of 96dpi. + @throws DOMError **/ - function toDataURL( ?type : String = "", ?encoderOptions : Dynamic ) : String; - /** @throws DOMError */ + function toDataURL( type : String = "", ?encoderOptions : Dynamic ) : String; /** Creates a `Blob` object representing the image contained in the canvas; this file may be cached on the disk or stored in memory at the discretion of the user agent. + @throws DOMError **/ - function toBlob( callback : Blob -> Void, ?type : String = "", ?encoderOptions : Dynamic ) : Void; + function toBlob( callback : Blob -> Void, type : String = "", ?encoderOptions : Dynamic ) : Void; + + /** + Returns a `CanvasCaptureMediaStream` that is a real-time video capture of the surface of the canvas. + @throws DOMError + **/ + function captureStream( ?frameRate : Float ) : CanvasCaptureMediaStream; /** Shorthand for getting a CanvasRenderingContext2D. */ inline function getContext2d( ?attribs : {} ) : CanvasRenderingContext2D { @@ -72,6 +77,10 @@ extern class CanvasElement extends Element inline function getContextWebGL( ?attribs : js.html.webgl.ContextAttributes ) : js.html.webgl.RenderingContext { return CanvasUtil.getContextWebGL(this, attribs); } + /** Shorthand for getting a js.html.webgl.WebGL2RenderingContext. */ + inline function getContextWebGL2( ?attribs : js.html.webgl.ContextAttributes ) : js.html.webgl.WebGL2RenderingContext { + return this.getContext('webgl2', attribs); + } } private class CanvasUtil { diff --git a/std/js/html/CanvasGradient.hx b/std/js/html/CanvasGradient.hx index 55e9da09..7934def1 100644 --- a/std/js/html/CanvasGradient.hx +++ b/std/js/html/CanvasGradient.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,12 +32,11 @@ package js.html; @see **/ @:native("CanvasGradient") -extern class CanvasGradient -{ - /** @throws DOMError */ +extern class CanvasGradient { /** Adds a new stop, defined by an `offset` and a `color`, to the gradient. If the offset is not between `0` and `1` an `INDEX_SIZE_ERR` is raised, if the color can't be parsed as a CSS `color`, a `SYNTAX_ERR` is raised. + @throws DOMError **/ function addColorStop( offset : Float, color : String ) : Void; } \ No newline at end of file diff --git a/std/js/html/CanvasPattern.hx b/std/js/html/CanvasPattern.hx index b7f4bcec..560b10df 100644 --- a/std/js/html/CanvasPattern.hx +++ b/std/js/html/CanvasPattern.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,15 +25,14 @@ package js.html; /** - The `CanvasPattern` interface represents an opaque object describing a pattern, based on an image, a canvas or a video, created by the `CanvasRenderingContext2D.createPattern()` method. + The `CanvasPattern` interface represents an opaque object describing a pattern, based on an image, a canvas, or a video, created by the `CanvasRenderingContext2D.createPattern()` method. Documentation [CanvasPattern](https://developer.mozilla.org/en-US/docs/Web/API/CanvasPattern) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CanvasPattern$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("CanvasPattern") -extern class CanvasPattern -{ +extern class CanvasPattern { /** Applies an `SVGMatrix` representing a linear transform to the pattern. diff --git a/std/js/html/CanvasRenderingContext2D.hx b/std/js/html/CanvasRenderingContext2D.hx index 2f57327e..810444c0 100644 --- a/std/js/html/CanvasRenderingContext2D.hx +++ b/std/js/html/CanvasRenderingContext2D.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,17 +32,12 @@ package js.html; @see **/ @:native("CanvasRenderingContext2D") -extern class CanvasRenderingContext2D -{ +extern class CanvasRenderingContext2D { var canvas(default,null) : CanvasElement; var globalAlpha : Float; var globalCompositeOperation : String; var strokeStyle : haxe.extern.EitherType>; var fillStyle : haxe.extern.EitherType>; - var shadowOffsetX : Float; - var shadowOffsetY : Float; - var shadowBlur : Float; - var shadowColor : String; var filter : String; var imageSmoothingEnabled : Bool; var lineWidth : Float; @@ -50,56 +45,50 @@ extern class CanvasRenderingContext2D var lineJoin : String; var miterLimit : Float; var lineDashOffset : Float; + var shadowOffsetX : Float; + var shadowOffsetY : Float; + var shadowBlur : Float; + var shadowColor : String; var font : String; var textAlign : String; var textBaseline : String; - function save() : Void; - function restore() : Void; - /** @throws DOMError */ - function scale( x : Float, y : Float ) : Void; - /** @throws DOMError */ - function rotate( angle : Float ) : Void; - /** @throws DOMError */ - function translate( x : Float, y : Float ) : Void; /** @throws DOMError */ - function transform( a : Float, b : Float, c : Float, d : Float, e : Float, f : Float ) : Void; - /** @throws DOMError */ - function setTransform( a : Float, b : Float, c : Float, d : Float, e : Float, f : Float ) : Void; - /** @throws DOMError */ - function resetTransform() : Void; - function createLinearGradient( x0 : Float, y0 : Float, x1 : Float, y1 : Float ) : CanvasGradient; - /** @throws DOMError */ - function createRadialGradient( x0 : Float, y0 : Float, r0 : Float, x1 : Float, y1 : Float, r1 : Float ) : CanvasGradient; - /** @throws DOMError */ - function createPattern( image : haxe.extern.EitherType>>, repetition : String ) : CanvasPattern; - function clearRect( x : Float, y : Float, w : Float, h : Float ) : Void; - function fillRect( x : Float, y : Float, w : Float, h : Float ) : Void; - function strokeRect( x : Float, y : Float, w : Float, h : Float ) : Void; + @:overload( function( image : js.html.svg.ImageElement, dx : Float, dy : Float) : Void {} ) + @:overload( function( image : CanvasElement, dx : Float, dy : Float) : Void {} ) + @:overload( function( image : VideoElement, dx : Float, dy : Float) : Void {} ) + @:overload( function( image : ImageBitmap, dx : Float, dy : Float) : Void {} ) + @:overload( function( image : js.html.svg.ImageElement, dx : Float, dy : Float, dw : Float, dh : Float) : Void {} ) + @:overload( function( image : CanvasElement, dx : Float, dy : Float, dw : Float, dh : Float) : Void {} ) + @:overload( function( image : VideoElement, dx : Float, dy : Float, dw : Float, dh : Float) : Void {} ) + @:overload( function( image : ImageBitmap, dx : Float, dy : Float, dw : Float, dh : Float) : Void {} ) + @:overload( function( image : js.html.svg.ImageElement, sx : Float, sy : Float, sw : Float, sh : Float, dx : Float, dy : Float, dw : Float, dh : Float) : Void {} ) + @:overload( function( image : CanvasElement, sx : Float, sy : Float, sw : Float, sh : Float, dx : Float, dy : Float, dw : Float, dh : Float) : Void {} ) + @:overload( function( image : VideoElement, sx : Float, sy : Float, sw : Float, sh : Float, dx : Float, dy : Float, dw : Float, dh : Float) : Void {} ) + @:overload( function( image : ImageBitmap, sx : Float, sy : Float, sw : Float, sh : Float, dx : Float, dy : Float, dw : Float, dh : Float) : Void {} ) + @:overload( function( image : ImageElement, dx : Float, dy : Float ) : Void {} ) + @:overload( function( image : ImageElement, dx : Float, dy : Float, dw : Float, dh : Float ) : Void {} ) + function drawImage( image : ImageElement, sx : Float, sy : Float, sw : Float, sh : Float, dx : Float, dy : Float, dw : Float, dh : Float ) : Void; function beginPath() : Void; - @:overload( function( ?winding : CanvasWindingRule = "nonzero" ) : Void {} ) - function fill( path : Path2D, ?winding : CanvasWindingRule = "nonzero" ) : Void; + @:overload( function( winding : CanvasWindingRule = NONZERO ) : Void {} ) + function fill( path : Path2D, winding : CanvasWindingRule = NONZERO ) : Void; @:overload( function() : Void {} ) function stroke( path : Path2D ) : Void; - /** @throws DOMError */ - function drawFocusIfNeeded( element : Element ) : Void; - function drawCustomFocusRing( element : Element ) : Bool; - @:overload( function( ?winding : CanvasWindingRule = "nonzero" ) : Void {} ) - function clip( path : Path2D, ?winding : CanvasWindingRule = "nonzero" ) : Void; - @:overload( function( x : Float, y : Float, ?winding : CanvasWindingRule = "nonzero" ) : Bool {} ) - function isPointInPath( path : Path2D, x : Float, y : Float, ?winding : CanvasWindingRule = "nonzero" ) : Bool; + @:overload( function( winding : CanvasWindingRule = NONZERO ) : Void {} ) + function clip( path : Path2D, winding : CanvasWindingRule = NONZERO ) : Void; + @:overload( function( x : Float, y : Float, winding : CanvasWindingRule = NONZERO ) : Bool {} ) + function isPointInPath( path : Path2D, x : Float, y : Float, winding : CanvasWindingRule = NONZERO ) : Bool; @:overload( function( x : Float, y : Float ) : Bool {} ) function isPointInStroke( path : Path2D, x : Float, y : Float ) : Bool; + function createLinearGradient( x0 : Float, y0 : Float, x1 : Float, y1 : Float ) : CanvasGradient; /** @throws DOMError */ - function fillText( text : String, x : Float, y : Float, ?maxWidth : Float ) : Void; - /** @throws DOMError */ - function strokeText( text : String, x : Float, y : Float, ?maxWidth : Float ) : Void; - /** @throws DOMError */ - function measureText( text : String ) : TextMetrics; + function createRadialGradient( x0 : Float, y0 : Float, r0 : Float, x1 : Float, y1 : Float, r1 : Float ) : CanvasGradient; /** @throws DOMError */ - @:overload( function( image : haxe.extern.EitherType>>, dx : Float, dy : Float ) : Void {} ) - @:overload( function( image : haxe.extern.EitherType>>, dx : Float, dy : Float, dw : Float, dh : Float ) : Void {} ) - function drawImage( image : haxe.extern.EitherType>>, sx : Float, sy : Float, sw : Float, sh : Float, dx : Float, dy : Float, dw : Float, dh : Float ) : Void; + @:overload( function( image : js.html.svg.ImageElement, repetition : String) : CanvasPattern {} ) + @:overload( function( image : CanvasElement, repetition : String) : CanvasPattern {} ) + @:overload( function( image : VideoElement, repetition : String) : CanvasPattern {} ) + @:overload( function( image : ImageBitmap, repetition : String) : CanvasPattern {} ) + function createPattern( image : ImageElement, repetition : String ) : CanvasPattern; /** @throws DOMError */ function addHitRegion( ?options : HitRegionOptions ) : Void; function removeHitRegion( id : String ) : Void; @@ -124,7 +113,33 @@ extern class CanvasRenderingContext2D function arcTo( x1 : Float, y1 : Float, x2 : Float, y2 : Float, radius : Float ) : Void; function rect( x : Float, y : Float, w : Float, h : Float ) : Void; /** @throws DOMError */ - function arc( x : Float, y : Float, radius : Float, startAngle : Float, endAngle : Float, ?anticlockwise : Bool = false ) : Void; + function arc( x : Float, y : Float, radius : Float, startAngle : Float, endAngle : Float, anticlockwise : Bool = false ) : Void; + /** @throws DOMError */ + function ellipse( x : Float, y : Float, radiusX : Float, radiusY : Float, rotation : Float, startAngle : Float, endAngle : Float, anticlockwise : Bool = false ) : Void; + function clearRect( x : Float, y : Float, w : Float, h : Float ) : Void; + function fillRect( x : Float, y : Float, w : Float, h : Float ) : Void; + function strokeRect( x : Float, y : Float, w : Float, h : Float ) : Void; + function save() : Void; + function restore() : Void; + /** @throws DOMError */ + function fillText( text : String, x : Float, y : Float, ?maxWidth : Float ) : Void; + /** @throws DOMError */ + function strokeText( text : String, x : Float, y : Float, ?maxWidth : Float ) : Void; + /** @throws DOMError */ + function measureText( text : String ) : TextMetrics; + /** @throws DOMError */ + function scale( x : Float, y : Float ) : Void; + /** @throws DOMError */ + function rotate( angle : Float ) : Void; + /** @throws DOMError */ + function translate( x : Float, y : Float ) : Void; + /** @throws DOMError */ + function transform( a : Float, b : Float, c : Float, d : Float, e : Float, f : Float ) : Void; + /** @throws DOMError */ + function setTransform( a : Float, b : Float, c : Float, d : Float, e : Float, f : Float ) : Void; + /** @throws DOMError */ + function resetTransform() : Void; /** @throws DOMError */ - function ellipse( x : Float, y : Float, radiusX : Float, radiusY : Float, rotation : Float, startAngle : Float, endAngle : Float, ?anticlockwise : Bool = false ) : Void; + function drawFocusIfNeeded( element : Element ) : Void; + function drawCustomFocusRing( element : Element ) : Bool; } \ No newline at end of file diff --git a/std/js/html/CanvasWindingRule.hx b/std/js/html/CanvasWindingRule.hx index c0b6c6c2..4d7c6437 100644 --- a/std/js/html/CanvasWindingRule.hx +++ b/std/js/html/CanvasWindingRule.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -@:enum abstract CanvasWindingRule(String) -{ +enum abstract CanvasWindingRule(String) { var NONZERO = "nonzero"; var EVENODD = "evenodd"; } \ No newline at end of file diff --git a/std/js/html/CaretPosition.hx b/std/js/html/CaretPosition.hx index 45f5fede..aaa5d77e 100644 --- a/std/js/html/CaretPosition.hx +++ b/std/js/html/CaretPosition.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("CaretPosition") -extern class CaretPosition -{ +extern class CaretPosition { /** Returns a `Node` containing the found node at the caret's position. diff --git a/std/js/html/ChannelPixelLayout.hx b/std/js/html/ChannelPixelLayout.hx new file mode 100644 index 00000000..62671b1f --- /dev/null +++ b/std/js/html/ChannelPixelLayout.hx @@ -0,0 +1,34 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\ImageBitmap.webidl. Do not edit! + +package js.html; + +typedef ChannelPixelLayout = { + var dataType : ChannelPixelLayoutDataType; + var height : Int; + var offset : Int; + var skip : Int; + var stride : Int; + var width : Int; +} \ No newline at end of file diff --git a/std/js/html/CommandEvent.hx b/std/js/html/ChannelPixelLayoutDataType.hx similarity index 75% rename from std/js/html/CommandEvent.hx rename to std/js/html/ChannelPixelLayoutDataType.hx index 39b76356..66d6cb77 100644 --- a/std/js/html/CommandEvent.hx +++ b/std/js/html/ChannelPixelLayoutDataType.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,14 +20,17 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from mozilla\CommandEvent.webidl. Do not edit! +// This file is generated from mozilla\ImageBitmap.webidl. Do not edit! package js.html; -@:native("CommandEvent") -extern class CommandEvent extends Event -{ - var command(default,null) : String; - - function initCommandEvent( type : String, canBubble : Bool, cancelable : Bool, command : String ) : Void; +enum abstract ChannelPixelLayoutDataType(String) { + var UINT8 = "uint8"; + var INT8 = "int8"; + var UINT16 = "uint16"; + var INT16 = "int16"; + var UINT32 = "uint32"; + var INT32 = "int32"; + var FLOAT32 = "float32"; + var FLOAT64 = "float64"; } \ No newline at end of file diff --git a/std/js/html/CharacterData.hx b/std/js/html/CharacterData.hx index a7456958..a6ba5aa1 100644 --- a/std/js/html/CharacterData.hx +++ b/std/js/html/CharacterData.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,15 +25,14 @@ package js.html; /** - The `CharacterData` abstract interface represents a `Node` object that contains characters. This is an abstract interface, meaning there aren't any object of type `CharacterData`: it is implemented by other interfaces, like `Text`, `Comment`, or `ProcessingInstruction` which aren't abstract. + The `CharacterData` abstract interface represents a `Node` object that contains characters. This is an abstract interface, meaning there aren't any object of type `CharacterData`: it is implemented by other interfaces, like `Text`, '. In XML, the character sequence '--' cannot be used within a comment.">`Comment`, or `ProcessingInstruction` which aren't abstract. Documentation [CharacterData](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("CharacterData") -extern class CharacterData extends Node -{ +extern class CharacterData extends Node { /** Is a `DOMString` representing the textual data contained in this object. @@ -47,35 +46,44 @@ extern class CharacterData extends Node var previousElementSibling(default,null) : Element; var nextElementSibling(default,null) : Element; - /** @throws DOMError */ /** Returns a `DOMString` containing the part of `CharacterData.data` of the specified length and starting at the specified offset. + @throws DOMError **/ function substringData( offset : Int, count : Int ) : String; - /** @throws DOMError */ /** Appends the given `DOMString` to the `CharacterData.data` string; when this method returns, `data` contains the concatenated `DOMString`. + @throws DOMError **/ function appendData( data : String ) : Void; - /** @throws DOMError */ /** Inserts the specified characters, at the specified offset, in the `CharacterData.data` string; when this method returns, `data` contains the modified `DOMString`. + @throws DOMError **/ function insertData( offset : Int, data : String ) : Void; - /** @throws DOMError */ /** Removes the specified amount of characters, starting at the specified offset, from the `CharacterData.data` string; when this method returns, `data` contains the shortened `DOMString`. + @throws DOMError **/ function deleteData( offset : Int, count : Int ) : Void; - /** @throws DOMError */ /** Replaces the specified amount of characters, starting at the specified offset, with the specified `DOMString`; when this method returns, `data` contains the modified `DOMString`. + @throws DOMError **/ function replaceData( offset : Int, count : Int, data : String ) : Void; + /** @throws DOMError */ + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function before( nodes : haxe.extern.Rest ) : Void; + /** @throws DOMError */ + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function after( nodes : haxe.extern.Rest ) : Void; + /** @throws DOMError */ + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function replaceWith( nodes : haxe.extern.Rest ) : Void; function remove() : Void; } \ No newline at end of file diff --git a/std/js/html/Client.hx b/std/js/html/Client.hx index 3018a17c..7074b7cf 100644 --- a/std/js/html/Client.hx +++ b/std/js/html/Client.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,35 +25,35 @@ package js.html; /** - The `Client` interface of the ServiceWorker API represents the scope of a service worker client. A service worker client is either a document in a browser context or a `SharedWorker`, which is controlled by an active worker. A client object acts as a snapshot representation of its associated service worker client in the scope of a service worker. + The `Client` interface represents an executable context such as a `Worker`, or a `SharedWorker`. `Window` clients are represented by the more-specific `WindowClient`. You can get `Client`/`WindowClient` objects from methods such as `Clients.matchAll()` and `Clients.get()`. Documentation [Client](https://developer.mozilla.org/en-US/docs/Web/API/Client) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Client$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("Client") -extern class Client -{ +extern class Client { /** - The URL of the current service worker client. + The URL of the client as a string. **/ var url(default,null) : String; + var frameType(default,null) : FrameType; /** - Indicates the type of browsing context of the current client. This value can be one of `auxiliary`, `top-level`, `nested`, or `none`. + The client's type as a string. It can be "`window"`, "`worker"`, or "`sharedworker"`. **/ - var frameType(default,null) : FrameType; + var type(default,null) : ClientType; /** - Returns the universally unique identifier of the `Client` object. + The universally unique identifier of the client as a string. **/ var id(default,null) : String; - /** @throws DOMError */ /** - Allows a service worker to send a message to a `ServiceWorkerClient`. + Sends a message to the client. + @throws DOMError **/ function postMessage( message : Dynamic, ?transfer : Array ) : Void; } \ No newline at end of file diff --git a/std/js/html/ClientQueryOptions.hx b/std/js/html/ClientQueryOptions.hx index cea59eb2..9bccf19a 100644 --- a/std/js/html/ClientQueryOptions.hx +++ b/std/js/html/ClientQueryOptions.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -typedef ClientQueryOptions = -{ - @:optional var includeUncontrolled : Bool; - @:optional var type : Dynamic/*MISSING ClientType*/; +typedef ClientQueryOptions = { + var ?includeUncontrolled : Bool; + var ?type : ClientType; } \ No newline at end of file diff --git a/std/js/html/ClientType.hx b/std/js/html/ClientType.hx new file mode 100644 index 00000000..444f2510 --- /dev/null +++ b/std/js/html/ClientType.hx @@ -0,0 +1,33 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\Clients.webidl. Do not edit! + +package js.html; + +enum abstract ClientType(String) { + var WINDOW = "window"; + var WORKER = "worker"; + var SHAREDWORKER = "sharedworker"; + var SERVICEWORKER = "serviceworker"; + var ALL = "all"; +} \ No newline at end of file diff --git a/std/js/html/Clients.hx b/std/js/html/Clients.hx index ba9535c1..2d5d5309 100644 --- a/std/js/html/Clients.hx +++ b/std/js/html/Clients.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,29 +24,35 @@ package js.html; +import js.lib.Promise; + /** - The `Clients` interface of the Service Workers API represents a container for a list of `Client` objects. + The `Clients` interface provides access to `Client` objects. Access it via ``self`.clients` within a service worker. Documentation [Clients](https://developer.mozilla.org/en-US/docs/Web/API/Clients) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Clients$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("Clients") -extern class Clients -{ - +extern class Clients { + /** - Gets a service worker client matching a given `id` and returns it in a `Promise`. + Returns a `Promise` for a `Client` matching a given `Client.id`. **/ function get( id : String ) : Promise; - + /** - Gets a list of service worker clients and returns them in a `Promise`. Include the `options` parameter to return all service worker clients whose origin is the same as the associated service worker's origin. If `options` are not included, the method returns only the service worker clients controlled by the service worker.  + Returns a `Promise` for an array of `Client` objects. An options argument allows you to control the types of clients returned.  **/ function matchAll( ?options : ClientQueryOptions ) : Promise>; - + + /** + Opens a new browser window for a given url and returns a `Promise` for the new `WindowClient`. + **/ + function openWindow( url : String ) : Promise; + /** - Allows an active Service Worker to set itself as the active worker for a client page when the worker and the page are in the same scope.  + Allows an active service worker to set itself as the `ServiceWorkerContainer.controller` for all clients within its `ServiceWorkerRegistration.scope`.  **/ function claim() : Promise; } \ No newline at end of file diff --git a/std/js/html/Clipboard.hx b/std/js/html/Clipboard.hx new file mode 100644 index 00000000..ee00461d --- /dev/null +++ b/std/js/html/Clipboard.hx @@ -0,0 +1,62 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\Clipboard.webidl. Do not edit! + +package js.html; + +import js.lib.Promise; + +/** + The `Clipboard` interface implements the Clipboard API, providing—if the user grants permission—both read and write access to the contents of the system clipboard. + + Documentation [Clipboard](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("Clipboard") +extern class Clipboard extends EventTarget { + + /** + Requests arbitrary data (such as images) from the clipboard, returning a `Promise`. When the data has been retrieved, the promise is resolved with a `DataTransfer` object that provides the data. + @throws DOMError + **/ + function read() : Promise; + + /** + Requests text from the system clipboard; returns a `Promise` which is resolved with a `DOMString` containing the clipboard's text once it's available. + @throws DOMError + **/ + function readText() : Promise; + + /** + Writes arbitrary data to the system clipboard. This asynchronous operation signals that it's finished by resolving the returned `Promise`. + @throws DOMError + **/ + function write( data : DataTransfer ) : Promise; + + /** + Writes text to the system clipboard, returning a `Promise` which is resolved once the text is fully copied into the clipboard. + @throws DOMError + **/ + function writeText( data : String ) : Promise; +} \ No newline at end of file diff --git a/std/js/html/ClipboardEvent.hx b/std/js/html/ClipboardEvent.hx index da5f9c61..6e52531a 100644 --- a/std/js/html/ClipboardEvent.hx +++ b/std/js/html/ClipboardEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("ClipboardEvent") -extern class ClipboardEvent extends Event -{ +extern class ClipboardEvent extends Event { /** Is a `DataTransfer` object containing the data affected by the user-initiated `cut`, `copy`, or `paste` operation, along with its MIME type. diff --git a/std/js/html/ClipboardEventInit.hx b/std/js/html/ClipboardEventInit.hx index 87ffbc32..07cece3f 100644 --- a/std/js/html/ClipboardEventInit.hx +++ b/std/js/html/ClipboardEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,9 +24,7 @@ package js.html; -typedef ClipboardEventInit = -{ - > EventInit, - @:optional var data : String; - @:optional var dataType : String; +typedef ClipboardEventInit = EventInit & { + var ?data : String; + var ?dataType : String; } \ No newline at end of file diff --git a/std/js/html/CloseEvent.hx b/std/js/html/CloseEvent.hx index 752e41fa..0ee0a7e2 100644 --- a/std/js/html/CloseEvent.hx +++ b/std/js/html/CloseEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("CloseEvent") -extern class CloseEvent extends Event -{ +extern class CloseEvent extends Event { /** Returns a `Boolean` that Indicates whether or not the connection was cleanly closed. @@ -41,122 +40,122 @@ extern class CloseEvent extends Event var wasClean(default,null) : Bool; /** - Returns an unsigned short containing the close code send by the server. The following values are permitted status codes. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Status codeNameDescription
    0999 Reserved and not used.
    1000CLOSE_NORMALNormal closure; the connection successfully completed whatever purpose for which it was created.
    1001CLOSE_GOING_AWAYThe endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection.
    1002CLOSE_PROTOCOL_ERRORThe endpoint is terminating the connection due to a protocol error.
    1003CLOSE_UNSUPPORTEDThe connection is being terminated because the endpoint received data of a type it cannot accept (for example, a text-only endpoint received binary data).
    1004 Reserved. A meaning might be defined in the future.
    1005CLOSE_NO_STATUSReserved.  Indicates that no status code was provided even though one was expected.
    1006CLOSE_ABNORMALReserved. Used to indicate that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected.
    1007Unsupported DataThe endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., non-UTF-8 data within a text message).
    1008Policy ViolationThe endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable.
    1009CLOSE_TOO_LARGEThe endpoint is terminating the connection because a data frame was received that is too large.
    1010Missing ExtensionThe client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn't.
    1011Internal ErrorThe server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.
    1012Service RestartThe server is terminating the connection because it is restarting. [Ref]
    1013Try Again LaterThe server is terminating the connection due to a temporary condition, e.g. it is overloaded and is casting off some of its clients. [Ref]
    1014 Reserved for future use by the WebSocket standard.
    1015TLS HandshakeReserved. Indicates that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).
    10161999 Reserved for future use by the WebSocket standard.
    20002999 Reserved for use by WebSocket extensions.
    30003999 Available for use by libraries and frameworks. May not be used by applications. Available for registration at the IANA via first-come, first-serve.
    40004999 Available for use by applications.
    - + Returns an unsigned short containing the close code send by the server. The following values are permitted status codes. The following definitions are sourced from the IANA website [Ref]. Note that the 1xxx codes are only WebSocket-internal and not for the same meaning by the transported data (like when the application-layer protocol is invalid). The only permitted codes to be specified in Firefox are 1000 and 3000 to 4999 [Source, Bug]. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Status codeNameDescription
    0999 Reserved and not used.
    1000Normal ClosureNormal closure; the connection successfully completed whatever purpose for which it was created.
    1001Going AwayThe endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection.
    1002Protocol ErrorThe endpoint is terminating the connection due to a protocol error.
    1003Unsupported DataThe connection is being terminated because the endpoint received data of a type it cannot accept (for example, a text-only endpoint received binary data).
    1004 Reserved. A meaning might be defined in the future.
    1005No Status RecvdReserved.  Indicates that no status code was provided even though one was expected.
    1006Abnormal ClosureReserved. Used to indicate that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected.
    1007Invalid frame payload dataThe endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., non-UTF-8 data within a text message).
    1008Policy ViolationThe endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable.
    1009Message too bigThe endpoint is terminating the connection because a data frame was received that is too large.
    1010Missing ExtensionThe client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn't.
    1011Internal ErrorThe server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.
    1012Service RestartThe server is terminating the connection because it is restarting. [Ref]
    1013Try Again LaterThe server is terminating the connection due to a temporary condition, e.g. it is overloaded and is casting off some of its clients. [Ref]
    1014Bad GatewayThe server was acting as a gateway or proxy and received an invalid response from the upstream server. This is similar to 502 HTTP Status Code.
    1015TLS HandshakeReserved. Indicates that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).
    10161999 Reserved for future use by the WebSocket standard.
    20002999 Reserved for use by WebSocket extensions.
    30003999 Available for use by libraries and frameworks. May not be used by applications. Available for registration at the IANA via first-come, first-serve.
    40004999 Available for use by applications.
    + **/ var code(default,null) : Int; diff --git a/std/js/html/CloseEventInit.hx b/std/js/html/CloseEventInit.hx index 11bcd080..7a33c7e5 100644 --- a/std/js/html/CloseEventInit.hx +++ b/std/js/html/CloseEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,10 +24,8 @@ package js.html; -typedef CloseEventInit = -{ - > EventInit, - @:optional var code : Int; - @:optional var reason : String; - @:optional var wasClean : Bool; +typedef CloseEventInit = EventInit & { + var ?code : Int; + var ?reason : String; + var ?wasClean : Bool; } \ No newline at end of file diff --git a/std/js/html/Comment.hx b/std/js/html/Comment.hx index 675e435a..4042b115 100644 --- a/std/js/html/Comment.hx +++ b/std/js/html/Comment.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("Comment") -extern class Comment extends CharacterData -{ +extern class Comment extends CharacterData { /** @throws DOMError */ - function new( ?data : String = "" ) : Void; + function new( data : String = "" ) : Void; } \ No newline at end of file diff --git a/std/js/html/CompositeOperation.hx b/std/js/html/CompositeOperation.hx index 4190eadb..5dcdb0bd 100644 --- a/std/js/html/CompositeOperation.hx +++ b/std/js/html/CompositeOperation.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,12 +20,11 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from mozilla\Keyframe.webidl. Do not edit! +// This file is generated from mozilla\BaseKeyframeTypes.webidl. Do not edit! package js.html; -@:enum abstract CompositeOperation(String) -{ +enum abstract CompositeOperation(String) { var REPLACE = "replace"; var ADD = "add"; var ACCUMULATE = "accumulate"; diff --git a/std/js/html/CompositionEvent.hx b/std/js/html/CompositionEvent.hx index c09a9ede..77f24ef7 100644 --- a/std/js/html/CompositionEvent.hx +++ b/std/js/html/CompositionEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,10 +32,23 @@ package js.html; @see **/ @:native("CompositionEvent") -extern class CompositionEvent extends UIEvent -{ +extern class CompositionEvent extends UIEvent { + + /** + Returns the characters generated by the input method that raised the event; its varies depending on the type of event that generated the `CompositionEvent` object. + **/ var data(default,null) : String; + + /** + Returns the locale of current input method (for example, the keyboard layout locale if the composition is associated with IME). + **/ var locale(default,null) : String; - function initCompositionEvent( typeArg : String, canBubbleArg : Bool, cancelableArg : Bool, viewArg : Window, dataArg : String, localeArg : String ) : Void; + /** @throws DOMError */ + function new( type : String, ?eventInitDict : CompositionEventInit ) : Void; + + /** + Initializes the attributes of a `CompositionEvent` object. + **/ + function initCompositionEvent( typeArg : String, canBubbleArg : Bool = false, cancelableArg : Bool = false, ?viewArg : Window, ?dataArg : String, localeArg : String = "" ) : Void; } \ No newline at end of file diff --git a/std/js/html/RecordErrorEventInit.hx b/std/js/html/CompositionEventInit.hx similarity index 85% rename from std/js/html/RecordErrorEventInit.hx rename to std/js/html/CompositionEventInit.hx index fafd0143..37134c26 100644 --- a/std/js/html/RecordErrorEventInit.hx +++ b/std/js/html/CompositionEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,12 +20,10 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from mozilla\RecordErrorEvent.webidl. Do not edit! +// This file is generated from mozilla\CompositionEvent.webidl. Do not edit! package js.html; -typedef RecordErrorEventInit = -{ - > EventInit, - @:optional var name : String; +typedef CompositionEventInit = UIEventInit & { + var ?data : String; } \ No newline at end of file diff --git a/std/js/html/MessagePortList.hx b/std/js/html/ComputedEffectTiming.hx similarity index 79% rename from std/js/html/MessagePortList.hx rename to std/js/html/ComputedEffectTiming.hx index 7982e9a1..ba542df6 100644 --- a/std/js/html/MessagePortList.hx +++ b/std/js/html/ComputedEffectTiming.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,14 +20,14 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from mozilla\MessagePortList.webidl. Do not edit! +// This file is generated from mozilla\AnimationEffect.webidl. Do not edit! package js.html; -@:native("MessagePortList") -extern class MessagePortList implements ArrayAccess -{ - var length(default,null) : Int; - - function item( index : Int ) : MessagePort; +typedef ComputedEffectTiming = EffectTiming & { + var ?activeDuration : Float; + var ?currentIteration : Float; + var ?endTime : Float; + var ?localTime : Float; + var ?progress : Float; } \ No newline at end of file diff --git a/std/js/html/Console.hx b/std/js/html/Console.hx index 893c25a7..4f265ad1 100644 --- a/std/js/html/Console.hx +++ b/std/js/html/Console.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,123 +25,131 @@ package js.html; /** - The `Console` object provides access to the browser's debugging console (e.g., the Web Console in Firefox). The specifics of how it works vary from browser to browser, but there is a de facto set of features that are typically provided. + The `Console` object provides access to the browser's debugging console (e.g. the Web Console in Firefox). The specifics of how it works varies from browser to browser, but there is a de facto set of features that are typically provided. - Documentation [Console](https://developer.mozilla.org/en-US/docs/Web/API/Console) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Console$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + Documentation [console](https://developer.mozilla.org/en-US/docs/Web/API/console) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/console$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). - @see + @see **/ -@:native("Console") -extern class Console -{ +@:native("console") +extern class Console { /** - For general output of logging information. You may use string substitution and additional arguments with this method. + Log a message and stack trace to console if the first argument is `false`. **/ - function log( data : haxe.extern.Rest ) : Void; + static function assert( condition : Bool = false, data : haxe.extern.Rest ) : Void; /** - Informative logging information. You may use string substitution and additional arguments with this method. + Clear the console. **/ - function info( data : haxe.extern.Rest ) : Void; + static function clear() : Void; /** - Outputs a warning message. You may use string substitution and additional arguments with this method. + Log the number of times this line has been called with the given label. + **/ + static function count( label : String = "default" ) : Void; + + /** + Resets the value of the counter with the given label. **/ - function warn( data : haxe.extern.Rest ) : Void; + static function countReset( label : String = "default" ) : Void; + + /** + Outputs a message to the console with the log level `"debug"`. + Note: Starting with Chromium 58 this method only appears in Chromium browser consoles when level "Verbose" is selected. + + **/ + static function debug( data : haxe.extern.Rest ) : Void; /** Outputs an error message. You may use string substitution and additional arguments with this method. **/ - function error( data : haxe.extern.Rest ) : Void; + static function error( data : haxe.extern.Rest ) : Void; /** - An alias for `error()` + Informative logging of information. You may use string substitution and additional arguments with this method. **/ - function exception( data : haxe.extern.Rest ) : Void; + static function info( data : haxe.extern.Rest ) : Void; /** - An alias for `log()` + For general output of logging information. You may use string substitution and additional arguments with this method. **/ - function debug( data : haxe.extern.Rest ) : Void; + static function log( data : haxe.extern.Rest ) : Void; /** Displays tabular data as a table. **/ - function table( data : haxe.extern.Rest ) : Void; + static function table( data : haxe.extern.Rest ) : Void; /** Outputs a stack trace. **/ - function trace() : Void; + static function trace( data : haxe.extern.Rest ) : Void; + + /** + Outputs a warning message. You may use string substitution and additional arguments with this method. + **/ + static function warn( data : haxe.extern.Rest ) : Void; /** Displays an interactive listing of the properties of a specified JavaScript object. This listing lets you use disclosure triangles to examine the contents of child objects. **/ - function dir( data : haxe.extern.Rest ) : Void; + static function dir( data : haxe.extern.Rest ) : Void; /** - Displays an XML/HTML Element representation of the specified object if possible or the JavaScript Object view if it is not. + Displays an XML/HTML Element representation of the specified object if possible or the JavaScript Object view if it is not possible. **/ - function dirxml( data : haxe.extern.Rest ) : Void; + static function dirxml( data : haxe.extern.Rest ) : Void; /** Creates a new inline group, indenting all following output by another level. To move back out a level, call `groupEnd()`. **/ - function group( data : haxe.extern.Rest ) : Void; + static function group( data : haxe.extern.Rest ) : Void; /** - Creates a new inline group, indenting all following output by another level; unlike `group()`, this starts with the inline group collapsed, requiring the use of a disclosure button to expand it. To move back out a level, call `groupEnd()`. + Creates a new inline group, indenting all following output by another level. However, unlike `group()` this starts with the inline group collapsed requiring the use of a disclosure button to expand it. To move back out a level, call `groupEnd()`. **/ - function groupCollapsed( data : haxe.extern.Rest ) : Void; + static function groupCollapsed( data : haxe.extern.Rest ) : Void; /** Exits the current inline group. **/ - function groupEnd( data : haxe.extern.Rest ) : Void; + static function groupEnd() : Void; /** Starts a timer with a name specified as an input parameter. Up to 10,000 simultaneous timers can run on a given page. **/ - function time( ?time : Dynamic ) : Void; - - /** - Stops the specified timer and logs the elapsed time in seconds since its start. - **/ - function timeEnd( ?time : Dynamic ) : Void; + static function time( label : String = "default" ) : Void; /** - Adds a marker to the browser's Timeline or Waterfall tool. + Logs the value of the specified timer to the console. **/ - function timeStamp( ?data : Dynamic ) : Void; + static function timeLog( label : String = "default", data : haxe.extern.Rest ) : Void; /** - Starts the browser's build-in profiler (for example, the Firefox performance tool). You can specify an optional name for the profile. + Stops the specified timer and logs the elapsed time in seconds since it started. **/ - function profile( data : haxe.extern.Rest ) : Void; + static function timeEnd( label : String = "default" ) : Void; /** - Stops the profiler. You can see the resulting profile in the browser's performance tool (for example, the Firefox performance tool). + An alias for `error()`. **/ - function profileEnd( data : haxe.extern.Rest ) : Void; + static function exception( data : haxe.extern.Rest ) : Void; /** - Log a message and stack trace to console if first argument is `false`. + Adds a marker to the browser's Timeline or Waterfall tool. **/ - function assert( condition : Bool, data : haxe.extern.Rest ) : Void; + static function timeStamp( ?data : Dynamic ) : Void; /** - Log the number of times this line has been called with the given label. + Starts the browser's built-in profiler (for example, the Firefox performance tool). You can specify an optional name for the profile. **/ - function count( data : haxe.extern.Rest ) : Void; + static function profile( data : haxe.extern.Rest ) : Void; /** - Clear the console. + Stops the profiler. You can see the resulting profile in the browser's performance tool (for example, the Firefox performance tool). **/ - function clear() : Void; - function markTimeline() : Void; - function timeline() : Void; - function timelineEnd() : Void; + static function profileEnd( data : haxe.extern.Rest ) : Void; } \ No newline at end of file diff --git a/std/js/html/ConsoleInstance.hx b/std/js/html/ConsoleInstance.hx new file mode 100644 index 00000000..cded8ec8 --- /dev/null +++ b/std/js/html/ConsoleInstance.hx @@ -0,0 +1,154 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\Console.webidl. Do not edit! + +package js.html; + +/** + The `Console` object provides access to the browser's debugging console (e.g. the Web Console in Firefox). The specifics of how it works varies from browser to browser, but there is a de facto set of features that are typically provided. + + Documentation [Console](https://developer.mozilla.org/en-US/docs/Web/API/Console) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Console$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +extern interface ConsoleInstance { + + /** + Log a message and stack trace to console if the first argument is `false`. + **/ + function assert( condition : Bool = false, data : haxe.extern.Rest ) : Void; + + /** + Clear the console. + **/ + function clear() : Void; + + /** + Log the number of times this line has been called with the given label. + **/ + function count( label : String = "default" ) : Void; + + /** + Resets the value of the counter with the given label. + **/ + function countReset( label : String = "default" ) : Void; + + /** + Outputs a message to the console with the log level `"debug"`. + Note: Starting with Chromium 58 this method only appears in Chromium browser consoles when level "Verbose" is selected. + + **/ + function debug( data : haxe.extern.Rest ) : Void; + + /** + Outputs an error message. You may use string substitution and additional arguments with this method. + **/ + function error( data : haxe.extern.Rest ) : Void; + + /** + Informative logging of information. You may use string substitution and additional arguments with this method. + **/ + function info( data : haxe.extern.Rest ) : Void; + + /** + For general output of logging information. You may use string substitution and additional arguments with this method. + **/ + function log( data : haxe.extern.Rest ) : Void; + + /** + Displays tabular data as a table. + **/ + function table( data : haxe.extern.Rest ) : Void; + + /** + Outputs a stack trace. + **/ + function trace( data : haxe.extern.Rest ) : Void; + + /** + Outputs a warning message. You may use string substitution and additional arguments with this method. + **/ + function warn( data : haxe.extern.Rest ) : Void; + + /** + Displays an interactive listing of the properties of a specified JavaScript object. This listing lets you use disclosure triangles to examine the contents of child objects. + **/ + function dir( data : haxe.extern.Rest ) : Void; + + /** + + Displays an XML/HTML Element representation of the specified object if possible or the JavaScript Object view if it is not possible. + + **/ + function dirxml( data : haxe.extern.Rest ) : Void; + + /** + Creates a new inline group, indenting all following output by another level. To move back out a level, call `groupEnd()`. + **/ + function group( data : haxe.extern.Rest ) : Void; + + /** + Creates a new inline group, indenting all following output by another level. However, unlike `group()` this starts with the inline group collapsed requiring the use of a disclosure button to expand it. To move back out a level, call `groupEnd()`. + **/ + function groupCollapsed( data : haxe.extern.Rest ) : Void; + + /** + Exits the current inline group. + **/ + function groupEnd() : Void; + + /** + Starts a timer with a name specified as an input parameter. Up to 10,000 simultaneous timers can run on a given page. + **/ + function time( label : String = "default" ) : Void; + + /** + Logs the value of the specified timer to the console. + **/ + function timeLog( label : String = "default", data : haxe.extern.Rest ) : Void; + + /** + Stops the specified timer and logs the elapsed time in seconds since it started. + **/ + function timeEnd( label : String = "default" ) : Void; + + /** + An alias for `error()`. + **/ + function exception( data : haxe.extern.Rest ) : Void; + + /** + Adds a marker to the browser's Timeline or Waterfall tool. + **/ + function timeStamp( ?data : Dynamic ) : Void; + + /** + Starts the browser's built-in profiler (for example, the Firefox performance tool). You can specify an optional name for the profile. + **/ + function profile( data : haxe.extern.Rest ) : Void; + + /** + Stops the profiler. You can see the resulting profile in the browser's performance tool (for example, the Firefox performance tool). + **/ + function profileEnd( data : haxe.extern.Rest ) : Void; +} \ No newline at end of file diff --git a/std/js/html/ConstrainBooleanParameters.hx b/std/js/html/ConstrainBooleanParameters.hx new file mode 100644 index 00000000..c1c73133 --- /dev/null +++ b/std/js/html/ConstrainBooleanParameters.hx @@ -0,0 +1,30 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\MediaTrackConstraintSet.webidl. Do not edit! + +package js.html; + +typedef ConstrainBooleanParameters = { + var ?exact : Bool; + var ?ideal : Bool; +} \ No newline at end of file diff --git a/std/js/html/ConstrainDOMStringParameters.hx b/std/js/html/ConstrainDOMStringParameters.hx new file mode 100644 index 00000000..9bc81a67 --- /dev/null +++ b/std/js/html/ConstrainDOMStringParameters.hx @@ -0,0 +1,30 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\MediaTrackConstraintSet.webidl. Do not edit! + +package js.html; + +typedef ConstrainDOMStringParameters = { + var ?exact : haxe.extern.EitherType>; + var ?ideal : haxe.extern.EitherType>; +} \ No newline at end of file diff --git a/std/js/html/ConstrainDoubleRange.hx b/std/js/html/ConstrainDoubleRange.hx new file mode 100644 index 00000000..7b968699 --- /dev/null +++ b/std/js/html/ConstrainDoubleRange.hx @@ -0,0 +1,32 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\MediaTrackConstraintSet.webidl. Do not edit! + +package js.html; + +typedef ConstrainDoubleRange = { + var ?exact : Float; + var ?ideal : Float; + var ?max : Float; + var ?min : Float; +} \ No newline at end of file diff --git a/std/js/html/ConstrainLongRange.hx b/std/js/html/ConstrainLongRange.hx new file mode 100644 index 00000000..a83229a4 --- /dev/null +++ b/std/js/html/ConstrainLongRange.hx @@ -0,0 +1,32 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\MediaTrackConstraintSet.webidl. Do not edit! + +package js.html; + +typedef ConstrainLongRange = { + var ?exact : Int; + var ?ideal : Int; + var ?max : Int; + var ?min : Int; +} \ No newline at end of file diff --git a/std/js/html/ConvertCoordinateOptions.hx b/std/js/html/ConvertCoordinateOptions.hx index 438ff080..f620587c 100644 --- a/std/js/html/ConvertCoordinateOptions.hx +++ b/std/js/html/ConvertCoordinateOptions.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -typedef ConvertCoordinateOptions = -{ - @:optional var fromBox : Dynamic/*MISSING CSSBoxType*/; - @:optional var toBox : Dynamic/*MISSING CSSBoxType*/; +typedef ConvertCoordinateOptions = { + var ?fromBox : CSSBoxType; + var ?toBox : CSSBoxType; } \ No newline at end of file diff --git a/std/js/html/Coordinates.hx b/std/js/html/Coordinates.hx index a8e23a02..e0d3677b 100644 --- a/std/js/html/Coordinates.hx +++ b/std/js/html/Coordinates.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -31,9 +31,7 @@ package js.html; @see **/ -@:native("Coordinates") -extern class Coordinates -{ +typedef Coordinates = { /** Returns a `double` representing the position's latitude in decimal degrees. @@ -46,7 +44,7 @@ extern class Coordinates var longitude(default,null) : Float; /** - Returns a `double` representing the position's altitude in metres, relative to sea level. This value can be `null` if the implementation cannot provide the data. + Returns a `double` representing the position's altitude in meters, relative to sea level. This value can be `null` if the implementation cannot provide the data. **/ var altitude(default,null) : Float; diff --git a/std/js/html/Crypto.hx b/std/js/html/Crypto.hx index 5ab5abab..ad52941e 100644 --- a/std/js/html/Crypto.hx +++ b/std/js/html/Crypto.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,14 +32,17 @@ package js.html; @see **/ @:native("Crypto") -extern class Crypto -{ +extern class Crypto { /** Returns a `SubtleCrypto` object providing access to common cryptographic primitives, like hashing, signing, encryption or decryption. **/ var subtle(default,null) : SubtleCrypto; - /** @throws DOMError */ - function getRandomValues( array : ArrayBufferView ) : ArrayBufferView; + + /** + Fills the passed `TypedArray` with cryptographically sound random values. + @throws DOMError + **/ + function getRandomValues( array : js.lib.ArrayBufferView ) : js.lib.ArrayBufferView; } \ No newline at end of file diff --git a/std/js/html/CryptoKey.hx b/std/js/html/CryptoKey.hx index ba143b1c..9ad095cc 100644 --- a/std/js/html/CryptoKey.hx +++ b/std/js/html/CryptoKey.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("CryptoKey") -extern class CryptoKey -{ +extern class CryptoKey { /** Returns an enumerated value representing the type of the key, a secret key (for symmetric algorithm), a public or a private key (for an asymmetric algorithm) diff --git a/std/js/html/CustomEvent.hx b/std/js/html/CustomEvent.hx index 9d74ae09..665a1099 100644 --- a/std/js/html/CustomEvent.hx +++ b/std/js/html/CustomEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("CustomEvent") -extern class CustomEvent extends Event -{ +extern class CustomEvent extends Event { /** Any data passed when initializing the event. @@ -42,12 +41,11 @@ extern class CustomEvent extends Event /** @throws DOMError */ function new( type : String, ?eventInitDict : CustomEventInit ) : Void; - /** @throws DOMError */ /** Initializes a `CustomEvent` object. If the event has already being dispatched, this method does nothing. **/ - function initCustomEvent( type : String, canBubble : Bool, cancelable : Bool, detail : Dynamic ) : Void; + function initCustomEvent( type : String, canBubble : Bool = false, cancelable : Bool = false, ?detail : Dynamic ) : Void; } \ No newline at end of file diff --git a/std/js/html/CustomEventInit.hx b/std/js/html/CustomEventInit.hx index 381f111c..f7300598 100644 --- a/std/js/html/CustomEventInit.hx +++ b/std/js/html/CustomEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,6 @@ package js.html; -typedef CustomEventInit = -{ - > EventInit, - @:optional var detail : Dynamic; +typedef CustomEventInit = EventInit & { + var ?detail : Dynamic; } \ No newline at end of file diff --git a/std/js/html/DListElement.hx b/std/js/html/DListElement.hx index 05a76ec2..540a6411 100644 --- a/std/js/html/DListElement.hx +++ b/std/js/html/DListElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("HTMLDListElement") -extern class DListElement extends Element -{ +extern class DListElement extends Element { /** Is a `Boolean` indicating that spacing between list items should be reduced. diff --git a/std/js/html/DOMElement.hx b/std/js/html/DOMElement.hx index eb6dd65b..8b3c31e9 100644 --- a/std/js/html/DOMElement.hx +++ b/std/js/html/DOMElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,21 +25,58 @@ package js.html; /** - The `Element` interface represents an object of a `Document`. This interface describes methods and properties common to all kinds of elements. Specific behaviors are described in interfaces which inherit from `Element` but add additional functionality. + `Element` is the most general base class from which all objects in a `Document` inherit. It only has methods and properties common to all kinds of elements. More specific classes inherit from `Element`. Documentation [Element](https://developer.mozilla.org/en-US/docs/Web/API/Element) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Element$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("Element") -extern class DOMElement extends Node -{ +extern class DOMElement extends Node { + + /** + The namespace URI of the element, or `null` if it is no namespace. + + Note: In Firefox 3.5 and earlier, HTML elements are in no namespace. In later versions, HTML elements are in the `http://www.w3.org/1999/xhtml` namespace in both HTML and XML trees. `1.9.2` + + + **/ + var namespaceURI(default,null) : String; + + /** + A `DOMString` representing the namespace prefix of the element, or `null` if no prefix is specified. + **/ + var prefix(default,null) : String; + + /** + A `DOMString` representing the local part of the qualified name of the element. + **/ + var localName(default,null) : String; + + /** + Returns a `String` with the name of the tag for the given element. + **/ var tagName(default,null) : String; + + /** + Is a `DOMString` representing the id of the element. + **/ var id : String; + + /** + Is a `DOMString` representing the class of the element. + **/ var className : String; + + /** + Returns a `DOMTokenList` containing the list of class attributes. + **/ var classList(default,null) : DOMTokenList; + + /** + Returns a `NamedNodeMap` object containing the assigned attributes of the corresponding HTML element. + **/ var attributes(default,null) : NamedNodeMap; - var onwheel : haxe.Constraints.Function; var title : String; var lang : String; var dir : String; @@ -70,31 +107,92 @@ extern class DOMElement extends Node var offsetLeft(default,null) : Int; var offsetWidth(default,null) : Int; var offsetHeight(default,null) : Int; + + /** + A `Number` representing number of pixels the top of the document is scrolled vertically. + **/ var scrollTop : Int; + + /** + Is a `Number` representing the left scroll offset of the element. + **/ var scrollLeft : Int; + + /** + Returns a `Number` representing the scroll view width of the element. + **/ var scrollWidth(default,null) : Int; + + /** + Returns a `Number` representing the scroll view height of an element. + **/ var scrollHeight(default,null) : Int; + + /** + Returns a `Number` representing the width of the top border of the element. + **/ var clientTop(default,null) : Int; + + /** + Returns a `Number` representing the width of the left border of the element. + **/ var clientLeft(default,null) : Int; + + /** + Returns a `Number` representing the inner width of the element. + **/ var clientWidth(default,null) : Int; + + /** + Returns a `Number` representing the inner height of the element. + **/ var clientHeight(default,null) : Int; + + /** + Returns a `Number` representing the maximum top scroll offset possible for the element. + **/ var scrollTopMax(default,null) : Int; + + /** + Returns a `Number` representing the maximum left scroll offset possible for the element. + **/ var scrollLeftMax(default,null) : Int; + + /** + Is a `DOMString` representing the markup of the element's content. + **/ var innerHTML : String; + + /** + Is a `DOMString` representing the markup of the element including its content. When used as a setter, replaces the element with nodes parsed from the given string. + **/ var outerHTML : String; + + /** + Returns the open shadow root that is hosted by the element, or null if no open shadow root is present. + **/ var shadowRoot(default,null) : ShadowRoot; + var assignedSlot(default,null) : SlotElement; + + /** + Returns the name of the shadow DOM slot the element is inserted in. + **/ + var slot : String; var onabort : haxe.Constraints.Function; var onblur : haxe.Constraints.Function; var onfocus : haxe.Constraints.Function; + var onauxclick : haxe.Constraints.Function; var oncanplay : haxe.Constraints.Function; var oncanplaythrough : haxe.Constraints.Function; var onchange : haxe.Constraints.Function; var onclick : haxe.Constraints.Function; + var onclose : haxe.Constraints.Function; var oncontextmenu : haxe.Constraints.Function; var ondblclick : haxe.Constraints.Function; var ondrag : haxe.Constraints.Function; var ondragend : haxe.Constraints.Function; var ondragenter : haxe.Constraints.Function; + var ondragexit : haxe.Constraints.Function; var ondragleave : haxe.Constraints.Function; var ondragover : haxe.Constraints.Function; var ondragstart : haxe.Constraints.Function; @@ -110,6 +208,7 @@ extern class DOMElement extends Node var onload : haxe.Constraints.Function; var onloadeddata : haxe.Constraints.Function; var onloadedmetadata : haxe.Constraints.Function; + var onloadend : haxe.Constraints.Function; var onloadstart : haxe.Constraints.Function; var onmousedown : haxe.Constraints.Function; var onmouseenter : haxe.Constraints.Function; @@ -118,6 +217,11 @@ extern class DOMElement extends Node var onmouseout : haxe.Constraints.Function; var onmouseover : haxe.Constraints.Function; var onmouseup : haxe.Constraints.Function; + + /** + Returns the event handling code for the `wheel` event. This is now implemented on `GlobalEventHandlers.onwheel`. + **/ + var onwheel : haxe.Constraints.Function; var onpause : haxe.Constraints.Function; var onplay : haxe.Constraints.Function; var onplaying : haxe.Constraints.Function; @@ -136,6 +240,8 @@ extern class DOMElement extends Node var ontimeupdate : haxe.Constraints.Function; var onvolumechange : haxe.Constraints.Function; var onwaiting : haxe.Constraints.Function; + var onselectstart : haxe.Constraints.Function; + var ontoggle : haxe.Constraints.Function; var onpointercancel : haxe.Constraints.Function; var onpointerdown : haxe.Constraints.Function; var onpointerup : haxe.Constraints.Function; @@ -144,12 +250,28 @@ extern class DOMElement extends Node var onpointerover : haxe.Constraints.Function; var onpointerenter : haxe.Constraints.Function; var onpointerleave : haxe.Constraints.Function; + + /** + Returns the event handler for the `gotpointercapture` event type. + **/ var ongotpointercapture : haxe.Constraints.Function; + + /** + Returns the event handler for the `lostpointercapture` event type. + **/ var onlostpointercapture : haxe.Constraints.Function; - var onfullscreenchange : haxe.Constraints.Function; - var onfullscreenerror : haxe.Constraints.Function; - var onpointerlockchange : haxe.Constraints.Function; - var onpointerlockerror : haxe.Constraints.Function; + var onanimationcancel : haxe.Constraints.Function; + var onanimationend : haxe.Constraints.Function; + var onanimationiteration : haxe.Constraints.Function; + var onanimationstart : haxe.Constraints.Function; + var ontransitioncancel : haxe.Constraints.Function; + var ontransitionend : haxe.Constraints.Function; + var ontransitionrun : haxe.Constraints.Function; + var ontransitionstart : haxe.Constraints.Function; + var onwebkitanimationend : haxe.Constraints.Function; + var onwebkitanimationiteration : haxe.Constraints.Function; + var onwebkitanimationstart : haxe.Constraints.Function; + var onwebkittransitionend : haxe.Constraints.Function; var previousElementSibling(default,null) : Element; var nextElementSibling(default,null) : Element; var onerror : haxe.Constraints.Function; @@ -162,95 +284,270 @@ extern class DOMElement extends Node var ontouchmove : haxe.Constraints.Function; var ontouchcancel : haxe.Constraints.Function; + + /** + Returns an array of attribute names from the current element. + **/ + @:pure function getAttributeNames() : Array; + + /** + Retrieves the value of the named attribute from the current node and returns it as an `Object`. + **/ + @:pure function getAttribute( name : String ) : String; - function getAttributeNS( namespace_ : String, localName : String ) : String; - /** @throws DOMError */ + + /** + Retrieves the value of the attribute with the specified name and namespace, from the current node and returns it as an `Object`. + **/ + @:pure + function getAttributeNS( namespace : String, localName : String ) : String; + + /** + Toggles a boolean attribute, removing it if it is present and adding it if it is not present, on the specified element. + @throws DOMError + **/ + function toggleAttribute( name : String, ?force : Bool ) : Bool; + + /** + Sets the value of a named attribute of the current node. + @throws DOMError + **/ function setAttribute( name : String, value : String ) : Void; - /** @throws DOMError */ - function setAttributeNS( namespace_ : String, name : String, value : String ) : Void; - /** @throws DOMError */ + + /** + Sets the value of the attribute with the specified name and namespace, from the current node. + @throws DOMError + **/ + function setAttributeNS( namespace : String, name : String, value : String ) : Void; + + /** + Removes the named attribute from the current node. + @throws DOMError + **/ function removeAttribute( name : String ) : Void; - /** @throws DOMError */ - function removeAttributeNS( namespace_ : String, localName : String ) : Void; + + /** + Removes the attribute with the specified name and namespace, from the current node. + @throws DOMError + **/ + function removeAttributeNS( namespace : String, localName : String ) : Void; + + /** + Returns a `Boolean` indicating if the element has the specified attribute or not. + **/ + @:pure function hasAttribute( name : String ) : Bool; - function hasAttributeNS( namespace_ : String, localName : String ) : Bool; + + /** + Returns a `Boolean` indicating if the element has the specified attribute, in the specified namespace, or not. + **/ + @:pure + function hasAttributeNS( namespace : String, localName : String ) : Bool; + + /** + Returns a `Boolean` indicating if the element has one or more HTML attributes present. + **/ + @:pure function hasAttributes() : Bool; - /** @throws DOMError */ + + /** + Returns the `Element` which is the closest ancestor of the current element (or the current element itself) which matches the selectors given in parameter. + @throws DOMError + **/ + @:pure function closest( selector : String ) : Element; - /** @throws DOMError */ + + /** + Returns a `Boolean` indicating whether or not the element would be selected by the specified selector string. + @throws DOMError + **/ + @:pure function matches( selector : String ) : Bool; /** @throws DOMError */ + @:pure function webkitMatchesSelector( selector : String ) : Bool; + + /** + Returns a live `HTMLCollection` containing all descendant elements, of a particular tag name, from the current element. + **/ + @:pure function getElementsByTagName( localName : String ) : HTMLCollection; - /** @throws DOMError */ - function getElementsByTagNameNS( namespace_ : String, localName : String ) : HTMLCollection; + + /** + Returns a live `HTMLCollection` containing all descendant elements, of a particular tag name and namespace, from the current element. + @throws DOMError + **/ + @:pure + function getElementsByTagNameNS( namespace : String, localName : String ) : HTMLCollection; + + /** + Returns a live `HTMLCollection` that contains all descendants of the current element that possess the list of classes given in the parameter. + **/ + @:pure function getElementsByClassName( classNames : String ) : HTMLCollection; - /** @throws DOMError */ /** - Designates a specific element as the capture target of future `PointerEvent`. + Inserts a given element node at a given position relative to the element it is invoked upon. + @throws DOMError + **/ + @:pure + function insertAdjacentElement( where : String, element : Element ) : Element; + + /** + Inserts a given text node at a given position relative to the element it is invoked upon. + @throws DOMError + **/ + function insertAdjacentText( where : String, data : String ) : Void; + + /** + Designates a specific element as the capture target of future pointer events. + @throws DOMError **/ function setPointerCapture( pointerId : Int ) : Void; - /** @throws DOMError */ + + /** + Releases (stops) pointer capture that was previously set for a specific `PointerEvent`. + @throws DOMError + **/ function releasePointerCapture( pointerId : Int ) : Void; - function setCapture( ?retargetToElement : Bool = false ) : Void; + function hasPointerCapture( pointerId : Int ) : Bool; + + /** + Sets up mouse event capture, redirecting all mouse events to this element. + **/ + function setCapture( retargetToElement : Bool = false ) : Void; function releaseCapture() : Void; - function requestPointerLock() : Void; + + /** + Retrieves the node representation of the named attribute from the current node and returns it as an `Attr`. + **/ function getAttributeNode( name : String ) : Attr; - /** @throws DOMError */ + + /** + Sets the node representation of the named attribute from the current node. + @throws DOMError + **/ function setAttributeNode( newAttr : Attr ) : Attr; - /** @throws DOMError */ + + /** + Removes the node representation of the named attribute from the current node. + @throws DOMError + **/ function removeAttributeNode( oldAttr : Attr ) : Attr; + + /** + Retrieves the node representation of the attribute with the specified name and namespace, from the current node and returns it as an `Attr`. + **/ function getAttributeNodeNS( namespaceURI : String, localName : String ) : Attr; - /** @throws DOMError */ + + /** + Sets the node representation of the attribute with the specified name and namespace, from the current node. + @throws DOMError + **/ function setAttributeNodeNS( newAttr : Attr ) : Attr; function click() : Void; /** @throws DOMError */ function focus() : Void; /** @throws DOMError */ function blur() : Void; + + /** + Returns a collection of rectangles that indicate the bounding rectangles for each line of text in a client. + **/ function getClientRects() : DOMRectList; + + /** + Returns the size of an element and its position relative to the viewport. + **/ function getBoundingClientRect() : DOMRect; - @:overload( function( top : Bool ) : Void {} ) - function scrollIntoView( ?options : ScrollIntoViewOptions ) : Void; + + /** + Scrolls the page until the element gets into the view. + **/ + @:overload( function( ?arg : ScrollIntoViewOptions) : Void {} ) + function scrollIntoView( ?arg : Bool ) : Void; @:overload( function( x : Float, y : Float ) : Void {} ) function scroll( ?options : ScrollToOptions ) : Void; @:overload( function( x : Float, y : Float ) : Void {} ) function scrollTo( ?options : ScrollToOptions ) : Void; @:overload( function( x : Float, y : Float ) : Void {} ) function scrollBy( ?options : ScrollToOptions ) : Void; - /** @throws DOMError */ + + /** + Parses the text as HTML or XML and inserts the resulting nodes into the tree in the position given. + @throws DOMError + **/ function insertAdjacentHTML( position : String, text : String ) : Void; - /** @throws DOMError */ + + /** + Returns the first `Node` which matches the specified selector string relative to the element. + @throws DOMError + **/ + @:pure function querySelector( selectors : String ) : Element; - /** @throws DOMError */ + + /** + Returns a `NodeList` of nodes which match the specified selector string relative to the element. + @throws DOMError + **/ + @:pure function querySelectorAll( selectors : String ) : NodeList; - /** @throws DOMError */ - function createShadowRoot() : ShadowRoot; /** - … + Attatches a shadow DOM tree to the specified element and returns a reference to its `ShadowRoot`. + @throws DOMError **/ - function getDestinationInsertionPoints() : NodeList; - /** @throws DOMError */ - function requestFullscreen( ?options : Dynamic ) : Void; - /** @throws DOMError */ + function attachShadow( shadowRootInitDict : ShadowRootInit ) : ShadowRoot; + + /** + Asynchronously asks the browser to make the element full-screen. + @throws DOMError + **/ + function requestFullscreen() : Void; + + /** + Allows to asynchronously ask for the pointer to be locked on the given element. + **/ + function requestPointerLock() : Void; /** A shortcut method to create and run an animation on an element. Returns the created Animation object instance. + @throws DOMError **/ - function animate( frames : Dynamic, ?options : haxe.extern.EitherType ) : Animation; + @:overload( function( keyframes : Dynamic, ?options : KeyframeAnimationOptions) : Animation {} ) + function animate( keyframes : Dynamic, ?options : Float ) : Animation; /** Returns an array of Animation objects currently active on the element. **/ - function getAnimations() : Array; + function getAnimations( ?filter : AnimationFilter ) : Array; + /** @throws DOMError */ + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function before( nodes : haxe.extern.Rest ) : Void; + /** @throws DOMError */ + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function after( nodes : haxe.extern.Rest ) : Void; + /** @throws DOMError */ + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function replaceWith( nodes : haxe.extern.Rest ) : Void; function remove() : Void; /** @throws DOMError */ - function convertQuadFromNode( quad : DOMQuad, from : haxe.extern.EitherType>, ?options : ConvertCoordinateOptions ) : DOMQuad; + @:overload( function( quad : DOMQuad, from : Element, ?options : ConvertCoordinateOptions) : DOMQuad {} ) + @:overload( function( quad : DOMQuad, from : HTMLDocument, ?options : ConvertCoordinateOptions) : DOMQuad {} ) + function convertQuadFromNode( quad : DOMQuad, from : Text, ?options : ConvertCoordinateOptions ) : DOMQuad; + /** @throws DOMError */ + @:overload( function( rect : DOMRectReadOnly, from : Element, ?options : ConvertCoordinateOptions) : DOMQuad {} ) + @:overload( function( rect : DOMRectReadOnly, from : HTMLDocument, ?options : ConvertCoordinateOptions) : DOMQuad {} ) + function convertRectFromNode( rect : DOMRectReadOnly, from : Text, ?options : ConvertCoordinateOptions ) : DOMQuad; + /** @throws DOMError */ + @:overload( function( point : DOMPointInit, from : Element, ?options : ConvertCoordinateOptions) : DOMPoint {} ) + @:overload( function( point : DOMPointInit, from : HTMLDocument, ?options : ConvertCoordinateOptions) : DOMPoint {} ) + function convertPointFromNode( point : DOMPointInit, from : Text, ?options : ConvertCoordinateOptions ) : DOMPoint; /** @throws DOMError */ - function convertRectFromNode( rect : DOMRectReadOnly, from : haxe.extern.EitherType>, ?options : ConvertCoordinateOptions ) : DOMQuad; + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function prepend( nodes : haxe.extern.Rest ) : Void; /** @throws DOMError */ - function convertPointFromNode( point : DOMPointInit, from : haxe.extern.EitherType>, ?options : ConvertCoordinateOptions ) : DOMPoint; + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function append( nodes : haxe.extern.Rest ) : Void; } \ No newline at end of file diff --git a/std/js/html/DOMError.hx b/std/js/html/DOMError.hx index 620d181d..d2d100a3 100644 --- a/std/js/html/DOMError.hx +++ b/std/js/html/DOMError.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,15 +32,18 @@ package js.html; @see **/ @:native("DOMError") -extern class DOMError -{ +extern class DOMError { /** Returns a `DOMString` representing one of the error type names (see below). **/ var name(default,null) : String; + + /** + Returns a `DOMString` representing a message or description associated with the given error type name. + **/ var message(default,null) : String; /** @throws DOMError */ - function new( name : String, ?message : String = "" ) : Void; + function new( name : String, message : String = "" ) : Void; } \ No newline at end of file diff --git a/std/js/html/DOMException.hx b/std/js/html/DOMException.hx index f916d101..5729e027 100644 --- a/std/js/html/DOMException.hx +++ b/std/js/html/DOMException.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,15 +25,14 @@ package js.html; /** - The `DOMException` interface represents an abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. This is basically how error conditions are described in web APIs. + The `DOMException` interface represents an abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. Documentation [DOMException](https://developer.mozilla.org/en-US/docs/Web/API/DOMException) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMException$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("DOMException") -extern class DOMException -{ +extern class DOMException { static inline var INDEX_SIZE_ERR : Int = 1; static inline var DOMSTRING_SIZE_ERR : Int = 2; static inline var HIERARCHY_REQUEST_ERR : Int = 3; @@ -60,16 +59,28 @@ extern class DOMException static inline var INVALID_NODE_TYPE_ERR : Int = 24; static inline var DATA_CLONE_ERR : Int = 25; - var code(default,null) : Int; + + /** + Returns a `DOMString` that contains one of the strings associated with an error name. + **/ + var name(default,null) : String; + + /** + Returns a `DOMString` representing a message or description associated with the given error name. + **/ var message(default,null) : String; + + /** + Returns a `short` that contains one of the `Error codes`, or `0` if none match. This field is used for historical reasons. New DOM exceptions don't use this anymore: they put this info in the `DOMException.name` attribute. + **/ + var code(default,null) : Int; var result(default,null) : Int; - var name(default,null) : String; var filename(default,null) : String; var lineNumber(default,null) : Int; var columnNumber(default,null) : Int; - var data(default,null) : Dynamic/*MISSING nsISupports*/; + var data(default,null) : Dynamic; var stack(default,null) : String; /** @throws DOMError */ - function new( ?message : String = "", ?name : String ) : Void; + function new( message : String = "", ?name : String ) : Void; } \ No newline at end of file diff --git a/std/js/html/DOMImplementation.hx b/std/js/html/DOMImplementation.hx index 23b8178d..ae021c85 100644 --- a/std/js/html/DOMImplementation.hx +++ b/std/js/html/DOMImplementation.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,29 +32,28 @@ package js.html; @see **/ @:native("DOMImplementation") -extern class DOMImplementation -{ +extern class DOMImplementation { /** Returns a `Boolean` indicating if a given feature is supported or not. This function is unreliable and kept for compatibility purpose alone: except for SVG-related queries, it always returns `true`. Old browsers are very inconsistent in their behavior. **/ - function hasFeature( feature : String, version : String ) : Bool; - /** @throws DOMError */ + function hasFeature() : Bool; /** Creates and returns a `DocumentType`. + @throws DOMError **/ function createDocumentType( qualifiedName : String, publicId : String, systemId : String ) : DocumentType; - /** @throws DOMError */ /** Creates and returns an `XMLDocument`. + @throws DOMError **/ - function createDocument( namespace_ : String, qualifiedName : String, ?doctype : DocumentType ) : HTMLDocument; - /** @throws DOMError */ + function createDocument( namespace : String, qualifiedName : String, ?doctype : DocumentType ) : HTMLDocument; /** Creates and returns an HTML `Document`. + @throws DOMError **/ function createHTMLDocument( ?title : String ) : HTMLDocument; } \ No newline at end of file diff --git a/std/js/html/DOMMatrix.hx b/std/js/html/DOMMatrix.hx index 2382e8b0..988908c4 100644 --- a/std/js/html/DOMMatrix.hx +++ b/std/js/html/DOMMatrix.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,14 +32,13 @@ package js.html; @see **/ @:native("DOMMatrix") -extern class DOMMatrix extends DOMMatrixReadOnly -{ +extern class DOMMatrix extends DOMMatrixReadOnly { /** @throws DOMError */ @:overload( function() : Void {} ) @:overload( function( transformList : String ) : Void {} ) @:overload( function( other : DOMMatrixReadOnly ) : Void {} ) - @:overload( function( array32 : Float32Array ) : Void {} ) - @:overload( function( array64 : Float64Array ) : Void {} ) + @:overload( function( array32 : js.lib.Float32Array ) : Void {} ) + @:overload( function( array64 : js.lib.Float64Array ) : Void {} ) function new( numberSequence : Array ) : Void; function multiplySelf( other : DOMMatrix ) : DOMMatrix; function preMultiplySelf( other : DOMMatrix ) : DOMMatrix; @@ -47,27 +46,27 @@ extern class DOMMatrix extends DOMMatrixReadOnly /** Returns itself, a `DOMMatrix`, with its new content being the result of the matrix being translated by the given vector. **/ - function translateSelf( tx : Float, ty : Float, ?tz : Float = 0.0 ) : DOMMatrix; + function translateSelf( tx : Float, ty : Float, tz : Float = 0.0 ) : DOMMatrix; /** Returns itself, a `DOMMatrix`, with its new content being the result of the matrix x and y dimensions being scaled by the given factor, centered on the origin given. **/ - function scaleSelf( scale : Float, ?originX : Float = 0.0, ?originY : Float = 0.0 ) : DOMMatrix; + function scaleSelf( scale : Float, originX : Float = 0.0, originY : Float = 0.0 ) : DOMMatrix; /** Returns itself, a `DOMMatrix`, with its new content being the result of the matrix x, y and z dimension being scaled by the given factor, centered on the origin given. **/ - function scale3dSelf( scale : Float, ?originX : Float = 0.0, ?originY : Float = 0.0, ?originZ : Float = 0.0 ) : DOMMatrix; + function scale3dSelf( scale : Float, originX : Float = 0.0, originY : Float = 0.0, originZ : Float = 0.0 ) : DOMMatrix; /** Returns itself, a `DOMMatrix`, with its new content being the result of the matrix x, y and z dimension being scaled by the given factor for each dimension, centered on the origin given. **/ - function scaleNonUniformSelf( scaleX : Float, ?scaleY : Float = 1.0, ?scaleZ : Float = 1.0, ?originX : Float = 0.0, ?originY : Float = 0.0, ?originZ : Float = 0.0 ) : DOMMatrix; + function scaleNonUniformSelf( scaleX : Float, scaleY : Float = 1.0, scaleZ : Float = 1.0, originX : Float = 0.0, originY : Float = 0.0, originZ : Float = 0.0 ) : DOMMatrix; /** Returns itself, a `DOMMatrix`, with its new content being the result of the original matrix being rotated by the given angle, with the rotation centered on the origin given. **/ - function rotateSelf( angle : Float, ?originX : Float = 0.0, ?originY : Float = 0.0 ) : DOMMatrix; + function rotateSelf( angle : Float, originX : Float = 0.0, originY : Float = 0.0 ) : DOMMatrix; /** Returns itself, a `DOMMatrix`, with its new content being the result of the original matrix being rotated by the angle between the given vector and (1,0), centered on the origin given. @@ -93,10 +92,10 @@ extern class DOMMatrix extends DOMMatrixReadOnly Returns itself,  a `DOMMatrix`, with its new content being the result of the original matrix being inverted. If the matrix cannot be inverted, all its components are set to `NaN` and `is2D()` returns `false`. **/ function invertSelf() : DOMMatrix; - /** @throws DOMError */ /** Returns itself, a `DOMMatrix`, with its describing the matrix representing the same transformation as the CSS `transform` functions given in parameter. + @throws DOMError **/ function setMatrixValue( transformList : String ) : DOMMatrix; } \ No newline at end of file diff --git a/std/js/html/DOMMatrixReadOnly.hx b/std/js/html/DOMMatrixReadOnly.hx index 840621a4..9d53f658 100644 --- a/std/js/html/DOMMatrixReadOnly.hx +++ b/std/js/html/DOMMatrixReadOnly.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,46 +32,45 @@ package js.html; @see **/ @:native("DOMMatrixReadOnly") -extern class DOMMatrixReadOnly -{ +extern class DOMMatrixReadOnly { /** Are double representing each component of a 4x4 matrix needed for 2D rotations and translations. They are aliases for some components of the 4x4 matrix: - - - - 2D - 3D equivalent - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    am11
    bm12
    cm21
    dm22
    em41
    fm42
    - They are read-only, but their counterpart, with the same name, in DOMMatrix aren't. + + + + 2D + 3D equivalent + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    am11
    bm12
    cm21
    dm22
    em41
    fm42
    + They are read-only, but their counterpart, with the same name, in DOMMatrix aren't. **/ var a(default,null) : Float; var b(default,null) : Float; @@ -104,33 +103,40 @@ extern class DOMMatrixReadOnly Is a `Boolean` indicating if the matrix contains a 2D matrix and only accept 2D transformations. **/ var is2D(default,null) : Bool; - var identity(default,null) : Bool; + /** + Is a `Boolean` indincating if the matrix identity, that is a matrix with `1` on the components of its diagonal, and `0` elsewhere. + **/ + var isIdentity(default,null) : Bool; + + /** @throws DOMError */ + @:overload( function( ?init : Array) : DOMMatrixReadOnly {} ) + function new( ?init : String ) : Void; /** Returns a `DOMMatrix` containing a new matrix being the result of the matrix being translated by the given vector. The original matrix is not modified. **/ - function translate( tx : Float, ty : Float, ?tz : Float = 0.0 ) : DOMMatrix; + function translate( tx : Float, ty : Float, tz : Float = 0.0 ) : DOMMatrix; /** Returns a `DOMMatrix` containing a new matrix being the result of the matrix x and y dimensions being scaled by the given factor, centered on the origin given. The original matrix is not modified. **/ - function scale( scale : Float, ?originX : Float = 0.0, ?originY : Float = 0.0 ) : DOMMatrix; + function scale( scale : Float, originX : Float = 0.0, originY : Float = 0.0 ) : DOMMatrix; /** Returns a `DOMMatrix` containing a new matrix being the result of the matrix x, y and z dimension being scaled by the given factor, centered on the origin given. The original matrix is not modified. **/ - function scale3d( scale : Float, ?originX : Float = 0.0, ?originY : Float = 0.0, ?originZ : Float = 0.0 ) : DOMMatrix; + function scale3d( scale : Float, originX : Float = 0.0, originY : Float = 0.0, originZ : Float = 0.0 ) : DOMMatrix; /** Returns a `DOMMatrix` containing a new matrix being the result of the matrix x, y and z dimension being scaled by the given factor for each dimension, centered on the origin given. The original matrix is not modified. **/ - function scaleNonUniform( scaleX : Float, ?scaleY : Float = 1.0, ?scaleZ : Float = 1.0, ?originX : Float = 0.0, ?originY : Float = 0.0, ?originZ : Float = 0.0 ) : DOMMatrix; + function scaleNonUniform( scaleX : Float, scaleY : Float = 1.0, scaleZ : Float = 1.0, originX : Float = 0.0, originY : Float = 0.0, originZ : Float = 0.0 ) : DOMMatrix; /** Returns a `DOMMatrix` containing a new matrix being the result of the original matrix being rotated by the given angle, with the rotation centered on the origin given. The original matrix is not modified. **/ - function rotate( angle : Float, ?originX : Float = 0.0, ?originY : Float = 0.0 ) : DOMMatrix; + function rotate( angle : Float, originX : Float = 0.0, originY : Float = 0.0 ) : DOMMatrix; /** Returns a `DOMMatrix` containing a new matrix being the result of the original matrix being rotated by the angle between the given vector and (1,0), centered on the origin given. The original matrix is not modified. @@ -138,7 +144,7 @@ extern class DOMMatrixReadOnly function rotateFromVector( x : Float, y : Float ) : DOMMatrix; /** - Returns a `DOMMatrix` containing a new matrix being the result of the original matrix being rotated by the given angle and the give vector. The original matrix is not modified. + Returns a `DOMMatrix` containing a new matrix being the result of the original matrix being rotated by the given angle and the given vector. The original matrix is not modified. **/ function rotateAxisAngle( x : Float, y : Float, z : Float, angle : Float ) : DOMMatrix; @@ -166,22 +172,31 @@ extern class DOMMatrixReadOnly Returns a `DOMMatrix` containing a new matrix being the result of the original matrix being flipped around the y-axis, that is multiplied by the `DOMMatrix(1, 0, 0, -1, 0, 0)`. The original matrix is not modified. **/ function flipY() : DOMMatrix; + + /** + Returns a `DOMMatrix` containing a new matrix being the result of the original matrix being inverted. The original matrix is not modified. If the matrix cannot be inverted, all its components are set to `NaN` and `is2D()` returns `false`. + **/ function inverse() : DOMMatrix; /** - Returns a `DOMPoint` that is the point given in parameter multiplied by the matrix. Bot the original point and the matrix aren't modified. + Returns a `DOMPoint` that is the point given in parameter multiplied by the matrix. But the original point and the matrix aren't modified. **/ function transformPoint( ?point : DOMPointInit ) : DOMPoint; - /** @throws DOMError */ /** Returns a `Float32Array` containing the 6 components (`a`, `b`, `c`, `d`, `e`, `f`) in the case of a 2D matrix or the 16 components (`m11`, `m12`, `m13`, `m14`, `m21`, `m22`, `m23`, `m24`, `m31`, `m32`, `m33`, `m34`, `m41`, `m42`, `m43`, `m44`) for a 3D matrix. + @throws DOMError **/ - function toFloat32Array() : Float32Array; - /** @throws DOMError */ + function toFloat32Array() : js.lib.Float32Array; /** Returns a `Float64Array` containing the 6 components (`a`, `b`, `c`, `d`, `e`, `f`) in the case of a 2D matrix or the 16 components (`m11`, `m12`, `m13`, `m14`, `m21`, `m22`, `m23`, `m24`, `m31`, `m32`, `m33`, `m34`, `m41`, `m42`, `m43`, `m44`) for a 3D matrix. + @throws DOMError + **/ + function toFloat64Array() : js.lib.Float64Array; + + /** + Returns a JSON representation of the `DOMMatrixReadOnly` object. **/ - function toFloat64Array() : Float64Array; + function toJSON() : Dynamic; } \ No newline at end of file diff --git a/std/js/html/DOMParser.hx b/std/js/html/DOMParser.hx index c194a513..23ac2fa4 100644 --- a/std/js/html/DOMParser.hx +++ b/std/js/html/DOMParser.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,18 +25,16 @@ package js.html; /** - `DOMParser` can parse XML or HTML source stored in a string into a DOM Document. `DOMParser` is specified in DOM Parsing and Serialization. + The `DOMParser` interface provides the ability to parse XML or HTML source code from a string into a DOM `Document`. Documentation [DOMParser](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("DOMParser") -extern class DOMParser -{ +extern class DOMParser { /** @throws DOMError */ - @:overload( function() : Void {} ) - function new( prin : Dynamic/*MISSING Principal*/, ?documentURI : Dynamic/*MISSING URI*/, ?baseURI : Dynamic/*MISSING URI*/ ) : Void; + function new() : Void; /** @throws DOMError */ function parseFromString( str : String, type : SupportedType ) : HTMLDocument; } \ No newline at end of file diff --git a/std/js/html/DOMPoint.hx b/std/js/html/DOMPoint.hx index 6608b2bb..efc7962c 100644 --- a/std/js/html/DOMPoint.hx +++ b/std/js/html/DOMPoint.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,16 +25,15 @@ package js.html; /** - A `DOMPoint` represents a 2D or 3D point in a coordinate system. + A `DOMPoint` object represents a 2D or 3D point in a coordinate system; it includes values for the coordinates in up to three dimensions, as well as an optional perspective value. Documentation [DOMPoint](https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("DOMPoint") -extern class DOMPoint extends DOMPointReadOnly -{ +extern class DOMPoint extends DOMPointReadOnly { + static function fromPoint( ?other : DOMPointInit ) : DOMPoint; /** @throws DOMError */ - @:overload( function( ?point : DOMPointInit ) : Void {} ) - function new( x : Float, y : Float, ?z : Float = 0.0, ?w : Float = 1.0 ) : Void; + function new( x : Float = 0.0, y : Float = 0.0, z : Float = 0.0, w : Float = 1.0 ) : Void; } \ No newline at end of file diff --git a/std/js/html/DOMPointInit.hx b/std/js/html/DOMPointInit.hx index 54dee931..0c013b6d 100644 --- a/std/js/html/DOMPointInit.hx +++ b/std/js/html/DOMPointInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,10 +24,32 @@ package js.html; -typedef DOMPointInit = -{ - @:optional var w : Float; - @:optional var x : Float; - @:optional var y : Float; - @:optional var z : Float; +/** + The `DOMPointInit` dictionary is used to provide the values of the coordinates and perspective when creating and JSONifying a `DOMPoint` or `DOMPointReadOnly` object. + + Documentation [DOMPointInit](https://developer.mozilla.org/en-US/docs/Web/API/DOMPointInit) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMPointInit$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +typedef DOMPointInit = { + + /** + The point's w perspective value given as an unrestricted floating-point number. The default is 1. + **/ + var ?w : Float; + + /** + An unrestricted floating-point value indicating the x-coordinate of the point in space. This is generally the horizontal coordinate, with positive values being to the right and negative values to the left. The default value is 0. + **/ + var ?x : Float; + + /** + An unrestricted floating-point number providing the point's y-coordinate. This is the vertical coordinate, and barring any transforms applied to the coordinate system, positive values are downward and negative values upward toward the top of the screen. The default is 0. + **/ + var ?y : Float; + + /** + An unrestricted floating-point value which gives the point's z-coordinate, which is (assuming no transformations that alter the situation) the depth coordinate; positive values are closer to the user and negative values retreat back into the screen. The default value is 0. + **/ + var ?z : Float; } \ No newline at end of file diff --git a/std/js/html/DOMPointReadOnly.hx b/std/js/html/DOMPointReadOnly.hx index 9a4f7c88..ea0d32ab 100644 --- a/std/js/html/DOMPointReadOnly.hx +++ b/std/js/html/DOMPointReadOnly.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,34 +25,41 @@ package js.html; /** - The `DOMPointReadOnly` interface specifies the standard properties used by `DOMPoint` to define a 2D or 3D point in a coordinate system. + The `DOMPointReadOnly` interface specifies the coordinate and perspective fields used by `DOMPoint` to define a 2D or 3D point in a coordinate system. Documentation [DOMPointReadOnly](https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("DOMPointReadOnly") -extern class DOMPointReadOnly -{ +extern class DOMPointReadOnly { + static function fromPoint( ?other : DOMPointInit ) : DOMPointReadOnly; /** - The x coordinate of the `DOMPoint`. + The point's horizontal coordinate, `x`. **/ var x(default,null) : Float; /** - The y coordinate of the `DOMPoint`. + The point's vertical coordinate, `y`. **/ var y(default,null) : Float; /** - The z coordinate of the `DOMPoint`. + The point's depth coordinate, `z`. **/ var z(default,null) : Float; /** - The perspective value of the `DOMPoint`. + The point's perspective value, `w`. **/ var w(default,null) : Float; + /** @throws DOMError */ + function new( x : Float = 0.0, y : Float = 0.0, z : Float = 0.0, w : Float = 1.0 ) : Void; + + /** + Returns a JSON representation of the `DOMPointReadOnly` object. + **/ + function toJSON() : Dynamic; } \ No newline at end of file diff --git a/std/js/html/DOMQuad.hx b/std/js/html/DOMQuad.hx index 9915a5d7..003bf1f2 100644 --- a/std/js/html/DOMQuad.hx +++ b/std/js/html/DOMQuad.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,9 +24,19 @@ package js.html; +/** + A `DOMQuad` is a collection of four `DOMPoint`s defining the corners of an arbitrary quadrilateral. Returning `DOMQuad`s lets `getBoxQuads()` return accurate information even when arbitrary 2D or 3D transforms are present. It has a handy `bounds` attribute returning a `DOMRectReadOnly` for those cases where you just want an axis-aligned bounding rectangle. + + Documentation [DOMQuad](https://developer.mozilla.org/en-US/docs/Web/API/DOMQuad) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMQuad$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ @:native("DOMQuad") -extern class DOMQuad -{ +extern class DOMQuad { + + /** + are `DOMPoint` objects for each of the `DOMQuad` object's four corners. + **/ var p1(default,null) : DOMPoint; var p2(default,null) : DOMPoint; var p3(default,null) : DOMPoint; @@ -36,4 +46,14 @@ extern class DOMQuad /** @throws DOMError */ @:overload( function( ?p1 : DOMPointInit, ?p2 : DOMPointInit, ?p3 : DOMPointInit, ?p4 : DOMPointInit ) : Void {} ) function new( rect : DOMRectReadOnly ) : Void; + + /** + Returns a `DOMRect` object with the coordinates and dimensions of the `DOMQuad` object. + **/ + function getBounds() : DOMRectReadOnly; + + /** + Returns a JSON representation of the `DOMQuad` object. + **/ + function toJSON() : DOMQuadJSON; } \ No newline at end of file diff --git a/std/js/html/DOMQuadJSON.hx b/std/js/html/DOMQuadJSON.hx new file mode 100644 index 00000000..7f934fe7 --- /dev/null +++ b/std/js/html/DOMQuadJSON.hx @@ -0,0 +1,32 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\DOMQuad.webidl. Do not edit! + +package js.html; + +typedef DOMQuadJSON = { + var ?p1 : DOMPoint; + var ?p2 : DOMPoint; + var ?p3 : DOMPoint; + var ?p4 : DOMPoint; +} \ No newline at end of file diff --git a/std/js/html/DOMRect.hx b/std/js/html/DOMRect.hx index 5e3de87d..ee6a154a 100644 --- a/std/js/html/DOMRect.hx +++ b/std/js/html/DOMRect.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,9 +32,7 @@ package js.html; @see **/ @:native("DOMRect") -extern class DOMRect extends DOMRectReadOnly -{ +extern class DOMRect extends DOMRectReadOnly { /** @throws DOMError */ - @:overload( function() : Void {} ) - function new( x : Float, y : Float, width : Float, height : Float ) : Void; + function new( x : Float = 0.0, y : Float = 0.0, width : Float = 0.0, height : Float = 0.0 ) : Void; } \ No newline at end of file diff --git a/std/js/html/DOMRectList.hx b/std/js/html/DOMRectList.hx index 01be0eb5..582a8497 100644 --- a/std/js/html/DOMRectList.hx +++ b/std/js/html/DOMRectList.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,8 +25,7 @@ package js.html; @:native("DOMRectList") -extern class DOMRectList implements ArrayAccess -{ +extern class DOMRectList implements ArrayAccess { var length(default,null) : Int; function item( index : Int ) : DOMRect; diff --git a/std/js/html/DOMRectReadOnly.hx b/std/js/html/DOMRectReadOnly.hx index 66f743e3..f12cbe65 100644 --- a/std/js/html/DOMRectReadOnly.hx +++ b/std/js/html/DOMRectReadOnly.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("DOMRectReadOnly") -extern class DOMRectReadOnly -{ +extern class DOMRectReadOnly { /** The x coordinate of the `DOMRect`'s origin. @@ -75,4 +74,7 @@ extern class DOMRectReadOnly **/ var left(default,null) : Float; + /** @throws DOMError */ + function new( x : Float = 0.0, y : Float = 0.0, width : Float = 0.0, height : Float = 0.0 ) : Void; + function toJSON() : Dynamic; } \ No newline at end of file diff --git a/std/js/html/DOMRequest.hx b/std/js/html/DOMRequest.hx index 21b49822..630bc86f 100644 --- a/std/js/html/DOMRequest.hx +++ b/std/js/html/DOMRequest.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,11 +25,10 @@ package js.html; @:native("DOMRequest") -extern class DOMRequest extends EventTarget -{ +extern class DOMRequest extends EventTarget { var readyState(default,null) : DOMRequestReadyState; var result(default,null) : Dynamic; - var error(default,null) : DOMError; + var error(default,null) : DOMException; var onsuccess : haxe.Constraints.Function; var onerror : haxe.Constraints.Function; diff --git a/std/js/html/DOMRequestReadyState.hx b/std/js/html/DOMRequestReadyState.hx index 6935f230..0fbe5cca 100644 --- a/std/js/html/DOMRequestReadyState.hx +++ b/std/js/html/DOMRequestReadyState.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -@:enum abstract DOMRequestReadyState(String) -{ +enum abstract DOMRequestReadyState(String) { var PENDING = "pending"; var DONE = "done"; } \ No newline at end of file diff --git a/std/js/html/DOMStringList.hx b/std/js/html/DOMStringList.hx index 2b8c6bd9..199603a5 100644 --- a/std/js/html/DOMStringList.hx +++ b/std/js/html/DOMStringList.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("DOMStringList") -extern class DOMStringList implements ArrayAccess -{ +extern class DOMStringList implements ArrayAccess { /** Returns the length of the list, diff --git a/std/js/html/DOMStringMap.hx b/std/js/html/DOMStringMap.hx index b4fed2b3..d80115f9 100644 --- a/std/js/html/DOMStringMap.hx +++ b/std/js/html/DOMStringMap.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,6 +32,5 @@ package js.html; @see **/ @:native("DOMStringMap") -extern class DOMStringMap implements Dynamic -{ +extern class DOMStringMap implements Dynamic { } \ No newline at end of file diff --git a/std/js/html/DOMTokenList.hx b/std/js/html/DOMTokenList.hx index 438d4fff..4c2423cf 100644 --- a/std/js/html/DOMTokenList.hx +++ b/std/js/html/DOMTokenList.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,49 +25,63 @@ package js.html; /** - The `DOMTokenList` interface represents a set of space-separated tokens. Such a set is returned by `Element.classList`, `HTMLLinkElement.relList`, `HTMLAnchorElement.relList` or `HTMLAreaElement.relList`. It is indexed beginning with `0` as with JavaScript `Array` objects. `DOMTokenList` is always case-sensitive. + The `DOMTokenList` interface represents a set of space-separated tokens. Such a set is returned by `Element.classList`, `HTMLLinkElement.relList`, `HTMLAnchorElement.relList`, `HTMLAreaElement.relList`, `HTMLIframeElement.sandbox`, or `HTMLOutputElement.htmlFor`. It is indexed beginning with `0` as with JavaScript `Array` objects. `DOMTokenList` is always case-sensitive. Documentation [DOMTokenList](https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("DOMTokenList") -extern class DOMTokenList implements ArrayAccess -{ +extern class DOMTokenList implements ArrayAccess { /** Is an `integer` representing the number of objects stored in the object. **/ var length(default,null) : Int; + + /** + The value of the list as a `DOMString`. + **/ var value : String; /** - Returns an item in the list by its index (or undefined if the number is greater than or equal to the length of the list, prior to `7.0` returned null) + Returns an item in the list by its index (returns undefined if the number is greater than or equal to the length of the list). **/ function item( index : Int ) : String; - /** @throws DOMError */ /** - Returns `true` if the underlying string contains token, otherwise `false` + Returns `true` if the list contains the given token, otherwise `false`. **/ function contains( token : String ) : Bool; - /** @throws DOMError */ /** - Adds token to the underlying string + Adds the given token to the list. + @throws DOMError **/ function add( tokens : haxe.extern.Rest ) : Void; - /** @throws DOMError */ /** - Removes token from the underlying string + Removes the specified token from the list. + @throws DOMError **/ function remove( tokens : haxe.extern.Rest ) : Void; - /** @throws DOMError */ /** - Removes token from string and returns false. If token doesn't exist it's added and the function returns true + Replaces an existing token with a new token. + @throws DOMError + **/ + function replace( token : String, newToken : String ) : Bool; + + /** + Removes a given token from the list and returns false. If token doesn't exist it's added and the function returns `true`. + @throws DOMError **/ function toggle( token : String, ?force : Bool ) : Bool; + + /** + Returns `true` if a given token is in the associated attribute's supported tokens. + @throws DOMError + **/ + function supports( token : String ) : Bool; } \ No newline at end of file diff --git a/std/js/html/DataElement.hx b/std/js/html/DataElement.hx index 2ee7b221..ac53859a 100644 --- a/std/js/html/DataElement.hx +++ b/std/js/html/DataElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("HTMLDataElement") -extern class DataElement extends Element -{ +extern class DataElement extends Element { /** Is a `DOMString` reflecting the `value` HTML attribute, containing a machine-readable form of the element's value. diff --git a/std/js/html/DataListElement.hx b/std/js/html/DataListElement.hx index fa26bd17..f29888d3 100644 --- a/std/js/html/DataListElement.hx +++ b/std/js/html/DataListElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("HTMLDataListElement") -extern class DataListElement extends Element -{ +extern class DataListElement extends Element { /** Is a `HTMLCollection` representing a collection of the contained option elements. diff --git a/std/js/html/DataTransfer.hx b/std/js/html/DataTransfer.hx index 22ae8411..c296a87e 100644 --- a/std/js/html/DataTransfer.hx +++ b/std/js/html/DataTransfer.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("DataTransfer") -extern class DataTransfer -{ +extern class DataTransfer { /** Gets the type of drag-and-drop operation currently selected or sets the operation to a new type. The value must be `none`, `copy`, `link` or `move`. @@ -45,10 +44,15 @@ extern class DataTransfer **/ var effectAllowed : String; + /** + Gives a `DataTransferItemList` object which is a list of all of the drag data. + **/ + var items(default,null) : DataTransferItemList; + /** An array of `DOMString` giving the formats that were set in the `dragstart` event. **/ - var types(default,null) : DOMStringList; + var types(default,null) : Array; /** Contains a list of all the local files available on the data transfer. If the drag operation doesn't involve dragging files, this property is an empty list. @@ -56,35 +60,34 @@ extern class DataTransfer var files(default,null) : FileList; /** @throws DOMError */ - function new( eventType : String, isExternal : Bool ) : Void; - /** @throws DOMError */ + function new() : Void; /** Set the image to be used for dragging if a custom one is desired. **/ function setDragImage( image : Element, x : Int, y : Int ) : Void; - /** @throws DOMError */ /** Retrieves the data for a given type, or an empty string if data for that type does not exist or the data transfer contains no data. + @throws DOMError **/ function getData( format : String ) : String; - /** @throws DOMError */ /** Set the data for a given type. If data for the type does not exist, it is added at the end, such that the last item in the types list will be the new format. If data for the type already exists, the existing data is replaced in the same position. + @throws DOMError **/ function setData( format : String, data : String ) : Void; - /** @throws DOMError */ /** Remove the data associated with a given type. The type argument is optional. If the type is empty or not specified, the data associated with all types is removed. If data for the specified type does not exist, or the data transfer contains no data, this method will have no effect. + @throws DOMError **/ function clearData( ?format : String ) : Void; - /** @throws DOMError */ /** Sets the drag source to the given element. + @throws DOMError **/ function addElement( element : Element ) : Void; } \ No newline at end of file diff --git a/std/js/html/DataTransferItem.hx b/std/js/html/DataTransferItem.hx new file mode 100644 index 00000000..294fbf0c --- /dev/null +++ b/std/js/html/DataTransferItem.hx @@ -0,0 +1,59 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\DataTransferItem.webidl. Do not edit! + +package js.html; + +/** + The `DataTransferItem` object represents one drag data item. During a drag operation, each `drag event` has a `dataTransfer` property which contains a `list` of drag data items. Each item in the list is a `DataTransferItem` object. + + Documentation [DataTransferItem](https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("DataTransferItem") +extern class DataTransferItem { + + /** + The kind of drag data item, `string` or `file`. + **/ + var kind(default,null) : String; + + /** + The drag data item's type, typically a MIME type. + **/ + var type(default,null) : String; + + + /** + Invokes the specified callback with the drag data item string as its argument. + @throws DOMError + **/ + function getAsString( callback : String -> Void ) : Void; + + /** + Returns the `File` object associated with the drag data item (or null if the drag item is not a file). + @throws DOMError + **/ + function getAsFile() : File; +} \ No newline at end of file diff --git a/std/js/html/DataTransferItemList.hx b/std/js/html/DataTransferItemList.hx new file mode 100644 index 00000000..74ca8268 --- /dev/null +++ b/std/js/html/DataTransferItemList.hx @@ -0,0 +1,61 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\DataTransferItemList.webidl. Do not edit! + +package js.html; + +/** + The `DataTransferItemList` object is a list of `DataTransferItem` objects representing items being dragged. During a drag operation, each `DragEvent` has a `dataTransfer` property and that property is a `DataTransferItemList`. + + Documentation [DataTransferItemList](https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("DataTransferItemList") +extern class DataTransferItemList implements ArrayAccess { + + /** + An `unsigned long` that is the number of drag items in the list. + **/ + var length(default,null) : Int; + + + /** + Adds an item (either a `File` object or a `DOMString`) to the drag item list and returns a `DataTransferItem` object for the new item. + @throws DOMError + **/ + @:overload( function( data : String, type : String ) : DataTransferItem {} ) + function add( data : File ) : DataTransferItem; + + /** + Removes the drag item from the list at the given index. + @throws DOMError + **/ + function remove( index : Int ) : Void; + + /** + Removes all of the drag items from the list. + @throws DOMError + **/ + function clear() : Void; +} \ No newline at end of file diff --git a/std/js/html/DataView.hx b/std/js/html/DataView.hx index 5e7643db..9c7af115 100644 --- a/std/js/html/DataView.hx +++ b/std/js/html/DataView.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,32 +20,6 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from typedarray.webidl. Do not edit! - package js.html; -// Explicitly include the compatibility class -import js.html.compat.DataView; - -@:native("DataView") -extern class DataView extends ArrayBufferView -{ - /** @throws DOMError */ - function new( buffer : ArrayBuffer, ?byteOffset : Int, ?byteLength : Int ) : Void; - @:pure function getInt8( byteOffset : Int ) : Int; - @:pure function getUint8( byteOffset : Int ) : Int; - @:pure function getInt16( byteOffset : Int, ?littleEndian : Bool ) : Int; - @:pure function getUint16( byteOffset : Int, ?littleEndian : Bool ) : Int; - @:pure function getInt32( byteOffset : Int, ?littleEndian : Bool ) : Int; - @:pure function getUint32( byteOffset : Int, ?littleEndian : Bool ) : Int; - @:pure function getFloat32( byteOffset : Int, ?littleEndian : Bool ) : Float; - @:pure function getFloat64( byteOffset : Int, ?littleEndian : Bool ) : Float; - function setInt8( byteOffset : Int, value : Int ) : Void; - function setUint8( byteOffset : Int, value : Int ) : Void; - function setInt16( byteOffset : Int, value : Int, ?littleEndian : Bool ) : Void; - function setUint16( byteOffset : Int, value : Int, ?littleEndian : Bool ) : Void; - function setInt32( byteOffset : Int, value : Int, ?littleEndian : Bool ) : Void; - function setUint32( byteOffset : Int, value : Int, ?littleEndian : Bool ) : Void; - function setFloat32( byteOffset : Int, value : Float, ?littleEndian : Bool ) : Void; - function setFloat64( byteOffset : Int, value : Float, ?littleEndian : Bool ) : Void; -} \ No newline at end of file +@:deprecated typedef DataView = js.lib.DataView; diff --git a/std/js/html/DedicatedWorkerGlobalScope.hx b/std/js/html/DedicatedWorkerGlobalScope.hx index 944cb1d5..fc9e7094 100644 --- a/std/js/html/DedicatedWorkerGlobalScope.hx +++ b/std/js/html/DedicatedWorkerGlobalScope.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,14 +32,32 @@ package js.html; @see **/ @:native("DedicatedWorkerGlobalScope") -extern class DedicatedWorkerGlobalScope extends WorkerGlobalScope -{ +extern class DedicatedWorkerGlobalScope extends WorkerGlobalScope { + + /** + The name that the `Worker` was (optionally) given when it was created using the `Worker.Worker` constructor. This is mainly useful for debugging purposes. + **/ + var name(default,null) : String; /** Is an `EventHandler` representing the code to be called when the `message` event is raised. These events are of type `MessageEvent` and will be called when the worker receives a message from the document that started it (i.e. from the `Worker.postMessage` method.) **/ var onmessage : haxe.Constraints.Function; - /** @throws DOMError */ + /** + Is an `EventHandler` representing the code to be called when the `messageerror` event is raised. + **/ + var onmessageerror : haxe.Constraints.Function; + + + /** + Sends a message — which can consist of `any` JavaScript object — to the parent document that first spawned the worker. + @throws DOMError + **/ function postMessage( message : Dynamic, ?transfer : Array ) : Void; + + /** + Discards any tasks queued in the `WorkerGlobalScope`'s event loop, effectively closing this particular scope. + **/ + function close() : Void; } \ No newline at end of file diff --git a/std/js/html/ContentElement.hx b/std/js/html/DetailsElement.hx similarity index 57% rename from std/js/html/ContentElement.hx rename to std/js/html/DetailsElement.hx index eaade210..6f246118 100644 --- a/std/js/html/ContentElement.hx +++ b/std/js/html/DetailsElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,29 +20,23 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from mozilla\HTMLContentElement.webidl. Do not edit! +// This file is generated from mozilla\HTMLDetailsElement.webidl. Do not edit! package js.html; /** - The `HTMLContentElement` interface represents a `content` HTML Element, which is used in Shadow DOM. + The `HTMLDetailsElement` interface provides special properties (beyond the regular `HTMLElement` interface it also has available to it by inheritance) for manipulating `details` elements. - Documentation [HTMLContentElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLContentElement) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLContentElement$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + Documentation [HTMLDetailsElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLDetailsElement) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLDetailsElement$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). - @see + @see **/ -@:native("HTMLContentElement") -extern class ContentElement extends Element -{ +@:native("HTMLDetailsElement") +extern class DetailsElement extends Element { /** - Is a `DOMString` that reflects the `select` HTML attribute. The value is a comma-separated list of CSS selectors that select the content to insert in place of the `content` element. + Is a `boolean` reflecting the `open` HTML attribute, indicating whether or not the element’s contents (not counting the `summary`) is to be shown to the user. **/ - var select : String; + var open : Bool; - - /** - Returns a static `NodeList` of the `distributed nodes` associated with this `content` element.  - **/ - function getDistributedNodes() : NodeList; } \ No newline at end of file diff --git a/std/js/html/DeviceAcceleration.hx b/std/js/html/DeviceAcceleration.hx index ae83f1ac..9b82d24d 100644 --- a/std/js/html/DeviceAcceleration.hx +++ b/std/js/html/DeviceAcceleration.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -31,9 +31,7 @@ package js.html; @see **/ -@:native("DeviceAcceleration") -extern class DeviceAcceleration -{ +typedef DeviceAcceleration = { /** The amount of acceleration along the X axis. Read only. diff --git a/std/js/html/DeviceAccelerationInit.hx b/std/js/html/DeviceAccelerationInit.hx index 3f904339..6407388b 100644 --- a/std/js/html/DeviceAccelerationInit.hx +++ b/std/js/html/DeviceAccelerationInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,9 +24,8 @@ package js.html; -typedef DeviceAccelerationInit = -{ - @:optional var x : Float; - @:optional var y : Float; - @:optional var z : Float; +typedef DeviceAccelerationInit = { + var ?x : Float; + var ?y : Float; + var ?z : Float; } \ No newline at end of file diff --git a/std/js/html/DeviceMotionEvent.hx b/std/js/html/DeviceMotionEvent.hx index 6be1a83e..9b2fd0ee 100644 --- a/std/js/html/DeviceMotionEvent.hx +++ b/std/js/html/DeviceMotionEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("DeviceMotionEvent") -extern class DeviceMotionEvent extends Event -{ +extern class DeviceMotionEvent extends Event { /** An object giving the acceleration of the device on the three axis X, Y and Z. Acceleration is expressed in m/s2. @@ -46,7 +45,7 @@ extern class DeviceMotionEvent extends Event var accelerationIncludingGravity(default,null) : DeviceAcceleration; /** - An object giving the rate of change of the device's orientation on the three orientation axis alpha, beta and gamma. Rotation rate is express in degrees per seconds. + An object giving the rate of change of the device's orientation on the three orientation axis alpha, beta and gamma. Rotation rate is expressed in degrees per seconds. **/ var rotationRate(default,null) : DeviceRotationRate; @@ -57,5 +56,5 @@ extern class DeviceMotionEvent extends Event /** @throws DOMError */ function new( type : String, ?eventInitDict : DeviceMotionEventInit ) : Void; - function initDeviceMotionEvent( type : String, canBubble : Bool, cancelable : Bool, acceleration : DeviceAccelerationInit, accelerationIncludingGravity : DeviceAccelerationInit, rotationRate : DeviceRotationRateInit, interval : Float ) : Void; + function initDeviceMotionEvent( type : String, canBubble : Bool = false, cancelable : Bool = false, ?acceleration : DeviceAccelerationInit, ?accelerationIncludingGravity : DeviceAccelerationInit, ?rotationRate : DeviceRotationRateInit, ?interval : Float ) : Void; } \ No newline at end of file diff --git a/std/js/html/DeviceMotionEventInit.hx b/std/js/html/DeviceMotionEventInit.hx index ba1c89a0..a12ba420 100644 --- a/std/js/html/DeviceMotionEventInit.hx +++ b/std/js/html/DeviceMotionEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,11 +24,9 @@ package js.html; -typedef DeviceMotionEventInit = -{ - > EventInit, - @:optional var acceleration : DeviceAccelerationInit; - @:optional var accelerationIncludingGravity : DeviceAccelerationInit; - @:optional var interval : Float; - @:optional var rotationRate : DeviceRotationRateInit; +typedef DeviceMotionEventInit = EventInit & { + var ?acceleration : DeviceAccelerationInit; + var ?accelerationIncludingGravity : DeviceAccelerationInit; + var ?interval : Float; + var ?rotationRate : DeviceRotationRateInit; } \ No newline at end of file diff --git a/std/js/html/DeviceOrientationEvent.hx b/std/js/html/DeviceOrientationEvent.hx index 31c6735d..abd17758 100644 --- a/std/js/html/DeviceOrientationEvent.hx +++ b/std/js/html/DeviceOrientationEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,11 +32,10 @@ package js.html; @see **/ @:native("DeviceOrientationEvent") -extern class DeviceOrientationEvent extends Event -{ +extern class DeviceOrientationEvent extends Event { /** - A number representing the motion of the device around the z axis, express in degrees with values ranging from 0 to 360 + A number representing the motion of the device around the z axis, express in degrees with values ranging from 0 to 360. **/ var alpha(default,null) : Float; @@ -57,5 +56,5 @@ extern class DeviceOrientationEvent extends Event /** @throws DOMError */ function new( type : String, ?eventInitDict : DeviceOrientationEventInit ) : Void; - function initDeviceOrientationEvent( type : String, canBubble : Bool, cancelable : Bool, alpha : Float, beta : Float, gamma : Float, absolute : Bool ) : Void; + function initDeviceOrientationEvent( type : String, canBubble : Bool = false, cancelable : Bool = false, ?alpha : Float, ?beta : Float, ?gamma : Float, absolute : Bool = false ) : Void; } \ No newline at end of file diff --git a/std/js/html/DeviceOrientationEventInit.hx b/std/js/html/DeviceOrientationEventInit.hx index a47d5949..34d7f7b0 100644 --- a/std/js/html/DeviceOrientationEventInit.hx +++ b/std/js/html/DeviceOrientationEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,11 +24,9 @@ package js.html; -typedef DeviceOrientationEventInit = -{ - > EventInit, - @:optional var absolute : Bool; - @:optional var alpha : Float; - @:optional var beta : Float; - @:optional var gamma : Float; +typedef DeviceOrientationEventInit = EventInit & { + var ?absolute : Bool; + var ?alpha : Float; + var ?beta : Float; + var ?gamma : Float; } \ No newline at end of file diff --git a/std/js/html/DeviceRotationRate.hx b/std/js/html/DeviceRotationRate.hx index 17d6d183..dd6d6f5d 100644 --- a/std/js/html/DeviceRotationRate.hx +++ b/std/js/html/DeviceRotationRate.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -31,11 +31,21 @@ package js.html; @see **/ -@:native("DeviceRotationRate") -extern class DeviceRotationRate -{ +typedef DeviceRotationRate = { + + /** + The amount of rotation around the Z axis, in degrees per second. + **/ var alpha(default,null) : Float; + + /** + The amount of rotation around the X axis, in degrees per second. + **/ var beta(default,null) : Float; + + /** + The amount of rotation around the Y axis, in degrees per second. + **/ var gamma(default,null) : Float; } \ No newline at end of file diff --git a/std/js/html/DeviceRotationRateInit.hx b/std/js/html/DeviceRotationRateInit.hx index 180cb102..1cc295ef 100644 --- a/std/js/html/DeviceRotationRateInit.hx +++ b/std/js/html/DeviceRotationRateInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,9 +24,8 @@ package js.html; -typedef DeviceRotationRateInit = -{ - @:optional var alpha : Float; - @:optional var beta : Float; - @:optional var gamma : Float; +typedef DeviceRotationRateInit = { + var ?alpha : Float; + var ?beta : Float; + var ?gamma : Float; } \ No newline at end of file diff --git a/std/js/html/DirectionSetting.hx b/std/js/html/DirectionSetting.hx index b9027c70..8a4cb3ee 100644 --- a/std/js/html/DirectionSetting.hx +++ b/std/js/html/DirectionSetting.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -@:enum abstract DirectionSetting(String) -{ +enum abstract DirectionSetting(String) { var NONE = ""; var RL = "rl"; var LR = "lr"; diff --git a/std/js/html/Directory.hx b/std/js/html/Directory.hx index 149e7cb1..719d3559 100644 --- a/std/js/html/Directory.hx +++ b/std/js/html/Directory.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,11 +24,17 @@ package js.html; +import js.lib.Promise; + @:native("Directory") -extern class Directory -{ +extern class Directory { var name(default,null) : String; var path(default,null) : String; - + + /** @throws DOMError */ + function new( path : String ) : Void; + /** @throws DOMError */ function getFilesAndDirectories() : Promise>>; + /** @throws DOMError */ + function getFiles( recursiveFlag : Bool = false ) : Promise>; } \ No newline at end of file diff --git a/std/js/html/DirectoryElement.hx b/std/js/html/DirectoryElement.hx index 0e54e1dc..35b993f0 100644 --- a/std/js/html/DirectoryElement.hx +++ b/std/js/html/DirectoryElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,8 +25,7 @@ package js.html; @:native("HTMLDirectoryElement") -extern class DirectoryElement extends Element -{ +extern class DirectoryElement extends Element { var compact : Bool; } \ No newline at end of file diff --git a/std/js/html/DisplayNameOptions.hx b/std/js/html/DisplayNameOptions.hx new file mode 100644 index 00000000..b91e0e11 --- /dev/null +++ b/std/js/html/DisplayNameOptions.hx @@ -0,0 +1,30 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\IntlUtils.webidl. Do not edit! + +package js.html; + +typedef DisplayNameOptions = { + var ?keys : Array; + var ?style : String; +} \ No newline at end of file diff --git a/std/js/html/DisplayNameResult.hx b/std/js/html/DisplayNameResult.hx new file mode 100644 index 00000000..d5e8a60f --- /dev/null +++ b/std/js/html/DisplayNameResult.hx @@ -0,0 +1,31 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\IntlUtils.webidl. Do not edit! + +package js.html; + +typedef DisplayNameResult = { + var ?locale : String; + var ?style : String; + var ?values : haxe.DynamicAccess; +} \ No newline at end of file diff --git a/std/js/html/DivElement.hx b/std/js/html/DivElement.hx index 85598fa3..ac1adbaf 100644 --- a/std/js/html/DivElement.hx +++ b/std/js/html/DivElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("HTMLDivElement") -extern class DivElement extends Element -{ +extern class DivElement extends Element { /** Is a `DOMString` representing an enumerated property indicating alignment of the element's contents with respect to the surrounding context. The possible values are `"left"`, `"right"`, `"justify"`, and `"center"`. diff --git a/std/js/html/Document.hx b/std/js/html/Document.hx index c1362995..8085da99 100644 --- a/std/js/html/Document.hx +++ b/std/js/html/Document.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,15 +25,14 @@ package js.html; /** - The `Document` interface represents any web page loaded in the browser and serves as an entry point into the web page's content, which is the DOM tree. The DOM tree includes elements such as `body` and `table`, among many others. It provides functionality global to the document, like how to obtain the page's URL and create new elements in the document. + The `Document` interface represents any web page loaded in the browser and serves as an entry point into the web page's content, which is the DOM tree.`HTMLElement` Documentation [Document](https://developer.mozilla.org/en-US/docs/Web/API/Document) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Document$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("Document") -extern class Document extends Node -{ +extern class Document extends Node { /** Returns the DOM implementation associated with the current document. @@ -81,7 +80,7 @@ extern class Document extends Node var doctype(default,null) : DocumentType; /** - Returns the `Element` that is a direct child of the document. For HTML documents, this is normally the `html` element. + Returns the `Element` that is a direct child of the document. For HTML documents, this is normally the `HTMLElement` element. **/ var documentElement(default,null) : Element; @@ -106,7 +105,7 @@ extern class Document extends Node var readyState(default,null) : String; /** - Sets or gets title of the current document. + Sets or gets the title of the current document. **/ var title : String; @@ -116,39 +115,54 @@ extern class Document extends Node var dir : String; /** - Returns a reference to the window object. + Returns the `body` or `frameset` node of the current document. **/ - var defaultView(default,null) : Window; + var body : Element; /** - Returns the currently focused element. + Returns the `head` element of the current document. **/ - var activeElement(default,null) : Element; + var head(default,null) : HeadElement; /** - Represents the event handling code for the `readystatechange` event. + Returns a list of the images in the current document. **/ - var onreadystatechange : haxe.Constraints.Function; + var images(default,null) : HTMLCollection; /** - Represents the event handling code for the `wheel` event. + Returns a list of the embedded `embed` elements within the current document. **/ - var onwheel : haxe.Constraints.Function; + var embeds(default,null) : HTMLCollection; /** - Represents the event handling code for the `copy` event. + Returns a list of the available plugins. **/ - var oncopy : haxe.Constraints.Function; + var plugins(default,null) : HTMLCollection; /** - Represents the event handling code for the `cut` event. + Returns a list of all the hyperlinks in the document. **/ - var oncut : haxe.Constraints.Function; + var links(default,null) : HTMLCollection; /** - Represents the event handling code for the `paste` event. + Returns a list of the `form` elements within the current document. **/ - var onpaste : haxe.Constraints.Function; + var forms(default,null) : HTMLCollection; + + /** + Returns all the `script` elements on the document. + **/ + var scripts(default,null) : HTMLCollection; + + /** + Returns a reference to the window object. + **/ + var defaultView(default,null) : Window; + + /** + Represents the event handling code for the `readystatechange` event. + **/ + var onreadystatechange : haxe.Constraints.Function; /** Represents the event handling code for the `beforescriptexecute` event. @@ -159,14 +173,48 @@ extern class Document extends Node Represents the event handling code for the `afterscriptexecute` event. **/ var onafterscriptexecute : haxe.Constraints.Function; + + /** + Is an `EventHandler` representing the code to be called when the `selectionchange` event is raised. + **/ + var onselectionchange : haxe.Constraints.Function; var currentScript(default,null) : Element; + + /** + Returns a list of all of the anchors in the document. + **/ + var anchors(default,null) : HTMLCollection; + + /** + Returns an ordered list of the applets within a document. + **/ + var applets(default,null) : HTMLCollection; + + /** + `true` when the document is in `Using_full-screen_mode`. + **/ + var fullscreen(default,null) : Bool; var fullscreenEnabled(default,null) : Bool; - var fullscreenElement(default,null) : Element; /** - Returns the element set as the target for mouse events while the pointer is locked. `null` if lock is pending, pointer is unlocked, or if the target is in another document. + Is an `EventHandler` representing the code to be called when the `fullscreenchange` event is raised. **/ - var pointerLockElement(default,null) : Element; + var onfullscreenchange : haxe.Constraints.Function; + + /** + Is an `EventHandler` representing the code to be called when the `fullscreenerror` event is raised. + **/ + var onfullscreenerror : haxe.Constraints.Function; + + /** + Represents the event handling code for the `pointerlockchange` event. + **/ + var onpointerlockchange : haxe.Constraints.Function; + + /** + Represents the event handling code for the `pointerlockerror` event. + **/ + var onpointerlockerror : haxe.Constraints.Function; /** … @@ -174,16 +222,14 @@ extern class Document extends Node var hidden(default,null) : Bool; /** - - Returns a `string` denoting the visibility state of the document. Possible values are `visible`,  `hidden`,  `prerender`, and `unloaded`. - + Returns a `string` denoting the visibility state of the document. Possible values are `visible`,  `hidden`,  `prerender`, and `unloaded`. **/ var visibilityState(default,null) : VisibilityState; /** - Returns a list of the style sheet objects on the current document. + Is an `EventHandler` representing the code to be called when the `visibilitychange` event is raised. **/ - var styleSheets(default,null) : StyleSheetList; + var onvisibilitychange : haxe.Constraints.Function; /** Returns which style sheet set is currently in use. @@ -205,23 +251,55 @@ extern class Document extends Node **/ var styleSheetSets(default,null) : DOMStringList; + /** + Returns a reference to the `Element` that scrolls the document. + **/ + var scrollingElement(default,null) : Element; + /** … **/ var timeline(default,null) : DocumentTimeline; + var rootElement(default,null) : js.html.svg.SVGElement; + + /** + Represents the event handling code for the `copy` event. + **/ + var oncopy : haxe.Constraints.Function; + + /** + Represents the event handling code for the `cut` event. + **/ + var oncut : haxe.Constraints.Function; + + /** + Represents the event handling code for the `paste` event. + **/ + var onpaste : haxe.Constraints.Function; + var activeElement(default,null) : Element; + var styleSheets(default,null) : StyleSheetList; + var pointerLockElement(default,null) : Element; + + /** + The element that's currently in full screen mode for this document. + **/ + var fullscreenElement(default,null) : Element; var fonts(default,null) : FontFaceSet; var onabort : haxe.Constraints.Function; var onblur : haxe.Constraints.Function; var onfocus : haxe.Constraints.Function; + var onauxclick : haxe.Constraints.Function; var oncanplay : haxe.Constraints.Function; var oncanplaythrough : haxe.Constraints.Function; var onchange : haxe.Constraints.Function; var onclick : haxe.Constraints.Function; + var onclose : haxe.Constraints.Function; var oncontextmenu : haxe.Constraints.Function; var ondblclick : haxe.Constraints.Function; var ondrag : haxe.Constraints.Function; var ondragend : haxe.Constraints.Function; var ondragenter : haxe.Constraints.Function; + var ondragexit : haxe.Constraints.Function; var ondragleave : haxe.Constraints.Function; var ondragover : haxe.Constraints.Function; var ondragstart : haxe.Constraints.Function; @@ -237,6 +315,7 @@ extern class Document extends Node var onload : haxe.Constraints.Function; var onloadeddata : haxe.Constraints.Function; var onloadedmetadata : haxe.Constraints.Function; + var onloadend : haxe.Constraints.Function; var onloadstart : haxe.Constraints.Function; var onmousedown : haxe.Constraints.Function; var onmouseenter : haxe.Constraints.Function; @@ -245,6 +324,11 @@ extern class Document extends Node var onmouseout : haxe.Constraints.Function; var onmouseover : haxe.Constraints.Function; var onmouseup : haxe.Constraints.Function; + + /** + Represents the event handling code for the `wheel` event. + **/ + var onwheel : haxe.Constraints.Function; var onpause : haxe.Constraints.Function; var onplay : haxe.Constraints.Function; var onplaying : haxe.Constraints.Function; @@ -263,6 +347,8 @@ extern class Document extends Node var ontimeupdate : haxe.Constraints.Function; var onvolumechange : haxe.Constraints.Function; var onwaiting : haxe.Constraints.Function; + var onselectstart : haxe.Constraints.Function; + var ontoggle : haxe.Constraints.Function; var onpointercancel : haxe.Constraints.Function; var onpointerdown : haxe.Constraints.Function; var onpointerup : haxe.Constraints.Function; @@ -273,26 +359,18 @@ extern class Document extends Node var onpointerleave : haxe.Constraints.Function; var ongotpointercapture : haxe.Constraints.Function; var onlostpointercapture : haxe.Constraints.Function; - - /** - Is an `EventHandler` representing the code to be called when the `fullscreenchange` event is raised. - **/ - var onfullscreenchange : haxe.Constraints.Function; - - /** - Is an `EventHandler` representing the code to be called when the `fullscreenerror` event is raised. - **/ - var onfullscreenerror : haxe.Constraints.Function; - - /** - Represents the event handling code for the `pointerlockchange` event. - **/ - var onpointerlockchange : haxe.Constraints.Function; - - /** - Represetnts the event handling code for the `pointerlockerror` event. - **/ - var onpointerlockerror : haxe.Constraints.Function; + var onanimationcancel : haxe.Constraints.Function; + var onanimationend : haxe.Constraints.Function; + var onanimationiteration : haxe.Constraints.Function; + var onanimationstart : haxe.Constraints.Function; + var ontransitioncancel : haxe.Constraints.Function; + var ontransitionend : haxe.Constraints.Function; + var ontransitionrun : haxe.Constraints.Function; + var ontransitionstart : haxe.Constraints.Function; + var onwebkitanimationend : haxe.Constraints.Function; + var onwebkitanimationiteration : haxe.Constraints.Function; + var onwebkitanimationstart : haxe.Constraints.Function; + var onwebkittransitionend : haxe.Constraints.Function; var onerror : haxe.Constraints.Function; var children(default,null) : HTMLCollection; var firstElementChild(default,null) : Element; @@ -309,33 +387,37 @@ extern class Document extends Node /** Returns a list of elements with the given tag name. **/ + @:pure function getElementsByTagName( localName : String ) : HTMLCollection; - /** @throws DOMError */ /** Returns a list of elements with the given tag name and namespace. + @throws DOMError **/ - function getElementsByTagNameNS( namespace_ : String, localName : String ) : HTMLCollection; + @:pure + function getElementsByTagNameNS( namespace : String, localName : String ) : HTMLCollection; /** Returns a list of elements with the given class name. **/ + @:pure function getElementsByClassName( classNames : String ) : HTMLCollection; + @:pure function getElementById( elementId : String ) : Element; - /** @throws DOMError */ - @:overload( function( localName : String ) : Element {} ) /** Creates a new element with the given tag name. + @throws DOMError **/ - function createElement( localName : String, typeExtension : String ) : Element; - /** @throws DOMError */ - @:overload( function( namespace_ : String, qualifiedName : String ) : Element {} ) + @:overload( function( localName : String, ?options : String) : Element {} ) + function createElement( localName : String, ?options : ElementCreationOptions ) : Element; /** Creates a new element with the given tag name and namespace URI. + @throws DOMError **/ - function createElementNS( namespace_ : String, qualifiedName : String, typeExtension : String ) : Element; + @:overload( function( namespace : String, qualifiedName : String, ?options : String) : Element {} ) + function createElementNS( namespace : String, qualifiedName : String, ?options : ElementCreationOptions ) : Element; /** Creates a new document fragment. @@ -351,67 +433,77 @@ extern class Document extends Node Creates a new comment node and returns it. **/ function createComment( data : String ) : Comment; - /** @throws DOMError */ /** Creates a new `ProcessingInstruction` object. + @throws DOMError **/ function createProcessingInstruction( target : String, data : String ) : ProcessingInstruction; - /** @throws DOMError */ /** Returns a clone of a node from an external document. + @throws DOMError **/ - function importNode( node : Node, ?deep : Bool = false ) : Node; - /** @throws DOMError */ + function importNode( node : Node, deep : Bool = false ) : Node; /** Adopt node from an external document. + @throws DOMError **/ function adoptNode( node : Node ) : Node; - /** @throws DOMError */ /** Creates an event object. + @throws DOMError **/ function createEvent( interface_ : String ) : Event; - /** @throws DOMError */ /** Creates a `Range` object. + @throws DOMError **/ function createRange() : Range; - /** @throws DOMError */ /** Creates a `NodeIterator` object. + @throws DOMError **/ - function createNodeIterator( root : Node, ?whatToShow : Int = cast 4294967295, ?filter : NodeFilter ) : NodeIterator; - /** @throws DOMError */ + @:overload( function( root : Node, whatToShow : Int = cast 4294967295, ?filter : haxe.Constraints.Function) : NodeIterator {} ) + @:overload( function( root : Node, whatToShow : Int = cast 4294967295, ?filter : NodeFilter) : NodeIterator {} ) + function createNodeIterator( root : Node, whatToShow : Int = cast 4294967295, ?filter : Node -> Int ) : NodeIterator; /** Creates a `TreeWalker` object. + @throws DOMError **/ - function createTreeWalker( root : Node, ?whatToShow : Int = cast 4294967295, ?filter : NodeFilter ) : TreeWalker; - /** @throws DOMError */ + @:overload( function( root : Node, whatToShow : Int = cast 4294967295, ?filter : haxe.Constraints.Function) : TreeWalker {} ) + @:overload( function( root : Node, whatToShow : Int = cast 4294967295, ?filter : NodeFilter) : TreeWalker {} ) + function createTreeWalker( root : Node, whatToShow : Int = cast 4294967295, ?filter : Node -> Int ) : TreeWalker; /** Creates a new CDATA node and returns it. + @throws DOMError **/ function createCDATASection( data : String ) : CDATASection; - /** @throws DOMError */ /** Creates a new `Attr` object and returns it. + @throws DOMError **/ function createAttribute( name : String ) : Attr; - /** @throws DOMError */ /** Creates a new attribute node in a given namespace and returns it. + @throws DOMError + **/ + function createAttributeNS( namespace : String, name : String ) : Attr; + @:pure + function getElementsByName( elementName : String ) : NodeList; + + /** + Returns `true` if the focus is currently located anywhere inside the specified document. + @throws DOMError **/ - function createAttributeNS( namespace_ : String, name : String ) : Attr; - /** @throws DOMError */ function hasFocus() : Bool; /** @@ -424,62 +516,65 @@ extern class Document extends Node Release the pointer lock. **/ function exitPointerLock() : Void; - /** @throws DOMError */ - - /** - Registers a web component. - **/ - function registerElement( name : String, ?options : ElementRegistrationOptions ) : Dynamic; /** Enables the style sheets for the specified style sheet set. **/ function enableStyleSheetsForSet( name : String ) : Void; - - /** - Returns the topmost element at the specified coordinates.  - **/ - function elementFromPoint( x : Float, y : Float ) : Element; - - /** - Returns an array of all elements at the specified coordinates. - **/ - function elementsFromPoint( x : Float, y : Float ) : Array; - - /** - Gets the `CaretPosition` at or near the specified coordinates. - **/ function caretPositionFromPoint( x : Float, y : Float ) : CaretPosition; /** @throws DOMError */ + @:pure function querySelector( selectors : String ) : Element; /** @throws DOMError */ + @:pure function querySelectorAll( selectors : String ) : NodeList; /** - Returns an array of all `Animation` objects currently in effect whose target elements are descendants of the `document`. + Returns an array of all `Animation` objects currently in effect, whose target elements are descendants of the `document`. **/ function getAnimations() : Array; /** Creates a `Touch` object. **/ - function createTouch( ?view : Window, ?target : EventTarget, ?identifier : Int = 0, ?pageX : Int = 0, ?pageY : Int = 0, ?screenX : Int = 0, ?screenY : Int = 0, ?clientX : Int = 0, ?clientY : Int = 0, ?radiusX : Int = 0, ?radiusY : Int = 0, ?rotationAngle : Float = 0.0, ?force : Float = 0.0 ) : Touch; - @:overload( function( touch : Touch, touches : haxe.extern.Rest ) : TouchList {} ) - @:overload( function() : TouchList {} ) + function createTouch( ?view : Window, ?target : EventTarget, identifier : Int = 0, pageX : Int = 0, pageY : Int = 0, screenX : Int = 0, screenY : Int = 0, clientX : Int = 0, clientY : Int = 0, radiusX : Int = 0, radiusY : Int = 0, rotationAngle : Float = 0.0, force : Float = 0.0 ) : Touch; /** Creates a `TouchList` object. **/ + @:overload( function( touch : Touch, touches : haxe.extern.Rest ) : TouchList {} ) + @:overload( function() : TouchList {} ) function createTouchList( touches : Array ) : TouchList; /** @throws DOMError */ - function convertQuadFromNode( quad : DOMQuad, from : haxe.extern.EitherType>, ?options : ConvertCoordinateOptions ) : DOMQuad; + function getSelection() : Selection; + function elementFromPoint( x : Float, y : Float ) : Element; + function elementsFromPoint( x : Float, y : Float ) : Array; + /** @throws DOMError */ + @:overload( function( quad : DOMQuad, from : Element, ?options : ConvertCoordinateOptions) : DOMQuad {} ) + @:overload( function( quad : DOMQuad, from : HTMLDocument, ?options : ConvertCoordinateOptions) : DOMQuad {} ) + function convertQuadFromNode( quad : DOMQuad, from : Text, ?options : ConvertCoordinateOptions ) : DOMQuad; + /** @throws DOMError */ + @:overload( function( rect : DOMRectReadOnly, from : Element, ?options : ConvertCoordinateOptions) : DOMQuad {} ) + @:overload( function( rect : DOMRectReadOnly, from : HTMLDocument, ?options : ConvertCoordinateOptions) : DOMQuad {} ) + function convertRectFromNode( rect : DOMRectReadOnly, from : Text, ?options : ConvertCoordinateOptions ) : DOMQuad; + /** @throws DOMError */ + @:overload( function( point : DOMPointInit, from : Element, ?options : ConvertCoordinateOptions) : DOMPoint {} ) + @:overload( function( point : DOMPointInit, from : HTMLDocument, ?options : ConvertCoordinateOptions) : DOMPoint {} ) + function convertPointFromNode( point : DOMPointInit, from : Text, ?options : ConvertCoordinateOptions ) : DOMPoint; /** @throws DOMError */ - function convertRectFromNode( rect : DOMRectReadOnly, from : haxe.extern.EitherType>, ?options : ConvertCoordinateOptions ) : DOMQuad; + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function prepend( nodes : haxe.extern.Rest ) : Void; /** @throws DOMError */ - function convertPointFromNode( point : DOMPointInit, from : haxe.extern.EitherType>, ?options : ConvertCoordinateOptions ) : DOMPoint; + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function append( nodes : haxe.extern.Rest ) : Void; /** @throws DOMError */ - function createExpression( expression : String, resolver : XPathNSResolver ) : XPathExpression; + @:overload( function( expression : String, ?resolver : haxe.Constraints.Function) : XPathExpression {} ) + @:overload( function( expression : String, ?resolver : XPathNSResolver) : XPathExpression {} ) + function createExpression( expression : String, ?resolver : String -> Null ) : XPathExpression; + @:pure function createNSResolver( nodeResolver : Node ) : Node; /** @throws DOMError */ - function evaluate( expression : String, contextNode : Node, resolver : XPathNSResolver, type : Int, result : Dynamic ) : XPathResult; + @:overload( function( expression : String, contextNode : Node, ?resolver : haxe.Constraints.Function, type : Int = 0, ?result : Dynamic) : XPathResult {} ) + @:overload( function( expression : String, contextNode : Node, ?resolver : XPathNSResolver, type : Int = 0, ?result : Dynamic) : XPathResult {} ) + function evaluate( expression : String, contextNode : Node, ?resolver : String -> Null, type : Int = 0, ?result : Dynamic ) : XPathResult; } \ No newline at end of file diff --git a/std/js/html/DocumentFragment.hx b/std/js/html/DocumentFragment.hx index 9b070b88..9919b323 100644 --- a/std/js/html/DocumentFragment.hx +++ b/std/js/html/DocumentFragment.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,15 +25,14 @@ package js.html; /** - The `DocumentFragment` interface represents a minimal document object that has no parent. It is used as a light-weight version of `Document` to store well-formed or potentially non-well-formed fragments of XML. + The `DocumentFragment` interface represents a minimal document object that has no parent. It is used as a lightweight version of `Document` that stores a segment of a document structure comprised of nodes just like a standard document. The key difference is that because the document fragment isn't part of the active document tree structure, changes made to the fragment don't affect the document, cause reflow, or incur any performance impact that can occur when changes are made. Documentation [DocumentFragment](https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("DocumentFragment") -extern class DocumentFragment extends Node -{ +extern class DocumentFragment extends Node { var children(default,null) : HTMLCollection; var firstElementChild(default,null) : Element; var lastElementChild(default,null) : Element; @@ -46,16 +45,22 @@ extern class DocumentFragment extends Node Returns the first `Element` node within the DocumentFragment`, in document order, that matches the specified ID. **/ function getElementById( elementId : String ) : Element; - /** @throws DOMError */ /** Returns the first `Element` node within the `DocumentFragment`, in document order, that matches the specified selectors. + @throws DOMError **/ function querySelector( selectors : String ) : Element; - /** @throws DOMError */ /** Returns a `NodeList` of all the `Element` nodes within the `DocumentFragment` that match the specified selectors. + @throws DOMError **/ function querySelectorAll( selectors : String ) : NodeList; + /** @throws DOMError */ + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function prepend( nodes : haxe.extern.Rest ) : Void; + /** @throws DOMError */ + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function append( nodes : haxe.extern.Rest ) : Void; } \ No newline at end of file diff --git a/std/js/html/DocumentTimeline.hx b/std/js/html/DocumentTimeline.hx index b804bdaf..d2fdae95 100644 --- a/std/js/html/DocumentTimeline.hx +++ b/std/js/html/DocumentTimeline.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,6 +32,7 @@ package js.html; @see **/ @:native("DocumentTimeline") -extern class DocumentTimeline extends AnimationTimeline -{ +extern class DocumentTimeline extends AnimationTimeline { + /** @throws DOMError */ + function new( ?options : DocumentTimelineOptions ) : Void; } \ No newline at end of file diff --git a/std/js/html/DocumentTimelineOptions.hx b/std/js/html/DocumentTimelineOptions.hx new file mode 100644 index 00000000..5edd9968 --- /dev/null +++ b/std/js/html/DocumentTimelineOptions.hx @@ -0,0 +1,29 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\DocumentTimeline.webidl. Do not edit! + +package js.html; + +typedef DocumentTimelineOptions = { + var ?originTime : Float; +} \ No newline at end of file diff --git a/std/js/html/DocumentType.hx b/std/js/html/DocumentType.hx index 7c341350..5c17b217 100644 --- a/std/js/html/DocumentType.hx +++ b/std/js/html/DocumentType.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,23 +32,31 @@ package js.html; @see **/ @:native("DocumentType") -extern class DocumentType extends Node -{ +extern class DocumentType extends Node { /** - ... + A `DOMString`, eg `"html"` for `!DOCTYPE HTML`. **/ var name(default,null) : String; /** - ... + A `DOMString`, eg `"-//W3C//DTD HTML 4.01//EN"`, empty string for HTML5. **/ var publicId(default,null) : String; /** - ... + A `DOMString`, eg `"http://www.w3.org/TR/html4/strict.dtd"`, empty string for HTML5. **/ var systemId(default,null) : String; + /** @throws DOMError */ + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function before( nodes : haxe.extern.Rest ) : Void; + /** @throws DOMError */ + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function after( nodes : haxe.extern.Rest ) : Void; + /** @throws DOMError */ + @:overload( function( nodes : haxe.extern.Rest) : Void {} ) + function replaceWith( nodes : haxe.extern.Rest ) : Void; function remove() : Void; } \ No newline at end of file diff --git a/std/js/html/DragEvent.hx b/std/js/html/DragEvent.hx index 424bec01..775c60cc 100644 --- a/std/js/html/DragEvent.hx +++ b/std/js/html/DragEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,11 +32,14 @@ package js.html; @see **/ @:native("DragEvent") -extern class DragEvent extends MouseEvent -{ +extern class DragEvent extends MouseEvent { + + /** + The data that is transferred during a drag and drop interaction. + **/ var dataTransfer(default,null) : DataTransfer; /** @throws DOMError */ function new( type : String, ?eventInitDict : DragEventInit ) : Void; - function initDragEvent( type : String, canBubble : Bool, cancelable : Bool, aView : Window, aDetail : Int, aScreenX : Int, aScreenY : Int, aClientX : Int, aClientY : Int, aCtrlKey : Bool, aAltKey : Bool, aShiftKey : Bool, aMetaKey : Bool, aButton : Int, aRelatedTarget : EventTarget, aDataTransfer : DataTransfer ) : Void; + function initDragEvent( type : String, canBubble : Bool = false, cancelable : Bool = false, ?aView : Window, aDetail : Int = 0, aScreenX : Int = 0, aScreenY : Int = 0, aClientX : Int = 0, aClientY : Int = 0, aCtrlKey : Bool = false, aAltKey : Bool = false, aShiftKey : Bool = false, aMetaKey : Bool = false, aButton : Int = 0, ?aRelatedTarget : EventTarget, ?aDataTransfer : DataTransfer ) : Void; } \ No newline at end of file diff --git a/std/js/html/DragEventInit.hx b/std/js/html/DragEventInit.hx index 4dce79cc..77c25e41 100644 --- a/std/js/html/DragEventInit.hx +++ b/std/js/html/DragEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,6 @@ package js.html; -typedef DragEventInit = -{ - > MouseEventInit, - @:optional var dataTransfer : DataTransfer; +typedef DragEventInit = MouseEventInit & { + var ?dataTransfer : DataTransfer; } \ No newline at end of file diff --git a/std/js/html/EffectTiming.hx b/std/js/html/EffectTiming.hx new file mode 100644 index 00000000..b23e0ff1 --- /dev/null +++ b/std/js/html/EffectTiming.hx @@ -0,0 +1,75 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\AnimationEffect.webidl. Do not edit! + +package js.html; + +/** + The `EffectTiming` dictionary, part of the Web Animations API, is used by `Element.animate()`, `KeyframeEffectReadOnly()`, and `KeyframeEffect()` to describe timing properties for animation effects. These properties are all optional, although without setting a `duration` the animation will not play. + + Documentation [EffectTiming](https://developer.mozilla.org/en-US/docs/Web/API/EffectTiming) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/EffectTiming$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +typedef EffectTiming = { + + /** + The number of milliseconds to delay the start of the animation. Defaults to 0. + **/ + var ?delay : Float; + + /** + Whether the animation runs forwards (`normal`), backwards (`reverse`), switches direction after each iteration (`alternate`), or runs backwards and switches direction after each iteration (`alternate-reverse`). Defaults to `"normal"`. + **/ + var ?direction : PlaybackDirection; + + /** + The number of milliseconds each iteration of the animation takes to complete. Defaults to 0. Although this is technically optional, keep in mind that your animation will not run if this value is 0. + **/ + var ?duration : haxe.extern.EitherType; + + /** + The rate of the animation's change over time. Accepts the pre-defined values `"linear"`, `"ease"`, `"ease-in"`, `"ease-out"`, and `"ease-in-out"`, or a custom `"cubic-bezier"` value like `"cubic-bezier(0.42, 0, 0.58, 1)"`. Defaults to `"linear"`. + **/ + var ?easing : String; + + /** + The number of milliseconds to delay after the end of an animation. This is primarily of use when sequencing animations based on the end time of another animation. Defaults to 0.  + **/ + var ?endDelay : Float; + + /** + Dictates whether the animation's effects should be reflected by the element(s) prior to playing (`"backwards"`), retained after the animation has completed playing (`"forwards"`), or `both`. Defaults to `"none"`. + **/ + var ?fill : FillMode; + + /** + Describes at what point in the iteration the animation should start. 0.5 would indicate starting halfway through the first iteration for example, and with this value set, an animation with 2 iterations would end halfway through a third iteration. Defaults to 0.0. + **/ + var ?iterationStart : Float; + + /** + The number of times the animation should repeat. Defaults to `1`, and can also take a value of `Infinity` to make it repeat for as long as the element exists. + **/ + var ?iterations : Float; +} \ No newline at end of file diff --git a/std/js/html/Element.hx b/std/js/html/Element.hx index ac44555c..e50498bd 100644 --- a/std/js/html/Element.hx +++ b/std/js/html/Element.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,6 +32,22 @@ package js.html; @see **/ @:native("HTMLElement") -extern class Element extends DOMElement -{ +extern class Element extends DOMElement { + + /** + Sends a mouse click event to the element. + **/ + function click() : Void; + + /** + Makes the element the current keyboard focus. + @throws DOMError + **/ + function focus() : Void; + + /** + Removes keyboard focus from the currently focused element. + @throws DOMError + **/ + function blur() : Void; } \ No newline at end of file diff --git a/std/js/html/ElementCreationOptions.hx b/std/js/html/ElementCreationOptions.hx new file mode 100644 index 00000000..d9ced805 --- /dev/null +++ b/std/js/html/ElementCreationOptions.hx @@ -0,0 +1,29 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\Document.webidl. Do not edit! + +package js.html; + +typedef ElementCreationOptions = { + var ?is : String; +} \ No newline at end of file diff --git a/std/js/html/EmbedElement.hx b/std/js/html/EmbedElement.hx index e05f2286..35127466 100644 --- a/std/js/html/EmbedElement.hx +++ b/std/js/html/EmbedElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("HTMLEmbedElement") -extern class EmbedElement extends Element -{ +extern class EmbedElement extends Element { /** Is a `DOMString` that reflects the `src` HTML attribute, containing the address of the resource. @@ -51,12 +50,12 @@ extern class EmbedElement extends Element var width : String; /** - Is a `DOMString` representing an enumerated property indicating alignment of the element's contents with respect to the surrounding context. The possible values are `"left"`, `"right"`, `"center"`, and `"justify"`. + Is a `DOMString` reflecting the `height` HTML attribute, containing the displayed height of the resource. **/ var height : String; /** - Is a `DOMString` reflecting the `height` HTML attribute, containing the displayed height of the resource. + Is a `DOMString` representing an enumerated property indicating alignment of the element's contents with respect to the surrounding context. The possible values are `"left"`, `"right"`, `"center"`, and `"justify"`. **/ var align : String; diff --git a/std/js/html/CSSCharsetRule.hx b/std/js/html/EndingTypes.hx similarity index 84% rename from std/js/html/CSSCharsetRule.hx rename to std/js/html/EndingTypes.hx index b8066e42..ea6f6f13 100644 --- a/std/js/html/CSSCharsetRule.hx +++ b/std/js/html/EndingTypes.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,13 +20,11 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from cssrule.webidl. Do not edit! +// This file is generated from mozilla\Blob.webidl. Do not edit! package js.html; -@:native("CSSCharsetRule") -extern class CSSCharsetRule extends CSSRule -{ - var encoding : String; - +enum abstract EndingTypes(String) { + var TRANSPARENT = "transparent"; + var NATIVE = "native"; } \ No newline at end of file diff --git a/std/js/html/ErrorCallback.hx b/std/js/html/ErrorCallback.hx new file mode 100644 index 00000000..ca229f8c --- /dev/null +++ b/std/js/html/ErrorCallback.hx @@ -0,0 +1,29 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FileSystem.webidl. Do not edit! + +package js.html; + +typedef ErrorCallback = { + function handleEvent( err : DOMException ) : Void; +} \ No newline at end of file diff --git a/std/js/html/ErrorEvent.hx b/std/js/html/ErrorEvent.hx index 1221553b..193aa6a3 100644 --- a/std/js/html/ErrorEvent.hx +++ b/std/js/html/ErrorEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("ErrorEvent") -extern class ErrorEvent extends Event -{ +extern class ErrorEvent extends Event { /** Is a `DOMString` containing a human-readable error message describing the problem. diff --git a/std/js/html/ErrorEventInit.hx b/std/js/html/ErrorEventInit.hx index 7c371192..adc9889a 100644 --- a/std/js/html/ErrorEventInit.hx +++ b/std/js/html/ErrorEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,12 +24,10 @@ package js.html; -typedef ErrorEventInit = -{ - > EventInit, - @:optional var colno : Int; - @:optional var error : Dynamic; - @:optional var filename : String; - @:optional var lineno : Int; - @:optional var message : String; +typedef ErrorEventInit = EventInit & { + var ?colno : Int; + var ?error : Dynamic; + var ?filename : String; + var ?lineno : Int; + var ?message : String; } \ No newline at end of file diff --git a/std/js/html/Event.hx b/std/js/html/Event.hx index 6c29755d..4a3a9ecd 100644 --- a/std/js/html/Event.hx +++ b/std/js/html/Event.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,15 +25,14 @@ package js.html; /** - The `Event` interface represents any event which takes place in the DOM; some are user-generated (such as mouse or keyboard events), while others are generated by APIs (such as events that indicate an animation has finished running, a video has been paused, and so forth). There are many types of event, some of which use are other interfaces based on the main `Event` interface. `Event` itself contains the properties and methods which are common to all events. + The `Event` interface represents any event which takes place in the DOM; some are user-generated (such as mouse or keyboard events), while others are generated by APIs (such as events that indicate an animation has finished running, a video has been paused, and so forth). There are many types of events, some of which use other interfaces based on the main `Event` interface. `Event` itself contains the properties and methods which are common to all events. Documentation [Event](https://developer.mozilla.org/en-US/docs/Web/API/Event) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Event$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("Event") -extern class Event -{ +extern class Event { static inline var NONE : Int = 0; static inline var CAPTURING_PHASE : Int = 1; static inline var AT_TARGET : Int = 2; @@ -55,7 +54,7 @@ extern class Event var target(default,null) : EventTarget; /** - A reference to the currently registered target for the event. This is the object to which the event is currently slated to be sent to; it's possible this has been changed along the way through retargeting. + A reference to the currently registered target for the event. This is the object to which the event is currently slated to be sent; it's possible this has been changed along the way through retargeting. **/ var currentTarget(default,null) : EventTarget; @@ -74,21 +73,36 @@ extern class Event **/ var cancelable(default,null) : Bool; + /** + A historical property introduced by Internet Explorer and eventually adopted into the DOM specification in order to ensure existing sites continue to work. Ideally, you should try to use `Event.preventDefault()` and `Event.defaultPrevented` instead, but you can use `returnValue` if you choose to do so. + **/ + var returnValue : Bool; + /** Indicates whether or not `event.preventDefault()` has been called on the event. **/ var defaultPrevented(default,null) : Bool; /** - Indicates whether or not the event was initiated by the browser (after a user click for instance) or by a script (using an event creation method, like event.initEvent) + A Boolean value indicating whether or not the event can bubble across the boundary between the shadow DOM and the regular DOM. + **/ + var composed(default,null) : Bool; + + /** + Indicates whether or not the event was initiated by the browser (after a user click for instance) or by a script (using an event creation method, like event.initEvent). **/ var isTrusted(default,null) : Bool; /** - The time at which the event was created, in milliseconds. By specification, this value is time since epoch, but in reality browsers' definitions vary; in addition, work is underway to change this to be a `DOMHighResTimeStamp` instead. + The time at which the event was created (in milliseconds). By specification, this value is time since epoch, but in reality browsers' definitions vary; in addition, work is underway to change this to be a `DOMHighResTimeStamp` instead. **/ var timeStamp(default,null) : Float; + /** + A historical alias to `Event.stopPropagation()`. Setting its value to `true` before returning from an event handler prevents propagation of the event. + **/ + var cancelBubble : Bool; + /** The original target of the event, before any retargetings (Mozilla-specific). **/ @@ -102,6 +116,11 @@ extern class Event /** @throws DOMError */ function new( type : String, ?eventInitDict : EventInit ) : Void; + /** + Returns the event’s path (objects on which listeners will be invoked). This does not include nodes in shadow trees if the shadow root was created with its `ShadowRoot.mode` closed. + **/ + function composedPath() : Array; + /** Stops the propagation of events further along in the DOM. **/ @@ -120,10 +139,5 @@ extern class Event /** Initializes the value of an Event created. If the event has already being dispatched, this method does nothing. **/ - function initEvent( type : String, bubbles : Bool, cancelable : Bool ) : Void; - - /** - Non-standard. Returns the value of `Event.defaultPrevented`. Use `Event.defaultPrevented` instead. - **/ - function getPreventDefault() : Bool; + function initEvent( type : String, bubbles : Bool = false, cancelable : Bool = false ) : Void; } \ No newline at end of file diff --git a/std/js/html/EventInit.hx b/std/js/html/EventInit.hx index 48d93255..0b8d1f28 100644 --- a/std/js/html/EventInit.hx +++ b/std/js/html/EventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,8 @@ package js.html; -typedef EventInit = -{ - @:optional var bubbles : Bool; - @:optional var cancelable : Bool; +typedef EventInit = { + var ?bubbles : Bool; + var ?cancelable : Bool; + var ?composed : Bool; } \ No newline at end of file diff --git a/std/js/html/EventListener.hx b/std/js/html/EventListener.hx index 09ff04ac..c8e2e85b 100644 --- a/std/js/html/EventListener.hx +++ b/std/js/html/EventListener.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,19 +20,21 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from events.webidl. Do not edit! +// This file is generated from mozilla\EventListener.webidl. Do not edit! package js.html; /** - This method is called whenever an event occurs of the type for which the `EventListener` interface was registered. + The `EventListener` interface represents an object that can handle an event dispatched by an `EventTarget` object. Documentation [EventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventListener) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/EventListener$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ -@:native("EventListener") -extern class EventListener -{ +typedef EventListener = { + + /** + A function that is called whenever an event of the specified type occurs. + **/ function handleEvent( event : Event ) : Void; } \ No newline at end of file diff --git a/std/js/html/EventListenerOptions.hx b/std/js/html/EventListenerOptions.hx new file mode 100644 index 00000000..6cedd9db --- /dev/null +++ b/std/js/html/EventListenerOptions.hx @@ -0,0 +1,29 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\EventTarget.webidl. Do not edit! + +package js.html; + +typedef EventListenerOptions = { + var ?capture : Bool; +} \ No newline at end of file diff --git a/std/js/html/EventModifierInit.hx b/std/js/html/EventModifierInit.hx index 8f83f274..8cef40a2 100644 --- a/std/js/html/EventModifierInit.hx +++ b/std/js/html/EventModifierInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,20 +24,18 @@ package js.html; -typedef EventModifierInit = -{ - > UIEventInit, - @:optional var altKey : Bool; - @:optional var ctrlKey : Bool; - @:optional var metaKey : Bool; - @:optional var modifierAltGraph : Bool; - @:optional var modifierCapsLock : Bool; - @:optional var modifierFn : Bool; - @:optional var modifierFnLock : Bool; - @:optional var modifierNumLock : Bool; - @:optional var modifierOS : Bool; - @:optional var modifierScrollLock : Bool; - @:optional var modifierSymbol : Bool; - @:optional var modifierSymbolLock : Bool; - @:optional var shiftKey : Bool; +typedef EventModifierInit = UIEventInit & { + var ?altKey : Bool; + var ?ctrlKey : Bool; + var ?metaKey : Bool; + var ?modifierAltGraph : Bool; + var ?modifierCapsLock : Bool; + var ?modifierFn : Bool; + var ?modifierFnLock : Bool; + var ?modifierNumLock : Bool; + var ?modifierOS : Bool; + var ?modifierScrollLock : Bool; + var ?modifierSymbol : Bool; + var ?modifierSymbolLock : Bool; + var ?shiftKey : Bool; } \ No newline at end of file diff --git a/std/js/html/EventSource.hx b/std/js/html/EventSource.hx index a56297b4..d688283e 100644 --- a/std/js/html/EventSource.hx +++ b/std/js/html/EventSource.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,15 +25,14 @@ package js.html; /** - The `EventSource` interface is used to receive server-sent events. It connects to a server over HTTP and receives events in `text/event-stream` format without closing the connection. + The `EventSource` interface is web content's interface to server-sent events. An `EventSource` instance opens a persistent connection to an HTTP server, which sends events in `text/event-stream` format. Documentation [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/EventSource$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("EventSource") -extern class EventSource extends EventTarget -{ +extern class EventSource extends EventTarget { static inline var CONNECTING : Int = 0; static inline var OPEN : Int = 1; static inline var CLOSED : Int = 2; @@ -43,25 +42,29 @@ extern class EventSource extends EventTarget A `DOMString` representing the URL of the source. **/ var url(default,null) : String; + + /** + A `Boolean` indicating whether the `EventSource` object was instantiated with cross-origin (CORS) credentials set (`true`), or not (`false`, the default). + **/ var withCredentials(default,null) : Bool; /** - An `unsigned short` representing the state of the connection. Possible values are `CONNECTING` (`0`), `OPEN` (`1`), or `CLOSED` (`2`). + A number representing the state of the connection. Possible values are `CONNECTING` (`0`), `OPEN` (`1`), or `CLOSED` (`2`). **/ var readyState(default,null) : Int; /** - Is an `EventHandler` being called when an `open` event is received, that is when the connection was just opened. + Is an `EventHandler` called when an `open` event is received, that is when the connection was just opened. **/ var onopen : haxe.Constraints.Function; /** - Is an `EventHandler` being called when a `message` event is received, that is when a message is coming from the source. + Is an `EventHandler` called when a `message` event is received, that is when a message is coming from the source. **/ var onmessage : haxe.Constraints.Function; /** - Is an `EventHandler` being called when an error occurs and the `error` event is dispatched on this object. + Is an `EventHandler` called when an error occurs and the `error` event is dispatched on an `EventSource` object. **/ var onerror : haxe.Constraints.Function; diff --git a/std/js/html/EventSourceInit.hx b/std/js/html/EventSourceInit.hx index f3fd6bc3..10137100 100644 --- a/std/js/html/EventSourceInit.hx +++ b/std/js/html/EventSourceInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,7 +24,6 @@ package js.html; -typedef EventSourceInit = -{ - @:optional var withCredentials : Bool; +typedef EventSourceInit = { + var ?withCredentials : Bool; } \ No newline at end of file diff --git a/std/js/html/EventTarget.hx b/std/js/html/EventTarget.hx index f2e6d949..8e70448f 100644 --- a/std/js/html/EventTarget.hx +++ b/std/js/html/EventTarget.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,26 +32,27 @@ package js.html; @see **/ @:native("EventTarget") -extern class EventTarget -{ +extern class EventTarget { /** @throws DOMError */ - @:overload( function( type : String, listener : EventListener, ?capture : Bool = false, ?wantsUntrusted : Bool ) : Void {} ) + function new() : Void; /** Register an event handler of a specific event type on the `EventTarget`. + @throws DOMError **/ - function addEventListener( type : String, listener : haxe.Constraints.Function, ?capture : Bool = false ) : Void; - /** @throws DOMError */ - @:overload( function( type : String, listener : EventListener, ?capture : Bool = false ) : Void {} ) + @:overload( function( type : String, listener : EventListener, ?options : haxe.extern.EitherType, ?wantsUntrusted : Bool ) : Void {} ) + function addEventListener( type: String, listener: haxe.Constraints.Function, ?options : haxe.extern.EitherType, ?wantsUntrusted : Bool ) : Void; /** Removes an event listener from the `EventTarget`. + @throws DOMError **/ - function removeEventListener( type : String, listener : haxe.Constraints.Function, ?capture : Bool = false ) : Void; - /** @throws DOMError */ + @:overload( function( type : String, listener : EventListener, ?options : haxe.extern.EitherType) : Void {} ) + function removeEventListener( type : String, listener : haxe.Constraints.Function, ?options : haxe.extern.EitherType ) : Void; /** Dispatch an event to this `EventTarget`. + @throws DOMError **/ function dispatchEvent( event : Event ) : Bool; } \ No newline at end of file diff --git a/std/js/html/Exception.hx b/std/js/html/Exception.hx index aeeb4545..8462ae0f 100644 --- a/std/js/html/Exception.hx +++ b/std/js/html/Exception.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,16 +24,14 @@ package js.html; -@:native("Exception") -extern class Exception -{ +typedef Exception = { + var name(default,null) : String; var message(default,null) : String; var result(default,null) : Int; - var name(default,null) : String; var filename(default,null) : String; var lineNumber(default,null) : Int; var columnNumber(default,null) : Int; - var data(default,null) : Dynamic/*MISSING nsISupports*/; + var data(default,null) : Dynamic; var stack(default,null) : String; } \ No newline at end of file diff --git a/std/js/html/ExtendableEvent.hx b/std/js/html/ExtendableEvent.hx index a99f2cc2..903e0eaa 100644 --- a/std/js/html/ExtendableEvent.hx +++ b/std/js/html/ExtendableEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,6 +24,8 @@ package js.html; +import js.lib.Promise; + /** The `ExtendableEvent` interface extends the lifetime of the `install` and `activate` events dispatched on the global scope as part of the service worker lifecycle. This ensures that any functional events (like `FetchEvent`) are not dispatched until it upgrades database schemas and deletes the outdated cache entries. @@ -32,8 +34,7 @@ package js.html; @see **/ @:native("ExtendableEvent") -extern class ExtendableEvent extends Event -{ +extern class ExtendableEvent extends Event { /** @throws DOMError */ function new( type : String, ?eventInitDict : ExtendableEventInit ) : Void; /** @throws DOMError */ diff --git a/std/js/html/ExtendableEventInit.hx b/std/js/html/ExtendableEventInit.hx index 826fda5b..825c6ee2 100644 --- a/std/js/html/ExtendableEventInit.hx +++ b/std/js/html/ExtendableEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,7 +24,5 @@ package js.html; -typedef ExtendableEventInit = -{ - > EventInit, +typedef ExtendableEventInit = EventInit & { } \ No newline at end of file diff --git a/std/js/html/ExtendableMessageEvent.hx b/std/js/html/ExtendableMessageEvent.hx index a269066a..59b1d07d 100644 --- a/std/js/html/ExtendableMessageEvent.hx +++ b/std/js/html/ExtendableMessageEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("ExtendableMessageEvent") -extern class ExtendableMessageEvent extends ExtendableEvent -{ +extern class ExtendableMessageEvent extends ExtendableEvent { /** Returns the event's data. It can be any data type. @@ -58,7 +57,7 @@ extern class ExtendableMessageEvent extends ExtendableEvent /** Returns the array containing the `MessagePort` objects representing the ports of the associated message channel. **/ - var ports(default,null) : MessagePortList; + var ports(default,null) : Array; /** @throws DOMError */ function new( type : String, ?eventInitDict : ExtendableMessageEventInit ) : Void; diff --git a/std/js/html/ExtendableMessageEventInit.hx b/std/js/html/ExtendableMessageEventInit.hx index 9bf184e0..30954125 100644 --- a/std/js/html/ExtendableMessageEventInit.hx +++ b/std/js/html/ExtendableMessageEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,12 +24,10 @@ package js.html; -typedef ExtendableMessageEventInit = -{ - > ExtendableEventInit, - @:optional var data : Dynamic; - @:optional var lastEventId : String; - @:optional var origin : String; - @:optional var ports : Array; - @:optional var source : haxe.extern.EitherType>; +typedef ExtendableMessageEventInit = ExtendableEventInit & { + var ?data : Dynamic; + var ?lastEventId : String; + var ?origin : String; + var ?ports : Array; + var ?source : haxe.extern.EitherType>; } \ No newline at end of file diff --git a/std/js/html/External.hx b/std/js/html/External.hx index b5f8f207..85470c24 100644 --- a/std/js/html/External.hx +++ b/std/js/html/External.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,10 +24,7 @@ package js.html; -@:native("External") -extern class External -{ +typedef External = { function AddSearchProvider( aDescriptionURL : String ) : Void; function IsSearchProviderInstalled( aSearchURL : String ) : Int; - function addSearchEngine( engineURL : String, iconURL : String, suggestedTitle : String, suggestedCategory : String ) : Void; } \ No newline at end of file diff --git a/std/js/html/FetchEvent.hx b/std/js/html/FetchEvent.hx index 6682fc09..7abb7db9 100644 --- a/std/js/html/FetchEvent.hx +++ b/std/js/html/FetchEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,38 +24,35 @@ package js.html; +import js.lib.Promise; + /** - The parameter passed into the `ServiceWorkerGlobalScope.onfetch` handler, `FetchEvent` represents a fetch action that is dispatched on the `ServiceWorkerGlobalScope` of a `ServiceWorker`. It contains information about the request and resulting response, and provides the `FetchEvent.respondWith()` method, which allows us to provide an arbitrary response back to the controlled page. + This is the event type for `fetch` events dispatched on the service worker global scope. It contains information about the fetch, including the request and how the receiver will treat the response. It provides the `event.respondWith()` method, which allows us to provide a response to this fetch. Documentation [FetchEvent](https://developer.mozilla.org/en-US/docs/Web/API/FetchEvent) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/FetchEvent$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("FetchEvent") -extern class FetchEvent extends ExtendableEvent -{ - +extern class FetchEvent extends ExtendableEvent { + /** - Returns the `Request` that triggered the event handler. + The `Request` the browser intends to make. **/ var request(default,null) : Request; - + /** - Returns the id of the client that the current service worker is controlling. + The `Client.id` of the same-origin `Client` that initiated the fetch. **/ var clientId(default,null) : String; - - /** - Returns a `Boolean` that is `true` if the event was dispatched with the user's intention for the page to reload, and `false` otherwise. Typically, pressing the refresh button in a browser is a reload, while clicking a link and pressing the back button is not. - **/ var isReload(default,null) : Bool; - + /** @throws DOMError */ function new( type : String, eventInitDict : FetchEventInit ) : Void; - /** @throws DOMError */ - + /** - Resolves by returning a `Response` or a network error  to Fetch`. + Prevent the browser's default fetch handling, and provide (a promise for) a response yourself. + @throws DOMError **/ function respondWith( r : Promise ) : Void; } \ No newline at end of file diff --git a/std/js/html/FetchEventInit.hx b/std/js/html/FetchEventInit.hx index 9592ae47..1bf3aac2 100644 --- a/std/js/html/FetchEventInit.hx +++ b/std/js/html/FetchEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,10 +24,8 @@ package js.html; -typedef FetchEventInit = -{ - > EventInit, - @:optional var clientId : String; - @:optional var isReload : Bool; +typedef FetchEventInit = EventInit & { + var ?clientId : String; + var ?isReload : Bool; var request : Request; } \ No newline at end of file diff --git a/std/js/html/LifecycleCallbacks.hx b/std/js/html/FetchObserver.hx similarity index 74% rename from std/js/html/LifecycleCallbacks.hx rename to std/js/html/FetchObserver.hx index cc0d09a9..e3379442 100644 --- a/std/js/html/LifecycleCallbacks.hx +++ b/std/js/html/FetchObserver.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,14 +20,15 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from mozilla\WebComponents.webidl. Do not edit! +// This file is generated from mozilla\FetchObserver.webidl. Do not edit! package js.html; -typedef LifecycleCallbacks = -{ - @:optional var attachedCallback : Void -> Void; - @:optional var attributeChangedCallback : String -> String -> String -> Void; - @:optional var createdCallback : Void -> Void; - @:optional var detachedCallback : Void -> Void; +@:native("FetchObserver") +extern class FetchObserver extends EventTarget { + var state(default,null) : FetchState; + var onstatechange : haxe.Constraints.Function; + var onrequestprogress : haxe.Constraints.Function; + var onresponseprogress : haxe.Constraints.Function; + } \ No newline at end of file diff --git a/std/js/html/FetchState.hx b/std/js/html/FetchState.hx new file mode 100644 index 00000000..a8ae5c38 --- /dev/null +++ b/std/js/html/FetchState.hx @@ -0,0 +1,33 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FetchObserver.webidl. Do not edit! + +package js.html; + +enum abstract FetchState(String) { + var REQUESTING = "requesting"; + var RESPONDING = "responding"; + var ABORTED = "aborted"; + var ERRORED = "errored"; + var COMPLETE = "complete"; +} \ No newline at end of file diff --git a/std/js/html/FieldSetElement.hx b/std/js/html/FieldSetElement.hx index c5251b81..75a2d703 100644 --- a/std/js/html/FieldSetElement.hx +++ b/std/js/html/FieldSetElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,17 +32,59 @@ package js.html; @see **/ @:native("HTMLFieldSetElement") -extern class FieldSetElement extends Element -{ +extern class FieldSetElement extends Element { + + /** + A `Boolean` reflecting the `disabled` HTML attribute, indicating whether the user can interact with the control. + **/ var disabled : Bool; + + /** + An `HTMLFormControlsCollection` or `HTMLCollection` referencing the containing form element, if this element is in a form. + + If the field set is not a descendant of a form element, then the attribute can be the ID of any form element in the same document it is related to, or the `null` value if none matches. + **/ var form(default,null) : FormElement; + + /** + A `DOMString` reflecting the `name` HTML attribute, containing the name of the field set, used for submitting the form. + **/ var name : String; + + /** + The `DOMString` `"fieldset"`. + **/ var type(default,null) : String; + + /** + The elements belonging to this field set. The type of this property depends on the version of the spec that is implemented by the browser. + **/ var elements(default,null) : HTMLCollection; + + /** + A `Boolean` `false`, because `fieldset` objects are never candidates for constraint validation. + **/ var willValidate(default,null) : Bool; + + /** + A `ValidityState` representing the validity states that this element is in. + **/ var validity(default,null) : ValidityState; + + /** + A `DOMString` representing a localized message that describes the validation constraints that the element does not satisfy (if any). This is the empty string if the element is not a candidate for constraint validation (`willValidate` is `false`), or it satisfies its constraints. + **/ var validationMessage(default,null) : String; + + /** + Always returns `true` because `fieldset` objects are never candidates for constraint validation. + **/ function checkValidity() : Bool; + function reportValidity() : Bool; + + /** + Sets a custom validity message for the field set. If this message is not the empty string, then the field set is suffering from a custom validity error, and does not validate. + **/ function setCustomValidity( error : String ) : Void; } \ No newline at end of file diff --git a/std/js/html/File.hx b/std/js/html/File.hx index 7e7b2c7c..addade81 100644 --- a/std/js/html/File.hx +++ b/std/js/html/File.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("File") -extern class File extends Blob -{ +extern class File extends Blob { /** Returns the name of the file referenced by the `File` object. @@ -45,14 +44,6 @@ extern class File extends Blob **/ var lastModified(default,null) : Int; - /** - Returns the last modified `Date` of the file referenced by the `File` object. - **/ - var lastModifiedDate(default,null) : Date; - /** @throws DOMError */ - @:overload( function( fileBits : Array>>>, fileName : String, ?options : FilePropertyBag ) : Void {} ) - @:overload( function( fileBits : Blob, ?options : ChromeFilePropertyBag ) : Void {} ) - @:overload( function( fileBits : Dynamic/*MISSING nsIFile*/, ?options : ChromeFilePropertyBag ) : Void {} ) - function new( fileBits : String, ?options : ChromeFilePropertyBag ) : Void; + function new( fileBits : Array,haxe.extern.EitherType>>, fileName : String, ?options : FilePropertyBag ) : Void; } \ No newline at end of file diff --git a/std/js/html/DOMTransactionEventInit.hx b/std/js/html/FileCallback.hx similarity index 85% rename from std/js/html/DOMTransactionEventInit.hx rename to std/js/html/FileCallback.hx index fa6c9f4f..85e46311 100644 --- a/std/js/html/DOMTransactionEventInit.hx +++ b/std/js/html/FileCallback.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,12 +20,10 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from mozilla\DOMTransactionEvent.webidl. Do not edit! +// This file is generated from mozilla\FileSystemFileEntry.webidl. Do not edit! package js.html; -typedef DOMTransactionEventInit = -{ - > EventInit, - @:optional var transactions : Dynamic; +typedef FileCallback = { + function handleEvent( file : File ) : Void; } \ No newline at end of file diff --git a/std/js/html/FileList.hx b/std/js/html/FileList.hx index 558bafbe..f30481e7 100644 --- a/std/js/html/FileList.hx +++ b/std/js/html/FileList.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("FileList") -extern class FileList implements ArrayAccess -{ +extern class FileList implements ArrayAccess { var length(default,null) : Int; function item( index : Int ) : File; diff --git a/std/js/html/FileMode.hx b/std/js/html/FileMode.hx index 9452e350..61dee013 100644 --- a/std/js/html/FileMode.hx +++ b/std/js/html/FileMode.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -@:enum abstract FileMode(String) -{ +enum abstract FileMode(String) { var READONLY = "readonly"; var READWRITE = "readwrite"; } \ No newline at end of file diff --git a/std/js/html/FilePropertyBag.hx b/std/js/html/FilePropertyBag.hx index 6a1af2ad..a3994d96 100644 --- a/std/js/html/FilePropertyBag.hx +++ b/std/js/html/FilePropertyBag.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -typedef FilePropertyBag = -{ - @:optional var lastModified : Int; - @:optional var type : String; +typedef FilePropertyBag = { + var ?lastModified : Int; + var ?type : String; } \ No newline at end of file diff --git a/std/js/html/FileReader.hx b/std/js/html/FileReader.hx index c9002b78..261c3de7 100644 --- a/std/js/html/FileReader.hx +++ b/std/js/html/FileReader.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("FileReader") -extern class FileReader extends EventTarget -{ +extern class FileReader extends EventTarget { static inline var EMPTY : Int = 0; static inline var LOADING : Int = 1; static inline var DONE : Int = 2; @@ -70,9 +69,9 @@ extern class FileReader extends EventTarget var result(default,null) : Dynamic; /** - A `DOMError` representing the error that occurred while reading the file. + A `DOMException` representing the error that occurred while reading the file. **/ - var error(default,null) : DOMError; + var error(default,null) : DOMException; /** A handler for the `loadstart` event. This event is triggered each time the reading is starting. @@ -106,34 +105,33 @@ extern class FileReader extends EventTarget /** @throws DOMError */ function new() : Void; - /** @throws DOMError */ /** Starts reading the contents of the specified `Blob`, once finished, the `result` attribute contains an `ArrayBuffer` representing the file's data. + @throws DOMError **/ function readAsArrayBuffer( blob : Blob ) : Void; - /** @throws DOMError */ + + /** + Starts reading the contents of the specified `Blob`, once finished, the `result` attribute contains the raw binary data from the file as a string. + @throws DOMError + **/ + function readAsBinaryString( filedata : Blob ) : Void; /** Starts reading the contents of the specified `Blob`, once finished, the `result` attribute contains the contents of the file as a text string. + @throws DOMError **/ - function readAsText( blob : Blob, ?label : String = "" ) : Void; - /** @throws DOMError */ + function readAsText( blob : Blob, ?label : String ) : Void; /** Starts reading the contents of the specified `Blob`, once finished, the `result` attribute contains a `data:` URL representing the file's data. + @throws DOMError **/ function readAsDataURL( blob : Blob ) : Void; - /** @throws DOMError */ /** Aborts the read operation. Upon return, the `readyState` will be `DONE`. **/ function abort() : Void; - /** @throws DOMError */ - - /** - Starts reading the contents of the specified `Blob`, once finished, the `result` attribute contains the raw binary data from the file as a string. - **/ - function readAsBinaryString( filedata : Blob ) : Void; } \ No newline at end of file diff --git a/std/js/html/FileReaderSync.hx b/std/js/html/FileReaderSync.hx index 986dc542..a5c0f454 100644 --- a/std/js/html/FileReaderSync.hx +++ b/std/js/html/FileReaderSync.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,12 +32,11 @@ package js.html; @see **/ @:native("FileReaderSync") -extern class FileReaderSync -{ +extern class FileReaderSync { /** @throws DOMError */ function new() : Void; /** @throws DOMError */ - function readAsArrayBuffer( blob : Blob ) : ArrayBuffer; + function readAsArrayBuffer( blob : Blob ) : js.lib.ArrayBuffer; /** @throws DOMError */ function readAsBinaryString( blob : Blob ) : String; /** @throws DOMError */ diff --git a/std/js/html/FileSystem.hx b/std/js/html/FileSystem.hx new file mode 100644 index 00000000..c23ee3ff --- /dev/null +++ b/std/js/html/FileSystem.hx @@ -0,0 +1,47 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FileSystem.webidl. Do not edit! + +package js.html; + +/** + The File and Directory Entries API interface `FileSystem` is used to represent a file system. These objects can be obtained from the `filesystem` property on any file system entry. Some browsers offer additional APIs to create and manage file systems, such as Chrome's `requestFileSystem()` method. + + Documentation [FileSystem](https://developer.mozilla.org/en-US/docs/Web/API/FileSystem) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/FileSystem$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("FileSystem") +extern class FileSystem { + + /** + A `USVString` representing the file system's name. This name is unique among the entire list of exposed file systems. + **/ + var name(default,null) : String; + + /** + A `FileSystemDirectoryEntry` object which represents the file system's root directory. Through this object, you can gain access to all files and directories in the file system. + **/ + var root(default,null) : FileSystemDirectoryEntry; + +} \ No newline at end of file diff --git a/std/js/html/FileSystemDirectoryEntry.hx b/std/js/html/FileSystemDirectoryEntry.hx new file mode 100644 index 00000000..675448bf --- /dev/null +++ b/std/js/html/FileSystemDirectoryEntry.hx @@ -0,0 +1,43 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FileSystemDirectoryEntry.webidl. Do not edit! + +package js.html; + +/** + The `FileSystemDirectoryEntry` interface of the File and Directory Entries API represents a directory in a file system. It provides methods which make it possible to access and manipulate the files in a directory, as well as to access the entries within the directory. + + Documentation [FileSystemDirectoryEntry](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("FileSystemDirectoryEntry") +extern class FileSystemDirectoryEntry extends FileSystemEntry { + function createReader() : FileSystemDirectoryReader; + @:overload( function( ?path : String, ?options : FileSystemFlags, ?successCallback : haxe.Constraints.Function, ?errorCallback : haxe.Constraints.Function) : Void {} ) + @:overload( function( ?path : String, ?options : FileSystemFlags, ?successCallback : FileSystemEntryCallback, ?errorCallback : ErrorCallback) : Void {} ) + function getFile( ?path : String, ?options : FileSystemFlags, ?successCallback : FileSystemEntry -> Void, ?errorCallback : DOMException -> Void ) : Void; + @:overload( function( ?path : String, ?options : FileSystemFlags, ?successCallback : haxe.Constraints.Function, ?errorCallback : haxe.Constraints.Function) : Void {} ) + @:overload( function( ?path : String, ?options : FileSystemFlags, ?successCallback : FileSystemEntryCallback, ?errorCallback : ErrorCallback) : Void {} ) + function getDirectory( ?path : String, ?options : FileSystemFlags, ?successCallback : FileSystemEntry -> Void, ?errorCallback : DOMException -> Void ) : Void; +} \ No newline at end of file diff --git a/std/js/html/FileSystemDirectoryReader.hx b/std/js/html/FileSystemDirectoryReader.hx new file mode 100644 index 00000000..097468b7 --- /dev/null +++ b/std/js/html/FileSystemDirectoryReader.hx @@ -0,0 +1,40 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FileSystemDirectoryReader.webidl. Do not edit! + +package js.html; + +/** + The `FileSystemDirectoryReader` interface of the File and Directory Entries API lets you access the `FileEntry`-based objects (generally `FileSystemFileEntry` or `FileSystemDirectoryEntry`) representing each entry in a directory. + + Documentation [FileSystemDirectoryReader](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("FileSystemDirectoryReader") +extern class FileSystemDirectoryReader { + /** @throws DOMError */ + @:overload( function( successCallback : haxe.Constraints.Function, ?errorCallback : haxe.Constraints.Function) : Void {} ) + @:overload( function( successCallback : FileSystemEntriesCallback, ?errorCallback : ErrorCallback) : Void {} ) + function readEntries( successCallback : Array -> Void, ?errorCallback : DOMException -> Void ) : Void; +} \ No newline at end of file diff --git a/std/js/html/FileSystemEntriesCallback.hx b/std/js/html/FileSystemEntriesCallback.hx new file mode 100644 index 00000000..8ff8dd36 --- /dev/null +++ b/std/js/html/FileSystemEntriesCallback.hx @@ -0,0 +1,29 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FileSystemDirectoryReader.webidl. Do not edit! + +package js.html; + +typedef FileSystemEntriesCallback = { + function handleEvent( entries : Array ) : Void; +} \ No newline at end of file diff --git a/std/js/html/FileSystemEntry.hx b/std/js/html/FileSystemEntry.hx new file mode 100644 index 00000000..1dbfc34d --- /dev/null +++ b/std/js/html/FileSystemEntry.hx @@ -0,0 +1,65 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FileSystemEntry.webidl. Do not edit! + +package js.html; + +/** + The `FileSystemEntry` interface of the File and Directory Entries API represents a single in a file system. The entry can be a file or a directory (directories are represented by the `DirectoryEntry` interface). It includes methods for working with files—including copying, moving, removing, and reading files—as well as information about a file it points to—including the file name and its path from the root to the entry. + + Documentation [FileSystemEntry](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("FileSystemEntry") +extern class FileSystemEntry { + + /** + A Boolean which is `true` if the entry represents a file. If it's not a file, this value is `false`. + **/ + var isFile(default,null) : Bool; + + /** + A `Boolean` which is `true` if the entry represents a directory; otherwise, it's `false`. + **/ + var isDirectory(default,null) : Bool; + + /** + A `USVString` containing the name of the entry (the final part of the path, after the last "/" character). + **/ + var name(default,null) : String; + + /** + A `USVString` object which provides the full, absolute path from the file system's root to the entry; it can also be thought of as a path which is relative to the root directory, prepended with a "/" character. + **/ + var fullPath(default,null) : String; + + /** + A `FileSystem` object representing the file system in which the entry is located. + **/ + var filesystem(default,null) : FileSystem; + + @:overload( function( ?successCallback : haxe.Constraints.Function, ?errorCallback : haxe.Constraints.Function) : Void {} ) + @:overload( function( ?successCallback : FileSystemEntryCallback, ?errorCallback : ErrorCallback) : Void {} ) + function getParent( ?successCallback : FileSystemEntry -> Void, ?errorCallback : DOMException -> Void ) : Void; +} \ No newline at end of file diff --git a/std/js/html/FileSystemEntryCallback.hx b/std/js/html/FileSystemEntryCallback.hx new file mode 100644 index 00000000..ee0e4941 --- /dev/null +++ b/std/js/html/FileSystemEntryCallback.hx @@ -0,0 +1,29 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FileSystem.webidl. Do not edit! + +package js.html; + +typedef FileSystemEntryCallback = { + function handleEvent( entry : FileSystemEntry ) : Void; +} \ No newline at end of file diff --git a/std/js/html/FileSystemFileEntry.hx b/std/js/html/FileSystemFileEntry.hx new file mode 100644 index 00000000..8fb5e40b --- /dev/null +++ b/std/js/html/FileSystemFileEntry.hx @@ -0,0 +1,39 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FileSystemFileEntry.webidl. Do not edit! + +package js.html; + +/** + The `FileSystemFileEntry` interface of the File System API represents a file in a file system. It offers properties describing the file's attributes, as well as the `file()` method, which creates a `File` object that can be used to read the file. + + Documentation [FileSystemFileEntry](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("FileSystemFileEntry") +extern class FileSystemFileEntry extends FileSystemEntry { + @:overload( function( successCallback : haxe.Constraints.Function, ?errorCallback : haxe.Constraints.Function) : Void {} ) + @:overload( function( successCallback : FileCallback, ?errorCallback : ErrorCallback) : Void {} ) + function file( successCallback : File -> Void, ?errorCallback : DOMException -> Void ) : Void; +} \ No newline at end of file diff --git a/std/js/html/FileSystemFlags.hx b/std/js/html/FileSystemFlags.hx new file mode 100644 index 00000000..979d8247 --- /dev/null +++ b/std/js/html/FileSystemFlags.hx @@ -0,0 +1,45 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FileSystem.webidl. Do not edit! + +package js.html; + +/** + The `FileSystemFlags` dictionary defines a set of values which are used when specifying option flags when calling certain methods in the File and Directory Entries API. Methods which accept an options parameter of this type may specify zero or more of these flags as fields in an object, like this: + + Documentation [FileSystemFlags](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFlags) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFlags$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +typedef FileSystemFlags = { + + /** + If this property is `true`, and the requested file or directory doesn't exist, the user agent should create it. The default is `false`. The parent directory must already exist. + **/ + var ?create : Bool; + + /** + If `true`, and the `create` option is also `true`, the file must not exist prior to issuing the call. Instead, it must be possible for it to be created newly at call time. The default is `false`. + **/ + var ?exclusive : Bool; +} \ No newline at end of file diff --git a/std/js/html/FillMode.hx b/std/js/html/FillMode.hx index 19b8ba1c..57b14a92 100644 --- a/std/js/html/FillMode.hx +++ b/std/js/html/FillMode.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,12 +20,11 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from mozilla\AnimationEffectReadOnly.webidl. Do not edit! +// This file is generated from mozilla\AnimationEffect.webidl. Do not edit! package js.html; -@:enum abstract FillMode(String) -{ +enum abstract FillMode(String) { var NONE = "none"; var FORWARDS = "forwards"; var BACKWARDS = "backwards"; diff --git a/std/js/html/Float32Array.hx b/std/js/html/Float32Array.hx index 6f8336c0..3a9b21c5 100644 --- a/std/js/html/Float32Array.hx +++ b/std/js/html/Float32Array.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,26 +20,6 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from typedarray.webidl. Do not edit! - package js.html; -// Explicitly include the compatibility class -import js.html.compat.Float32Array; - -@:native("Float32Array") -extern class Float32Array extends ArrayBufferView implements ArrayAccess -{ - static inline var BYTES_PER_ELEMENT : Int = 4; - - var length(default,null) : Int; - - /** @throws DOMError */ - @:overload( function( length : Int ) : Void {} ) - @:overload( function( array : Float32Array ) : Void {} ) - @:overload( function( array : Array ) : Void {} ) - function new( buffer : ArrayBuffer, ?byteOffset : Int, ?length : Int ) : Void; - @:overload( function( array : Float32Array, ?offset : Int ) : Void {} ) - function set( array : Array, ?offset : Int ) : Void; - function subarray( start : Int, ?end : Int ) : Float32Array; -} \ No newline at end of file +@:deprecated typedef Float32Array = js.lib.Float32Array; diff --git a/std/js/html/Float64Array.hx b/std/js/html/Float64Array.hx index 0fa72c2f..e1249aa1 100644 --- a/std/js/html/Float64Array.hx +++ b/std/js/html/Float64Array.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,26 +20,6 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from typedarray.webidl. Do not edit! - package js.html; -// Explicitly include the compatibility class -import js.html.compat.Float64Array; - -@:native("Float64Array") -extern class Float64Array extends ArrayBufferView implements ArrayAccess -{ - static inline var BYTES_PER_ELEMENT : Int = 8; - - var length(default,null) : Int; - - /** @throws DOMError */ - @:overload( function( length : Int ) : Void {} ) - @:overload( function( array : Float64Array ) : Void {} ) - @:overload( function( array : Array ) : Void {} ) - function new( buffer : ArrayBuffer, ?byteOffset : Int, ?length : Int ) : Void; - @:overload( function( array : Float64Array, ?offset : Int ) : Void {} ) - function set( array : Array, ?offset : Int ) : Void; - function subarray( start : Int, ?end : Int ) : Float64Array; -} \ No newline at end of file +@:deprecated typedef Float64Array = js.lib.Float64Array; diff --git a/std/js/html/FocusEvent.hx b/std/js/html/FocusEvent.hx index 5193ceaf..33bf9357 100644 --- a/std/js/html/FocusEvent.hx +++ b/std/js/html/FocusEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("FocusEvent") -extern class FocusEvent extends UIEvent -{ +extern class FocusEvent extends UIEvent { /** Is an `EventTarget` representing a secondary target for this event. As in some cases (like when tabbing in or out a page), this property may be set to `null` for security reasons. diff --git a/std/js/html/FocusEventInit.hx b/std/js/html/FocusEventInit.hx index ae2dd7ad..3e6d60c0 100644 --- a/std/js/html/FocusEventInit.hx +++ b/std/js/html/FocusEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,6 @@ package js.html; -typedef FocusEventInit = -{ - > UIEventInit, - @:optional var relatedTarget : EventTarget; +typedef FocusEventInit = UIEventInit & { + var ?relatedTarget : EventTarget; } \ No newline at end of file diff --git a/std/js/html/FontElement.hx b/std/js/html/FontElement.hx index 1e669db0..15d7ffbf 100644 --- a/std/js/html/FontElement.hx +++ b/std/js/html/FontElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,11 +24,29 @@ package js.html; +/** + Implements the document object model (DOM) representation of the font element. The HTML Font Element `font` defines the font size, font face and color of text. + + Documentation [HTMLFontElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ @:native("HTMLFontElement") -extern class FontElement extends Element -{ +extern class FontElement extends Element { + + /** + Is a `DOMString` that reflects the `color` HTML attribute, containing either a named color or a color specified in the hexadecimal #RRGGBB format. + **/ var color : String; + + /** + Is a `DOMString` that reflects the `face` HTML attribute, containing a comma-separated list of one or more font names. + **/ var face : String; + + /** + Is a `DOMString` that reflects the `size` HTML attribute, containing either a font size number ranging from 1 to 7 or a relative size to the `size` attribute of the `basefont` element, for example -2 or +1. + **/ var size : String; } \ No newline at end of file diff --git a/std/js/html/FontFace.hx b/std/js/html/FontFace.hx index 953a5d70..7110e6a3 100644 --- a/std/js/html/FontFace.hx +++ b/std/js/html/FontFace.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,6 +24,8 @@ package js.html; +import js.lib.Promise; + /** The `FontFace` interface represents a single usable font face. It allows control of the source of the font face, being a URL to an external resource, or a buffer; it also allows control of when the font face is loaded and its current status. @@ -32,60 +34,61 @@ package js.html; @see **/ @:native("FontFace") -extern class FontFace -{ - +extern class FontFace { + /** - Is a `DOMString` that contains the family of the font. It is equivalent to the `@font-face/family` descriptor. + Is a `CSSOMString` that contains the family of the font. It is equivalent to the `@font-face/font-family` descriptor. **/ var family : String; - + /** - Is a `DOMString` that contains the style of the font. It is equivalent to the `@font-face/style` descriptor. + Is a `CSSOMString` that contains the style of the font. It is equivalent to the `@font-face/font-style` descriptor. **/ var style : String; - + /** - Is a `DOMString` that contains the weight of the font. It is equivalent to the `@font-face/weight` descriptor. + Is a `CSSOMString` that contains the weight of the font. It is equivalent to the `@font-face/font-weight` descriptor. **/ var weight : String; - + /** - Is a `DOMString` that contains how the font stretches. It is equivalent to the `@font-face/stretch` descriptor. + Is a `CSSOMString` that contains how the font stretches. It is equivalent to the `@font-face/font-stretch` descriptor. **/ var stretch : String; - + /** - Is a `DOMString` that contains the range of code encompassed the font. It is equivalent to the `@font-face/unicode-range` descriptor. + Is a `CSSOMString` that contains the range of code encompassed the font. It is equivalent to the `@font-face/unicode-range` descriptor. **/ var unicodeRange : String; - + /** - Is a `DOMString` that contains the variant of the font. It is equivalent to the `@font-face/range` descriptor. + Is a `CSSOMString` that contains the variant of the font. It is equivalent to the `@font-face/font-variant` descriptor. **/ var variant : String; - + /** - Is a `DOMString` that contains the features of the font. It is equivalent to the `@font-face/feature-settings` descriptor. + Is a `CSSOMString` that contains the features of the font. It is equivalent to the `@font-face/font-feature-settings`descriptor. **/ var featureSettings : String; - + /** Returns an enumerated value indicating the status of the font. It can be one of the following: `"unloaded"`, `"loading"`, `"loaded"`, or `"error"`. **/ var status(default,null) : FontFaceLoadStatus; - + /** Returns a `Promise` to a `FontFace` that fulfills when the font is completely loaded and rejects when an error happens. **/ var loaded(default,null) : Promise; - - /** @throws DOMError */ - function new( family : String, source : haxe.extern.EitherType>, ?descriptors : FontFaceDescriptors ) : Void; + /** @throws DOMError */ - + @:overload( function( family : String, source : js.lib.ArrayBuffer, ?descriptors : FontFaceDescriptors) : FontFace {} ) + @:overload( function( family : String, source : js.lib.ArrayBufferView, ?descriptors : FontFaceDescriptors) : FontFace {} ) + function new( family : String, source : String, ?descriptors : FontFaceDescriptors ) : Void; + /** Loads the font, returning a `Promise` to a `FontFace` that fulfills when the font is completely loaded and rejects when an error happens. + @throws DOMError **/ function load() : Promise; } \ No newline at end of file diff --git a/std/js/html/FontFaceDescriptors.hx b/std/js/html/FontFaceDescriptors.hx index 609299f2..d42f979d 100644 --- a/std/js/html/FontFaceDescriptors.hx +++ b/std/js/html/FontFaceDescriptors.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,13 +24,13 @@ package js.html; -typedef FontFaceDescriptors = -{ - @:optional var display : String; - @:optional var featureSettings : String; - @:optional var stretch : String; - @:optional var style : String; - @:optional var unicodeRange : String; - @:optional var variant : String; - @:optional var weight : String; +typedef FontFaceDescriptors = { + var ?display : String; + var ?featureSettings : String; + var ?stretch : String; + var ?style : String; + var ?unicodeRange : String; + var ?variant : String; + var ?variationSettings : String; + var ?weight : String; } \ No newline at end of file diff --git a/std/js/html/FontFaceLoadStatus.hx b/std/js/html/FontFaceLoadStatus.hx index 178e14e6..5fec36d2 100644 --- a/std/js/html/FontFaceLoadStatus.hx +++ b/std/js/html/FontFaceLoadStatus.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -@:enum abstract FontFaceLoadStatus(String) -{ +enum abstract FontFaceLoadStatus(String) { var UNLOADED = "unloaded"; var LOADING = "loading"; var LOADED = "loaded"; diff --git a/std/js/html/FontFaceSet.hx b/std/js/html/FontFaceSet.hx index 2f8bf669..85f5de51 100644 --- a/std/js/html/FontFaceSet.hx +++ b/std/js/html/FontFaceSet.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,50 +24,50 @@ package js.html; +import js.lib.Promise; + /** - The `FontFaceSet` interface of the CSS Font Loading API is an interface for loading font faces and checking their download statuses. + The `FontFaceSet` interface of the CSS Font Loading API manages the loading of font-faces and querying of their download status. Documentation [FontFaceSet](https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("FontFaceSet") -extern class FontFaceSet extends EventTarget -{ +extern class FontFaceSet extends EventTarget { var size(default,null) : Int; - + /** - An `EventListener` property called whenever an event of type `loading` is fired, indicating that a font face set has started to load. + An `EventListener` called whenever an event of type `loading` is fired, indicating a font-face set has started loading. **/ var onloading : haxe.Constraints.Function; - + /** - An `EventListener` property called whenever an event of type `loadingdone` is fired, indicating that a font face set has finished loading. + An `EventListener` called whenever an event of type `loadingdone` is fired, indicating that a font face set has finished loading. **/ var onloadingdone : haxe.Constraints.Function; - + /** - An `EventListener` property called whenever an event of type `loadingerror` is fired, indicating that an error occurred during the loading of a font face set. + An `EventListener` called whenever an event of type `loadingerror` is fired, indicating that an error occurred whilst loading a font-face set. **/ var onloadingerror : haxe.Constraints.Function; var ready(default,null) : Promise; - + /** - Indicates the font face's loading status. It will be one of `'loading'` or `'loaded'`. + Indicates the font-face's loading status. It will be one of `'loading'` or `'loaded'`. **/ var status(default,null) : FontFaceSetLoadStatus; - + /** @throws DOMError */ function add( font : FontFace ) : Void; function has( font : FontFace ) : Bool; - @:native("delete") - function delete_( font : FontFace ) : Bool; + function delete( font : FontFace ) : Bool; function clear() : Void; function entries() : FontFaceSetIterator; function values() : FontFaceSetIterator; /** @throws DOMError */ function forEach( cb : FontFace -> FontFace -> FontFaceSet -> Void, ?thisArg : Dynamic ) : Void; - function load( font : String, ?text : String = " " ) : Promise>; + function load( font : String, text : String = " " ) : Promise>; /** @throws DOMError */ - function check( font : String, ?text : String = " " ) : Bool; + function check( font : String, text : String = " " ) : Bool; } \ No newline at end of file diff --git a/std/js/html/FontFaceSetIterator.hx b/std/js/html/FontFaceSetIterator.hx index 2ecf87aa..972b78ff 100644 --- a/std/js/html/FontFaceSetIterator.hx +++ b/std/js/html/FontFaceSetIterator.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,9 +24,7 @@ package js.html; -@:native("FontFaceSetIterator") -extern class FontFaceSetIterator -{ +typedef FontFaceSetIterator = { /** @throws DOMError */ function next() : FontFaceSetIteratorResult; } \ No newline at end of file diff --git a/std/js/html/FontFaceSetIteratorResult.hx b/std/js/html/FontFaceSetIteratorResult.hx index 686f4613..219b0ff1 100644 --- a/std/js/html/FontFaceSetIteratorResult.hx +++ b/std/js/html/FontFaceSetIteratorResult.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -typedef FontFaceSetIteratorResult = -{ +typedef FontFaceSetIteratorResult = { var done : Bool; var value : Dynamic; } \ No newline at end of file diff --git a/std/js/html/FontFaceSetLoadEvent.hx b/std/js/html/FontFaceSetLoadEvent.hx new file mode 100644 index 00000000..c445f1c8 --- /dev/null +++ b/std/js/html/FontFaceSetLoadEvent.hx @@ -0,0 +1,44 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FontFaceSetLoadEvent.webidl. Do not edit! + +package js.html; + +/** + The `FontFaceSetLoadEvent` interface of the the Css Font Loading API is fired whenever a `FontFaceSet` loads. + + Documentation [FontFaceSetLoadEvent](https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSetLoadEvent) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSetLoadEvent$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + + @see +**/ +@:native("FontFaceSetLoadEvent") +extern class FontFaceSetLoadEvent extends Event { + + /** + Returns an array of `FontFace` instances each of which represents a single usable font. + **/ + var fontfaces(default,null) : Array; + + /** @throws DOMError */ + function new( type : String, ?eventInitDict : FontFaceSetLoadEventInit ) : Void; +} \ No newline at end of file diff --git a/std/js/html/FontFaceSetLoadEventInit.hx b/std/js/html/FontFaceSetLoadEventInit.hx new file mode 100644 index 00000000..5cfe37a2 --- /dev/null +++ b/std/js/html/FontFaceSetLoadEventInit.hx @@ -0,0 +1,29 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\FontFaceSetLoadEvent.webidl. Do not edit! + +package js.html; + +typedef FontFaceSetLoadEventInit = EventInit & { + var ?fontfaces : Array; +} \ No newline at end of file diff --git a/std/js/html/FontFaceSetLoadStatus.hx b/std/js/html/FontFaceSetLoadStatus.hx index c2fbc317..9180e1fd 100644 --- a/std/js/html/FontFaceSetLoadStatus.hx +++ b/std/js/html/FontFaceSetLoadStatus.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -@:enum abstract FontFaceSetLoadStatus(String) -{ +enum abstract FontFaceSetLoadStatus(String) { var LOADING = "loading"; var LOADED = "loaded"; } \ No newline at end of file diff --git a/std/js/html/FormData.hx b/std/js/html/FormData.hx index 80f6966a..0ac334cf 100644 --- a/std/js/html/FormData.hx +++ b/std/js/html/FormData.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,57 +32,59 @@ package js.html; @see **/ @:native("FormData") -extern class FormData -{ +extern class FormData { /** @throws DOMError */ function new( ?form : FormElement ) : Void; - /** @throws DOMError */ - @:overload( function( name : String, value : Blob, ?filename : String ) : Void {} ) /** Appends a new value onto an existing key inside a `FormData` object, or adds the key if it does not already exist. + @throws DOMError **/ + @:overload( function( name : String, value : Blob, ?filename : String ) : Void {} ) function append( name : String, value : String ) : Void; - @:native("delete") - function delete_( name : String ) : Void; + + /** + Deletes a key/value pair from a `FormData` object. + **/ + function delete( name : String ) : Void; /** Returns the first value associated with a given key from within a `FormData` object. **/ - function get( name : String ) : haxe.extern.EitherType; + function get( name : String ) : haxe.extern.EitherType>; /** Returns an array of all the values associated with a given key from within a `FormData`. **/ - function getAll( name : String ) : Array>; + function getAll( name : String ) : Array>>; /** Returns a boolean stating whether a `FormData` object contains a certain key/value pair. **/ function has( name : String ) : Bool; - /** @throws DOMError */ - @:overload( function( name : String, value : Blob, ?filename : String ) : Void {} ) /** Sets a new value for an existing key inside a `FormData `object, or adds the key/value if it does not already exist. + @throws DOMError **/ + @:overload( function( name : String, value : Blob, ?filename : String ) : Void {} ) function set( name : String, value : String ) : Void; - /** @throws DOMError */ /** Returns an `Iteration_protocols` allowing to go through all key/value pairs contained in this object. + @throws DOMError **/ function entries() : FormDataIterator; - /** @throws DOMError */ /** Returns an `Iteration_protocols` allowing to go through all keys of the key/value pairs contained in this object. + @throws DOMError **/ function keys() : FormDataIterator; - /** @throws DOMError */ /** Returns an `Iteration_protocols` allowing to go through all values of the key/value pairs contained in this object. + @throws DOMError **/ function values() : FormDataIterator; /** @throws DOMError */ diff --git a/std/js/html/FormDataIterator.hx b/std/js/html/FormDataIterator.hx index 2738acda..1af87400 100644 --- a/std/js/html/FormDataIterator.hx +++ b/std/js/html/FormDataIterator.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,9 +24,7 @@ package js.html; -@:native("FormDataIterator") -extern class FormDataIterator -{ +typedef FormDataIterator = { /** @throws DOMError */ function next() : Dynamic; } \ No newline at end of file diff --git a/std/js/html/FormElement.hx b/std/js/html/FormElement.hx index 062e78b2..bfc9d015 100644 --- a/std/js/html/FormElement.hx +++ b/std/js/html/FormElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,33 +25,89 @@ package js.html; /** - The `HTMLFormElement` interface provides methods to create and modify `form` elements. - document.forms - returns an array of HTMLFormElement objects referencing all forms on the page. - document.forms[index] - returns an HTMLFormElement object referencing the form at the specified index. - document.forms['id'] - returns an HTMLFormElement object referencing the form with the specified id. - document.forms['name'] - returns an HTMLFormElement object referencing the form with the specified name. + The `HTMLFormElement` interface represents a `form` element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements. Documentation [HTMLFormElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("HTMLFormElement") -extern class FormElement extends Element implements ArrayAccess -{ +extern class FormElement extends Element implements ArrayAccess { + + /** + A `DOMString` reflecting the value of the form's `accept-charset` HTML attribute, representing the character encoding that the server accepts. + **/ var acceptCharset : String; + + /** + A `DOMString` reflecting the value of the form's `action` HTML attribute, containing the URI of a program that processes the information submitted by the form. + **/ var action : String; + + /** + A `DOMString` reflecting the value of the form's `autocomplete` HTML attribute, indicating whether the controls in this form can have their values automatically populated by the browser. + **/ var autocomplete : String; + + /** + A `DOMString` reflecting the value of the form's `enctype` HTML attribute, indicating the type of content that is used to transmit the form to the server. Only specified values can be set. The two properties are synonyms. + **/ var enctype : String; + + /** + A `DOMString` reflecting the value of the form's `enctype` HTML attribute, indicating the type of content that is used to transmit the form to the server. Only specified values can be set. The two properties are synonyms. + **/ var encoding : String; + + /** + A `DOMString` reflecting the value of the form's `method` HTML attribute, indicating the HTTP method used to submit the form. Only specified values can be set. + **/ var method : String; + + /** + A `DOMString` reflecting the value of the form's `name` HTML attribute, containing the name of the form. + **/ var name : String; + + /** + A `Boolean` reflecting the value of the form's  `novalidate` HTML attribute, indicating whether the form should not be validated. + **/ var noValidate : Bool; + + /** + A `DOMString` reflecting the value of the form's `target` HTML attribute, indicating where to display the results received from submitting the form. + **/ var target : String; + + /** + A `HTMLFormControlsCollection` holding all form controls belonging to this form element. + **/ var elements(default,null) : HTMLCollection; + + /** + A `long` reflecting  the number of controls in the form. + **/ var length(default,null) : Int; - /** @throws DOMError */ + + /** + Submits the form to the server. + @throws DOMError + **/ function submit() : Void; + + /** + Resets the form to its initial state. + **/ function reset() : Void; + + /** + Returns `true` if the element's child controls are subject to constraint validation and satisfy those contraints; returns `false` if some controls do not satisfy their constraints. Fires an event named `invalid` at any control that does not satisfy its constraints; such controls are considered invalid if the event is not canceled. It is up to the programmer to decide how to respond to `false`. + **/ function checkValidity() : Bool; + + /** + Returns `true` if the element's child controls satisfy their validation constraints. When `false` is returned, cancelable `invalid` events are fired for each invalid child and validation problems are reported to the user. + **/ + function reportValidity() : Bool; } \ No newline at end of file diff --git a/std/js/html/FrameElement.hx b/std/js/html/FrameElement.hx index 204f617c..f4844c9e 100644 --- a/std/js/html/FrameElement.hx +++ b/std/js/html/FrameElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,8 +25,7 @@ package js.html; @:native("HTMLFrameElement") -extern class FrameElement extends Element -{ +extern class FrameElement extends Element { var name : String; var scrolling : String; var src : String; diff --git a/std/js/html/FrameSetElement.hx b/std/js/html/FrameSetElement.hx index 7ddbb9a7..b9732572 100644 --- a/std/js/html/FrameSetElement.hx +++ b/std/js/html/FrameSetElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,24 +32,24 @@ package js.html; @see **/ @:native("HTMLFrameSetElement") -extern class FrameSetElement extends Element -{ +extern class FrameSetElement extends Element { /** - Is a `DOMString` that represents the foreground color of text. + Is a `DOMString` structured as a comma-seperated list specifing the width of each column inside a frameset. **/ var cols : String; /** - Is a `DOMString` that represents the color of visited links. + Is a `DOMString` structured as a comma-seperated list specifing the height of each column inside a frameset. **/ var rows : String; var onafterprint : haxe.Constraints.Function; var onbeforeprint : haxe.Constraints.Function; - var onbeforeunload : Event -> String; + var onbeforeunload : Event -> Null; var onhashchange : haxe.Constraints.Function; var onlanguagechange : haxe.Constraints.Function; var onmessage : haxe.Constraints.Function; + var onmessageerror : haxe.Constraints.Function; var onoffline : haxe.Constraints.Function; var ononline : haxe.Constraints.Function; var onpagehide : haxe.Constraints.Function; diff --git a/std/js/html/FrameType.hx b/std/js/html/FrameType.hx index e196fccb..9d186008 100644 --- a/std/js/html/FrameType.hx +++ b/std/js/html/FrameType.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -@:enum abstract FrameType(String) -{ +enum abstract FrameType(String) { var AUXILIARY = "auxiliary"; var TOP_LEVEL = "top-level"; var NESTED = "nested"; diff --git a/std/js/html/Gamepad.hx b/std/js/html/Gamepad.hx index 0036ee3b..47b9cba5 100644 --- a/std/js/html/Gamepad.hx +++ b/std/js/html/Gamepad.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("Gamepad") -extern class Gamepad -{ +extern class Gamepad { /** A `DOMString` containing identifying information about the controller. @@ -66,7 +65,7 @@ extern class Gamepad var axes(default,null) : Array; /** - A `DOMHighResTimeStamp` representing the last time the data for this gamepad was updated. Note that this property is not currently supported anywhere. + A `DOMHighResTimeStamp` representing the last time the data for this gamepad was updated. **/ var timestamp(default,null) : Float; diff --git a/std/js/html/GamepadButton.hx b/std/js/html/GamepadButton.hx index 1aa6f3df..2511dd78 100644 --- a/std/js/html/GamepadButton.hx +++ b/std/js/html/GamepadButton.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,13 +32,13 @@ package js.html; @see **/ @:native("GamepadButton") -extern class GamepadButton -{ +extern class GamepadButton { /** A boolean value indicating whether the button is currently pressed (`true`) or unpressed (`false`). **/ var pressed(default,null) : Bool; + var touched(default,null) : Bool; /** A double value used to represent the current state of analog buttons, such as the triggers on many modern gamepads. The values are normalized to the range 0.0 —1.0, with 0.0 representing a button that is not pressed, and 1.0 representing a button that is fully pressed. diff --git a/std/js/html/CSSValueList.hx b/std/js/html/GamepadEvent.hx similarity index 54% rename from std/js/html/CSSValueList.hx rename to std/js/html/GamepadEvent.hx index dac04577..b6d927d4 100644 --- a/std/js/html/CSSValueList.hx +++ b/std/js/html/GamepadEvent.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,29 +20,25 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from mozilla\CSSValueList.webidl. Do not edit! +// This file is generated from mozilla\GamepadEvent.webidl. Do not edit! package js.html; /** - The `CSSValueList` interface derives from the `CSSValue` interface and provides the abstraction of an ordered collection of CSS values. + The GamepadEvent interface of the Gamepad API contains references to gamepads connected to the system, which is what the gamepad events `Window.gamepadconnected` and `Window.gamepaddisconnected` are fired in response to. - Documentation [CSSValueList](https://developer.mozilla.org/en-US/docs/Web/API/CSSValueList) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSValueList$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). + Documentation [GamepadEvent](https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). - @see + @see **/ -@:native("CSSValueList") -extern class CSSValueList extends CSSValue implements ArrayAccess -{ +@:native("GamepadEvent") +extern class GamepadEvent extends Event { /** - An `unsigned long` representing the number of `CSSValues` in the list. + Returns a `Gamepad` object, providing access to the associated gamepad data for the event fired. **/ - var length(default,null) : Int; + var gamepad(default,null) : Gamepad; - - /** - This method is used to retrieve a `CSSValue` by ordinal index. The order in this collection represents the order of the values in the CSS style property. If index is greater than or equal to the number of values in the list, this returns `null`. - **/ - function item( index : Int ) : CSSValue; + /** @throws DOMError */ + function new( type : String, ?eventInitDict : GamepadEventInit ) : Void; } \ No newline at end of file diff --git a/std/js/html/DummyInterfaceWorkers.hx b/std/js/html/GamepadEventInit.hx similarity index 86% rename from std/js/html/DummyInterfaceWorkers.hx rename to std/js/html/GamepadEventInit.hx index a1a29861..25769491 100644 --- a/std/js/html/DummyInterfaceWorkers.hx +++ b/std/js/html/GamepadEventInit.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -20,11 +20,10 @@ * DEALINGS IN THE SOFTWARE. */ -// This file is generated from mozilla\DummyBinding.webidl. Do not edit! +// This file is generated from mozilla\GamepadEvent.webidl. Do not edit! package js.html; -@:native("DummyInterfaceWorkers") -extern class DummyInterfaceWorkers -{ +typedef GamepadEventInit = EventInit & { + var ?gamepad : Gamepad; } \ No newline at end of file diff --git a/std/js/html/GamepadMappingType.hx b/std/js/html/GamepadMappingType.hx index 28c6e77c..60fc84fe 100644 --- a/std/js/html/GamepadMappingType.hx +++ b/std/js/html/GamepadMappingType.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,8 +24,7 @@ package js.html; -@:enum abstract GamepadMappingType(String) -{ +enum abstract GamepadMappingType(String) { var NONE = ""; var STANDARD = "standard"; } \ No newline at end of file diff --git a/std/js/html/Geolocation.hx b/std/js/html/Geolocation.hx index 7da368a1..5697251e 100644 --- a/std/js/html/Geolocation.hx +++ b/std/js/html/Geolocation.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -31,19 +31,17 @@ package js.html; @see **/ -@:native("Geolocation") -extern class Geolocation -{ - /** @throws DOMError */ +typedef Geolocation = { /** Determines the device's current location and gives back a `Position` object with the data. + @throws DOMError **/ function getCurrentPosition( successCallback : Position -> Void, ?errorCallback : PositionError -> Void, ?options : PositionOptions ) : Void; - /** @throws DOMError */ /** Returns a `long` value representing the newly established callback function to be invoked whenever the device location changes. + @throws DOMError **/ function watchPosition( successCallback : Position -> Void, ?errorCallback : PositionError -> Void, ?options : PositionOptions ) : Int; diff --git a/std/js/html/GetNotificationOptions.hx b/std/js/html/GetNotificationOptions.hx new file mode 100644 index 00000000..313c9249 --- /dev/null +++ b/std/js/html/GetNotificationOptions.hx @@ -0,0 +1,29 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\Notification.webidl. Do not edit! + +package js.html; + +typedef GetNotificationOptions = { + var ?tag : String; +} \ No newline at end of file diff --git a/std/js/html/GetRootNodeOptions.hx b/std/js/html/GetRootNodeOptions.hx new file mode 100644 index 00000000..1547721d --- /dev/null +++ b/std/js/html/GetRootNodeOptions.hx @@ -0,0 +1,29 @@ +/* + * Copyright (C)2005-2019 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +// This file is generated from mozilla\Node.webidl. Do not edit! + +package js.html; + +typedef GetRootNodeOptions = { + var ?composed : Bool; +} \ No newline at end of file diff --git a/std/js/html/GetUserMediaRequest.hx b/std/js/html/GetUserMediaRequest.hx index ab01b4c3..34b30f13 100644 --- a/std/js/html/GetUserMediaRequest.hx +++ b/std/js/html/GetUserMediaRequest.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,13 +24,14 @@ package js.html; -@:native("GetUserMediaRequest") -extern class GetUserMediaRequest -{ +typedef GetUserMediaRequest = { var windowID(default,null) : Int; var innerWindowID(default,null) : Int; var callID(default,null) : String; + var rawID(default,null) : String; + var mediaSource(default,null) : String; var isSecure(default,null) : Bool; + var isHandlingUserInput(default,null) : Bool; function getConstraints() : MediaStreamConstraints; } \ No newline at end of file diff --git a/std/js/html/HRElement.hx b/std/js/html/HRElement.hx index a2309eac..b3ad0f67 100644 --- a/std/js/html/HRElement.hx +++ b/std/js/html/HRElement.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("HTMLHRElement") -extern class HRElement extends Element -{ +extern class HRElement extends Element { var align : String; var color : String; var noShade : Bool; diff --git a/std/js/html/HTMLAllCollection.hx b/std/js/html/HTMLAllCollection.hx index 466b12dd..93eace7d 100644 --- a/std/js/html/HTMLAllCollection.hx +++ b/std/js/html/HTMLAllCollection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,8 +25,7 @@ package js.html; @:native("HTMLAllCollection") -extern class HTMLAllCollection implements ArrayAccess -{ +extern class HTMLAllCollection implements ArrayAccess { var length(default,null) : Int; @:overload( function( index : Int ) : Node {} ) diff --git a/std/js/html/HTMLCollection.hx b/std/js/html/HTMLCollection.hx index 756e731d..50ad111a 100644 --- a/std/js/html/HTMLCollection.hx +++ b/std/js/html/HTMLCollection.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -32,8 +32,7 @@ package js.html; @see **/ @:native("HTMLCollection") -extern class HTMLCollection implements ArrayAccess -{ +extern class HTMLCollection implements ArrayAccess { /** Returns the number of items in the collection. diff --git a/std/js/html/HTMLDocument.hx b/std/js/html/HTMLDocument.hx index eb88f85c..8d9d0486 100644 --- a/std/js/html/HTMLDocument.hx +++ b/std/js/html/HTMLDocument.hx @@ -1,5 +1,5 @@ /* - * Copyright (C)2005-2017 Haxe Foundation + * Copyright (C)2005-2019 Haxe Foundation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,40 +25,27 @@ package js.html; /** - `HTMLDocument` is an abstract interface of the DOM which provides access to special properties and methods not present by default on a regular (XML) document. + `HTMLDocument` is an abstract interface which extends the `Document` interface to add HTML-specific features to the document object. It represents the root of the HTML document, within which its entire DOM hierarchy resides. Documentation [HTMLDocument](https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). @see **/ @:native("HTMLDocument") -extern class HTMLDocument extends Document -{ +extern class HTMLDocument extends Document { var domain : String; var cookie : String; - var body : BodyElement; - var head(default,null) : HeadElement; - var images(default,null) : HTMLCollection; - var embeds(default,null) : HTMLCollection; - var plugins(default,null) : HTMLCollection; - var links(default,null) : HTMLCollection; - var forms(default,null) : HTMLCollection; - var scripts(default,null) : HTMLCollection; var designMode : String; var fgColor : String; var linkColor : String; var vlinkColor : String; var alinkColor : String; var bgColor : String; - var anchors(default,null) : HTMLCollection; - var applets(default,null) : HTMLCollection; var all(default,null) : HTMLAllCollection; - function getElementsByName( elementName : String ) : NodeList; - function getItems( ?typeNames : String = "" ) : NodeList; /** @throws DOMError */ - @:overload( function( ?type : String = "text/html", ?replace : String = "" ) : HTMLDocument {} ) - function open( url : String, name : String, features : String, ?replace : Bool = false ) : Window; + @:overload( function( ?type : String, replace : String = "" ) : HTMLDocument {} ) + function open( url : String, name : String, features : String, replace : Bool = false ) : Window; /** @throws DOMError */ function close() : Void; /** @throws DOMError */ @@ -66,7 +53,7 @@ extern class HTMLDocument extends Document /** @throws DOMError */ function writeln( text : haxe.extern.Rest ) : Void; /** @throws DOMError */ - function execCommand( commandId : String, ?showUI : Bool = false, ?value : String = "" ) : Bool; + function execCommand( commandId : String, showUI : Bool = false, value : String = "" ) : Bool; /** @throws DOMError */ function queryCommandEnabled( commandId : String ) : Bool; /** @throws DOMError */ @@ -77,80 +64,38 @@ extern class HTMLDocument extends Document /** @throws DOMError */ function queryCommandValue( commandId : String ) : String; function clear() : Void; - /** @throws DOMError */ - function getSelection() : Selection; function captureEvents() : Void; function releaseEvents() : Void; /** Shorthand for creating an HTML `` element. */ inline function createTableCellElement() : TableCellElement { return cast createElement("td"); } - /** Shorthand for creating an HTML `
    ` element. */ - inline function createHRElement() : HRElement { return cast createElement("hr"); } /** Shorthand for creating an HTML `` element. */ - inline function createInputElement() : InputElement { return cast createElement("input"); } + /** Shorthand for creating an HTML `