├── known-good
├── .gitignore
└── package.json
├── test
├── compiler
│ ├── testapp
│ │ ├── .nvmrc
│ │ ├── source
│ │ │ ├── resource
│ │ │ │ └── testapp
│ │ │ │ │ ├── test-external.js
│ │ │ │ │ ├── test-external.css
│ │ │ │ │ ├── scss
│ │ │ │ │ ├── sub1
│ │ │ │ │ │ └── _rel1.scss
│ │ │ │ │ └── root.scss
│ │ │ │ │ └── test.png
│ │ │ ├── theme
│ │ │ │ └── testapp
│ │ │ │ │ └── scss
│ │ │ │ │ └── sample.scss
│ │ │ ├── class
│ │ │ │ └── testapp
│ │ │ │ │ ├── WrongClassName.js
│ │ │ │ │ ├── plugins
│ │ │ │ │ ├── OneAlpha.js
│ │ │ │ │ ├── OneBravo.js
│ │ │ │ │ ├── OneCharlie.js
│ │ │ │ │ ├── TwoAlpha.js
│ │ │ │ │ ├── TwoBravo.js
│ │ │ │ │ ├── TwoCharlie.js
│ │ │ │ │ ├── PluginOne.js
│ │ │ │ │ └── PluginTwo.js
│ │ │ │ │ ├── Issue240.js
│ │ │ │ │ ├── MIssue240.js
│ │ │ │ │ ├── MyClass.js
│ │ │ │ │ ├── __init__.js
│ │ │ │ │ ├── anno
│ │ │ │ │ └── MyAnno.js
│ │ │ │ │ ├── Issue153.js
│ │ │ │ │ ├── utils
│ │ │ │ │ └── Utils.js
│ │ │ │ │ ├── Issue186.js
│ │ │ │ │ ├── Issue461.js
│ │ │ │ │ ├── pdk
│ │ │ │ │ └── AbstractPlugin.js
│ │ │ │ │ ├── Issue206.js
│ │ │ │ │ ├── Issue500.js
│ │ │ │ │ ├── TestThat1.js
│ │ │ │ │ ├── TestThat2.js
│ │ │ │ │ ├── Issue495.js
│ │ │ │ │ ├── MMyMixin.js
│ │ │ │ │ ├── NodeApplication.js
│ │ │ │ │ ├── Issue503.js
│ │ │ │ │ ├── Issue309.js
│ │ │ │ │ ├── test
│ │ │ │ │ ├── TestInnerClasses.js
│ │ │ │ │ ├── TestPlugins.js
│ │ │ │ │ └── DemoTest.js
│ │ │ │ │ ├── Issue494.js
│ │ │ │ │ ├── Issue488.js
│ │ │ │ │ ├── Warnings1.js
│ │ │ │ │ └── InnerEs6Classes.js
│ │ │ ├── translation
│ │ │ │ ├── readme.txt
│ │ │ │ ├── nl.po
│ │ │ │ └── en.po
│ │ │ └── index.html
│ │ ├── .gitignore
│ │ ├── qx-lock.json
│ │ ├── readme.txt
│ │ └── Manifest.json
│ ├── test-qx-package
│ │ └── dummy.txt
│ ├── test-apiviewer
│ │ └── testMixin
│ │ │ ├── readme.md
│ │ │ ├── .gitignore
│ │ │ ├── source
│ │ │ ├── translation
│ │ │ │ └── readme.txt
│ │ │ ├── resource
│ │ │ │ └── testMixin
│ │ │ │ │ ├── app.png
│ │ │ │ │ ├── test.png
│ │ │ │ │ ├── favicon.png
│ │ │ │ │ └── js_256x256.png
│ │ │ ├── class
│ │ │ │ └── testMixin
│ │ │ │ │ ├── __init__.js
│ │ │ │ │ ├── theme
│ │ │ │ │ ├── Font.js
│ │ │ │ │ ├── Color.js
│ │ │ │ │ ├── Appearance.js
│ │ │ │ │ ├── Decoration.js
│ │ │ │ │ └── Theme.js
│ │ │ │ │ ├── Mixin.js
│ │ │ │ │ └── test
│ │ │ │ │ └── DemoTest.js
│ │ │ └── boot
│ │ │ │ ├── nojs.html
│ │ │ │ └── index.html
│ │ │ ├── qx-lock.json
│ │ │ ├── Manifest.json
│ │ │ └── compile.json
│ ├── test-issues
│ │ ├── testLegalSCSS
│ │ │ ├── readme.md
│ │ │ ├── .gitignore
│ │ │ ├── source
│ │ │ │ ├── translation
│ │ │ │ │ └── readme.txt
│ │ │ │ ├── class
│ │ │ │ │ └── testLegalSCSS
│ │ │ │ │ │ ├── __init__.js
│ │ │ │ │ │ └── Application.js
│ │ │ │ ├── resource
│ │ │ │ │ └── testLegalSCSS
│ │ │ │ │ │ ├── css
│ │ │ │ │ │ └── test_css.css
│ │ │ │ │ │ └── scss
│ │ │ │ │ │ └── test_scss.scss
│ │ │ │ └── theme
│ │ │ │ │ └── testLegalSCSS
│ │ │ │ │ └── scss
│ │ │ │ │ └── test_theme_scss.scss
│ │ │ ├── compile.json
│ │ │ └── Manifest.json
│ │ ├── issue440
│ │ │ ├── readme.md
│ │ │ ├── .gitignore
│ │ │ ├── source
│ │ │ │ ├── translation
│ │ │ │ │ └── readme.txt
│ │ │ │ ├── resource
│ │ │ │ │ └── issue440
│ │ │ │ │ │ └── test.png
│ │ │ │ └── class
│ │ │ │ │ └── issue440
│ │ │ │ │ ├── __init__.js
│ │ │ │ │ └── Application.js
│ │ │ ├── compile.json
│ │ │ └── Manifest.json
│ │ ├── issue553
│ │ │ ├── readme.md
│ │ │ ├── .gitignore
│ │ │ ├── source
│ │ │ │ ├── translation
│ │ │ │ │ └── readme.txt
│ │ │ │ └── class
│ │ │ │ │ └── issue553
│ │ │ │ │ ├── ApplicationOne.js
│ │ │ │ │ └── ApplicationTwo.js
│ │ │ ├── Manifest.json
│ │ │ └── compile.json
│ │ ├── issue553_node
│ │ │ ├── readme.md
│ │ │ ├── .gitignore
│ │ │ ├── source
│ │ │ │ ├── translation
│ │ │ │ │ └── readme.txt
│ │ │ │ └── class
│ │ │ │ │ └── issue553
│ │ │ │ │ ├── ApplicationOne.js
│ │ │ │ │ └── ApplicationTwo.js
│ │ │ ├── Manifest.json
│ │ │ └── compile.json
│ │ ├── issue692
│ │ │ ├── .gitignore
│ │ │ ├── source
│ │ │ │ ├── translation
│ │ │ │ │ └── readme.txt
│ │ │ │ ├── resource
│ │ │ │ │ └── issue692
│ │ │ │ │ │ └── test.png
│ │ │ │ └── class
│ │ │ │ │ └── issue692
│ │ │ │ │ └── Application.js
│ │ │ ├── Manifest.json
│ │ │ └── compile.json
│ │ ├── issue715
│ │ │ ├── .gitignore
│ │ │ ├── Manifest.json
│ │ │ ├── compile.json
│ │ │ └── source
│ │ │ │ └── class
│ │ │ │ └── issue715
│ │ │ │ └── Application.js
│ │ └── testdynamic
│ │ │ ├── Manifest.json
│ │ │ └── compile.js
│ ├── test-externals
│ │ ├── mylib
│ │ │ ├── source
│ │ │ │ ├── resource
│ │ │ │ │ └── mylib
│ │ │ │ │ │ ├── a.js
│ │ │ │ │ │ ├── b.js
│ │ │ │ │ │ └── c.js
│ │ │ │ └── class
│ │ │ │ │ └── mylib
│ │ │ │ │ └── MyClass.js
│ │ │ ├── .gitignore
│ │ │ └── Manifest.json
│ │ └── myapp
│ │ │ ├── .gitignore
│ │ │ ├── source
│ │ │ └── class
│ │ │ │ └── myapp
│ │ │ │ └── Application.js
│ │ │ ├── compile.json
│ │ │ └── Manifest.json
│ ├── .gitignore
│ ├── test-commands
│ │ └── test-commands-rename.js
│ ├── test-translation
│ │ ├── mylib
│ │ │ ├── .gitignore
│ │ │ ├── source
│ │ │ │ ├── translation
│ │ │ │ │ └── en.po
│ │ │ │ └── class
│ │ │ │ │ └── mylib
│ │ │ │ │ └── LibClass.js
│ │ │ └── Manifest.json
│ │ └── tranapp
│ │ │ ├── .gitignore
│ │ │ ├── source
│ │ │ ├── translation
│ │ │ │ └── en.po
│ │ │ └── class
│ │ │ │ └── tranapp
│ │ │ │ └── Application.js
│ │ │ ├── compile.json
│ │ │ └── Manifest.json
│ ├── testlib
│ │ ├── Manifest.json
│ │ └── compile.js
│ ├── test-externals.js
│ ├── test-pkg-migrate.js
│ └── test-rotate-unique.js
├── index.js
├── .gitignore
└── unittest
│ └── test-compiler
│ ├── classIssue519.js
│ ├── classIssue633.js
│ ├── classIssue524.js
│ ├── classIssue715.js
│ └── classIssue726.js
├── bin
├── build
│ ├── qx.cmd
│ └── qx
├── deploy
│ ├── qx.cmd
│ └── qx
├── source
│ ├── qx.cmd
│ └── qx
└── known-good
│ ├── qx.cmd
│ └── qx
├── .github
├── CODEOWNERS
└── workflows
│ └── nodejs.yml.disabled
├── bootstrap-compiler.cmd
├── source
├── resource
│ └── qx
│ │ └── tool
│ │ ├── website
│ │ ├── .gitignore
│ │ ├── build
│ │ │ ├── assets
│ │ │ │ ├── qx-oo.png
│ │ │ │ ├── favicon.png
│ │ │ │ ├── qx-api.png
│ │ │ │ ├── qx-ide.png
│ │ │ │ └── abel.css
│ │ │ ├── qooxdoo.css
│ │ │ └── diagnostics
│ │ │ │ └── dependson.js
│ │ ├── src
│ │ │ ├── assets
│ │ │ │ ├── favicon.png
│ │ │ │ ├── qx-api.png
│ │ │ │ ├── qx-ide.png
│ │ │ │ ├── qx-oo.png
│ │ │ │ └── abel.css
│ │ │ ├── diagnostics
│ │ │ │ ├── dependson.html
│ │ │ │ ├── requiredby.html
│ │ │ │ └── dependson.js
│ │ │ ├── index.html
│ │ │ ├── 404.html
│ │ │ └── about.md
│ │ ├── partials
│ │ │ ├── icon-github.html
│ │ │ ├── icon-twitter.html
│ │ │ ├── icon-twitter.svg
│ │ │ ├── icon-github.svg
│ │ │ └── head.html
│ │ ├── layouts
│ │ │ └── default.dot
│ │ └── sass
│ │ │ └── qooxdoo.scss
│ │ ├── cli
│ │ └── templates
│ │ │ ├── skeleton
│ │ │ ├── server
│ │ │ │ ├── source
│ │ │ │ │ ├── resource
│ │ │ │ │ │ └── custom
│ │ │ │ │ │ │ └── .gitignore.tmpl
│ │ │ │ │ ├── translation
│ │ │ │ │ │ └── readme.txt
│ │ │ │ │ └── class
│ │ │ │ │ │ └── custom
│ │ │ │ │ │ ├── __init__.tmpl.js
│ │ │ │ │ │ └── test
│ │ │ │ │ │ └── DemoTest.tmpl.js
│ │ │ │ ├── .gitignore.tmpl
│ │ │ │ ├── Manifest.tmpl.json
│ │ │ │ ├── compile.tmpl.json
│ │ │ │ └── readme.tmpl.txt
│ │ │ ├── desktop
│ │ │ │ ├── readme.tmpl.md
│ │ │ │ ├── .gitignore.tmpl
│ │ │ │ ├── source
│ │ │ │ │ ├── translation
│ │ │ │ │ │ └── readme.txt
│ │ │ │ │ ├── resource
│ │ │ │ │ │ └── custom
│ │ │ │ │ │ │ ├── app.png
│ │ │ │ │ │ │ ├── test.png
│ │ │ │ │ │ │ ├── favicon.png
│ │ │ │ │ │ │ └── js_256x256.png
│ │ │ │ │ ├── class
│ │ │ │ │ │ └── custom
│ │ │ │ │ │ │ ├── __init__.tmpl.js
│ │ │ │ │ │ │ ├── theme
│ │ │ │ │ │ │ ├── Font.tmpl.js
│ │ │ │ │ │ │ ├── Color.tmpl.js
│ │ │ │ │ │ │ ├── Appearance.tmpl.js
│ │ │ │ │ │ │ ├── Decoration.tmpl.js
│ │ │ │ │ │ │ └── Theme.tmpl.js
│ │ │ │ │ │ │ ├── test
│ │ │ │ │ │ │ └── DemoTest.tmpl.js
│ │ │ │ │ │ │ └── Application.tmpl.js
│ │ │ │ │ └── boot
│ │ │ │ │ │ ├── nojs.tmpl.html
│ │ │ │ │ │ └── index.tmpl.html
│ │ │ │ ├── compile.tmpl.json
│ │ │ │ └── Manifest.tmpl.json
│ │ │ ├── mobile
│ │ │ │ ├── readme.tmpl.md
│ │ │ │ ├── source
│ │ │ │ │ ├── theme
│ │ │ │ │ │ └── custom
│ │ │ │ │ │ │ └── scss
│ │ │ │ │ │ │ └── custom.scss
│ │ │ │ │ ├── resource
│ │ │ │ │ │ └── custom
│ │ │ │ │ │ │ ├── css
│ │ │ │ │ │ │ └── .gitignore.tmpl
│ │ │ │ │ │ │ ├── app.png
│ │ │ │ │ │ │ ├── favicon.png
│ │ │ │ │ │ │ └── js_256x256.png
│ │ │ │ │ ├── translation
│ │ │ │ │ │ └── readme.txt
│ │ │ │ │ ├── class
│ │ │ │ │ │ └── custom
│ │ │ │ │ │ │ ├── __init__.tmpl.js
│ │ │ │ │ │ │ └── page
│ │ │ │ │ │ │ ├── __init__.tmpl.js
│ │ │ │ │ │ │ ├── Overview.tmpl.js
│ │ │ │ │ │ │ └── Login.tmpl.js
│ │ │ │ │ └── boot
│ │ │ │ │ │ ├── nojs.tmpl.html
│ │ │ │ │ │ └── index.tmpl.html
│ │ │ │ ├── .gitignore.tmpl
│ │ │ │ ├── compile.tmpl.json
│ │ │ │ └── Manifest.tmpl.json
│ │ │ └── package
│ │ │ │ ├── readme.tmpl.md
│ │ │ │ ├── .gitignore.tmpl
│ │ │ │ ├── source
│ │ │ │ ├── translation
│ │ │ │ │ └── readme.txt
│ │ │ │ ├── resource
│ │ │ │ │ └── custom
│ │ │ │ │ │ └── test.png
│ │ │ │ └── class
│ │ │ │ │ └── custom
│ │ │ │ │ ├── resource
│ │ │ │ │ └── custom
│ │ │ │ │ │ └── test.png
│ │ │ │ │ ├── __init__.tmpl.js
│ │ │ │ │ ├── theme
│ │ │ │ │ ├── Font.tmpl.js
│ │ │ │ │ ├── Color.tmpl.js
│ │ │ │ │ ├── Appearance.tmpl.js
│ │ │ │ │ ├── Decoration.tmpl.js
│ │ │ │ │ └── Theme.tmpl.js
│ │ │ │ │ ├── Button.tmpl.js
│ │ │ │ │ ├── test
│ │ │ │ │ └── DemoTest.tmpl.js
│ │ │ │ │ └── demo
│ │ │ │ │ └── Application.tmpl.js
│ │ │ │ ├── compile.tmpl.json
│ │ │ │ └── Manifest.tmpl.json
│ │ │ ├── TypeScriptWriter-base_declaration.txt
│ │ │ └── class
│ │ │ ├── header.tmpl.js
│ │ │ ├── interface.tmpl.js
│ │ │ ├── mixin.tmpl.js
│ │ │ ├── singleton.tmpl.js
│ │ │ └── default.tmpl.js
│ │ ├── bin
│ │ ├── build-devtools
│ │ ├── build-website
│ │ └── download-assets
│ │ ├── loadsass.js
│ │ └── schema
│ │ └── qooxdoo-1-0-0.json
└── class
│ └── qx
│ └── tool
│ ├── __init__.js
│ ├── cli
│ ├── __init__.js
│ ├── LibraryApplication.js
│ ├── Application.js
│ ├── commands
│ │ ├── Add.js
│ │ └── Pkg.js
│ └── api
│ │ ├── LibraryApi.js
│ │ └── Test.js
│ ├── config
│ ├── __init__.js
│ ├── Compile.js
│ ├── Manifest.js
│ ├── Registry.js
│ └── Lockfile.js
│ ├── utils
│ ├── __init__.js
│ └── Logger.js
│ └── compiler
│ ├── __init__.js
│ ├── targets
│ ├── meta
│ │ ├── PolyfillJs.js
│ │ ├── Javascript.js
│ │ └── Part.js
│ └── SourceTarget.js
│ ├── resources
│ ├── MetaLoader.js
│ ├── ScssIncludeConverter.js
│ └── ImageLoader.js
│ ├── jsdoc
│ ├── ReturnParser.js
│ ├── ThrowsParser.js
│ ├── ChildControlParser.js
│ └── CommandParser.js
│ └── app
│ └── Part.js
├── .gitignore
├── .npm-upgrade.json
├── bootstrap-compiler
├── qx-lock.json
├── LICENSE
├── Manifest.json
└── compile.js
/known-good/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules/
--------------------------------------------------------------------------------
/test/compiler/testapp/.nvmrc:
--------------------------------------------------------------------------------
1 | 10
2 |
--------------------------------------------------------------------------------
/bin/build/qx.cmd:
--------------------------------------------------------------------------------
1 | @node "%~dp0\qx" %*
2 |
--------------------------------------------------------------------------------
/bin/deploy/qx.cmd:
--------------------------------------------------------------------------------
1 | @node "%~dp0\qx" %*
2 |
--------------------------------------------------------------------------------
/bin/source/qx.cmd:
--------------------------------------------------------------------------------
1 | @node "%~dp0\qx" %*
2 |
--------------------------------------------------------------------------------
/test/compiler/test-qx-package/dummy.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/bin/known-good/qx.cmd:
--------------------------------------------------------------------------------
1 | @node "%~dp0\qx" %*
2 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @johnspackman @cboulanger @hkollmann
2 |
--------------------------------------------------------------------------------
/bootstrap-compiler.cmd:
--------------------------------------------------------------------------------
1 | @node "%~dp0\bootstrap-compiler" %*
2 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/.gitignore:
--------------------------------------------------------------------------------
1 | old/
2 | .sass-cache
3 |
--------------------------------------------------------------------------------
/source/class/qx/tool/__init__.js:
--------------------------------------------------------------------------------
1 | /**
2 | * doc is missing
3 | */
4 |
--------------------------------------------------------------------------------
/source/class/qx/tool/cli/__init__.js:
--------------------------------------------------------------------------------
1 | /**
2 | * doc is missing
3 | */
4 |
--------------------------------------------------------------------------------
/source/class/qx/tool/config/__init__.js:
--------------------------------------------------------------------------------
1 | /**
2 | * doc is missing
3 | */
4 |
--------------------------------------------------------------------------------
/source/class/qx/tool/utils/__init__.js:
--------------------------------------------------------------------------------
1 | /**
2 | * doc is missing
3 | */
4 |
--------------------------------------------------------------------------------
/test/index.js:
--------------------------------------------------------------------------------
1 | require("../compiled/node/source/compilerLibrary/index");
2 |
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/__init__.js:
--------------------------------------------------------------------------------
1 | /**
2 | * doc is missing
3 | */
4 |
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/readme.md:
--------------------------------------------------------------------------------
1 | # testMixin
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/testLegalSCSS/readme.md:
--------------------------------------------------------------------------------
1 | # testLegalSCSS
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/server/source/resource/custom/.gitignore.tmpl:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/compiler/test-externals/mylib/source/resource/mylib/a.js:
--------------------------------------------------------------------------------
1 | window.THIS_IS_A_JS = 1;
2 |
--------------------------------------------------------------------------------
/test/compiler/test-externals/mylib/source/resource/mylib/b.js:
--------------------------------------------------------------------------------
1 | window.THIS_IS_B_JS = 1;
2 |
--------------------------------------------------------------------------------
/test/compiler/test-externals/mylib/source/resource/mylib/c.js:
--------------------------------------------------------------------------------
1 | window.THIS_IS_C_JS = 1;
2 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue440/readme.md:
--------------------------------------------------------------------------------
1 | # issue440
2 |
3 | undefined
4 |
5 | undefined
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553/readme.md:
--------------------------------------------------------------------------------
1 | # issue553
2 |
3 | undefined
4 |
5 | undefined
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553_node/readme.md:
--------------------------------------------------------------------------------
1 | # issue553
2 |
3 | undefined
4 |
5 | undefined
--------------------------------------------------------------------------------
/test/compiler/testapp/source/resource/testapp/test-external.js:
--------------------------------------------------------------------------------
1 | var TEST_EXTERNAL="loaded";
2 |
3 |
--------------------------------------------------------------------------------
/test/compiler/testapp/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/resource/testapp/test-external.css:
--------------------------------------------------------------------------------
1 | #test-external {
2 | font-weight: "bold";
3 | }
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/readme.tmpl.md:
--------------------------------------------------------------------------------
1 | # ${name}
2 |
3 | ${summary}
4 |
5 | ${description}
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/readme.tmpl.md:
--------------------------------------------------------------------------------
1 | # ${name}
2 |
3 | ${summary}
4 |
5 | ${description}
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/readme.tmpl.md:
--------------------------------------------------------------------------------
1 | # ${name}
2 |
3 | ${summary}
4 |
5 | ${description}
--------------------------------------------------------------------------------
/test/compiler/.gitignore:
--------------------------------------------------------------------------------
1 | /test-rotate-unique/
2 | /test-deps/
3 | /transpiled/
4 | /test-qx-package/myapp/
5 | /test-cli/myapp/
6 |
--------------------------------------------------------------------------------
/test/compiler/test-commands/test-commands-rename.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | console.log("This is just a sample script");
3 | })();
4 |
5 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/theme/testapp/scss/sample.scss:
--------------------------------------------------------------------------------
1 | $bgcolor: red;
2 |
3 | #root {
4 | background-color: $bgcolor;
5 | }
6 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/WrongClassName.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("abc.SomeOtherName", {
2 | extend: qx.core.Object
3 | });
4 |
--------------------------------------------------------------------------------
/test/compiler/test-externals/myapp/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/test/compiler/test-externals/mylib/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue440/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue692/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue715/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/test/compiler/test-translation/mylib/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/plugins/OneAlpha.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.plugins.OneAlpha", {
2 | extend: qx.core.Object
3 | });
4 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/plugins/OneBravo.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.plugins.OneBravo", {
2 | extend: qx.core.Object
3 | });
4 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/plugins/OneCharlie.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.plugins.OneCharlie", {
2 | extend: qx.core.Object
3 | });
4 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/plugins/TwoAlpha.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.plugins.TwoAlpha", {
2 | extend: qx.core.Object
3 | });
4 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/plugins/TwoBravo.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.plugins.TwoBravo", {
2 | extend: qx.core.Object
3 | });
4 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/plugins/TwoCharlie.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.plugins.TwoCharlie", {
2 | extend: qx.core.Object
3 | });
4 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/scss/custom.scss:
--------------------------------------------------------------------------------
1 | @import "common/all";
2 | @import "styles";
3 | @import "ui/all";
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553_node/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/testLegalSCSS/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/test/compiler/test-translation/tranapp/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/bin/build/qx:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | const path=require("path");
3 | require(path.join(__dirname, "..", "..", "compiled", "node", "build", "compiler"));
4 |
5 |
--------------------------------------------------------------------------------
/bin/source/qx:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | const path=require("path");
3 | require(path.join(__dirname, "..", "..", "compiled", "node", "source", "compiler"));
4 |
5 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue440/source/translation/readme.txt:
--------------------------------------------------------------------------------
1 | This directory will contain translation (.po) files once you have compiled your application.
2 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553/source/translation/readme.txt:
--------------------------------------------------------------------------------
1 | This directory will contain translation (.po) files once you have compiled your application.
2 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue692/source/translation/readme.txt:
--------------------------------------------------------------------------------
1 | This directory will contain translation (.po) files once you have compiled your application.
2 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/resource/testapp/scss/sub1/_rel1.scss:
--------------------------------------------------------------------------------
1 | #root {
2 | font-weight: 800;
3 | background-image: url(../sub5/image.png);
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/build/assets/qx-oo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/website/build/assets/qx-oo.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/src/assets/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/website/src/assets/favicon.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/src/assets/qx-api.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/website/src/assets/qx-api.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/src/assets/qx-ide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/website/src/assets/qx-ide.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/src/assets/qx-oo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/website/src/assets/qx-oo.png
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/translation/readme.txt:
--------------------------------------------------------------------------------
1 | This directory will contain translation (.po) files once you have compiled your application.
2 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553_node/source/translation/readme.txt:
--------------------------------------------------------------------------------
1 | This directory will contain translation (.po) files once you have compiled your application.
2 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/testLegalSCSS/source/translation/readme.txt:
--------------------------------------------------------------------------------
1 | This directory will contain translation (.po) files once you have compiled your application.
2 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/resource/testapp/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/test/compiler/testapp/source/resource/testapp/test.png
--------------------------------------------------------------------------------
/test/compiler/testapp/source/translation/readme.txt:
--------------------------------------------------------------------------------
1 | This directory will contain translation (.po) files once you run the
2 | 'translation' job in your project.
3 |
4 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/build/assets/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/website/build/assets/favicon.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/build/assets/qx-api.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/website/build/assets/qx-api.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/build/assets/qx-ide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/website/build/assets/qx-ide.png
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Issue240.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.Issue240", {
2 | extend: qx.core.Object,
3 | include: [ testapp.MIssue240 ]
4 | });
5 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/.gitignore.tmpl:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/.gitignore.tmpl:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/.gitignore.tmpl:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/translation/readme.txt:
--------------------------------------------------------------------------------
1 | This directory will contain translation (.po) files once you have compiled your application.
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/server/.gitignore.tmpl:
--------------------------------------------------------------------------------
1 | # .gitignore template for skeleton-based apps
2 | /compiled
3 | /qx_packages
4 | .package-cache.json
5 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/MIssue240.js:
--------------------------------------------------------------------------------
1 | qx.Mixin.define("testapp.MIssue240", {
2 | //type: "static",
3 |
4 | statics: {
5 | A: 1
6 | }
7 | });
8 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/translation/readme.txt:
--------------------------------------------------------------------------------
1 | This directory will contain translation (.po) files once you have compiled your application.
2 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/resource/custom/css/.gitignore.tmpl:
--------------------------------------------------------------------------------
1 | # generated by Sass (SCSS -> CSS compilation)
2 | custom.css
3 | custom.css.map
4 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/MyClass.js:
--------------------------------------------------------------------------------
1 |
2 | qx.Class.define("testapp.MyClass", {
3 | extend: qx.core.Object,
4 | include: [ testapp.MMyMixin ]
5 |
6 | });
7 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/resource/testapp/scss/root.scss:
--------------------------------------------------------------------------------
1 | #root {
2 | color: red;
3 | }
4 |
5 | @import "sub1/rel1";
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/server/source/translation/readme.txt:
--------------------------------------------------------------------------------
1 | This directory will contain translation (.po) files once you have compiled your application.
2 |
3 |
--------------------------------------------------------------------------------
/test/compiler/test-translation/mylib/source/translation/en.po:
--------------------------------------------------------------------------------
1 | msgid "Lib Alpha"
2 | msgstr "lib-alpha-value"
3 |
4 | msgid "Lib Override"
5 | msgstr "lib-override-original-value"
6 |
7 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue440/source/resource/issue440/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/test/compiler/test-issues/issue440/source/resource/issue440/test.png
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue692/source/resource/issue692/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/test/compiler/test-issues/issue692/source/resource/issue692/test.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/translation/readme.txt:
--------------------------------------------------------------------------------
1 | This directory will contain translation (.po) files once you run the
2 | 'translation' job in your project.
3 |
4 |
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/resource/testMixin/app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/test/compiler/test-apiviewer/testMixin/source/resource/testMixin/app.png
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/resource/testMixin/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/test/compiler/test-apiviewer/testMixin/source/resource/testMixin/test.png
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/resource/testMixin/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/test/compiler/test-apiviewer/testMixin/source/resource/testMixin/favicon.png
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/resource/testMixin/js_256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/test/compiler/test-apiviewer/testMixin/source/resource/testMixin/js_256x256.png
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/__init__.js:
--------------------------------------------------------------------------------
1 | /**
testapp API Documentation
2 | *
3 | * Replace this text with an appropriate overview and introduction to your
4 | * application.
5 | *
6 | */
7 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/resource/custom/app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/cli/templates/skeleton/mobile/source/resource/custom/app.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/resource/custom/app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/cli/templates/skeleton/desktop/source/resource/custom/app.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/resource/custom/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/cli/templates/skeleton/desktop/source/resource/custom/test.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/resource/custom/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/cli/templates/skeleton/package/source/resource/custom/test.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/resource/custom/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/cli/templates/skeleton/desktop/source/resource/custom/favicon.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/resource/custom/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/cli/templates/skeleton/mobile/source/resource/custom/favicon.png
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue440/source/class/issue440/__init__.js:
--------------------------------------------------------------------------------
1 | /** issue440 API Documentation
2 | *
3 | * Replace this text with an appropriate overview and introduction to your
4 | * application.
5 | *
6 | */
7 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/anno/MyAnno.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.anno.MyAnno", {
2 | extend: qx.core.Object,
3 |
4 | properties: {
5 | name: {
6 | check: "String"
7 | }
8 | }
9 | });
10 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/resource/custom/js_256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/cli/templates/skeleton/mobile/source/resource/custom/js_256x256.png
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/class/testMixin/__init__.js:
--------------------------------------------------------------------------------
1 | /** testMixin API Documentation
2 | *
3 | * Replace this text with an appropriate overview and introduction to your
4 | * application.
5 | *
6 | */
7 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/resource/custom/js_256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/cli/templates/skeleton/desktop/source/resource/custom/js_256x256.png
--------------------------------------------------------------------------------
/test/compiler/test-issues/testLegalSCSS/source/class/testLegalSCSS/__init__.js:
--------------------------------------------------------------------------------
1 | /** testLegalSCSS API Documentation
2 | *
3 | * Replace this text with an appropriate overview and introduction to your
4 | * application.
5 | *
6 | */
7 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/class/custom/resource/custom/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/HEAD/source/resource/qx/tool/cli/templates/skeleton/package/source/class/custom/resource/custom/test.png
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/class/custom/__init__.tmpl.js:
--------------------------------------------------------------------------------
1 | /** ${namespace} API Documentation
2 | *
3 | * Replace this text with an appropriate overview and introduction to your
4 | * application.
5 | *
6 | */
7 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/class/custom/__init__.tmpl.js:
--------------------------------------------------------------------------------
1 | /** ${namespace} API Documentation
2 | *
3 | * Replace this text with an appropriate overview and introduction to your
4 | * application.
5 | *
6 | */
7 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/server/source/class/custom/__init__.tmpl.js:
--------------------------------------------------------------------------------
1 | /** ${namespace} API Documentation
2 | *
3 | * Replace this text with an appropriate overview and introduction to your
4 | * application.
5 | *
6 | */
7 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/class/custom/page/__init__.tmpl.js:
--------------------------------------------------------------------------------
1 | /** ${namespace} API Documentation
2 | *
3 | * Replace this text with an appropriate overview and introduction to your
4 | * application.
5 | *
6 | */
7 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/class/custom/__init__.tmpl.js:
--------------------------------------------------------------------------------
1 | /** ${namespace} API Documentation
2 | *
3 | * Replace this text with an appropriate overview and introduction to your
4 | * contrib library.
5 | *
6 | */
7 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Issue153.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.Issue153",
2 | {
3 |
4 | extend : Object
5 | });
6 |
7 | (function(root) {
8 | "use strict";
9 | function BitSet(param) {
10 | }
11 | root["BitSet"] = BitSet;
12 | })(this);
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/utils/Utils.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.utils.Utils", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | sayHello: function() {
6 | return this.classname + ": Utils Hello";
7 | }
8 | }
9 | });
10 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/partials/icon-github.html:
--------------------------------------------------------------------------------
1 |
2 | {{= it.partials["icon-github.svg"](it) }}
3 | {{= it.site.github_username }}
4 |
5 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/partials/icon-twitter.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{= it.site.twitter_username }}
4 |
5 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/src/assets/abel.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Abel';
3 | font-style: normal;
4 | font-weight: 400;
5 | src: local('Abel Regular'), local('Abel-Regular'), url(https://fonts.gstatic.com/s/abel/v9/MwQ5bhbm2POE2V9BOA.ttf) format('truetype');
6 | }
7 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/build/assets/abel.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Abel';
3 | font-style: normal;
4 | font-weight: 400;
5 | src: local('Abel Regular'), local('Abel-Regular'), url(https://fonts.gstatic.com/s/abel/v9/MwQ5bhbm2POE2V9BOA.ttf) format('truetype');
6 | }
7 |
--------------------------------------------------------------------------------
/test/.gitignore:
--------------------------------------------------------------------------------
1 | transpiled/
2 | unit-tests-output/
3 | db.json
4 | resource-db.json
5 | x.json
6 | y.json
7 | test-rotate-unique.txt
8 | test-rotate-unique.txt.1
9 | test-rotate-unique.txt.2
10 | test-rotate-unique.txt.3
11 | test-rotate-unique.txt.4
12 | test-rotate-unique.txt.5
13 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Issue186.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.Issue186", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | /**
6 | * @ignore(process)
7 | */
8 | someMethodOne: function() {
9 | process.exit();
10 | }
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/bin/build-devtools:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | require("../../../../../index");
4 |
5 | const website = new qx.tool.utils.Website();
6 |
7 | (async () => {
8 | try {
9 | await website.buildDevtools();
10 | } catch (e) {
11 | console.error(e);
12 | }
13 | })();
14 |
--------------------------------------------------------------------------------
/bin/deploy/qx:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | const path=require("path");
3 | const updateNotifier = require("update-notifier");
4 | const pkg = require(path.join(__dirname, "..", "..", "package.json"));
5 | updateNotifier({pkg}).notify({defer:false});
6 | require(path.join(__dirname, "..", "..", "lib", "compiler"));
7 |
8 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Issue461.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.Issue461", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | unusedDestructedArray: function() {
6 | let m = [ 1, "a", "b"];
7 | let [, name, ext] = m;
8 | console.log(name+ "." + ext);
9 | }
10 |
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/translation/nl.po:
--------------------------------------------------------------------------------
1 | #: testapp/Application.js
2 | msgid "translatedString"
3 | msgstr "nl: translatedString"
4 |
5 | #: testapp/Application.js
6 | msgid "Call \"me\""
7 | msgstr "nl: Call \"me\""
8 |
9 | #: testapp/Application.js
10 | msgid "This has\nsome\nnewlines"
11 | msgstr "nl: This has\nsome\nnewlines"
12 |
--------------------------------------------------------------------------------
/test/unittest/test-compiler/classIssue519.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("classIssue519", {
2 | statics: {
3 | test: function() {
4 | classloop:
5 | for (var i=0; i<10; i++)
6 | {
7 | for (var j=0; j<10; j++)
8 | {
9 | break classloop;
10 | }
11 | }
12 | }
13 | }
14 | });
--------------------------------------------------------------------------------
/known-good/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "known-good",
3 | "version": "1.0.0",
4 | "description": "Known Good compiler",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "@qooxdoo/compiler": "^1.0.0"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/pdk/AbstractPlugin.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.pdk.AbstractPlugin", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | sayHello: function() {
6 | this.assertEquals("testapp.Application", testapp.Application.classname);
7 | return this.classname + ": Abstract Hello";
8 | }
9 | }
10 | });
11 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Issue206.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.Issue206", {
2 | extend: qx.core.Object,
3 |
4 | properties: {
5 | minimum: {
6 | init: Number.MAX_VALUE * -1
7 | },
8 | maximum: {
9 | init: Number.MAX_VALUE
10 | },
11 | value: {
12 | init: new Date().getMonth()+1
13 | }
14 | }
15 | });
16 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/TypeScriptWriter-base_declaration.txt:
--------------------------------------------------------------------------------
1 |
2 | interface IMap {
3 | [key:string] : any;
4 | }
5 |
6 | declare class ErrorImpl implements Error {
7 | name: string;
8 | message:string
9 | }
10 |
11 | declare module qx.registry {
12 | function registerMainMethod(fn:(app: qx.application.Standalone)=>void):void;
13 | }
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # local files
2 | .DS_Store
3 | .eslintcache
4 | .project
5 | .settings/
6 | .idea/
7 | notused/
8 | .cache
9 | .vscode
10 | *~
11 |
12 | # node
13 | node_modules/
14 |
15 | # qooxdoo
16 | .package-cache.json
17 | html/
18 | lib/
19 | qooxdoo/
20 | compiled/
21 | qx_packages/
22 | # test apps
23 | foo*
24 | test/qx
25 | tmp
26 | source/class/qx/tool/compiler/Version.js
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Issue500.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.Issue500", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | test(nextConfigName) {
6 | console.error(
7 | `Unable to launch monitor with name ${nextConfigName}.` +
8 | `Was it deleted?`);
9 | console.error("abc" + "def");
10 | }
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/test/compiler/test-translation/mylib/source/class/mylib/LibClass.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("mylib.LibClass", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | doSomething() {
6 | console.log(this.tr("Lib Alpha"));
7 | console.log(this.tr("Lib Beta"));
8 | console.log(this.tr("Lib Charlie"));
9 | console.log(this.tr("Lib Override"));
10 | }
11 | }
12 | });
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/TestThat1.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.TestThat1", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | toHashCode() {
6 | var that = this;
7 | var other = that;
8 | var args = arguments;
9 | let fn = function() {
10 | other.base(arguments);
11 | };
12 | fn();
13 | }
14 | }
15 | });
16 |
17 |
18 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/layouts/default.dot:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{= it.partials.head(it) }}
5 |
6 |
7 |
8 | {{= it.partials.header(it) }}
9 |
10 |
11 |
12 | {{= it.contents }}
13 |
14 |
15 | {{= it.partials.footer(it) }}
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/compiler/testapp/qx-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "libraries": [
3 | {
4 | "library_name": "Commandline Testrunner for Qooxdoo Apps",
5 | "library_version": "0.3.1",
6 | "path": "qx_packages/qooxdoo_qxl_testtapper_v0_3_1",
7 | "uri": "qooxdoo/qxl.testtapper",
8 | "repo_name": "qooxdoo/qxl.testtapper",
9 | "repo_tag": "v0.3.1"
10 | }
11 | ],
12 | "version": "2.1"
13 | }
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/TestThat2.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.TestThat2", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | toHashCode: function() {
6 | var that = this;
7 | var other = that;
8 | var args = arguments;
9 | let fn = function() {
10 | other.base(arguments);
11 | };
12 | fn();
13 | }
14 | }
15 | });
16 |
17 |
18 |
--------------------------------------------------------------------------------
/test/compiler/test-externals/mylib/source/class/mylib/MyClass.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This is the main application class of "mylib"
3 | *
4 | * @external(mylib/a.js)
5 | */
6 | qx.Class.define("mylib.MyClass", {
7 | extend: qx.core.Object,
8 |
9 | members: {
10 | /**
11 | * @external(mylib/b.js)
12 | */
13 | doSomething: function() {
14 | console.log("Hello World");
15 | }
16 | }
17 | });
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Issue495.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.Issue495", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | test() {
6 | Object.entries({foo:"bar"}).map(([key, value]) => console.log(`${key}: ${value}`));
7 |
8 | var obj = { a: 1, b: 2, c: 3 };
9 | var fn = ({b,c}) => console.log(`b=${b} c=${c}`);
10 | fn(obj);
11 | }
12 | }
13 | });
14 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | testapp
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/translation/en.po:
--------------------------------------------------------------------------------
1 | #: testapp/Application.js
2 | msgid "translatedString"
3 | msgstr "en: translatedString"
4 |
5 | #: testapp/Application.js
6 | msgid "Call \"me\""
7 | msgstr "en: Call \"me\""
8 |
9 | #: testapp/Application.js
10 | msgid "This has\nsome\nnewlines"
11 | msgstr "en: This has\nsome\nnewlines"
12 |
13 | #. NO LONGER USED
14 | msgid "This hasnsomennewlines"
15 | msgstr ""
16 |
--------------------------------------------------------------------------------
/test/unittest/test-compiler/classIssue633.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("classIssue633",
2 | {
3 | extend : my.application.control.EditableList,
4 | members :
5 | {
6 | /**
7 | * Create an editor instance
8 | *
9 | * [Constructor]
10 | *
11 | * @return {Object}
12 | */
13 | _createEditorInstance : function() {
14 | return null;
15 | }
16 | }
17 | });
18 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/bin/build-website:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | require("../../../../../index");
3 |
4 | const website = new qx.tool.utils.Website();
5 |
6 | (async () => {
7 | try {
8 | console.log(">>> Building local website...");
9 | await website.generateSite();
10 | await website.compileScss();
11 | console.log(">>> Done.");
12 | } catch (e) {
13 | console.error(e);
14 | }
15 | })();
16 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/MMyMixin.js:
--------------------------------------------------------------------------------
1 | qx.Mixin.define("testapp.MMyMixin", qx.core.Environment.select("test.isTrue", {
2 | "true" : {
3 | members: {
4 | mixedInFunction: function() {
5 | return "mixedInIsTrue";
6 | }
7 | }
8 | },
9 | "false" : {
10 | members: {
11 | mixedInFunction: function() {
12 | return "mixedInIsFalse";
13 | }
14 | }
15 | }
16 | }));
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/class/testMixin/theme/Font.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2020
4 |
5 | License: MIT license
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("testMixin.theme.Font",
12 | {
13 | extend : qx.theme.indigo.Font,
14 |
15 | fonts :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/NodeApplication.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @require(qx.core.BaseInit)
3 | */
4 |
5 | qx.Class.define("testapp.NodeApplication", {
6 | extend: qx.application.Basic,
7 |
8 | members: {
9 | main() {
10 | console.log("In Main");
11 | this.demoAsync();
12 | },
13 |
14 | async demoAsync() {
15 | await new qx.Promise(resolve => setTimeout(resolve, 500));
16 | }
17 | }
18 |
19 | });
20 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/src/diagnostics/dependson.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default.dot
3 | ---
4 |
5 |
6 |
7 | runtime and loadtime
8 | runtime
9 | load
10 |
11 |
12 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/class/testMixin/theme/Color.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2020
4 |
5 | License: MIT license
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("testMixin.theme.Color",
12 | {
13 | extend : qx.theme.indigo.Color,
14 |
15 | colors :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Issue503.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.Issue503", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | testOne(aOptions) {
6 | var {activeUserOnly = false} = aOptions;
7 | console.log("activeUserOnly=" + activeUserOnly);
8 | },
9 | testTwo(aOptions) {
10 | var [activeUserOnly = false] = aOptions;
11 | console.log("activeUserOnly=" + activeUserOnly);
12 | }
13 | }
14 | });
15 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/class/header.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | ${name}
4 |
5 | ${homepage}
6 |
7 | Copyright:
8 | ${copyright}
9 |
10 | License:
11 | ${license}
12 | See the LICENSE file in the project's top-level directory for details.
13 |
14 | Authors:
15 | ${authors}
16 |
17 | ************************************************************************ */
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/class/testMixin/theme/Appearance.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2020
4 |
5 | License: MIT license
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("testMixin.theme.Appearance",
12 | {
13 | extend : qx.theme.indigo.Appearance,
14 |
15 | appearances :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/class/testMixin/theme/Decoration.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2020
4 |
5 | License: MIT license
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("testMixin.theme.Decoration",
12 | {
13 | extend : qx.theme.indigo.Decoration,
14 |
15 | decorations :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/plugins/PluginOne.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.plugins.PluginOne", {
2 | extend: testapp.pdk.AbstractPlugin,
3 |
4 | members: {
5 | sayHello: function() {
6 | this.assertEquals("testapp.Application", testapp.Application.classname);
7 | testapp.plugins.OneAlpha;
8 | testapp.plugins.OneBravo;
9 | testapp.plugins.OneCharlie;
10 | return this.classname + ": Plugin One Hello\n";
11 | }
12 | }
13 | });
14 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/plugins/PluginTwo.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.plugins.PluginTwo", {
2 | extend: testapp.pdk.AbstractPlugin,
3 |
4 | members: {
5 | sayHello: function() {
6 | this.assertEquals("testapp.Application", testapp.Application.classname);
7 | testapp.plugins.TwoAlpha;
8 | testapp.plugins.TwoBravo;
9 | testapp.plugins.TwoCharlie;
10 | return this.classname + ": Plugin Two Hello\n";
11 | }
12 | }
13 | });
14 |
--------------------------------------------------------------------------------
/test/unittest/test-compiler/classIssue524.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("classIssue524",
2 | {
3 | extend : qx.application.Standalone,
4 | members :
5 | {
6 | /**
7 | * @ignore(init1)
8 | */
9 | main : function() {
10 | init1();
11 | }
12 | }
13 | });
14 |
15 | qx.Class.define("some.Class",
16 | {
17 | extend : qx.ui.container.Composite,
18 | /**
19 | * @ignore(init)
20 | */
21 | construct : function()
22 | {
23 | init();
24 | }
25 | });
--------------------------------------------------------------------------------
/test/unittest/test-compiler/classIssue715.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("classIssue715", {
2 | members: {
3 | __privateOne: 1,
4 |
5 | myMethod() {
6 | this["__privateOne"] = "one";
7 | this["__privateTwo"] = "two";
8 | }
9 | },
10 | statics: {
11 | __privateStaticOne: 1,
12 |
13 | test: function() {
14 | classIssue715["__privateStaticOne"] = "one";
15 | classIssue715["__privateStaticTwo"] = "two";
16 | }
17 | }
18 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/src/diagnostics/requiredby.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default.dot
3 | ---
4 |
5 |
6 |
7 |
8 | runtime and loadtime
9 | runtime
10 | load
11 |
12 |
13 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Font.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("${namespace}.theme.Font",
12 | {
13 | extend : qx.theme.${theme}.Font,
14 |
15 | fonts :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/class/custom/theme/Font.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("${namespace}.theme.Font",
12 | {
13 | extend : qx.theme.${theme}.Font,
14 |
15 | fonts :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/test/compiler/test-issues/testLegalSCSS/source/resource/testLegalSCSS/css/test_css.css:
--------------------------------------------------------------------------------
1 | .ol-search ul li {
2 | display: block;
3 | color: #333;
4 | background-color: #fff;
5 | font-size: 0.85em;
6 | }
7 | .ol-search ul li i {
8 | display: block;
9 | color: #333;
10 | background-color: #fff;
11 | font-size: 0.85em;
12 | cursor: pointer
13 | }
14 | .ol-search ul li.select i,
15 | .ol-search ul li:hover i {
16 | background-color: rgb(0,60,136);
17 | color: #fff;
18 | }
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Color.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("${namespace}.theme.Color",
12 | {
13 | extend : qx.theme.${theme}.Color,
14 |
15 | colors :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/class/custom/theme/Color.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("${namespace}.theme.Color",
12 | {
13 | extend : qx.theme.${theme}.Color,
14 |
15 | colors :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/src/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default.dot
3 | ---
4 |
5 |
6 |
7 |
8 |
Applications
9 |
10 | Loading ....
11 |
12 |
13 |
14 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Appearance.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("${namespace}.theme.Appearance",
12 | {
13 | extend : qx.theme.${theme}.Appearance,
14 |
15 | appearances :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Decoration.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("${namespace}.theme.Decoration",
12 | {
13 | extend : qx.theme.${theme}.Decoration,
14 |
15 | decorations :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/class/custom/theme/Appearance.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("${namespace}.theme.Appearance",
12 | {
13 | extend : qx.theme.${theme}.Appearance,
14 |
15 | appearances :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/class/custom/theme/Decoration.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("${namespace}.theme.Decoration",
12 | {
13 | extend : qx.theme.${theme}.Decoration,
14 |
15 | decorations :
16 | {
17 | }
18 | });
--------------------------------------------------------------------------------
/test/compiler/test-translation/tranapp/source/translation/en.po:
--------------------------------------------------------------------------------
1 | #. NO LONGER USED
2 | msgid "Lib Override"
3 | msgstr "lib-override-replaced-value"
4 |
5 | #: tranapp/Application.js
6 | msgid "App Alpha"
7 | msgstr ""
8 |
9 | #: tranapp/Application.js
10 | msgid "App Beta"
11 | msgstr ""
12 |
13 | #: tranapp/Application.js
14 | msgid "App Charlie"
15 | msgstr ""
16 |
17 | #
18 | msgid "Lib Beta"
19 | msgstr ""
20 |
21 | #
22 | msgid "Lib Charlie"
23 | msgstr ""
24 |
25 | #
26 | msgid "Lib Alpha"
27 | msgstr "lib-alpha-value"
28 |
--------------------------------------------------------------------------------
/test/compiler/test-externals/myapp/source/class/myapp/Application.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This is the main application class of "myapp"
3 | *
4 | * @asset(myapp/*)
5 | */
6 | qx.Class.define("myapp.Application", {
7 | extend: qx.application.Standalone,
8 |
9 | members: {
10 | main: function() {
11 | this.base(arguments);
12 |
13 | if (qx.core.Environment.get("qx.debug")) {
14 | qx.log.appender.Native;
15 | qx.log.appender.Console;
16 | }
17 |
18 | new mylib.MyClass();
19 | }
20 | }
21 | });
22 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/src/404.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default.dot
3 | ---
4 |
5 |
18 |
19 |
20 |
404
21 |
22 |
Page not found :(
23 |
The requested page could not be found.
24 |
25 |
--------------------------------------------------------------------------------
/.npm-upgrade.json:
--------------------------------------------------------------------------------
1 | {
2 | "ignore": {
3 | "download": {
4 | "versions": "8.0.0",
5 | "reason": "needs node 10"
6 | },
7 | "gauge": {
8 | "versions": "3.0.0",
9 | "reason": "needs node 10"
10 | },
11 | "source-map": {
12 | "versions": "0.7.3",
13 | "reason": "is not working"
14 | },
15 | "replace-in-file": {
16 | "versions": "6.1.0",
17 | "reason": "needs node 10"
18 | },
19 | "async": {
20 | "versions": "3.2.0",
21 | "reason": "not working"
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/class/custom/Button.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This is an example of a contrib library, providing a very special button
13 | * @asset(${namespace_as_path}/*)
14 | */
15 | qx.Class.define("${namespace}.Button",
16 | {
17 | extend : qx.ui.form.Button,
18 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/loadsass.js:
--------------------------------------------------------------------------------
1 | global.require = require;
2 | global.loadSass = new Function (
3 | `
4 | // trick out sass
5 | process.versions.electron = "0.0.0";
6 | let remove = false;
7 | if (typeof window === "undefined")
8 | return;
9 | if (!window.document.currentScript) {
10 | window.document.currentScript = {src: ""};
11 | remove = true;
12 | }
13 | const sass = global.require("sass");
14 | delete process.versions.electron;
15 | if (remove) {
16 | delete window.document.currentScript;
17 | }
18 | return sass;
19 | `);
20 |
21 |
22 |
--------------------------------------------------------------------------------
/test/compiler/test-translation/tranapp/source/class/tranapp/Application.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("tranapp.Application", {
2 | extend: qx.application.Standalone,
3 |
4 | members: {
5 | main: function() {
6 | this.base(arguments);
7 |
8 | if (qx.core.Environment.get("qx.debug")) {
9 | qx.log.appender.Native;
10 | qx.log.appender.Console;
11 | }
12 |
13 | new mylib.LibClass().doSomething();
14 |
15 | console.log(this.tr("App Alpha"));
16 | console.log(this.tr("App Beta"));
17 | console.log(this.tr("App Charlie"));
18 | }
19 | }
20 | });
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/class/testMixin/theme/Theme.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2020
4 |
5 | License: MIT license
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("testMixin.theme.Theme",
12 | {
13 | meta :
14 | {
15 | color : testMixin.theme.Color,
16 | decoration : testMixin.theme.Decoration,
17 | font : testMixin.theme.Font,
18 | icon : qx.theme.icon.Tango,
19 | appearance : testMixin.theme.Appearance
20 | }
21 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/build/qooxdoo.css:
--------------------------------------------------------------------------------
1 | #navbarNav.collapsing, #navbarNav.collapse.show {
2 | background-color: rgba(0, 0, 0, 0.9);
3 | padding-left: 32px;
4 | padding-top: 16px;
5 | padding-bottom: 16px; }
6 |
7 | .carousel-indicators li {
8 | background-color: #EEE; }
9 |
10 | .carousel-indicators li.active {
11 | background-color: #AAA; }
12 |
13 | #applications li {
14 | margin-bottom: 0.25em; }
15 | #applications li p {
16 | font-style: italic;
17 | margin-bottom: 0; }
18 | #applications li p.tools {
19 | display: none;
20 | margin: 0 0 0 40px;
21 | font-size: 11px; }
22 |
--------------------------------------------------------------------------------
/test/compiler/testapp/readme.txt:
--------------------------------------------------------------------------------
1 | Desktop Skeleton - A qooxdoo Application Template
2 | ==================================================
3 |
4 | This is a qooxdoo application skeleton which is used as a template. The
5 | 'create-application.py' script (usually under tool/bin/create-application.py)
6 | will use this and expand it into a self-contained qooxdoo application which
7 | can then be further extended. Please refer to the script and other documentation
8 | for further information.
9 |
10 | short:: is a standard qooxdoo GUI application
11 | copy_file:: tool/data/generator/needs_generation.js source/script/custom.js
12 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/sass/qooxdoo.scss:
--------------------------------------------------------------------------------
1 |
2 | #navbarNav.collapsing, #navbarNav.collapse.show {
3 | background-color: rgba(0,0,0,.9);
4 | padding-left: 32px;
5 | padding-top: 16px;
6 | padding-bottom: 16px;
7 | }
8 |
9 | .carousel-indicators li {
10 | background-color: #EEE;
11 | }
12 |
13 | .carousel-indicators li.active {
14 | background-color: #AAA;
15 | }
16 |
17 | #applications li {
18 | margin-bottom: 0.25em;
19 |
20 | p {
21 | font-style: italic;
22 | margin-bottom: 0;
23 | }
24 |
25 | p.tools {
26 | display: none;
27 | margin: 0 0 0 40px;
28 | font-size: 11px;
29 | }
30 | }
31 |
32 |
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/class/testMixin/Mixin.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2020
4 |
5 | License: MIT license
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | qx.Mixin.define("testMixin.Mixin",
12 | {
13 | events: {
14 | /**
15 | * mixin event
16 | */
17 | mixinEvent: "qx.event.type.Event"
18 | },
19 |
20 | properties :
21 | {
22 | /**
23 | * mixin poperty
24 | */
25 | mixinProperty : {
26 | }
27 | },
28 |
29 | members :
30 | {
31 | }
32 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/compile.tmpl.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source",
7 | "bundle": {
8 | "include": "qx.*"
9 | }
10 | },
11 | {
12 | "type": "build",
13 | "outputPath": "compiled/build"
14 | }
15 | ],
16 | "defaultTarget": "source",
17 | "locales": ${locales},
18 |
19 | "applications": [
20 | {
21 | "class": "${namespace}.demo.Application",
22 | "theme": "${namespace}.theme.Theme",
23 | "name": "${namespace}"
24 | }
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/test/compiler/test-translation/tranapp/compile.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source"
7 | },
8 | {
9 | "type": "build",
10 | "outputPath": "compiled/build"
11 | }
12 | ],
13 | "defaultTarget": "source",
14 | "locales": ["en"],
15 | "environment": {
16 | "qx.icontheme": "Tango"
17 | },
18 | "libraries": [
19 | ".",
20 | "../mylib"
21 | ],
22 | "applications": [
23 | {
24 | "class": "tranapp.Application",
25 | "theme": "qx.theme.Simple",
26 | "name": "tranapp"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Theme.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("${namespace}.theme.Theme",
12 | {
13 | meta :
14 | {
15 | color : ${namespace}.theme.Color,
16 | decoration : ${namespace}.theme.Decoration,
17 | font : ${namespace}.theme.Font,
18 | icon : qx.theme.icon.${icon_theme},
19 | appearance : ${namespace}.theme.Appearance
20 | }
21 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/class/custom/theme/Theme.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | qx.Theme.define("${namespace}.theme.Theme",
12 | {
13 | meta :
14 | {
15 | color : ${namespace}.theme.Color,
16 | decoration : ${namespace}.theme.Decoration,
17 | font : ${namespace}.theme.Font,
18 | icon : qx.theme.icon.${icon_theme},
19 | appearance : ${namespace}.theme.Appearance
20 | }
21 | });
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/qx-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "libraries": [
3 | {
4 | "library_name": "Qooxdoo API Viewer",
5 | "library_version": "1.0.11",
6 | "path": "qx_packages/qooxdoo_qxl_apiviewer_v1_0_11",
7 | "uri": "qooxdoo/qxl.apiviewer",
8 | "repo_name": "qooxdoo/qxl.apiviewer",
9 | "repo_tag": "v1.0.11"
10 | },
11 | {
12 | "library_name": "versionlabel",
13 | "library_version": "1.0.1",
14 | "path": "qx_packages/qooxdoo_qxl_versionlabel_v1_0_1",
15 | "uri": "qooxdoo/qxl.versionlabel",
16 | "repo_name": "qooxdoo/qxl.versionlabel",
17 | "repo_tag": "v1.0.1"
18 | }
19 | ],
20 | "version": "2.1.0"
21 | }
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/src/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default.dot
3 | title: About
4 | navigation: true
5 | ---
6 |
7 | This is the built in web server for Qooxdoo, serving your application.
8 |
9 | You can find Qooxdoo on the web at http://www.qooxdoo.org and on GitHub at http://github.com/qooxdoo/qooxdoo.
10 |
11 | If you have questions, please ask them at [StackOverflow](https://stackoverflow.com/questions/tagged/qooxdoo) and make sure you use the "qooxdoo" tag when you post.
12 |
13 | If you want to discuss anything, please contact us using Gitter in the [qooxdoo/qooxdoo](http://gitter.im/qooxdoo/qooxdoo) group, either [via a web browser](http://gitter.im/qooxdoo/qooxdoo) or via the Gitter app.
14 |
15 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Issue309.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.Issue309", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | unresolvedDefaultArg: function(caption="Event Recorder") {
6 | const objectId = caption.replace(/ /g, "").toLocaleLowerCase();
7 | console.log(objectId);
8 | },
9 |
10 | unresolvedSpreadOperator(dest, ...srcs) {
11 | srcs.forEach(function(src) {
12 | if (src) {
13 | src.forEach(function(elem) {
14 | if (!qx.lang.Array.contains(dest, src)) {
15 | dest.push(elem);
16 | }
17 | });
18 | }
19 | });
20 | return dest;
21 | }
22 |
23 | }
24 | });
25 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue692/source/class/issue692/Application.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2019 undefined
4 |
5 | License: MIT license
6 |
7 | Authors: undefined
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * @asset(issue692/*)
13 | * @require(qx.core.BaseInit)
14 | */
15 | qx.Class.define("issue692.Application", {
16 | extend: qx.application.Basic,
17 | members: {
18 | main: function() {
19 | this.base(arguments);
20 |
21 | qx.core.Assert.assertTrue(!Object.values.toString().match(/for\s*\(var\s+/));
22 | console.log("OK");
23 | }
24 | }
25 | });
26 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/compile.tmpl.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source",
7 | "bundle": {
8 | "include": "qx.*"
9 | }
10 | },
11 | {
12 | "type": "build",
13 | "outputPath": "compiled/build"
14 | }
15 | ],
16 | "defaultTarget": "source",
17 | "locales": ${locales},
18 | "environment": {
19 | "qx.icontheme": "${icon_theme}"
20 | },
21 | "applications": [
22 | {
23 | "class": "${namespace}.Application",
24 | "name": "${namespace}",
25 | "bootPath": "source/boot"
26 | }
27 | ]
28 | }
29 |
--------------------------------------------------------------------------------
/test/compiler/test-externals/myapp/compile.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source"
7 | },
8 | {
9 | "type": "build",
10 | "outputPath": "compiled/build",
11 | "minify": "beautify"
12 | }
13 | ],
14 | "defaultTarget": "source",
15 | "locales": ["en"],
16 | "environment": {
17 | "qx.icontheme": "Tango"
18 | },
19 | "applications": [
20 | {
21 | "class": "myapp.Application",
22 | "theme": "qx.theme.Simple",
23 | "name": "myapp",
24 | "bootPath": "source/boot"
25 | }
26 | ],
27 | "libraries": [
28 | ".", "../mylib"
29 | ]
30 | }
31 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/testLegalSCSS/source/resource/testLegalSCSS/scss/test_scss.scss:
--------------------------------------------------------------------------------
1 | @import "common/all";
2 | @import "styles";
3 | @import "ui/all";
4 |
5 | /* table */
6 | .grid {
7 | width: 100%;
8 | table-layout: fixed;
9 | background-color:#FFFFFF;
10 | color:#000000;
11 | font-size:.8em;
12 | overflow:hidden;
13 | border-collapse:collapse;
14 | empty-cells: show;
15 | }
16 |
17 | /* tr */
18 | grid-row {
19 | }
20 |
21 | /* td */
22 | .grid-cell {
23 | border-bottom-width: thin;
24 | border-bottom-style:solid;
25 | border-bottom-color:lightgray;
26 | }
27 |
28 | /* grid, div header */
29 | .cell-header {
30 | font-weight:bold;
31 | }
32 |
33 | /* grid, div */
34 | .cell {
35 | }
36 |
37 |
38 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/testLegalSCSS/source/theme/testLegalSCSS/scss/test_theme_scss.scss:
--------------------------------------------------------------------------------
1 | @import "common/all";
2 | @import "styles";
3 | @import "ui/all";
4 |
5 | /* table */
6 | .grid {
7 | width: 100%;
8 | table-layout: fixed;
9 | background-color:#FFFFFF;
10 | color:#000000;
11 | font-size:.8em;
12 | overflow:hidden;
13 | border-collapse:collapse;
14 | empty-cells: show;
15 | }
16 |
17 | /* tr */
18 | grid-row {
19 | }
20 |
21 | /* td */
22 | .grid-cell {
23 | border-bottom-width: thin;
24 | border-bottom-style:solid;
25 | border-bottom-color:lightgray;
26 | }
27 |
28 | /* grid, div header */
29 | .cell-header {
30 | font-weight:bold;
31 | }
32 |
33 | /* grid, div */
34 | .cell {
35 | }
36 |
37 |
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/Manifest-1-0-0.json",
3 | "info": {
4 | "name": "testMixin",
5 | "summary": "",
6 | "description": "",
7 | "homepage": "",
8 | "license": "MIT license",
9 | "authors": [
10 | {
11 | "name": "",
12 | "email": ""
13 | }
14 | ],
15 | "version": "1.0.0"
16 | },
17 | "provides": {
18 | "namespace": "testMixin",
19 | "encoding": "utf-8",
20 | "class": "source/class",
21 | "resource": "source/resource",
22 | "translation": "source/translation"
23 | },
24 | "requires": {
25 | "@qooxdoo/framework": "^6.0.0-beta",
26 | "@qooxdoo/compiler": "^1.0.0-beta"
27 | }
28 | }
--------------------------------------------------------------------------------
/test/compiler/test-externals/mylib/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/Manifest-1-0-0.json",
3 | "info": {
4 | "name": "mylib",
5 | "summary": "undefined",
6 | "description": "undefined",
7 | "homepage": "undefined",
8 | "license": "MIT license",
9 | "authors": [],
10 | "version": "1.0.0"
11 | },
12 | "provides": {
13 | "namespace": "mylib",
14 | "encoding": "utf-8",
15 | "class": "source/class",
16 | "resource": "source/resource",
17 | "translation": "source/translation"
18 | },
19 | "externalResources": {
20 | "script": [ "mylib/c.js", "http://cdn.example.com/my/d.js" ]
21 | },
22 | "requires": {
23 | "@qooxdoo/framework": "^6.0.0-beta",
24 | "@qooxdoo/compiler": "^1.0.0-beta"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/test/TestInnerClasses.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.test.TestInnerClasses", {
2 | extend: qx.dev.unit.TestCase,
3 |
4 | members: {
5 | funcOne: function() {
6 | return this.base(arguments);
7 | },
8 | funcTwo() {
9 | return this.base(arguments);
10 | },
11 | testInnerClasses() {
12 | var clazz = qx.Class.define("demo.MyClass", {
13 | extend: qx.core.Object,
14 | members: {
15 | toHashCode: function() {
16 | return this.base(arguments) + "";
17 | }
18 | }
19 | });
20 |
21 | var obj = new clazz();
22 | obj.toHashCode();
23 | qx.core.Assert.assertTrue(true);
24 | }
25 | }
26 | });
27 |
--------------------------------------------------------------------------------
/bootstrap-compiler:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | const utils = require("./bin/tools/utils");
4 | const fs = require("fs");
5 |
6 | (async function() {
7 | let upgradeFramework = false;
8 | let version = null;
9 | for (let i = 2; i < process.argv.length; i++) {
10 | let arg = process.argv[i];
11 | if (arg == "--upgrade-framework") {
12 | upgradeFramework = true;
13 | } else if (arg.startsWith("--")) {
14 | console.error("Invalid argument " + arg);
15 | } else {
16 | version = arg;
17 | }
18 | }
19 |
20 | if (!version) {
21 | version = require("./package.json").version;
22 | }
23 |
24 | await utils.bootstrapCompiler(version, upgradeFramework);
25 | process.exit(0);
26 | })();
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/test/compiler/test-externals/myapp/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/Manifest-1-0-0.json",
3 | "info" :
4 | {
5 | "name" : "myapp",
6 |
7 | "summary" : "undefined",
8 | "description" : "undefined",
9 |
10 | "homepage" : "undefined",
11 |
12 | "license" : "MIT license",
13 | "authors" : [],
14 |
15 | "version" : "1.0.0"
16 | },
17 |
18 | "provides" :
19 | {
20 | "namespace" : "myapp",
21 | "encoding" : "utf-8",
22 | "class" : "source/class",
23 | "resource" : "source/resource",
24 | "translation" : "source/translation"
25 | },
26 |
27 | "requires": {
28 | "@qooxdoo/framework": "^6.0.0-beta",
29 | "@qooxdoo/compiler" : "^1.0.0-beta"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/test/compiler/test-translation/mylib/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/Manifest-1-0-0.json",
3 | "info" :
4 | {
5 | "name" : "mylib",
6 |
7 | "summary" : "undefined",
8 | "description" : "undefined",
9 |
10 | "homepage" : "undefined",
11 |
12 | "license" : "MIT license",
13 | "authors" : [],
14 |
15 | "version" : "1.0.0"
16 | },
17 |
18 | "provides" :
19 | {
20 | "namespace" : "mylib",
21 | "encoding" : "utf-8",
22 | "class" : "source/class",
23 | "resource" : "source/resource",
24 | "translation" : "source/translation"
25 | },
26 |
27 | "requires": {
28 | "@qooxdoo/framework": "^6.0.0-beta",
29 | "@qooxdoo/compiler" : "^1.0.0-beta"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/test/compiler/test-translation/tranapp/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/Manifest-1-0-0.json",
3 | "info" :
4 | {
5 | "name" : "tranapp",
6 |
7 | "summary" : "undefined",
8 | "description" : "undefined",
9 |
10 | "homepage" : "undefined",
11 |
12 | "license" : "MIT license",
13 | "authors" : [],
14 |
15 | "version" : "1.0.0"
16 | },
17 |
18 | "provides" :
19 | {
20 | "namespace" : "tranapp",
21 | "encoding" : "utf-8",
22 | "class" : "source/class",
23 | "resource" : "source/resource",
24 | "translation" : "source/translation"
25 | },
26 |
27 | "requires": {
28 | "@qooxdoo/framework": "^6.0.0-beta",
29 | "@qooxdoo/compiler" : "^1.0.0-beta"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue692/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/Manifest-1-0-0.json",
3 | "info": {
4 | "name": "issue692",
5 | "summary": "Issue 692 reproduction & unit test",
6 | "description": "Issue 692 reproduction & unit test",
7 | "homepage": "undefined",
8 | "license": "MIT license",
9 | "authors": [],
10 | "version": "1.0.0"
11 | },
12 | "provides": {
13 | "namespace": "issue692",
14 | "encoding": "utf-8",
15 | "class": "source/class",
16 | "resource": "source/resource",
17 | "translation": "source/translation"
18 | },
19 | "requires": {
20 | "@qooxdoo/framework": "^6.0.0-beta",
21 | "@qooxdoo/compiler": "^1.0.0-beta"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue715/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/Manifest-1-0-0.json",
3 | "info": {
4 | "name": "issue715",
5 | "summary": "Issue 715 reproduction & unit test",
6 | "description": "Issue 715 reproduction & unit test",
7 | "homepage": "undefined",
8 | "license": "MIT license",
9 | "authors": [],
10 | "version": "1.0.0"
11 | },
12 | "provides": {
13 | "namespace": "issue715",
14 | "encoding": "utf-8",
15 | "class": "source/class",
16 | "resource": "source/resource",
17 | "translation": "source/translation"
18 | },
19 | "requires": {
20 | "@qooxdoo/framework": "^6.0.0-beta",
21 | "@qooxdoo/compiler": "^1.0.0-beta"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/compile.tmpl.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source",
7 | "bundle": {
8 | "include": "qx.*"
9 | }
10 | },
11 | {
12 | "type": "build",
13 | "outputPath": "compiled/build"
14 | }
15 | ],
16 | "defaultTarget": "source",
17 | "locales": ${locales},
18 | "environment": {
19 | "qx.icontheme": "${icon_theme}"
20 | },
21 | "applications": [
22 | {
23 | "class": "${namespace}.Application",
24 | "theme": "${namespace}.theme.Theme",
25 | "name": "${namespace}",
26 | "bootPath": "source/boot"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/class/interface.tmpl.js:
--------------------------------------------------------------------------------
1 | ${header}
2 |
3 | /**
4 | * This is a qooxdoo interface
5 | */
6 | qx.Interface.define("${classname}",
7 | {
8 | //extend : my.extended.interface,
9 |
10 | /**
11 | * Events that must be declared by this interface
12 | */
13 | events :
14 | {
15 | /** Fired when something happens */
16 | "changeSituation" : "qx.event.type.Data"
17 | },
18 |
19 | /**
20 | * Methonds that must be declared by this interface
21 | */
22 | members :
23 | {
24 | /**
25 | * Interface method
26 | * @param foo {String} The foo parameter
27 | * @param foo {Number} The bar parameter
28 | * @return {String} The result of the method.
29 | */
30 | myMethod : function(foo, bar){}
31 | }
32 | });
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue440/compile.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source",
7 | "bundle": {
8 | "include": "qx.*"
9 | }
10 | },
11 | {
12 | "type": "build",
13 | "outputPath": "compiled/build"
14 | }
15 | ],
16 | "defaultTarget": "source",
17 | "locales": ["en"],
18 | "environment": {
19 | "qx.icontheme": "Tango"
20 | },
21 | "applications": [
22 | {
23 | "class": "issue440.Application",
24 | "theme": "qx.theme.Indigo",
25 | "name": "issue440",
26 | "bootPath": "source/boot"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/test/compiler/testlib/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "info": {
3 | "name": "testlib",
4 | "summary": "Custom Library",
5 | "description": "This is part of unit tests for the compiler",
6 | "homepage": "http://some.homepage.url/",
7 | "license": "SomeLicense",
8 | "authors": [],
9 | "version": "1.0.0"
10 | },
11 | "provides": {
12 | "namespace": "testlib",
13 | "encoding": "utf-8",
14 | "class": "source/class",
15 | "resource": "source/resource",
16 | "translation": "source/translation"
17 | },
18 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/Manifest-1-0-0.json",
19 | "requires": {
20 | "@qooxdoo/compiler": "^1.0.0-beta",
21 | "@qooxdoo/framework": "^6.0.0-alpha"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/test/unittest/test-compiler/classIssue726.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("classIssue726",
2 | {
3 | members:
4 | {
5 | test_1: function () {
6 | let test = "class:1:2";
7 | let [t_0, t_1] = test.split(":");
8 | console.log(t_0, t_1);
9 | let [testClass, ...testName] = test.split(":");
10 | console.log(testClass, testName);
11 | },
12 | test_2: function (test_2_param1 = {}) {
13 | console.log(test_2_param1);
14 | },
15 | test_3: function ({test_3_param1, test_3_param2} = {}) {
16 | console.log(test_3_param1, test_3_param2);
17 | },
18 | test_4: function ({test_4_param1 = 1, test_4_param2 = 2} = {}) {
19 | console.log(test_4_param1, test_4_param2);
20 | }
21 | }
22 | });
23 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/testdynamic/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "info": {
3 | "name": "testlib",
4 | "summary": "Custom Library",
5 | "description": "This is part of unit tests for the compiler",
6 | "homepage": "http://some.homepage.url/",
7 | "license": "SomeLicense",
8 | "authors": [],
9 | "version": "1.0.0"
10 | },
11 | "provides": {
12 | "namespace": "testlib",
13 | "encoding": "utf-8",
14 | "class": "source/class",
15 | "resource": "source/resource",
16 | "translation": "source/translation"
17 | },
18 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/Manifest-1-0-0.json",
19 | "requires": {
20 | "@qooxdoo/compiler": "^1.0.0-beta",
21 | "@qooxdoo/framework": "^6.0.0-alpha"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/Manifest.tmpl.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/Manifest-1-0-0.json",
3 | "info" :
4 | {
5 | "name" : "${name}",
6 |
7 | "summary" : "${summary}",
8 | "description" : "${description}",
9 |
10 | "homepage" : "${homepage}",
11 |
12 | "license" : "${license}",
13 | "authors" : ${author_map},
14 |
15 | "version" : "${version}"
16 | },
17 |
18 | "provides" :
19 | {
20 | "namespace" : "${namespace}",
21 | "encoding" : "utf-8",
22 | "class" : "source/class",
23 | "resource" : "source/resource",
24 | "translation" : "source/translation"
25 | },
26 |
27 | "requires": {
28 | "@qooxdoo/framework": "${qooxdoo_range}",
29 | "@qooxdoo/compiler" : "${compiler_range}"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/Manifest.tmpl.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/Manifest-1-0-0.json",
3 | "info" :
4 | {
5 | "name" : "${name}",
6 |
7 | "summary" : "${summary}",
8 | "description" : "${description}",
9 |
10 | "homepage" : "${homepage}",
11 |
12 | "license" : "${license}",
13 | "authors" : ${author_map},
14 |
15 | "version" : "${version}"
16 | },
17 |
18 | "provides" :
19 | {
20 | "namespace" : "${namespace}",
21 | "encoding" : "utf-8",
22 | "class" : "source/class",
23 | "resource" : "source/resource",
24 | "translation" : "source/translation"
25 | },
26 |
27 | "requires": {
28 | "@qooxdoo/framework": "${qooxdoo_range}",
29 | "@qooxdoo/compiler" : "${compiler_range}"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/server/Manifest.tmpl.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/Manifest-1-0-0.json",
3 | "info" :
4 | {
5 | "name" : "${name}",
6 |
7 | "summary" : "${summary}",
8 | "description" : "${description}",
9 |
10 | "homepage" : "${homepage}",
11 |
12 | "license" : "${license}",
13 | "authors" : ${author_map},
14 |
15 | "version" : "${version}"
16 | },
17 |
18 | "provides" :
19 | {
20 | "namespace" : "${namespace}",
21 | "encoding" : "utf-8",
22 | "class" : "source/class",
23 | "resource" : "source/resource",
24 | "translation" : "source/translation"
25 | },
26 |
27 | "requires": {
28 | "@qooxdoo/framework": "${qooxdoo_range}",
29 | "@qooxdoo/compiler" : "${compiler_range}"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue440/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/Manifest-1-0-0.json",
3 | "info" :
4 | {
5 | "name" : "issue440",
6 |
7 | "summary" : "undefined",
8 | "description" : "undefined",
9 |
10 | "homepage" : "undefined",
11 |
12 | "license" : "MIT license",
13 | "authors" : [],
14 |
15 | "version" : "1.0.0"
16 | },
17 |
18 | "provides" :
19 | {
20 | "namespace" : "issue440",
21 | "encoding" : "utf-8",
22 | "class" : "source/class",
23 | "resource" : "source/resource",
24 | "translation" : "source/translation"
25 | },
26 |
27 | "requires": {
28 | "@qooxdoo/framework": "^6.0.0-beta",
29 | "@qooxdoo/compiler" : "^1.0.0-beta"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/Manifest-1-0-0.json",
3 | "info" :
4 | {
5 | "name" : "issue553",
6 |
7 | "summary" : "undefined",
8 | "description" : "undefined",
9 |
10 | "homepage" : "undefined",
11 |
12 | "license" : "MIT license",
13 | "authors" : [],
14 |
15 | "version" : "1.0.0"
16 | },
17 |
18 | "provides" :
19 | {
20 | "namespace" : "issue553",
21 | "encoding" : "utf-8",
22 | "class" : "source/class",
23 | "resource" : "source/resource",
24 | "translation" : "source/translation"
25 | },
26 |
27 | "requires": {
28 | "@qooxdoo/framework": "^6.0.0-beta",
29 | "@qooxdoo/compiler" : "^1.0.0-beta"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553_node/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/Manifest-1-0-0.json",
3 | "info" :
4 | {
5 | "name" : "issue553",
6 |
7 | "summary" : "undefined",
8 | "description" : "undefined",
9 |
10 | "homepage" : "undefined",
11 |
12 | "license" : "MIT license",
13 | "authors" : [],
14 |
15 | "version" : "1.0.0"
16 | },
17 |
18 | "provides" :
19 | {
20 | "namespace" : "issue553",
21 | "encoding" : "utf-8",
22 | "class" : "source/class",
23 | "resource" : "source/resource",
24 | "translation" : "source/translation"
25 | },
26 |
27 | "requires": {
28 | "@qooxdoo/framework": "^6.0.0-beta",
29 | "@qooxdoo/compiler" : "^1.0.0-beta"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/partials/icon-twitter.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/testLegalSCSS/compile.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source",
7 | "bundle": {
8 | "include": "qx.*"
9 | }
10 | },
11 | {
12 | "type": "build",
13 | "outputPath": "compiled/build"
14 | }
15 | ],
16 | "defaultTarget": "source",
17 | "locales": ["en"],
18 | "environment": {
19 | "qx.icontheme": "Tango"
20 | },
21 | "applications": [
22 | {
23 | "class": "testLegalSCSS.Application",
24 | "theme": "qx.theme.Indigo",
25 | "name": "testLegalSCSS"
26 | }
27 | ],
28 | "sass": {
29 | "compiler": "legacy",
30 | "copyOriginal": true
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Issue494.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.Issue494PartThree", {
2 | extend: qx.core.Object,
3 |
4 | members: {
5 | myFunction(variable) {
6 | }
7 | }
8 | });
9 |
10 | /**
11 | * @ignore(functionName) // Declare in file ./xx/xx/xx.js
12 | * @ignore(className) // external package
13 | */
14 | qx.Class.define("testapp.Issue494", {
15 | extend: qx.core.Object,
16 |
17 | members: {
18 | myFunction(variable) {
19 | functionName(variable);
20 | new className(variable);
21 | className.fct(variable);
22 |
23 | new testapp.Issue494PartTwo();
24 | new testapp.Issue494PartThree();
25 | }
26 | }
27 | });
28 |
29 | qx.Class.define("testapp.Issue494PartTwo", {
30 | extend: qx.core.Object,
31 |
32 | members: {
33 | myFunction(variable) {
34 | }
35 | }
36 | });
37 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553/compile.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source",
7 | "bundle": {
8 | "include": "qx.*"
9 | }
10 | },
11 | {
12 | "type": "build",
13 | "outputPath": "compiled/build"
14 | }
15 | ],
16 | "defaultTarget": "source",
17 | "locales": ["en"],
18 | "environment": {
19 | "qx.icontheme": "Tango"
20 | },
21 | "applications": [
22 | {
23 | "class": "issue553.ApplicationOne",
24 | "theme": "qx.theme.Indigo",
25 | "name": "issue553one"
26 | },
27 | {
28 | "class": "issue553.ApplicationTwo",
29 | "theme": "qx.theme.Indigo",
30 | "name": "issue553two"
31 | }
32 | ]
33 | }
34 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue692/compile.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source",
7 | "application-types": [ "node" ],
8 | "babelOptions" : {
9 | "targets":"node >= 11"
10 | }
11 | },
12 | {
13 | "type": "build",
14 | "outputPath": "compiled/build",
15 | "application-types": [ "node" ],
16 | "babelOptions" : {
17 | "targets":"node >= 11"
18 | }
19 | }
20 | ],
21 | "defaultTarget": "source",
22 | "locales": ["en"],
23 | "environment": {
24 | "qx.icontheme": "Tango"
25 | },
26 | "applications": [
27 | {
28 | "class": "issue692.Application",
29 | "name": "issue692",
30 | "type": "node"
31 | }
32 | ]
33 | }
34 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue715/compile.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source",
7 | "application-types": [ "node" ],
8 | "babelOptions" : {
9 | "targets":"node >= 11"
10 | }
11 | },
12 | {
13 | "type": "build",
14 | "outputPath": "compiled/build",
15 | "application-types": [ "node" ],
16 | "babelOptions" : {
17 | "targets":"node >= 11"
18 | }
19 | }
20 | ],
21 | "defaultTarget": "source",
22 | "locales": ["en"],
23 | "environment": {
24 | "qx.icontheme": "Tango"
25 | },
26 | "applications": [
27 | {
28 | "class": "issue715.Application",
29 | "name": "issue715",
30 | "type": "node"
31 | }
32 | ]
33 | }
34 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/bin/download-assets:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
4 | ASSET_DIR=$(dirname $DIR)/website/src/assets
5 |
6 | # versions
7 | BOOTSTRAP_VERSION=4.0.0-beta.3
8 | FONTAWESOME_VERSION=v5.0.2
9 | JQUERY_VERSION=3.2.1
10 |
11 | # download
12 | FILES=(
13 | "bootstrap.min.css https://maxcdn.bootstrapcdn.com/bootstrap/$BOOTSTRAP_VERSION/css/bootstrap.min.css"
14 | "bootstrap.min.css.map https://maxcdn.bootstrapcdn.com/bootstrap/$BOOTSTRAP_VERSION/css/bootstrap.min.css.map"
15 | "abel.css https://fonts.googleapis.com/css?family=Abel"
16 | "buttons.js https://buttons.github.io/buttons.js"
17 | "fontawesome-all.js https://use.fontawesome.com/releases/$FONTAWESOME_VERSION/js/all.js"
18 | "jquery.js https://code.jquery.com/jquery-$JQUERY_VERSION.min.js"
19 | )
20 |
21 | for CMD in "${FILES[@]}"; do
22 | wget -nv -O $ASSET_DIR/$CMD
23 | done
24 |
--------------------------------------------------------------------------------
/qx-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "libraries": [
3 | {
4 | "library_name": "Qooxdoo API Viewer",
5 | "library_version": "1.0.15",
6 | "path": "qx_packages/qooxdoo_qxl_apiviewer_v1_0_15",
7 | "uri": "qooxdoo/qxl.apiviewer",
8 | "repo_name": "qooxdoo/qxl.apiviewer",
9 | "repo_tag": "v1.0.15"
10 | },
11 | {
12 | "library_name": "versionlabel",
13 | "library_version": "1.0.2",
14 | "path": "qx_packages/qooxdoo_qxl_versionlabel_v1_0_2",
15 | "uri": "qooxdoo/qxl.versionlabel",
16 | "repo_name": "qooxdoo/qxl.versionlabel",
17 | "repo_tag": "v1.0.2"
18 | },
19 | {
20 | "library_name": "qxl.testnode",
21 | "library_version": "1.0.8",
22 | "path": "qx_packages/qooxdoo_qxl_testnode_v1_0_8",
23 | "uri": "qooxdoo/qxl.testnode",
24 | "repo_name": "qooxdoo/qxl.testnode",
25 | "repo_tag": "v1.0.8"
26 | }
27 | ],
28 | "version": "2.1.0"
29 | }
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/server/compile.tmpl.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source",
7 | "bundle": {
8 | "include": "qx.*"
9 | }
10 | },
11 | {
12 | "type": "build",
13 | "outputPath": "compiled/build"
14 | }
15 | ],
16 | "defaultTarget": "source",
17 | "locales": ${locales},
18 |
19 | "applications": [
20 | {
21 | "class": "${namespace}.Application",
22 | "theme": "",
23 | "name": "${namespace}",
24 | "type" : "node",
25 | "include" : [
26 | "qx.core.BaseInit"
27 | ],
28 | "exclude" : [
29 | "qx.bom.Selector",
30 | "qx.bom.client.Html",
31 | "qx.event.handler.Pointer",
32 | "qx.event.handler.Gesture",
33 | "qx.event.handler.PointerCore"
34 | ]
35 | }
36 | ]
37 | }
38 |
--------------------------------------------------------------------------------
/source/class/qx/tool/cli/LibraryApplication.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | qooxdoo - the new era of web development
4 |
5 | http://qooxdoo.org
6 |
7 | Copyright:
8 | 2020 Henner Kollmann
9 |
10 | License:
11 | MIT: https://opensource.org/licenses/MIT
12 | See the LICENSE file in the project's top-level directory for details.
13 |
14 | Authors:
15 | * Henner Kollmann (Henner.Kollmann@gmx.de, @hkollmann)
16 |
17 | ************************************************************************ */
18 |
19 | /**
20 | * This is the main application class of the compiler; it does nothing
21 | * during startup so that it can be used as a library
22 | *
23 | * @asset(qx/tool/*)
24 | * @use qx.tool.cli.Cli
25 | */
26 | qx.Class.define("qx.tool.cli.LibraryApplication", {
27 | extend: qx.application.Basic,
28 | members: {
29 | main() {
30 | // Nothing to do
31 | }
32 | }
33 | });
34 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/partials/icon-github.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/source/class/qx/tool/config/Compile.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | qooxdoo - the new era of web development
4 |
5 | http://qooxdoo.org
6 |
7 | Copyright:
8 | 2019 The qooxdoo developers
9 |
10 | License:
11 | MIT: https://opensource.org/licenses/MIT
12 | See the LICENSE file in the project's top-level directory for details.
13 |
14 | Authors:
15 | * Christian Boulanger (info@bibliograph.org, @cboulanger)
16 |
17 | ************************************************************************ */
18 |
19 | /**
20 | * A model for the compile.json file
21 | */
22 | qx.Class.define("qx.tool.config.Compile", {
23 | extend: qx.tool.config.Abstract,
24 | type: "singleton",
25 | statics: {
26 | config: {
27 | fileName: "compile.json",
28 | version: "^1.0.0"
29 | }
30 | },
31 | construct: function() {
32 | this.base(arguments, this.self(arguments).config);
33 | }
34 | });
35 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/Manifest.tmpl.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/Manifest-1-0-0.json",
3 | "info" :
4 | {
5 | "name" : "${name}",
6 |
7 | "summary" : "${summary}",
8 | "description" : "${description}",
9 |
10 | "homepage" : "${homepage}",
11 |
12 | "license" : "${license}",
13 | "authors" : ${author_map},
14 |
15 | "version" : "${version}"
16 | },
17 |
18 | "provides" :
19 | {
20 | "namespace" : "${namespace}",
21 | "encoding" : "utf-8",
22 | "class" : "source/class",
23 | "resource" : "source/resource",
24 | "translation" : "source/translation"
25 | },
26 | "externalResources": {
27 | "script": [
28 | ],
29 | "css": [
30 | "${namespace}/css/custom.css"
31 | ]
32 | },
33 |
34 | "requires": {
35 | "@qooxdoo/framework": "${qooxdoo_range}",
36 | "@qooxdoo/compiler" : "${compiler_range}"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/source/class/qx/tool/config/Manifest.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | qooxdoo - the new era of web development
4 |
5 | http://qooxdoo.org
6 |
7 | Copyright:
8 | 2019 The qooxdoo developers
9 |
10 | License:
11 | MIT: https://opensource.org/licenses/MIT
12 | See the LICENSE file in the project's top-level directory for details.
13 |
14 | Authors:
15 | * Christian Boulanger (info@bibliograph.org, @cboulanger)
16 |
17 | ************************************************************************ */
18 |
19 | /**
20 | * A model for the Manifest.json file
21 | */
22 | qx.Class.define("qx.tool.config.Manifest", {
23 | extend: qx.tool.config.Abstract,
24 | type: "singleton",
25 | statics: {
26 | config: {
27 | fileName: "Manifest.json",
28 | version: "1.0.0"
29 | }
30 | },
31 | construct: function() {
32 | this.base(arguments, this.self(arguments).config);
33 | }
34 | });
35 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Issue488.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 |
3 | qx.Class.define("testapp.Issue488", {
4 | extend: qx.core.Object,
5 |
6 | construct(options) {
7 | this.base(arguments);
8 |
9 | console.log(options.apiKey);
10 | console.log(dontKnow);
11 | [].slice.call(this, 1);
12 | },
13 |
14 | members: {
15 | api: function(method, path, options) {
16 | abc=1;
17 | return request(ro);
18 | },
19 |
20 | test() {
21 | fs.readFile("abc.txt");
22 | var a = 1;
23 | var b = 2;
24 | [ a, b, c ].forEach(a => console.log(a));
25 | }
26 | },
27 |
28 | statics: {
29 | findOrCreateSsoGroup(apos, type, data) {
30 | return testapp.Issue488.findSsoGroupById(apos, type, data.id)
31 | .then(group => {
32 | return testapp.Issue488.findGroup(apos, { title: data.title })
33 | .then(group => {
34 | });
35 | });
36 | }
37 | }
38 | });
39 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/Warnings1.js:
--------------------------------------------------------------------------------
1 | qx.Class.define("testapp.Warnings1", {
2 | extend: qx.core.Object,
3 |
4 | construct(options) {
5 | this.base(arguments);
6 |
7 | let proxyOpts = {
8 | proxyReqPathResolver(req) {
9 | console.log(`proxyReqPathResolver: ${req.originalUrl}`);
10 | return req.originalUrl;
11 | },
12 | proxyReqOptDecorator(proxyReqOpts, srcReq) {
13 | let cookies = srcReq.cookieJarStore && srcReq.cookieJarStore.getAllCookiesSync() || null;
14 | if (cookies) {
15 | cookies = cookies.map(cookie => cookie.toString());
16 | let arr = proxyReqOpts.headers["Set-Cookie"];
17 | if (!arr)
18 | arr = proxyReqOpts.headers["Set-Cookie"] = [];
19 | qx.lang.Array.append(arr, cookies);
20 | }
21 | console.log(`proxyReqOptDecorator: ${JSON.stringify(proxyReqOpts)}`);
22 | return proxyReqOpts;
23 | }
24 | };
25 | }
26 | });
27 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/partials/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | {{= it.title || it.site.title }}
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue715/source/class/issue715/Application.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @require(qx.core.BaseInit)
3 | */
4 | qx.Class.define("issue715.Application", {
5 | extend: qx.application.Basic,
6 | properties: {
7 | myProp: {
8 | init: null,
9 | nullable: true,
10 | apply: "__applyMyProp"
11 | }
12 | },
13 | members: {
14 | __privateOne: 1,
15 |
16 | main() {
17 | this.base(arguments);
18 |
19 | this["__privateOne"] = "one";
20 | this["__privateTwo"] = "two";
21 | this.__privateOne = "ONE";
22 | this.__privateTwo = "TWO";
23 | },
24 |
25 | __applyMyProp() {
26 | // Nothing
27 | }
28 | },
29 | statics: {
30 | __privateStaticOne: 1,
31 |
32 | test: function() {
33 | issue715.Application["__privateStaticOne"] = "one";
34 | issue715.Application["__privateStaticTwo"] = "two";
35 | issue715.Application.__privateStaticOne = "ONE";
36 | issue715.Application.__privateStaticTwo = "TWO";
37 | }
38 | }
39 | });
40 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/server/readme.tmpl.txt:
--------------------------------------------------------------------------------
1 | SERVER Skeleton - A qooxdoo Application Template
2 | ================================================
3 |
4 | This skeleton application was created by running the 'qx create'
5 | script. You usually will want to run
6 |
7 | qx compile
8 |
9 | in this directory first thing. For more information about how to use this
10 | skeleton, please refer to the 'skeleton' section in the manual.
11 |
12 | You can safely replace the entire contents of this file with your own
13 | documentation.
14 |
15 |
16 | Skeleton Usage
17 | ==============
18 |
19 | After running qx compile you can invoke the generated script like this:
20 |
21 | # Node.js
22 | $ node source/script/${name}.js
23 |
24 | or
25 |
26 | # Rhino
27 | $ cd source/script && java -cp /js.jar org.mozilla.javascript.tools.shell.Main ${name}.js
28 |
29 | This of course requires the presence of a Node or Rhino installation on your
30 | system. The build version of the application is analogously written to build/script.
31 |
32 |
33 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553_node/compile.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "application-types": [
7 | "node"
8 | ],
9 | "outputPath": "compiled/source",
10 | "bundle": {
11 | "include": "qx.*"
12 | }
13 | },
14 | {
15 | "type": "build",
16 | "application-types": [
17 | "node"
18 | ],
19 | "outputPath": "compiled/build"
20 | }
21 | ],
22 | "defaultTarget": "source",
23 | "locales": ["en"],
24 | "environment": {
25 | "qx.icontheme": "Tango"
26 | },
27 | "applications": [
28 | {
29 | "class": "issue553.ApplicationOne",
30 | "theme": "qx.theme.Indigo",
31 | "name": "issue553one",
32 | "type": "node"
33 | },
34 | {
35 | "class": "issue553.ApplicationTwo",
36 | "theme": "qx.theme.Indigo",
37 | "name": "issue553two",
38 | "type": "node"
39 | }
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/class/custom/page/Overview.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright:
4 |
5 | License:
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * TODO: needs documentation
13 | */
14 | qx.Class.define("${namespace}.page.Overview",
15 | {
16 | extend : qx.ui.mobile.page.NavigationPage,
17 |
18 | construct : function()
19 | {
20 | this.base(arguments);
21 | this.setTitle("Overview");
22 | this.setShowBackButton(true);
23 | this.setBackButtonText("Back");
24 | },
25 |
26 |
27 | members :
28 | {
29 | // overridden
30 | _initialize : function()
31 | {
32 | this.base(arguments);
33 |
34 | this.getContent().add(new qx.ui.mobile.basic.Label("Your first app."));
35 | },
36 |
37 |
38 | // overridden
39 | _back : function(triggeredByKeyEvent)
40 | {
41 | qx.core.Init.getApplication().getRouting().back();
42 | }
43 | }
44 | });
45 |
--------------------------------------------------------------------------------
/source/class/qx/tool/config/Registry.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | qooxdoo - the new era of web development
4 |
5 | http://qooxdoo.org
6 |
7 | Copyright:
8 | 2019 The qooxdoo developers
9 |
10 | License:
11 | MIT: https://opensource.org/licenses/MIT
12 | See the LICENSE file in the project's top-level directory for details.
13 |
14 | Authors:
15 | * Christian Boulanger (info@bibliograph.org, @cboulanger)
16 |
17 | ************************************************************************ */
18 |
19 | /**
20 | * A model for the Manifest.json file
21 | */
22 | qx.Class.define("qx.tool.config.Registry", {
23 | extend: qx.tool.config.Abstract,
24 | type: "singleton",
25 | statics: {
26 | config: {
27 | fileName: "qooxdoo.json",
28 | version: "1.0.0"
29 | }
30 | },
31 | construct: function() {
32 | this.base(arguments, this.self(arguments).config);
33 | },
34 |
35 | members: {
36 | getLibraries() {
37 | return this.getValue("libraries");
38 | }
39 | }
40 | });
41 |
--------------------------------------------------------------------------------
/test/compiler/testapp/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "info": {
3 | "name": "testapp",
4 | "summary": "Custom Application",
5 | "description": "This is a skeleton for a custom application with qooxdoo.",
6 | "homepage": "http://some.homepage.url/",
7 | "license": "SomeLicense",
8 | "authors": [],
9 | "version": "1.0.0"
10 | },
11 | "provides": {
12 | "namespace": "testapp",
13 | "encoding": "utf-8",
14 | "class": "source/class",
15 | "resource": "source/resource",
16 | "translation": "source/translation"
17 | },
18 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/Manifest-1-0-0.json",
19 | "requires": {
20 | "@qooxdoo/compiler": "^1.0.0-beta",
21 | "@qooxdoo/framework": "^6.0.0-alpha"
22 | },
23 | "externalResources": {
24 | "script": [ "testapp/test-external.js", "https://code.jquery.com/jquery-3.4.1.js", "qx/test/script.js" ],
25 | "css": [ "testapp/test-external.css", "https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css", "qx/test/style.css" ]
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/test/compiler/testlib/compile.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("path");
3 |
4 | qx.Class.define("qxl.compilertests.testlib.CompilerApi", {
5 | extend: qx.tool.cli.api.CompilerApi,
6 |
7 | members: {
8 | async load() {
9 | let data = await this.base(arguments);
10 | if (!data.environment)
11 | data.environment = {};
12 | data.environment.testlibCompilerApi = "two";
13 | return data;
14 | }
15 | }
16 | });
17 |
18 | qx.Class.define("qxl.compilertests.testlib.LibraryApi", {
19 | extend: qx.tool.cli.api.LibraryApi,
20 |
21 | members: {
22 | async load() {
23 | let command = this.getCompilerApi().getCommand();
24 | command.addListener("checkEnvironment", e => this._appCompiling(e.getData().application, e.getData().environment));
25 | },
26 |
27 | _appCompiling(application, environment) {
28 | environment.testlibLibraryApi = "one";
29 | }
30 | }
31 | });
32 |
33 | module.exports = {
34 | LibraryApi: qxl.compilertests.testlib.LibraryApi,
35 | CompilerApi: qxl.compilertests.testlib.CompilerApi
36 | };
37 |
--------------------------------------------------------------------------------
/bin/known-good/qx:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | const path = require("path");
3 | const fs = require("fs");
4 | const utils = require("../tools/utils");
5 |
6 | async function main() {
7 | let knownGood = path.join(__dirname, "..", "..", "known-good");
8 | let qx = path.join(knownGood, "node_modules", ".bin", "qx");
9 | if (!fs.existsSync(qx)) {
10 | console.log("Compiling source version");
11 | await utils.runCommand(knownGood, "npm", "ci");
12 | await utils.runCommand(knownGood, "npm", "upgrade", "@qooxdoo/compiler");
13 | if (!fs.existsSync(qx)) {
14 | console.error("Failed to discover known-good version of the compiler!");
15 | process.exit(1);
16 | }
17 | }
18 | let data = await utils.fsPromises.readFile(path.join(knownGood, "node_modules", "@qooxdoo", "compiler", "package.json"));
19 | data = JSON.parse(data);
20 | console.log("***");
21 | console.log("*** Known Good Compiler Version: " + data.version);
22 | console.log("***");
23 | var myArgs = process.argv.slice(2);
24 | console.log("run", qx, ...myArgs);
25 | utils.runCommand(".", qx, ...myArgs);
26 | }
27 | main();
28 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/testLegalSCSS/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/Manifest-1-0-0.json",
3 | "info" :
4 | {
5 | "name" : "testLegalSCSS",
6 | "summary" : "",
7 | "description" : "",
8 | "homepage" : "",
9 | "license" : "MIT license",
10 | "authors" : [
11 | {
12 | "name": "",
13 | "email": ""
14 | }
15 | ],
16 | "version" : "1.0.0"
17 | },
18 | "provides" :
19 | {
20 | "namespace" : "testLegalSCSS",
21 | "encoding" : "utf-8",
22 | "class" : "source/class",
23 | "resource" : "source/resource",
24 | "translation" : "source/translation"
25 | },
26 | "externalResources": {
27 | "script": [
28 | ],
29 | "css": [
30 | "testLegalSCSS/css/test_css.css",
31 | "testLegalSCSS/scss/test_scss.scss",
32 | "testLegalSCSS/scss/test_theme_scss.scss"
33 |
34 | ]
35 | },
36 | "requires": {
37 | "@qooxdoo/framework": "^6.0.0-beta",
38 | "@qooxdoo/compiler" : "^1.0.0-beta"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553_node/source/class/issue553/ApplicationOne.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2019 undefined
4 |
5 | License: MIT license
6 |
7 | Authors: undefined
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This is the main application class of "issue553"
13 | *
14 | * @asset(issue553/*)
15 | */
16 | qx.Class.define("issue553.ApplicationOne",
17 | {
18 | extend : qx.application.Standalone,
19 |
20 |
21 |
22 | /*
23 | *****************************************************************************
24 | MEMBERS
25 | *****************************************************************************
26 | */
27 |
28 | members :
29 | {
30 | /**
31 | * This method contains the initial application code and gets called
32 | * during startup of the application
33 | *
34 | * @lint ignoreDeprecated(alert)
35 | */
36 | main : function()
37 | {
38 | // Call super class
39 | this.base(arguments);
40 | }
41 | }
42 | });
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553_node/source/class/issue553/ApplicationTwo.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2019 undefined
4 |
5 | License: MIT license
6 |
7 | Authors: undefined
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This is the main application class of "issue553"
13 | *
14 | * @asset(issue553/*)
15 | */
16 | qx.Class.define("issue553.ApplicationTwo",
17 | {
18 | extend : qx.application.Standalone,
19 |
20 |
21 |
22 | /*
23 | *****************************************************************************
24 | MEMBERS
25 | *****************************************************************************
26 | */
27 |
28 | members :
29 | {
30 | /**
31 | * This method contains the initial application code and gets called
32 | * during startup of the application
33 | *
34 | * @lint ignoreDeprecated(alert)
35 | */
36 | main : function()
37 | {
38 | // Call super class
39 | this.base(arguments);
40 | }
41 | }
42 | });
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 John Spackman
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/class/mixin.tmpl.js:
--------------------------------------------------------------------------------
1 | ${header}
2 |
3 | /**
4 | * This is a qooxdoo mixin
5 | */
6 | qx.Mixin.define("${classname}",
7 | {
8 | include : [],
9 |
10 | /**
11 | * Properties provided by this mixin
12 | */
13 | properties :
14 | {
15 | /** The foo property of the object */
16 | foo :
17 | {
18 | apply : "_applyFoo",
19 | nullable : true,
20 | check : "String",
21 | event : "changeFoo"
22 | }
23 | },
24 |
25 | /**
26 | * Events provided by this mixin
27 | */
28 | events :
29 | {
30 | /** Fired when something happens */
31 | "changeSituation" : "qx.event.type.Data"
32 | },
33 |
34 | /**
35 | * Methods provided by this mixin
36 | */
37 | members :
38 | {
39 | /**
40 | * Mixin method method
41 | * @param {String} foo The foo parameter
42 | * @param {Number} bar The bar parameter
43 | * @return {String} The result of the method.
44 | */
45 | myMethod : function(foo, bar)
46 | {
47 | //
48 | },
49 |
50 | /** Applies the foo property */
51 | _applyFoo : function(value, old)
52 | {
53 | //
54 | }
55 | }
56 | });
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/targets/meta/PolyfillJs.js:
--------------------------------------------------------------------------------
1 | const fs = qx.tool.utils.Promisify.fs;
2 | const path = require("upath");
3 |
4 | /**
5 | * Represents a "polyfill.js" that is generated as part of a compile
6 | */
7 | qx.Class.define("qx.tool.compiler.targets.meta.PolyfillJs", {
8 | extend: qx.tool.compiler.targets.meta.AbstractJavascriptMeta,
9 |
10 | construct(appMeta) {
11 | this.base(arguments, appMeta, `${appMeta.getApplicationRoot()}polyfill.js`);
12 | },
13 |
14 | properties: {
15 | needsWriteToDisk: {
16 | init: true,
17 | refine: true
18 | }
19 | },
20 |
21 | members: {
22 |
23 | /*
24 | * @Override
25 | */
26 | async writeSourceCodeToStream(ws) {
27 | const srcFilename = path.join(require.resolve("@babel/polyfill"), "../../dist/polyfill.js");
28 | let rs = fs.createReadStream(srcFilename, "utf8");
29 | await new Promise((resolve, reject) => {
30 | rs.on("end", resolve);
31 | rs.on("error", reject);
32 | rs.pipe(ws, { end: false });
33 | });
34 | },
35 |
36 | /*
37 | * @Override
38 | */
39 | async getSourceMap() {
40 | return null;
41 | }
42 | }
43 | });
44 |
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/resources/MetaLoader.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qooxdoo-compiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2017 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * John Spackman (john.spackman@zenesis.com, @johnspackman)
20 | *
21 | * *********************************************************************** */
22 |
23 | qx.Class.define("qx.tool.compiler.resources.MetaLoader", {
24 | extend: qx.tool.compiler.resources.ResourceLoader,
25 |
26 | construct: function() {
27 | this.base(arguments, ".meta");
28 | },
29 |
30 | members: {
31 | async load(asset) {
32 | asset.getFileInfo().meta = await qx.tool.utils.Json.loadJsonAsync(asset.getSourceFilename());
33 | }
34 | }
35 | });
36 |
--------------------------------------------------------------------------------
/source/class/qx/tool/config/Lockfile.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | qooxdoo - the new era of web development
4 |
5 | http://qooxdoo.org
6 |
7 | Copyright:
8 | 2019 The qooxdoo developers
9 |
10 | License:
11 | MIT: https://opensource.org/licenses/MIT
12 | See the LICENSE file in the project's top-level directory for details.
13 |
14 | Authors:
15 | * Christian Boulanger (info@bibliograph.org, @cboulanger)
16 |
17 | ************************************************************************ */
18 |
19 | /**
20 | * A model for the lockfile, which has a version, but no "official" schema (yet)
21 | */
22 | const version = "2.1.0";
23 | qx.Class.define("qx.tool.config.Lockfile", {
24 | extend: qx.tool.config.Abstract,
25 | type: "singleton",
26 | statics: {
27 | config: {
28 | fileName: qx.tool.cli.commands.Package.lockfile.filename,
29 | version,
30 | validate: false,
31 | createIfNotExists: true,
32 | templateFunction: () => ({
33 | libraries: [],
34 | version
35 | })
36 | }
37 | },
38 | construct: function() {
39 | this.base(arguments, this.self(arguments).config);
40 | }
41 | });
42 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/schema/qooxdoo-1-0-0.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "qooxdoo.json Schema",
3 | "$schema": "http://json-schema.org/draft-07/schema",
4 | "$id": "https://qooxdoo.org/schema/qooxdoo-1-0-0.json",
5 | "description": "qooxdo.json is a registry for qooxdoo libraries in a repository/package.",
6 | "type": "object",
7 | "required": [
8 | "libraries"
9 | ],
10 | "additionalProperties": false,
11 | "properties": {
12 | "$schema": {
13 | "type": "string",
14 | "description": "the json schema of the version of qooxdoo.json",
15 | "enum": [
16 | "https://qooxdoo.org/schema/qooxdoo-1-0-0.json",
17 | "https://raw.githubusercontent.com/qooxdoo/qooxdoo-compiler/master/source/resource/qx/tool/schema/qooxdoo-1-0-0.json"
18 | ]
19 | },
20 | "libraries": {
21 | "description": "An array of objects with at least a 'path' property, containing the path to the library",
22 | "type": "array",
23 | "items": {
24 | "type": "object",
25 | "properties": {
26 | "path": {
27 | "type": "string"
28 | },
29 | "main": {
30 | "type": "boolean"
31 | }
32 | }
33 | }
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/boot/nojs.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | testMixin - JavaScript is disabled
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | This application requires JavaScript. Please enable it and reload this page.
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/Manifest-1-0-0.json",
3 | "info": {
4 | "name": "@qooxdoo/qooxdoo-compiler",
5 | "summary": "The new fast JavaScript Compiler for Qooxdoo",
6 | "description": "The Qooxdoo-Compiler is the new compiler and command line interface for Qooxdoo applications. It is written in Node.JS Javascript and replaces the Python-based generator.",
7 | "homepage": "https://github.com/qooxdoo/qooxdoo-compiler",
8 | "license": "MIT license",
9 | "authors": [
10 | {
11 | "name": "John Spackman (johnspackman)",
12 | "email": "john.spackman@zenesis.com"
13 | },
14 | {
15 | "name": "Christian Boulanger (cboulanger)",
16 | "email": "info@bibliograph.org"
17 | },
18 | {
19 | "name": "Henner Kollmann (hkollmann)",
20 | "email": "Henner.Kollmann.gmx.de"
21 | }
22 | ],
23 | "version": "1.0.4"
24 | },
25 | "provides": {
26 | "namespace": "qxcompiler",
27 | "encoding": "utf-8",
28 | "class": "source/class",
29 | "resource": "source/resource",
30 | "translation": "source/translation"
31 | },
32 | "requires": {
33 | "@qooxdoo/framework": "^6.0.0-beta",
34 | "@qooxdoo/compiler": "^1.0.0-beta"
35 | }
36 | }
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/boot/nojs.tmpl.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ${name} - JavaScript is disabled
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | This application requires JavaScript. Please enable it and reload this page.
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/boot/nojs.tmpl.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ${name} - JavaScript is disabled
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | This application requires JavaScript. Please enable it and reload this page.
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/source/class/qx/tool/cli/Application.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | qooxdoo - the new era of web development
4 |
5 | http://qooxdoo.org
6 |
7 | Copyright:
8 | 2020 Henner Kollmann
9 |
10 | License:
11 | MIT: https://opensource.org/licenses/MIT
12 | See the LICENSE file in the project's top-level directory for details.
13 |
14 | Authors:
15 | * Henner Kollmann (Henner.Kollmann@gmx.de, @hkollmann)
16 |
17 | ************************************************************************ */
18 | /**
19 | * This is the main application class of the compiler.
20 | *
21 | * @asset(qx/tool/*)
22 | *
23 | */
24 | qx.Class.define("qx.tool.cli.Application", {
25 | extend: qx.application.Basic,
26 | members:
27 | {
28 | /**
29 | * This method contains the initial application code and gets called
30 | * during startup of the application
31 | */
32 | main: async function () {
33 | try {
34 | await (new qx.tool.cli.Cli()).run();
35 | } catch (e) {
36 | qx.tool.compiler.Console.error("Error: " + (e.stack || e.message));
37 | process.exit(1);
38 | }
39 | }
40 | },
41 | defer: function (statics) {
42 | qx.log.Logger.setLevel("error");
43 | }
44 | });
45 |
--------------------------------------------------------------------------------
/test/compiler/test-externals.js:
--------------------------------------------------------------------------------
1 | const test = require("tape");
2 | const testUtils = require("../../bin/tools/utils");
3 | const fsPromises = testUtils.fsPromises;
4 |
5 | test("test externals", async assert => {
6 | try {
7 | await testUtils.deleteRecursive("test-externals/myapp/compiled");
8 | await testUtils.runCompiler("test-externals/myapp", "--target=build", "--write-compile-info");
9 |
10 | let data = await fsPromises.readFile("test-externals/myapp/compiled/build/myapp/index.js", "utf8");
11 | assert.ok(!!data.match(/THIS_IS_A_JS/));
12 | assert.ok(!!data.match(/THIS_IS_B_JS/));
13 | assert.ok(!!data.match(/THIS_IS_C_JS/));
14 | assert.ok(!!data.match(/urisBefore: \[ "__external__:http:\/\/cdn.example.com\/my\/d.js" \]/));
15 |
16 | await testUtils.runCompiler("test-externals/myapp", "--write-compile-info");
17 |
18 | data = await fsPromises.readFile("test-externals/myapp/compiled/source/myapp/index.js", "utf8");
19 | assert.ok(!data.match(/THIS_IS_A_JS/));
20 | assert.ok(!data.match(/THIS_IS_B_JS/));
21 | assert.ok(!data.match(/THIS_IS_C_JS/));
22 | assert.ok(!data.match(/urisBefore: \[ "__external__:http:\/\/cdn.example.com\/my\/d.js" \]/));
23 |
24 | assert.end();
25 | }catch(ex) {
26 | assert.end(ex);
27 | }
28 | });
29 |
30 |
--------------------------------------------------------------------------------
/test/compiler/test-pkg-migrate.js:
--------------------------------------------------------------------------------
1 | require("../index");
2 | const rimraf = require("rimraf");
3 | const fs = qx.tool.utils.Promisify.fs;
4 | const process = require("process");
5 | const download = require("download");
6 |
7 |
8 | const appNamespace = "testMigrateApp";
9 |
10 | (async () => {
11 | try {
12 | console.info("Running migration tests...");
13 |
14 | if (await fs.existsAsync("test-pkg-migrate"))
15 | rimraf.sync("test-pkg-migrate");
16 | await fs.mkdirAsync("test-pkg-migrate");
17 | process.chdir("test-pkg-migrate");
18 |
19 | // delete existing app
20 | if (await fs.existsAsync(appNamespace) && await fs.statAsync(appNamespace)) {
21 | rimraf.sync(appNamespace);
22 | }
23 |
24 | // download legacy format library
25 | await download("https://github.com/qooxdoo/qxl.apiviewer/archive/v0.1.14.zip", appNamespace, {extract:true, strip: 1});
26 | process.chdir(appNamespace);
27 | // migrate
28 | await (new qx.tool.cli.commands.package.Migrate({verbose:true})).process();
29 | // compile (doesn't work like this)
30 | //await (new qx.tool.cli.commands.Compile({feedback:false, target:"source"})).process();
31 |
32 | // delete the test app
33 | process.chdir("..");
34 | rimraf.sync(appNamespace);
35 | console.info("All tests passed.");
36 | } catch (e) {
37 | console.error(e);
38 | process.exit(1);
39 | }
40 | })();
41 |
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/jsdoc/ReturnParser.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qooxdoo-compiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2017 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * John Spackman (john.spackman@zenesis.com, @johnspackman)
20 | *
21 | * *********************************************************************** */
22 | /**
23 | * Parser for JSDoc "@return"
24 | */
25 | qx.Class.define("qx.tool.compiler.jsdoc.ReturnParser", {
26 | extend: qx.tool.compiler.jsdoc.CommandParser,
27 |
28 | members: {
29 | parseCommand: function(pdoc, classname, analyser) {
30 | var m = pdoc.body.match(/^(\{([^}]+)\}([\s\S]+)?)?$/);
31 | if (m) {
32 | pdoc.type = this.resolveType((m[2]||"").trim(), classname, analyser);
33 | pdoc.description = m[3]||"";
34 | } else {
35 | delete pdoc.type;
36 | delete pdoc.description;
37 | }
38 | }
39 | }
40 | });
41 |
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/jsdoc/ThrowsParser.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qooxdoo-compiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2017 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * John Spackman (john.spackman@zenesis.com, @johnspackman)
20 | *
21 | * *********************************************************************** */
22 | /**
23 | * Parser for JSDoc "@return"
24 | */
25 | qx.Class.define("qx.tool.compiler.jsdoc.ThrowsParser", {
26 | extend:qx.tool.compiler.jsdoc.CommandParser,
27 |
28 | members: {
29 | parseCommand: function(pdoc, classname, analyser) {
30 | var m = pdoc.body.match(/^(\{([^}]+)\}([\s\S]+)?)?$/);
31 | if (m) {
32 | pdoc.type = this.resolveType((m[2]||"").trim(), classname, analyser);
33 | pdoc.description = m[3]||"";
34 | } else {
35 | delete pdoc.type;
36 | delete pdoc.description;
37 | }
38 | }
39 | }
40 | });
41 |
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/compile.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://qooxdoo.org/schema/compile-1-0-0.json",
3 | "targets": [
4 | {
5 | "type": "source",
6 | "outputPath": "compiled/source",
7 | "bundle": {
8 | "include": "qx.*"
9 | }
10 | },
11 | {
12 | "type": "build",
13 | "outputPath": "compiled/build"
14 | }
15 | ],
16 | "defaultTarget": "source",
17 | "locales": [
18 | "en"
19 | ],
20 | "environment": {
21 | "qx.icontheme": "Tango"
22 | },
23 | "applications": [
24 | {
25 | "class": "testMixin.Application",
26 | "theme": "testMixin.theme.Theme",
27 | "name": "testMixin",
28 | "bootPath": "source/boot"
29 | },
30 | {
31 | "class": "qxl.apiviewer.Application",
32 | "theme": "qxl.apiviewer.Theme",
33 | "name": "apiviewer",
34 | "title": "Qooxdoo API Viewer",
35 | "environment": {
36 | "qx.icontheme": "Tango",
37 | "qxl.apiviewer.applicationName": "",
38 | "qxl.apiviewer.exclude": [
39 | "qxl.*",
40 | "qx.*",
41 | "q",
42 | "qxWeb"
43 | ],
44 | "qxl.apiviewer.include": []
45 | },
46 | "include": [
47 | "qx.*"
48 | ],
49 | "exclude": [
50 | "qx.test.*",
51 | "qx.module.Blocker",
52 | "qx.module.Placement"
53 | ]
54 | }
55 | ]
56 | }
--------------------------------------------------------------------------------
/source/class/qx/tool/cli/commands/Add.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | qooxdoo - the new era of web development
4 |
5 | http://qooxdoo.org
6 |
7 | Copyright:
8 | 2017 Christian Boulanger
9 |
10 | License:
11 | MIT: https://opensource.org/licenses/MIT
12 | See the LICENSE file in the project's top-level directory for details.
13 |
14 | Authors:
15 | * Christian Boulanger (info@bibliograph.org, @cboulanger)
16 |
17 | ************************************************************************ */
18 | /**
19 | * Adds scripts, classes, etc. to the projects
20 | */
21 | qx.Class.define("qx.tool.cli.commands.Add", {
22 | extend: qx.tool.cli.commands.Command,
23 |
24 | statics: {
25 |
26 | getYargsCommand: function() {
27 | return {
28 | command : "add [options]",
29 | desc : "adds new elements to an existing qooxdoo application/library",
30 | builder : function(yargs) {
31 | qx.tool.cli.Cli.addYargsCommands(yargs, [
32 | "Class", "Script"
33 | ], "qx.tool.cli.commands.add");
34 |
35 | return yargs
36 | .demandCommand()
37 | .showHelpOnFail()
38 | .help();
39 | },
40 | handler : function(argv) {
41 | }
42 | };
43 | }
44 | },
45 |
46 | members: {
47 | // place for common methods.
48 | }
49 | });
50 |
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/targets/meta/Javascript.js:
--------------------------------------------------------------------------------
1 | const fs = qx.tool.utils.Promisify.fs;
2 |
3 | /**
4 | * An implementation of IJavascriptMeta for plain old javascript files
5 | */
6 | qx.Class.define("qx.tool.compiler.targets.meta.Javascript", {
7 | extend: qx.tool.compiler.targets.meta.AbstractJavascriptMeta,
8 |
9 | /**
10 | * Constructor
11 | *
12 | * @param appMeta {qx.tool.compiler.targets.meta.ApplicationMeta}
13 | * @param filename {String} the sourcefile
14 | * @param originalSourceFile {String?} the URI to give to the source map
15 | */
16 | construct(appMeta, filename, originalSourceFile) {
17 | this.base(arguments, appMeta, filename, originalSourceFile);
18 | },
19 |
20 | members: {
21 |
22 | /*
23 | * @Override
24 | */
25 | compile() {
26 | // Nothing
27 | },
28 |
29 | /*
30 | * @Override
31 | */
32 | async writeSourceCodeToStream(ws) {
33 | let rs = fs.createReadStream(this.getFilename(), "utf8");
34 | await new Promise((resolve, reject) => {
35 | rs.on("end", resolve);
36 | rs.on("error", reject);
37 | rs.pipe(ws, { end: false });
38 | });
39 | },
40 |
41 | /*
42 | * @Override
43 | */
44 | async getSourceMap() {
45 | if (!fs.existsSync(this.getFilename() + ".map")) {
46 | return null;
47 | }
48 | return await fs.readFileAsync(this.getFilename() + ".map", "utf8");
49 | }
50 | }
51 | });
52 |
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/targets/meta/Part.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * A Part collects together all of the javascript files required for a single
4 | * part (load on demand) and merges them together as required.
5 | */
6 | qx.Class.define("qx.tool.compiler.targets.meta.Part", {
7 | extend: qx.core.Object,
8 |
9 | /**
10 | * Constructor
11 | *
12 | * @param target {Target} the target doing the compilation
13 | * @param name {String} the name of the part
14 | * @param partIndex {Integer}
15 | */
16 | construct(target, name, partIndex) {
17 | this.base(arguments);
18 | this.__target = target;
19 | this.__name = name;
20 | this.__partIndex = partIndex;
21 | this.__packages = [];
22 | this.__packageLookup = {};
23 | },
24 |
25 | members: {
26 | __target: null,
27 | __name: null,
28 | __partIndex: -1,
29 | __packages: null,
30 | __packageLookup: null,
31 |
32 | addPackage(pkg) {
33 | if (!this.__packageLookup[pkg.toHashCode()]) {
34 | this.__packages.push(pkg);
35 | this.__packageLookup[pkg.toHashCode()] = pkg;
36 | }
37 | },
38 |
39 | hasPackage(pkg) {
40 | return Boolean(this.__packageLookup[pkg.toHashCode()]);
41 | },
42 |
43 | getDefaultPackage() {
44 | return this.__packages[0]||null;
45 | },
46 |
47 | serializeInto(parts) {
48 | let arr = parts[this.__name] = [];
49 | this.__packages.forEach(pkg => arr.push(String(pkg.getPackageIndex())));
50 | }
51 | }
52 | });
53 |
54 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/class/singleton.tmpl.js:
--------------------------------------------------------------------------------
1 | ${header}
2 |
3 | /**
4 | * This is a qooxdoo singleton class
5 | *
6 | */
7 | qx.Class.define("${classname}",
8 | {
9 |
10 | extend : ${extend},
11 | include : [],
12 | type : "singleton",
13 |
14 | /**
15 | * Create a the singleton
16 | */
17 | construct : function() {
18 | // If you want to call the parent constructor, use
19 | // this.base(arguments);
20 | },
21 |
22 | /**
23 | * The properties of the singleton
24 | */
25 | properties :
26 | {
27 | /** The foo property of the object */
28 | foo :
29 | {
30 | apply : "_applyFoo",
31 | nullable : true,
32 | check : "String",
33 | event : "changeFoo"
34 | }
35 | },
36 |
37 | /**
38 | * Declaration of events fired by class instances in addition
39 | * to the property change events
40 | */
41 | events :
42 | {
43 | /** Fired when something happens */
44 | "changeSituation" : "qx.event.type.Data"
45 | },
46 |
47 | /**
48 | * Methods and simple properties of the singleton
49 | */
50 | members :
51 | {
52 | /**
53 | * Singleton method
54 | * @param {String} foo The foo parameter
55 | * @param {Number} bar The bar parameter
56 | * @return {void} The result of the method.
57 | */
58 | myMethod : function(foo, bar)
59 | {
60 | //
61 | },
62 |
63 | /** Applies the foo property */
64 | _applyFoo : function(value, old)
65 | {
66 | //
67 | }
68 | }
69 | });
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/jsdoc/ChildControlParser.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qooxdoo-compiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2017 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * John Spackman (john.spackman@zenesis.com, @johnspackman)
20 | *
21 | * *********************************************************************** */
22 | /**
23 | * Parser for JSDoc "@param"
24 | */
25 | qx.Class.define("qx.tool.compiler.jsdoc.ChildControlParser", {
26 | extend: qx.tool.compiler.jsdoc.CommandParser,
27 |
28 | members: {
29 | parseCommand: function(pdoc, classname, analyser) {
30 | var m = pdoc.body.match(/^([\S]+)(\s+\{([^}]+)\}([\s\S]+))??$/);
31 | if (m) {
32 | pdoc.controlName = m[1].trim();
33 | var type = this.resolveType((m[3]||"").trim(), classname, analyser);
34 | pdoc.description = (m[4]||"").trim();
35 | pdoc.type = type;
36 | } else {
37 | delete pdoc.controlName;
38 | delete pdoc.type;
39 | delete pdoc.description;
40 | }
41 | }
42 | }
43 | });
44 |
--------------------------------------------------------------------------------
/source/class/qx/tool/cli/commands/Pkg.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | qooxdoo - the new era of web development
4 |
5 | http://qooxdoo.org
6 |
7 | Copyright:
8 | 2017 Christian Boulanger
9 |
10 | License:
11 | MIT: https://opensource.org/licenses/MIT
12 | See the LICENSE file in the project's top-level directory for details.
13 |
14 | Authors:
15 | * Christian Boulanger (info@bibliograph.org, @cboulanger)
16 |
17 | ************************************************************************ */
18 | /**
19 | * "qx pkg" is an alias for "qx package"
20 | */
21 | qx.Class.define("qx.tool.cli.commands.Pkg", {
22 | extend: qx.tool.cli.commands.Package,
23 | statics: {
24 | /**
25 | * The yargs command data
26 | * @return {{}}
27 | */
28 | getYargsCommand: function() {
29 | return {
30 | command : "pkg [options]",
31 | desc : "alias for 'qx package'.",
32 | builder : function(yargs) {
33 | qx.tool.cli.Cli.addYargsCommands(yargs, [
34 | "Install",
35 | "List",
36 | "Publish",
37 | "Remove",
38 | "Update",
39 | "Upgrade",
40 | "Migrate"
41 | ], "qx.tool.cli.commands.package");
42 | return yargs
43 | .demandCommand()
44 | .showHelpOnFail()
45 | .help();
46 | },
47 | handler : function(argv) {
48 | // Nothing
49 | }
50 | };
51 | }
52 | }
53 | });
54 |
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/resources/ScssIncludeConverter.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qooxdoo-compiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2017 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * Henner Kollmann (henner.kollmann@gmx.de)
20 | *
21 | * *********************************************************************** */
22 |
23 | var path = require("upath");
24 |
25 | qx.Class.define("qx.tool.compiler.resources.ScssIncludeConverter", {
26 | extend: qx.tool.compiler.resources.ResourceConverter,
27 |
28 | members: {
29 | matches(filename) {
30 | filename = path.basename(filename);
31 | return filename[0] == "_" && filename.endsWith(".scss");
32 | },
33 |
34 | isDoNotCopy(filename) {
35 | if (qx.tool.compiler.resources.ScssConverter.COPY_ORIGINAL_FILES) {
36 | return false;
37 | }
38 | return true;
39 | },
40 |
41 | async convert(target, asset, srcFilename, destFilename, isThemeFile) {
42 | await qx.tool.utils.files.Utils.copyFile(srcFilename, destFilename);
43 | }
44 | }
45 | });
46 |
--------------------------------------------------------------------------------
/test/compiler/test-rotate-unique.js:
--------------------------------------------------------------------------------
1 | var test = require("tape");
2 | var fs = require("fs");
3 | const testUtils = require("../../bin/tools/utils");
4 | require("../index");
5 |
6 | test("Checks rotateUnique", async assert => {
7 | await testUtils.deleteRecursive("test-rotate-unique");
8 | await testUtils.fsPromises.mkdir("test-rotate-unique");
9 |
10 | for (var i = 1; i < 6; i++) {
11 | await qx.tool.utils.files.Utils.safeUnlink("test-rotate-unique/log.txt." + i);
12 | }
13 | for (var i = 1; i < 10; i++) {
14 | await qx.tool.utils.files.Utils.rotateUnique("test-rotate-unique/log.txt", 5);
15 | fs.writeFileSync("test-rotate-unique/log.txt", "This is version " + i, "utf8");
16 | }
17 | assert.ok(Boolean(await qx.tool.utils.files.Utils.safeStat("test-rotate-unique/log.txt")));
18 | assert.ok(Boolean(await qx.tool.utils.files.Utils.safeStat("test-rotate-unique/log.txt.1")));
19 | assert.ok(Boolean(await qx.tool.utils.files.Utils.safeStat("test-rotate-unique/log.txt.2")));
20 | assert.ok(Boolean(await qx.tool.utils.files.Utils.safeStat("test-rotate-unique/log.txt.3")));
21 | assert.ok(Boolean(await qx.tool.utils.files.Utils.safeStat("test-rotate-unique/log.txt.4")));
22 | assert.ok(Boolean(await qx.tool.utils.files.Utils.safeStat("test-rotate-unique/log.txt.5")));
23 | assert.ok(!await qx.tool.utils.files.Utils.safeStat("test-rotate-unique/log.txt.6"));
24 | assert.ok(!await qx.tool.utils.files.Utils.safeStat("test-rotate-unique/log.txt.7"));
25 | assert.ok(!await qx.tool.utils.files.Utils.safeStat("test-rotate-unique/log.txt.8"));
26 | assert.end();
27 | });
28 |
29 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/test/TestPlugins.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qxcompiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2018 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * John Spackman (john.spackman@zenesis.com, @johnspackman)
20 | *
21 | * ************************************************************************/
22 |
23 | qx.Class.define("testapp.test.TestPlugins", {
24 | extend: qx.dev.unit.TestCase,
25 |
26 | members: {
27 | testSimple: function() {
28 | qx.io.PartLoader.require(["pluginFramework", "pluginOne"], () => {
29 | this.debug("pluginOne loaded");
30 | var plugin = new testapp.plugins.PluginOne();
31 | this.assertEquals("testapp.plugins.PluginOne: Plugin One Hello\n", plugin.sayHello());
32 | }, this);
33 | qx.io.PartLoader.require(["pluginFramework", "pluginTwo"], () => {
34 | this.debug("pluginTwo loaded");
35 | var plugin = new testapp.plugins.PluginTwo();
36 | this.assertEquals("testapp.plugins.PluginTwo: Plugin One Hello\n", plugin.sayHello());
37 | }, this);
38 | }
39 | }
40 | });
41 |
--------------------------------------------------------------------------------
/source/class/qx/tool/cli/api/LibraryApi.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qooxdoo-compiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2019 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * John Spackman (john.spackman@zenesis.com, @johnspackman)
20 | *
21 | * *********************************************************************** */
22 | /**
23 | * Provides an API for an individual library
24 | */
25 | qx.Class.define("qx.tool.cli.api.LibraryApi", {
26 | extend: qx.tool.cli.api.AbstractApi,
27 |
28 | properties: {
29 | /** The Compiler API */
30 | compilerApi: {
31 | nullable: false,
32 | check: "qx.tool.cli.api.CompilerApi"
33 | }
34 | },
35 |
36 | members: {
37 | /**
38 | * Called to load any library-specific configuration and update the compilerConfig
39 | *
40 | * @overridden
41 | */
42 | async load() {
43 | return this.base(arguments);
44 | },
45 |
46 | /**
47 | * Called after all libraries have been loaded and added to the compilation data
48 | */
49 | async afterLibrariesLoaded() {
50 | // Nothing
51 | }
52 |
53 |
54 | }
55 | });
56 |
57 |
--------------------------------------------------------------------------------
/source/class/qx/tool/cli/api/Test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This is used to add an test case for qx test
3 | */
4 | qx.Class.define("qx.tool.cli.api.Test", {
5 | extend: qx.core.Object,
6 | construct: function(name, testFunction) {
7 | this.base(arguments);
8 | this.setName(name);
9 | if (testFunction) {
10 | this.setTestFunction(testFunction);
11 | }
12 | },
13 | properties: {
14 | /**
15 | * Name of the process
16 | */
17 | name: {
18 | check: "String"
19 | },
20 | /**
21 | * A description of the test.
22 | * For documentation purpose
23 | */
24 | description: {
25 | check: "String",
26 | event: "changeDescription"
27 | },
28 | /**
29 | * The exit code of the test.
30 | *
31 | */
32 | exitCode: {
33 | check: "Number",
34 | event: "changeExitCode",
35 | nullable: true,
36 | init: null
37 | },
38 | /**
39 | * Is the webserver instance needed for this test?
40 | */
41 | needsServer: {
42 | check: "Boolean",
43 | nullable: false,
44 | init: true
45 | },
46 | /**
47 | * The test function called by qx test
48 | *
49 | */
50 | testFunction: {
51 | check: "Function",
52 | nullable: false,
53 | init: () => {}
54 | }
55 | },
56 |
57 |
58 | members: {
59 | /**
60 | * Execute the test
61 | *
62 | * @returns: Promise
63 | *
64 | * Can be overriden
65 | */
66 | execute: function() {
67 | let f = this.getTestFunction();
68 | return qx.Promise.resolve(f.call(this, this));
69 | }
70 | }
71 | });
72 |
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/targets/SourceTarget.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qooxdoo-compiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2017 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * John Spackman (john.spackman@zenesis.com, @johnspackman)
20 | *
21 | * ************************************************************************/
22 | /**
23 | * Compiles a target where source files and resources are loaded in place
24 | */
25 | qx.Class.define("qx.tool.compiler.targets.SourceTarget", {
26 | extend: qx.tool.compiler.targets.Target,
27 |
28 | properties: {
29 | /**
30 | * Whether to copy resources in source builds.
31 | */
32 | copyResources: {
33 | check: "Boolean",
34 | init: true
35 | }
36 | },
37 |
38 | members: {
39 | /*
40 | * @Override
41 | */
42 | async _writeApplication() {
43 | if (this.getCopyResources()) {
44 | let appMeta = this.getAppMeta();
45 | await appMeta.syncAssets();
46 | }
47 | return await this.base(arguments);
48 | },
49 |
50 | /*
51 | * @Override
52 | */
53 | toString: function() {
54 | return "Source Target: " + this.getOutputDir();
55 | }
56 | }
57 | });
58 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/InnerEs6Classes.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @ignore(require)
3 | */
4 | const fs = require('fs');
5 |
6 | qx.Class.define("testapp.InnerEs6Classes", {
7 | extend: qx.core.Object,
8 |
9 | construct(options) {
10 | this.base(arguments);
11 |
12 | class ClassStats {
13 | constructor(classname) {
14 | this.classname = classname;
15 | }
16 |
17 | forProperty(propName) {
18 | return propName;
19 | }
20 | }
21 | /*
22 | class AllStats {
23 | constructor() {
24 | new ClassStats("abc.X");
25 | }
26 | }
27 | */
28 | },
29 |
30 | members: {
31 | /*
32 | testOne() {
33 | return new ClassStats("abc.X");
34 | },
35 |
36 | testTwo() {
37 | class ClassStatsTwo {
38 | constructor(classname) {
39 | this.classname = classname;
40 | }
41 |
42 | forProperty(propName) {
43 | return propName;
44 | }
45 | }
46 |
47 | class AllStatsTwo {
48 | constructor() {
49 | new ClassStatsTwo("abc.X");
50 | }
51 | }
52 | }
53 | */
54 | },
55 |
56 | statics: {
57 | /*
58 | staticTestOne() {
59 | return new ClassStats("abc.X");
60 | },
61 |
62 | staticTestTwo() {
63 | class ClassStatsStaticTwo {
64 | constructor(classname) {
65 | this.classname = classname;
66 | }
67 |
68 | forProperty(propName) {
69 | return propName;
70 | }
71 | }
72 |
73 | class AllStatsStaticTwo {
74 | constructor() {
75 | new ClassStatsStaticTwo("abc.X");
76 | }
77 | }
78 | }
79 | */
80 | }
81 | });
82 |
--------------------------------------------------------------------------------
/compile.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("upath");
3 | const process = require("process");
4 |
5 | qx.Class.define("qx.compiler.CompilerApi", {
6 | extend: qx.tool.cli.api.CompilerApi,
7 |
8 | members: {
9 | /**
10 | * Register compiler tests
11 | * @param {qx.tool.cli.commands.Command} command
12 | * @return {Promise}
13 | */
14 | async beforeTests(command) {
15 | const COMPILER_TEST_PATH = path.join("test", "compiler");
16 | function addTest(test) {
17 | command.addTest(new qx.tool.cli.api.Test(test, async function() {
18 | console.log("****");
19 | console.log("**** Running " + test);
20 | console.log("****");
21 | result = await qx.tool.utils.Utils.runCommand({
22 | cwd: COMPILER_TEST_PATH,
23 | cmd: "node",
24 | args: [ test + ".js" ],
25 | shell: false,
26 | env: {
27 | QX_JS: require.main.filename
28 | }
29 | });
30 | this.setExitCode(result.exitCode);
31 | })).setNeedsServer(false);
32 | }
33 | try {
34 | try {
35 | fs.unlinkSync("test/qx");
36 | }catch(ex) {
37 | // Nothing
38 | }
39 |
40 | let files = fs.readdirSync(COMPILER_TEST_PATH);
41 | files.forEach(file => {
42 | if (fs.statSync(path.join(COMPILER_TEST_PATH, file)).isFile() && file.endsWith(".js")) {
43 | addTest(path.changeExt(path.basename(file), ""));
44 | }
45 | });
46 | } catch (e) {
47 | console.error(e);
48 | process.exit(1);
49 | }
50 | }
51 | }
52 | });
53 |
54 | module.exports = {
55 | CompilerApi: qx.compiler.CompilerApi
56 | };
57 |
--------------------------------------------------------------------------------
/.github/workflows/nodejs.yml.disabled:
--------------------------------------------------------------------------------
1 | name: Test and Deploy
2 |
3 | on:
4 | push:
5 | branches: [ master ]
6 | pull_request:
7 | branches: [ master ]
8 |
9 | jobs:
10 | # Test changes from PRs
11 | test:
12 | name: Run tests
13 | runs-on: ${{ matrix.os }}
14 | if: github.ref != 'refs/heads/master'
15 | strategy:
16 | matrix:
17 | os: [ubuntu-latest]
18 | node-version: [10.x, 12.x, 14.x]
19 | steps:
20 | - uses: actions/checkout@v2
21 |
22 | - name: Use Node.js ${{ matrix.node-version }}
23 | uses: actions/setup-node@v1
24 | with:
25 | node-version: ${{ matrix.node-version }}
26 |
27 | - name: Install and Test
28 | run: |
29 | npm -v
30 | npm ci
31 | npm list @qooxdoo/framework
32 | npm test
33 |
34 | deploy:
35 | name: Deploy API Viewer
36 | runs-on: ubuntu-latest
37 | if: github.ref == 'refs/heads/master' && !contains(github.event.head_commit.message, 'ci skip')
38 | steps:
39 | - uses: actions/checkout@v2
40 | - uses: actions/setup-node@v1
41 | - name: install
42 | run: |
43 | npm ci
44 | ./bootstrap-compiler
45 |
46 | - name: Build API Viewer
47 | run: tmp/qx deploy app-name="apiviewer"
48 |
49 | - name: Deploy API Viewer
50 | uses: peaceiris/actions-gh-pages@v3
51 | with:
52 | github_token: ${{ secrets.GITHUB_TOKEN }}
53 | publish_dir: ./html
54 |
55 | - name: dispatch to deploy
56 | uses: peter-evans/repository-dispatch@v1
57 | with:
58 | token: ${{ secrets.ACTION_TOKEN }}
59 | repository: qooxdoo/deployment
60 | event-type: deploy
61 |
--------------------------------------------------------------------------------
/test/compiler/testapp/source/class/testapp/test/DemoTest.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright:
4 |
5 | License:
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This class demonstrates how to define unit tests for your application.
13 | *
14 | * Execute generate.py test to generate a testrunner application
15 | * and open it from test/index.html
16 | *
17 | * The methods that contain the tests are instance methods with a
18 | * test prefix. You can create an arbitrary number of test
19 | * classes like this one. They can be organized in a regular class hierarchy,
20 | * i.e. using deeper namespaces and a corresponding file structure within the
21 | * test folder.
22 | */
23 | qx.Class.define("testapp.test.DemoTest",
24 | {
25 | extend : qx.dev.unit.TestCase,
26 |
27 | members :
28 | {
29 | /*
30 | ---------------------------------------------------------------------------
31 | TESTS
32 | ---------------------------------------------------------------------------
33 | */
34 |
35 | /**
36 | * Here are some simple tests
37 | */
38 | testSimple : function()
39 | {
40 | this.assertEquals(4, 3+1, "This should never fail!");
41 | this.assertFalse(false, "Can false be true?!");
42 | },
43 |
44 | /**
45 | * Here are some more advanced tests
46 | */
47 | testAdvanced: function ()
48 | {
49 | var a = 3;
50 | var b = a;
51 | this.assertIdentical(a, b, "A rose by any other name is still a rose");
52 | this.assertInRange(3, 1, 10, "You must be kidding, 3 can never be outside [1,10]!");
53 | }
54 | }
55 | });
56 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/class/custom/page/Login.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright:
4 |
5 | License:
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * TODO: needs documentation
13 | */
14 | qx.Class.define("${namespace}.page.Login",
15 | {
16 | extend : qx.ui.mobile.page.NavigationPage,
17 |
18 | construct : function()
19 | {
20 | this.base(arguments);
21 | this.setTitle("Login");
22 | },
23 |
24 |
25 | members :
26 | {
27 | __form: null,
28 |
29 |
30 | // overridden
31 | _initialize: function() {
32 | this.base(arguments);
33 |
34 | // Username
35 | var user = new qx.ui.mobile.form.TextField();
36 | user.setRequired(true);
37 |
38 | // Password
39 | var pwd = new qx.ui.mobile.form.PasswordField();
40 | pwd.setRequired(true);
41 |
42 | // Login Button
43 | var loginButton = new qx.ui.mobile.form.Button("Login");
44 | loginButton.addListener("tap", this._onButtonTap, this);
45 |
46 | var loginForm = this.__form = new qx.ui.mobile.form.Form();
47 | loginForm.add(user, "Username");
48 | loginForm.add(pwd, "Password");
49 |
50 | // Use form renderer
51 | this.getContent().add(new qx.ui.mobile.form.renderer.Single(loginForm));
52 | this.getContent().add(loginButton);
53 | },
54 |
55 |
56 | /**
57 | * Event handler for tap on the login button.
58 | */
59 | _onButtonTap: function() {
60 | // use form validation
61 | if (this.__form.validate()) {
62 | qx.core.Init.getApplication().getRouting().executeGet("/overview");
63 | }
64 | }
65 | }
66 |
67 | });
68 |
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/class/testMixin/test/DemoTest.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2020
4 |
5 | License: MIT license
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This class demonstrates how to define unit tests for your application.
13 | *
14 | * Execute qx test to generate a testrunner application
15 | * and open it from test/index.html
16 | *
17 | * The methods that contain the tests are instance methods with a
18 | * test prefix. You can create an arbitrary number of test
19 | * classes like this one. They can be organized in a regular class hierarchy,
20 | * i.e. using deeper namespaces and a corresponding file structure within the
21 | * test folder.
22 | */
23 | qx.Class.define("testMixin.test.DemoTest",
24 | {
25 | extend : qx.dev.unit.TestCase,
26 |
27 | members :
28 | {
29 | /*
30 | ---------------------------------------------------------------------------
31 | TESTS
32 | ---------------------------------------------------------------------------
33 | */
34 |
35 | /**
36 | * Here are some simple tests
37 | */
38 | testSimple : function()
39 | {
40 | this.assertEquals(4, 3+1, "This should never fail!");
41 | this.assertFalse(false, "Can false be true?!");
42 | },
43 |
44 | /**
45 | * Here are some more advanced tests
46 | */
47 | testAdvanced: function ()
48 | {
49 | var a = 3;
50 | var b = a;
51 | this.assertIdentical(a, b, "A rose by any other name is still a rose");
52 | this.assertInRange(3, 1, 10, "You must be kidding, 3 can never be outside [1,10]!");
53 | }
54 | }
55 | });
56 |
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/jsdoc/CommandParser.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qooxdoo-compiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2017 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * John Spackman (john.spackman@zenesis.com, @johnspackman)
20 | *
21 | * *********************************************************************** */
22 |
23 |
24 |
25 | /**
26 | * Abstract base class for JSDoc command parsers
27 | */
28 | qx.Class.define("qx.tool.compiler.jsdoc.CommandParser", {
29 | extend: qx.core.Object,
30 | type: "abstract",
31 |
32 | members: {
33 | parseCommand: function(pdoc, classname, analyser) {
34 | throw new Error("No implementation for " + this.classname + ".parseCommand");
35 | },
36 |
37 | resolveType: function(type, classname, analyser) {
38 | if (type) {
39 | var pos = type.indexOf(".");
40 | if (pos < 0) {
41 | pos = classname.lastIndexOf(".");
42 | if (pos > -1) {
43 | var pkg = classname.substring(0, pos + 1);
44 | if (analyser) {
45 | var match = analyser.getCachedClassInfo(pkg + type);
46 | if (match) {
47 | return pkg + type;
48 | }
49 | }
50 | }
51 | }
52 | }
53 | return type;
54 | }
55 |
56 | }
57 | });
58 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/class/custom/test/DemoTest.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This class demonstrates how to define unit tests for your application.
13 | *
14 | * Execute qx test to generate a testrunner application
15 | * and open it from test/index.html
16 | *
17 | * The methods that contain the tests are instance methods with a
18 | * test prefix. You can create an arbitrary number of test
19 | * classes like this one. They can be organized in a regular class hierarchy,
20 | * i.e. using deeper namespaces and a corresponding file structure within the
21 | * test folder.
22 | */
23 | qx.Class.define("${namespace}.test.DemoTest",
24 | {
25 | extend : qx.dev.unit.TestCase,
26 |
27 | members :
28 | {
29 | /*
30 | ---------------------------------------------------------------------------
31 | TESTS
32 | ---------------------------------------------------------------------------
33 | */
34 |
35 | /**
36 | * Here are some simple tests
37 | */
38 | testSimple : function()
39 | {
40 | this.assertEquals(4, 3+1, "This should never fail!");
41 | this.assertFalse(false, "Can false be true?!");
42 | },
43 |
44 | /**
45 | * Here are some more advanced tests
46 | */
47 | testAdvanced: function ()
48 | {
49 | var a = 3;
50 | var b = a;
51 | this.assertIdentical(a, b, "A rose by any other name is still a rose");
52 | this.assertInRange(3, 1, 10, "You must be kidding, 3 can never be outside [1,10]!");
53 | }
54 | }
55 | });
56 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/class/custom/test/DemoTest.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This class demonstrates how to define unit tests for your application.
13 | *
14 | * Execute qx test to generate a testrunner application
15 | * and open it from test/index.html
16 | *
17 | * The methods that contain the tests are instance methods with a
18 | * test prefix. You can create an arbitrary number of test
19 | * classes like this one. They can be organized in a regular class hierarchy,
20 | * i.e. using deeper namespaces and a corresponding file structure within the
21 | * test folder.
22 | */
23 | qx.Class.define("${namespace}.test.DemoTest",
24 | {
25 | extend : qx.dev.unit.TestCase,
26 |
27 | members :
28 | {
29 | /*
30 | ---------------------------------------------------------------------------
31 | TESTS
32 | ---------------------------------------------------------------------------
33 | */
34 |
35 | /**
36 | * Here are some simple tests
37 | */
38 | testSimple : function()
39 | {
40 | this.assertEquals(4, 3+1, "This should never fail!");
41 | this.assertFalse(false, "Can false be true?!");
42 | },
43 |
44 | /**
45 | * Here are some more advanced tests
46 | */
47 | testAdvanced: function ()
48 | {
49 | var a = 3;
50 | var b = a;
51 | this.assertIdentical(a, b, "A rose by any other name is still a rose");
52 | this.assertInRange(3, 1, 10, "You must be kidding, 3 can never be outside [1,10]!");
53 | }
54 | }
55 | });
56 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/testdynamic/compile.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("path");
3 |
4 | qx.Class.define("qxl.compilertests.testlib.CompilerApi", {
5 | extend: qx.tool.cli.api.CompilerApi,
6 |
7 | members: {
8 | async load() {
9 | await this.base(arguments);
10 | let data = this.getConfiguration();
11 | if (!data.environment)
12 | data.environment = {};
13 | data.environment.testlibCompilerApi = "two";
14 | }
15 | }
16 | });
17 |
18 | qx.Class.define("qxl.compilertests.testlib.LibraryApi", {
19 | extend: qx.tool.cli.api.LibraryApi,
20 |
21 | members: {
22 | /*
23 | * @Override
24 | */
25 | async initialize() {
26 | let cli = qx.tool.cli.Cli.getInstance();
27 | cli.yargs.command({
28 | command: "testlib [options]",
29 | describe: "repeats a message to the console",
30 | builder: {
31 | "type": {
32 | alias : "t",
33 | describe : "A parameter",
34 | nargs: 1,
35 | requiresArg: true,
36 | type: "string"
37 | }
38 | },
39 | handler: function(argv) {
40 | console.log(`The commmand testlib; message=${argv.message}, type=${argv.type}`);
41 | }
42 | });
43 | },
44 |
45 | /*
46 | * @Override
47 | */
48 | async load() {
49 | let command = this.getCompilerApi().getCommand();
50 | if (command)
51 | command.addListener("checkEnvironment", e => this._appCompiling(e.getData().application, e.getData().environment));
52 | },
53 |
54 | _appCompiling(application, environment) {
55 | environment.testlibLibraryApi = "one";
56 | }
57 | }
58 | });
59 |
60 | module.exports = {
61 | LibraryApi: qxl.compilertests.testlib.LibraryApi,
62 | CompilerApi: qxl.compilertests.testlib.CompilerApi
63 | };
64 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/mobile/source/boot/index.tmpl.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
37 |
38 | ${name}
39 |
40 |
41 |
42 | ${preBootJs}
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/app/Part.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qooxdoo-compiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2017 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * John Spackman (john.spackman@zenesis.com, @johnspackman)
20 | *
21 | * *********************************************************************** */
22 |
23 |
24 |
25 | /**
26 | * Code is divided up into Parts, where each is a non-overlapping set of URIs for segmented
27 | * loading; the Part can support specific attributes, such as whether to be combined into
28 | * one file for the boot loader, whether to be minified, etc
29 | */
30 | qx.Class.define("qx.tool.compiler.app.Part", {
31 | extend: qx.core.Object,
32 |
33 | construct: function(name, include, exclude) {
34 | this.base(arguments);
35 | this.set({
36 | name: name,
37 | include: include,
38 | exclude: exclude||[]
39 | });
40 | },
41 |
42 | properties: {
43 | name: {
44 | nullable: false,
45 | check: "String"
46 | },
47 |
48 | combine: {
49 | init: false,
50 | nullable: false,
51 | check: "Boolean"
52 | },
53 |
54 | minify: {
55 | init: false,
56 | nullable: false,
57 | check: "Boolean"
58 | },
59 |
60 | include: {
61 | nullable: false,
62 | check: "Array"
63 | },
64 |
65 | exclude: {
66 | nullable: false,
67 | check: "Array"
68 | }
69 | }
70 | });
71 |
--------------------------------------------------------------------------------
/test/compiler/test-apiviewer/testMixin/source/boot/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
38 |
39 | testMixin
40 |
41 |
42 |
43 | ${preBootJs}
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/class/default.tmpl.js:
--------------------------------------------------------------------------------
1 | ${header}
2 |
3 | /**
4 | * This is a qooxdoo class
5 | */
6 | qx.Class.define("${classname}",
7 | {
8 |
9 | extend : ${extend},
10 | //include : [ Mixin1, Mixin2 ],
11 |
12 | /**
13 | * Constructor
14 | */
15 | construct : function() {
16 | // If you want to call the parent constructor, use
17 | // this.base(arguments);
18 | },
19 |
20 | /**
21 | * The properties of the class which can be accessed by getters and setters
22 | */
23 | properties :
24 | {
25 | /** The foo property of the object */
26 | foo :
27 | {
28 | apply : "_applyFoo",
29 | nullable : true,
30 | check : "String",
31 | event : "changeFoo"
32 | }
33 | },
34 |
35 | /**
36 | * Declaration of events fired by class instances in addition
37 | * to the property change events
38 | */
39 | events :
40 | {
41 | /** Fired when something happens */
42 | "changeSituation" : "qx.event.type.Data"
43 | },
44 |
45 | /**
46 | * Static properties of the class itself
47 | */
48 | statics :
49 | {
50 | /** The foo static property of the class object */
51 | FOO : "bar"
52 | },
53 | /**
54 | * The methods and simple properties of this class
55 | */
56 | members :
57 | {
58 | /**
59 | * First method
60 | *
61 | * @param {String} foo The foo parameter
62 | * @param {number} bar The bar parameter
63 | * @return The result of the method.
64 | */
65 | myMethod : function(foo, bar) {
66 | //
67 | },
68 |
69 | /**
70 | * Applies the foo property
71 | *
72 | * @param {string} value new value
73 | * @param {string} old the old value
74 | */
75 | _applyFoo : function(value, old) {
76 | //
77 | }
78 |
79 | },
80 |
81 | /**
82 | * Use for disposing objects created by class instances
83 | */
84 | destruct : function() {
85 | //
86 | }
87 | });
88 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/boot/index.tmpl.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
38 |
39 | ${name}
40 |
41 |
42 |
43 | ${preBootJs}
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/source/class/qx/tool/compiler/resources/ImageLoader.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qooxdoo-compiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2017 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * John Spackman (john.spackman@zenesis.com, @johnspackman)
20 | *
21 | * *********************************************************************** */
22 |
23 | var imageSize = qx.tool.utils.Promisify.promisify(require("image-size"));
24 |
25 | var log = qx.tool.utils.LogManager.createLog("resource-manager");
26 |
27 | qx.Class.define("qx.tool.compiler.resources.ImageLoader", {
28 | extend: qx.tool.compiler.resources.ResourceLoader,
29 |
30 | construct: function() {
31 | this.base(arguments, [ ".png", ".gif", ".jpg", ".jpeg", ".svg" ]);
32 | },
33 |
34 | members: {
35 | needsLoad(filename, fileInfo, stat) {
36 | if (!fileInfo || fileInfo.width === undefined || fileInfo.height === undefined) {
37 | return true;
38 | }
39 | return this.base(arguments, filename, fileInfo, stat);
40 | },
41 |
42 | async load(asset) {
43 | let filename = asset.getSourceFilename();
44 | let fileInfo = asset.getFileInfo();
45 | log.trace("Getting size of " + filename);
46 | try {
47 | let dimensions = await imageSize(filename);
48 | fileInfo.width = dimensions.width;
49 | fileInfo.height = dimensions.height;
50 | } catch (ex) {
51 | log.warn("Cannot get image size of " + filename + ": " + ex);
52 | delete fileInfo.width;
53 | delete fileInfo.height;
54 | }
55 | }
56 | }
57 | });
58 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/server/source/class/custom/test/DemoTest.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright:
4 |
5 | License:
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This class demonstrates how to define unit tests for your application.
13 | *
14 | * Execute qx test to generate a testrunner application
15 | * and open it from test/index.html
16 | *
17 | * The methods that contain the tests are instance methods with a
18 | * test prefix. You can create an arbitrary number of test
19 | * classes like this one. They can be organized in a regular class hierarchy,
20 | * i.e. using deeper namespaces and a corresponding file structure within the
21 | * test folder.
22 | */
23 | qx.Class.define("${namespace}.test.DemoTest",
24 | {
25 | extend : qx.dev.unit.TestCase,
26 |
27 | include : [qx.dev.unit.MRequirementsBasic],
28 |
29 | members :
30 | {
31 | /*
32 | ---------------------------------------------------------------------------
33 | TESTS
34 | ---------------------------------------------------------------------------
35 | */
36 |
37 | /**
38 | * Here are some simple tests
39 | */
40 | testSimple : function()
41 | {
42 | this.assertEquals(4, 3+1, "This should never fail!");
43 | this.assertFalse(false, "Can false be true?!");
44 | },
45 |
46 | /**
47 | * Here are some more advanced tests
48 | */
49 | testAdvanced: function ()
50 | {
51 | var a = 3;
52 | var b = a;
53 | this.assertIdentical(a, b, "A rose by any other name is still a rose");
54 | this.assertInRange(3, 1, 10, "You must be kidding, 3 can never be outside [1,10]!");
55 | },
56 |
57 | hasNodeJs : function()
58 | {
59 | return qx.core.Environment.get("runtime.name") == "node.js";
60 | },
61 |
62 | testNodeJs : function()
63 | {
64 | this.require(["nodeJs"]);
65 | // test node stuff
66 | }
67 | }
68 | });
69 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/package/source/class/custom/demo/Application.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This is the main application class of "${name}"
13 | */
14 | qx.Class.define("${namespace}.demo.Application",
15 | {
16 | extend : qx.application.Standalone,
17 |
18 | /*
19 | *****************************************************************************
20 | MEMBERS
21 | *****************************************************************************
22 | */
23 |
24 | members :
25 | {
26 | /**
27 | * This method contains the initial application code and gets called
28 | * during startup of the application
29 | *
30 | * @lint ignoreDeprecated(alert)
31 | */
32 | main : function()
33 | {
34 | // Call super class
35 | this.base(arguments);
36 |
37 | // Enable logging in debug variant
38 | if (qx.core.Environment.get("qx.debug"))
39 | {
40 | // support native logging capabilities, e.g. Firebug for Firefox
41 | qx.log.appender.Native;
42 | // support additional cross-browser console. Press F7 to toggle visibility
43 | qx.log.appender.Console;
44 | }
45 |
46 | /*
47 | -------------------------------------------------------------------------
48 | Below is your actual application code...
49 | -------------------------------------------------------------------------
50 | */
51 |
52 | // Create a button
53 | var button1 = new ${namespace}.Button("Very special button", "${namespace_as_path}/test.png");
54 |
55 | // Document is the application root
56 | var doc = this.getRoot();
57 |
58 | // Add button to document at fixed coordinates
59 | doc.add(button1, {left: 100, top: 50});
60 |
61 | // Add an event listener
62 | button1.addListener("execute", function(e) {
63 | alert("Hello World!");
64 | });
65 | }
66 | }
67 | });
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553/source/class/issue553/ApplicationOne.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2019 undefined
4 |
5 | License: MIT license
6 |
7 | Authors: undefined
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This is the main application class of "issue553"
13 | *
14 | * @asset(issue553/*)
15 | */
16 | qx.Class.define("issue553.ApplicationOne",
17 | {
18 | extend : qx.application.Standalone,
19 |
20 |
21 |
22 | /*
23 | *****************************************************************************
24 | MEMBERS
25 | *****************************************************************************
26 | */
27 |
28 | members :
29 | {
30 | /**
31 | * This method contains the initial application code and gets called
32 | * during startup of the application
33 | *
34 | * @lint ignoreDeprecated(alert)
35 | */
36 | main : function()
37 | {
38 | // Call super class
39 | this.base(arguments);
40 |
41 | // Enable logging in debug variant
42 | if (qx.core.Environment.get("qx.debug"))
43 | {
44 | // support native logging capabilities, e.g. Firebug for Firefox
45 | qx.log.appender.Native;
46 | // support additional cross-browser console. Press F7 to toggle visibility
47 | qx.log.appender.Console;
48 | }
49 |
50 | /*
51 | -------------------------------------------------------------------------
52 | Below is your actual application code...
53 | -------------------------------------------------------------------------
54 | */
55 |
56 | // Create a button
57 | var button1 = new qx.ui.form.Button("Click me", "issue553/test.png");
58 |
59 | // Document is the application root
60 | var doc = this.getRoot();
61 |
62 | // Add button to document at fixed coordinates
63 | doc.add(button1, {left: 100, top: 50});
64 |
65 | // Add an event listener
66 | button1.addListener("execute", function() {
67 | /* eslint no-alert: "off" */
68 | alert("Hello World!");
69 | });
70 | }
71 | }
72 | });
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue553/source/class/issue553/ApplicationTwo.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2019 undefined
4 |
5 | License: MIT license
6 |
7 | Authors: undefined
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This is the main application class of "issue553"
13 | *
14 | * @asset(issue553/*)
15 | */
16 | qx.Class.define("issue553.ApplicationTwo",
17 | {
18 | extend : qx.application.Standalone,
19 |
20 |
21 |
22 | /*
23 | *****************************************************************************
24 | MEMBERS
25 | *****************************************************************************
26 | */
27 |
28 | members :
29 | {
30 | /**
31 | * This method contains the initial application code and gets called
32 | * during startup of the application
33 | *
34 | * @lint ignoreDeprecated(alert)
35 | */
36 | main : function()
37 | {
38 | // Call super class
39 | this.base(arguments);
40 |
41 | // Enable logging in debug variant
42 | if (qx.core.Environment.get("qx.debug"))
43 | {
44 | // support native logging capabilities, e.g. Firebug for Firefox
45 | qx.log.appender.Native;
46 | // support additional cross-browser console. Press F7 to toggle visibility
47 | qx.log.appender.Console;
48 | }
49 |
50 | /*
51 | -------------------------------------------------------------------------
52 | Below is your actual application code...
53 | -------------------------------------------------------------------------
54 | */
55 |
56 | // Create a button
57 | var button1 = new qx.ui.form.Button("Click me", "issue553/test.png");
58 |
59 | // Document is the application root
60 | var doc = this.getRoot();
61 |
62 | // Add button to document at fixed coordinates
63 | doc.add(button1, {left: 100, top: 50});
64 |
65 | // Add an event listener
66 | button1.addListener("execute", function() {
67 | /* eslint no-alert: "off" */
68 | alert("Hello World!");
69 | });
70 | }
71 | }
72 | });
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/build/diagnostics/dependson.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 |
3 | var db;
4 | var appDb;
5 | var CLASSES = {};
6 |
7 | function show(name, $list) {
8 | var def = db.classInfo[name];
9 | if (!def || !def.dependsOn)
10 | return;
11 | for ( var depName in def.dependsOn) {
12 | if (!CLASSES[depName])
13 | continue;
14 | var isLoad = def.dependsOn[depName].load;
15 | var $li = $("").text(depName).attr("data-classname", depName);
16 | if (isLoad)
17 | $li.addClass("load");
18 | else
19 | $li.addClass("runtime");
20 | $li.click(function(e) {
21 | e.stopPropagation();
22 | var $this = $(this), className = $this.attr("data-classname"), $ul = $("ul", this);
23 | if ($ul.length) {
24 | $ul.remove();
25 | return;
26 | }
27 | var $ul = $("");
28 | $this.append($ul);
29 | show(className, $ul);
30 | updateDisplay();
31 | });
32 | $list.append($li);
33 | }
34 | }
35 |
36 | function selectClass(name) {
37 | $("#root").append($("").text(name + " Depends On"));
38 | var $root = $("");
39 | $("#root").append($root);
40 | show(name, $root);
41 | }
42 |
43 | function updateDisplay() {
44 | var value = $("#show").val();
45 | switch (value) {
46 | case "runtime":
47 | $(".load").hide();
48 | $(".runtime").show();
49 | break;
50 |
51 | case "load":
52 | $(".load").show();
53 | $(".runtime").hide();
54 | break;
55 |
56 | default:
57 | $(".load").show();
58 | $(".runtime").show();
59 | break;
60 | }
61 | }
62 |
63 | var query = $.qxcli.query;
64 | $.qxcli.get(query.targetDir + "/db.json")
65 | .then(function(tmp) {
66 | db = tmp;
67 | return $.qxcli.get(query.targetDir + "/" + query.appDir + "/compile-info.json");
68 | })
69 | .then(function(tmp) {
70 | appDb = tmp;
71 | appDb.parts.forEach(function(part) {
72 | part.classes.forEach(classname => CLASSES[classname] = true);
73 | });
74 | selectClass($.qxcli.query.appClass);
75 | $("#show").change(updateDisplay);
76 | });
77 | });
78 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/website/src/diagnostics/dependson.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 |
3 | var db;
4 | var appDb;
5 | var CLASSES = {};
6 |
7 | function show(name, $list) {
8 | var def = db.classInfo[name];
9 | if (!def || !def.dependsOn)
10 | return;
11 | for ( var depName in def.dependsOn) {
12 | if (!CLASSES[depName])
13 | continue;
14 | var isLoad = def.dependsOn[depName].load;
15 | var $li = $("").text(depName).attr("data-classname", depName);
16 | if (isLoad)
17 | $li.addClass("load");
18 | else
19 | $li.addClass("runtime");
20 | $li.click(function(e) {
21 | e.stopPropagation();
22 | var $this = $(this), className = $this.attr("data-classname"), $ul = $("ul", this);
23 | if ($ul.length) {
24 | $ul.remove();
25 | return;
26 | }
27 | var $ul = $("");
28 | $this.append($ul);
29 | show(className, $ul);
30 | updateDisplay();
31 | });
32 | $list.append($li);
33 | }
34 | }
35 |
36 | function selectClass(name) {
37 | $("#root").append($("").text(name + " Depends On"));
38 | var $root = $("");
39 | $("#root").append($root);
40 | show(name, $root);
41 | }
42 |
43 | function updateDisplay() {
44 | var value = $("#show").val();
45 | switch (value) {
46 | case "runtime":
47 | $(".load").hide();
48 | $(".runtime").show();
49 | break;
50 |
51 | case "load":
52 | $(".load").show();
53 | $(".runtime").hide();
54 | break;
55 |
56 | default:
57 | $(".load").show();
58 | $(".runtime").show();
59 | break;
60 | }
61 | }
62 |
63 | var query = $.qxcli.query;
64 | $.qxcli.get(query.targetDir + "/db.json")
65 | .then(function(tmp) {
66 | db = tmp;
67 | return $.qxcli.get(query.targetDir + "/" + query.appDir + "/compile-info.json");
68 | })
69 | .then(function(tmp) {
70 | appDb = tmp;
71 | appDb.parts.forEach(function(part) {
72 | part.classes.forEach(classname => CLASSES[classname] = true);
73 | });
74 | selectClass($.qxcli.query.appClass);
75 | $("#show").change(updateDisplay);
76 | });
77 | });
78 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/testLegalSCSS/source/class/testLegalSCSS/Application.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2019
4 |
5 | License: MIT license
6 |
7 | Authors:
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This is the main application class of "testLegalSCSS"
13 | *
14 | * @asset(testLegalSCSS/*)
15 | */
16 | qx.Class.define("testLegalSCSS.Application",
17 | {
18 | extend : qx.application.Standalone,
19 |
20 |
21 |
22 | /*
23 | *****************************************************************************
24 | MEMBERS
25 | *****************************************************************************
26 | */
27 |
28 | members :
29 | {
30 | /**
31 | * This method contains the initial application code and gets called
32 | * during startup of the application
33 | *
34 | * @lint ignoreDeprecated(alert)
35 | */
36 | main : function()
37 | {
38 | // Call super class
39 | this.base(arguments);
40 |
41 | // Enable logging in debug variant
42 | if (qx.core.Environment.get("qx.debug"))
43 | {
44 | // support native logging capabilities, e.g. Firebug for Firefox
45 | qx.log.appender.Native;
46 | // support additional cross-browser console. Press F7 to toggle visibility
47 | qx.log.appender.Console;
48 | }
49 |
50 | /*
51 | -------------------------------------------------------------------------
52 | Below is your actual application code...
53 | -------------------------------------------------------------------------
54 | */
55 |
56 | // Create a button
57 | var button1 = new qx.ui.form.Button("Click me", "testLegalSCSS/test.png");
58 |
59 | // Document is the application root
60 | var doc = this.getRoot();
61 |
62 | // Add button to document at fixed coordinates
63 | doc.add(button1, {left: 100, top: 50});
64 |
65 | // Add an event listener
66 | button1.addListener("execute", function() {
67 | /* eslint no-alert: "off" */
68 | alert("Hello World!");
69 | });
70 | }
71 | }
72 | });
--------------------------------------------------------------------------------
/source/class/qx/tool/utils/Logger.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 | *
3 | * qooxdoo-compiler - node.js based replacement for the Qooxdoo python
4 | * toolchain
5 | *
6 | * https://github.com/qooxdoo/qooxdoo-compiler
7 | *
8 | * Copyright:
9 | * 2011-2017 Zenesis Limited, http://www.zenesis.com
10 | *
11 | * License:
12 | * MIT: https://opensource.org/licenses/MIT
13 | *
14 | * This software is provided under the same licensing terms as Qooxdoo,
15 | * please see the LICENSE file in the Qooxdoo project's top-level directory
16 | * for details.
17 | *
18 | * Authors:
19 | * * John Spackman (john.spackman@zenesis.com, @johnspackman)
20 | *
21 | * *********************************************************************** */
22 | qx.Class.define("qx.tool.utils.Logger", {
23 | extend: qx.core.Object,
24 |
25 | construct: function(id, minLevel) {
26 | this.base(arguments);
27 | this.set({ id: id, minLevel: minLevel });
28 | },
29 |
30 | properties: {
31 | id: {
32 | check: "String"
33 | },
34 |
35 | minLevel: {
36 | check: "Integer"
37 | }
38 | },
39 |
40 | members: {
41 | is: function(level) {
42 | if (typeof level == "string") {
43 | level = qx.tool.utils.LogManager.getInstance()._levels[level];
44 | }
45 | return this.getMinLevel() <= level;
46 | },
47 |
48 | log: function(level, msg) {
49 | if (this.is(level)) {
50 | this._output(level, msg);
51 | }
52 | },
53 |
54 | _output: function(level, msg) {
55 | qx.tool.utils.LogManager.getInstance().output(this, level, msg);
56 | },
57 |
58 | trace: function(msg) {
59 | return this.log("trace", msg);
60 | },
61 |
62 | debug: function(msg) {
63 | return this.log("debug", msg);
64 | },
65 |
66 | info: function(msg) {
67 | return this.log("info", msg);
68 | },
69 |
70 | warn: function(msg) {
71 | return this.log("warn", msg);
72 | },
73 |
74 | error: function(msg) {
75 | return this.log("error", msg);
76 | },
77 |
78 | fatal: function(msg) {
79 | return this.log("fatal", msg);
80 | }
81 |
82 | }
83 | });
84 |
85 |
--------------------------------------------------------------------------------
/test/compiler/test-issues/issue440/source/class/issue440/Application.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: 2019 undefined
4 |
5 | License: MIT license
6 |
7 | Authors: undefined
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This is the main application class of "issue440"
13 | *
14 | * @asset(issue440/*)
15 | */
16 | qx.Class.define("issue440.Application",
17 | {
18 | extend : qx.application.Standalone,
19 |
20 |
21 |
22 | /*
23 | *****************************************************************************
24 | MEMBERS
25 | *****************************************************************************
26 | */
27 |
28 | members :
29 | {
30 | /**
31 | * This method contains the initial application code and gets called
32 | * during startup of the application
33 | *
34 | * @lint ignoreDeprecated(alert)
35 | */
36 | main : function()
37 | {
38 | // Call super class
39 | this.base(arguments);
40 |
41 | //This is an error
42 |
43 | // Enable logging in debug variant
44 | if (qx.core.Environment.get("qx.debug"))
45 | {
46 | // support native logging capabilities, e.g. Firebug for Firefox
47 | qx.log.appender.Native;
48 | // support additional cross-browser console. Press F7 to toggle visibility
49 | qx.log.appender.Console;
50 | }
51 |
52 | /*
53 | -------------------------------------------------------------------------
54 | Below is your actual application code...
55 | -------------------------------------------------------------------------
56 | */
57 |
58 | // Create a button
59 | var button1 = new qx.ui.form.Button("Click me", "issue440/test.png");
60 |
61 | // Document is the application root
62 | var doc = this.getRoot();
63 |
64 | // Add button to document at fixed coordinates
65 | doc.add(button1, {left: 100, top: 50});
66 |
67 | // Add an event listener
68 | button1.addListener("execute", function() {
69 | /* eslint no-alert: "off" */
70 | alert("Hello World!");
71 | });
72 | }
73 | }
74 | });
75 |
--------------------------------------------------------------------------------
/source/resource/qx/tool/cli/templates/skeleton/desktop/source/class/custom/Application.tmpl.js:
--------------------------------------------------------------------------------
1 | /* ************************************************************************
2 |
3 | Copyright: ${year} ${copyright_holder}
4 |
5 | License: ${license}
6 |
7 | Authors: ${authors}
8 |
9 | ************************************************************************ */
10 |
11 | /**
12 | * This is the main application class of "${name}"
13 | *
14 | * @asset(${namespace_as_path}/*)
15 | */
16 | qx.Class.define("${namespace}.Application",
17 | {
18 | extend : qx.application.Standalone,
19 |
20 |
21 |
22 | /*
23 | *****************************************************************************
24 | MEMBERS
25 | *****************************************************************************
26 | */
27 |
28 | members :
29 | {
30 | /**
31 | * This method contains the initial application code and gets called
32 | * during startup of the application
33 | *
34 | * @lint ignoreDeprecated(alert)
35 | */
36 | main : function()
37 | {
38 | // Call super class
39 | this.base(arguments);
40 |
41 | // Enable logging in debug variant
42 | if (qx.core.Environment.get("qx.debug"))
43 | {
44 | // support native logging capabilities, e.g. Firebug for Firefox
45 | qx.log.appender.Native;
46 | // support additional cross-browser console. Press F7 to toggle visibility
47 | qx.log.appender.Console;
48 | }
49 |
50 | /*
51 | -------------------------------------------------------------------------
52 | Below is your actual application code...
53 | -------------------------------------------------------------------------
54 | */
55 |
56 | // Create a button
57 | var button1 = new qx.ui.form.Button("Click me", "${namespace_as_path}/test.png");
58 |
59 | // Document is the application root
60 | var doc = this.getRoot();
61 |
62 | // Add button to document at fixed coordinates
63 | doc.add(button1, {left: 100, top: 50});
64 |
65 | // Add an event listener
66 | button1.addListener("execute", function() {
67 | /* eslint no-alert: "off" */
68 | alert("Hello World!");
69 | });
70 | }
71 | }
72 | });
--------------------------------------------------------------------------------